これらのシステムがどのように機能するかについて、私は常に興味を持っていました。たとえば、netflix や Amazon は、過去の購入や評価に基づいてどのような推奨事項を作成するかをどのように決定するのでしょうか? 読むべきアルゴリズムはありますか?
ここで誤解がないように、私が尋ねる実際的な理由はありません。純粋な好奇心から聞いているだけです。
(また、このトピックに関する既存の質問がある場合は、それを教えてください。「レコメンデーション システム」は検索するのが難しい用語です。)
これらのシステムがどのように機能するかについて、私は常に興味を持っていました。たとえば、netflix や Amazon は、過去の購入や評価に基づいてどのような推奨事項を作成するかをどのように決定するのでしょうか? 読むべきアルゴリズムはありますか?
ここで誤解がないように、私が尋ねる実際的な理由はありません。純粋な好奇心から聞いているだけです。
(また、このトピックに関する既存の質問がある場合は、それを教えてください。「レコメンデーション システム」は検索するのが難しい用語です。)
最も基本的なことですが、ほとんどのレコメンデーション システムは、次の 2 つのいずれかを言うことによって機能します。
ユーザーベースのレコメンデーション:
ユーザー A がアイテム 1、2、3、4、および 5 を気に入り、
ユーザー B がアイテム 1、2、3、および 4 を気に入った場合、
ユーザー B はアイテム 5 も気に入る可能性が非常に高くなります。
アイテムベースのレコメンデーション:
アイテム 1 を購入したユーザーがアイテム 2 も購入する可能性が不釣り合いに高く、
ユーザー A がアイテム 1 を購入した場合
、ユーザー A はおそらくアイテム 2 に興味を持つでしょう。
知っておくべきアルゴリズムのブレイン ダンプは次のとおりです。
- 類似度の設定 (Jaccard インデックスとタニモト係数)
- n 次元ユークリッド距離
- k-means アルゴリズム
- ベクトル マシンのサポート
これは非常に商業的に重要なアプリケーションであり、Netflix はレコメンデーションを 10% 改善したことに対して 100 万ドルの賞金を導入しました。
数年後、人々は近づいてきています (現在は約 9% 上昇していると思います) が、非常に多くの理由で困難です。おそらく、Netflix Prize の最大の要因、または初期の最大の改善点は、特異値分解と呼ばれる統計手法の使用でした。
特にNetflixプライズとレコメンデーションシステム全般に関する詳細な議論については、「これが好きなら、きっと気に入るはずです」を読むことを強くお勧めします.
基本的にAmazonなどの原理は同じですが、パターンを探します。スター・ウォーズ トリロジーをよく購入した人は、平均的な顧客よりもバフィー・ザ・ヴァンパイア・スレイヤーを気に入っている可能性が高いです (純粋にでっち上げの例です)。
O'Reilly の本"Programming Collective Intelligence"には、それがどのように機能するかを示す素晴らしい章があります。非常に読みやすい。
コード例はすべて Python で書かれていますが、それは大きな問題ではありません。
ミネソタ大学のGroupLens Researchは、レコメンダー システムを研究しており、その研究とデータセットを惜しみなく共有しています。
彼らの研究は毎年少しずつ拡大し、現在ではオンライン コミュニティ、ソーシャル コラボレーション フィルタリング、複雑なデータを提示する際の UI の課題などの詳細を検討しています。
そのレコメンデーション システムの Netflix アルゴリズムは、実際にはプログラマーがシステムの精度を上げるために競争し続ける競争的な取り組みです。
しかし、最も基本的な用語では、レコメンデーション システムは、別のユーザーの人口統計/関心情報と密接に一致するユーザーの選択肢を調べます。
したがって、あなたがニューヨーク市出身の 25 歳の白人男性である場合、レコメンデーション システムは、米国北東部の 21 歳から 30 歳の範囲の他の白人男性が購入した製品を表示しようとする可能性があります。
編集: また、ユーザーに関する情報が多ければ多いほど、他のユーザーが行っていることと、問題のユーザーが興味を持っている可能性があることに一致するようにアルゴリズムをより厳密に調整できることにも注意してください。
これは分類の問題です。つまり、特定の項目に関心を持つ可能性が高いユーザーのグループにユーザーを分類することです。
このようなグループに分類されると、そのグループ内の他のユーザーの購入/いいねを調べて、推奨することが容易になります。
したがって、ベイジアン分類とニューラル ネットワーク (多層パーセプトロン、放射基底関数、サポート ベクター マシン) は、読む価値があります。
1 つの手法は、ユーザーをクラスターにグループ化し、同じクラスター内の他のユーザーから製品を推奨することです。