추천 시스템이란

yst3147·2022년 3월 20일
0

공부 내용

  • 개요
  • 사용 데이터
  • 문제 정의
  • 적용 사례

1. 추천 시스템이란

1.1 개요

Search vs Recommendation

  • Search
    • 의도를 가지고 상품을 찾는 행위
      -> 사용자의 의도가 담긴 query가 사용됨
    • 검색을 통해 아이템을 소비하는 방식을 pull 방식이라고 함
      -> 사용자가 의도를 가지고 아이템을 검색해서 당겨 옴
  • Recommendation :
    • Search와 반대인 push 방식
      -> 사용자가 의도를 가진 키워드를 제공하지 않아도 상품을 노출
    • 사용자의 흥미나 의도를 고려해서 취향에 맞는 아이템 추천

추천 시스템의 필요성

  • 과거에는 상품, 컨텐츠가 제한적
    -> 유저가 거의 모든 아이템을 다 알고 있고 소비 가능

  • 웹/모바일 환경의 등장으로 다양한 상품, 컨텐츠 등장

    • 현재는 상품이나 컨텐츠가 너무 많아짐
    • Few Popular Items -> Long Tail Phenomenon
      • 몇 개의 인기있는 아이템이 아닌 많은 아이템이 Long Tail 형태로 분포
      • 몇 개의 인기있는 아이템이 많이 소비되고
        그 외 다수의 아이템은 적게 소비되는 문제
      • 아이템이 많을 수록 꼬리는 길어짐
  • 유저가 원하는 정보를 찾는데 시간이 오래 걸림

    • Search도 유저가 원하는 정보를 효율적으로 찾기 위해 등장
    • 유저가 의도가 없어도 서비스 이용이나 상품 소비를 원할 수 있음
      -> 그 때 추천이 유용
    • 유저가 원하는 것을 어떤 키워드를 활용해서 찾아야 할지 모를 수 있음
      -> 추천 시스템이 유저가 원하는 것을 더 잘 파악할 수 있음

    Long Tail Recommendation

    인기있는 소수의 아이템을 추천해 주는 데서 시작해서 개인화의 영역으로 발전
    -> 몇 개의 소수의 아이템이 많이 소비되는 면적(좌측 면적)보다
    다수의 아이템이 적게 소비되는 면적(우측 면적)이 더 커짐

    추천 사례

  • 유튜브 동영상 추천

    • 조회수가 급상승한 영상이 등장한 경우
      해당 영상과 관련이 있거나 해당 영상이 업로드 되어있는 채널 영상 추천
      -> 추천된 영상이 조회수가 적어도 상관없다(Long tail 부분 추천)
    • 사용자가 보고 있는 영상이나 봤던 영상의 패턴 참고
      -> 조회수는 적지만 사용자가 좋아할 영상 추천
  • SNS 친구 추천

    • 수십억 명의 유저 중 인기가 많은 연예인과 같은 유저들이 아닌
      내가 알만한 사람들이나 가까운 사람들을 추천

    1.2 사용 데이터

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

  1. user 관련 정보(왼쪽)
    -> 성별, 나이 등

  2. item 관련 정보(오른쪽)
    -> 출신 년도, category

  3. user-item interaction 정보(가운데)
    -> user의 item 소비 여부, 평점 등

    user 관련 정보

    유저 프로파일링을 통해 추천을 위해 유저에 관련된 정보 생성
    -> 추천 시스템이 아닌 서비스의 다양한 분야에서 응용되어 활용

  • 식별자(identifier)

    • 유저 ID
    • 디바이스 ID -> 모바일 디바이스 번호
    • 브라우저 쿠키 -> 로그인하지 않고 사용할 경우 유저 ID 대신 활용
  • 데모그래픽 정보

    • 성별, 연령, 지역, 관심사 등
    • 보통 유저로부터 직접 수집함
    • 개인정보 보호로 인해 수집 난이도 증가
      -> 수집이 아닌 추정을 통해 생성하여 추천에 활용하기도 함
  • 유저 행동 정보

    • 아이템 소비 기록, 페이지 방문 기록, 아이템 평가, 구매 등의 피드백 기록
    • 다양한 딥러닝 모델의 등장으로 유저 행동 정보를 활용해서 정교한 추천 가능해짐

    item 관련 정보

  • 아이템 ID

    • 가장 중요한 관련 정보
    • 추천을 제공하는 서비스에서 발급
    • ID 없이는 추천이 불가능함
  • 아이템의 고유 정보(메타데이터)

    • 추천 아이템의 종류에 따라서 사용할 수 있는 정보 달라짐

보통 추천시스템에서는 공통적으로 아이템 ID를 사용하고
그 외 정보들은 서비스의 종류에 따라 크게 달라지게 됨

Content base recommendation : 아이템의 고유 정보만 활용해서 추천

user-item interaction 정보

  • user가 item을 소비한 정보
    • user가 오프라인 혹은 온라인에서 아이템을 소비하면 로그가 남음
    • 추천 시스템 학습에서 Feedback이 됨
  • Explicit Feedback(명시적 피드백)
    • user에게 item 만족도를 직접 물어본 경우
      -> ex) 좋아요, 싫어요, rating
  • Implicit Feedback(암시적 피드백)
    • user가 item을 직접적으로 평가하지 않음
    • user가 item을 클릭하거나 구매한 경우
      -> ex) user가 item을 구매하거나 클릭하면 True
    • user가 동영상을 재생한 시간

Implicit Feedback 데이터가 압도적으로 많음
-> Implicit Feedback 데이터를 잘 모델링 해야 함

1.3 문제 정의

추천 시스템의 목적

  1. 특정 유저에게 적합한 아이템을 추천하거나 특정 아이템에게 적합한 유저 추천
  2. user-item interaction을 평가할 score 값이 필요
  3. score가 곧 추천 모델을 통해 생성되는 output

추천 문제 : 랭킹 또는 예측

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

    • Top K개를 선정하기 위한 기준 혹은 스코어가 필요
      -> 스코어를 통해 추천이 얼마나 잘 이루어지는지 평가
    • 유저(x)가 아이템(y)에 가지는 정확한 선호도일 필요는 없음
      -> rating(1~5)과 ranking(1~100)에 사용되는 score의 scale이 달라도 됨
    • metric ex : Precision@K, Recall@K, MAP@K, nDCG@K
  • 예측(Prediction) : 유저가 아이템에 가질 선호도를 정확하게 예측(평점 혹은 클릭/구매 확률)

    • Explicit Feedback : 아이템에 대해 내릴 평점 값 예측
    • Implicit Feedback : 아이템을 조회하거나 구매할 확률 값을 예측
    • user-item interaction 행렬의 빈칸을 채우는 문제
    • metric ex : MAE, RMSE, AUC

1.4 적용 사례

  • 넷플릭스
    • 다양한 추천 리스트를 한번에 제공(현재 인기, 개인화 추천)
  • 쿠팡
    • 내가 좋아할 top k 상품 추천
    • 특정 상품과 비슷한 상품 추천
  • Google Ads
    • 광고 추천을 통해 수익 창출
    • 사용자가 좋아할만한 광고를 추천
      -> 클릭 확률 향상 및 구매로 이어지고 광고 매출 상승

0개의 댓글