2011-12-30 2 views
3

Google은 사용자의 긍정적 인 행동을 기준으로 점수가 할당 된 ralis 앱에 모델을 보유하고 있습니다. 우리는 간단하게하기 위해 그것들을 제품이라고 부를 것입니다. 사용자가 제품을 좋아하거나 제품을 구매하거나 제품을 보게되면 다양한 가중치로 점수가 올라갑니다 (30 초간의 두 번보기가 3 회 이상 펼쳐질 가치가있을 수 있습니다. 시간 등)레일 앱의 순위 알고리즘

인기 제품 목록에서 제품 정렬 및 순위 지정에 도움이되기를 원하지만 다양한 이유로 인해 이러한 점수를 사용하고 싶습니다. 직선 순위를 사용하면 이전 제품이 불규칙하게 선호 될 것입니다. 그들은 더 높은 점수를 쌓을 시간이 더 많기 때문입니다.

내 질문은 신규 및 기존 제품 사이의 점수를 정상화하는 방법입니다. 나는 제품 점수를 시간 단위로 나누는 것에 대해 생각했다. 존재하는 일 수를 말하지만, 구형 제품을 너무 많이 줄일 것이라고 걱정한다. 구식 제품과 신제품 간의 점수를 공정하게 정상화하는 가장 좋은 방법에 대한 생각은 무엇입니까?

나는 또한 또 다른 질문에서 발견 베이지안 평가 시스템의 예를 고려하고 다음 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의 개념을 생각 나게한다. 일년 미만 100 $, 지금은 100 $ 이하의 가치, ... 가치가 2 년 만에 100 $

나는 우리가 여기 좋은 비교를 할 수 있다고 생각

:

개념은 다음과 같다 : 어제의 가치가있는 제품은 그 전날의 제품이지만 오늘의 제품보다 적은 제품입니다.

공식은 간단하다 : V0 초기 값 (긍정적 투표의 실수), t 할인율 (당신이 10 %처럼, 그것을 해결하기 위해이)와

Vn = V0 * (1-t)^n 

n 시간이 지났습니다 (예 : n 일). 따라서 제품은 매일 값의 10 %를 잃게됩니다 (단, 초기 값의 10 %는 제외).

또한 시도의 가까운 Hyperbolic discounting을 볼 수 있습니다. 공식은 내가 추측하는 것을 좋아 sometyhing 할 수 있습니다

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

간단하게 다른 접근하지만, 조잡한 : 선형 할인을. 1000과 매일 같은 점수에 대한 초기 값을 제공하면 모든 점수를 1 (또는 다른 상수)만큼 감소시킵니다.

Vn = V0 - k*n 
+0

흥미 롭. 두 번째 예에서 k는 무엇입니까? – Slick23

+0

이것은 정확히 제가 찾은 것입니다, btw. 감사! – Slick23

+0

k는 임의의 양수 상수입니다 (t는 0과 1 사이입니다). 그러나 나는이 공식에 대해 자신이 없습니다. 위키 백과 설명을 공부해야합니다. –

관련 문제