Kako smo zgradili nov oglasni sistem za ChatGPT za zaupanje uporabnikov in ustrezne oglase
Avtorja: Ritendra Datta in Karthik Gopalratnam, člana tehnične ekipe
Tradicionalni oglasni sistemi so zasnovani tako, da se odzivajo na posamezne izraze uporabnikovega namena. Uporabnik nekaj išče ali si ogleduje na spletu, oglasni sistem te poizvedbe in oglede strani prejme kot dogodke, nato pa na njihovi podlagi poišče ustrezne oglase. Gradnja oglasnega sistema za ChatGPT je bila drugačna: uporabnikov namen se razvija skozi pogovore in spreminja v več izmenjavah znotraj pogovora, pri čemer včasih sploh ni primernega trenutka za oglaševanje. Za podporo tej novi paradigmi smo zgradili namenski sistem za dostavo oglasov. Ta nova vrsta oglasnega sistema temelji na prilagojenem, naknadno naučenem prelomnem velikem jezikovnem modelu, ki izvaja orodne klice za pridobivanje oglasov (prepoznavanje najboljših možnosti), razvrščanje (napovedovanje odziva uporabnikov), preverjanje ustreznosti (ocenjevanje koristnosti oglasa) ter izvedbo dražb za končni izbor oglasov in določanje cen.
Naš oglasni sistem upošteva nianse spreminjajočih se uporabniških ciljev na podlagi treh ključnih oblikovalskih odločitev: 1) uvedbe oglasnih sej, ki ohranjajo stanje, kar pomeni, da se informacije pomnijo med izmenjavami v pogovoru in med več pogovori; 2) uporabe prilagojenega, naknadno naučenega velikega jezikovnega modela, ki z arhitekturo orodnih klicev razume kontekst pogovora in njegov temeljni namen ter nato učinkovito izbira, razvršča in dostavlja oglase; in 3) izvajanja izbora oglasov ločeno od ustvarjanja odgovorov v ChatGPT, v lastni storitvi, da oglasi ne vplivajo na odgovore in da ChatGPT ohrani nevtralen ton. Z naknadno naučenim velikim jezikovnim modelom usklajujemo celoten oglasni postopek ter na podlagi trenutne izmenjave in zgodovine pogovora določimo, kateri oglas prikazati ob pravem času. Medtem ko je gradnja takšnega samoizboljševalnega oglasnega sistema od začetka nekoč trajala več let, so Oglasi ChatGPT dosegli tempo ustvarjanja prihodkov v višini milijarde dolarjev na letni ravni v manj kot 200 dneh po uvedbi; od uvedbe do danes je v ChatGPT oglaševalo že več kot 100.000 oglaševalcev.
Običajna zahteva za oglas se navadno začne z jasno opredeljenim dogodkom. Uporabnik odda iskalno poizvedbo ali odpre spletno stran, oglasni sistem pa prejme zahtevo. Tak sistem je precej preprost: pridobi možne kandidate za oglase, jih razvrsti, izvede dražbo, da ustrezno ovrednoti priložnost, in uporabniku prikaže izbrani oglas. Pri uporabi storitve ChatGPT tak jasno določen trenutek ne nastane sam od sebe.
Ljudje v pogovor s ChatGPT vstopajo s cilji, ne z iskalno poizvedbo, za katero bi zadostoval en odgovor. Morda načrtujejo potovanje, izbirajo programsko opremo za podjetje, opremljajo dom ali se lotevajo novega hobija. Vse to se ne zgodi v eni sami izmenjavi v pogovoru. ChatGPT uporabniku med pogovorom pogosto pomaga razjasniti, kaj je pomembno.
Naša inženirska ekipa je na primer vprašala ChatGPT, kako trenirati za tekmo: pogovor se začne s splošnim vprašanjem o teku. Več izmenjav pozneje ekipa vpraša o čevljih za trening. Komercialni pomen pogovora se spremeni z vsako novo omejitvijo, ta osebni kontekst pa se razvija skozi več sej. Sistem, ki bi ukrepal že na podlagi prvega sporočila, bi lahko povsem napačno prepoznal namen, s tem poslabšal uporabniško izkušnjo in uporabnika oviral.
Pri gradnji oglasnega sistema smo morali preseči oglaševalsko arhitekturo zahteva–odgovor in sistem zgraditi povsem na novo, da bi lahko prepoznavali možne poslovne priložnosti, hkrati pa dajali prednost zaupanju uporabnikov in koristnosti zanje.
Če bi vsako sporočilo pretvorili v samostojno zahtevo kot v tradicionalnem oglasnem sistemu, bi to pri uporabi v klepetu prineslo več tveganj: 1) napačno razumevanje uporabnikovega cilja zaradi pretiranega poenostavljanja, 2) prezgodnji začetek oglasnega postopka, še preden bi bila dejanska potreba uporabnika jasna, 3) prikazovanje oglasov, ki uporabnika pri doseganju cilja ovirajo, namesto da bi mu pomagali, ter 4) neučinkovito ponovno izvajanje oglasnega postopka ob vsaki spremembi zahteve, kar bi ustvarjalo šum in nepotrebne stroške. Oglasni sistem, ki zajema pridobivanje, razvrščanje in dostavo oglasov, namesto osredotočanja na posamezne dogodke vzdržuje sejo z ohranjanjem stanja. To pomeni, da oglasna seja traja ves čas izmenjave, ki izpolnjuje pogoje za oglase, pri tem pa pomni in posodablja informacije, ko se te spreminjajo. ChatGPT oglasnemu strežniku pošlje začetni kontekst zahteve. Oglasni sistem spremlja razvoj pogovora in se mu prilagaja, namesto da bi se opiral na eno samo poenostavljeno poizvedbo.
Izbor oglasov poteka vzporedno z običajnim ustvarjanjem odgovorov v ChatGPT, kar zagotavlja, da oglasni postopek ne vpliva na odgovore. Oglase filtrira in izbira ločen sistem, ki pogovor obdeluje v skladu z lastnimi pogoji za prikaz ter omejitvami glede kakovosti in dostave. Ta pomembna arhitekturna ločnica – različne storitve, ki uporabljajo ločene modele in ločeno kodo – omogoča, da osrednji strežniki ChatGPT ustvarjajo neplačan odgovor. Oglasni sistem medtem neodvisno ocenjuje, ali obstaja primerna oglaševalska priložnost, in če obstaja, v ločenem postopku prikazovanja pripravi sponzorirano umestitev.
Oglaševanje poteka vzporedno s pripravo odgovora v ChatGPT.
Ta ločitev poleg zaščite uporabniške izkušnje prinaša tudi nekaj praktičnih posledic. ChatGPT ni odvisen od oglasnega sistema – storitvi nista nikakor prepleteni in ne uporabljata skupnega modela za ustvarjanje vsebine. Če je torej sistem za prikazovanje oglasov nedosegljiv ali počasen, to ne vpliva na pripravo neplačanega odgovora v ChatGPT. To pomeni, da oglasni sistem ne more povzročiti izpada ali upočasnitve storitve ChatGPT. Druga prednost te ločitve je, da ohranja zelo visoke zahteve glede koristnosti oglasov. Tudi če sistem ne vrne nobenega oglasa, je to običajen, uspešen izid. Sistem dostavi oglas le, če ta jasno koristi uporabnikom in oglaševalcem.
Druga ključna arhitekturna komponenta našega oglasnega sistema je naknadno naučen veliki jezikovni model, ki razlaga pogovore in vodi celoten oglasni postopek v agentski zanki – z orodnimi klici temeljnih funkcij oglasnega sistema, od pridobivanja oglasov do razvrščanja, dražbe in nazadnje dostave. Ta veliki jezikovni model imenujemo orkestrator.
Prvi del oglasnega postopka je razumevanje uporabnikovega namena, s katerim se začne pridobivanje oglasov: hitro in namerno široko iskanje možnih oglasov, ki jih sistem pozneje filtrira. Postopno prejemanje pogovora prinaša več informacij, a tudi več dvoumnosti pri pridobivanju oglasov, saj mora oglasni sistem ločiti trenutni namen od zastarelega konteksta. Orkestrator mora razumeti sklicevanje na prejšnja sporočila, prepoznati, kdaj uporabnik govori hipotetično, in se izogniti temu, da bi vsako omembo izdelka ali storitve obravnaval kot željo po nakupu.
Oglasni orkestrator uporablja razpoložljivi pogovor in kontekst uporabnika ter v več korakih išče dobre oglase. Pri tem vedno znova izbira, kdaj naj pokliče katero orodje, s temeljnim ciljem poiskati najprimernejši oglas za ta pogovor in kontekst – takšnega, ki uravnoteži veliko korist za uporabnika in oglaševalca. Če se uporabnik odloči za prilagajanje oglasov, orkestrator pri iskanju najustreznejših oglasov upošteva tudi razpoložljive neobčutljive podatke o njegovih preteklih pogovorih.
Oglasni orkestrator v več ponovitvah kliče orodja za dostavo oglasov, da poišče koristne oglase.
Ko pogovor napreduje in oglasni orkestrator prejme nove informacije, lahko s posodobljenim kontekstom izvede nov niz orodnih klicev, da poišče boljše oglase in jih vrne odjemalcu. Ta jih lahko uporabi, če prispejo pravočasno.
Orkestrator je zasnovan tako, da uravnoteži korist za uporabnike in oglaševalce, pri čemer so uporabniki vedno na prvem mestu.
Oglasni sistem sestavljajo posamezna orodja, ki jih orkestrator kliče v več ponovitvah, da poišče najboljše oglase za pogovor. V grobem orkestrator pogovore pretvori v kratke besedilne povzetke, ti pa se nato pretvorijo v semantične vektorske vložitve (shranjene pomene, po katerih oglasni sistem lažje išče). Z njimi pridobi kandidate za oglase, jih filtrira glede na izpolnjevanje pogojev (na podlagi proračuna, uporabniških nastavitev in drugih predhodnih preverjanj), oceni njihovo kakovost in ustreznost ter jih dokončno razvrsti, da prepozna najbolj koristne priložnosti za umestitev na koncu odgovora v klepetu. Vsak oglas mora torej izpolnjevati stroge pogoje za prikaz in visoka merila ustreznosti, da ga je mogoče umestiti.
Veliki jezikovni model v vlogi orkestratorja najprej pripravi eno ali več poizvedb, ki predstavljajo zadevni komercialni namen. To lahko vključuje preoblikovanje konteksta pogovora, da razširi komercialne možnosti onkraj neposrednih iskalnih poizvedb, in nato ustvarjanje semantičnih predstavitev. Pri tem orkestrator pogovor z več izmenjavami strne v povzetek za sistem za pridobivanje oglasov, ki tako osredotočeno pridobiva oglase iz naše zbirke podatkov.
Umestitve oglasov bodo boljše tako za uporabnike kot za oglaševalce, če se bodo oglasi prikazovali le ob poglobljenem razumevanju uporabnikovega namena. Več poizvedb lahko ohrani različne vidike namena. Pogovor o načrtovanju potovanja lahko na primer vsebuje ločene potrebe glede prevoza, nastanitve ali dejavnosti. Sistem za pridobivanje oglasov lahko ohrani te razlike, namesto da bi celoten pogovor strnil v en sam dobesedni niz.
Za primer si oglejmo možen potek pogovora o pohodniških čevljih:
Kaj naj si ogledam na dvodnevnem izletu v park Yosemite?
Bo naslednji teden hladno?
Nova linija izdelkov [insert brand]?
Čeprav uporabnik vprašanja o znamki čevljev ni povezal z izletom v Yosemite, bi lahko naš oglasni sistem ta pogovor predstavil z dvema poizvedbama, na primer [primerna obutev za pohodniški izlet] in [nova linija izdelkov [znamka], primernih za potovanja]. To je lahko le prvi poskus; orkestrator je zasnovan tako, da te predstavitve večkrat izpopolni, dokler v naši ponudbi ne najde oglasov, ki so za uporabnika zelo koristni.
Pridobivanje oglasov je postopek oblikovanja namerno širokega nabora možnih oglasov. Kandidate je mogoče pridobiti z različnimi strategijami, pozneje pa lahko tekmujejo pod enakimi omejitvami prikazovanja. Gradimo več indeksov, optimiziranih za različne sistemske in produktne omejitve. Indeks za oglase iz vira podatkov o izdelkih je na primer zasnovan tako, da pri pridobivanju najboljših možnih oglasov upošteva pozitivne ali negativne ocene izdelkov. To ni pomembno za druge oglase, ki morda nimajo povezanih ocen. Vsak indeks je optimiziran za določeno različico približnega iskanja najbližjih sosedov (ANN) z vektorskimi vložitvami, ki predstavljajo uporabnikov namen. To iskanje ANN je približni algoritem za pridobivanje oglasov iz velikih semantičnih indeksov. Oglase pridobi zelo hitro, saj se približa dobri rešitvi, namesto da bi iskal »pravo«, pri tem pa ohrani večino ustreznih kandidatov.
Oglasni sistem med pridobivanjem oglasov s preoblikovanimi poizvedbami ustvari semantične vektorske vložitve in oblikuje širok nabor kandidatov za oglase.
Cilj filtriranja je iz nadaljnje obravnave izločiti vse kandidate za oglase, ki ne izpolnjujejo meril za umestitev glede ustreznosti, ponudb in proračuna. Preverjanja pri filtriranju lahko glede na kandidata in konfiguracijo vključujejo razpoložljivost oglasnih vsebin in kampanje (ali so kampanja oziroma oglasne vsebine aktivne), ciljanje kampanje (npr. v katerih jezikovnih in regionalnih okoljih sme potekati), omejitve pravilnikov (zahteve glede tega, kaj je dovoljeno oglaševati), razpoložljivost proračuna (ali ima kampanja še sredstva za porabo), tempo porabe (ali naj kampanja porablja sredstva zdaj ali ob drugem času dneva), združljivost z umestitvijo (za katere vrste pogovorov je oglas primeren) ter odstranjevanje podvojitev na ravni oglaševalca in kampanje (izbiro primernega števila oglasov na oglaševalca za zagotovitev pravičnega sodelovanja podjetij).
Kandidati, ki uspešno prestanejo preverjanje pogojev, preidejo v fazo točkovanja, v kateri orkestrator z orodnimi klici uporablja različne sisteme točkovanja. Ti ocenjujejo dejavnike za prikazovanje, kot so semantična ustreznost (ali oglas ustreza uporabnikovemu cilju?), predvideni odziv (ali bo uporabnik oglas verjetno videl, ga kliknil in dosegel izid, ki si ga želi oglaševalec?) ter pretekla uspešnost (ali je bil oglas doslej uspešen pri prikazovanju uporabnikom?). Orkestrator pred dražbo oglase tudi filtrira, da zagotovi ustreznost in varnost. Ti sistemi zožijo izbor na manjši nabor kandidatov, pripravljenih za dražbo, vendar še ne določijo končnega oglasa, ki bo dostavljen.
Orkestrator oceni pripravljene kandidate v kontekstu pogovora in izbere tiste, ki so dovolj obetavni za sodelovanje na končni dražbi. Orkestrator ne odloča neposredno o tem, kateri oglas bo prikazan, in ne določa cene. Predlaga kontekstualno ustrezne kandidate, ki jih nato oceni dražbeno orodje.
Dražba uporabi končne mehanizme za prikazovanje, vključno s pogoji za sodelovanje (doseganje minimalnega praga ustreznosti in koristnosti), uravnavanjem tempa porabe (enakomernejša poraba oglasnega proračuna), izračunom ponudb in dražbenih funkcij, razvrščanjem z upoštevanjem kakovosti, določanjem cen in končnim izborom.
Po dražbi lahko oglas ostane nedostavljen iz dveh razlogov, ki sta značilna za pogovorno okolje ChatGPT.
Oglas se v klepetu morda zdi neprimeren: Čeprav so modeli za zagotavljanje integritete (modeli, ki odločajo, kdaj je primerno prikazati oglas) pogovor ocenili kot varen za umestitev oglasa, sam oglas pa je bil ocenjen kot skladen s pravilniki, se lahko v kontekstu določenih pogovorov vseeno zdi neprimeren. Orkestrator prepreči prikaz teh oglasov.
Zahteva za oglas morda ni obdelana pravočasno: Če je model ChatGPT pripravljen odgovoriti, oglas pa še ni pripravljen za umestitev, se čas za zahtevo za oglas izteče in oglas ni dostavljen. Eden od ciljev oglasnega sistema je zato čim hitrejše delovanje. Odzivni čas modela ChatGPT se spreminja, odgovorov v klepetu pa ne zadržujemo, da bi počakali na nalaganje oglasov.
Če oglas uspešno prestane vsa zgornja preverjanja, ga pošljemo uporabniškemu vmesniku v izris. To štejemo za dostavo oglasa na strani strežnika, vendar oglasa uporabniku morda vseeno ne prikažemo – in to je namerno.
V pogovornem izdelku, kot je ChatGPT, dostava oglasne vsebine na strani strežnika ne zagotavlja, da bo oglas prikazan; prispeti mora tudi pravočasno, da se vključi v trenutno izmenjavo. Oglasna vsebina vključuje naslov, opis, ciljno povezavo in morebitni poziv k dejanju. Poleg tega oglasni sistem vrne uvodno besedilo, ki ga ustvari model: kratko, nevtralno pojasnilo, kako je oglas povezan s pogovorom. Z ločevanjem uvodnega besedila od oglasne vsebine ohranimo oglaševalčevo sporočilo, hkrati pa tudi nevtralen ton storitve ChatGPT.
Uporabniški vmesnik ChatGPT prejme uvodno besedilo in oglasno vsebino v skupnem paketu. Če paket prispe, preden ChatGPT v celoti ustvari odgovor, vmesnik pod odgovorom prikaže oglas, jasno označen kot sponzoriran. Če prispe prepozno, se oglas pri tej izmenjavi ne prikaže. To je razlika med dostavo oglasa na strani strežnika in prikazom oglasa uporabniku.
Izbira zmagovalca in dostava sta ločena dogodka. Izbrani oglas šteje za dostavljenega šele, ko ChatGPT odobri in prikaže umestitev ter je dostava potrjena.
Naš oglasni sistem uporablja običajno beleženje in cevovode za obdelavo podatkov, kar ima tri glavne prednosti: oglaševalci lahko lažje povežejo svoje obstoječe sisteme z našim, s podatki iz poročil lahko izboljšajo svoje strategije, naša ekipa pa lahko prepozna področja sistema, ki jih je mogoče izboljšati. Poleg teh orodij za poročanje in optimizacijo uporabljamo zelo kakovosten model za ocenjevanje dostave in učenje drugih oglasnih modelov, s čimer ustvarjamo zmogljivo zanko samoizboljševanja.
Podroben pregled dogajanja nam pomaga razumeti in izboljšati vsak del oglasnega sistema posebej. Sistem za obdelavo dnevnikov beleži tudi podrobne izide, kot so:
Izmenjava ni izpolnjevala pogojev za oglaševanje.
Oglasna seja se je začela, vendar pridobivanje oglasov ni bilo zahtevano.
Pridobivanje oglasov ni vrnilo nobenega kandidata.
Kandidati so bili pridobljeni, vendar dopolnitev s podatki ni uspela ali pa niso izpolnjevali pogojev.
Oglas je bil dostavljen, uporabnik pa je pozneje izvedel interakcijo z njim.
Ti podrobni pregledi nam pomagajo izboljševati vsak del sistema za prikazovanje oglasov posebej. Za izboljšanje zaznavanja priložnosti potrebujemo drugačne podatke kot za izboljšanje pridobivanja oglasov, kakovosti kandidatov, sodelovanja na dražbah ali zanesljivosti dostave.
Sistemi za dostavo, prikazovanje in kakovost spremljajo različne dele življenjskega cikla. Obdelava z nadzorom zasebnosti določa, kaj se sme uporabiti za merjenje in izboljševanje modelov.
Zamisel ocenjevanja z modeli je, da naši najzmogljivejši modeli z najboljšimi sposobnostmi sklepanja spremljajo in presojajo rezultate sistema, nato pa z dodatnim učenjem izboljšajo delovanje naknadno naučenega velikega jezikovnega modela. Za orkestracijo ali pridobivanje oglasov lahko na primer uporabljamo manjše, učinkovitejše modele ali modele z manjšo sposobnostjo sklepanja, če naš najzmogljivejši model zbira povratne informacije in te manjše modele uči, da svoje naloge opravljajo čim bolje.
Zbiramo in upoštevamo človeške povratne informacije (klike uporabnikov in skrivanje oglasov), pa tudi odgovore na uporabniške ankete in neposredne povratne informacije oglaševalcev prek našega upravitelja oglasov. Naša ekipa je med razvojem na voljo tudi za povratne informacije ter neposredno prisluhne željam uporabnikov storitve ChatGPT in oglaševalcev. Ta vir povratnih informacij našo smer oblikuje še bolj kot opažanja modela in nam je pomagal, da smo z zaporednimi izboljšavami hitro prišli do pravih odločitev o izdelku. Model lahko razume uporabnikov namen in kritično razmišlja, da ponudi nekaj koristnega, toda občutek za to, kaj je primerno, oblikujejo ljudje.
Pred letom dni nismo imeli oglasnega sistema, o tem področju pa je razmišljalo le nekaj ljudi. Zdaj imamo robusten oglasni sistem, ki pri trenutnem obsegu poslovanja ustvarja več kot milijardo dolarjev prihodkov na letni ravni, oglasni postopek pa vodi orkestrator na osnovi velikega jezikovnega modela. Codex je bistveno povečal našo učinkovitost in nam omogočil, da smo sistem zgradili od začetka ter ta pomembni mejnik uporabe dosegli z neprimerljivo hitrostjo. Ekipo in razvojne poteke dela smo že od začetka organizirali tako, da s pomočjo Codexa hitro gradimo in širimo sistem. Za Codex smo vzpostavili varovalke, ki omogočajo zanesljivo in varno uvajanje kode. Vzporedno smo za Codex vzpostavili vtičnike za podatkovno infrastrukturo, da bi močno skrajšali cikel od pridobivanja vpogledov do uvajanja izboljšav sistema, vključno z novimi funkcijami izdelka, višjo kakovostjo in boljšim delovanjem sistema.
Kombinacija omejitev našega sistema (ki temeljijo na naših oglaševalskih načelih) in orkestratorja na osnovi velikega jezikovnega modela nam omogoča koristno oglaševanje, ne da bi vsak pogovor obravnavali kot zahtevo za oglas. V prihodnje bomo še naprej preizkušali bolj dinamične oblike oglasov, da bi povečali korist za uporabnike (npr. z možnostjo neposrednega pogovora s podjetji prek oglasov) in oglaševalce. Samoizboljševalna arhitektura sistema, zasnovana na modelih OpenAI z neprekinjenimi povratnimi zankami, bo pospešila naše nadaljnje izboljševanje ustreznosti in prilagajanja oglasov.



