機械学習用語集: レコメンデーション システム

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

C

候補者の発掘

#recsystems

レコメンデーション システムによって選択された最初の一連の推奨事項。たとえば、100,000 冊の書籍を販売する書店を考えてみます。候補生成フェーズでは、個々のユーザーに適した書籍リスト(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

映画レコメンデーション システムは、レーティングなしの映画に対するユーザーの評価を予測することを目的としています。たとえば、User 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

ユーザー マトリックスとアイテム マトリックスのドット積を使用すると、元のユーザー評価だけでなく、各ユーザーには見られていない映画の予測を含む推奨マトリックスが生成されます。たとえば、User 1 の Casablanca の評価が 5.0 の場合、レコメンデーション マトリックス内のそのセルに対応するドット積は、約 5.0 であるはずです。これは次の値であるはずです。

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

さらに重要なのは、ユーザー 1 が Black Panther のような存在になるのか、最初の行と 3 番目の列に対応するドット積を取ると、4.3 の予測評価が得られます。

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

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

R

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

#recsystems

大規模なコーパスから、比較的少数の望ましいアイテムをユーザーごとに選択するシステム。たとえば、動画レコメンデーション システムでは、100,000 本の動画のコーパスから 2 つの動画をおすすめし、1 人のユーザーに「カサブランカ」と「フィラデルフィア ストーリー」を選択し、もう 1 人のユーザーに「ワンダーウーマン」と「ブラックパンサー」を選択することがあります。動画レコメンデーション システムは、次のような要因に基づいておすすめを提示します。

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

再ランキング

#recsystems

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

  • ユーザーがすでに購入したアイテムを削除する。
  • 新鮮な商品のスコアを上げる。

S

スコアリング

#recsystems

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

U

ユーザー マトリックス

#recsystems

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

ユーザー マトリックスには、潜在特徴ごとに列とユーザーごとに行があります。つまり、ユーザー マトリックスの行数は、分解されるターゲット マトリックスと同じ数です。たとえば、1,000,000 人のユーザーに対して映画のレコメンデーション システムが与えられると、ユーザー マトリックスには 1,000,000 行が含まれます。

W

重み付き交互最小二乗(WALS)

#recsystems

レコメンデーション システム行列分解の際に、目的関数を最小化するアルゴリズム。このアルゴリズムを使用すると、欠けている例の重みを下げることができます。WALS は、行分解と列分解の修正を交互に行うことで、元の行列と再構成の間の加重二乗誤差を最小限に抑えます。それぞれの最適化は、凸最適化の最小二乗によって解くことができます。詳細については、レコメンデーション システム コースをご覧ください。