候補の生成の概要

候補の生成は、最初の推奨事項のステージです。クエリを指定すると、関連する候補セットが生成されます。次の表に、2 つの一般的な候補生成方法を示します。

タイプ定義
コンテンツ ベースのフィルタリング アイテム間の類似性を利用して、ユーザーの好みに類似するアイテムをおすすめする。 ユーザー A がかわいい猫の動画を 2 本視聴すると、かわいい動物の動画がおすすめとして表示されます。
コラボレーション フィルタリング クエリとアイテム間の類似点を同時に使用して、レコメンデーションを提供する。 ユーザー A がユーザー B に類似し、ユーザー B が動画 1 を好む場合、ユーザー A は動画 1 に似た動画を見なくても、動画 A はユーザー A におすすめされます。

埋め込みスペース

コンテンツ ベースとコラボレーション フィルタリングでは、各項目と各クエリ(またはコンテキスト)が共通のエンベディング空間\(E = \mathbb R^d\)のエンベディング ベクトルにマッピングされます。通常、埋め込み空間は無次元(つまり、コーパスのサイズよりもはるかに小さい)で、アイテムまたはクエリセットの潜在構造をキャプチャします。 \(d\) 同じユーザーが通常視聴する YouTube 動画などの類似アイテムは、エンベディング空間内で近接して表示されます。「類似性」の概念は、類似性の測定によって定義されます。

類似性メジャー

類似度の測定は、エンベディングのペアを取り、その類似性を測定するスカラーを返す関数です。 \(s : E \times E \to \mathbb R\) エンベディングは、次のように候補を生成するために使用できます。クエリ エンベディング \(q \in E\)が与えられると、システムは\(x \in E\) に近いアイテム エンベディング、つまり \(q\)の類似度の高いエンベディングを探します。 \(s(q, x)\)

類似度を判断するため、ほとんどのレコメンデーション システムは次の 1 つ以上に依存しています。

  • コサイン
  • ドット積
  • ユークリッド距離

コサイン

これは単に 2 つのベクトル間の角度のコサインです。 \(s(q, x) = \cos(q, x)\)

ドット商品

2 つのベクトルのドット積は\(s(q, x) = \langle q, x \rangle = \sum_{i = 1}^d q_i x_i\)です。また、 \(s(q, x) = \|x\| \|q\| \cos(q, x)\) (角度の正サインに基準値の積を掛けた値)で求められます。したがって、エンベディングが正規化されている場合、ドット積とコサインは一致します。

ユークリッド距離

これはユークリッド空間での通常の距離です。 \(s(q, x) = \|q - x\| = \left[ \sum_{i = 1}^d (q_i - x_i)^2\right]^{\frac{1}{2}}\).距離が小さいほど類似性は高くなります。エンベディングが正規化されている場合、二乗ユークリッド距離は、積(およびコサイン)と一致します。この場合は、 \(\frac{1}{2}\|q - x\|^2 = 1 - \langle q, x \rangle\)の定数になります。

クエリ エンベディングと 3 つの候補アイテムを含む 2 次元のエンベディング空間を示す画像。

類似性メジャーを比較する

右側の図の例で考えてみましょう。黒色のベクトルは、クエリ エンベディングを示しています。他の 3 つのエンベディング ベクトル(アイテム A、アイテム B、アイテム C)は候補アイテムを表します。使用する類似性の測定方法によっては、アイテムのランキングが異なる場合があります。

画像を使用して、コサイン、ドット積、ユークリッド距離の 3 つの類似性メジャーすべてを使用して、アイテムのランキングを決定します。

類似度の選択方法

コサインと比較すると、ドット積の類似性はエンベディングの標準感度の影響を受けます。つまり、エンベディングの規範が大きいほど、類似性が高く(鋭角のアイテム)、おすすめされる可能性が高くなります。これは、次のように推奨事項に影響を与える可能性があります。

  • トレーニング セットに頻繁に出現するアイテム(人気の YouTube 動画など)には、大きな規範を持つエンベディングを持つ傾向があります。人気度情報の取得が望ましい場合は、ドット商品を優先します。ただし、注意を払わないと、人気のアイテムがおすすめを占めてしまう可能性があります。実際には、アイテムの標準にあまり重点を置かない類似度対策の別のバリアントを使用できます。たとえば、\(s(q, x) = \|q\|^\alpha \|x\|^\alpha \cos(q, x)\) に対して \(\alpha \in (0, 1)\)を定義します。

  • 非常にまれにしか見られない項目は、トレーニング中に頻繁に更新されないことがあります。そのため、大きな規範で初期化されている場合、システムは、関連するアイテムよりもまれなアイテムを推奨することがあります。この問題を回避するには、埋め込みの初期化に注意し、適切な正則化を使用します。この問題については、最初の演習で詳しく説明します。