추천시스템의 인기도 기반 추천

ReadyMadeLife·2022년 3월 10일
1

인기도 기반 추천이란 조회수, 평균 평점, 리뷰 개수, 좋아요/싫어요 수와 같은 척도로 가장 인기있는 아이템을 추천해주는 것을 말한다.

통계적으로 가장 인기있는 아이템을 추천해주는 것을 말하며, 데이터가 별로 없는 서비스 런칭 초반에 주로 사용된다.

네이버 쇼핑 랭킹 순, 뉴스, 댓글, 레딧 Hot 추천에 주로 사용된다.

인기도 기반 추천은 크게 2가지로 나뉘는데 조회수가 가장 많은 아이템 (Most Popular)과 평균 평점이 가장 높은 아이템 (Highly Rated)로 구분된다.

조회수가 가장 많은 아이템을 추천하기 위해서 필요한건 조회수 (popularity)와 최신성 (age)가 제일 중요하다.

따라서 score 함수를 만들어보면 score=f(popularity,age)score = f(popularity, age)로 간단하게 나타낼 수 있다.

이를 사용한 서비스를 확인해보면,

Hacker news formula

이건 뉴스를 추천해주는 formula로 함수를 살펴보면,

score=pageviews1(age+2)gravityscore = \frac{pageviews - 1}{(age + 2)^{gravity}}

시간이 지날수록 age가 점점 증가하므로 score은 점차 작아진다.

그리고 시간에 따라 줄어드는 score를 조정하기 위해서 gravity라는 상수를 사용한다.

Reddit formula

레딧 Hot 추천에 사용되는 formula이다.

score=log2(upsdowns)+sign(upsdowns)seconds45000score = log_2(ups-downs)+\frac{sign(ups-downs)*seconds}{45000}

첫번째 term은 popularity를, 두번째 term은 포스팅이 게시된 절대시간이다.

Hacker news fomula와 다르게 최신 게시물에 더 많은 가산점을 준다.

또한 logarithm을 통해 vote가 늘어날수록 score의 증가폭을 제한해 오래된 게시글이 상위권에 오르기 위해선 압도적인 vote를 받아야한다.

평균 평점이 가장 높은 아이템 (Highly Rated)

평균 평점이 가장 높은 아이템을 추천하기 위해서 필요한 것은 평점 (rating)과 평점의 개수 (# of rating)이다.

간단한 fomula는 score=f(rating,#ofrating)score = f(rating, \#\, of\, rating)

Steam Rating Formula

스팀에서 게임 추천을 할 때 사용하는 formula이다.

avg_rating=#ofpositivereviews#ofreviewsavg\_rating = \frac{\#\,of\,positive\,reviews}{\#\,of\,reviews}
score=avg_rating(avg_rating0.5)2log(#ofreviews)score = avg\_rating-(avg\_rating-0.5)*2^{-log(\#\,of\,reviews)}

리뷰 개수가 적을 때, rating을 보정하기 위해서 고안된 formula이다.

rating은 평균값을 사용하지만, 전체 review 개수에 따라 rating을 보정하며,

review 개수가 아주 많아지면 score은 평균 rating에 근접하게 된다.

profile
레디메이드인생

0개의 댓글