ML 用語集: レコメンデーション システム

このページでは、レコメンデーション システムの用語集について説明します。用語集のすべての用語については、こちらをクリックしてください。

C

候補の生成

#recsystems

レコメンデーション システムによって選択された推奨事項の初期セット。たとえば、10 万冊の書籍を提供する書店を考えてみましょう。候補生成フェーズでは、特定のユーザー(たとえば 500 冊)に適した小さな書籍リストを作成します。しかし、500 冊であってもユーザーにおすすめするには多すぎます。その後、より費用がかかるレコメンデーション システムのフェーズ(スコアランキングの見直しなど)では、この 500 個がはるかに小さく、より有用なレコメンデーション セットに減ります。

コラボレーション フィルタリング

#recsystems

他の多くのユーザーの関心に基づいて、あるユーザーの興味 / 関心について予測を行う。コラボレーション フィルタリングは、レコメンデーション システムでよく使用されます。

I

アイテム マトリックス

#recsystems

レコメンデーション システムでは、各アイテムに関する潜在シグナルを保持する行列分解によって生成されたエンベディング ベクトルの行列。アイテム マトリックスの各行は、すべてのアイテムについて 1 つの潜在的な特徴の値を保持します。たとえば、映画のおすすめシステムについて考えてみましょう。アイテム マトリックスの各列は 1 つの映画を表します。潜在的シグナルはジャンルを表す場合もあれば、ジャンル、スター、映画の年齢などの要因間の複雑な相互作用を伴う解釈が困難なシグナルである場合もあります。

アイテム マトリックスの列数が、因数分解されるターゲット マトリックスと同じ数である。たとえば、10,000 件の映画のタイトルを評価する映画レコメンデーション システムの場合、アイテム マトリックスは 10,000 列になります。

items

#recsystems

レコメンデーション システムでシステムが推奨するエンティティ。たとえば、動画はビデオショップがおすすめするアイテムであり、書籍は書店がおすすめするアイテムです。

M

行列分解

#recsystems

数学において、ドット積がターゲット マトリックスに近似する行列を見つけるメカニズム。

レコメンデーション システムでは、多くの場合、ターゲット マトリックスにアイテムに対するユーザーの評価が保持されます。たとえば、映画のおすすめシステムのターゲット マトリックスは次のようになります。ここで、正の整数はユーザーの評価で、0 はユーザーが映画を評価しなかったことを意味します。

  カサブランカ フィラデルフィアのストーリー Black Panther(「ブラック パンサー」) ワンダーウーマン パルプ フィクション
ユーザー 1 5.0 3.0 0.0 2.0 0.0
ユーザー 2 4.0 0.0 0.0 1.0 5.0
ユーザー 3 3.0 1.0 4.0 5.0 0.0

映画のおすすめシステムは、評価のない映画のユーザー評価を予測することを目的としています。たとえば、ユーザー 1 は「Black Panther」を好むか?

レコメンデーション システムの一つのアプローチは、行列分解を使用して次の 2 つの行列を生成することです。

たとえば、3 人のユーザーと 5 つのアイテムに対して行列分解を使用すると、次のユーザー マトリックスとアイテム マトリックスを生成できます。

User Matrix                 Item Matrix

1.1   2.3           0.9   0.2   1.4    2.0   1.2
0.6   2.0           1.7   1.2   1.2   -0.1   2.1
2.5   0.5

ユーザー マトリックスとアイテム マトリックスのドット積により、元のユーザー評価だけでなく、各ユーザーがまだ視聴していない映画の予測も含むレコメンデーション マトリックスが生成されます。たとえば、ユーザー 1 の「カサブランカ」の評価は 5.0 でした。レコメンデーション マトリックス内のそのセルに対応するドット積は 5.0 程度であるはずです。また、次のようになります。

(1.1 * 0.9) + (2.3 * 1.7) = 4.9

さらに重要なこととして、ユーザー 1 は Black Panther を気に入るか?1 行目と 3 列目のドット積を取得すると、予測評価は 4.3 になります。

(1.1 * 1.4) + (2.3 * 1.2) = 4.3

行列分解では通常、ユーザー マトリックスとアイテム マトリックスが生成されますが、これらは合わせてターゲット マトリックスよりもはるかにコンパクトです。

R

レコメンデーション システム

#recsystems

各ユーザーに対し、大規模なコーパスから比較的少数の望ましいアイテムを選択するシステム。たとえば、動画レコメンデーション システムでは、100,000 本の動画のコーパスから 2 本の動画をおすすめする場合があります。1 人のユーザーには「Casablanca」と「The Philadelphia Story」、もう 1 人のユーザーには「Wonder Woman」と「Black Panther」を選択します。動画レコメンデーション システムは、次のような要素に基づいておすすめ動画を提示します。

  • 類似のユーザーが評価または視聴した映画。
  • ジャンル、監督、俳優、ターゲット層...

ランキングの見直し

#recsystems

レコメンデーション システムの最終ステージ。スコア付けされた項目は、他の(通常は ML 以外の)アルゴリズムに従って再採点されます。再ランキングでは、スコアリング フェーズで生成されたアイテムのリストが評価され、次のようなアクションが行われます。

  • ユーザーが購入済みのアイテムを除外する。
  • 新鮮なアイテムのスコアを上昇させる。

S

スコアリング

#recsystems

レコメンデーション システムの一部。候補生成フェーズで生成された各アイテムの値またはランキングを提供します。

U

ユーザー マトリックス

#recsystems

レコメンデーション システムでは、行列分解によって生成されるエンベディング ベクトル。ユーザーの好みに関する潜在的シグナルを保持します。ユーザー マトリックスの各行には、1 人のユーザーのさまざまな潜在的シグナルの相対的な強度に関する情報が保持されます。たとえば、映画のおすすめシステムについて考えてみましょう。このシステムでは、ユーザー マトリックス内の潜在的なシグナルは、各ユーザーの特定のジャンルへの関心を表す場合もあれば、複数の要素にわたる複雑なインタラクションを伴う解釈が難しいシグナルである場合もあります。

ユーザー マトリックスには、潜在的な特徴ごとの列とユーザーごとの行があります。つまり、ユーザー マトリックスの行数は、因数分解されるターゲット マトリックスと同じです。たとえば、100 万人のユーザーによる映画のおすすめシステムの場合、ユーザー マトリックスは 100 万行になります。

W

加重交互最小二乗(WALS)

#recsystems

レコメンデーション システム行列分解の際に目的関数を最小化するアルゴリズム。これにより、欠落しているサンプルのダウンウェイトが可能になります。WALS は、行分解と列分解を交互に行うことで、元の行列と再構成の間の加重二乗誤差を最小限に抑えます。これらの各最適化は、最小二乗凸最適化によって解決できます。詳細については、レコメンデーション システム コースをご覧ください。