私はいつも、iTunesに「Genius」機能を実装するための最善の方法と方法について疑問に思っていました。
私はおそらくそれを総当たり攻撃することができましたが、誰かが何か洞察を持っているかどうか疑問に思っていました。
ありがとう。
Geniusアルゴリズムは、Eコマースシステムで話題となっているレコメンデーションシステムの一例です。Netflixが100万ドルの賞金を獲得し、レコメンデーションシステムをわずか10%改善するために、数年間続いたほどです。
iTunesには音楽のコレクションがあります。天才は、あなたがこの音楽を持っているなら、あなたはそれを好きでなければならないと仮定することができます。十分な数の人が曲Aを持っている曲Bを持っているなら、天才はあなたが曲Aを持っているならあなたはおそらく曲Bを好きになるだろうと言うことができます。
曲を持っているだけではかなり弱い推奨です。ユーザーがその音楽を評価して、それに基づいて「推奨」の強度を向上させることができれば、より良いでしょう。
レコメンデーションシステムの優れた入門書として、「これが気に入ったら、きっとそれを愛する」を読むことを強くお勧めします。
ステップ1-ユーザーごとのすべてのクリック/再生について、データを収集します。それは大量のデータになります。
ステップ2-ランキング/推奨リスト生成システムを作成します。すべての曲について、人々が閲覧/再生しているすべての製品/曲を含むランキング/優先度タイプのリストを生成します。簡単な例では、同じ組み合わせや各曲の再生時間の長さを共有する人はいないと言います。
ステップ3-制限(たとえばtop10)を維持して、上記で作成した曲のリストからの推奨事項を表示します。
これはそれほど難しいことではありませんでした。トリックまたは天才は、ステップ2で作成したリストに重みを追加することにあります。レコメンデーションシステムがウェイトでどのように機能するか(たとえばページランクの場合)。
非常に複雑なコンピュータサイエンスの分野にこのような素朴で簡単な説明をすることで、データマイニングエンジニアを失望させたかもしれません。許してください。:)
この用語の頻度-逆ドキュメント頻度を見てください。これは、好きなものに応じてランク付けする方法です。「ユニーク」であるほど、好きな曲がおすすめに与える影響が大きくなります。
基本的に、U2だけが好きでプレイする場合、アルゴリズム/プログラムがあなたの好みに合った特別なものを推奨するのは難しいでしょう。
一方、iTunesの使用法がより多様である場合、あなたが本当に好きなあまり知られていないバンドは、大衆からあなたをより隔離するので、より重みが付けられます。
重要なポイント:多くのユーザーからのデータが必要です。これをブルートフォースで自分で行うことはできません(完全に手作業で作成する場合を除きます)。