Data/ML

추천 시스템(Recommender System)- 2. Content-based Filtering(콘텐츠 기반 필터링)

뚱요 2022. 2. 5. 12:00
반응형

 

2. Content-based Filtering(콘텐츠 기반 필터링)

  • 유저가 좋아하는 아이템의 특성을 기반으로 유사한 아이템을 추천해준다. 예를 들여 영화에서도 유사한 장르나 줄거리를 추천해 줄 수 있다.
  • 특성: 이전의 기록(구매 기록, 검색 기록 등), 명시적인 피드백(좋아요, 싫어요, 위시리스트)

(1) 유사도

  • 구글 플레이스토어를 예시를 들어보겠습니다. 
    특성행렬
     
    • 특성 행렬(feature matrix)에서 행은 아이템인 앱, 각 열은 특성을 나타낸다. 해당 앱의 특성은 카테고리, 앱 개발자 등의 특성이 있는데 여기에서는 앱의 카테고리로 정하였다.
    • 가정: 단순화 하기 위해서 해당 특성 행렬은 0과 0이 아닌 값 만 갖는 이진 값으로 이루어졌다. 0은 해당 특성에 속하지 않는 것이고 0이 아닌 값은 해당 특성에 속한다는 의미이다. 아이템뿐만 아니라 유저도 동일한 특성 공간에 표현해준다. 유저의 명시적인 피드백으로 유저가 선택한 카테고리가 될 수도 있고 비명시적으로 이전에 유저가 다운로드한 기록으로 볼 수 있다.
    • 모델이 한 유저에게 추천을 하기위해서는 유사도 척도(cosine, dot product, Euclidean... 등)를 선택해야 한다. 아이템 간의 특성을 기반으로 계산한 유사도를 기반으로 각 후보에게 점수를 준다.
    • 위의 예시를 간단한 내적으로 계산해 본다면 해당 유저에게는 교육 카테고리이면서 Science R Us , Healthcare 앱을 설치한 기록이 있어 해당 값들이 높은 값을 갖는다. 그중에서 교육 카테고리인 Science R Us가 가장 우선순위로 추천된다. 내적 값이 높을수록 더 많은 특성을 나누고 있기 때문에 유사도가 높아지게 된다.
      • 내적(dot product) : \(⟨x,y⟩=∑_{i=1}^{d}x_iy_i\)

(2) 장단점

장점

  • 사용자에 대한 정보가 없는 상황에서 적합하다. 추천시스템은 해당 유저에게만 적합하기 때문이다.
  • 유저의 특정 관심사를 포착 가능하고 다른 유저들이 관심이 없는 아이템이라도 추천된다.

단점

  • 아이템의 feature representation 은 어느 정도 직접 엔지니어링을 하기 때문에 도메인 지식이 필요하다. 그렇게 해야지 모델의 성능이 좋아진다.
  • 유저의 현재 관심을 기반으로 추천하기 때문에 유저의 관심 이상으로 추천이 힘들다. 아이템 간의 유사성을 기반하는 데에는 추천해주는 것은 계속 비슷한 아이템만 추천해주기 때문이다.
    • 위의 예로 계속 교육 카테고리에서 비슷한 추천만 나올 것이다.

 

출처

Google Developers

https://en.wikipedia.org/wiki/Recommender_system

https://en.wikipedia.org/wiki/Collaborative_filtering

반응형