「リコメンデーションシステムにおける2つのタワーネットワークとネガティブサンプリング」
「美容とファッションの世界を彩るおすすめの2つのトレンドネットワークとネガティブサンプリング」
高度な推奨エンジンの鍵となる要素を理解する
現在の推奨システムにおける最も重要なモデルの1つは、ツーワートニューラルネットワークです。これらは次のように構造化されています:ニューラルネットワークの一部(タワー)は、クエリ(ユーザー、コンテキスト)に関するすべての情報を処理し、他のタワーはオブジェクトに関する情報を処理します。これらのタワーの出力は埋め込みであり、それらは乗算されます(すでにここで議論したようにドット積またはコサイン)。このようなネットワークの応用に関する最初の言及の1つは、YouTubeに関する非常に優れた論文に見つけることができます。ところで、私は今この記事を古典的で最適な推奨分野に入るためのものと呼びます。
![From the paper Deep Neural Networks for YouTube Recommendations](https://ai.miximages.com/miro.medium.com/v2/resize:fit:640/format:webp/1*rR1JGJBVzkIpC4AotBZ_Hg.png)
このようなネットワークの特徴は何ですか?実際、ユーザーIDとアイテムIDのみを入力とする特別な場合である行列因子化と非常に似ています。ただし、任意のネットワークと比較すると、後期クロッシングの制約(異なるタワーからの入力を最後まで合体させない)により、ツーワートネットワークはアプリケーションで非常に効率的です。単一のユーザーに対する推奨を構築するためには、クエリタワーを1回計算し、通常は事前に計算されるドキュメントの埋め込みとこの埋め込みを乗算する必要があります。このプロセスは非常に高速です。さらに、これらの事前計算されたドキュメントの埋め込みは、ANNインデックス(たとえば、HNSW)に組織化でき、データベース全体を通過する必要なく、素晴らしい候補を素早く見つけることができます。
類似性検索、パート4:階層型ナビゲーション可能な小世界(HNSW)
階層型ナビゲーション可能な小世界(HNSW)は、最近の最先端アルゴリズムであり、近似的な最…
towardsdatascience.com
- 探索的データ分析:YouTubeチャンネルについての知識は何か(パート2)
- グローバルなチョコレート貿易の概要
- コマンドラインインターフェイスのsysargv、argparse、docopts、およびTyper
さらに効率を上げるために、ユーザーパートをすべてのクエリでなく定期的に非同期に計算することができます。ただし、これによりリアルタイムの履歴やコンテキストの考慮が犠牲になります。
タワー自体は非常に洗練されることがあります。たとえば、ユーザーパートでは、自己注意メカニズムを使用して履歴を処理することができ、これによりパーソナライズのためのトランスフォーマーが得られます。ただし、後期クロッシングの制約の導入のコストは何ですか?自然に、品質に影響を与えます。同じ注意メカニズムでは、現在推奨したいアイテムは使用できません。理想的には、ユーザーの履歴に似たアイテムに焦点を当てたいと考えています。そのため、早期クロッシングのネットワークは、ランキングの後の段階で数十個または数百個の候補のみが残っているときに通常使用され、後期クロッシング(ツーワート)ネットワークは、逆に初期段階および候補生成に使用されます。
(ただし、あらゆるクエリに対するドキュメントの合理的なランキングは、十分な次元の埋め込みを介してエンコードできるという純粋に理論的な議論もあります。さらに、NLPのデコーダーは実際には同じ原則で動作し、各トークンに対してクエリタワーを再計算します。)
損失関数とネガティブサンプリング
特に興味深い点は、ツーワートネットワークのトレーニングに使用される損失関数です。原則として、異なるヘッド(各タワーの異なる埋め込みを持つ)のさまざまな結果をターゲットとし、異なる損失関数を持つこともできます。ただし、興味深いバリエーションは、データセット内の各クエリ-ドキュメントペアについて、同じクエリでソフトマックス損失によるバッチ内ネガティブとの組み合わせを使用してトレーニングすることです。この方法は、ハードネガティブマイニングの高度に効果的な形式です。
しかし、そのような損失関数の確率的解釈を考慮することは重要です。訓練されたネットワークでは、得点の指数はクエリに特有のPMI(共起相互情報量)に比例します。
より人気のあるドキュメントほど、モデルによってより頻繁に推薦されるわけではありません。なぜなら、訓練中には、ネガティブとしての出現回数が比例して増えるからです。スコアを特徴として使用することは有益ですが、最終的なランキングや候補生成には、非常に特定の、しかし品質の低いドキュメントが含まれる可能性があります。
Googleは、論文で、この問題に対して訓練中のlogQ修正で対処することを提案しました。一方、私たちは通常、アプリケーションの段階でこれに対処してきました。ただし、これらのアプローチを比較したことはありませんが、これは興味深い比較となるでしょう。
暗黙の正則化:ALSとモダンなニューラルネットワークの架け橋
Implicit ALS (IALS) として知られる協調フィルタリングアルゴリズムがあります。私はすでに以前に言及しました。ニューラルネットワーク以前の時代では、おそらく最も人気のあるアルゴリズムの一つと言えるでしょう。その特徴的な特徴は、ネガティブの効果的な「探鉱」です。相互作用の履歴がないすべてのユーザー-オブジェクトのペアは、実際の相互作用よりも少ない重みでネガティブとして扱われます(ただし、サンプリングではなく、各イテレーションでまるごと使用されます)。このアプローチは、暗黙の正則化として知られています。
これが可能なのはなぜでしょうか?適切なタスクサイズ(ユーザー数とオブジェクト数)があれば、ネガティブは非常に多く存在するため、それらをリストアップするだけでもトレーニングプロセス全体よりも時間がかかるはずです。このアルゴリズムの美しさは、MSE損失と最小二乗法を使用することで、各フルイテレーションの前に、すべてのユーザーおよびすべてのオブジェクトに対して特定の要素を別々に事前計算できるため、暗黙の正則化を実行するのに十分であるという点にあります。これにより、アルゴリズムは二次のサイズを回避します。(詳細については、その時代のお気に入りの論文のひとつを参照してください)。
数年前、私はこの素晴らしい暗黙の正則化のアイデアをより先進的な2タワーニューラルネットワークの技術と組み合わせることが可能かどうかを考えました。これは複雑な問題です。完全なバッチではなく、確率的最適化があり、MSE損失に戻ることに対する抵抗があります(少なくとも全体のタスクについては;特に正則化のためには問題ありません)。
私は長い間考え込み、ついに解決策を見つけました!数週間、私は興奮し、バッチ内のネガティブの代わりにこれを試す方法を熱望していました。
もちろん、このような場合にはよくあることですが、すでに3年前にすべてが考えつかれていたことが論文で読んだということです。再び、Googleでした。その後も、同じlogQ修正に関する論文で、バッチ内のネガティブを使用したsoftmax損失の方が暗黙の正則化よりも優れた結果が得られることを示しました。
これにより、私たちは時間を節約し、このアイデアをテストする必要がなくなりました 🙂
推薦モデルにおいて本当にネガティブサンプリングが必要なのか?
結局のところ、我々は推薦のインプレッションの実際のインスタンスを持っており、ユーザーがそれらと相互作用しなかった場合、これらは強力なネガティブとして使用できます(推薦サービス自体がまだ開始されておらず、インプレッションがない場合は除く)。
この質問の答えはそう簡単ではありません。その訓練済みモデルをどのように適用するかによります。最終ランキングのために、候補の生成のために、または別のモデルへの入力としての機能として使用するかによります。
実際のインプレッションのみでモデルをトレーニングするとどうなるでしょうか?かなり強い選択バイアスが発生し、モデルはその特定のコンテキストで表示されたドキュメントのみをうまく識別するように学習します。表示されなかったドキュメント(正確には、クエリ-ドキュメントのペア)では、モデルの性能はずっと悪くなります。一部のドキュメントに対して過予測し、他のドキュメントに対しては過少予測することもあります。ランキングでの探究を適用することで、この効果は和らげることができますが、ほとんどの場合、これは部分的な解決策に過ぎません。
このようにトレーニングされた候補生成器は、クエリに応じて多くのドキュメントを生成することがありますが、それらのドキュメントはそのようなコンテキストで見たことがなく、予測を過大評価しています。これらのドキュメントの中には、ゴミしか存在しないこともよくあります。最終ランキングモデルが十分に優れていれば、これらのドキュメントはフィルタリングされ、ユーザーに表示されません。しかし、それでも候補枠を無駄に使ってしまいます(適切なドキュメントがまったく残っていない場合もあります)。そのため、候補生成器は、ドキュメントのほとんどが品質の低いものであり、推奨されるべきではないことを理解するようにトレーニングする必要があります。ネガティブサンプリングはこのための良い方法です。
最終ランキングのためのモデルは、候補生成と非常に似ていますが、重要な違いがあります。モデルが特定のドキュメントの予測を過大評価する誤りを comUsersに表示すると、これらのドキュメントはユーザーに表示され、次のトレーニングデータセットに含まれる可能性があります。この新しいデータセットでモデルを再トレーニングし、再びユーザーに展開することができます。新しい誤検出が現れるでしょう。データセットの収集と再トレーニングの過程は繰り返すことができ、一種のアクティブラーニングのようなものになります。実際には、数回の再トレーニングイテレーションでプロセスが収束し、モデルが無意味な推奨を停止します。もちろん、ランダムな推奨による害は考慮する必要があり、時には追加の注意が必要です。しかし、全体的には、ここではネガティブサンプリングは必要ありません。それどころか、局所最適解に留まることを引き起こし、探求を阻害する可能性があります。
モデルが別のモデルへの入力として使用される場合、同じ論理が適用されますが、ランダムな候補ドキュメントの予測を過大評価しても、他の機能が最終的な予測を調整するので、害はさらに少なくなります。(候補リストにすら入らないドキュメントには機能を計算しません。)
ある時点で、私たちは直接テストし、機能としての標準ALSの方がIALSよりも優れていることを発見しましたが、候補生成には使用すべきではありません。
まとめると、私たちの調査では、ランキングにおける2タワーネットワークの効果、損失関数とネガティブサンプリングのモデルの正確性への影響、暗黙的な正則化を介した古典的な協調フィルタリングとのギャップ、および推奨システムにおけるネガティブサンプリングの重要な役割についての議論を重視しました。この議論は、推奨システム技術の進化する複雑さと洗練度を強調しています。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles