2 분 소요

이준원 강사님

추천 시스템 개요

  • Search vs Recommendation

image-20221010222841359

pull : search 로 알아 내는 것 push : 추천으로 상품을 사용자에게 노출하는 것.

  • RecSys 필요성 웹, 모바일 환경으로 인한 정보의 풍요 -> Long Tail Phenomenon

정보를 찾는데 시간이 오래 걸림 (어떤 키워드로 검색하는지 모르는 사용자)

Long Tail 추천
처음엔 대중적인거 추천 -> 점차 개인화

image-20221010223850128

사용 데이터

유저 관련 정보

  • 유저 프로파일링
    대상 유저에 관련된 정보를 구축하여, 개별유저 혹은 그룹별 유저 별로 추천
  • Identifier(식별자) : 유저 Id, 디바이스 ID, 브라우저 쿠키
  • 데모그래픽 정보 : 성별, 연령, 지역, 관심사
  • 유저 행동 정보 : 페이지 방문 기록, 아이템 평가, 구매 등의 피드백 기록

아이템 관련 정보

  • 종류 => 아이템에 따라 달라지는 meta data
  • 아이템 프로파일링
    • 아이템 ID
    • 아이템 고유 정보

유저 - 아이템 상호작용

  • 유저 아이템 상호작용 데이터 Feedback 데이터 라고 함

  • Explicit Feedback 만족도를 직접 물어본 경우(평점, 좋아요)
  • Implicit Feedback 유저의 클릭, 구매 등등

데이터는 Implicit이 압도적으로 많다. 거의 이거 사용함.

문제 정의

특정 유저/ 아이템에게 적합한 아이템/유저 추천 => 유저 -아이템 상호 평가할 score필요 => 추천을 위한 score 정의

  • Ranking : 유저에게 적합한 아이템 top K개 추천 평가 지표 => Precision@K, Recall@K, MAP@K, nDCG@K

  • Prediction : 유저가 아이템을 가질 선호도를 정확하게 예측 (평점 or 클릭/구매 확률) 평가지표 => MAE, RMSE, AUC

추천시스템 평가 지표

  • 비즈니스 / 서비스 관점
    • 매출 , PV(page view) 증가
    • 유저 CTR(노출대비 클릭수) 상승
  • 품질 관점
    • Relevance : 관련 있는가
    • Diversity : 다양한가
    • Novelty : 새로운가
    • Serendipity: 참신한가

offline test

: 새로운 추천 모델을 검증하기 위해 가장 우선적으로 수행되는 단계

유저 데이터를 train/valid/test 로 나누어 모델 성능 평가

  • Precision / Recall @K
    • Precision@K : 추천한 K개 아이템 가운데 관심있는 아이템 비율
    • Recall@K : 관심있는 아이템 가운데 추천한 아이템 비율
  • Mean Average Precision (MAP)@K
    • AP@K (average precision) 유저 1명에 대해 Precision@1 부터 Precision@K 까지의 평균값 관련 아이템을 더 높은 순위에 추천할 수록 점수가 상승함

    image-20221010230730153

    • MAP@K AP@K를 전체 유저에 대해 평균

      image-20221010230746683

    • NDCG (normalized discounted cumulative gain) -> 가장 많이 사용되는 지표, 원래는 검색에서 등장함 Top K 리스트를 만들고 추천에 순서에 가중치를 두었음. 1에 가까울수록 좋음

    연관성을 수치로 사용할 수 있기 때문에

    얼마나 더 관련있는 아이템을 상위에 노출시키는지 알 수 있음

    • Cumulative Gain
      상위 K개 아이템에 대하여 관련도를 합친것 image-20221010233730699
    • Discounted Cumulative Gain (DCG) 순서에 따라 Cumulative Gain을 Discount 함 image-20221010233859487
      • Ideal DCG (IDCG)
        이상적인 order에서 구한 DCG

        image-20221014040436100

      • Normalized DCG image-20221014040443805

Online Test

Online A/B test

: Offline Test 에서 검증된 가설이나 모델을 이용해 실제 추천 결과를 서빙하는 단계

동시에 대조군 A 와 실험군 B를 평가

image-20221011003442016

인기도 기반 추천

말 그대로 가장 인기있는 아이템을 추천함

Score Formula

조회수가 가장 많은, 좋아요 가장 많은 아이템 추천 (최신성도 중요한 속성)

image-20221011010636302

문제점 : 1~2년이 지나도 Top rank에 보일 수 있음

Hacker News Formula

image-20221011010821323 시간이 지날 수록 age 증가 -> score 작아짐 gravity : score조정하기 위한 상수 (보통? 1.8 사용)

Reddit Formula

image-20221011010931255

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

첫번째 vote에 대해서 가장 높은 가치 부여, vote가 늘어날 수록 score의 증가 폭이 작아짐

2. Higly Rated

평균 평점이 가장 높은 아이템 추천

Score Formula

가장 높은 평점을 받은 아이템 추천

->신뢰할 수 있는 평점인가? 평가 개수가 충분한가?

image-20221011012635805

Steam Rating Formula

image-20221011012705013

rating은 평균값을 사용하되, 전체 review 개수에 따라 rating 보정 (리뷰 개수가 적을 때, 0.5보다 낮으면 조금 높게, vice versa)

review 개수가 아주 많을 경우, score는 평균 rating과 거의 유사해짐

Movie Rating (steam formula 활용한)

1~5 점 image-20221011013138387

마찬가지로

review개수가 적으면 중앙값으로 조금 보정,

review 개수가 많으면 거의 그대로 사용

카테고리:

업데이트:

댓글남기기