OpenAI 如何構建兼顧用戶信任與相關性的 ChatGPT 新型廣告技術架構
How we built ChatGPT’s novel ad stack for user trust and relevance
OpenAI 為 ChatGPT 建構一套自訂廣告投放系統,以經後訓練的前沿 LLM 編排廣告流程,根據對話脈絡調用工具進行檢索、排名、相關性評估和競價。廣告系統與 ChatGPT 的答案生成分開運作,避免廣告影響回答並維持中立語氣。ChatGPT Ads 上線不足 200 天後,年化收入運行率達 $1 billion;自推出以來,超過 100,000 名廣告商曾在 ChatGPT 投放廣告。
ChatGPT 廣告系統以跨回合及多次對話的狀態和 LLM 工具調用追蹤變化中的商業意圖,並將廣告流程與答案生成分開處理。
我們如何打造全新廣告系統,兼顧用戶信任與相關性
技術團隊成員 Ritendra Datta 和 Karthik Gopalratnam
載入中…
分享
傳統廣告系統的設計,是為了回應明確的用戶意圖。用戶在網上搜尋或瀏覽內容,廣告系統便會將這些搜尋查詢和網頁瀏覽記錄作為事件接收,再根據這些事件尋找相符的廣告。為 ChatGPT 建立廣告系統則有所不同:用戶意圖會在對話中逐步形成,並隨着多輪對話而轉變,有時並不會出現適合投放廣告的時機。為了支援這種新模式,我們打造了專門的廣告投放系統。這種新型廣告系統以專門打造、經後訓練的前沿大型語言模型為基礎,透過工具呼叫進行檢索(找出最佳選項)、排序(預測用戶參與度)、相關性評估(評估廣告是否有用),並進行競價,以選出最終廣告並決定價格。
我們的廣告系統透過三項重要的設計決策,支援用戶目標不斷變化的複雜情況:1)實作具狀態的廣告工作階段,讓系統能在多輪對話及多個對話之間記住資訊;2)採用專門打造、經後訓練的大型語言模型,利用工具呼叫架構解讀對話脈絡及背後意圖,並有效地選擇、排序和投放廣告;3)在獨立服務中另行執行廣告選擇流程,與 ChatGPT 的答案生成分開,避免廣告影響答案,並維持 ChatGPT 的中立語氣。我們利用經後訓練的大型語言模型統籌整個廣告流程,根據用戶目前這一輪的對話及對話記錄,判斷何時展示哪則廣告最合適。以往要花數年時間,才能從零開始建立這類可自我改進的廣告系統;ChatGPT Ads 推出不到 200 天後,年化收入運行率便達到 $1 billion;自推出以來,已有超過 100,000 名廣告商在 ChatGPT 投放廣告。
代理式聊天中的廣告應如何運作?
傳統的廣告請求通常始於一個明確的事件。用戶提交搜尋查詢或開啟網頁,廣告系統便會收到請求。這類系統相當簡單:先找出潛在的廣告選項,再進行排序,透過競價為廣告機會定出合適價格,最後向用戶展示廣告。ChatGPT 並不會自然地產生這種明確時機。
在 ChatGPT 對話中,人們帶着目標而來,而非只求單一答案的搜尋查詢。他們可能正在規劃旅程、為公司挑選軟件、佈置家居,或學習新的嗜好。這些事情不會在一輪對話中全部完成。ChatGPT 通常會在過程中協助用戶釐清重點。
舉例來説,我們的工程團隊曾詢問 ChatGPT 如何為比賽訓練:對話一開始是關於跑步的一般問題。幾輪對話後,他們詢問有助訓練的鞋款。隨着各項限制條件逐一提出,對話的商業意義也隨之改變,而這些個人化脈絡會在多個工作階段中不斷演變。若系統只根據第一則訊息採取行動,就可能完全判斷錯誤的意圖,令用戶體驗變差,甚至妨礙用戶。
建立廣告系統時,我們必須超越傳統的請求-回應式廣告架構,從頭打造廣告系統,在優先考慮用戶信任與價值的同時,尋找潛在的商業機會。
對話記憶,不影響 ChatGPT 的回答
在我們的聊天使用情境中,若像傳統廣告系統一樣,把每則訊息都當作獨立請求處理,會帶來幾項風險:1) 過度簡化用戶目標,導致誤解;2) 在用戶的真正需要尚未明確前,過早啟動廣告流程;3) 展示妨礙而非配合用戶歷程的廣告;4) 每次請求有變化時,都低效率地重新執行廣告流程,造成雜訊並浪費成本。廣告系統(包括檢索、排序和投放)並非以個別事件為基礎,而是維持一個有狀態的工作階段;也就是説,廣告工作階段會在符合資格的一輪對話期間持續運作,並隨着資訊變化而記錄和更新資訊。ChatGPT 會把初始請求的脈絡傳送至廣告伺服器。廣告系統會跟進並因應逐步發展的對話作出調整,而非只依賴單一的扁平化查詢。
廣告選擇流程會與 ChatGPT 的一般回應生成流程同步運作,確保廣告流程不會影響 ChatGPT 的回應。廣告會由一個獨立系統進行篩選和選擇;該系統會根據自身的資格、質素和投放限制處理對話內容。這項重要的架構界線——採用不同服務,並使用各自獨立的模型和程式碼——讓 ChatGPT 核心伺服器負責生成非廣告回應;同時,廣告系統會獨立評估是否存在合適的廣告機會,如有,便會透過獨立的服務流程準備贊助廣告版位。
廣告流程與 ChatGPT 的回答流程同步運作。
除了保障用戶體驗,這種分隔亦帶來一些實際影響。ChatGPT 並不依賴廣告系統——兩者的服務完全獨立,也不會共用內容生成模型。因此,即使廣告服務系統無法使用或運作緩慢,ChatGPT 的非廣告回應仍會如常生成,不受影響。這表示廣告系統無法令 ChatGPT 產品停止運作或延遲回應。這種分隔的另一個好處,是讓優質廣告的標準維持在很高水平。沒有返回任何廣告亦屬正常且成功的結果。只有在廣告明確能為用戶和廣告商帶來好處時,系統才會投放廣告。
LLM 解讀對話並呼叫工具
我們廣告技術堆疊中的另一個關鍵架構元件,是經後訓練、負責解讀對話並以 Agent 式循環執行整個廣告流程的 LLM。它會呼叫廣告系統的核心功能工具,從檢索階段、排序到競價,最終完成投放。我們稱這個 LLM 為協調器。
廣告流程的第一步,是理解用戶意圖,以啟動檢索程序。這個程序會快速而有意地廣泛搜尋潛在廣告,之後再作篩選。逐步接收對話內容,雖然能提供更豐富的資訊,卻也令檢索問題更含糊,因為廣告系統需要區分當前意圖和過時的脈絡。協調器必須解讀用戶對較早訊息的指涉,辨認用戶何時只是在作假設,並避免把每次提及產品或服務都視為購買要求。
廣告協調器會運用可用的對話及用戶背景資料,反覆尋找合適的廣告,並不斷選擇何時呼叫哪個工具;其核心目標是為該對話及背景資料找到最合適的廣告(即平衡用戶價值與廣告商價值的廣告)。如果用戶選擇個人化廣告,協調器亦會考慮可用的用戶過往對話中的非敏感資料,以尋找最合適的廣告。
廣告協調器會反覆呼叫廣告投放工具,尋找有價值的廣告。
隨着對話推進,廣告協調器取得更多更新的資訊後,可以根據更新後的背景資料重新呼叫一系列工具,尋找更合適的廣告並將其傳回客戶端;如果這些新廣告能及時送達,客戶端便可使用。
用戶價值
廣告商價值

印花抱枕
不合資格的候選項目
協調器旨在平衡用戶價值與廣告商價值,並始終以用戶為先。
協調器如何在 Agent 循環中呼叫廣告工具
廣告系統由各個工具組成,協調器會反覆呼叫這些工具,為對話尋找最佳廣告。概括而言,協調器會將對話轉換成簡短的文字摘要,再將摘要轉換成語義嵌入(以較易供廣告系統篩選的形式儲存的含義),利用這些語義嵌入檢索候選廣告,按資格條件(根據預算、用戶設定及其他初步檢查)篩選候選廣告,評估其質素及相關性,最後進行排序,找出適合刊登在聊天回覆末尾的高價值機會。因此,每則廣告都必須達到嚴格的資格及相關性門檻,才符合刊登資格。
準備能捕捉意圖的檢索查詢
協調器 LLM 會先準備一個或多個查詢,以代表相關的商業意圖。這可能包括改寫對話背景資料,拓闊一對一搜尋查詢以外的商業可能性,然後建立語義表示;在這個過程中,協調器會將多輪對話濃縮成摘要版本,供檢索系統使用,從我們的資料庫中有針對性地檢索廣告。
如果廣告只在深入理解用戶意圖時才出現,對用戶和廣告商都會更理想。多個查詢可以保留意圖的不同方面。例如,計劃旅行的對話可能包含交通、住宿或活動等不同需求。檢索系統可以保留這些區別,而不是將整段對話壓縮成一個字面字串。
以下以一段關於行山鞋的假設對話為例:
去 Yosemite 兩日遊應該帶甚麼?
下星期會冷嗎?
有沒有新的 [插入品牌] 產品系列?
雖然用戶沒有把有關鞋品牌的問題與 Yosemite 之旅聯繫起來,廣告系統仍可能以兩個查詢表示這段對話,例如 [shoes appropriate for hiking trip] 和 [new [brand] product lines good for travel]。這可能只是第一次嘗試;協調器旨在反覆調整這些表示,直至在我們的廣告庫中找到對用戶具有高度價值的廣告。
檢索可能的廣告
檢索是建立一批涵蓋面廣的廣告候選項的過程。候選項可能來自不同的檢索策略,之後可在相同的投放限制下競爭。我們會建立多個索引,分別針對不同的系統及產品限制作最佳化(例如,商品資訊流廣告的索引在擷取最佳廣告時,會考慮正面或負面的商品評價。這與其他可能沒有相關評價的廣告無關)。每個索引都會針對某種近似最近鄰(ANN)搜尋作最佳化,並使用代表用戶意圖的嵌入向量。這種 ANN 搜尋是在大型語義索引中進行檢索的近似演算法;也就是説,它能非常快速地擷取廣告,尋找接近良好結果的答案,而非搜尋「正確」答案,同時保留大部分相關候選項。
廣告系統會在廣告檢索過程中使用改寫後的查詢建立語義嵌入向量,並產生涵蓋面廣的廣告候選集。
篩除不符合資格的候選項
篩選的目標,是剔除所有在相關性、出價及預算方面未達投放要求的廣告候選項。視乎候選項及設定,篩選檢查可能包括廣告素材及廣告活動是否可用(廣告活動或廣告素材是否處於啟用狀態)、廣告活動的目標設定(例如廣告活動獲準投放的地區)、政策限制(有關可宣傳內容的合規要求)、預算是否可用(廣告活動是否仍有可用預算)、投放節奏(廣告活動是否應在當下而非當日其他時段支出預算)、投放位置兼容性(廣告適用於哪些類型的對話),以及廣告商和廣告活動層級的去重(為每位廣告商選取適當數量的廣告,確保不同企業都能公平參與)。
評估相關性及質素
通過資格檢查的候選項會進入評分階段。協調器會呼叫各種評分系統的工具,以支援廣告投放考量,例如語義相關性(廣告是否符合用戶目標?)、預測互動(用戶是否可能觀看、點擊廣告,並轉化為廣告商期望的成果?)、歷史表現(廣告至今向用戶展示時的表現是否良好?)。拍賣前,協調器亦會篩選廣告,以確保其相關性及安全性。這些系統會縮小候選範圍,形成較小的候選集,準備進入拍賣,但仍未決定最終投放的廣告。
進行廣告拍賣
協調器會在對話情境中評估已備妥的候選項,並選出足以進入最終拍賣的廣告候選項。協調器不會直接決定投放哪則廣告,也不會設定價格;它會提名符合情境的候選項,交由拍賣工具評估。
拍賣會執行最終投放機制,包括拍賣准入(達到相關性及價值的最低門檻)、投放節奏(更平均地支出廣告預算)、出價及拍賣特徵計算、按質素調整排名、定價,以及最終選擇。
最終資格檢查
拍賣完成後,廣告仍可能因兩種情況而未能投放;這兩種情況都是 ChatGPT 對話媒介特有的。
廣告在對話中可能顯得不合適:即使完整性模型(用來判斷何時適合投放廣告的模型)認為對話本身適合展示廣告,而且廣告本身亦符合政策,有時廣告仍可能在特定對話情境中顯得不合適。編排器會阻止展示這些廣告。
廣告請求可能未能及時送達:如果 ChatGPT 模型已準備好回應,但廣告尚未準備好展示,廣告請求就會逾時,廣告亦不會送達。因此,廣告系統其中一個目標是盡可能快速運作。ChatGPT 模型的回應時間會動態變化,而我們不會延遲聊天回應來等待廣告載入。
如果符合上述所有條件,我們就會將廣告傳送至前端進行呈現。我們將此視為伺服器端廣告傳送,但我們仍可能不會向用戶展示廣告——這是刻意設計的。
最後一步:向用戶展示廣告
在 ChatGPT 這類對話式產品中,伺服器端傳送廣告素材並不保證廣告一定會顯示;廣告亦必須及時送達,才能納入當前回合。廣告素材包括標題、描述、目的地連結及任何行動呼籲。此外,廣告系統亦會傳回由模型生成的引言,這是一段簡短、中立的介紹,説明廣告與對話有何關聯。將引言與廣告素材分開,可以保留廣告商的訊息,同時保持 ChatGPT 的語氣中立。
ChatGPT 前端會以組合形式接收引言和廣告素材。如果它們在 ChatGPT 完成生成回應前送達,前端就會在 ChatGPT 的回應下方顯示廣告,並清楚標示為贊助內容。如果送達得太遲,該回合就不會顯示廣告。這就是伺服器端廣告傳送與面向用戶的廣告曝光之間的分別。
勝出廣告的選定與投放是兩個不同事件。只有在 ChatGPT 核准並展示該廣告位置,而且投放獲得確認後,已選定的廣告才算完成投放。
廣告展示後會發生甚麼事
我們的廣告技術堆疊採用傳統記錄及數據管道,主要有三項好處:廣告商可以更輕易地將現有系統整合至我們的技術堆疊;廣告商可以利用報告數據改進策略;我們的團隊亦可找出系統中有待改進之處。除了這些報告及最佳化工具外,我們還部署高質素模型來評估廣告投放並訓練其他廣告模型,從而形成強大的自我改進循環。
詳細的事件拆解有助我們瞭解廣告系統各部分的運作,並逐一加以改進。記錄處理系統亦會記錄細緻的結果,例如:
該回合不符合展示廣告的資格。
廣告工作階段已開始,但沒有發出檢索請求。
檢索沒有傳回任何候選項。
已檢索到候選項,但未能完成資料補全或資格審查。
廣告已投放,之後收到互動。
詳細的事件拆解有助我們逐一改進廣告投放系統的各個部分。改善廣告機會偵測所需的證據,與改善檢索、候選項質素、競價參與或投放可靠性所需的證據各不相同。
投放、廣告服務及品質系統會觀察生命週期中的不同部分。私隱管控下的處理流程會決定哪些資料可用於衡量及模型改進。
高效能模型評估並改進整個技術堆疊
以模型為本的評估,其理念是讓我們推理能力最強的模型觀察並評估系統的結果,再透過訓練經後訓練的 LLM 表現得更好,從而加以改進。例如,如果由最強大的模型收集回饋,並訓練較小型的工作模型盡可能出色地完成工作,我們便可以在協調或檢索任務中使用較小型、效率更高的模型,或推理能力較弱的模型。
人類回饋引導品味方向
我們收集並採取行動回應人類回饋(用戶的點擊和隱藏操作),也會進行用戶問卷調查,並透過 Ads Manager 直接收集廣告商的回饋。在開發過程中,我們亦讓團隊隨時聽取意見,並直接瞭解 ChatGPT 用戶和廣告商的需求。相比模型透過觀察所得的回饋,這些回饋對我們的發展方向影響更大,也是我們能迅速反覆改進、作出正確產品決策的原因之一。模型或許能理解用戶意圖,並以批判性思維提供有價值的成果,但品味由人塑造。
下一步
一年前,我們還沒有廣告系統,只有少數人思考這個問題領域。如今,我們已建立完善的廣告系統,年化收入運行率超過 10 億美元,並由以 LLM 為本的協調器處理廣告流程。Codex 是重要的效能倍增器,讓我們能以前所未有的速度快速建立系統,達成這個重要的使用量里程碑。從一開始,我們便設立團隊和開發工作流程,運用 Codex 迅速建構和擴展系統。我們為 Codex 設置防護措施,確保程式碼能可靠而安全地發布。同時,我們也為 Codex 設置數據基礎設施外掛,大幅縮短收集洞察並將改進落實到系統的循環,包括推出新產品功能、提升品質,以及改善系統效能。
我們的系統以廣告原則為基礎,並結合以 LLM 為本的協調器;兩者讓我們能提供有用的廣告,而不會把每段對話都視為廣告請求。展望未來,我們會繼續試驗更多動態廣告格式,以提升用戶價值(例如讓用戶能透過廣告直接與商家對話)和廣告商價值。這套以 OpenAI 模型為基礎、透過持續回饋循環建立的自我改進架構,將加快我們持續提升相關性和個人化的能力。
作者
Ritendra Datta、Karthik Gopalratnam
來源:OpenAI News · openai.com