Netflixのような映画を推奨するための統計的方法は何ですか?


13

動的モデルを実装して、映画をユーザーに推奨したいと考えています。推奨事項は、ユーザーが映画を見たり評価したりするたびに更新する必要があります。シンプルにするために、2つの要素を考慮に入れることを考えています。

  • ユーザーによる他の映画の過去の評価
  • ユーザーが特定の過去の映画を視聴した時間

そのようなモデルをどのように設定し、学術文献は何を推奨しますか?

私はこの分野で初めてであり、線形推定モデルは、パラメータ推定に不必要な不確実性を課すことを避けるための複雑な方法に興味を持たずに、良い結果を提供できると推測しています。しかし、実際に一般的に使用されている確立された方法はすでにあるのでしょうか?


3
これが広すぎて答えられないとは思わない。たとえば、2つの賛成の回答があります。
GUNG -復活モニカ

2
CourseraのMining Massive Datasetsとその無料の本をお試しください!
フェリペジェラール

2
おそらく行列および/またはテンソル分解を調べたいと思うでしょう。
マーククレセン

1
@usεr11852私の答えは質問よりも広範です。
シャドウトーカー

1
@usεr11852、質問のタイトルは「どんな統計的方法がありますか...?」最後の文は、回帰以外の方法があるかどうかを尋ねます。以下のいくつかの回答がこの種の情報を提供すると思います。
GUNG -復活モニカ

回答:


14

これは実際、機械学習の分野では比較的有名な問題です。〜2006年、Netflixは、推奨システムに最も合理的な改善をもたらすアルゴリズムに100万ドルを提供しました。勝利を収めたソリューションの理論は、機械学習の入門に関するこのCaltechの教科書で簡単に説明されいます。

基本的に、アンサンブル学習法が使用されました。特に、一種のブレンドまたはスタッキングが採用されました。これは自明ではありませんが、一種の直感的です。異なる統計的アプローチを調和で使用する直感を理解するために、同じ映画を好むさまざまな理由を考えてみましょう。つまり、ジョーは80年代のアクション映画が好きだからジョーはトップガンが好きかもしれません。したがって、両方の視聴者が視聴した(そして映画を高く評価した)という事実は、必ずしも他の映画が高い確率で好きになるということではありません。予測アルゴリズムは、少なくともある程度はこれらの違いに対応できることが理想的です。

これにより、ソリューションは非常にシンプルに聞こえるかもしれませんが、競合するアルゴリズムのバランスを取り、各ケースの最良の推測に優先順位を付けることは、決して簡単ではありません。Netflixがそのような大きな賞金を提供したという事実は、挑戦の大きさをかなり明白にするはずです。

機械学習を始めたばかりの場合は、関心のレベルと数学の背景に応じて、上記のリソースを確認すると役立つ場合があります。したがって、リグレッションはおそらく問題なく機能しますが、大幅に向上したパフォーマンスが可能です。


2
Netflix賞の+1。あなたが指摘したように、その賞はこの挑戦がどれほど巨大であるかの良い指標です。
コートアンモン-復活モニカ

11

これらの問題の半分は、何を検索するかを知ることです。

気付かずにタグを追加したかもしれませんが、実際には推奨システムに関する情報を探していますコラボレーションフィルタリングから始めることもできますしRicci、Rokach、Shapiraによる「Recommender Systems Handbookの概要」を引用することもできます。


確かに私はタグをより深く見て、ほとんどが協調フィルタリングの例に出会いました。私がこの方法で抱えている問題は、概念を理解した場合、他のユーザーの入力に依存することです。1人のユーザーの状況で、他のデータがない、またはオプションで他のデータのメソッドをもっと探しています。他の参考文献をご覧ください。
ジョンアンドリュース

1
@JohnAndrews:ssdecontrolはあなたに最も関連するアドバイスを与えると思います。レコメンダーシステムの資料を調べる必要があります。関係する多くのテクニックがあります。NNMFFunk SVD、いくつかの明白なものに名前を付けるための最近傍分類子の多くの異なるバリアントなど。最終的には、協調フィルタリングを使用したいのですが、背景なしで「ダイブイン」することはできません。
usεr11852は回復モニック言う

@JohnAndrews CrossValidatedは、特にタグだけで検索する場合は特に、主題について学習を始めるのに悪い場所です。代わりにリンクしたリファレンスをご覧ください。ウィキペディアの統計記事は常に信頼できるとは限りませんが、これらはかなり良いものであり、多くの参考文献を引用しています。
シャドウトーカー

6

CourseraのAndrew Ngのコースをチェックしてください。https://www.coursera.org/learn/machine-learning 推奨システムの構築に関するレッスンがあります。本質的には、映画を評価した人から映画の合成属性を学習し、それを使用して映画を評価/視聴していない人への推奨を予測する線形回帰の形式です。


3
当サイトへようこそ!「裸の」リンクを提供するだけでなく、リンクの内容を要約する情報を含めてくれてありがとう-感謝しています。
シルバーフィッシュ

4

Netflixの挑戦(2006年10月から2009年9月)非常に大規模なアンサンブル(107別のサブモデル)は、最終的に$ 1M大賞を受賞したが、NetflixのCinematchを倒すために最初に簡単な(非アンサンブル)アルゴリズムことに注意することは有益ですベンチマークは、一般化された(疎行列)SVDに基づいていました。Cinematchを破ったこの最初のマイルストーンは、WXYZConsultingというチームが競技を開始してからわずか6日後に達成されました。

SVD(特異値分解)は、[user, movie][u, m]位置(*)に評価(1〜5つ星)の2D マトリックスから開始し、3つのマトリックスに分割するマトリックス分解アルゴリズムです。中央のマトリックスは、ユーザーと映画の間の潜在的な相互作用。

正方行列のランクを小さくしたり大きくしたりして、それぞれこうした潜在因子の相互作用を多かれ少なかれ含めることができます。

高速/効率的なスパースSVDのいくつかのフリーソフトウェア実装があります。たとえば、redsvd、またはvowpal-wabbitのように、独自のコードを作成する前に、試してみてください。

(*)ほとんどのユーザーはほとんどの映画を評価していないため、これらのエントリのほとんどはゼロです。すなわち、行列は非常にまばらです。

参照:


Netflixは以前何を使用していましたか?
ジョナ

2
「Cinematch」と呼ばれるアルゴリズムは公開されていませんが、「長年にわたって洗練されたさまざまな要因の線形結合」として説明されています。評価、...など
arielf

詳細な回答をありがとう。それを掘り下げます。線形結合に関しては、その過剰パラメーター化の大きな問題ではありませんか?それが私の好みのアプローチでしょう。しかし、SVDは有望に聞こえます。
JohnAndrews

一般化エラーを改善する要因のみを追加する場合は問題ありません。明らかに、必要な信頼を得るために、見えないデータでそのような追加をすべてテストする必要があります。
アリエル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.