OpenAI Sitemap出典公開日

ユーザーの信頼と関連性のために、私たちがChatGPTの革新的な広告スタックを構築した方法

従来の広告システムは、ユーザーの意図という離散的な単位に応答するように作られています。ユーザーが何かをオンラインで検索または閲覧すると、広告システムはそれらのクエリやページビューをイベントとして受け取り、そのイベントに基づいてマッチする広告を探します。

従来の広告システムは、ユーザーの意図という離散的な単位に応答するように作られています。ユーザーが何かをオンラインで検索または閲覧すると、広告システムはそれらのクエリやページビューをイベントとして受け取り、そのイベントに基づいてマッチする広告を探します。ChatGPT向けの広告スタックの構築は異なっていました。ユーザーの意図は会話全体を通じて展開し、会話の複数のターンにわたって変化し、時には広告が適合する瞬間がないこともあります。この新しいパラダイムを支えるために、私たちは専用設計の広告配信システムを構築しました。この新しいタイプの広告スタックは、カスタムでポストトレーニングされたフロンティアLLMを基盤としており、このLLMが、検索(上位候補の特定)、ランク付け(ユーザーエンゲージメントの予測)、関連性(広告の有用性の評価)のためのツール呼び出しを行い、最終的な広告選定と価格設定のためのオークションを実行します。

私たちの広告システムは、3つの重要な設計上の決定によって、変化していくユーザーの目標のニュアンスに対応しています。1) ステートフルな広告セッションの実装。つまり、会話のターン間および複数の会話にわたって情報が記憶されます。2) ツール呼び出しアーキテクチャを用いて会話の文脈と根底にある意図を解釈し、その後、効果的に広告を選択、ランク付け、配信する、カスタムでポストトレーニングされたLLMへの依存。3) 広告選定プロセスをChatGPTの回答生成とは別に、独自のサービス内で実行することで、広告が回答に影響を与えるのを防ぎ、ChatGPTの中立的なトーンを維持することです。私たちはポストトレーニングされたLLMを使って広告フロー全体を調整し、ユーザーの現在のターンと会話履歴の両方に基づいて、適切なタイミングで適切な広告を表示すべきかを判断します。このような自己改善型の広告システムの立ち上げには従来何年もかかっていましたが、ChatGPT Adsは年間換算収益ランレートで10億ドルに到達しました。これは ローンチから200日未満でのことです。また、ローンチ以来、現在10万件以上の広告主がChatGPTで広告を配信しています。

エージェンティックなチャットにおいて広告はどのように機能すべきか?

従来型の広告リクエストは通常、明確に定義されたイベントから始まります。ユーザーが検索クエリを送信するかウェブページを開くと、広告システムがリクエストを受け取ります。この種のシステムはかなりシンプルです。広告候補を検索し、ランク付けし、オークションを実行して機会に適切な価格を付け、結果として得られた広告をユーザーに表示します。ChatGPTはそのような具体的な瞬間を自然には生み出しません。

ChatGPTの会話では、人は一発で答えが得られる検索クエリではなく、目標を持って訪れます。旅行の計画を立てているのかもしれませんし、ビジネス向けのソフトウェアを選んでいるのか、家の家具を選んでいるのか、新しい趣味を学んでいるのかもしれません。これはすべてが会話の1ターンの中で起こるわけではありません。ChatGPTはその過程で、何が重要かをユーザーが明確にする手助けをすることがよくあります。

一例として、私たちのエンジニアリングチームがChatGPTにレースのトレーニング方法を尋ねた会話があります。会話はランニングに関する一般的な質問から始まります。数ターン後、彼らはトレーニングに役立つシューズについて尋ねます。会話の商業的な意味は、制約が加わるごとに変化し、このパーソナライズされた文脈は複数のセッションにわたって展開していきます。最初のメッセージに基づいて動作するシステムは、完全に誤った意図を検索してしまう可能性があり、ユーザーエクスペリエンスを損ない、ユーザーの妨げになるおそれがあります。

私たちの広告システムの構築には、リクエスト・レスポンス型の広告アーキテクチャを超えて、ユーザーの信頼と価値を優先しながら潜在的な経済的機会を見つけるために、広告スタックをゼロから構築することが必要でした。

ChatGPTの回答に影響を与えない会話メモリ

従来の広告システムのようにすべてのメッセージをスタンドアロンのリクエストとして扱うことは、私たちのチャットのユースケースにおいていくつかのリスクを伴っていました。1) ユーザーの目標を過度に単純化して誤読すること。2) ユーザーの本当のニーズが明確になる前に、広告フローを開始しすぎること。3) ユーザーのジャーニーを支援するのではなく妨げる広告を表示すること。そして4) リクエストが変わるたびに広告フローを非効率的に再実行し、ノイズを生み出してコストを無駄にすること。個別のイベントを中心に構築する代わりに、広告システム(検索、ランク付け、配信で構成)はステートフルなセッションを維持します。つまり、広告セッションは対象となるターンの間実行され、情報が展開するにつれて記憶し更新します。ChatGPTは最初のリクエストの文脈を広告サーバーに送信します。広告システムは、単一の平坦化されたクエリに依存するのではなく、進行中のやり取りに追従し適応していきます。

広告選定プロセスは、広告フローがChatGPTの回答に影響を与えないよう、ChatGPTの通常の応答生成と並行して実行されます。広告は、独自の適格性、品質、配信の制約のもとで会話を消費する別のシステムを通じて、フィルタリングおよび選択されます。この重要なアーキテクチャ上の境界—別々のモデルと別々のコードを使用する別々のサービス—により、コアのChatGPTサーバーはオーガニックな応答の生成を担当します。その間、広告システムは適切な広告機会があるかどうかを独立して評価し、あれば別の配信プロセスを通じてスポンサードプレースメントを準備します。

広告はChatGPTの回答パスに並行して実行されます。

ユーザーエクスペリエンスの保護に加えて、この分離には実用的な利点がいくつかあります。ChatGPTは広告システムに依存していません。両サービスはまったく絡み合っておらず、コンテンツ生成モデルを共有していません。そのため、広告配信システムが利用できなかったり遅延したりしても、ChatGPTのオーガニックな応答には影響せず続行されます。つまり、広告システムがChatGPT製品を停止させたり遅延させたりすることはありません。この分離のもう1つの利点は、価値ある広告へのハードルを非常に高く保てることです。広告を返さないことは、普通の、成功した結果です。システムは、ユーザーと広告主の両方にとって明らかに有益である場合にのみ広告を配信します。

LLMが会話を解釈し、ツールを呼び出します

当社の広告スタックにおけるもう一つの重要なアーキテクチャ構成要素は、会話を解釈し、広告フロー全体をエージェント的ループで実行するポストトレーニング済みLLMです。これは、検索(retrieval)ステージからランキング、オークション、そして最終的な配信に至るまで、広告システムの中核機能へのツール呼び出しを行います。当社はこのLLMを次のように呼んでいます。 オーケストレーター.

広告フローの最初の部分は、検索プロセスを開始するためにユーザーの意図を理解することです。これは、後でフィルタリングするための潜在的な広告を、迅速かつ意図的に幅広く収集するプロセスです。会話を少しずつ受け取ることで、広告システムが現在の意図と古くなった文脈を区別する必要があるため、より豊かではあるがより曖昧な検索問題が生じます。オーケストレーターは、以前のメッセージへの言及を解釈し、ユーザーが仮定的な話をしているときを認識し、製品やサービスに言及するたびに何かを購入する要求として扱わないようにする必要があります。

広告オーケストレーターは、利用可能な会話およびユーザーのコンテキストを活用し、適切な広告を見つけるために反復処理を行い、その会話とコンテキストに最も適した広告(高いユーザー価値と高い広告主価値のバランスが取れた広告)を見つけることを根本的な目標として、どのツールをいつ呼び出すかを繰り返し選択します。ユーザーが広告のパーソナライズを選択した場合、オーケストレーターは、ユーザーの過去の会話に関する利用可能な非機密情報も考慮して、最適な広告のマッチングを見つけます。

広告オーケストレーターは、価値のある広告を見つけるために、広告配信ツールを反復的に呼び出します。

会話が進み、広告オーケストレーターがより新しい情報を取得すると、オーケストレーターは更新されたコンテキストで新しい一連のツール呼び出しを実行して、より良い広告を見つけ、クライアントに返すことができます。クライアントは、その新しい広告が時間内に届いた場合には、それを利用できます。

オーケストレーターは、ユーザー価値と広告主価値のバランスを取るように設計されており、常にユーザーを最優先します。

エージェント型ループにおいてオーケストレーターが広告ツールを呼び出す仕組み

広告システムは個々のツールで構成されており、オーケストレーターがそれらを反復的に呼び出して、会話に最適な広告を見つけ出します。大まかに言えば、オーケストレーターは会話を短いテキスト要約に変換し、それをセマンティック埋め込み(広告システムがふるい分けしやすい形で保存された意味情報)に変換します。次に、そのセマンティック埋め込みを使って広告候補を取得し、候補を適格性(予算、ユーザー設定、その他の事前チェックに基づく)でフィルタリングし、品質と関連性を評価した上で、最終的なランキングを行い、チャット応答の末尾に表示する価値の高い機会を特定します。したがって、各広告は表示対象となるために、適格性と関連性の両方で高い基準を満たさなければなりません。

检索の意図を捉えるクエリの作成

オーケストレータLLMはまず、関連する商用インテントを表す1つ以上のクエリを作成します。これには、会話のコンテキストを書き換えて1:1の検索クエリを超えて商機の可能性を広げ、その後セマンティック表現を作成することが含まれます。ここでオーケストレータは、複数ターンにわたる会話を検索システム向けに要約版に凝縮し、データベースから焦点を絞った形で広告を取得します。

広告のプレースメントは、ユーザーの意図を深く理解している場合にのみ表示されることで、ユーザーと広告主の双方にとってより良いものになります。複数のクエリによって、意図のさまざまな側面を保持できます。例えば、旅行の計画に関する会話には、交通、宿泊、アクティビティに関連するそれぞれ異なるニーズが含まれているかもしれません。検索システムは、会話全体を1つのリテラルな文字列に圧縮するのではなく、こうした区別を保持することができます。

例として、ハイキングシューズについての想定される会話の流れを見てみましょう:

  1. ヨセミテへの2日間の旅行でどこを回るべきですか?

  2. 来週は寒くなりますか?

  3. 新しい[ブランド名を挿入]の製品ライン?

ユーザーは靴ブランドの質問をヨセミテ旅行と結びつけていませんが、この会話は広告システムでは、例えば [shoes appropriate for hiking trip] と [new [brand] product lines good for travel]という2つのクエリとして表現されるかもしれません。これは最初の試行にすぎない可能性があります。オーケストレーターは、ユーザーにとって高い価値のある広告がインベントリの中から見つかるまで、これらの表現を反復的に改善するよう設計されています。

候補広告の取得

リトリーバル(検索)は、意図的に広範な広告候補のプールを作成するプロセスです。候補はさまざまなリトリーバル戦略から取得され、後で同じ配信制約のもとで競争することができます。私たちは、システムおよびプロダクトの制約ごとに最適化された複数のインデックスを構築しています(例えば、プロダクトフィード広告用のインデックスは、最適な広告を取得する際に製品レビューの肯定的・否定的な内容を考慮するように設計されています。これは、レビューが関連付けられていない他の広告には関係ありません)。各インデックスは、ユーザーの意図を表す埋め込み(embedding)を使用して、近似最近傍(ANN)検索のあるバージョンに最適化されています。このANN検索は、大規模なセマンティックインデックス上での検索のための近似アルゴリズムであり、広告を非常に高速に取得し、「正しい」解を探すのではなく良い解に近づきながら、関連する候補の大部分を保持します。

広告システムは、広告のリトリーバル(検索)プロセスにおいて書き換えられたクエリを使用してセマンティック埋め込みを作成し、広範な広告候補のプールを生成します。

不適格な候補のフィルタリング

フィルタリングの目的は、関連性、入札額、予算の観点で掲載基準を満たさない広告候補をすべて候補から除外することです。候補や設定に応じて、フィルタリングのチェックには、クリエイティブおよびキャンペーンの利用可能状態(キャンペーンや広告クリエイティブがアクティブかどうか)、キャンペーンのターゲティング(例: キャンペーンがどのロケールで配信を許可されているか)、ポリシー制限(何を広告できるかに関するコンプライアンス要件)、予算の利用可能性(キャンペーンにまだ消化可能な予算が残っているかどうか)、ペーシング(キャンペーンが今予算を使うべきか、それとも一日の別の時間帯に使うべきか)、プレースメントとの適合性(この広告がどのような会話の種類で掲載の対象となるか)、および広告主レベルとキャンペーンレベルの重複排除(すべての事業者間で公平な参加を確保するため、広告主ごとに適切な広告数を選定すること)が含まれます。

関連性と品質の評価

適格性チェックを通過した候補はスコアリング段階に進みます。そこでオーケストレーターは、セマンティックな関連性(その広告はユーザーの目的に関連しているか?)、予測エンゲージメント(その広告は閲覧、クリックされ、広告主の望む成果に転換する可能性が高いか?)、過去のパフォーマンス(これまでユーザーに表示された際にその広告は良好な実績を挙げているか?)などの配信上の考慮事項に関して、さまざまなスコアリングシステムへのツール呼び出しを行います。オーケストレーターはまた、オークション前に広告が関連性と安全性を確保できるようフィルタリングも行います。これらのシステムにより候補はオークションに向けたより小さなプールに絞り込まれますが、それでも最終的に配信される広告は決定しません。

広告オークションの実行

オーケストレーターは会話の文脈の中で準備済みの候補を評価し、どの広告候補が最終オークションに入る水準に達しているかを判断します。オーケストレーターはどの広告を配信するかを直接決めるわけではなく、価格を設定するわけでもありません。文脈に適した候補をオークションツールが評価できるようノミネートします。

オークションでは、オークションへの参加資格(関連性と価値の最低基準を通過すること)、ペーシング(広告予算をより均等に消化すること)、入札額とオークション機能の計算、品質調整済みランキング、価格決定、最終選択を含む最終的な配信メカニクスが適用されます。

最終的な適格性チェック

オークション後、広告が配信に失敗する可能性は2つあり、どちらもChatGPTの会話メディアに特有のものです。

  1. 広告がチャットにおいて不適切に感じられる可能性: 会話自体がインテグリティモデル(広告を配信することが適切かどうかを判断するモデル)によって広告掲載に安全と判断されており、広告自体もポリシーに準拠していると判断されていても、特定の会話の文脈では広告が不適切に感じられる場合があります。オーケストレーターはこうした広告の表示をブロックします。

  2. 広告リクエストが間に合わない可能性: ChatGPTモデルが応答の準備ができているのに、広告がまだ掲載の準備できていない場合、広告リクエストはタイムアウトし、広告は配信されません。したがって、広告システムの目標のひとつは可能な限り速く実行されることです。ChatGPTモデルの応答時間は動的であり、広告の読み込みを待つためにチャットの応答を遅らせることはありません。

以上のチェックをすべて通過すると、広告をフロントエンドに送りレンダリングさせます。これをサーバーサイドの広告 配信とみなしますが、それでも広告がユーザーに表示されない可能性があります。これは設計上の意図によるものです。

最終ステップ: ユーザーへの広告表示

ChatGPTのような会話型プロダクトでは、広告クリエイティブのサーバーサイド配信が広告の表示を保証するものではありません。広告は現在のターンに含められるよう間に合って到着しなければなりません。広告クリエイティブには、タイトル、説明、リンク先、およびすべての行動喚起(CTA)が含まれます。さらに、広告が会話とどのように関連しているかを説明する短く中立的な前置きである、モデル生成のプリアンブルも広告システムから返されます。プリアンブルをクリエイティブと分けておくことで、ChatGPTの声を中立的に保ちながら広告主のメッセージが維持されます。

ChatGPTフロントエンドは、プリアンブルと広告クリエイティブをひとつのバンドルとして受け取ります。ChatGPTの応答が完全に生成される前に到着した場合、フロントエンドはChatGPTの応答の下に、スポンサーであることを明確にラベル付けして広告を表示します。到着が遅すぎた場合、そのターンでは広告は表示されません。これがサーバーサイドの広告配信とユーザーに見える広告インプレッションとの違いです。

勝者の選定と配信は別個のイベントです。選定された広告は、ChatGPTがプレースメントを承認して表示し、配信が確認されて初めて配信となります。

広告表示後の処理

当社の広告スタックは従来型のロギングとデータパイプラインを使用しており、これには3つの主な利点があります。広告主が既存のシステムを当社のスタックと容易に統合できること、広告主がレポートデータを活用して戦略を改善できること、そして当社のチームがシステムの改善すべき領域を見つけられることです。これらのレポーティングおよび最適化ツールに加えて、高品質のモデルを導入して配信を評価し、他の広告モデルを訓練することで、強力な自己改善ループを生み出しています。

何が起きたかの詳細な内訳により、広告システムの各部分を個別に理解し改善することができます。ログ処理システムは、以下のようなきめ細かな結果も記録します:

  • そのターンは広告の対象外であった。

  • 広告セッションが開始されたが、リトリーバルは要求されなかった。

  • リトリーバルは候補を返さなかった。

  • 候補は取得されたが、ハイドレーションまたは適格性チェックに失敗した。

  • 広告が配信され、その後にインタラクションを受け取った。

こうした詳細な内訳により、広告配信システムの各部分を個別に改善することができます。機会検出の改善には、リトリーバル、候補の品質、オークションへの参加、配信の信頼性の改善とは異なるエビデンスが必要です。

配信、サービング、および品質の各システムは、ライフサイクルの異なる部分を観測します。プライバシー管理された処理により、測定とモデル改善に何を使用できるかが決まります。

高出力モデルがスタック全体を評価し改善

モデルベース評価の考え方は、私たちの最も強力で高い推論能力を持つモデルがシステムの結果を監視・評価し、その後、より良いパフォーマンスをさせるよう訓練することで、ポストトレーニング済みのLLMを改善するというものです。たとえば、最も強力なモデルがフィードバックを収集し、これらの小さなワーカーを最高の仕事ができるように訓練するのであれば、オーケストレーションや検索には、より小型で効率的なモデルや推論能力の低いモデルを使うことができます。

人間のフィードバックが上品な方向性を導く

私たちは人間のフィードバック(ユーザーからのクリックや非表示)を収集して対応するとともに、ユーザーへのアンケートや、Ads Managerを通じた広告主からの直接のフィードバックも行っています。また、構築の過程でもチームがフィードバックに応じられるようにし、ChatGPTユーザーと広告主の両方が何を求めているかを直接聞いています。このフィードバックの情報源は、モデルの観察によるフィードバックよりもさらに私たちの方向性を左右するものであり、迅速に正しい製品上の意思決定へと反復できたことの一因となりました。モデルはユーザーの意図を理解し、批判的に考えて価値あるものを提供できるかもしれませんが、味(テイスト)を形づくるのは人間です。

次のステップ

1年前、私たちには広告システムはなく、この問題領域について考えている人はほんの一握りでした。今では、LLMベースのオーケストレーターが広告フローを動かし、年間換算収益ランレートで10億ドルを超える robust な広告システムを保有しています。Codex は根本的な力の乗数であり、比類のないスピードでこの重大な利用マイルストーンを達成できるようシステムを立ち上げることを可能にしました。当初から、Codex を使ってシステムを迅速に構築・拡張するために、チームと開発ワークフローを整備しました。Codex が確実かつ安全にコードをリリースできるようガードレールを構築しました。並行して、新しい製品機能、品質改善、より良いシステムパフォーマンスを含む、インサイトの収集からシステムへの改善の反映までのループを大幅に短縮するためのデータインフラのプラグインを Codex 向けに整備しました。

システムの境界(私たちの 広告に関する原則⁠に基づくもの)とLLMベースのオーケストレーターの組み合わせにより、すべての会話を広告リクエストとして扱うことなく、広告を有用なものにすることができます。今後は、ユーザー価値(たとえば、広告を通じて企業と直接対話できる機能の提供など)と広告主価値を高めるため、より動的な広告フォーマットの実験を続けていきます。OpenAI モデルと継続的なフィードバックループの上に構築されたこのスタックの自己改善アーキテクチャは、時間とともに関連性とパーソナライゼーションを改善し続ける私たちの能力を加速させていくでしょう。

原文の出典

OpenAI Sitemap

内容について

原文の公開と権利は出典元に帰属します。

機械翻訳 · 原文をご参照ください