2

「x が好きで、y も好きな人」タイプのレコメンデーション システムの構築を検討しており、Vogoo の使用を検討していましたが、コードを調べたところ、評価に基づいて最近傍がたくさんあるようです。

ここ数週間、ほとんどの人がまったく評価しないか、5 と評価しているという記事をいくつか見ましたhttp://youtube-global.blogspot.com/2009/09/five-stars-dominate- rating.html

私は現在、レーティング システムを実装していません。また、適用されるすべてのレーティングが変動しないのであれば、実装する必要もないと思います。

これは、KNN はあまり価値がないということですか?

過去の視聴履歴に基づいて類似のレコメンデーションを取得するシステム (パッシブ フィルタリング) を開発するための推奨事項はありますか?

私が扱っているデータはイベントベースなので、男子ダブルステニス、ブルージェイズ野球、大学女子バスケットボールなどを見たことがあるなら、他の人が見たあなたの地域で現在開催されている他のイベントをお勧めします.システム全体で同様のイベントも見ています。

私は主に PHP を使用していますが、Python を学び始めています (それが役立つ場合は、おそらく Java を学ぶ必要があります)。

4

3 に答える 3

3

最初の質問に対する素っ気ない答えはノーです。データにバリエーションがない場合 (YouTube スター)、推奨することは困難です。

私が提案するかもしれないのは、あなたが持っているデータの量を拡大しようとすることです. YouTube の例では、星の評価だけでなく、視聴された動画の割合も考慮してください。一時停止、シーク、巻き戻しの回数が多いということは、ユーザーがビデオを気に入って、より頻繁にその部分を見たいと思っていることを意味している可能性があるため、そこからブーストが得られるはずです。

少なくとも音楽の世界では、レコメンデーションを行う標準的な方法は、使用できる距離メトリックを考え出すことです。これにより、任意の 2 つの曲の間の距離がわかります。次に、ユーザーが好きな音楽の種類がわかったら、距離メトリックに従って「近い」曲を選ぶことで、好みに近いものを選ぶことができます。これらは、類似性マトリックスとも呼ばれ、距離が離れている 2 つのアイテムの類似性は低くなります。

したがって、問題は、これらの類似性をどのように生成するかということになります。これを行う 1 つの方法は、番組 A を見た人が番組 B も見た人の数をカウントすることです。これをすべてのイベントのペアに対して行うと、分析したコーパスからレコメンデーションを行うことができます。残念ながら、これは、何人の人がそれらを視聴したかをまだ知らないイベント (記録されたものではなくライブ イベント) の推奨にはうまく拡張できません。

ただし、これは少なくとも始まりです。

于 2010-01-10T09:05:02.040 に答える
1

Andrew の素晴らしい反応の後、私が行ったことを説明し、それが他の人の助けになることを願っています (私の実装に固有のものかもしれませんが)。

たくさんのイベントとそれらのイベントが行われる場所に関するデータがあることを覚えておいてください.

レコメンデーションの作成に使用したスクリプトは次のとおりです。 http://www.codediesel.com/php/item-based-collaborative-filtering-php/

ただし、システムにまだ評価がなく、ユーザーベースの評価の価値が「疑わしい」ため、データセットに既にある類似性に基づいて評価を作成しました。

私は基本的にこのように構成しました

1) ユーザー 1 は男子テニスの試合に行きます。
2) 男子テニスの試合に行く他のすべてのユーザーを取得します。
3) 男子テニスの試合に参加するユーザーごとに、そのユーザーが他にどのようなスポーツに参加しますか?
4) その他の各スポーツについて、それらのイベントに参加したユーザーの数。
最初のユーザーのスポーツのスコアとして、そのカウントを使用しました。
5) 次に、テニスに行った各ユーザーについて、彼らが行った他のスポーツの数と、最初のユーザーに対するそれらのスポーツのスコアに基づいて、「最初のユーザーとの類似性」を作成しました。
6) これにより、各ユーザーの距離スコアが作成され、その距離スコアをセカンダリ ユーザーが行った各スポーツのスコアとして適用しました。
7)これらすべてが配列に入れられ、上記にリンクされている推奨事項に渡されました

これは実際に、私が扱っていたサンプルサイズに基づいて予想していたよりも驚くほどうまく機能しました.

ただし、実行するのが痛々しいほど遅いです。ここからどのように進行するかわかりません。

于 2010-01-10T18:41:42.850 に答える
0

ほとんどの人が本当に好きなものだけを評価しているのは事実です。ユーザーがスポーツを観戦した時間に基づいて、決定ユーティリティに基づく正直な「評価」を無料で取得できるため、時間データに恵まれています。

ユーザーの「評価」として、彼らがプログラムを視聴した時間のログを取ります。小数点以下の精度が得られるため、ケースは特に簡単です。

于 2011-03-14T05:53:07.950 に答える