6

協調フィルタリングを使用してレコメンデーション エンジンを構築しています。類似性スコアには、ピアソン相関を使用します。ほとんどの場合、これは素晴らしいことですが、1 つまたは 2 つのフィールドしか共有しないユーザーがいる場合もあります。例えば:

User 1{
a: 4
b: 2
}

User 2{
a: 4
b: 3
}

これは 2 つのデータ ポイントのみであるため、ピアソン相関は常に 1 (直線または完全な相関) になります。これは明らかに私が望んでいるものではないので、代わりにどの値を使用する必要がありますか? このようにすべてのインスタンスを破棄することもできますが (相関を 0 にします)、私のデータは現在非常にまばらであり、何も失いたくありません。残りの類似性スコア (すべてピアソン) に適合する、使用できる類似性スコアはありますか?

4

4 に答える 4

5

ピアソン相関ではなくコサイン類似度の使用を検討することをお勧めします。この問題に悩まされることはなく、推奨システムの文献で広く使用されています。

これに対する標準的な解決策は、Herlocker らによって説明されています。「近隣ベースの協調フィルタリング アルゴリズムにおける設計選択の経験的分析」では、ピアソン相関を「減衰」して、小さな共同評価セットを持つユーザー間の過度に高い相関を修正します。基本的に、ピアソン相関に 1 とcc /50の小さい方を掛けます。ここで、 ccは両方のユーザーが評価したアイテムの数です。その結果、少なくとも 50 個の共通点がある場合、類似性はそのままのピアソンになります。それ以外の場合は、共通に評価されたアイテムの数に比例してスケーリングされます。疑似相関 1 が類似度 0.02 に変わります。

50 は、ドメインとシステムに基づいて調整する必要がある場合があります。

コサイン類似度を使用することもできますが、これは同じようにこの制限に悩まされることはありません。 ただし、ユーザー間 CF の場合は、一般にピアソン相関が優先されます。

更新:最近の研究では、ユーザーベースの CF ではコサインの類似性が時期尚早に無視されていることがわかりました。コサイン類似度は、正規化されたデータに対して実行すると (コサイン類似度を計算する前に、各評価からユーザーの平均を減算します --- 結果は、自己減衰項が組み込まれていることを除いて、パーソン相関と非常によく似ています)、 「標準」環境。もちろん、可能であれば、独自のデータと環境でテストを行って、何が最適かを確認する必要があります。ここの論文: http://grouplens.org/node/479

免責事項: 私は、上記の Herlocker 論文を作成した研究室の学生です。

于 2010-03-08T19:16:50.673 に答える
1

はい、ピアソンはレコメンダーエンジンの記事でよく言及されており、合理的に機能しますが、このような癖があります. (ちなみに、この例では相関は 0 ではなく 1 です。)

コサイン測度の類似性は確かに良い代替手段です。ただし、計算する前にデータを「中央に配置」し (シフトすると平均が 0)、そうすべき理由がある場合は、ピアソン相関と同じになるように縮小されます。したがって、同様の問題が発生するか、センタリングしないこととは異なる一連の問題が発生します。

ユークリッド距離ベースの類似度メトリックを考えてみましょう。類似度は距離に反比例し、ユーザーの評価は空間内の点として表示されます。このまばらさの問題はありませんが、距離が多くの次元に沿って増加しているため、多くのアイテムを共同評価し、これまでのところ離れているユーザーを優先しないように、次元に対して正規化する必要があります。

しかし、実際には、対数尤度ベースの類似度メトリックを確認することをお勧めします。また、これらの問題はなく、評価値も必要ありません。これは素晴らしいデフォルトです。

この問題を起こさない考慮事項が他にもあります: スピアマン相関、谷本距離 (Jaccard 係数) ベース。

どこで詳細を確認し、実装を入手できますか? 出来上がり、Apache Mahout

于 2010-05-08T23:18:55.963 に答える
0

いつもショーンのようにヒントをありがとう!LogLikelihood は、バイナリおよび非バイナリの評価セットで機能し、(0,1) の間の類似性スコアを返すため、開始するのに最適な「デフォルト」メトリックであることに同意します。

私の経験では、類似度スコアを範囲 (0,1) にマップするメトリクスを使用することは重要なプロパティです。これは、キャッピングのために実際には最高のアイテムと同じスコアを持つ何百もの他の低スコアのアイテムで最高のアイテムが失われたくない場合に不可欠です.

于 2011-08-15T17:56:24.667 に答える
0

ユーザーの類似度ではなく、アイテムの類似度を計算して、評価されたアイテムが少ないユーザーに新しいアイテムを推薦できるようにする必要があると思います。

于 2010-01-02T16:02:38.367 に答える