1. 개요

추천 시스템의 정의

  • 정보 필터링(IF) 기술의 일종으로 특정 사용자가 관심을 가질 만한 정보를 추천하는 것
  • 사용자의 행동 데이터와 아이템 데이터를 분석하여 가장 적절한 아이템을 추천하는 시스템

추천시스템이 필요한 이유

  1. 더 많은 아이템을 판매
  2. 더 다양한 아이템을 판매
  3. 소비자 만족도 증가
  4. 충성도 높은 고객 증가
  5. 고객의 니즈 파악
  6. 비용 절감

Pull and Push

search(의도를 갖고 상품을 찾는 행위)

  • 사용자의 의도가 담긴 query라는 keyword가 사용됨 (ex 고양이, 노트북)

  • 검색을통해 아이템을 소비하는 방식은 pull 방식(아이템을 당겨오듯이)

recommendation

  • 추천은 push 방식

  • 상품을 유저에게 노출 / 사용자의 흥미나 의도를 고려하여 추천

검색 서비스 추천 서비스
Pull Information Push Information
사용자가 요구한 후에 작동 사용자가 요구하기 전에 작동
사용자가 스스로 원하는 바를 알고 있음 사용자가 스스로 원하는 바를 정확히 알지 못함

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

  • 과거에는 유저가 접할 수 있는 상품, 컨텐츠가 제한적
    • TV 채널, 영화관, 백화점, 신문 등
  • 웹/모바일 환경은 다양한 상품, 컨텐츠를 등장하게 함
    • 과거에는 정보가 부족 but 현재는 정보가 흘러넘침
    • Few Popular Items & Long Tail Phenomenon
    • 인기있는 소수의 아이템만 많이 소비되고 다수의 아이템은 적게 소비되는 형태
  • 유저가 정보를 찾는데 시간이 오래 걸리게 됨
    • 유저가 원하는 것을 어떤 키워드로 찾아야 하는지 모를 수 있다
    • 좋은 추천엔진은 유저자신보다 더 잘 추천해줄 수 있음

Long-Tail Recommendation : 추천시스템이 풀고있는 문제의 본질가운데 하나

long-tail

추천시스템 사례

  • 유튜브 동영상 추천
    • 조회수가 급상승한 영상이 등장할 경우
    • 해당 영상과 관련이 있거나 해당 영상이 업로드 되어있는 채널의 영상을 추천(조회수가 적은 경우에도)
  • SNS 친구 추천(인스타그램)
    • 수천만 혹은 수십억 명의 유저들 가운데 내가 알만한 사람들을 추천
    • 유명한 연예인이나 셀럽대신 나의 친구의 친구 등을 추천

2. 사용 데이터

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

  1. 유저 관련 정보

    • 유저 프로파일

      • 유저와 관련된 정보를 생성하는 작업
      • 추천 대상 유저에 관련된 정보를 구축하여, 개별 유저 혹은 유저 그룹별로 추천함
    • 식별자(Identifier)

      • 서비스에서 발급하는 USER ID
      • DEVICE ID(광고 추천의 경우)
      • 브라우저 쿠키(로그인 하지 않고 이용하는 경우)
    • 데모그래픽 정보

      • 성별, 연령, 지역, 관심사 등
      • 개인정보법이 강화됨에 따라 추정을 통해 생성하기도 함
    • 유저 행동 정보

      • 쿠키, 페이지 방문 기록, 클릭 패턴, 아이템 평가, 구매 등의 피드백 기록
      • 유저의 과거 행동 정보
      • 사용자의 로그 분석에 이용(행동 패턴 등)
  2. 아이템 관련 정보

    • 추천 아이템의 종류
      • 포털: 뉴스, 블로그, 웹툰 등 컨텐츠 추천
      • 광고/커머스: 광고 소재, 상품 추천
      • 미디어: 영화, 음악, 동영상 추천
    • 아이템 프로파일링
      • 아이템 ID
      • 아이템의 고유 정보(아이템의 META DATA)
        • 영화: 영화 장르, 출연 배우 및 감독, 개봉 년도 등
        • 상품: 상품 카테고리, 브랜드, 출시일, 상품 이미지
        • 음악: 아티스트, 작곡가, 장르, 음악 신호 그 자체
    • 아이템 관련 정보는 아이템 ID외에는 추천 아이템별로 크게 다르기 때문에 추천시스템에서는 공통적으로 아이템ID를 사용
  3. 유저 - 아이템 상호작용 정보

    • 유저와 아이템의 상호작용 데이터
      • 유저가 오프라인 혹은 온라인에서 아이템과 상호작용 할 때 로그로 남음
      • 추천 시스템을 학습하는 데이터의 FEEDBACK이 됨
    • Explicit Feedback
      • 유저에게 아이템에 대한 만족도를 직접 물어본 경우
      • 영화에 대한 평점, 어떤 상품에 대한 좋아요, 피드백 등
    • Implicit Feedback
      • 유저가 아이템을 클릭하거나 구매한 경우
      • 어떤 상품을 보는 시간, 클릭 패턴, 검색 로그 등
    • Implicit Feedback이 훨씬 많다!!

3. 문제 정의

추천 시스템의 목적

특정 유저에게 적합한 아이템을 추천한다. (특정 아이템에게 적합한 유저를 추천한다)

  • 유저 - 아이템 상호작용을 평가할 score 값이 필요함

  • 추천을 위한 score는 어떻게 구해지고 사용될까?

랭킹(Ranking): 유저에게 적합한 아이템 Top-K개를 추천하는 문제

  • Top K개를 선정하기 위한 기준 혹은 스코어가 필요하지만. 유저(X)가 아이템(Y)에 가지는 정확한 선호도를 구할 필요는 없다

  • 평가지표: Precision@K, Recall@K, MAP@K, nDCG@K

예측(Prediction): 유저가 아이템을 가질 선호도를 정확하게 예측(평점 or 클릭/구매 확률)

  • Expliict Feedback: 평점 값을 예측

  • Implicit Feedback: 상품을 조회하거나 구매할 확률 값을 예측

  • 유저 - 아이템 행렬을 채우는 문제
    • 관측값(Observed value)은 모델 학습에 사용
    • 결측값(Missing value)는 모델 평가에 사용
  • 평가지표: MAE, RMSE, AUC

4. 추천 알고리즘

추천 시스템

  • 관련있는 아이템을 유저에게 추천해주는 서비스 전체

추천 알고리즘

아이템 pool에서 후보군을 만들고(Generate Candidates), 후보군을 바탕으로 Intention 또는 Filtering을 수행한 후에 랭킹 또는 예측을 통해 해당 후보군이 적절한지 판단하는 과정

  • Contents-based Recommender System
    • 사용자가 과거에 좋아했던 아이템을 파악하고 그 아이템과 비슷한 아이템을 추천
  • Collaborative Filtering
    • 비슷한 성향을 갖는 다른 유저가 좋아한 아이템을 현재 유저에게 추천
    • 간단하면서 높은 정확도를 나타냄
  • Hybrid Recommender System
    • Content-based 와 Collbarative Filtering의 장단점을 상호 보완
    • Collaborative Filtering의 경우 새로운 아이템에 대한 추천 부족
    • Content-based 기법을 같이 사용하여 cold-start 문제를 해결 가능
  • Context-based Recommendation
    • Context-aware Reommendation System
    • Location-based Reommendation System
    • Real-time or Time-Sensitive Reommendation System
  • Community-based Recommendation
    • 사용자의 친구 또는 사용자가 속한 커뮤니티의 선호도를 바탕으로 추천
    • SNS 등의 뉴스피드 또는 SNS 네트워크 데이터 등을 활용
  • Knowledge-based Recommendation
    • 특정 도메인 지식을 바탕으로 아이템의 features를 활용한 추천
    • Case-based Recommendation
      • 사용자의 니즈와 해결책 중 가장 적합한 것을 골라서 추천
      • 특정 상황에 맞게 추천
    • Constraint-based Recommendation
      • 사용자에게 추천할 때, 정해진 규칙을 바탕으로 추천

5. 추천 시스템의 한계

  1. Scalability
    • 실제 서비스 상황은 다양한 종류의 데이터가 존재
    • 학습 또는 분석에 사용한 데이터와는 전혀 다른 실전 데이터
  2. Proactive Recommender System
    • 특별한 요청이 없어도 사전에 먼저 제공하는 추천서비스(Push Information)
    • 모바일, 인터넷 등 어디서든 유저에게 끊임없이 좋은 정보를 추천할 수 있는 서비스를 제공 가능한지
  3. Cold-Start Problem
    • 추천서비스를 위한 데이터 부족
    • 기본적인 성능을 보장하는 협업필터링 모델 구축이 쉽지 않은 것이 일반적
    • 컨텐츠 기반 또는 지식 기반의 방법 역시 서비스로 적용하기 어려움
  4. Privacy preseving Recommender System
    • 개인 정보(나이, 거주지) 등은 직접적으로 사용하기에 어려움이 있음
  5. Mobile devices and Usage Contexts
    • Personal Computing, Location-based Service(LBS)
    • 개별 상황 또는 환경 등에 따라 다른 컨텍스트를 사용
  6. Long-term and Short-term user preference
    • 개인 또는 그룹의 단기 / 장기 관심사항
    • 추천받고 싶은 아이템이 현재 또는 과거 중 어느 시기와 관련 있는지 파악하기 어려움
  7. Generic User models and Cross Domain Recommender System
    • 하나의 모델을 여러가지 데이터에 적용하기 어려움
    • 비슷한 도메인의 데이터를 활용해도 동일한 성능의 추천시스템을 기대하기 어려움
  8. Starvation & Diversity
    • Starvation: 필요한 컴퓨터 자원을 끊임없이 가져오지 못하는 상황
    • 유저와 아이템이 너무나도 다양함 / 모든 상황을 커버하기는 힘듦

추천 시스템에는 정답이 없다..!!

6. 좋은 추천시스템을 만들기 위해 고려해야할 항목

  1. 성능 좋고, 빠르고, 설명 가능한 추천 알고리즘
    • 적절한 아이템을 빠르게 찾고, 해당 아이템을 추천하는 이유를 설명 가능
  2. 추천시스템에 필요한 적절한 데이터(User or Item Profiling)
    • 추천 알고리즘을 만들기 위한 좋은 데이터 확보
    • 적절한 추천을 위한 후보군 설정
  3. 추천시스템의 목적
    • 추천시스템을 통해 비즈니스 역량 확대, 매출 증대, CTR 증가 등 다양한 목적
  4. 플랫폼 내에서 추천시스템의 역할
    • 추천시스템이 주요 기능이고 필수인지 또는 옵션인지 정의
  5. 플랫폼 사용자
    • 사용자에게 어떤 정보를 받는지, 사용자는 어떤 환경에서, 어떻게 서비스를 이용하는지 확인
  6. 좋은 아이템을 추천하는 것만이 꼭 좋은 해결책은 아니다
    • 사용자는 추천된 리스트에서조차 결정하기 어려울 수 있음
    • 사용자 스스로 정보 또는 지식이 부족해서 추천된 아이템에서 선택이 불가능 할 수 있음
  7. 사용자와 플랫폼 간의 소통이 필요
    • 사용자 스스로 추천된 아이템 중에서 선택할 수 있도록 소통해야함
    • Interactive 한 process를 통해 사용자가 플랫폼에 더 오래 머물 수 있도록 유도해야함
  8. 정보 검색(Information Retrieval)과 정보 추천(Recommender System) 차이의 극대화
    • 검색은 일반적인 아이템과 정보 제공
    • 추천은 개인화된(personalized) 아이템과 흥미롭고 유용한 정보를 제공해야함

7. 필터버블(Filter Bubble)

  • 사용자가 전체 정보를 볼 기회를 박탈당함
  • 추천시스템이 고도화될 수록 사용자 취향에 가까운 정보만 제공받고 나머지 정보는 알 수 없는 상황이 발생
  • 정보의 비대칭성, 편향성이 생기게됨
  • 사용자간의 양극화 현상 등 사회적 문제로 이어질 수도 있음

댓글남기기