[2307.01212] Of Spiky SVDs and Music Recommendation

推薦システム 埋め込み表現

概要

Intro: SVD とそのスパイク

SVD は推薦システムのための埋込表現を得る手段として便利に使われている. でもよく分かってないことが多い.

実用上は実験してみて最も良いものを使うわけだが, そこに理論的な裏付けは見つかってない.

SVD によるベクトルはスパイクと呼ばれる幾何学的構造が観測されやすい (Fig 1). これは原点を通る直線上の周りにベクトルが集まって self-organize する傾向があることを示している.

Truncated SVD の詳細

データセットを表現する行列 \(M\) を \(\hat{M} = U \Sigma V^\ast\) で近似することを考える ( \(\cdot ^\ast\) は随伴行列).

この下で \(\| M - \hat{M} \|\) を最小化する. SVD 分解した結果, 普通使うのは \(U\) または \(U \Sigma\) だけで, \(V\) は気にしない.

インタラクション行列についてのグラム行列を考えてる. 下の \(M\) が item x user 行列のときグラム行列 \(M M^\ast\) は item x item 行列になってて, これの SVD 分解をすることでアイテムの特徴量を得る. 得られる \(\Sigma\) は変わるはずだけど, そんなに本質的に変わらないから気にしない... ということかな.

Spikeness

SVD 分解によってベクトルの集合 \(E\) が得られたとき, これについてのスパイクの度合いを表す指標 Spk を定義する.

ざっくりいうと,

詳細

アルゴリズムを詳細に書くと次の通り

この値が小さいほどスパイク状に分布してると言える. [Fig 1] でいうと Deezer と Spotify がこれ.

グラフモデル

今見てきたスパイク構造に対応するようなグラフモデルを考える.

Stochastic Block Model (SBM)

「コミュニティ」のグラフ表現

Degree-Corrected SBM (DCBM)

SBM に更にパラメータを追加する

Spike と DCBM の対応

Spike DCMB
点 (ベクトル) 頂点
スパイク コミュニティ

SVD の Spike から DCBM の構築

グラフを構築する

以下を得る

知見

コサイン類似度を使うか内積を使うか

コサイン類似度を使うことはパラメータ \(\alpha\) を無視することに等しい. 発見性 (serendipity) を重視したい場合にはそちらのほうが良い.

コミュニティ間の距離を正しく測りたい場合は内積を使わないといけない.

\(f\) のチューニング

Spk を指標にして \(f\) のチューニングが出来る. \(f\) が小さい間は Spk はおおよそ正比例する. (つまり \(f\) を大きくするに従ってスパイクの個数が増える.)

あるときから Spk が急激に大きくなる (ここでスパイク構造が壊れたと考える). その直前の \(f\) が良いもの