Как изградихме новата рекламна инфраструктура на ChatGPT за доверие и релевантност
От Ритендра Дата и Картик Гопалратнам, членове на техническия екип
Традиционните рекламни системи са създадени да реагират на отделни прояви на потребителско намерение. Потребителят търси или разглежда нещо онлайн, рекламната система получава тези заявки и преглеждания на страници като събития и търси съответстващи реклами въз основа на тях. Изграждането на рекламна инфраструктура за ChatGPT беше различно: намерението на потребителя се развива в разговорите и се променя в хода на многократния обмен на реплики, понякога без да възникне подходящ момент за реклама. За да поддържаме този нов подход, изградихме специализирана система за доставяне на реклами. Този нов тип рекламна инфраструктура е базиран на специално разработен авангарден голям езиков модел с последващо обучение. Той извиква инструменти за извличане (откриване на най-добрите варианти), класиране (прогнозиране на потребителската ангажираност), релевантност (оценяване на полезността на рекламата) и провеждане на търгове за окончателен избор и ценообразуване на рекламите.
Рекламната ни система отчита нюансите в променящите се цели на потребителя благодарение на три ключови проектни решения: 1) рекламни сесии със запазване на състоянието, тоест информацията се помни между обмените на реплики и между отделни разговори; 2) специално разработен голям езиков модел с последващо обучение, който използва архитектура с извикване на инструменти, за да интерпретира контекста и същинското намерение в разговора, а след това ефективно да избира, класира и доставя реклами; и 3) процес за избор на реклами, който работи отделно от генерирането на отговори на ChatGPT, в собствена услуга, така че рекламите да не влияят на отговорите и тонът на ChatGPT да остава неутрален. Използваме големия си езиков модел с последващо обучение, за да оркестрираме целия рекламен процес и да определяме коя реклама да се покаже в подходящия момент въз основа както на текущия обмен на реплики, така и на историята на разговора. Докато преди изграждането от нулата на такава самоусъвършенстваща се рекламна система отнемаше години, Реклами в ChatGPT достигна годишен темп на приходите от 1 милиард щатски долара по-малко от 200 дни след старта; от старта досега вече над 100 000 рекламодатели са пускали реклами в ChatGPT.
Обичайната заявка за реклама обикновено започва с ясно определено събитие. Потребителят подава заявка за търсене или отваря уебстраница и рекламната система получава заявка. Този тип система е сравнително проста: тя извлича потенциални кандидати за реклами, класира ги, провежда търг, за да определи подходяща цена за възможността за показване, и показва избраната реклама на потребителя. При ChatGPT подобен конкретен момент не възниква естествено.
Хората започват разговор с ChatGPT с определени цели, а не със заявка за търсене, изискваща един отговор. Може да планират пътуване, да избират софтуер за бизнеса си, да обзавеждат дом или да усвояват ново хоби. Всичко това не се случва в един обмен на реплики. ChatGPT често помага на потребителя да изясни кое е важно в хода на разговора.
Например инженерният ни екип попита ChatGPT как да се подготви за състезание по бягане. Разговорът започва с общ въпрос за бягането. След няколко обмена на реплики те питат за обувки, подходящи за тренировките. Търговският смисъл на разговора се променя с всяко ново условие, а този персонализиран контекст се развива в рамките на множество сесии. Система, която действа още при първото съобщение, може да разчете намерението напълно погрешно и така да влоши изживяването на потребителя и да му попречи.
За да изградим рекламната си система, трябваше да излезем извън рекламната архитектура „заявка–отговор“ и да създадем платформа от нулата, която открива потенциални икономически възможности, като поставя на първо място доверието и ползата за потребителя.
Ако превръщахме всяко съобщение в самостоятелна заявка, както прави традиционната рекламна система, това би създало няколко риска в нашия чат: 1) погрешно разбиране на целта на потребителя поради прекомерното ѝ опростяване; 2) твърде ранно стартиране на рекламния процес, преди истинската нужда на потребителя да е станала ясна; 3) показване на реклами, които пречат на потребителя да постигне целта си, вместо да му помагат; и 4) неефективно повторно изпълнение на рекламния процес при всяка промяна на заявката, което създава шум и излишни разходи. Вместо да е изградена около отделни събития, рекламната система — която включва извличане, класиране и доставяне — поддържа сесия със запазване на състоянието. Това означава, че рекламната сесия продължава през целия допустим за реклама обмен на реплики, като запомня и актуализира информацията с нейното развитие. ChatGPT изпраща първоначалния контекст на заявката към рекламния сървър. Рекламната система следи развиващия се разговор и се адаптира към него, вместо да разчита на една опростена заявка.
Процесът за избор на реклами протича успоредно с обичайното генериране на отговори на ChatGPT, за да се гарантира, че рекламният процес не влияе на отговорите му. Рекламите се филтрират и избират чрез отделна система, която обработва разговора според собствени ограничения за допустимост, качество и доставяне. Това важно архитектурно разделение — различни услуги с отделни модели и отделен код — позволява на основните сървъри на ChatGPT да генерират отговора без рекламно влияние. Междувременно рекламната система независимо оценява дали има подходяща възможност за реклама и ако има, подготвя спонсорирано каре чрез отделен процес за показване.
Рекламният процес протича успоредно с генерирането на отговора на ChatGPT.
Освен че защитава потребителското изживяване, това разделение има и някои практически последици. ChatGPT не зависи от рекламната система — услугите по никакъв начин не са обвързани и не споделят модел за генериране на съдържание. Затова, ако системата за показване на реклами е недостъпна или работи бавно, генерирането на отговора на ChatGPT продължава незасегнато. Това означава, че рекламната система не може да прекъсне или забави работата на ChatGPT. Другото предимство на това разделение е, че поддържа много високи изисквания към полезността на рекламите. Липсата на реклама е нормален и успешен резултат. Системата доставя реклама само ако тя носи ясна полза за потребителите и рекламодателите.
Другият ключов архитектурен компонент в рекламната ни платформа е големият езиков модел с последващо обучение, който интерпретира разговорите и управлява целия рекламен процес в агентен цикъл — чрез извиквания на инструменти за основните функции на рекламната система: от извличането и класирането до търга и накрая доставянето. Наричаме този голям езиков модел оркестратор.
Рекламният процес започва с разбиране на намерението на потребителя, за да се пристъпи към извличане — бързо и умишлено широко търсене на потенциални реклами, които по-късно ще бъдат филтрирани. Постепенното получаване на разговора дава повече информация, но прави задачата по извличане по-нееднозначна, защото рекламната система трябва да разграничава текущото намерение от вече неактуалния контекст. Оркестраторът трябва да интерпретира препратките към по-ранни съобщения, да разпознава кога потребителят говори хипотетично и да не приема всяко споменаване на продукт или услуга като заявка за покупка.
Рекламният оркестратор използва наличния контекст за разговора и потребителя и търси подходящи реклами на последователни стъпки. На всяка стъпка решава кога кой инструмент да извика, с основната цел да намери най-подходящата реклама за този разговор и контекст — такава, която балансира голямата полза за потребителя с голямата полза за рекламодателя. Ако потребителят избере персонализирани реклами, оркестраторът взема предвид и наличната нечувствителна информация за предишните му разговори, за да намери най-подходящите реклами.
Рекламният оркестратор итеративно извиква инструменти за доставяне на реклами, за да намери полезни реклами.
С напредването на разговора рекламният оркестратор получава по-актуална информация и може да извика нова поредица от инструменти с обновения контекст, за да намери по-добри реклами и да ги върне на клиентското приложение. То на свой ред може да ги използва, ако пристигнат навреме.
Оркестраторът е създаден да балансира ползата за потребителите и рекламодателите, като винаги поставя потребителите на първо място.
Рекламната система се състои от отделни инструменти, които оркестраторът извиква итеративно, за да намери най-добрите реклами за даден разговор. Най-общо оркестраторът превръща разговорите в кратки текстови обобщения, които след това се преобразуват в семантични вектори — съхранени значения, които рекламната система може да пресява по-лесно. Чрез тези вектори той извлича кандидати за реклами, филтрира ги по допустимост въз основа на бюджета, потребителските настройки и други предварителни проверки, оценява качеството и релевантността им и прави окончателно класиране, за да открие най-полезните възможности за показване в края на отговора в чата. Следователно всяка реклама трябва да отговаря на високи изисквания за допустимост и релевантност, за да може да бъде показана.
Големият езиков модел, който служи като оркестратор, първо подготвя една или повече заявки, отразяващи съответното търговско намерение. Това може да включва преформулиране на контекста на разговора, за да се разширят търговските възможности отвъд заявките с точно съответствие, и последващо създаване на семантични представяния. При това оркестраторът свежда разговор с множество реплики до обобщена версия за системата за извличане, така че да извлича целенасочено реклами от базата ни данни.
Рекламите ще бъдат по-полезни както за потребителите, така и за рекламодателите, ако се показват само когато намерението на потребителя е добре разбрано. Използването на няколко заявки позволява да се запазят различните аспекти на намерението. Например разговор за планиране на пътуване може да включва различни нужди, свързани с транспорт, настаняване или занимания. Системата за извличане може да запази тези разграничения, вместо да сведе целия разговор до един буквален текстов низ.
Като пример нека разгледаме възможна поредица от реплики в разговор за туристически обувки:
What should I cover on a two-day trip to Yosemite?
Will it be cold next week?
New [insert brand] product lines?
Въпреки че потребителят не е свързал въпроса за марката обувки с пътуването до Йосемити, този разговор може да бъде представен в рекламната ни система чрез две заявки, например [shoes appropriate for hiking trip] и [new [brand] product lines good for travel]. Това може да е само първият опит; оркестраторът е създаден да преработва тези представяния итеративно, докато намери сред наличните ни реклами такива, които са особено полезни за потребителя.
Извличането е процесът на създаване на умишлено широк набор от възможни реклами. Кандидатите могат да бъдат намерени чрез различни стратегии за извличане, а по-късно да се конкурират при едни и същи ограничения за показване. Изграждаме множество индекси, оптимизирани за различни системни и продуктови ограничения. Например индексът за реклами от продуктови емисии е проектиран да отчита положителните и отрицателните отзиви за продуктите, когато извлича най-добрите възможни реклами. Това не е приложимо към други реклами, за които може да няма свързани отзиви. Всеки индекс е оптимизиран за някакъв вариант на приблизително търсене на най-близки съседи (ANN), като използва вектори, представящи намерението на потребителя. Това ANN търсене е приблизителен алгоритъм за извличане от големи семантични индекси. Така рекламите се извличат много бързо: алгоритъмът се доближава до добро решение, вместо да търси „правилното“, като същевременно запазва повечето релевантни кандидати.
Рекламната система използва преформулирани заявки, за да създава семантични вектори в процеса на извличане на реклами и да формира широк набор от кандидати.
Целта на филтрирането е да се изключат всички кандидати за реклами, които не отговарят на изискванията за показване по отношение на релевантността, офертите и бюджета. В зависимост от кандидата и конфигурацията проверките при филтриране могат да включват: наличност на рекламни материали и кампании (дали са активни); насочване на кампанията (например в кои локали е разрешено да се провежда); ограничения според правилата (изисквания за това какво може да се рекламира); наличен бюджет (дали кампанията все още има средства за изразходване); темп на изразходване (дали кампанията трябва да харчи средства сега или по друго време на деня); съвместимост с мястото на показване (за какви разговори е допустима рекламата); и премахване на дублирането на ниво рекламодател и кампания (избиране на подходящ брой реклами за всеки рекламодател, за да се осигури равнопоставено участие на бизнесите).
Кандидатите, които преминат проверките за допустимост, продължават към етап на оценяване. Там оркестраторът извиква инструменти на различни системи за оценяване по критерии за показване като семантична релевантност (свързана ли е рекламата с целта на потребителя?), прогнозирана ангажираност (вероятно ли е рекламата да бъде видяна, кликната и да доведе до желания от рекламодателя резултат?) и представяне досега (постигала ли е рекламата добри резултати при показването си на потребители?). Преди търга оркестраторът също филтрира рекламите, за да гарантира тяхната релевантност и безопасност. Тези системи стесняват избора до по-малък набор от кандидати, готови за търга, но все още не определят коя реклама ще бъде доставена накрая.
Оркестраторът оценява подготвените кандидати в контекста на разговора и избира кои са достатъчно подходящи, за да участват във финалния търг. Оркестраторът не решава пряко коя реклама ще бъде показана, нито определя цена. Той предлага подходящи за контекста кандидати, които инструментът за търгове да оцени.
Търгът прилага окончателните механизми за показване, включително допускане до търга (преминаване на минимален праг за релевантност и полза), темп на изразходване (по-равномерно харчене на рекламния бюджет), изчисляване на офертите и параметрите на търга, класиране с отчитане на качеството, ценообразуване и окончателен избор.
След търга има две причини рекламата да не бъде доставена, и двете специфични за разговорната среда на ChatGPT.
Рекламата може да изглежда неуместна в чата: въпреки че моделите за защита на средата (които решават кога е подходящо да се покаже реклама) са преценили самия разговор като безопасен за реклама, а рекламата е оценена като съответстваща на правилата, понякога тя може да изглежда неуместна в контекста на определени разговори. Оркестраторът блокира показването на тези реклами.
Заявката за реклама може да не бъде изпълнена навреме: ако моделът на ChatGPT е готов да отговори, но рекламата все още не е готова за показване, времето за изчакване на заявката изтича и рекламата не се доставя. Затова една от целите на рекламната система е да работи възможно най-бързо. Времето за отговор на модела на ChatGPT е променливо и не забавяме отговорите в чата, за да изчакаме зареждането на реклами.
Ако всички горепосочени проверки са преминати успешно, изпращаме рекламата към потребителския интерфейс за визуализиране. Считаме това за доставяне на реклама от страна на сървъра, но все пак може да не я покажем на потребителя — и това е заложено в дизайна на системата.
В разговорен продукт като ChatGPT доставянето на рекламен материал от сървъра не гарантира, че рекламата ще бъде показана; тя трябва и да пристигне навреме, за да бъде включена в текущия обмен на реплики. Рекламният материал включва заглавие, описание, целева връзка и евентуален призив за действие. Освен това рекламната система връща и встъпителен текст, генериран от модел — кратко, неутрално въведение, което обяснява как рекламата е свързана с разговора. Отделянето на встъпителния текст от рекламния материал запазва посланието на рекламодателя, като същевременно поддържа неутралния тон на ChatGPT.
Потребителският интерфейс на ChatGPT получава встъпителния текст и рекламния материал в общ пакет. Ако пакетът пристигне, преди отговорът на ChatGPT да е генериран докрай, интерфейсът показва рекламата под отговора, ясно обозначена като спонсорирано съдържание. Ако пристигне твърде късно, рекламата не се показва при този обмен на реплики. Това е разликата между доставянето на реклама от сървъра и рекламна импресия, видима за потребителя.
Изборът на победител и доставянето са отделни събития. Избраната реклама се счита за доставена едва след като ChatGPT одобри и покаже рекламното каре и доставянето бъде потвърдено.
Рекламната ни платформа използва традиционни механизми за регистриране на събития и обработка на данни. Това носи три основни предимства: рекламодателите могат по-лесно да интегрират съществуващите си системи с нашата платформа, могат да подобряват стратегиите си с данните от отчетите, а екипът ни може да открива кои части на системата се нуждаят от подобрение. Наред с тези инструменти за отчитане и оптимизация използваме висококачествен модел, който оценява доставянето на реклами и обучава други рекламни модели, създавайки мощен цикъл на самоусъвършенстване.
Подробният анализ на случилото се ни помага да разбираме и подобряваме всяка част от рекламната система поотделно. Системата за обработка на регистрационни записи отчита и конкретни резултати като:
Обменът на реплики не е бил допустим за реклама.
Започнала е рекламна сесия, но не е заявено извличане.
Извличането не е върнало кандидати.
Извлечени са кандидати, но зареждането на пълните им данни или проверката за допустимост е било неуспешно.
Реклама е доставена и впоследствие потребител е взаимодействал с нея.
Тези подробни анализи ни помагат да подобряваме всяка част от системата за показване на реклами поотделно. За подобряване на откриването на възможности са нужни различни данни от тези за подобряване на извличането, качеството на кандидатите, участието в търгове или надеждността на доставянето.
Системите за доставяне, показване и качество наблюдават различни части от жизнения цикъл. Обработката с контрол за поверителност определя какво може да се използва за измерване и подобряване на моделите.
Идеята на оценяването чрез модели е най-мощните ни модели с най-развити способности за структурирано анализиране да наблюдават и оценяват резултатите на системата, а след това да подобряват големия езиков модел с последващо обучение, като го обучават да се справя по-добре. Например можем да използваме по-малки и по-ефективни модели или модели с по-ограничено структурирано анализиране за оркестрация или извличане, ако най-мощният ни модел събира обратна връзка и обучава тези малки изпълнители да се справят възможно най-добре.
Събираме обратна връзка от хората — кликвания и скривания от потребители, анкети сред потребителите и пряка обратна връзка от рекламодатели чрез Ads Manager — и я използваме, за да предприемаме действия. В процеса на разработка екипът ни също е на разположение за обратна връзка и изслушва пряко желанията както на потребителите на ChatGPT, така и на рекламодателите. Този източник на обратна връзка определя посоката ни дори повече от наблюденията на модела и е една от причините да успеем бързо да стигнем до правилните продуктови решения чрез последователни подобрения. Моделът може да разбира намерението на потребителя и да мисли критично, за да предложи нещо полезно, но вкусът се определя от хората.
Преди година нямахме рекламна система и само няколко души обмисляха задачите в тази област. Сега имаме надеждна рекламна система, която генерира приходи с годишен темп над 1 милиард щатски долара, а рекламният процес се управлява от оркестратор, базиран на голям езиков модел. Codex многократно увеличи възможностите ни и ни позволи да изградим системата от нулата и да достигнем този значим етап в използването ѝ с безпрецедентна бързина. Още от самото начало организирахме екипа и работните процеси по разработка така, че да използват Codex за бързо изграждане и мащабиране на системата. Изградихме защитни механизми, за да може Codex надеждно и безопасно да внедрява код. Успоредно с това създадохме плъгини за инфраструктурата за данни в Codex, за да съкратим значително цикъла от извличане на изводи до внедряване на подобрения в системата — включително нови продуктови функции, по-високо качество и по-добра производителност.
Съчетанието от ограниченията на системата ни, основани на нашите принципи за реклама, и оркестратора ни, базиран на голям езиков модел, ни позволява да правим рекламите полезни, без да третираме всеки разговор като заявка за реклама. Занапред ще продължим да експериментираме с по-динамични рекламни формати, за да увеличаваме ползата за потребителите — например като им позволим да разговарят директно с бизнеси чрез рекламите — и за рекламодателите. Самоусъвършенстващата се архитектура на платформата, изградена върху модели на OpenAI с непрекъснати цикли на обратна връзка, ще ни позволи все по-бързо да подобряваме релевантността и персонализацията с времето.



