UPDATE: Typo on the 8th slide, last line should be (slides can't be modified on slideshare):
grad(log(p_gamma(x|y))) = (1-gamma)*grad(log(p(x))) + gamma*grad(log(p(x|y)))
My presentation on using generative AI for creative generation for e-commerce. Presented on 14 November 2023 at the TECH meetup series organized by Gravity R&D, a Taboola company. ݺߣs are in Hungarian.
Title/abstract in English:
Mass production of unique product creatives with generative AI
-----
The probability of a user clicking on an online advertisement is greatly influenced by creative's look. Traditional brand level campaigns require only a few creatives that can be produced by humans. However product level recommendations require creatives for every single product. Producing these using human work is infeasible at scale, thus they are often shown in front of simple (e.g. white) backgrounds. This presentation showcases a solution based on generative AI that allows placing products in different environments, which makes the creatives more appealing. I'll talk about the challenges of this approach along with potential solutions, as well as the initial results of our live test.
Eredeti absztrakt:
Az online hirdetések megjelenése nagyban befolyásolja a rákattintás valószínűségét. A tradicionális márka szinten targetált kampányokhoz szükséges egy-két kreatív/banner legyártása még emberi erőforrás igénybevételével is megoldható. Termék szintű ajánlás esetén viszont minden egyes termékhez külön kreatívra van szükség, akár több felbontásban. Nagyszámú kreatív legyártása emberi erővel lassú és drága, ezért gyakori megközelítés a terméket valamilyen egyszerű, például egyszínű, háttér előtt megjeleníteni. Az előadás során bemutatunk egy generatív AI technológián alapuló megoldást, ami lehetővé teszi, hogy a termékeket különféle környezetekben jelenítsük meg, és így érdekesebbé/vonzóbbá tegyük a kreatívokat. Szót ejtünk a megközelítés nehézségeiről, lehetséges megoldásokról, és a módszer hatékonyságát vizsgáló mérésünk előzetes eredményeiről.
1 of 57
Download to read offline
More Related Content
Egyedi termék kreatívok tömeges gyártása generatív AI segítségével
1. Egyedi termék kreatívok tömeges gyártása
generatív AI segítségével
Hidasi Balázs
Generative AI | TECH MEETUP
2023. november 14.
2. Hidasi Balázs Czapp Ádám Jani Mátyás
• Ötletgazda
• Projekt vezetés
• Rendszer tervezés
• Kísérletek
• Modellezés
• Modell pipeline
• Kísérletek
• Éles keretrendszer tervezés
• Szolgáltatás implementáció
• Monitoring / üzemeltetés
3. Kéne egy jó kreatív
• Kreatív minősége korrelál a kattintási
valószínűséggel
▪ Hirdetési szegmensenként változó, hogy
mi a jó
▪ Közös jellemző: jól kinéző kép
• Több ember munkájának eredménye
▪ Tervezés
▪ Fotózás / megfelelő stock fotó keresés
▪ Grafikus alkalmazása
forrás: https://trends.Taboola.com/images?imageCategory=business
4. Kéne tízezer jó kreatív – az e-commerce use-case
• Termék szintű ajánlás
▪ Kereskedőként néhány ezertől akár milliós nagyságrendű különböző termék
• Kreatív minden termékhez 5-10 oldalaránnyal
▪ Drága
▪ Sok idő
• Változó termékkatalógus
▪ Folyamatosan szükség van új kreatívokra
• Egyszerű megoldás: kreatív = termékkép
▪ Egyszerű képek (pl. fehér háttér előtt)
?
5. Háttér generálás
1. Termék / háttér szeparálása
▪ Általában egyszerű fehér háttér, de más esetben is működik
2. Termék pozícionálása, skálázása és képarány beállítása
▪ Termék függő logika alapján
3. Háttér kitöltése (Stable Diffusion, inpainting)
▪ Termék helyére nem rajzolunk
4. Generált kép átméretezése
▪ Hirdetési hely méretéhez
6. Stable diffusion
• Diffúziós folyamat (diffusion process)
▪ Fehér zaj 𝜖~𝒩 0, 𝐼
▪ Kép zajosítása lépésenként egyre nagyobb mértékben
o 𝑥𝑡 = 1 − 𝛽𝑡𝑥𝑡−1 + 𝛽𝑡𝜖 0 < 𝛽1 < 𝛽2 < ⋯ < 𝛽𝑇
▪ Kép → 𝜖 zaj
• Fordított diffúziós folyamat
• Diffusion model (tanulás)
▪ Denoising autoencoder
o 𝑥𝑡-ből 𝑥𝑡−1 megbecslése (𝜖 becslése ekvivalens)
– 𝛽𝑡 ismert
o Közös denoising autoencoder az összes lépésre
– Lépés sorszáma mint input (positional embedding)
▪ Veszteségfüggvény: négyzetes hiba a becsült és a tényleges zaj között
500. lépés
200. lépés
100. lépés
50. lépés
20. lépés
10. lépés
2. lépés
1. lépés 5. lépés
eredeti
7. Stable diffusion
• Diffusion model (generálás)
▪ Betanult modell képes a tanító halmaz eloszlásából mintát generálni
▪ Zajból kiindulva denoising lépések sorozata
• Latent diffusion model
▪ A kép (pixel) tér helyett a diffusion modell egy alacsonyabb dimenziószámú látens térben működik
o Tömörítés: kép → látens kép → kép
o Emberi szem által nem érzékelhető részletek vesznek el
▪ Látens tér tanulása: autoencoder
o Előtanítás
– Együttes tanítás nem stabil
𝑥
𝑥
pixel tér
látens tér
Diffúziós folyamat
Denoising U-Net
𝑧𝑇−1
𝑧 𝑧𝑇
𝑧
kondícionálás
ℰ
𝒟
*(T-1)
𝑧𝑇
𝑄
𝐾𝑉
𝑄
𝐾𝑉
𝑄
𝐾𝑉
𝑄
𝐾𝑉
𝜏𝜃
8. Stable diffusion
• Feltételes generálás (pl. text-to-image)
▪ Denoising háló: 𝑥𝑡, 𝑡 → 𝑥𝑡−1 ⇔ 𝑥𝑡, 𝑡 → 𝜖 ⇔ 𝑥𝑡, 𝑡 → ∇𝑥𝑡
log 𝑝 𝑥𝑡 (score)
o Intuitívan:
– hogyan kell módosítanom a zajos adaton, hogy növeljem a log likelihood-ot = távolítsam el a zajt = zaj irányával ellentétesen
o 𝑥𝑡 = 1 − 𝛽𝑡𝑥𝑡−1 + 𝛽𝑡𝜖 = ത
𝛼𝑡𝑥0 + 1 − ത
𝛼𝑡𝜖, ahol ത
𝛼𝑡 = ς𝑖=1
𝑡
1 − 𝛽𝑡
o 𝑥𝑡~𝒩 ത
𝛼𝑡𝑥0, 1 − ത
𝛼𝑡 𝐼
o ∇𝑥𝑡
log 𝑝 𝑥𝑡 = 𝔼𝑝 𝑥0
∇𝑥𝑡
𝑝 𝑥𝑡 𝑥0 = 𝔼𝑝 𝑥0
∇𝑥𝑡
−
𝑥𝑡− ഥ
𝛼𝑡𝑥0
2
2 1−ഥ
𝛼𝑡
= 𝔼𝑝(𝑥0) −
𝑥𝑡− ഥ
𝛼𝑡𝑥0
1−ഥ
𝛼𝑡
2 = 𝔼𝑝(𝑥0) −
𝜖
1−ഥ
𝛼𝑡
= −
𝜖
1−ഥ
𝛼𝑡
▪ Classifier guidance
o Predikciós időben kondicionálható a kimenet
– ∇𝑥 log 𝑝𝛾 𝑥 𝑦 = ∇𝑥 log 𝑝 𝑥 + 𝛾∇𝑥 log 𝑝 𝑦 𝑥
– Külön tanított osztályozó log 𝑝 𝑦 𝑥 modellezésére
▪ Tanítás során (kép, szöveg) párok
o Prompt dropout: az esetek egy részében a kondicionáláshoz használt szöveg eltávolítása
▪ Betanult modell megtanulja a feltételes és a feltétel nélküli eloszlás score függvényét is
o ∇𝑥 log 𝑝 𝑥 és ∇𝑥 log 𝑝 𝑥|𝑦
▪ CFG (classifier-free guidance)
o Bayes szabályból:
– 𝑝 𝑦 𝑥 =
𝑝 𝑥 𝑦 𝑝 𝑥
𝑝 𝑦
– log 𝑝 𝑦 𝑥 = log 𝑝 𝑥 𝑦 + log 𝑝 𝑦 − log 𝑝 𝑥
– ∇𝑥 log 𝑝 𝑦 𝑥 = ∇𝑥 log 𝑥 𝑦 − ∇𝑥 log 𝑝 𝑥
o Visszaírva ∇𝑥 log 𝑝𝛾 𝑥 𝑦 képletébe
– ∇𝑥 log 𝑝𝛾 𝑥 𝑦 = 1 − 𝛾 ∇𝑥 log 𝑝 𝑥 + 𝛾∇𝑥 log 𝑝 𝑦 𝑥
9. Stable diffusion
• Kondícionálás képen (pl. image-to-image, inpainting, stb)
▪ Minden lépésben
o Adott lépés bementi zajos képe (𝑥𝑡) helyett → zajos kép és kondícionáláshoz
használt kép súlyozott összege
10. Hogyan viselkedik a háttér generálás?
PROMPT: Túracipő
erdei talajon, mohás
kövekkel az előtérben
PROMPT: Papucs
strandon a homokban,
a tengerrel a háttérben
13. Kép méretének hatása
256x256 512x512 1024x1024 2048x2048
384x384
absztrakt egyhangú
elvárt viselkedés
tanítás mérettartománya
14. Kép méretének hatása
• Melyik paraméter a fontos?
▪ Pixelek száma?
▪ Oldalarány?
▪ Kisebb/nagyobb oldal mérete?
15. Kép méretének hatása
• Melyik paraméter a fontos?
▪ Pixelek száma?
▪ Oldalarány?
▪ Kisebb/nagyobb oldal mérete?
1024x256
16. Kép méretének hatása
• Melyik paraméter a fontos?
▪ Pixelek száma?
▪ Oldalarány?
▪ Kisebb/nagyobb oldal mérete?
1024x256
2048x128
17. Generálás kiindulási pontja
• Véletlenszerű zaj (alapértelmezett)
▪ Szemcsés kép
• Egyszínű
▪ Elég ennyi variancia?
▪ Milyen színt használjunk?
• Folytonos színátmenet (gradiens)
▪ Folytonos = nem szemcsés kép?
▪ Milyen színeket használjunk?
• Statikus kép
▪ Éles kép = nem szemcsés kép ?
▪ Kell-e, hogy hasonló legyen az elvárt képhez?
21. Generálás kiindulási pontja – egyszínű
• Főbb észrevételek
▪ Nem minden színből tud hátteret generálni
o Fekete és fehér nem jó ehhez
o Érdemes olyan színt választani, ahol az R/G/B közül egyik sem 0 vagy 255 közeli
▪ A háttér színe befolyásolja a színvilágot
▪ A színvilághoz igazodás eltérést eredményezhet a promptban kért környezettől
▪ Időnként nem generálja le a kért környezetet
▪ Több elmosódott rész a háttérben
o Nem feltétlenül baj
31. Generálás kiindulási pontja – gradiens
• Főbb észrevételek
▪ Háttér színe befolyásolja a színvilágot
▪ Bizonyos kombinációk megnehezítik a termék integrálását a környezetbe
▪ Az elvárt környezethez nem passzoló színek érdekes eredményt hozhatnak
o Pl. realisztikus helyett rajzolt, vagy a prompthoz csak lazán kapcsolódó
▪ A háttér gyakran elmosódott vagy elmosódott elemeket tartalmaz
o Nem feltétlenül baj
42. Generálás kiinduló pontja – kép
• Főbb észrevételek
▪ A modell képes jelentős mértékben eltérni az eredeti háttértől
▪ De az eredeti háttér színvilága befolyásolja a generált kép színvilágát
▪ Élesebb háttér elemek, mint a korábbi módszerekkel
▪ Termék pozícionálása befolyásolhatja, hogy milyen jól lesz integrálva a
generált környezetbe
43. Artifaktok – feliratok, logók
• Modell tanítóhalmaza az internetről gyűjtött képekből áll
▪ Nagy valószínűséggel kreatívokat is tartalmaz
▪ Ezeken gyakran szerepel felirat (pl. márka, kereskedő, stb.)
• A termékeink hasonlóak a tanítóhalmazban lévő
hirdetések termékihez
▪ Könnyen rákerülhet a generált képre is
• Megoldás: negatív prompt
44. Artifaktok – termék kiegészítése
• Az inpainting megoldás gyakran hozzárajzol a termékhez
▪ Néha kisebb mértékben: eddigi példák nagy része
▪ Néha könnyen észrevehető módon
45. Artifaktok – termék kiegészítése
• Az inpainting megoldás gyakran hozzárajzol a termékhez
▪ Néha kisebb mértékben: eddigi példák nagy része
▪ Néha könnyen észrevehető módon
▪ Néha egészen extrém módon
46. Artifaktok – termék kiegészítése
• Az inpainting megoldás gyakran hozzárajzol a termékhez
▪ Néha kisebb mértékben: eddigi példák nagy része
▪ Néha könnyen észrevehető módon
▪ Néha egészen extrém módon
Megoldás – Minőségellenőrző modell
• Osztályozó modell
▪ Kézzel gyűjtött jó/rossz példákon
▪ Néhány száz minta mellett is már 85+%-
os pontosság
• Újra generálás, ha rossznak ítéli
47. Alternatív megközelítés: ControlNet
1. Termék / háttér szeparálása
▪ Általában egyszerű fehér háttér, de más esetben is
működik
2. Termék pozícionálása, skálázása és képarány
beállítása
▪ Termék függő logika alapján
3. Élek detektálás
4. Kép generálás (Stable Diffusion)
▪ Teljes területre rajzolunk
▪ Élek figyelembe vételével (ControlNet)
5. Eredeti termék visszavágása a képre
6. Generált kép átméretezése
▪ Hirdetési hely méretéhez
48. ControlNet
• További kondicionálás
▪ Pl. élek, mélység, póz, stb
▪ Finomhangolás az új kondíciókat is hozzávéve
• Naív finomhangolás
▪ Elronthatjuk a modellt
o Catastrophical forgetting
• ControlNet
▪ Fixáljuk a súlyokat
▪ Hozzunk létre egy tanítható másolatot
▪ Ezt adjuk hozzá az eredetihez 1D konvolúcióval
o 0-val inicializálva
o Tanítás elején nem kerül káros zaj a rendszerbe
• Az U-net encoder részén ControlNet alkalmazása
forrás: Zhang et. al: Adding Control to Text-to-Image Diffusion Models, https://arxiv.org/pdf/2302.05543.pdf
49. ControlNet alapú megközelítés
• Termék kiegészítése és feliratok nem jellemzőek
• Termék rossz integrációja a környezetbe ritkább
▪ Pl. lebegő termék
• Gyakrabban fordul elő homályos háttér
▪ Élek megfeleltetése miatt
▪ Modell függő
▪ Prompt függő
▪ Nem feltétlenül gond
o Termék marad a fókuszban
50. Online A/B teszt
• Kontroll
▪ Nyers termékkép
átméretezve
▪ Termékek
jelentős részéhez
fehér hátterű kép
tartozik
• Fehér
▪ Termék
detektálás
▪ Pozícionálás,
skálázás
• Háttér
▪ Teljes
háttérgenerálás
folyamat
53. A teljes kép
Objektum
detektálás
Háttér generálás
Kép
Prompt
Masz
kolás
Minőségellenőr
modell
Tömeges generálás
AI modell
Emberi hozzájárulás
Kép
variánsok
Kép
variánsok
Összes
termék
kép
Generált
kreatívok
G
E
N
E
R
Á
L
Á
S
KONTROLL
OPTIMALIZÁLÁS
54. A teljes kép – személyre szabott kreatívok
• Melyik környezetben néz ki a legjobban a termék? → szubjektív
• Minden felhasználónak azt mutassuk, amire a legnagyobb
valószínűséggel kattint
▪ Témák definiálása termékcsoportokhoz → lefordítás prompt-okra
▪ Statikus felhasználói csoportok helyett jellemzők
▪ Dinamikus optimalizálás (pl. contextual multiarmed bandit)
55. A teljes kép – hírdetői kontroll
• Minőség felett
▪ Rossz képek letiltása / újra generálása
▪ Minőségellenőrző modell ezeket később figyelembe veszi
• Témák felett
▪ Termékcsoportonként mi legyen a környezet, milyen stílusban
▪ Támogatás a rendszertől: mi teljesít jól
• Részletek felett
▪ Milyen extrák (logó, terméknév, akció, stb) kerüljön a képre
▪ Prompt finomhangolása
56. Összefoglalás
• Termék szintű banner generálás automatikusan
• Stable diffusion
▪ Érdemes a modell natív pixelszáma körüli képekkel dolgozni
▪ Kondicionáláshoz használt háttérrel jól kontrollálható az eredmény
• Pipelineok
▪ Inpainting
o Élesebb hátterek, de artifaktok előfordulhatnak
▪ ControlNet
o Nincsenek artifaktok, de elmosódottabb a háttér
• Eredmények
▪ Jelentős növekedés a kattintások számában
▪ és konverzió növekedés ennek folyományaként
• A banner generálás csak egy része a teljes megoldásnak