Ako sme vytvorili nový reklamný systém ChatGPT s dôrazom na dôveru používateľov a relevantnosť
Autori: Ritendra Datta a Karthik Gopalratnam, členovia technického tímu
Tradičné reklamné systémy sú vytvorené tak, aby reagovali na jednotlivé prejavy zámeru používateľa. Používateľ niečo vyhľadá alebo si pozrie online, reklamný systém prijme tieto dopyty a zobrazenia stránok ako udalosti a na ich základe hľadá zodpovedajúce reklamy. Budovanie reklamnej platformy pre ChatGPT bolo iné: zámer používateľa sa vyvíja naprieč konverzáciami a mení sa počas viacerých výmen správ, pričom niekedy vôbec nenastane vhodný okamih na reklamu. Na podporu tohto nového prístupu sme vytvorili systém doručovania reklám na mieru. Tento nový typ reklamnej platformy je založený na vlastnom post-trénovanom prelomovom LLM, ktorý volá nástroje na vyhľadávanie (identifikáciu najlepších možností), zoraďovanie (predikciu zapojenia používateľa), posudzovanie relevantnosti (hodnotenie užitočnosti reklamy) a realizáciu aukcií na konečný výber reklamy a stanovenie ceny.
Náš reklamný systém zohľadňuje jemné rozdiely vo vyvíjajúcich sa cieľoch používateľov vďaka trom kľúčovým rozhodnutiam pri návrhu: 1) zaviedli sme stavové reklamné relácie, takže informácie sa uchovávajú medzi výmenami správ aj medzi viacerými konverzáciami; 2) využívame vlastný post-trénovaný LLM s architektúrou volania nástrojov, ktorý interpretuje kontext a skrytý zámer konverzácie a následne efektívne vyberá, zoraďuje a doručuje reklamy; 3) proces výberu reklám beží oddelene od generovania odpovedí ChatGPT vo vlastnej službe, aby reklamy neovplyvňovali odpovede a ChatGPT si zachoval neutrálny tón. Náš post-trénovaný LLM riadi celý reklamný proces a určuje, ktorú reklamu zobraziť v správnom čase, na základe aktuálnej výmeny správ aj histórie konverzácie používateľa. Kým vybudovanie takéhoto sebazdokonaľujúceho reklamného systému od základov kedysi trvalo roky, ChatGPT Ads dosiahli tempo tržieb zodpovedajúce 1 miliarde dolárov ročne za menej ako 200 dní od spustenia. Od spustenia už v ChatGPT inzerovalo viac ako 100 000 inzerentov.
Bežná reklamná požiadavka sa zvyčajne začína jasne definovanou udalosťou. Používateľ zadá vyhľadávací dopyt alebo otvorí webovú stránku a reklamný systém prijme požiadavku. Takýto systém je pomerne jednoduchý: vyhľadá potenciálnych kandidátov na reklamu, zoradí ich, uskutoční aukciu na primerané ocenenie reklamnej príležitosti a výslednú reklamu zobrazí používateľovi. V ChatGPT takýto jednoznačný okamih prirodzene nevzniká.
Ľudia prichádzajú do konverzácie s ChatGPT s cieľmi, nie s vyhľadávacím dopytom na jednu odpoveď. Môžu plánovať výlet, vyberať softvér pre svoju firmu, zariaďovať domácnosť alebo sa venovať novému koníčku. To všetko sa neodohrá počas jedinej výmeny správ. ChatGPT používateľovi často priebežne pomáha ujasniť si, čo je dôležité.
Náš vývojársky tím sa napríklad opýtal ChatGPT, ako trénovať na preteky. Konverzácia sa začína všeobecnou otázkou o behu. O niekoľko výmen správ neskôr sa tím pýta na obuv vhodnú na tréning. Obchodný význam konverzácie sa mení s každou novou podmienkou a tento osobný kontext sa vyvíja naprieč viacerými reláciami. Systém, ktorý by konal na základe prvej správy, by mohol vyhľadávať podľa úplne nesprávneho zámeru, a tým zhoršiť používateľský zážitok a prekážať používateľovi.
Pri budovaní nášho reklamného systému sme museli prekonať reklamnú architektúru založenú na požiadavke a odpovedi. Platformu sme vytvorili od základov tak, aby nachádzala potenciálne obchodné príležitosti a zároveň uprednostňovala dôveru používateľov a prínos pre nich.
Keby sme každú správu menili na samostatnú požiadavku ako v tradičnom reklamnom systéme, v našom chatovom prostredí by to prinášalo niekoľko rizík: 1) nesprávne pochopenie cieľa používateľa v dôsledku prílišného zjednodušenia; 2) predčasné spustenie reklamného procesu, skôr než je jasná skutočná potreba používateľa; 3) zobrazovanie reklám, ktoré používateľovi prekážajú pri dosahovaní cieľa namiesto toho, aby mu pomáhali; 4) neefektívne opakovanie reklamného procesu pri každej zmene požiadavky, čo vytvára šum a zbytočné náklady. Namiesto orientácie na jednotlivé udalosti udržiava reklamný systém (zahŕňajúci vyhľadávanie, zoraďovanie a doručovanie) stavovú reláciu. Reklamná relácia teda prebieha počas celej výmeny správ, ktorá spĺňa podmienky na reklamu, pričom si informácie pamätá a priebežne ich aktualizuje. ChatGPT odošle počiatočný kontext požiadavky reklamnému serveru. Reklamný systém sleduje vývoj konverzácie a prispôsobuje sa mu namiesto spoliehania sa na jediný zjednodušený dopyt.
Proces výberu reklám prebieha súbežne s bežným generovaním odpovedí ChatGPT, aby reklamný proces neovplyvňoval jeho odpovede. Reklamy filtruje a vyberá samostatný systém, ktorý spracúva konverzáciu podľa vlastných podmienok spôsobilosti, kvality a doručovania. Toto dôležité architektonické oddelenie – rôzne služby používajúce samostatné modely a samostatný kód – umožňuje hlavným serverom ChatGPT generovať odpoveď bez reklamného vplyvu. Reklamný systém medzitým nezávisle vyhodnocuje, či existuje vhodná reklamná príležitosť, a ak áno, pripraví sponzorované umiestnenie prostredníctvom samostatného procesu zobrazovania.
Reklamný proces prebieha súbežne s tvorbou odpovede ChatGPT.
Okrem ochrany používateľského zážitku má toto oddelenie aj praktické dôsledky. ChatGPT nie je závislý od reklamného systému – tieto služby nie sú nijako prepojené a nezdieľajú model na generovanie obsahu. Ak je teda systém zobrazovania reklám nedostupný alebo pomalý, tvorba odpovede ChatGPT bez reklamného vplyvu pokračuje bez zmeny. Reklamný systém tak nemôže spôsobiť výpadok ani spomalenie produktu ChatGPT. Ďalšou výhodou tohto oddelenia je zachovanie veľmi vysokých nárokov na prínos reklám. Aj neposkytnutie žiadnej reklamy je bežným a úspešným výsledkom. Systém doručí reklamu len vtedy, ak je jednoznačne prínosná pre používateľov aj inzerentov.
Ďalšou kľúčovou súčasťou architektúry našej reklamnej platformy je post-trénovaný LLM, ktorý interpretuje konverzácie a riadi celý reklamný proces v agentnej slučke. Prostredníctvom volaní nástrojov využíva základné funkcie reklamného systému od vyhľadávania cez zoraďovanie a aukciu až po samotné doručenie. Tento LLM nazývame orchestrátor.
Prvým krokom reklamného procesu je pochopenie zámeru používateľa, aby sa mohlo začať vyhľadávanie. Ide o rýchle a zámerne široké zhromaždenie potenciálnych reklám, ktoré sa neskôr prefiltrujú. Postupné prijímanie konverzácie prináša pri vyhľadávaní bohatšie podklady, ale aj viac nejednoznačnosti, pretože reklamný systém musí rozlíšiť aktuálny zámer od už neaktuálneho kontextu. Orchestrátor musí interpretovať odkazy na skoršie správy, rozpoznať, kedy používateľ hovorí hypoteticky, a nevnímať každú zmienku o produkte či službe ako požiadavku na nákup.
Reklamný orchestrátor využíva dostupnú konverzáciu a kontext používateľa a v opakovaných krokoch hľadá vhodné reklamy. Priebežne rozhoduje, kedy a ktorý nástroj zavolať, s hlavným cieľom nájsť pre danú konverzáciu a kontext najvhodnejšiu reklamu – takú, ktorá vyvažuje vysoký prínos pre používateľa aj inzerenta. Ak si používateľ zvolí prispôsobené reklamy, orchestrátor pri hľadaní najvhodnejších reklám zohľadní aj dostupné informácie o jeho minulých konverzáciách, ktoré nie sú citlivé.
Reklamný orchestrátor opakovane volá nástroje na doručovanie reklám, aby našiel prínosné reklamy.
Ako konverzácia pokračuje a reklamný orchestrátor získava aktuálnejšie informácie, môže spustiť novú sériu volaní nástrojov s aktualizovaným kontextom. Nájde tak vhodnejšie reklamy a odošle ich klientovi, ktorý ich môže použiť, ak dorazia včas.
Orchestrátor je navrhnutý tak, aby vyvažoval prínos pre používateľov a inzerentov, pričom používatelia sú vždy na prvom mieste.
Reklamný systém sa skladá z jednotlivých nástrojov, ktoré orchestrátor opakovane volá, aby našiel najlepšie reklamy pre danú konverzáciu. V skratke: orchestrátor mení konverzácie na stručné textové súhrny, ktoré sa následne prevádzajú na sémantické embeddingy (uložené reprezentácie významu, v ktorých sa reklamnému systému ľahšie vyhľadáva). Pomocou nich vyhľadáva kandidátov na reklamu, filtruje ich podľa spôsobilosti (na základe rozpočtu, nastavení používateľa a ďalších predbežných kontrol), posudzuje ich kvalitu a relevantnosť a napokon ich zoradí, aby určil najprínosnejšie možnosti umiestnenia na konci odpovede v chate. Každá reklama preto musí spĺňať vysoké nároky na spôsobilosť a relevantnosť, aby sa mohla zobraziť.
Orchestrátor založený na LLM najprv pripraví jeden alebo viac dopytov, ktoré vyjadrujú relevantný obchodný zámer. Môže pritom preformulovať kontext konverzácie tak, aby rozšíril obchodné možnosti nad rámec doslovných vyhľadávacích dopytov, a následne vytvoriť sémantické reprezentácie. Orchestrátor pri tom zhrnie konverzáciu s viacerými výmenami správ do podoby určenej pre vyhľadávací systém, ktorý cielene vyhľadáva reklamy v našej databáze.
Reklamy budú prínosnejšie pre používateľov aj inzerentov, ak sa zobrazia len na základe dôkladného pochopenia zámeru používateľa. Viaceré dopyty môžu zachovať rôzne aspekty zámeru. Konverzácia o plánovaní výletu môže napríklad zahŕňať odlišné potreby týkajúce sa dopravy, ubytovania či aktivít. Vyhľadávací systém dokáže tieto rozdiely zachovať namiesto toho, aby celú konverzáciu zredukoval na jediný doslovný reťazec.
Ako príklad si pozrime možný sled správ v konverzácii o turistickej obuvi:
What should I cover on a two-day trip to Yosemite?
Will it be cold next week?
New [insert brand] product lines?
Hoci používateľ nespojil otázku o značke obuvi s výletom do Yosemitského národného parku, náš reklamný systém môže túto konverzáciu reprezentovať dvoma dopytmi, napríklad [shoes appropriate for hiking trip] a [new [brand] product lines good for travel]. Môže ísť len o prvý pokus. Orchestrátor je navrhnutý tak, aby tieto reprezentácie opakovane upravoval, kým v našej ponuke nenájde reklamy s vysokým prínosom pre používateľa.
Vyhľadávanie je proces vytvárania zámerne širokého súboru reklamných možností. Kandidáti môžu pochádzať z rôznych stratégií vyhľadávania a neskôr súťažiť za rovnakých podmienok zobrazovania. Vytvárame viacero indexov optimalizovaných pre rôzne systémové a produktové obmedzenia. Napríklad index pre reklamy z produktového feedu je navrhnutý tak, aby pri vyhľadávaní najlepších možných reklám zohľadňoval pozitívne či negatívne recenzie produktov. Pri iných reklamách, ku ktorým sa recenzie nemusia viazať, to nie je relevantné. Každý index je optimalizovaný pre určitú verziu približného vyhľadávania najbližších susedov (ANN) s použitím embeddingov reprezentujúcich zámer používateľa. Vyhľadávanie ANN je aproximačný algoritmus na vyhľadávanie vo veľkých sémantických indexoch. Reklamy sa tak načítajú veľmi rýchlo: namiesto hľadania „toho správneho“ riešenia sa algoritmus približuje k dobrému riešeniu a pritom zachováva väčšinu relevantných kandidátov.
Reklamný systém počas vyhľadávania reklám využíva preformulované dopyty na tvorbu sémantických embeddingov a zostavenie širokého súboru kandidátov na reklamu.
Cieľom filtrovania je vyradiť všetkých kandidátov na reklamu, ktorí nespĺňajú požiadavky na umiestnenie z hľadiska relevantnosti, cenových ponúk a rozpočtu. V závislosti od kandidáta a konfigurácie môžu kontroly pri filtrovaní zahŕňať dostupnosť reklamných kreatív a kampane (či sú kampaň alebo kreatívy aktívne), cielenie kampane (napr. v ktorých lokalitách môže kampaň prebiehať), obmedzenia vyplývajúce z pravidiel (požiadavky na to, čo sa smie inzerovať), dostupnosť rozpočtu (či má kampaň ešte prostriedky na čerpanie), tempo čerpania (či má kampaň čerpať rozpočet teraz alebo inokedy počas dňa), kompatibilitu umiestnenia (v akých typoch konverzácií sa môže reklama zobrazovať) a odstránenie duplicít na úrovni inzerenta a kampane (výber primeraného počtu reklám na inzerenta, aby sa zabezpečila spravodlivá účasť rôznych firiem).
Kandidáti, ktorí prejdú kontrolami spôsobilosti, postupujú do fázy bodového hodnotenia. Orchestrátor v nej volá nástroje rôznych hodnotiacich systémov, ktoré posudzujú faktory dôležité pre zobrazovanie, napríklad sémantickú relevantnosť (súvisí reklama s cieľom používateľa?), predpokladané zapojenie (je pravdepodobné, že si používateľ reklamu pozrie, klikne na ňu a dosiahne sa výsledok požadovaný inzerentom?) či doterajšiu výkonnosť (dosahovala reklama pri zobrazovaní používateľom dobré výsledky?). Orchestrátor pred aukciou tiež filtruje reklamy, aby zabezpečil ich relevantnosť a bezpečnosť. Tieto systémy zúžia výber na menší súbor kandidátov pripravených na aukciu, no stále neurčujú, ktorá reklama sa napokon doručí.
Orchestrátor vyhodnotí pripravených kandidátov v kontexte konverzácie a vyberie tých, ktorí sú dostatočne vhodní na účasť v záverečnej aukcii. Orchestrátor priamo nerozhoduje, ktorá reklama sa zobrazí, ani neurčuje cenu. Nominuje kontextovo vhodných kandidátov na posúdenie aukčným nástrojom.
Aukcia uplatňuje záverečné mechanizmy zobrazovania: prijatie do aukcie (splnenie minimálneho prahu relevantnosti a prínosu), tempo čerpania (rovnomernejšie míňanie reklamného rozpočtu), výpočet cenových ponúk a aukčných parametrov, zoraďovanie so zohľadnením kvality, stanovenie ceny a konečný výber.
Po aukcii existujú dva dôvody, pre ktoré sa reklama nemusí doručiť. Oba sú špecifické pre konverzačné prostredie ChatGPT.
Reklama môže v chate pôsobiť nevhodne: Hoci modely na ochranu integrity (modely rozhodujúce o tom, kedy je vhodné zobraziť reklamu) vyhodnotili samotnú konverzáciu ako bezpečnú na umiestnenie reklamy a reklama bola posúdená ako vyhovujúca pravidlám, v kontexte niektorých konverzácií môže napriek tomu pôsobiť nevhodne. Orchestrátor zabráni zobrazeniu takýchto reklám.
Požiadavka na reklamu sa nemusí vybaviť včas: Ak je model ChatGPT pripravený odpovedať, ale reklama ešte nie je pripravená na umiestnenie, časový limit požiadavky na reklamu vyprší a reklama sa nedoručí. Jedným z cieľov reklamného systému je preto fungovať čo najrýchlejšie. Čas odpovede modelu ChatGPT sa mení a odpovede v chate nezdržiavame čakaním na načítanie reklám.
Ak reklama prejde všetkými uvedenými kontrolami, odošleme ju do frontendu na vykreslenie. Považujeme to za doručenie reklamy na strane servera, no používateľovi ju ešte stále nemusíme zobraziť – a je to zámer.
V konverzačnom produkte, ako je ChatGPT, doručenie reklamnej kreatívy na strane servera nezaručuje zobrazenie reklamy. Reklama musí doraziť aj včas, aby sa dala zaradiť do aktuálnej výmeny správ. Reklamná kreatíva obsahuje nadpis, opis, cieľový odkaz a prípadnú výzvu na akciu. Reklamný systém navyše vracia aj úvod vytvorený modelom – krátke, neutrálne vysvetlenie toho, ako reklama súvisí s konverzáciou. Oddelenie úvodu od reklamnej kreatívy zachováva posolstvo inzerenta a zároveň udržiava neutrálny tón ChatGPT.
Frontend ChatGPT prijíma úvod a reklamnú kreatívu v jednom balíku. Ak balík dorazí pred úplným vygenerovaním odpovede ChatGPT, frontend zobrazí reklamu pod odpoveďou s jasným označením sponzorovaného obsahu. Ak dorazí príliš neskoro, reklama sa pri danej výmene správ nezobrazí. V tom spočíva rozdiel medzi doručením reklamy na strane servera a jej zobrazením používateľovi.
Výber víťaza a doručenie sú samostatné udalosti. Vybraná reklama sa považuje za doručenú až po tom, čo ChatGPT schváli a zobrazí jej umiestnenie a doručenie sa potvrdí.
Naša reklamná platforma využíva tradičné zaznamenávanie udalostí a dátové pipeline. Prináša to tri hlavné výhody: inzerenti môžu jednoduchšie integrovať svoje existujúce systémy s našou platformou, zlepšovať svoje stratégie na základe údajov z reportov a náš tím môže identifikovať oblasti systému, ktoré treba zlepšiť. Okrem týchto reportovacích a optimalizačných nástrojov nasadzujeme kvalitný model, ktorý vyhodnocuje doručovanie a trénuje ďalšie reklamné modely. Vytvára tak účinný cyklus sebazdokonaľovania.
Podrobné rozbory priebehu nám pomáhajú pochopiť a zlepšovať každú časť reklamného systému samostatne. Systém spracovania záznamov zachytáva aj podrobné výsledky, napríklad:
Výmena správ nespĺňala podmienky na zobrazenie reklamy.
Reklamná relácia sa začala, ale nebolo vyžiadané vyhľadávanie.
Vyhľadávanie nevrátilo žiadnych kandidátov.
Kandidáti sa našli, no zlyhalo doplnenie ich údajov alebo neprešli kontrolou spôsobilosti.
Reklama bola doručená a neskôr s ňou používateľ interagoval.
Tieto podrobné rozbory nám pomáhajú zlepšovať každú časť systému zobrazovania reklám samostatne. Zlepšovanie rozpoznávania príležitostí si vyžaduje iné podklady než zlepšovanie vyhľadávania, kvality kandidátov, účasti v aukciách či spoľahlivosti doručovania.
Systémy doručovania, zobrazovania a kvality sledujú každý inú časť životného cyklu. Spracovanie riadené pravidlami ochrany súkromia určuje, čo možno použiť na meranie a zlepšovanie modelov.
Myšlienkou hodnotenia pomocou modelov je, že naše najsilnejšie modely s najlepšími schopnosťami uvažovania sledujú a posudzujú výsledky systému. Následne zlepšujú post-trénovaný LLM tým, že ho trénujú na lepší výkon. Na orchestráciu či vyhľadávanie môžeme napríklad používať menšie, efektívnejšie modely alebo modely s nižšou úrovňou uvažovania, ak náš najvýkonnejší model zbiera spätnú väzbu a trénuje tieto menšie modely tak, aby svoju prácu vykonávali čo najlepšie.
Zhromažďujeme spätnú väzbu od ľudí (kliknutia a skrytia reklám používateľmi), odpovede z používateľských prieskumov aj priamu spätnú väzbu od inzerentov cez náš nástroj Správca reklám a na ich základe konáme. Náš tím je počas vývoja otvorený spätnej väzbe a priamo počúva, čo si želajú používatelia ChatGPT aj inzerenti. Táto spätná väzba ovplyvňuje naše smerovanie ešte viac než spätná väzba z pozorovaní modelu. Aj vďaka nej sme sa dokázali rýchlo dopracovať k správnym produktovým rozhodnutiam. Model možno dokáže pochopiť zámer používateľa a kriticky uvažovať, aby mu priniesol niečo užitočné, no cit pre vhodnosť formujú ľudia.
Pred rokom sme nemali žiadny reklamný systém a tejto oblasti sa venovalo len niekoľko ľudí. Dnes máme robustný reklamný systém, ktorý pri súčasnom tempe prináša v ročnom prepočte tržby vyše 1 miliardy dolárov. Reklamný proces v ňom riadi orchestrátor založený na LLM. Codex zásadne znásobil naše možnosti a umožnil nám vybudovať systém od základov a dosiahnuť tento významný míľnik využívania bezprecedentnou rýchlosťou. Od začiatku sme tím aj vývojové postupy nastavili tak, aby sme s nástrojom Codex mohli systém rýchlo budovať a škálovať. Pre Codex sme vytvorili ochranné mechanizmy, aby dokázal spoľahlivo a bezpečne nasadzovať kód. Súbežne sme pre Codex pripravili doplnky dátovej infraštruktúry, ktoré výrazne skrátili cyklus získavania poznatkov a zavádzania zlepšení do systému vrátane nových funkcií produktu, vyššej kvality a lepšieho výkonu systému.
Kombinácia hraníc nášho systému (vychádzajúcich z našich zásad reklamy) a orchestrátora založeného na LLM nám umožňuje robiť reklamu užitočnou bez toho, aby sme každú konverzáciu považovali za požiadavku na reklamu. Do budúcnosti budeme ďalej experimentovať s dynamickejšími reklamnými formátmi, ktoré zvýšia prínos pre používateľov (napríklad možnosťou komunikovať priamo s firmami cez reklamy) aj pre inzerentov. Sebazdokonaľujúca architektúra platformy postavená na modeloch OpenAI s nepretržitými cyklami spätnej väzby nám umožní ešte rýchlejšie a priebežne zlepšovať relevantnosť a prispôsobenie.



