ソフトマックス トレーニング

前のページでは、ディープ レイヤにソフトマックス レイヤを組み込む方法を ニューラル ネットワークです。このページでは、Google Cloud の 使用します。

トレーニング データ

ソフトマックスのトレーニング データはクエリの特徴と \(x\) ユーザーが操作したアイテムのベクトル( (確率分布 \(p\))とします。それらは、 次の図をご覧ください。モデルの変数は、トレーニング プロセスで レイヤに分割されます。以降のスライドではオレンジ色で 図に示していますモデルは通常、トレーニング データに含まれる 確率的勾配降下法を使っています

ソフトマックス ディープ ニューラル ネットワークのトレーニングをハイライト表示した画像

ネガティブ サンプリング

損失関数は 2 つの確率ベクトルを比較するため、 \(p, \hat p(x) \in \mathbb R^n\) (グラウンド トゥルースと (それぞれモデルの出力)、 (単一のクエリに対する \(x\))損失の勾配は、 コーパスサイズが大きすぎると \(n\) 法外な費用が発生します。

正のアイテムに対してのみ勾配を計算するシステムをセットアップできます。 (グラウンド トゥルース ベクトルでアクティブなアイテム)。ただし、 陽性のペアでのみトレーニングする場合、モデルは 以下で説明します。

折り畳み式
質問を表す 3 つの異なる正方形のグループと、アイテムを表す円が表示されている、半分に折りたたまれた飛行機の画像。グループごとに異なる色があり、クエリは同じグループ内のアイテムにのみ影響します。 次の図では、各色がそれぞれ異なる色を表す場合、 クエリとアイテムのカテゴリです(正方形で表示)各クエリのみ ほとんどのインタラクションは、同じ色のアイテム(円で表される)とやり取りします。 たとえば、各カテゴリは YouTube ではそれぞれ別の言語であると考えてください。 一般的なユーザーは、主に 1 つの言語で動画を視聴します。

モデルは、特定のクエリやアイテムのエンベディングを (その中の類似性を正しく取り込み、 異なる色のエンベディングは最終的に同じ領域になる場合があります。 エンべディング空間の重みです。この現象は 折りたたみは、クエリ時に、 予測値から外れたアイテムのハイスコアをモデルが できます。

ネガティブ サンプルとは、「関連性が低い」とラベル付けされたアイテムです関連付けられます トレーニング中にモデルのネガティブ サンプルを示すことで、 異なるグループのエンベディングは互いに押し離される必要があります。

すべてのアイテムを使用して勾配を計算する代わりに 陽性(高価)だけを使用したモデルなど、 折りたたんでいる)では、ネガティブ サンプリングを使用できます。より正確には、 次の項目を使用して、近似勾配を計算します。

  • すべての正項目(ターゲット ラベルに表示される項目)
  • 除外アイテムのサンプル(\(j\) \({1, …, n}\))

陰性のサンプリングにはさまざまな方法があります。

  • 均一にサンプリングできます。
  • 確率が高いアイテム j は、確率が高い スコア \(\psi(x) . V_j\)。これは直感的に 勾配に大きく寄与する特徴があります)。これらの例は多くの場合 ハードネガティブといいます。
で確認できます。 <ph type="x-smartling-placeholder">

オン行列分解とソフトマックス

DNN モデルは行列分解の多くの制限を解決しますが、通常は トレーニングとクエリにかかる費用が 高くなります次の表は、 2 つのモデルの重要な違いについて 学びました

行列分解 ソフトマックス DNN
クエリの特徴 簡単に含められない。 含めることができる。
コールド スタート 語彙外の表現を簡単に処理できない 抽出されますいくつかのヒューリスティックを使用できます(たとえば、 (新しいクエリ、類似クエリの平均エンベディング) 新しいクエリを簡単に処理。
折り畳み式 折りたたみを簡単に軽減できる WALS で観測されていない重みを調整します。 折りたたまれます。使用が必要 ネガティブ サンプリングや重力などの手法を使用します。
トレーニングのスケーラビリティ 大規模なものまで容易に拡張可能 コーパス(場合によっては数億個以上のアイテム)を 入力行列がスパースです。 非常に大規模にスケーリングするのが難しい あります。ハッシュ化などのいくつかの手法を使用して、 ネガティブ サンプリングなどが含まれます。
サービングのスケーラビリティ エンベディング U、V は静的 一連の候補を事前に計算して保存できます アイテムのエンベディング V は静的 保存できます。

通常、クエリ埋め込みは クエリ時に計算する必要があり、モデルのコストが高くなります。 提供します。

概要は次のとおりです。

  • 大規模なコーパスには、通常、行列分解が適しています。 スケーリングが簡単で、クエリにかかる費用を抑え、折りたたまれにくくなります。
  • DNN モデルではパーソナライズされた好みをより適切にキャプチャできますが、 トレーニングが難しく クエリの費用も高くなりますDNN モデルが推奨される 行列分解にフィードするものです。DNN モデルでは、 関連性をさらに高めますまた、通常は DNN モデルの折りたたみが許容範囲内です。 関連性が高いとみなされた、事前にフィルタされた一連の候補をランク付けします。