추천시스템이란?

ReadyMadeLife·2022년 3월 7일
0

사용자들은 Search를 통해 자신에게 필요한 정보를 찾는다.

Search하는 과정은 Query를 걸어 자신이 필요한 정보를 찾는 것이고 이것을 Pull이라고 한다.

반대로 Recommend는 사용자들에게 필요한 정보를 반대로 보여주는 것이고 이것을 Push라고 한다.

추천시스템이 왜 중요해졌을까?

과거에는 상품, 컨텐츠가 제한적이여서 사람들이 다들 똑같은 상품, 컨텐츠를 소비했다.

하지만 지금은 웹, 모바일 환경 발달과 제조 혁신을 통해 상품, 컨텐츠가 풍요로워졌다.

그런데 지금도 인기있는 소수의 아이템이 많이 소비되고, 대다수의 아이템이 적게 소비된다.

아래 그래프를 보면 대다수의 아이템이 긴 꼬리처럼 보이는데,

이것을 "Long Tail Phenomenon"이라고 부른다.

그리고 상품, 컨텐츠가 넘쳐나면서 사용자가 원하는 것을 찾는데 오래 걸리기도 한다.

그래서 이것을 해결하기 위해서 추천시스템이 중요해지게 된 이유이며,

Long tail에 있는 아이템을 추천해주는게 추천 시스템이 나아가야할 방향이다.

사용자들은 Long tail 아이템 추천이 잘 될수록 개인화가 잘 되어있다고 느끼고 사용자 만족감도 상승한다.

추천시스템에서 사용되는 정보

  1. 유저 관련 정보

    • 유저 프로파일링 : 추천 대상 유저에 관련된 정보, 유저 프로파일링은 추천시스템 뿐만 아니라 서비스 다양한 영역에서 사용됨
    • 식별자 : 유저 프로파일링을 통해 가장 먼저 생성되는 정보로 유저 ID, 디바이스 ID, 브라우저 쿠키가 있음
    • 데모그래픽 정보 : 성별, 연령, 지역, 관심사
      → 개인정보 관련 법들이 등장하고 수집이 까다로워져 수집하기 어려워졌다. 따라서 추정을 통해 생성하기도 함
    • 유저 행동 정보 : 페이지 방문 기록, 아이템 평가, 구매 등의 피드백 기록
  2. 아이템 관련 정보

    • 추천 아이템의 종류에 따라서 필요한 데이터가 달라진다 (포탈, 광고/커머스, 미디어) 이것을 "Meta Data"라고 부른다.
    • 아이템 프로파일링 : 아이템 ID, 아이템 고유 정보 (영화 장르, 브랜드, 아티스트 etc.)
  3. 유저-아이템 상호 작용 정보

    • 유저와 아이템 상호작용 데이터
      아이템과 상호작용할 때 로그로 남음
      추천시스템을 학습하는데 데이터의 feedback이 됨
      - Explicit feedback : 사용자에게 만족도를 직접 물어본 경우 (별점, 리뷰 etc.)
      - Implicit feedback : 아이템를 클릭하거나 구매한 경우 → 압도적으로 데이터가 많음 → 요걸 잘 모델링해야 함

추천시스템의 목적

특정 유저에게 적합한 아이템을 추천 or 특정 아이템에 적합한 유저를 추천
→ 유저 - 아이템 상호 작용을 평가할 Score 값 필요
→ 추천을 위한 Score를 구하자

그럼 우선 문제 정의를 해보자면,

추천 문제는 랭킹 또는 예측으로 볼 수 있다.

  1. 랭킹 : 유저에게 적합한 아이템 Top K개를 추천하는 문제
    랭킹 문제는 Top K를 선정하기 위한 기준 or Score 필요하지만,
    유저가 아이템에 가지는 정확한 선호도는 구할 필요 없음
    ✅ 평가 지표 : Precision@K, Recall@K, MAP@K, nDCG@K

  2. 예측 : 유저가 아이템에 대한 선호도를 예측 (평점, 클릭/구매 확률)
    - Explicit Feedback : 평점값 예측
    - Implicit Feedback : 구매할 확률 예측
    ✅ 평가 지표 : MAE, RMSE, AUC

profile
레디메이드인생

0개의 댓글