Deep recall model based on multi-task learning and negative feedback
One:背景
従来の推薦システムは通常、候補生成 (Candidate Generation) とランキング (Ranking) の 2 つの部分で構成されます。下図の古典的な YouTube 動画推薦を例にとると [1]、システム全体は 2 層に分かれています。第 1 層は候補生成で、全動画から数百の候補動画を迅速にスクリーニングする役割を担います。このステップは通常、マッチング (リコール) と呼ばれます。第 2 層はランキングで、数百の動画に対して正確なスコアリングを行い、ユーザーに表示される結果の最終的な順序を決定するために並べ替えます。
本論文では主にマッチング (リコール) 部分について研究します。この部分は通常、推薦対象のアイテムセット全体を対象とし、速度を確保しつつ、できるだけ多くの関連性の高い結果を保持する必要があります。近年の一連の実践と研究により、行動シーケンスに基づくディープラーニング推薦モデル [2-4] と高性能近似検索アルゴリズム [5] を組み合わせることで、精度と速度を両立したリコール性能を達成できることが示されています (この手法は通常 DeepMatch と呼ばれます)。従来のリコール手法 (swing、etrec、SVD など) と比較して、DeepMatch の利点は以下の通りです。
ユーザーとアイテム間のより深い非線形関係をモデル化できる
モデル内でさまざまなユーザー特徴とアイテム特徴を利用できる
行動シーケンスに基づくモデルは、ユーザーの変化する興味をモデル化でき、ユーザーの長期的および短期的な興味を統合できる
DeepMatch は Tmall Genie の推薦シーン (アプリの情報フロー推薦、音楽推薦など) で広く使用されており、従来の i2i 手法よりも優れた成果を上げています。ただし、現在のモデルにはまだいくつかの問題があり、一部の重要な情報がまだ導入されていません。(「音楽を聴きたい」シーンを例にとります。このシーンでは、Tmall Genie はユーザーの好みに応じて音楽を推薦します。)
負のフィードバック信号 (Play Rate)
初期のトレーニングログデータには正のフィードバックのみが含まれており、高い再生完了率を持つ楽曲シーケンスを使用して DeepMatch モデルをトレーニングします。Tmall Genie のシーンでは、ユーザーが積極的に「再生停止」や「次の曲」といった楽曲スキップの行動をとります。これらの行動の多くは、ユーザーが楽曲を好まない場合にトリガーされます。これらの信号をユーザーからの負のフィードバックとしてモデルに組み込むことができます。また、一部の実践により負のフィードバックの有効性が示されています [6-7]。これらの信号を効果的に利用できれば、モデルはユーザーの常に変化する興味をリアルタイムで捕捉でき、ユーザーが楽曲スキップ行動をとった際に同タイプの音楽推薦を減らすことができます。本シーンでは、各楽曲の再生完了率でユーザーフィードバックを表します。高い完了率は正のフィードバック、低い完了率は負のフィードバックです。
楽曲オンデマンドクエリ意図信号 (Intent Type)
Tmall Genie の楽曲の多くはユーザーのクエリリクエストにより再生されます。各楽曲の背後にはユーザーのリクエスト意図があります。Tmall Genie のバックエンドには専用の楽曲クエリ意図分析システムがあり、正確なオンデマンド (曲名オンデマンド:「七里香を再生」、歌手オンデマンド:「Andy Lau の曲を聴きたい」)、推薦 (スタイル・ジャンル推薦:「ロックをかけよう」、カジュアルリスニング推薦:「何か歌って」) などがあります。ユーザー行動の分析によると、異なる意図タイプ下での楽曲は推薦モデルへの貢献重みが異なります。楽曲に対応する意図アテンションをモデルに統合することで、ユーザーの興味をより正確に把握できます。そこで本論文では、マルチタスク学習と負のフィードバックに基づくディープなリコールモデルを提案します。
Two:手法
一般に、近似最近傍検索アルゴリズムの制約により、リコールモデルはユーザーの履歴行動シーケンスを独立にエンコードしてユーザーの各ステップのベクトル表現を生成し、その後 Target Item ベクトルとの内積演算を行ってスコアを算出する必要があります。モデルは Self-Attention アーキテクチャに基づいて実装されており、全体の構造は以下の通りです。
1 Input Representations
前述の通り、負のフィードバック信号とユーザー意図タイプ信号をモデル化するため、本モデルでは Play Rate と Intent Type の表現を導入します。ただし、初期データセットにはこれら 2 つの信号が含まれていないため、Train Set 1 を初期データセット、Train Set 2 を負のフィードバック信号とユーザー意図タイプ信号を含むデータセットとして表し、両者の統一表現を行いました。一般に、ユーザー履歴行動シーケンスにおける各 Item の表現は以下の 4 つの部分で構成されます。
1) Item Embedding
まず各 Item を固定サイズの低次元ベクトルに埋め込みます。Train Set 1 と Train Set 2 は同じ Item Vocabulary を共有するため、区別する必要はありません。
ここで image.png は Item の One-Hot 表現、image.png は Item Embedding 行列です。また、出力層と入力層が同じ Item Embedding を共有している点に注意が必要です。これは GPU メモリの使用量を節約するためです。推薦シーンのアイテム数は膨大であるためですが、多くの研究によりこのアプローチがモデルのパフォーマンスに大きな影響を与えないことが証明されています [2]。
2) Position Embedding
行動シーケンスタスクでは、行動シーケンス内の順序情報を捉えるために位置埋め込みを使用する必要があります。元の Transformer 論文 [8] の sin と cos を用いる手法とは異なり、最大シーケンス長に基づく埋め込みで異なる位置を表現する方法を採用します。
3) Play Rate Embedding
再生完了率は、ユーザーがアイテムを受け入れたかどうかの重要なフィードバックです。Tmall Genie では、ユーザーは好まない楽曲を「次の曲」コマンドでスキップすることが多く、これらの楽曲の再生完了率は比較的低くなります。再生完了率は [0, 1] の範囲の連続値です。連続値特徴と後述する離散値特徴との相互作用を実現するため、[9] の手法を参考に Play Rate を Item Embedding と同じ低次元ベクトル空間に写像します。具体的には、Play Rate Embedding を以下のように表現します。
ここで image.png は Play Rate、image.png はランダムに初期化された Embedding、image.png は最終的な Play Rate Embedding です。Train Set 1 のデータには再生時間の長い楽曲のみが含まれており、再生完了率に関する情報がないため、Train Set 1 ではすべての Play Rate を 0.99 に固定します。
4) Intent Type Embedding
ユーザー意図タイプは、ユーザーがアイテムに入力した方法を示します。たとえば Tmall Genie では、オンデマンド (ユーザーが明示的にリクエストした楽曲) と推薦 (Tmall Genie がユーザーに推薦した楽曲) は異なる Intent Type です(実際の Tmall Genie シーンではより多くのタイプが存在します)。Item 自体の表現と同様に、Intent Type も固定の低次元ベクトル空間に写像します。
Train Set 1 のデータでは Intent Type が不明なため、ここでは Train Set 1 のすべての Intent Type をオンデマンドと仮定します。
2 Factorized Embedding Parameterization
推薦タスクでは通常、Vocabulary Size が非常に大きく、大きな Embedding Size を使用して Item を表現するとメモリに収まりません。しかし、Transformer を使用する多くの研究により、Hidden Size を増やすとモデルの効果を効果的に改善できることが証明されています [10]。ALBERT [11] のモデル圧縮手法を参考に、まず Item の One-Hot ベクトルを低次元空間に写像し、その後高次元空間に戻して Transformer に入力することで、パラメータ数を大幅に削減できます。
3 Feedback-Aware Multi-Head Self-Attention
ユーザーの行動シーケンスの特徴表現を得た後、アテンションメカニズムを使って行動シーケンスをエンコードし、ユーザーベクトルを構築します。Transformer [8] で説明されているように、アテンションメカニズムは Query と一連の Key-Value ペアを Output に写像する関数として記述できます。ここで Query、Key、Value、Output はいずれもベクトルであり、Output は Value の加重和として計算されます。各 Value に割り当てられる重みは、Query と対応する Key のスコアリング関数により算出されます。リコールモデルの制約上、Target Item を使用してユーザー行動シーケンス内の Item と事前に演算を行うことができないため、Self-Attention を使用し、ユーザー行動シーケンスを直接 Query、Key、Value として計算します。具体的には、Multi-Head Self-Attention アプローチを使用してモデルの複雑なインタラクションをモデル化する能力を高めます。
ここで image.png は線形射影行列、image.png はヘッド数です。古典的な Transformer 構造では、image.png は Item Embedding と Position Embedding で構成されます。本モデルでは、外部情報 (再生完了率とユーザー意図タイプ) を Attention に導入し、Feedback-Aware Attention と呼びます。この情報の導入により、モデルはユーザーのフィードバック情報に基づいてユーザーの各楽曲に対する異なる嗜好を認識する能力を持ちます。
さらに、ALBERT [11] を参考に Cross-layer Parameter Sharing 方式も試しました。この方式では、各 Transformer Layer が 1 セットのパラメータを共有します。同じ規模 (同じレイヤー数) の Transformer では、この方式を採用すると実際の効果は若干低下しますが、パラメータ数は大幅に削減され、トレーニング速度も大幅に向上します。データ規模が大きいシーンでは、この戦略によりトレーニング時間をできる限り節約しつつ、モデル性能を維持できます。
4 Sampled Softmax Loss For Positive Feedback and Sigmoid CE Loss For Negative Feedback
ユーザーのベクトル表現を得た後、マルチタスク学習の目標を定義できます。Train Set 1 と Train Set 2 のデータ表現を事前に統一したため、これら 2 つのタスクを一緒にして共同マルチタスクトレーニングを行えます。具体的には、タスクは言語モデルに似ています。すなわち、以前に聴いた音楽を条件として、次のステップでユーザーが聴きたい音楽を予測します。再生完了率に基づいて信号を 2 つのタイプに分割します。1 つは Positive Feedback で、スコアのランキングをできるだけ高くすることが最適化目標です。もう 1 つは Negative Feedback で、スコアのランキングをできるだけ低くすることが最適化目標です。
下図左に示すように、従来の Positive Feedback Loss のみを行う場合、モデルはユーザーベクトルと好みの Item (正例) との距離を縮め、未観測の Item との距離を広げることができますが、好ましくない Item (負例) との距離は広がらない可能性があります。右図に示すように、モデルが上記の特性を実現しつつ、ユーザーベクトルと好ましくないアイテムとの距離も広げられるようにしたいと考えます。
そこで、Positive Feedback と Negative Feedback を組み合わせた最適化目標を使用します。
Positive Feedback には Sampled Softmax Loss を使用して最適化します。多くの先行研究 [12-13] において、Sampled Softmax Loss は大規模な推薦リコールモデルに非常に適していることが証明されており、以下のように定義されます。
TensorFlow で実装する場合、sampled_softmax がデフォルトで使用するサンプラーは log_uniform_candidate_sampler です(Word2Vec の TF 版はこの実装に基づいています)。これは Zipf 分布に基づいてサンプリングを行い、各アイテムのサンプリング確率は語頻のランキングのみに依存します。ただし、推薦におけるアイテムと NLP における単語は異なる可能性があるため、他の 2 つのサンプラーを試しました。
uniform_candidate_sampler:一様分布を使用してサンプリングする
learned_unigram_candidate_sampler:トレーニングプロセス中に語彙の頻度を動的に集計し、確率を計算してサンプリングする
実験の結果、learned_unigram_candidate_sampler が最良の結果を達成しました。また、[2] と同様の結論として、負例の数は比較的重要なパラメータであり、GPU メモリが許す限り負例の数を適切に増やすことで、モデルの収束効果を効果的に改善できることがわかりました。
Negative Feedback には、Sigmoid 交差エントロピー損失を直接使用して最適化し、再生完了率の低いすべてのアイテムを負例とみなして、スコアをできるだけ低くします。
最終的な合計 Loss は両者の合計です。
Three:実験
1 分散トレーニング
推薦シーンの語彙サイズとデータ量は通常膨大であるため、TensorFlow の ParameterServer 戦略を採用して分散トレーニングコードを実装しました。チューニング過程でいくつかの経験知も蓄積されました。
1) Embedding の断片化問題に注意が必要です。1 つは tf.fixed_size_partitioner のサイズ設定、もう 1 つは embedding_lookup の partition_strategy で、トレーニング時と推論時の設定を一致させる必要があります。
2) sampled_softmax のコードは自身のシーンに応じて最適化する必要があります。たとえば、本シーンでは同じバッチ内のサンプルの重複割合が比較的高いため、embedding_lookup 内で unique を追加することでトレーニング速度を大幅に向上できます。
3) マスク機構を柔軟に活用することで、さまざまな Attention 戦略を効果的に実装できます。
2 実験結果
オフライン実験の指標は R@N を採用します。これはスコアリングランキングのトップ N 結果に Target Item が含まれる割合です。正例の場合、この指標は POS@N と呼ばれ、高いほど良い値です。負例の場合、指標は NEG@N と呼ばれ、低いほど良い値です。スペースの制約上、主な実験結果の 1 セットのみを示します。本セットの実験では Multitask Learning と Negative Feedback の効果を検証します。他の戦略が最適な条件 (オプティマイザ、サンプリング方法など) を採用している場合において、a. 従来の DM 手法でトレーニングし、完了率の高い正のフィードバックアイテムのみを保持して行動シーケンスを構築する。b. a の基礎上に Play Rate と Play Type の特徴を追加する。c. b の基礎上に Negative Feedback 信号を追加し、マルチタスクトレーニングを行う。
フィードバック信号 (Play Rate) と楽曲オンデマンドクエリ意図信号 (Intent Type) を追加した後、b の効果が a よりも優れていることがわかります。さらに Multitask Learning の Negative Feedback 目標を追加した後、c は POS@N の小さな変化を保ちながら NEG@N を大幅に削減できています。
また、オンラインの「あなたのお気に入り推測」シーンにおいても新手法の有効性を証明しました。元の DM 方式に基づくバケット化と比較して、新モデル (DM with Play Rate/Intent Type and NEG MTL) のバケット化による一人あたり再生時間が +9.2% 増加しました。同時に、本手法は Tmall Genie のより多くの推薦シーンに適用され、良好な成果を上げています。
従来の推薦システムは通常、候補生成 (Candidate Generation) とランキング (Ranking) の 2 つの部分で構成されます。下図の古典的な YouTube 動画推薦を例にとると [1]、システム全体は 2 層に分かれています。第 1 層は候補生成で、全動画から数百の候補動画を迅速にスクリーニングする役割を担います。このステップは通常、マッチング (リコール) と呼ばれます。第 2 層はランキングで、数百の動画に対して正確なスコアリングを行い、ユーザーに表示される結果の最終的な順序を決定するために並べ替えます。
本論文では主にマッチング (リコール) 部分について研究します。この部分は通常、推薦対象のアイテムセット全体を対象とし、速度を確保しつつ、できるだけ多くの関連性の高い結果を保持する必要があります。近年の一連の実践と研究により、行動シーケンスに基づくディープラーニング推薦モデル [2-4] と高性能近似検索アルゴリズム [5] を組み合わせることで、精度と速度を両立したリコール性能を達成できることが示されています (この手法は通常 DeepMatch と呼ばれます)。従来のリコール手法 (swing、etrec、SVD など) と比較して、DeepMatch の利点は以下の通りです。
ユーザーとアイテム間のより深い非線形関係をモデル化できる
モデル内でさまざまなユーザー特徴とアイテム特徴を利用できる
行動シーケンスに基づくモデルは、ユーザーの変化する興味をモデル化でき、ユーザーの長期的および短期的な興味を統合できる
DeepMatch は Tmall Genie の推薦シーン (アプリの情報フロー推薦、音楽推薦など) で広く使用されており、従来の i2i 手法よりも優れた成果を上げています。ただし、現在のモデルにはまだいくつかの問題があり、一部の重要な情報がまだ導入されていません。(「音楽を聴きたい」シーンを例にとります。このシーンでは、Tmall Genie はユーザーの好みに応じて音楽を推薦します。)
負のフィードバック信号 (Play Rate)
初期のトレーニングログデータには正のフィードバックのみが含まれており、高い再生完了率を持つ楽曲シーケンスを使用して DeepMatch モデルをトレーニングします。Tmall Genie のシーンでは、ユーザーが積極的に「再生停止」や「次の曲」といった楽曲スキップの行動をとります。これらの行動の多くは、ユーザーが楽曲を好まない場合にトリガーされます。これらの信号をユーザーからの負のフィードバックとしてモデルに組み込むことができます。また、一部の実践により負のフィードバックの有効性が示されています [6-7]。これらの信号を効果的に利用できれば、モデルはユーザーの常に変化する興味をリアルタイムで捕捉でき、ユーザーが楽曲スキップ行動をとった際に同タイプの音楽推薦を減らすことができます。本シーンでは、各楽曲の再生完了率でユーザーフィードバックを表します。高い完了率は正のフィードバック、低い完了率は負のフィードバックです。
楽曲オンデマンドクエリ意図信号 (Intent Type)
Tmall Genie の楽曲の多くはユーザーのクエリリクエストにより再生されます。各楽曲の背後にはユーザーのリクエスト意図があります。Tmall Genie のバックエンドには専用の楽曲クエリ意図分析システムがあり、正確なオンデマンド (曲名オンデマンド:「七里香を再生」、歌手オンデマンド:「Andy Lau の曲を聴きたい」)、推薦 (スタイル・ジャンル推薦:「ロックをかけよう」、カジュアルリスニング推薦:「何か歌って」) などがあります。ユーザー行動の分析によると、異なる意図タイプ下での楽曲は推薦モデルへの貢献重みが異なります。楽曲に対応する意図アテンションをモデルに統合することで、ユーザーの興味をより正確に把握できます。そこで本論文では、マルチタスク学習と負のフィードバックに基づくディープなリコールモデルを提案します。
Two:手法
一般に、近似最近傍検索アルゴリズムの制約により、リコールモデルはユーザーの履歴行動シーケンスを独立にエンコードしてユーザーの各ステップのベクトル表現を生成し、その後 Target Item ベクトルとの内積演算を行ってスコアを算出する必要があります。モデルは Self-Attention アーキテクチャに基づいて実装されており、全体の構造は以下の通りです。
1 Input Representations
前述の通り、負のフィードバック信号とユーザー意図タイプ信号をモデル化するため、本モデルでは Play Rate と Intent Type の表現を導入します。ただし、初期データセットにはこれら 2 つの信号が含まれていないため、Train Set 1 を初期データセット、Train Set 2 を負のフィードバック信号とユーザー意図タイプ信号を含むデータセットとして表し、両者の統一表現を行いました。一般に、ユーザー履歴行動シーケンスにおける各 Item の表現は以下の 4 つの部分で構成されます。
1) Item Embedding
まず各 Item を固定サイズの低次元ベクトルに埋め込みます。Train Set 1 と Train Set 2 は同じ Item Vocabulary を共有するため、区別する必要はありません。
ここで image.png は Item の One-Hot 表現、image.png は Item Embedding 行列です。また、出力層と入力層が同じ Item Embedding を共有している点に注意が必要です。これは GPU メモリの使用量を節約するためです。推薦シーンのアイテム数は膨大であるためですが、多くの研究によりこのアプローチがモデルのパフォーマンスに大きな影響を与えないことが証明されています [2]。
2) Position Embedding
行動シーケンスタスクでは、行動シーケンス内の順序情報を捉えるために位置埋め込みを使用する必要があります。元の Transformer 論文 [8] の sin と cos を用いる手法とは異なり、最大シーケンス長に基づく埋め込みで異なる位置を表現する方法を採用します。
3) Play Rate Embedding
再生完了率は、ユーザーがアイテムを受け入れたかどうかの重要なフィードバックです。Tmall Genie では、ユーザーは好まない楽曲を「次の曲」コマンドでスキップすることが多く、これらの楽曲の再生完了率は比較的低くなります。再生完了率は [0, 1] の範囲の連続値です。連続値特徴と後述する離散値特徴との相互作用を実現するため、[9] の手法を参考に Play Rate を Item Embedding と同じ低次元ベクトル空間に写像します。具体的には、Play Rate Embedding を以下のように表現します。
ここで image.png は Play Rate、image.png はランダムに初期化された Embedding、image.png は最終的な Play Rate Embedding です。Train Set 1 のデータには再生時間の長い楽曲のみが含まれており、再生完了率に関する情報がないため、Train Set 1 ではすべての Play Rate を 0.99 に固定します。
4) Intent Type Embedding
ユーザー意図タイプは、ユーザーがアイテムに入力した方法を示します。たとえば Tmall Genie では、オンデマンド (ユーザーが明示的にリクエストした楽曲) と推薦 (Tmall Genie がユーザーに推薦した楽曲) は異なる Intent Type です(実際の Tmall Genie シーンではより多くのタイプが存在します)。Item 自体の表現と同様に、Intent Type も固定の低次元ベクトル空間に写像します。
Train Set 1 のデータでは Intent Type が不明なため、ここでは Train Set 1 のすべての Intent Type をオンデマンドと仮定します。
2 Factorized Embedding Parameterization
推薦タスクでは通常、Vocabulary Size が非常に大きく、大きな Embedding Size を使用して Item を表現するとメモリに収まりません。しかし、Transformer を使用する多くの研究により、Hidden Size を増やすとモデルの効果を効果的に改善できることが証明されています [10]。ALBERT [11] のモデル圧縮手法を参考に、まず Item の One-Hot ベクトルを低次元空間に写像し、その後高次元空間に戻して Transformer に入力することで、パラメータ数を大幅に削減できます。
3 Feedback-Aware Multi-Head Self-Attention
ユーザーの行動シーケンスの特徴表現を得た後、アテンションメカニズムを使って行動シーケンスをエンコードし、ユーザーベクトルを構築します。Transformer [8] で説明されているように、アテンションメカニズムは Query と一連の Key-Value ペアを Output に写像する関数として記述できます。ここで Query、Key、Value、Output はいずれもベクトルであり、Output は Value の加重和として計算されます。各 Value に割り当てられる重みは、Query と対応する Key のスコアリング関数により算出されます。リコールモデルの制約上、Target Item を使用してユーザー行動シーケンス内の Item と事前に演算を行うことができないため、Self-Attention を使用し、ユーザー行動シーケンスを直接 Query、Key、Value として計算します。具体的には、Multi-Head Self-Attention アプローチを使用してモデルの複雑なインタラクションをモデル化する能力を高めます。
ここで image.png は線形射影行列、image.png はヘッド数です。古典的な Transformer 構造では、image.png は Item Embedding と Position Embedding で構成されます。本モデルでは、外部情報 (再生完了率とユーザー意図タイプ) を Attention に導入し、Feedback-Aware Attention と呼びます。この情報の導入により、モデルはユーザーのフィードバック情報に基づいてユーザーの各楽曲に対する異なる嗜好を認識する能力を持ちます。
さらに、ALBERT [11] を参考に Cross-layer Parameter Sharing 方式も試しました。この方式では、各 Transformer Layer が 1 セットのパラメータを共有します。同じ規模 (同じレイヤー数) の Transformer では、この方式を採用すると実際の効果は若干低下しますが、パラメータ数は大幅に削減され、トレーニング速度も大幅に向上します。データ規模が大きいシーンでは、この戦略によりトレーニング時間をできる限り節約しつつ、モデル性能を維持できます。
4 Sampled Softmax Loss For Positive Feedback and Sigmoid CE Loss For Negative Feedback
ユーザーのベクトル表現を得た後、マルチタスク学習の目標を定義できます。Train Set 1 と Train Set 2 のデータ表現を事前に統一したため、これら 2 つのタスクを一緒にして共同マルチタスクトレーニングを行えます。具体的には、タスクは言語モデルに似ています。すなわち、以前に聴いた音楽を条件として、次のステップでユーザーが聴きたい音楽を予測します。再生完了率に基づいて信号を 2 つのタイプに分割します。1 つは Positive Feedback で、スコアのランキングをできるだけ高くすることが最適化目標です。もう 1 つは Negative Feedback で、スコアのランキングをできるだけ低くすることが最適化目標です。
下図左に示すように、従来の Positive Feedback Loss のみを行う場合、モデルはユーザーベクトルと好みの Item (正例) との距離を縮め、未観測の Item との距離を広げることができますが、好ましくない Item (負例) との距離は広がらない可能性があります。右図に示すように、モデルが上記の特性を実現しつつ、ユーザーベクトルと好ましくないアイテムとの距離も広げられるようにしたいと考えます。
そこで、Positive Feedback と Negative Feedback を組み合わせた最適化目標を使用します。
Positive Feedback には Sampled Softmax Loss を使用して最適化します。多くの先行研究 [12-13] において、Sampled Softmax Loss は大規模な推薦リコールモデルに非常に適していることが証明されており、以下のように定義されます。
TensorFlow で実装する場合、sampled_softmax がデフォルトで使用するサンプラーは log_uniform_candidate_sampler です(Word2Vec の TF 版はこの実装に基づいています)。これは Zipf 分布に基づいてサンプリングを行い、各アイテムのサンプリング確率は語頻のランキングのみに依存します。ただし、推薦におけるアイテムと NLP における単語は異なる可能性があるため、他の 2 つのサンプラーを試しました。
uniform_candidate_sampler:一様分布を使用してサンプリングする
learned_unigram_candidate_sampler:トレーニングプロセス中に語彙の頻度を動的に集計し、確率を計算してサンプリングする
実験の結果、learned_unigram_candidate_sampler が最良の結果を達成しました。また、[2] と同様の結論として、負例の数は比較的重要なパラメータであり、GPU メモリが許す限り負例の数を適切に増やすことで、モデルの収束効果を効果的に改善できることがわかりました。
Negative Feedback には、Sigmoid 交差エントロピー損失を直接使用して最適化し、再生完了率の低いすべてのアイテムを負例とみなして、スコアをできるだけ低くします。
最終的な合計 Loss は両者の合計です。
Three:実験
1 分散トレーニング
推薦シーンの語彙サイズとデータ量は通常膨大であるため、TensorFlow の ParameterServer 戦略を採用して分散トレーニングコードを実装しました。チューニング過程でいくつかの経験知も蓄積されました。
1) Embedding の断片化問題に注意が必要です。1 つは tf.fixed_size_partitioner のサイズ設定、もう 1 つは embedding_lookup の partition_strategy で、トレーニング時と推論時の設定を一致させる必要があります。
2) sampled_softmax のコードは自身のシーンに応じて最適化する必要があります。たとえば、本シーンでは同じバッチ内のサンプルの重複割合が比較的高いため、embedding_lookup 内で unique を追加することでトレーニング速度を大幅に向上できます。
3) マスク機構を柔軟に活用することで、さまざまな Attention 戦略を効果的に実装できます。
2 実験結果
オフライン実験の指標は R@N を採用します。これはスコアリングランキングのトップ N 結果に Target Item が含まれる割合です。正例の場合、この指標は POS@N と呼ばれ、高いほど良い値です。負例の場合、指標は NEG@N と呼ばれ、低いほど良い値です。スペースの制約上、主な実験結果の 1 セットのみを示します。本セットの実験では Multitask Learning と Negative Feedback の効果を検証します。他の戦略が最適な条件 (オプティマイザ、サンプリング方法など) を採用している場合において、a. 従来の DM 手法でトレーニングし、完了率の高い正のフィードバックアイテムのみを保持して行動シーケンスを構築する。b. a の基礎上に Play Rate と Play Type の特徴を追加する。c. b の基礎上に Negative Feedback 信号を追加し、マルチタスクトレーニングを行う。
フィードバック信号 (Play Rate) と楽曲オンデマンドクエリ意図信号 (Intent Type) を追加した後、b の効果が a よりも優れていることがわかります。さらに Multitask Learning の Negative Feedback 目標を追加した後、c は POS@N の小さな変化を保ちながら NEG@N を大幅に削減できています。
また、オンラインの「あなたのお気に入り推測」シーンにおいても新手法の有効性を証明しました。元の DM 方式に基づくバケット化と比較して、新モデル (DM with Play Rate/Intent Type and NEG MTL) のバケット化による一人あたり再生時間が +9.2% 増加しました。同時に、本手法は Tmall Genie のより多くの推薦シーンに適用され、良好な成果を上げています。
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
