ユーザーが記事に賛成票または反対票を投じることができるニュース サイトを構築しています。記事は、人、場所、会社などのさまざまなエンティティにリンクされています。エンティティには、グローバル スコアとユーザーごとのスコアがあります。
そのため、ユーザーが記事で賛成/反対の投票を行うと、リンクされたエンティティのグローバル スコアとユーザーごとのスコアが変化します。
たとえば、Google と Microsoft について言及している記事があります。ユーザー A が記事を気に入り、賛成票を投じます。Google および Microsoft エンティティのグローバルおよびユーザー A スコアが増加します。
ユーザー A の個人スコアへの影響を増やし、全体スコアへの影響を減らしてほしいと思います。
また、最初のサイト ユーザーがスコアを下げすぎないように、エンティティはスコアから開始する必要があります。
エンティティを 0 から 1 にランク付けすることを考えています。投票は 2 進数です: like(1)、like(0) ではありません。
このブログ投稿で言及されている C=0.7 で、m の値が異なるベイジアン平均法を見ています (個人スコアには am を使用し、一般スコアには別の値を使用します)。私が実行したテストでは、個人のスコアと全体のスコアにほとんど差がありませんでした。適切な値を見つけることができなかったようです。
編集:
これは、ベイジアンを計算するために使用しているコード(python)です。この式を使用すると、結果が向上します。
def bayesian_average(votes, C=100, m=0.7): #C higher for global
#votes = [1,0,1,0,0,1,1,1]
avg_votes = C
avg_rating = m
ent_votes = len(votes) #entity votes
ent_rating = sum(votes) / float(ent_votes)
ba = ( (avg_votes * avg_rating) + (ent_votes * ent_rating) ) / (avg_votes + ent_votes)
return ba