4

私はアマチュア ミュージシャン向けの音楽ウェブサイトを運営しており、そこでは 10 点満点のスコアに基づく評価システムがあり、それが 100 点満点の総合スコアに計算されます。平均スコアに直接影響するユーザー向けの「信頼性」ポイント システムがあります。次のステップは、このデータを効果的に使用するチャート システムを実装することです。

私がどのデータを自由に使用できるかを確認できるように、すべてがどのように機能するかを正確に説明します。

  • サイト メンバーが 1 から 10 の間でトラックを評価します。
  • そのサイト メンバーには「信頼性」スコアがあります。これは、サイト周辺のさまざまなアクティビティに対して蓄積されたポイントの合計です。たとえば、ユーザーは評価を与えることで 100 ポイントを獲得するため、より多くの評価を与えるほど、「信頼性」スコアが高くなります。信頼度スコアの合計のみがデータベースに保存され、ユーザーがポイント報酬付きのアクティビティを実行するたびに更新されます。これらの個々のアクティビティは保存されません。
  • トラックを評価した他のユーザーと比較したこのユーザーの信頼度に基づいて、トラックの加重平均が計算され、トラック テーブルに 1 ~ 100 の数値として格納されます。
  • トラック テーブルには、トラックが再生された回数 (再生回数) も合計として格納されます。

したがって、使用する必要があるデータは次のとおりです。

  • トラックの総合評価 (1 から 100 までの数字)
  • トラックの評価数
  • トラックの再生回数

チャート システムでは、上記の 3 つのデータ セットを使用して、品質(全体的な評価、評価数で正規化) と人気(再生数) の間の公正なバランスを作成するランキングを作成したいと考えています。ただし、システムは人気よりも品質を重視する必要があります。たとえば、品質面は正規化されたランキングの 75% を占め、人気度は 25% を占めます。

このサイトで検索した結果、品質面を理解するのに役立つIMDB ベイジアン スタイルのシステムを見つけましたが、人気 (再生数) を追加して、希望する方法でバランスを取るにはどうすればよいですか?

このサイトは PHP と MySQL で書かれています。

編集: タイトルには「クリック数」と書かれていますが、これは基本的に「再生数」に直接相当します。

4

1 に答える 1

3

以下を試してみてください。あなたが言及した IMDB の方程式は重み付けを使用して、映画の平均評価またはすべての映画の平均評価のいずれかに傾いています。

WR = (v/(v+m)) × R + (m/(v+m)) × C 

そう

v << m => v/(v+m) -> 0; m/(v+m) -> 1 => WR -> C

v >> m => v/(v+m) -> 1; m/(v+m) -> 0 => WR -> R

これは一般的に公平である必要があります。再生回数に基づいて 0 から 100 までの人気スコアを計算することは、データを本当に理解していない限り、かなり難しいものです。最初に平均再生回数 avg(p) と分散 var(p) を計算してから、これらを使用して、テクニック コール ホワイトニングを使用して再生回数をスケーリングできます。

WHITE(P) = (p - avg(p))/var(p)

これにより、データが釣鐘曲線のように見えると仮定して、-1 から 1 の間のスコアが得られます。次に、再度スケーリングすることで、これを 0 ~ 100 の範囲にスケーリングできます。

POP = 50 * (1 + WHITE(P))

重み係数 w (例: 0.75) に基づいてスコアを組み合わせるには、次のようにします。

RATING = w x WR + (1 - w) x POP

これらで遊んで、どうやってうまくいくか教えてください。

注: これは、トラックを何度も再生して人気を「ゲーム」できるという事実を考慮していません。1 つの曲の複数回の再生にペナルティを課すことで、これを回避できます。

deltaP = (1 - (Puser - 1)/TPuser) ここで:

  • deltaP = # プレイの変化
  • Puser = このユーザーがこのトラックを再生した回数
  • TPuser = ユーザーが再生したトラックの総数 (一意ではない)

したがって、ユーザーが 1 つのトラックだけを再生する回数が増えるほど、そのトラックの合計再生回数にカウントされる回数は少なくなります。ユーザーのリスニング習慣が多様である場合、TPuser は大きくなるため、deltaP は 1 に戻る傾向があります。

于 2011-05-18T15:39:43.547 に答える