MTurk の Web サイトをクロールしました。データセットとして 260 ヒットがあり、このデータセットから特定の数のユーザーがヒットを選択し、選択した各ヒットに評価を割り当てました。ここで、これらのユーザーの選択に基づいて、これらのユーザーに推奨事項を提供したいと思います。どのように可能ですか?誰でも推奨アルゴリズムを推奨できますか?
1 に答える
ユーザーは評価の形で明示的なフィードバックを持っているため、Collaborative Filtering (CF) アルゴリズムのいずれかを選択する必要があるようです。まず、単純なアイテム/ユーザー ベースの k-Nearest Neighbors アルゴリズムを実装することをお勧めします。結果があなたを満足させず、おそらくあなたのデータが非常にまばらである場合 - おそらく行列因数分解技術がうまくいくはずです。私が最近読んだ良い調査は [1] で、さまざまなデータ設定でさまざまな方法が提示されています。
これに満足し、実際に必要なのは評価よりもトップ N 予測のランク付けリストであることに気付いた場合は、たとえば Bayesian Personalized Ranking[2] について読むことをお勧めします。
そして最良の部分は、これらのアルゴリズムは非常によく知られており、ほとんどすべてのプログラミング言語で利用できます。たとえば、python -> https://github.com/Mendeley/mrec/
[1] J. Lee、M. Sun、および G. Lebanon、「協調フィルタリング アルゴリズムの比較研究」、ArXiv、pp. 1–27、2012。
[2] S. Rendle、C. Freudenthaler、Z. Gantner、および L. Schmidt-thieme、「BPR : 暗黙のフィードバックからのベイズ個人化ランキング」、人工知能の不確実性に関する第 25 回会議の議事録、2009 年、vol . cs.LG、452 ~ 461 ページ。