ロジスティック損失関数を使用した行列分解による協調フィルタリング


9

協調フィルタリングの問題を検討してください。サイズ#users * #itemsの行列あります。ユーザーiがアイテムjを気に入った場合、ユーザーiがアイテムjを嫌い、(i、j)ペアに関するデータがない場合。私たちは予測したい将来のユーザー、アイテムのペアのために。MMi,j=1Mi,j=0Mi,j=?Mi,j

標準の協調フィルタリングアプローチは、が最小になるような2つの行列積としてMを表すことです(たとえば、既知の要素の平均二乗誤差を最小化します)。U×V||MU×V||2M

私にとってロジスティック損失関数の方が適しているようですが、なぜすべてのアルゴリズムがMSEを使用しているのですか


1
この場合、それは理にかなっていますが、ほとんどの場合、M_i、jは評価である可能性があり、その場合、MSEがより有用です。私はMSEがより一般的だと思います。
2013

回答:


9

Spotifyでの暗黙の行列因数分解にロジスティック損失を使用します(再生回数を使用して)音楽の推奨のコンテキストで。NIPS 2014のワークショップでこの方法に関する論文を発表しました。このペーパーのタイトルは、暗黙的フィードバックデータのロジスティックマトリックス因数分解で、http://stanford.edu/~rezab/nips2014workshop/submits/logmat.pdfにあります。

論文のコードは私のGithub https://github.com/MrChrisJohnson/logistic-mfにあります


1
L(R | X、Y、β)= Prod(p(lui | xu、yi、βu、βi)^α.r_ui*(1 − p(lui | xu、yi、βu、βi))^ (1- α.r_ui) Aがコードを調べ、1 +α.r_uil64を使用しています:A =(self.counts + self.ones)* A github.com/MrChrisJohnson/logistic-mf/blob/master/ …したがって、何かが足りないのですか?どうぞよろしく
お願いし

あなたが出版した論文を見てみました。ロジスティック回帰による行列分解は積極的に研究されていないので、それは非常に興味深いです。とにかく、私はあなたの損失関数と少し混乱しています(2)L(R | X、Y、β)= Prod(p(lui | xu、yi、βu、βi)^α.r_ui*(1 − p(lui | xu、yi、βu、βi))(3)については、タイプミスがあると思いますL(R | X、Y、β)= Prod(p(lui | xu、yi、βu、βi)^α .r_ui *(1 − p(lui | xu、yi、βu、βi))^ (1 +α.r_ui)しかし、実際には、少し混乱しています。実際、ベルヌーイのような法則が予想されます。 as
fstrub 2015

多分私は主題にかなり遅れています..誰かが音楽の推薦の文脈の外でこのアルゴを試してみる機会を持っていたのではなく、代わりに製品の推薦の古典的な文脈ですか?ありがとう。
マルコフマガッリ

3

あなたが主題で見つける論文のほとんどは、評価がスケール[0,5]にあるマトリックスを扱います。たとえば、Netflix Prizeのコンテキストでは、マトリックスは1から5(+欠損値)の離散的な評価を持っています。これが、二乗誤差が最も分散したコスト関数である理由です。カルバックライブラーダイバージェンスなど、他のいくつかのエラー測定値を確認できます。

標準の行列因数分解で発生する可能性のある別の問題は、行列UおよびVの要素の一部が負になる可能性があることです(特に最初のステップで)。これが、ここで対数損失をコスト関数として使用しない理由です。

ただし、非負の行列因数分解について話している場合は、コスト関数として対数損失を使用できるはずです。あなたはロジスティック回帰と似たケースにあり、対数損失がコスト関数として使用されています。観測値は0と1であり、0と1の間の数(確率)を予測します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.