추천 시스템 개요

  • 과거와는 다르게 정보가 넘쳐나고 이 많은 정보 중에서 유저가 더 편하고 쉽게 정보를 찾을 수 있게 도와주기 위해 추천 서비스가 사용되고있습니다.

  • 추천에 사용되는 추천 시스템은 사용자의 선호도나 행동을 예측해서 상품을 추천해주는 시스템입니다. 이러한 추천 시스템은 YouTube, 쇼핑몰, SNS 등 다양한 분야에 적용되어 우리에게 제공되고 있습니다.

  • 추천에는 다양한 방법이 존재합니다. 가령 조회수가 잘나오거나, 판매량이 많거나, 리뷰 점수가 높거나 등 인기있는 상품을 추천해주는 것도 한 방법이라고 볼 수 있습니다.

  • 정보가 많아지고 다양한 상품이 등장하면서 정보를 찾는데 시간이 오래 걸리고 유저마다 원하는 상품이 다양해 지고 있습니다. 그렇기 때문에 추천 시스템의 필요성이 커지고 있습니다.



추천 시스템 데이터

  • 추천 시스템에 사용되는 데이터는 user 관련 정보, item 관련 정보, user-item 상호작용 정보로 입니다.

  • user 관련 정보는 연령, 성별, 관심사, 지역 등의 정보입니다.

  • item 관련 정보는 상품의 카테고리 및 브랜드, 영화의 장르 및 출연배우, 음악의 장르 및 아티스트 등의 정보입니다.

  • user-item 상호작용 정보는 유저가 상품에 평점을 남기는 행위와 같은 Explicit Feedback과 유저가 아이템을 클릭해보는 행위와 같은 Implicit Feedback 이 있습니다.

  • Explicit feedback : 평점, 별점 등 아이템에 대한 유저의 선호도를 직접적으로 알 수 있는 데이터

  • Implicit feedback : 클릭 여부, 시청 여부 등 아이템에 대한 유저의 선호도를 간접적으로 알 수 있는 데이터, 유저-아이템 간 상호작용이 있다면 1, 없으면 0 (0이라고 부정적인 의미는 아님). 현실에서는 implicit feedback 이 더 많고 많이 사용됨


추천 시스템 문제 정의

  • 랭킹(Ranking) : 유저에게 적합한 아이템 Top K 개를 추천

  • 예측(Prediction) : 유저가 아이템을 가질 선호도를 예측 (클릭 or 구매할 확률 등)


추천 시스템 평가 지표

Offline Test

데이터를 train, validation, test 로 나누어 일반적으로 모델의 성능을 측정하는 방법

성능 지표

  • Precision@K : 추천한 K개 아이템 중 유저가 실제로 관심있는 아이템의 비율

  • Recall@K : 유저가 관심있는 전체 아이템 중 추천한 아이템의 비율

  • Mean Average Precision(MAP)@K : 모든 유저에 대한 Average Precision(AP) 값의 평균, 성능 평가에 순서 개념 도입

$$ MAP@K = \frac{1}{|U|} \sum_{u=1}^{|U|} (AP@K)_{u}$$

( Average Precision(AP)@K : Precision@1 부터 Precision@K 까지의 평균값 )

$$ AP@K = \frac{1}{m}\sum_{i=1}^K Precision@i $$

  • Normalized Discounted Cumulative Gain(NDCG)@K : 검색(Information REtrieval)에서 등장한 지표. Top K 리스트를 만들고 유저가 선호하는 아이템을 비교, MAP와 달리 연관성을 binary 값이 아닌 수치로도 사용 가능

상세 설명 링크


Online Test

  • Online A/B Test : Offline Test 를 통해 검증된 가설이나 모델을 이용해 실제 추천된 결과를 서빙. traffic 을 나누어 대조군(A)과 실험군(B)의 성능을 평가. (대부분 현업에서는 모델 성능보다는 매출, CTR 등의 지표를 사용)