추천 알고리즘 : CBF

이번 포스트에서는 콘텐츠 기반 필터링(Contents based filtering, CBF)에 대해 살펴보겠습니다.

CBF는 아이템의 고유 정보를 기반으로 하는 추천으로 사용자의 상호 작용 정보가 없이 추천을 수행할 수 있습니다. 이는 추천에서 상당히 중요한 부분인데요. 이전에 다룬 CF의 경우에는 새로운 아이템 혹은 유저가 인입될 때 평가 정보가 부족하여 추천을 하기 어려운 문제가 있습니다. 이 문제를 Cold start라고 부른는데 cold start는 추천에 있어 상당히 중요한 부분이며, 현재까지도 많이 고민되는 문제입니다. CBF의 경우 아이템 정보를 통해 추천을 하기 때문에 이를 해소할 수 있다는 큰 장점이 있습니다.

CBF를 통한 추천의 방법은 매우 다양합니다. 대표적인 방법 몇가지를 살펴보겠습니다.

  • 유사 속성 기반 추천 : 가장 원초적인 방법으로 단순히 아이템의 단일 속성 정보로 추천해주는 방법입니다. 매우 간단하고 많이 사용되는 추천이지만 콘텐츠 간의 유사도에 기반하는 것이 아닌 룰 기반의 추천이라고 볼 수 있습니다.
    • ex) 영화 도메인 : 동일 장르/감독/배우 기반 추천
    • ex) 상품 도메인 : 동일 카테고리, 가격 기반 추천
    • ex) 음악 도메인 : 동일 장르/가수 기반 추천
    • ex) 교육 도메인 : 동일 챕터 기반 추천
  • 유사 콘텐츠 추천 : 콘텐츠 데이터를 통해 유사 콘텐츠를 추천하는 방법으로 속성 기반의 CBF 보다 좀 더 세밀한 추천이 가능하며 콘텐츠 간 유사도에 기반하여 추천합니다.
    • ex) TF-IDF 기반 추천 : 영화 줄거리를 적용, 영화 리뷰 적용, 뉴스 적용 등
    • ex) multi 속성 기반의 콘텐츠 추천 : 다양한 콘텐츠 속성 값을 deep learning/machine learning에 적용하여 추천

위 방법 외에도 아이템의 고유 정보만을 가지고 추천하는 방법을 모두 CBF라 부릅니다. 특히 CBF를 적용할 때는 domain knowledge가 상당히 중요한데 음악 추천의 경우 파형 분석, 멜로디 추출 등 해당 도메인의 배경 지식과 관련된 정보들이 유용하게 사용됩니다.

CBF의 장점은 위에도 언급한대로 cold start 문제를 해결할 수 있다는 점인 반면, CBF의 단점은 아이템 정보를 누군가 채워야 한다는 것입니다. 예를 들어, 영화의 줄거리, 장르, 감독 정보를 얻으려면 태거들이 직접 넣어주거나 외부에서 구매하여 구비해야 합니다. 아이템의 고유 정보는 많고 세분화될수록 개인화되고 정교한 추천이 가능하므로 이런 정보들을 채워넣는 과정이 중요시되고 있습니다. 최근에 몇몇의 기업은 태그를 작업하는 태거들을 보유하고 있을 정도입니다. (ex. 넷플릭스)

CF와 CBF를 그림으로 정리했습니다. CF의 경우에는 사용자의 이력을 기반으로 취향을 공유한다는 컨셉을 가지고 추천을 해주는 알고리즘이고, 이번에 살펴본 CBF의 경우는 다른 사람의 이력이 없어도 콘텐츠 간의 유사도를 통해 추천해줄 수 있습니다.


고려할 포인트

  • 추천 도메인, 추천 대상에 따라 알고리즘의 정확도는 크게 달라질 수 있습니다. A라는 사람이 특정 배우의 영화를 매우 선호할 경우에는 장르 기반보다는 배우 기반의 추천이 적합합니다. 또한, 음악의 경우에는 장르 영향을 많이 받기 때문에 이를 고려하여 추천 알고리즘을 적용해야 합니다.

  • CF와 CBF는 적용 목적, 도메인에 따라 최적 알고리즘이 결정됩니다. 또한 일반적인 추천 시스템은 CF1+CF2+CF3+CBF1+CBF2 와 같이 앙상블 형태로 구축되어 있습니다.

이번 포스트에서는 CBF에 대해 간략하게 살펴봤는데요. 이후 포스트에서 영화 줄거리에 TF-IDF를 적용한 CBF 추천을 다루도록 하겠습니다.

☝ Reference

Leave a comment