About

行列分解とは?評価行列を分けて未視聴の評価を予測する

Netflix Prizeを制した潜在因子モデル

2006-2009年のNetflix Prizeで最も強力だったアプローチだ。SVD、ALS、BPRなどの変種があるが核心アイデアは同じ。

ユーザー-アイテムマトリクスR(m×n)をユーザー行列P(m×k)とアイテム行列Q(n×k)に分解する。kは潜在因子(latent factor)の数。k=50なら各ユーザーとアイテムが50次元ベクトルで表現される。

なぜ機能するのか

「アクション好き度」「ロマンス好き度」のような隠れた要因を自動的に発見する。明示的にジャンルを教えなくても、データからパターンを見つけ出す。

これは事実上の埋め込み学習だ。Word2Vecより先に登場した埋め込みと言える。

動作原理

1

ユーザー-アイテムマトリクスRを構築(スパース)

2

P(ユーザー)とQ(アイテム)行列をランダム初期化

3

SGDまたはALSでR ≈ P × Qᵀとなるよう最適化

4

空セルをP_u · Q_iの内積で予測

メリット

  • ✓ スパースデータでも潜在因子をよく学習
  • ✓ 結果の解釈が比較的容易

デメリット

  • ✗ ユーザー/アイテムのサイド情報を活用しにくい
  • ✗ 新データごとに全体再学習が必要になる場合がある

ユースケース

Netflix Prize優勝ソリューションの核心 Spotify音楽推薦の初期バージョン
← 協調フィルタリングとは?ユーザーやアイテムの類似度で推薦する GRU4Recとは?RNNで次のクリックを当てる推薦モデル →