ディープ ニューラル ネットワーク モデル

前のセクションでは、行列分解を使用して、 学習します。行列分解には次のような制限があります。

  • 付随する機能(つまり、 クエリ ID やアイテム ID など)が含まれます。そのため モデルにクエリを発行できるのは トレーニング セットに存在するユーザーまたはアイテムです。
  • 推奨事項の関連性。最初のモジュールで説明したように Colab 人気のアイテムは誰にでもおすすめされる傾向があり、特に 類似性の尺度として ドット積を使用します特定のユースケースに 向上します

ディープ ニューラル ネットワーク(DNN)モデルは、行列に関するこれらの制限に対処できます。 できます。DNN はクエリの特徴とアイテムの特徴を簡単に組み込める (ネットワークの入力レイヤの柔軟性により)、 ユーザーの特定の興味や関心を捕捉して おすすめします。

レコメンデーション用のソフトマックス DNN

考えられる DNN モデルの一つに、softmax があります。 このモデルでは、この問題を次のマルチクラス予測問題として扱います。

  • 入力はユーザークエリです。
  • 出力は、確率ベクトルまたは確率ベクトルに等しい データとやり取りする確率を表す 各項目たとえば特定の映画や番組をクリックしたり YouTube 動画。

入力

DNN への入力には以下が含まれます。

  • 情報密度の高い機能(総再生時間、最後に再生してからの経過時間など)
  • スパースな機能(再生履歴、国など)

行列分解のアプローチとは異なり、 年齢または国。入力ベクトルを x とします。

ソフトマックス ディープ ニューラル ネットワークの入力レイヤをハイライト表示した画像
図 1. 入力レイヤ x。

モデル アーキテクチャ

モデル アーキテクチャによって、モデルの複雑さと表現性が決まります。 隠れ層と非線形活性化関数(ReLU など)を追加することで、 モデルはデータ内のより複雑な関係を捉えることができます。ただし、 パラメータの数を増やすと通常、モデルの予測が困難になります。 費用も高くなります最後の隠れ状態の出力は ψ(x)Rdでレイヤ。

ソフトマックス ディープ ニューラル ネットワークの隠れ層をハイライト表示した画像
図 2. 隠れ層の出力( ψ(x))。

ソフトマックス出力: 予測確率分布

このモデルは、ソフトマックス レイヤを使用して最後のレイヤ ψ(x)の出力をマッピングします。 結合されます p^=h(ψ(x)VT)。ここで:

  • h:RnRn はソフトマックス関数です。 提供元: h(y)i=eyijeyj
  • VRn×d は重みの行列です。 作成します。

ソフトマックス レイヤはスコアのベクトルをマッピングします。 yRnロジット) 確率分布に変換します

ソフトマックス ディープ ニューラル ネットワークでの予測確率分布を示す画像
図 3. 予測された確率分布 p^=h(ψ(x)VT)
で確認できます。

損失関数

最後に、以下を比較する損失関数を定義します。

  • p^: ソフトマックス レイヤの出力(確率分布)
  • p: ユーザーが持っているアイテムを表すグラウンド トゥルース 操作した YouTube 動画(ユーザーがクリックまたは視聴した YouTube 動画など)。 これは、正規化されたマルチホット分布( です。

たとえば、2 つのモデルを比較して、 2 つの確率分布です

ソフトマックス ディープ ニューラル ネットワークの損失関数を示す画像
図 4. 損失関数。

ソフトマックス エンベディング

アイテムになる確率は j p^j=exp(ψ(x),Vj)Z, ここで、 Zjに依存しない正規化定数です。

つまり、 log(p^j)=ψ(x),Vjlog(Z)、 つまり、項目の対数確率は j (加法定数まで) 2 つの d次元ベクトルのドット積。これは解釈可能な 特徴は次のとおりです。

  • ψ(x)Rd は、最後の隠れ層の出力です。これをクエリ xのエンベディングと呼びます。
  • VjRd は、最後の隠れ層を出力 j に接続する重みのベクトルです。これをアイテム jのエンベディングと呼びます。
で確認できます。
ソフトマックス ディープ ニューラル ネットワークのエンベディングを示す画像
図 5.アイテム jVjRd の埋め込み

DNN と行列分解

ソフトマックス モデルと行列分解モデルの両方で、 システムは 1 つのエンベディング ベクトルを Vj 1 アイテムあたり j。これが 行列内のアイテム エンベディング マトリックス VRn×d 因数分解がソフトマックス レイヤの重みの行列になりました。

ただし、クエリのエンベディングは異なります。むしろ、 Ui クエリごとに i1 つのエンベディングを クエリ特徴から x エンベディング ψ(x)Rdに変更できます。 したがって、この DNN モデルは行列を一般化したものと クエリ側を非線形関数で置き換えるという 関数 ψ()

アイテムの機能を使用できますか?

アイテム側にも、同じ考え方を適用できますか?つまり 1 アイテムにつき 1 つのエンべディングだけを エンベディングにアイテム特徴を渡せばよいでしょうか。はい。これを行うには、Two-Tower これは、次の 2 つのニューラル ネットワークで構成されています。

  • 1 つのニューラルネットワークは xquery - クエリ エンベディング ψ(xquery)Rd
  • 1 つのニューラル ネットワーク マップアイテムの特徴 xitem からアイテムのエンベディング ϕ(xitem)Rd

モデルの出力は、モデルのドット積として ψ(xquery),ϕ(xitem)。 これはもはやソフトマックス モデルではなく、新しいモデルは、 ペアごとに 1 つの値 (xquery,xitem) (確率ベクトルの代わりに)を使用します xquery