꺼내먹는지식 준

인기도 기반 추천 본문

AI/추천시스템

인기도 기반 추천

알 수 없는 사용자 2022. 7. 5. 15:58

추천 시스템 중 가장 단순한 형태인 '인기도 기반 추천' 을 살펴보자. 

아래와 같은 예시들이 있다. 

마지막 예시인 reddit 의 경우 업로드 시간도 인기도의 결정 요인이 되어 최신 글 일 수록 인기도가 높다. 

 

다음의 예시들이 인기도 기반 추천이 적합하다. 

 

좀더 직관적으로 수치를 통해 보면, 

조회수와 업로드 날짜에 가중치를 주어 score를 계산할 수 있다.

왼쪽과 같이 가중치 없이 진행하면 시간과 관계없이 Top Rank 가 설정될 위험이 있다.  Hacker News Formula 라는 모델이 있다. 

시간에 따라 score가 급격하게 떨어지도록 하여, 적절하게 조정될 수 있도록 한다. (gravity 상수를 통해 조정한다.)

비슷하지만, 감점이 아닌 최신 포스팅에 가점을 주는 방식인 Reddit formula가 있다. 

간단한 수식 모델을 어떻게 만드느냐에 대한 고민들도 필요할 것으로 보인다. 

log 를 취한 이유는 초반 up vote에 높은 가점을 주고, 후반 up vote에는 낮은 가점을 주기 위함이다. 

애초에 좋아요가 많이 쌓이면 더 많은 유입으로 인해 더 많은 좋아요가 쌓이기 때문이다. 

 

위와 같이 단순히 popular에서 벗어나 좀더 고도화 된 Highly rated 방식이 있다. 

해당 방식은 continuous 한 값으로 좀 더 디테일하다는 장점이 있어 보인다. 

하지만 평점에 대해서는 평가 횟수에 따라 신뢰 할 수 있는가에 대한 이슈가 있다. 

가끔 허접하게 구현된 평가 알고리즘들을 보면 평가 횟수와 관계 없이 점수로만 내림차순 하는 경우가 있는데, 매우 당황스럽고 불편하다. 

때로는 평가 횟수, 평균 평점, 조회수까지 모두 반영해야 할 수도 있다. 

 

스팀게임에서 인기도를 scoring 하는 기법 

avg_rating = 전체 리뷰 개수 중에서 평균 rating (좋아요 개수/ 리뷰어 수)

그러나 review개수에 따라 rating을 보정한다. (흥미롭게도 리뷰가 적을 때 점수가 낮으면 좀 더 높게, 높으면 좀 더 낮게 보정을 한다.)

 

Steam Rating 을 응용해보자.

단순 좋아요 싫어요가 아니라 1~ 5 점을 기준으로 rating 을 구하게 된다. 

영화는 0, 1 의 중간인 0.5가 아니라 1~ 5 의 중앙값인 3.0을 사용할 수 있다. 

3.0 대신 모든 평점 데이터의 평균 값을 사용할 수도 있다. 

 

 

'AI > 추천시스템' 카테고리의 다른 글

추천 시스템 공부 로드맵  (0) 2022.07.05
연관 분석 추천  (0) 2022.07.05
추천 시스템 성능 평가  (0) 2022.07.05
추천시스템 개요  (0) 2022.07.05
Beam Search  (0) 2022.07.04
Comments