Reborn Generation Model
商品ソーティングにおけるリランキング
商品ソーティングの目的は、効果的な商品により良い露出機会を与え、ユーザーのニーズにマッチさせることです。一般的な考え方として、ある商品がユーザーのリクエストに対して良いか悪いかを判定できます。表示位置の観点では、上位にある商品ほど露出機会が向上します。そのため、モデルを通じて商品をグレーディングするという考え方が自然に生まれ、モデルが正確にスコアリングし、AUC が十分に高ければ、このスコアに基づいて商品を高い順から低い順にソートできるように思えます。この古典的なフレームワークには、ほとんどのリランキングが解決を目指す重大な欠陥があります。それは、商品のコンテキストが結果に影響を与えることです。リランキング前のモデルを考えると、候補商品のセットが大きすぎるため、コンテキスト情報をモデルに入力することは非常に困難です。そのため、リランキングを用いてコンテキストの影響を解決するという考え方が一般的です。実際、ほとんどすべてのリランキングモデルは商品のスコアリング時にコンテキストを考慮しています。ただし、実際には、商品がコンバージョンするかどうかをスコアリングすることと、候補商品をランキングして収益を最大化することは異なるタスクです。2 つのタスクは関連していますが、大きく異なります。スコアだけでソートすると元の順序が崩れ、元の順序ラベルから新しい順序ラベルを復元できず、新しい順序がどのように振る舞うかを判断できません。商品のコンバージョン行動がコンテキストによって変わらないと信じない限り、これは明らかに問題です。
コンテキストを考慮しない場合、モデルは商品をグレーディングできるほど正確でしょうか?
コンテキスト情報の記述度がスコアリング結果に与える影響を示すため、3 つのモデルを設計して実験を行いました。第 1 のモデルは、現在最も一般的に使用されているポイントワイズスコアリングモデルです。モデルの入力は商品特徴とユーザー情報で、Simple DNN と呼びます。第 2 のモデルは、リランキング段階で優れたパフォーマンスを発揮するオンラインリランキングモデル AE rerank です。Simple DNN をベースに、コンテキスト商品のグローバル統計情報、たとえば特定の特徴点の分散、平均値、極値などを追加しています。第 3 のモデルは、コンテキスト情報をさらに記述するために設計されました。AE rerank をベースに、CNN モジュールと RNN モジュールを追加して商品系列の情報を捉えます。モデル構造は下図の通りです(Simple DNN には青の CNN、RNN および緑のグローバル統計特徴入力が含まれず、AE rerank には青の CNN と RNN が含まれません)。
5,400 万件の日次データをトレーニングセットとして使用し、上記 3 つのモデルをそれぞれ 5 エポックトレーニングしました(すべて収束済み)。その後、テストセット(約 250 万件のデータ)でのパフォーマンス結果を計算しました。結果は下表の通りです。ここでの AEFS は、細粒度リランキング段階で生成される総合スコアのエイリアス名です。表中のデータが私たちの疑問に答えています。ポイントワイズモデルの Simple DNN は、コンテキスト情報を持つ AE rerank や新モデルよりもスコアリングがわずかに劣ります。ここから、商品スコアリングは商品が置かれているコンテキストの影響を受けるべきだと結論づけられます。コンテキスト情報を統合して初めて、より正確な推定が可能になります。
順序の変更を無視した場合、元の順序に基づくランキングは信頼できるでしょうか?
この数式はコンテキストを十分に考慮した新モデルに適用できます。ただし、最初の 2 つのモデル、Simple DNN と AE rerank については、商品がランダムに混在されていても、各商品に対するスコアリングまたは推定確率は一定です。そのため、商品系列のスコアとして直接加算すると不正確になります。一般的には、DCG のような方式で、各商品の推定確率に位置割引を乗じた合計をランキング結果とすることで、上記の状況を自然に回避できます。式は以下の通りです。
Simple DNN と AE rerank について、この手法で PV の良し悪しを判断する効果をテストしました。実験はクリックコンバージョンと取引コンバージョンの 2 部分に分かれています。理想的には、優れたモデルは 2 つのランキングのうちどちらがクリック行動を発生させやすいか、またはどちらが取引行動を発生させやすいかをより正確に判断できるはずです。同じラベルのソートペアを除外した結果は下表の通りです。
各評価モデルのパフォーマンス(系列の全体的な判断能力)
上記のテストデータから、すべてのモデルが大まかに良し悪しを区別できることがわかります。定義によれば、商品のスコアの高い順から低い順に直接ソートすることが、評価において最適な系列となります。しかし、ランキング結果は本当に効果的でしょうか?最強の評価能力を持つ新モデルの観点から結論は一致しているでしょうか?そこで、新たに生成されたこれらの「最適」系列とデータの元の系列を新モデルに送って評価させました。結果は下表の通りです。各値は、新たに生成された系列が元の系列よりもどれだけ優れているかを示しています。
新モデルによると、スコアの高い低いに基づいて直接ソートする戦略は、最大でも元の系列を約 66% しか上回ることができません。また、細粒度リランキング総合スコア AEFS に基づいて直接ソートする戦略は、元の系列よりもはるかに劣ります(これは、オフラインデータのほとんどの元の系列が AE rerank モデルによって生成されているためです)。この結果に基づき、商品のグレーディングに基づく直接ランキングはおそらく最適な方法ではないと考えられます。
それでは、スコアリングで直接ソートできない場合、どのように最適系列を見つけられるでしょうか?最も直接的な方法は、考えられるすべての系列結果を列挙し、新モデルに 1 つずつスコアリングさせ、最適なソーティングを最終結果として選択することです。しかし、オンラインの計算能力では力ずくで列挙するには到底足りないため、列挙のセットを最適化する必要があります。ヒューリスティックな貪欲探索であるビームサーチは、探索プロセス中にほとんどの無駄な状態を削減するソリューションとして使用できます。この方法は精度と速度のトレードオフが必要です。一般的に、一定の精度を確保した条件下で満足できる速度を達成することは困難です。私たちの取り組みでは、より直接的な方法で系列を生成することを望んでいます。
商品系列生成器
商品系列生成器は系列を生成するためのモデルです。入力は候補商品で、出力は順序付きの商品です。ポインターネットワークを使用するのは自然な考え方です。ステップごとに進み、各ステップで現在の状態に基づいて商品を 1 つ選択し、最終的に商品の順序を得ます。ポインターネットワークに基づくネットワーク構造を設計し、最終的なモデルは以下の通りです。
このように設計されたモデルには 2 つの利点があります。第 1 に、合計値を指定する必要がないことです。モデルのパラメータは合計値に依存せず、トレーニング時も予測時も合計値を必要に応じて設定できます。第 2 に、変換後、元の 2 つの LSTM を持つポインターネットワーク構造が現在のものになり、残りは DNN に置き換えられました。これにより実装が簡素化されるだけでなく、予測時間が半分に短縮されます(オンライン CPU 環境では LSTM の実行が遅いため)。
生成モデルがあれば、新モデルのスコアが非常に高くなるようなソートを生成し、従来の方法を高い確率で上回ることを期待します。従来の方法は元の順序ラベルを通じて教師あり学習で監督できますが、順序の変更がラベルを変える可能性があるため、教師あり学習でこのタスクを完璧にこなすことはできません。代替方法として、ランダムな方式でいくつかの候補系列をサンプリングし、新モデルでスコアリングして最適な系列を教師あり学習のターゲットとして選択できます。また、いくつかの代替系列を生成した後に最適な系列を結果とすることもできます。私たちの取り組みでは、強化学習を使用して生成と評価の 2 つのステップを結びつけています。
強化学習のアプローチ
評価器は系列内の予想取引数を予測しているため、この結果を強化学習における報酬とみなせば、生成器と評価器が自然に結びつくように思えます。生成器のトレーニングプロセスでは、商品を選択するたびに評価器からの報酬信号を受け取ります。最後に、軌跡全体の総報酬を最大化するだけです。
ただし、ここにはまだ問題があります。コンテキスト情報を使用して計算されますが、各ステップで商品を選択する際、その後の商品がどのように並ぶか分かりません。そのため、簡略化と修正が必要で、既に選択された商品のみに依存し、その後の商品のソーティング結果には関係ないようにします。つまり、ユーザーは上から下へ商品を閲覧し、現在の商品の購入確率は既に閲覧した商品系列のみに依存し、その後の商品の配置には関係ないと仮定します。評価器の具体的な修正は、CNN モジュールを削除することです。
評価器モデルを簡略化後、強化学習に必要ないくつかの要素が既に揃っています。商品生成器はトレーニング対象のエージェントです。現在の状態に基づいて良いと思う行動を取り、その後評価器から報酬を受け取ります。そして次の状態へ移行し、引き続き行動を取って報酬を得ます。このようにして、N 個の三つ組を得ることができます。具体的な定義は以下の通りです。
各ステップの状態:それまでに配置された商品系列と残りの候補商品セット
各ステップの行動:候補セットのうちどの商品を選択するかという離散行動
上記を考慮した上で、評価器が予測する軌跡の確率の長さは N で、減衰係数はγです。
主にポリシーベースの手法を使用して上記の生成器モデルを最適化することを検討します。バリューベースの手法を使用しない理由は、実験でこの問題の下では V 値や Q 値を正確に推定することが困難である可能性を発見したためです。
強化学習は総リターンを最大化する必要があり、同時に各ステップの総リターンも最大化する必要があることに注意してください。各ステップの総リターンは、現在の商品から N 番目の商品までの報酬の合計です。これを Q 値と呼び、以下のように定義します。
そこで、最も基本的なアルゴリズムである REINFORCE アルゴリズムから始めます。損失関数は以下の通りです。
この比較的シンプルなモデルの実験結果は理想的ではありません。そのうちの 1 つは簡単に見つかります。一部の高品質な候補がどのように行動しても高い総リターンを持ち、同時に一部の劣った候補セットがどのように行動しても低い総リターンを持つ場合、モデルは最適化に有用な情報を見つけることが困難になります。そのため、報酬から候補セットの平均値を差し引く、さらには平均値で割った平均値の変化量(変化率)を差し引くなどして、行動の良し悪しを判断する目的を達成することを検討できます。
平均値を計算する 1 つの方法は、評価器での元の系列のスコアを直接使用することです。ここでトレーニングデータについて説明します。たとえば、実験では主に 30 個の候補から 17 個を選択する構成に重点を置いているため、各クエリでオンラインで実際に表示される最初の 30 個の商品を取得してトレーニングデータの候補とし、生成器がこの 30 個から 17 個を選択します。30 個の候補商品の最初の 17 個が実際のオンライン表示系列であることが分かります。したがって、元の系列は評価器でスコア i を得ることができ、これは上記と同じ次元で、各ステップの総リターンまたは Q 値を表します。したがって、上記の REINFORCE アルゴリズムの損失関数は以下のように変換できます。
強化学習に詳しい読者は、アクタークリティク手法で平均値を推定できるという考えが浮かぶかもしれません。これが平均値を推定する第 2 の方法です。本稿では強力な PPO アルゴリズムを使用し、クリティクで値を推定し、アドバンテージ関数の値を計算してポリシーを更新します。ただし、ここには大きな問題が潜んでいます。値を推定するためのネットワークをどのように設計するかです。
値は、現在の状態から現在のポリシーを使用して得られる総報酬の平均値です。現在の状態は、現在配置済みの商品と残りの候補商品です。前述のモデルの優れた特性(候補商品セットの数が可変であること)を維持しながら、正確な値を予測する必要があります。そのため、前述のモデル構造と同様の設計を採用します。つまり、残りの候補商品にスコアリングし、その後スコアを合計します。モデル構造は以下の通りです。
アルゴリズムの効果は REINFORCE アルゴリズムと大差ありません。PPO アルゴリズムのパフォーマンスが良くないのは、値の推定が困難なためだと考えられます。では、PPO のアクター更新方法を維持しつつ、クリティクモジュールを変更できるでしょうか?ここで平均値を推定する第 3 の方法、モンテカルロサンプリングについて説明します。利便性と効率性を達成するため、元のモンテカルロサンプリングにもいくつかの改善を加えました。
各データまたは候補商品セットのグループについて、モデルに現在のパラメータに基づいて複数の順列を生成させ、これらの順列が評価器で得る総報酬の平均値を現在のポリシーの近似値とみなすことができます。
これまで、REINFORCE アルゴリズムから PPO アルゴリズムおよびその改良版まで、5 つの強化学習アルゴリズムについて言及しました。それぞれのトレーニング効果は下図の通りです。アルゴリズムの探索能力を高めるため、5 つのアルゴリズムすべてに同じエントロピー報酬を損失に追加しています。左の図はモデルの出力行動確率のエントロピー変化を示しており、低いほど収束していることを意味します。右の図は、テストセットでモデルが生成した順列が評価器で元の順列の総合スコアを上回る割合を示しています。この割合を優位率、略して BP と呼びます。Lazada のリランキングでは置換率とも呼ばれます。私たちの見解では、強化学習のトレーニング時には損失ではなく、エントロピーと総リターンに注目します。
強化学習アルゴリズムのパフォーマンス比較(左:エントロピー、右:BP)
左のエントロピー比較図から、PPO_MC アルゴリズムが最も速く、最も優れた収束を示していることが分かります。右の BP 比較図から、PPO_MC モデルが最適な結果を達成できることも分かります。元の PPO モデルはエントロピーの収束が難しいだけでなく、生成された系列が元の系列をわずかに上回るだけであり、改良版は良好に収束しています。
より分かりやすく説明すると、PPO_MC アルゴリズムはトレーニング前にサンプリングを通じて異なるパフォーマンスの複数の系列を取得し、パフォーマンスの良い系列にモデルが傾くよう更新します。このアルゴリズムには実際には改善の余地があります。上記のトレーニングチャートから、前期のエントロピーの収束が非常に速いことが分かります。前期のモデルは非常にランダムで、サンプリングされた系列は多様であり、有用な勾配更新方向を見つけやすいと想像できます。しかし、後期ではモデルの収束が非常に小さいか基本的に収束しており、サンプリングで得られる系列は基本的に同じで、有用な更新を行うことが困難です。この時点でのサンプリングは計算能力の莫大な浪費であり、多くの無駄な作業を行っていると言えます。では、このサンプリングは現在のモデルパラメータに基づく必要があるでしょうか?必ずしもそうではありません。説明すると、ここでのサンプリングの目的は平均値を計算することで、アルゴリズムがオンポリシーかオフポリシーかとは関係ありません。更新モデルは依然として元のアルゴリズムロジックに従います。原理的には、豊富な多様性を持ち、現在のポリシーよりわずかに優れたサンプリング戦略が必要です。ランダムサンプリングは明らかに不適切です。収集する系列が非常に劣っている可能性があるためです。より良いサンプリング戦略をどのように得るかは、強化学習分野で非常に人気のある研究領域であり、読者の皆様の知恵の発揮に委ねます。
2 組の実装詳細の比較
データ構成:オフライントレーニングデータの保持メカニズムにより、ユーザーが最初のページのみを閲覧した場合、最初のページから 20 個の商品しか取得できません。ユーザーが 2 ページ目を閲覧して初めて、最初の 2 ページから 40 個の商品を取得できます。この 2 種類のデータ(最初のページのみと最初の 2 ページ)の分布は大きく異なります。前者はユーザーが最初のページのみでクリックまたは購入しており、系列が比較的良かった可能性があります。後者はユーザーが 2 ページ目まで閲覧を続けており、上位 20 個の系列が悪かったことが原因かもしれません。では、データの質と量のバランスをどのように取るべきでしょうか?
3 つのテストモデルを作成しました。1 つは 17 個の候補商品を含むデータでトレーニング、もう 1 つは 30 個の商品データでトレーニング、最後は両方のデータで同時にトレーニング(どちらも約 160 万件)です。最終的に、モデルがオンライン化する際に時間を考慮する必要があるため、最初のページの 17 個のみを対象とし、3 つのテストモデルをそれぞれ 17 行 17 個、30 行 17 個、50 行 17 個、100 行 17 個の 4 つの環境でテストしました。元の系列と比較し、生成された新しい系列が評価器でより優れているかどうかを観察します。結果は下表の通りです。
上表のデータから、2 つのトレーニングデータセットのサイズが同じでトレーニング時間も同じ場合、最初のページのデータセットのトレーニング効果がわずかに良いことが分かります。もちろん、差はそれほど大きくありません。計算リソースとストレージリソースを節約する観点から、最初のページのデータを直接使用する方がより便利です。また、上記の表から、候補商品のセットが大きいほど、時間が許容できる限り結果が良くなることが分かります。私たちのモデルは通常のスコアリングとソーティングの 2 倍の時間がかかることを考慮すると、小規模な状況では迅速に予測できますが、数十万の商品では許容できない可能性があります。
上記の内容では、最適化目標は期待購入数を最大化することでしたが、報酬の定義を変更することで他の目標の最適化も実現できます。たとえば、モデルが全体の GMV を向上させたい場合、従来の方法は大きく以下のカテゴリに分けられます。
1)モデルのターゲットは変更せず、コンバージョン率に価格係数を乗じて期待 GMV に近似します。この種の方法は通常、ソーティング結果に大きな変更を加え、明らかな単価上昇効果がありますが、オンライン効果は比較的安定しません。
2)モデルが価格を使用して重み付けするか、トレーニング中にサンプルの損失を変更します。この種の方法はソーティング結果への影響が小さく、場合によっては単価を上げる可能性がありますが、通常は顕著ではありません。
3)非成約サンプル(カート追加など)を取引サンプルとしてトレーニングします。カート追加サンプルを例に取ると、AE の統計データから、これらの商品の平均価格は取引サンプルの数倍高いことが分かります。これは、取引サンプルにある程度の信頼度と高価格サンプルを自然に追加するデータ拡張方法です。上記の方法はすべて間接的に GMV を改善していることが分かります。強化学習モデルの強みの 1 つは、GMV をほぼ直接モデル化できることです。報酬を以下のように修正できます。
ここで、商品の価格を表します。実際のトレーニングでは、商品の元の価格をそのまま使用するのではなく、商品候補セット内の価格分位数を使用します。価格を変えることで、商品間の過度の価格差による悪影響を防げますが、商品価格の元の情報も一部失われます。価格要素をどのようにモデルに更好地組み込むかは、今後より慎重に検討が必要な問題です。期待取引数を考慮するモデルを PAY バージョン、期待 GMV を考慮するモデルを GMV バージョン、両者の重み付き組み合わせを PAY_GMV バージョンと呼びます。PAY_GMV バージョンでは、最適化目標は以下のようになります。
上記の式のαは調整可能な係数です。オフライン評価の場合、3 つのモデルのトレーニング効果は以下の通りです。
図中のモデルはすべて 30 個の商品候補セットのデータでトレーニングされており、そのうち PAY_GMV バージョンです。予想通り、PAY バージョンは取引コンバージョンで優位性を持ち、GMV バージョンは GMV で優位性を持ち、PAY_GMV バージョンはバランスの取れた結果を得ます。
オンラインデプロイと実際の効果
結局のところ、オフライン評価には偏りがあります。生成器モデルがオンライン効果を本当に向上させられるかを検証するため、スケジュールされたスケジューリング戦略を通じて毎日モデルをトレーニングし、再アップロードします。モデルトレーニング中、過去 2 週間のすべての BTS 実験バケットのオフラインデータが収集され、5 時間かけて評価器をトレーニングし、その後生成器をトレーニングし、6 時間後にトレーニング済みの新しい生成器モデルをリリースします。評価器は増分トレーニングモードを使用し、生成器モデルは毎回トレーニングを再初期化して探索能力を失わないようにします。
オンライン実験では、まず独身の日のイベントでオンライン正の効果を達成しました。当時、GMV バージョンの強化学習リランキングモデルを投入し、ベンチマークバケットと比較してより良い単価向上を達成しました。オンライン実験で、GMV バージョンのモデルがコンバージョン率の損失をもたらすことを発見しました。そのため、UV コンバージョン率と UV 価値のバランスを取るため、独身の日の後に PAY_GMV バージョンの強化学習リランキングモデルを投入し、UV コンバージョン率と UV 価値の両方を向上させました。特筆すべきは、このバージョンのモデルが一定の単価とコンバージョン率の置換をもたらし、単価の一部を失いましたが、コンバージョン率をある程度増加させ、全体の GMV に寄与しました。
オンライン日次パフォーマンス
独身の日(11.11)の大規模プロモーションの前、ユーザーの高価格商品への購買意欲は急激に低下し、待ってからより多くを購入する傾向が強まりました。そのため、カート追加サンプルと取引サンプルを取引サンプルとして評価器をトレーニングし、この評価器を使用して生成器モデルをトレーニングしました。ここでは、購入商品数が多いほど良いことを期待しています。また、ユーザーは低価格商品を好むため、上記の PAY 生成器モデルを使用しました。大規模プロモーションの 5 日前、ベンチマークバケットと比較して、モデルのカート追加購入率は約 12.4% 増加しました。一方、強化学習なしの実験バケットでは、最高購入率は約 11.5% で、約 1% の差がありました。11 月 11 日の初日、強化学習リランキングモデルを持つバケットが最も顕著で、取引量が 6.81% 増加しました。11 日の 2 日目、強化学習リランキングモデルのパフォーマンスはわずかに低下し、取引量は 5.65% 増加しました。リアルタイムリランキングバケット(リランキングのみ異なり、リアルタイムリランキングは AE rerank のリアルタイムバージョン)と比較しても、全体の GMV は 1% 以上増加しました。
段階的なまとめと将来の展望
過去 5 か月間、私たちはゼロから強化学習リランキングモデルを構築し、独身の日(11.11)のテストを通過し、その柔軟性、実現性、そして大きな可能性を実証しました。本セクションでは、リランキングの将来を展望します。
GAIL 強化学習リランキング
現在、リランキングモデルのトレーニングは完全に評価器に依存しており、その精度が生成器の品質を決定します。一方、評価器は少量のデータ(全空間と比較して)でのみトレーニングされています。そのため、評価器はトレーニングデータ付近の分布では比較的信頼できるが、大きく異なる分布ではあまり信頼できないのではないかと推測します。では、生成器が生成する系列を、優れているだけでなく、できるだけトレーニングデータの分布に収まるようにできるでしょうか?そこで、GAIL の考え方を導入し、生成器は以前にトレーニングされた評価器からの報酬だけでなく、同時にトレーニングされる判別器からの報酬も受け取るようにします。ここで、判別器の目標は、生成された系列にできるだけ低いスコアを付け、元の系列にできるだけ高いスコアを付けることです。トレーニング結果は下図の通りです。
GAIL 強化学習リランキングのパフォーマンス(左:エントロピー、中:取引 BP、右:判別器 AUC)
青い線は前述の PAY バージョンの強化学習リランキングモデルです。2 番目の図で取引優位の指標の中で最も高く、生成された系列の約 90% が評価器からより高い評価を受けており、右の図では判別器が元の系列と非常に高い精度で区別できることも示しています。オレンジ色の線は判別器のみを使用して生成器をトレーニングするプロセスで、元の GAIL です。目標は生成された系列を元の系列に似せることです。2 番目の図から容易に分かるように、生成された系列は評価器で高い評価を受けていません。緑色の線は上記の両方を考慮したバージョンで、生成された系列は評価器でも判別器でも高いスコアを得られるようにします。
上記の最初の図から、判別器を持つ 2 つのモデルの収束が非常に低いことが分かります。これは、ランダム探索の戦略を追加したためです。具体的には、以前の各ステップではポリシーが予測する確率に基づいて候補商品を選択していましたが、これら 2 つのモデルでは 0.2 の確率でランダムに候補商品を選択します。実験により、このシンプルな探索戦略が GAIL のトレーニングに有利であることが分かりました。
11 月 25 日から 11 月 27 日までの 3 日間のオンライン結果によると、GAIL リランキングは元のリランキングと比較して、平均注文量を 3.22%、総取引量を 3.81% 増加させることができ、これは良好な改善です。
商品ソーティングの目的は、効果的な商品により良い露出機会を与え、ユーザーのニーズにマッチさせることです。一般的な考え方として、ある商品がユーザーのリクエストに対して良いか悪いかを判定できます。表示位置の観点では、上位にある商品ほど露出機会が向上します。そのため、モデルを通じて商品をグレーディングするという考え方が自然に生まれ、モデルが正確にスコアリングし、AUC が十分に高ければ、このスコアに基づいて商品を高い順から低い順にソートできるように思えます。この古典的なフレームワークには、ほとんどのリランキングが解決を目指す重大な欠陥があります。それは、商品のコンテキストが結果に影響を与えることです。リランキング前のモデルを考えると、候補商品のセットが大きすぎるため、コンテキスト情報をモデルに入力することは非常に困難です。そのため、リランキングを用いてコンテキストの影響を解決するという考え方が一般的です。実際、ほとんどすべてのリランキングモデルは商品のスコアリング時にコンテキストを考慮しています。ただし、実際には、商品がコンバージョンするかどうかをスコアリングすることと、候補商品をランキングして収益を最大化することは異なるタスクです。2 つのタスクは関連していますが、大きく異なります。スコアだけでソートすると元の順序が崩れ、元の順序ラベルから新しい順序ラベルを復元できず、新しい順序がどのように振る舞うかを判断できません。商品のコンバージョン行動がコンテキストによって変わらないと信じない限り、これは明らかに問題です。
コンテキストを考慮しない場合、モデルは商品をグレーディングできるほど正確でしょうか?
コンテキスト情報の記述度がスコアリング結果に与える影響を示すため、3 つのモデルを設計して実験を行いました。第 1 のモデルは、現在最も一般的に使用されているポイントワイズスコアリングモデルです。モデルの入力は商品特徴とユーザー情報で、Simple DNN と呼びます。第 2 のモデルは、リランキング段階で優れたパフォーマンスを発揮するオンラインリランキングモデル AE rerank です。Simple DNN をベースに、コンテキスト商品のグローバル統計情報、たとえば特定の特徴点の分散、平均値、極値などを追加しています。第 3 のモデルは、コンテキスト情報をさらに記述するために設計されました。AE rerank をベースに、CNN モジュールと RNN モジュールを追加して商品系列の情報を捉えます。モデル構造は下図の通りです(Simple DNN には青の CNN、RNN および緑のグローバル統計特徴入力が含まれず、AE rerank には青の CNN と RNN が含まれません)。
5,400 万件の日次データをトレーニングセットとして使用し、上記 3 つのモデルをそれぞれ 5 エポックトレーニングしました(すべて収束済み)。その後、テストセット(約 250 万件のデータ)でのパフォーマンス結果を計算しました。結果は下表の通りです。ここでの AEFS は、細粒度リランキング段階で生成される総合スコアのエイリアス名です。表中のデータが私たちの疑問に答えています。ポイントワイズモデルの Simple DNN は、コンテキスト情報を持つ AE rerank や新モデルよりもスコアリングがわずかに劣ります。ここから、商品スコアリングは商品が置かれているコンテキストの影響を受けるべきだと結論づけられます。コンテキスト情報を統合して初めて、より正確な推定が可能になります。
順序の変更を無視した場合、元の順序に基づくランキングは信頼できるでしょうか?
この数式はコンテキストを十分に考慮した新モデルに適用できます。ただし、最初の 2 つのモデル、Simple DNN と AE rerank については、商品がランダムに混在されていても、各商品に対するスコアリングまたは推定確率は一定です。そのため、商品系列のスコアとして直接加算すると不正確になります。一般的には、DCG のような方式で、各商品の推定確率に位置割引を乗じた合計をランキング結果とすることで、上記の状況を自然に回避できます。式は以下の通りです。
Simple DNN と AE rerank について、この手法で PV の良し悪しを判断する効果をテストしました。実験はクリックコンバージョンと取引コンバージョンの 2 部分に分かれています。理想的には、優れたモデルは 2 つのランキングのうちどちらがクリック行動を発生させやすいか、またはどちらが取引行動を発生させやすいかをより正確に判断できるはずです。同じラベルのソートペアを除外した結果は下表の通りです。
各評価モデルのパフォーマンス(系列の全体的な判断能力)
上記のテストデータから、すべてのモデルが大まかに良し悪しを区別できることがわかります。定義によれば、商品のスコアの高い順から低い順に直接ソートすることが、評価において最適な系列となります。しかし、ランキング結果は本当に効果的でしょうか?最強の評価能力を持つ新モデルの観点から結論は一致しているでしょうか?そこで、新たに生成されたこれらの「最適」系列とデータの元の系列を新モデルに送って評価させました。結果は下表の通りです。各値は、新たに生成された系列が元の系列よりもどれだけ優れているかを示しています。
新モデルによると、スコアの高い低いに基づいて直接ソートする戦略は、最大でも元の系列を約 66% しか上回ることができません。また、細粒度リランキング総合スコア AEFS に基づいて直接ソートする戦略は、元の系列よりもはるかに劣ります(これは、オフラインデータのほとんどの元の系列が AE rerank モデルによって生成されているためです)。この結果に基づき、商品のグレーディングに基づく直接ランキングはおそらく最適な方法ではないと考えられます。
それでは、スコアリングで直接ソートできない場合、どのように最適系列を見つけられるでしょうか?最も直接的な方法は、考えられるすべての系列結果を列挙し、新モデルに 1 つずつスコアリングさせ、最適なソーティングを最終結果として選択することです。しかし、オンラインの計算能力では力ずくで列挙するには到底足りないため、列挙のセットを最適化する必要があります。ヒューリスティックな貪欲探索であるビームサーチは、探索プロセス中にほとんどの無駄な状態を削減するソリューションとして使用できます。この方法は精度と速度のトレードオフが必要です。一般的に、一定の精度を確保した条件下で満足できる速度を達成することは困難です。私たちの取り組みでは、より直接的な方法で系列を生成することを望んでいます。
商品系列生成器
商品系列生成器は系列を生成するためのモデルです。入力は候補商品で、出力は順序付きの商品です。ポインターネットワークを使用するのは自然な考え方です。ステップごとに進み、各ステップで現在の状態に基づいて商品を 1 つ選択し、最終的に商品の順序を得ます。ポインターネットワークに基づくネットワーク構造を設計し、最終的なモデルは以下の通りです。
このように設計されたモデルには 2 つの利点があります。第 1 に、合計値を指定する必要がないことです。モデルのパラメータは合計値に依存せず、トレーニング時も予測時も合計値を必要に応じて設定できます。第 2 に、変換後、元の 2 つの LSTM を持つポインターネットワーク構造が現在のものになり、残りは DNN に置き換えられました。これにより実装が簡素化されるだけでなく、予測時間が半分に短縮されます(オンライン CPU 環境では LSTM の実行が遅いため)。
生成モデルがあれば、新モデルのスコアが非常に高くなるようなソートを生成し、従来の方法を高い確率で上回ることを期待します。従来の方法は元の順序ラベルを通じて教師あり学習で監督できますが、順序の変更がラベルを変える可能性があるため、教師あり学習でこのタスクを完璧にこなすことはできません。代替方法として、ランダムな方式でいくつかの候補系列をサンプリングし、新モデルでスコアリングして最適な系列を教師あり学習のターゲットとして選択できます。また、いくつかの代替系列を生成した後に最適な系列を結果とすることもできます。私たちの取り組みでは、強化学習を使用して生成と評価の 2 つのステップを結びつけています。
強化学習のアプローチ
評価器は系列内の予想取引数を予測しているため、この結果を強化学習における報酬とみなせば、生成器と評価器が自然に結びつくように思えます。生成器のトレーニングプロセスでは、商品を選択するたびに評価器からの報酬信号を受け取ります。最後に、軌跡全体の総報酬を最大化するだけです。
ただし、ここにはまだ問題があります。コンテキスト情報を使用して計算されますが、各ステップで商品を選択する際、その後の商品がどのように並ぶか分かりません。そのため、簡略化と修正が必要で、既に選択された商品のみに依存し、その後の商品のソーティング結果には関係ないようにします。つまり、ユーザーは上から下へ商品を閲覧し、現在の商品の購入確率は既に閲覧した商品系列のみに依存し、その後の商品の配置には関係ないと仮定します。評価器の具体的な修正は、CNN モジュールを削除することです。
評価器モデルを簡略化後、強化学習に必要ないくつかの要素が既に揃っています。商品生成器はトレーニング対象のエージェントです。現在の状態に基づいて良いと思う行動を取り、その後評価器から報酬を受け取ります。そして次の状態へ移行し、引き続き行動を取って報酬を得ます。このようにして、N 個の三つ組を得ることができます。具体的な定義は以下の通りです。
各ステップの状態:それまでに配置された商品系列と残りの候補商品セット
各ステップの行動:候補セットのうちどの商品を選択するかという離散行動
上記を考慮した上で、評価器が予測する軌跡の確率の長さは N で、減衰係数はγです。
主にポリシーベースの手法を使用して上記の生成器モデルを最適化することを検討します。バリューベースの手法を使用しない理由は、実験でこの問題の下では V 値や Q 値を正確に推定することが困難である可能性を発見したためです。
強化学習は総リターンを最大化する必要があり、同時に各ステップの総リターンも最大化する必要があることに注意してください。各ステップの総リターンは、現在の商品から N 番目の商品までの報酬の合計です。これを Q 値と呼び、以下のように定義します。
そこで、最も基本的なアルゴリズムである REINFORCE アルゴリズムから始めます。損失関数は以下の通りです。
この比較的シンプルなモデルの実験結果は理想的ではありません。そのうちの 1 つは簡単に見つかります。一部の高品質な候補がどのように行動しても高い総リターンを持ち、同時に一部の劣った候補セットがどのように行動しても低い総リターンを持つ場合、モデルは最適化に有用な情報を見つけることが困難になります。そのため、報酬から候補セットの平均値を差し引く、さらには平均値で割った平均値の変化量(変化率)を差し引くなどして、行動の良し悪しを判断する目的を達成することを検討できます。
平均値を計算する 1 つの方法は、評価器での元の系列のスコアを直接使用することです。ここでトレーニングデータについて説明します。たとえば、実験では主に 30 個の候補から 17 個を選択する構成に重点を置いているため、各クエリでオンラインで実際に表示される最初の 30 個の商品を取得してトレーニングデータの候補とし、生成器がこの 30 個から 17 個を選択します。30 個の候補商品の最初の 17 個が実際のオンライン表示系列であることが分かります。したがって、元の系列は評価器でスコア i を得ることができ、これは上記と同じ次元で、各ステップの総リターンまたは Q 値を表します。したがって、上記の REINFORCE アルゴリズムの損失関数は以下のように変換できます。
強化学習に詳しい読者は、アクタークリティク手法で平均値を推定できるという考えが浮かぶかもしれません。これが平均値を推定する第 2 の方法です。本稿では強力な PPO アルゴリズムを使用し、クリティクで値を推定し、アドバンテージ関数の値を計算してポリシーを更新します。ただし、ここには大きな問題が潜んでいます。値を推定するためのネットワークをどのように設計するかです。
値は、現在の状態から現在のポリシーを使用して得られる総報酬の平均値です。現在の状態は、現在配置済みの商品と残りの候補商品です。前述のモデルの優れた特性(候補商品セットの数が可変であること)を維持しながら、正確な値を予測する必要があります。そのため、前述のモデル構造と同様の設計を採用します。つまり、残りの候補商品にスコアリングし、その後スコアを合計します。モデル構造は以下の通りです。
アルゴリズムの効果は REINFORCE アルゴリズムと大差ありません。PPO アルゴリズムのパフォーマンスが良くないのは、値の推定が困難なためだと考えられます。では、PPO のアクター更新方法を維持しつつ、クリティクモジュールを変更できるでしょうか?ここで平均値を推定する第 3 の方法、モンテカルロサンプリングについて説明します。利便性と効率性を達成するため、元のモンテカルロサンプリングにもいくつかの改善を加えました。
各データまたは候補商品セットのグループについて、モデルに現在のパラメータに基づいて複数の順列を生成させ、これらの順列が評価器で得る総報酬の平均値を現在のポリシーの近似値とみなすことができます。
これまで、REINFORCE アルゴリズムから PPO アルゴリズムおよびその改良版まで、5 つの強化学習アルゴリズムについて言及しました。それぞれのトレーニング効果は下図の通りです。アルゴリズムの探索能力を高めるため、5 つのアルゴリズムすべてに同じエントロピー報酬を損失に追加しています。左の図はモデルの出力行動確率のエントロピー変化を示しており、低いほど収束していることを意味します。右の図は、テストセットでモデルが生成した順列が評価器で元の順列の総合スコアを上回る割合を示しています。この割合を優位率、略して BP と呼びます。Lazada のリランキングでは置換率とも呼ばれます。私たちの見解では、強化学習のトレーニング時には損失ではなく、エントロピーと総リターンに注目します。
強化学習アルゴリズムのパフォーマンス比較(左:エントロピー、右:BP)
左のエントロピー比較図から、PPO_MC アルゴリズムが最も速く、最も優れた収束を示していることが分かります。右の BP 比較図から、PPO_MC モデルが最適な結果を達成できることも分かります。元の PPO モデルはエントロピーの収束が難しいだけでなく、生成された系列が元の系列をわずかに上回るだけであり、改良版は良好に収束しています。
より分かりやすく説明すると、PPO_MC アルゴリズムはトレーニング前にサンプリングを通じて異なるパフォーマンスの複数の系列を取得し、パフォーマンスの良い系列にモデルが傾くよう更新します。このアルゴリズムには実際には改善の余地があります。上記のトレーニングチャートから、前期のエントロピーの収束が非常に速いことが分かります。前期のモデルは非常にランダムで、サンプリングされた系列は多様であり、有用な勾配更新方向を見つけやすいと想像できます。しかし、後期ではモデルの収束が非常に小さいか基本的に収束しており、サンプリングで得られる系列は基本的に同じで、有用な更新を行うことが困難です。この時点でのサンプリングは計算能力の莫大な浪費であり、多くの無駄な作業を行っていると言えます。では、このサンプリングは現在のモデルパラメータに基づく必要があるでしょうか?必ずしもそうではありません。説明すると、ここでのサンプリングの目的は平均値を計算することで、アルゴリズムがオンポリシーかオフポリシーかとは関係ありません。更新モデルは依然として元のアルゴリズムロジックに従います。原理的には、豊富な多様性を持ち、現在のポリシーよりわずかに優れたサンプリング戦略が必要です。ランダムサンプリングは明らかに不適切です。収集する系列が非常に劣っている可能性があるためです。より良いサンプリング戦略をどのように得るかは、強化学習分野で非常に人気のある研究領域であり、読者の皆様の知恵の発揮に委ねます。
2 組の実装詳細の比較
データ構成:オフライントレーニングデータの保持メカニズムにより、ユーザーが最初のページのみを閲覧した場合、最初のページから 20 個の商品しか取得できません。ユーザーが 2 ページ目を閲覧して初めて、最初の 2 ページから 40 個の商品を取得できます。この 2 種類のデータ(最初のページのみと最初の 2 ページ)の分布は大きく異なります。前者はユーザーが最初のページのみでクリックまたは購入しており、系列が比較的良かった可能性があります。後者はユーザーが 2 ページ目まで閲覧を続けており、上位 20 個の系列が悪かったことが原因かもしれません。では、データの質と量のバランスをどのように取るべきでしょうか?
3 つのテストモデルを作成しました。1 つは 17 個の候補商品を含むデータでトレーニング、もう 1 つは 30 個の商品データでトレーニング、最後は両方のデータで同時にトレーニング(どちらも約 160 万件)です。最終的に、モデルがオンライン化する際に時間を考慮する必要があるため、最初のページの 17 個のみを対象とし、3 つのテストモデルをそれぞれ 17 行 17 個、30 行 17 個、50 行 17 個、100 行 17 個の 4 つの環境でテストしました。元の系列と比較し、生成された新しい系列が評価器でより優れているかどうかを観察します。結果は下表の通りです。
上表のデータから、2 つのトレーニングデータセットのサイズが同じでトレーニング時間も同じ場合、最初のページのデータセットのトレーニング効果がわずかに良いことが分かります。もちろん、差はそれほど大きくありません。計算リソースとストレージリソースを節約する観点から、最初のページのデータを直接使用する方がより便利です。また、上記の表から、候補商品のセットが大きいほど、時間が許容できる限り結果が良くなることが分かります。私たちのモデルは通常のスコアリングとソーティングの 2 倍の時間がかかることを考慮すると、小規模な状況では迅速に予測できますが、数十万の商品では許容できない可能性があります。
上記の内容では、最適化目標は期待購入数を最大化することでしたが、報酬の定義を変更することで他の目標の最適化も実現できます。たとえば、モデルが全体の GMV を向上させたい場合、従来の方法は大きく以下のカテゴリに分けられます。
1)モデルのターゲットは変更せず、コンバージョン率に価格係数を乗じて期待 GMV に近似します。この種の方法は通常、ソーティング結果に大きな変更を加え、明らかな単価上昇効果がありますが、オンライン効果は比較的安定しません。
2)モデルが価格を使用して重み付けするか、トレーニング中にサンプルの損失を変更します。この種の方法はソーティング結果への影響が小さく、場合によっては単価を上げる可能性がありますが、通常は顕著ではありません。
3)非成約サンプル(カート追加など)を取引サンプルとしてトレーニングします。カート追加サンプルを例に取ると、AE の統計データから、これらの商品の平均価格は取引サンプルの数倍高いことが分かります。これは、取引サンプルにある程度の信頼度と高価格サンプルを自然に追加するデータ拡張方法です。上記の方法はすべて間接的に GMV を改善していることが分かります。強化学習モデルの強みの 1 つは、GMV をほぼ直接モデル化できることです。報酬を以下のように修正できます。
ここで、商品の価格を表します。実際のトレーニングでは、商品の元の価格をそのまま使用するのではなく、商品候補セット内の価格分位数を使用します。価格を変えることで、商品間の過度の価格差による悪影響を防げますが、商品価格の元の情報も一部失われます。価格要素をどのようにモデルに更好地組み込むかは、今後より慎重に検討が必要な問題です。期待取引数を考慮するモデルを PAY バージョン、期待 GMV を考慮するモデルを GMV バージョン、両者の重み付き組み合わせを PAY_GMV バージョンと呼びます。PAY_GMV バージョンでは、最適化目標は以下のようになります。
上記の式のαは調整可能な係数です。オフライン評価の場合、3 つのモデルのトレーニング効果は以下の通りです。
図中のモデルはすべて 30 個の商品候補セットのデータでトレーニングされており、そのうち PAY_GMV バージョンです。予想通り、PAY バージョンは取引コンバージョンで優位性を持ち、GMV バージョンは GMV で優位性を持ち、PAY_GMV バージョンはバランスの取れた結果を得ます。
オンラインデプロイと実際の効果
結局のところ、オフライン評価には偏りがあります。生成器モデルがオンライン効果を本当に向上させられるかを検証するため、スケジュールされたスケジューリング戦略を通じて毎日モデルをトレーニングし、再アップロードします。モデルトレーニング中、過去 2 週間のすべての BTS 実験バケットのオフラインデータが収集され、5 時間かけて評価器をトレーニングし、その後生成器をトレーニングし、6 時間後にトレーニング済みの新しい生成器モデルをリリースします。評価器は増分トレーニングモードを使用し、生成器モデルは毎回トレーニングを再初期化して探索能力を失わないようにします。
オンライン実験では、まず独身の日のイベントでオンライン正の効果を達成しました。当時、GMV バージョンの強化学習リランキングモデルを投入し、ベンチマークバケットと比較してより良い単価向上を達成しました。オンライン実験で、GMV バージョンのモデルがコンバージョン率の損失をもたらすことを発見しました。そのため、UV コンバージョン率と UV 価値のバランスを取るため、独身の日の後に PAY_GMV バージョンの強化学習リランキングモデルを投入し、UV コンバージョン率と UV 価値の両方を向上させました。特筆すべきは、このバージョンのモデルが一定の単価とコンバージョン率の置換をもたらし、単価の一部を失いましたが、コンバージョン率をある程度増加させ、全体の GMV に寄与しました。
オンライン日次パフォーマンス
独身の日(11.11)の大規模プロモーションの前、ユーザーの高価格商品への購買意欲は急激に低下し、待ってからより多くを購入する傾向が強まりました。そのため、カート追加サンプルと取引サンプルを取引サンプルとして評価器をトレーニングし、この評価器を使用して生成器モデルをトレーニングしました。ここでは、購入商品数が多いほど良いことを期待しています。また、ユーザーは低価格商品を好むため、上記の PAY 生成器モデルを使用しました。大規模プロモーションの 5 日前、ベンチマークバケットと比較して、モデルのカート追加購入率は約 12.4% 増加しました。一方、強化学習なしの実験バケットでは、最高購入率は約 11.5% で、約 1% の差がありました。11 月 11 日の初日、強化学習リランキングモデルを持つバケットが最も顕著で、取引量が 6.81% 増加しました。11 日の 2 日目、強化学習リランキングモデルのパフォーマンスはわずかに低下し、取引量は 5.65% 増加しました。リアルタイムリランキングバケット(リランキングのみ異なり、リアルタイムリランキングは AE rerank のリアルタイムバージョン)と比較しても、全体の GMV は 1% 以上増加しました。
段階的なまとめと将来の展望
過去 5 か月間、私たちはゼロから強化学習リランキングモデルを構築し、独身の日(11.11)のテストを通過し、その柔軟性、実現性、そして大きな可能性を実証しました。本セクションでは、リランキングの将来を展望します。
GAIL 強化学習リランキング
現在、リランキングモデルのトレーニングは完全に評価器に依存しており、その精度が生成器の品質を決定します。一方、評価器は少量のデータ(全空間と比較して)でのみトレーニングされています。そのため、評価器はトレーニングデータ付近の分布では比較的信頼できるが、大きく異なる分布ではあまり信頼できないのではないかと推測します。では、生成器が生成する系列を、優れているだけでなく、できるだけトレーニングデータの分布に収まるようにできるでしょうか?そこで、GAIL の考え方を導入し、生成器は以前にトレーニングされた評価器からの報酬だけでなく、同時にトレーニングされる判別器からの報酬も受け取るようにします。ここで、判別器の目標は、生成された系列にできるだけ低いスコアを付け、元の系列にできるだけ高いスコアを付けることです。トレーニング結果は下図の通りです。
GAIL 強化学習リランキングのパフォーマンス(左:エントロピー、中:取引 BP、右:判別器 AUC)
青い線は前述の PAY バージョンの強化学習リランキングモデルです。2 番目の図で取引優位の指標の中で最も高く、生成された系列の約 90% が評価器からより高い評価を受けており、右の図では判別器が元の系列と非常に高い精度で区別できることも示しています。オレンジ色の線は判別器のみを使用して生成器をトレーニングするプロセスで、元の GAIL です。目標は生成された系列を元の系列に似せることです。2 番目の図から容易に分かるように、生成された系列は評価器で高い評価を受けていません。緑色の線は上記の両方を考慮したバージョンで、生成された系列は評価器でも判別器でも高いスコアを得られるようにします。
上記の最初の図から、判別器を持つ 2 つのモデルの収束が非常に低いことが分かります。これは、ランダム探索の戦略を追加したためです。具体的には、以前の各ステップではポリシーが予測する確率に基づいて候補商品を選択していましたが、これら 2 つのモデルでは 0.2 の確率でランダムに候補商品を選択します。実験により、このシンプルな探索戦略が GAIL のトレーニングに有利であることが分かりました。
11 月 25 日から 11 月 27 日までの 3 日間のオンライン結果によると、GAIL リランキングは元のリランキングと比較して、平均注文量を 3.22%、総取引量を 3.81% 増加させることができ、これは良好な改善です。
Related Articles
-
A detailed explanation of Hadoop core architecture HDFS
Knowledge Base Team
-
What Does IOT Mean
Knowledge Base Team
-
6 Optional Technologies for Data Storage
Knowledge Base Team
-
What Is Blockchain Technology
Knowledge Base Team
Explore More Special Offers
-
Short Message Service(SMS) & Mail Service
50,000 email package starts as low as USD 1.99, 120 short messages start at only USD 1.00
