2011-12-30 4 views
3

Googleのralisアプリには、ユーザーの積極的な行動に基づいてスコアが割り当てられたモデルがあります。わかりやすくするために製品と呼んでいます。ユーザーが商品を気に入ったり、商品を購入したり商品を見たりすると、スコアはさまざまな重みで増分されます(たとえば、ビューよりも価値があると思われます.30秒間の2つのビューは、レールアプリのランキングアルゴリズム

一般的な製品リストのように、製品の並べ替えやランク付けに役立てるために、これらのスコアを使用したいと思っていますが、さまざまな理由から - 直系のランキングを使用すると古い製品、彼らはより高いスコアを集めるための時間がより長くなるからです。

私の質問は、新旧の製品の間のスコアを正規化する方法です。私は製品のスコアを時間単位で分けることを考えました。それは存在していた日数ですが、古い製品をあまりにも減らすことを心配しています。古い製品と新しい製品の間のスコアを公式に正規化する最良の方法についての考えはありますか?

また、私は別の質問で見つかったベイジアン評価システムの一例を検討している:avg番号は(複数voteを持っているすべての製品間でのスコアを見て、算出され

rating = ((avg_num_votes * avg_rating) + (product_num_votes * product_rating))/(avg_num_votes + product_num_votes) 

または私たちの場合は、プラスのaction)。これは最良の方法ではないかもしれません。なぜなら、私たちのシステムにマイナスの格付けを持っておらず、全く考慮に入れていないからです。

答えて

3

Exponential Discounting Cash Flow in financeのコンセプトを思い出してください。 1年未満100 $、今100 $未満の価値が、...価値が2年間で100 $

私たちはここで良い比較を行うことができると思います

コンセプトは以下の通りです。昨日の製品よりも前の製品が今日の製品よりも少なくて済みます。

式は単純です:V0

Vn = V0 * (1-t)^n 

初期値(陽性票の実数)、トン割引率(あなたは10%のように、それを修正する必要がある)と、 n時間が経過した(たとえばn日)。したがって、製品は毎日自分の価値の10%を失うでしょう(ただし、初期値ではなく、前日の10%)。

さらにお近くのHyperbolic discountingをご覧ください。式は、私が推測することのようにsometyhingすることができます。

Vn = V0 * (1/(1+k*n)) 

簡素他のアプローチ、しかし、最も生々しい:リニア割引を。スコアの初期値を与えることができます.1000や毎日など、すべてのスコアを1ずつ減らします(または他の定数)。

Vn = V0 - k*n 
+0

興味深い。あなたの2番目の例では、kとは何ですか? – Slick23

+0

これはまさに私が探しているもの、btwです。ありがとう! – Slick23

+0

kはちょうど任意の正の定数です(tは0と1の間です)。しかし、私はこの公式には自信がないので、はるかに完全なウィキペディアの説明を勉強すべきです。 –

関連する問題