본문 바로가기

추천 시스템/Content-based Filtering

[CB Filtering] 1. 개요

Content-based Filtering vs Collaborative Filtering

Content-based Filtering - 유저가 과거에 좋아했던 것과 컨텐츠가 유사한 아이템 추천
Collaborative Filtering - Rating을 기반으로 유저와 비슷한 성향을 지닌 집단을 찾고, 그들이 좋아하는 상품 추천

CB 추천 시스템의 구조

핵심 부품 세 가지

  1. Content Analyzer
  • 컨텐츠를 분석
  • 다음 부품인 Profile Learner, Filtering Component에서 사용할 수 있도록 unstructured data를 structured data로 변환하는 작업 수행
  • ex) unstructured data인 raw text를 structured data인 keyword vector로 변환
  • Information Retrieval 기법 적용
  1. Profile Learner
  • 과거 유저의 행동을 기반으로 User Profile 생성
  • User Profile은 유저의 선호를 반영하는 벡터라고 생각하면 됨
  • Machine Learning 기법 적용
  1. Filtering Component
  • Content Analyzer, Profile Learner의 결과를 취합해 추천 여부 결정

CB 추천 시스템의 작동 순서

  1. Content Analyzer는 Item Source로부터 아이템에 대한 정보를 받아온다. Item Source의 unstructured data를 structured data로 변환한다. 분석을 마치면 Represented Items에 저장한다.

    User Profile을 생성하기 위해서는 Represented Items 뿐만 아니라 아이템에 대한 반응에 대한 정보도 있어야 한다. 이 정보들은 Feedback에 저장되어 있다.(어떤 정보들이 Feedback으로 역할을 하는지는 추후에)

  2. 유저 $u_a$에 대한 Profile을 생성하기 위해서는 $u_a$의 트레이닝 셋인 $TR_a$를 정의해야 한다. $TR_a$는 순서쌍 $\left\langle I_k, r_k \right\rangle$의 집합이다. 여기서 $r_k$는 structured item인 $I_k$에 대한 $u_a$의 평가다. Profile Learner는 지도 학습 방법을 적용하여 User Profile을 예측한다. 예측이 완료되면 Profile Repository에 적용된다.

  3. Filtering Component는 structured item과 User Profile을 고려하여 추천 여부를 결정한다.

  4. 추천 시스템은 유저로부터 Feedback을 받게 된다. 피드백은 트레이닝 셋에 추가되며, User Profile을 업데이트한다.

Feedback의 종류

  • 명시적 피드백(Explicit Feedback)
    유저가 어떤 아이템을 좋아하는지 싫어하는지를 직접 알려준다.
    • like / dislike
    • ratings
    • text comments
  • 암시적 피드백(Implicit Feedback)
    유저가 어떤 아이템을 좋아하는지 싫어하는지를 직접 알려주지는 않지만, 그들의 행동 패턴을 분석해 아이템에 대한 선호 여부를 추측
    • 장바구니에 저장 / 삭제
    • 인쇄
    • 북마크

CB Filtering의 장점

  • User Independence
    CB Filtering은 한 유저의 과거 행동을 분석해 그 유저만을 위한 Profile을 만든다. CF Filtering이 다른 유저의 행동까지 고려해야 한다는 점과는 대조적이다.
  • Transparency
    추천 시스템이 어떻게 추천 결과를 냈는지에 대한 설명이 가능하다. 추천된 아이템의 특성 벡터를 보면 해당 아이템과 유저가 과거에 좋아했던 아이템이 얼마나 유사한지 볼 수 있다.
  • New Item
    새로 등록된 아이템에 대해서도 추천이 가능하다.

CB Filtering의 단점

  • Limited Content Analysis
    CB Filtering은 아이템 추천에 사용할 특성(Features)의 수가 제한적이라는 한계가 있다.
  • Over-Specialization
    CB Filtering은 유저가 좋아했던 아이템과 비슷한 아이템만 추천하기 때문에 유저가 예상치 못한 아이템을 추천해줄 수 없다. 이 문제를 Serendipity Problem이라고 한다.
  • New User
    CB Filtering이 User Profile을 완성하기까지 충분히 많은 rating이 있어야 한다. 새로 가입한 유저의 경우 신뢰 할 만한 추천을 받기 힘듦.