Bayesian Personalized Ranking ( BPR の BPR-MF のこと) は新しい推薦システムを提案する際にほぼ必ずベンチマークとして登場する. その際にオープンソースなライブラリ実装が使われるが, その実装は BPR の原論文の実装とは異なることが多い. 最悪なケースで 50% 以上本来の BPR よりも悪い性能を示すことがある.
適切なライブラリを選べ. cornac を使え.
\((u,i,j) \in D\) に対して
\[\lambda_u \|w_u\|^2 + \lambda_i \|h_i\|^2 + \lambda_j \|h_j\|^2\]という正則化項が使える. ここで重み \(\lambda\) として, ユーザーに使うもの, ポジティブアイテムに使うもの, ネガティブアイテムに使うものをそれぞれ別に持つことが出来る.
元論文で既にこの3つがあると言われてるでしょ, と書いてあるが, どこに書いてあるのか分からなかった. \(\lambda_\Theta\) という1つになってるようにしか見えないんだが.
ライブラリによって \(\lambda\) は一種類だったりする.
元論文では普通の SGD で学習している. 現代なら他に Momentum SGD や Adam などがある.
一様ランダムに選ぶだけでなく, その時点で最も予測を外してしまうアイテムを選んでネガティブサンプルとして使うという adaptive sampling が考えられる. 通常こちらの方が良い.
これも元論文にあると書いてあるけど, どこ? "bootstrap sampling" というのはあるけど, これのことか?
内積 \(\ip{w_u}{h_i}\) にバイアス項を加えて
\[\ip{w_u}{h_i} + b_u + b_i\]とすることが考えられる.
アイテムのバイアス項は有用. ユーザーのバイアス項は不要.
上記したオプションをフルに実装した彼ら独自のものと, 有名どころのライブラリを比較した. 各ライブラリの実装は Table 2 にまとめてある. フルに実装されてるものはオリジナルも含めて全く存在しない.
いくつかのデータセットで実験しなおした. 彼らの実装及び cornac がいつも同率一位.