候補生成の概要

候補の生成は、レコメンデーションの第 1 段階です。あるクエリについて、 関連する候補のセットが生成されます次の表に 2 つの 方法を紹介します。

タイプ定義
コンテンツ ベースのフィルタリング アイテム間の類似度を使用して、ユーザーが好むものに似たアイテムを推奨します。 ユーザー A が可愛い猫の動画を 2 本見ると、システムはそのユーザーに可愛い動物の動画を推奨します。
コラボレーション フィルタリング クエリとアイテムの類似度を同時に使用して、レコメンデーションを提供します。 ユーザー A がユーザー B に類似しており、ユーザー B が動画 1 を高く評価している場合、 システムはユーザー A に動画 1 を推奨できる(ユーザー A が 動画 1 に類似した動画を見ている人)。

エンベディング スペース

コンテンツ ベース フィルタリングと協調フィルタリングはどちらも、各アイテムと各クエリをマッピングします。 (またはコンテキスト)を、共通のエンベディング空間のエンベディング ベクトルにマッピングします。 E=Rd。通常、エンベディング空間は低次元 (つまり、 d はコーパスのサイズよりもはるかに小さい)、 アイテムまたはクエリセットの潜在構造。類似の商品(YouTube など) 通常は同じユーザーによって視聴される動画が、 基づいています。「近さ」の概念類似性尺度によって定義されます。

類似性の測定

類似度測定値は、 s:E×ER はエンベディングのペアを受け取り、その類似度を測定するスカラーを返します。 エンベディングは、次のように候補の生成に使用できます。 クエリ エンベディング qEの場合、システムはアイテムのエンベディングを探します。 xE 、すなわち、 q 類似性 s(q,x)

ほとんどのレコメンデーション システムでは、 次のいずれか 1 つ以上を行います。

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

コサイン

これは 2 つの角をなす角の余弦です ベクトル、 s(q,x)=cos(q,x)

内積

2 つのベクトルのドット積は、 s(q,x)=q,x=i=1dqixi。 また、 s(q,x)=xqcos(q,x) ( 法則の積で乗算されます)。したがって、エンべディングが ドット積とコサインが一致します

ユークリッド距離

これはユークリッドの通常の距離です スペース、 s(q,x)=qx=[i=1d(qixi)2]12。 距離が短いほど類似性が高くなります。エンべディングが 正規化されている場合、ユークリッド距離の 2 乗は (およびコサイン)を定数まで ケース 12qx2=1q,x

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

類似性尺度の比較

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

この画像を使用して、3 つの画像すべてを使用してアイテムのランキングを決定してみましょう。 コサイン、ドット積、ユークリッド距離です

いかがでしたか?

アイテム A のノルムが最も高く、 作成します。アイテム C はクエリとの角度が最も小さいため、 コサイン類似度に従って 1 位になります。商品 B は クエリに最も近いので、ユークリッド距離が優先されます。

各類似度指標によるランキングの違いを示す画像。

類似性の基準はどれですか。

コサインと比較すると、ドット積類似度は 表現します。すなわち、予測データのノルムが 類似度が高い(鋭角のアイテムの場合) おすすめされる可能性も高くなりますこれは次の問題に 次の推奨事項があります。

  • トレーニング セットに非常に頻繁に出現するアイテム(例: 人気の YouTube 動画など)は、大規模な規範を持つエンベディングを持つ傾向があります。 人気度情報を取得したい場合は、 ドット積を使う方がよいでしょうただし、よく使われる おすすめアイテムを優先してしまう可能性があります。実際には、 強調度の低い類似度指標のバリアントを使用できる 基準となりますたとえば、 s(q,x)=qαxαcos(q,x) : いくつかあります。 α(0,1)

  • めったに表示されていないアイテムは、更新中に頻繁に更新されない可能性があります。 説明します。そのため、大きなノルムで初期化された場合、 関連性の高いアイテムよりも希少なアイテムがおすすめされることがあります。これを回避するには エンべディングの初期化に注意を払い、適切なオプションを使用 行います。この問題については、最初の演習で詳しく説明します。