スパースなデータに有効な予測,分類アルゴリズム
元論文:http://www.csie.ntu.edu.tw/~b97053/paper/Rendle2010FM.pdf
Steffen Rendle, 2010
FMの論文、主にSVMとの比較が述べられている。FMとSVMを比較した際、FMのいいところはスパース性に強いところである。さらにSVD++やPITFやEPMCなどを一般化して説明することができる点もFMの利点である。
SVMは協調フィルタリングには適さない、なぜなら協調フィルタリングにはスパースなデータが含まれていることが多く、カーネルではスパース性はうまく表現することができないから。
FMは線形時間で線形個のパラメータの推定を行う。

学習データのサンプル、どのユーザーがどの映画に対してどのスコアをつけたのかのデータになっている。黄色は他のユーザーが過去にどの映画に対してつけたレビューの点数、合計が1になるように正規化をしている。

FMの予測式、(1)を満たすような、w、vを学習させていく。(1)の3項目がポイント、交差項のパラメーターを(n*(n-1)/2)個のパラメーターにするのではなく、(n)個の次元削減されたベクトルの内積としてあげることで、学習しなければいけない変数の数を減らしている。さらに、一見関係ないようなベクトル間の距離を測ることで、関係性を他の関係性から表現することができる。
適用可能なタスクと損失関数の作り方
・線形予測:二乗誤差
・2値分類:ヒンジ関数 or ロジット関数
・ランキング:pairwise分類損失
どのタスクの場合もL2ノルムを加えることで、正則化を測る
SVMがスパース性に弱い理由
多項式カーネルを用いて、2つの目的変数にフラグがついていた場合、w_{u, i}が交互作用の項を表している。しかし、学習データの中で、w_{u, i}が出てくる回数などたかだか知れているので、うまく学習ができない。なのでこの式は多項式カーネルではなく、線形カーネルと同等の精度しか表さない。なのでSVMはスパースなデータに弱い。