추천 시스템 - (2)

Suho Cho·2021년 4월 19일
0

Recommendation System

목록 보기
2/2
post-thumbnail

이번 포스팅부터 본격적으로 어떤 추천 알고리즘이 있는지 살펴보려 한다.

Contents-based Recommendation

가장 쉽게 떠오르는 방법은
내가 좋아하는 아이템과 비슷한 아이템은 무엇일까?
추천에서는 이를 Contents-based recommendation이라고 부른다.

내가 좋아하는 아이템과 비슷한 아이템은 무엇일까?
내가 좋아하는 Item A가 있다. 그럼 Item A와 비슷한 아이템, Item B도 내가 좋아할 가능성이 있지 않을까? 어떻게 찾을까?

난 골든 리트리버를 좋아한다. 그럼 내가 좋아하는 골댕이와 비슷한 강아지 또는 아이템은 뭐가 있을까? 그렇게 찾는 아이템은 내가 좋아할까? (사실 이건 알 수 없다)

이 문제를 풀기 위해서는 비슷한 아이템 찾기를 이해해야 한다. 비슷한 아이템 찾기(Similiarity Search)에 대한 내용은 이 글에서 다뤘던 적이 있다.
비슷한 아이템을 찾는 내용은 추천 시스템이라고 다를게 없다. 추천 시스템에서 중요하게 다뤄야 할 내용은 Feature Engineering이다. 아이템을 이루는 많은 요소가 있는데, 이것 중에 결정적인 요소가 무엇일까를 알아내는 일이 중요하다. 이것은 도메인마다 굉장히 큰 차이가 있으니 예시로 이해해보자.

영화 추천

영화에는 감독, 배우, 장르, 러닝타임, 배경 등과 같은 많은 요소가 있다. 각 영화를 이런 요소의 집합(feature representation)으로써 표현할 수 있고, 가중치를 주어 계산할 수도 있겠지만 기본적으로 feature의 유사도를 계산함으로써 영화 A와 비슷한 영화 B를 알아낼 수 있다. 예를 들어 내가 타이타닉을 좋아하는데, 그런 나에게 추천해줄 수 있는 영화는 같은 감독의 작품이나, 잘생긴 디카프리오가 나오는 작품이나, 재난 영화나 뭐 그런 것들이 있을 수 있다.

음식 추천

음식에는 음식 종류, 제조사, 용량, 맛 등의 요소들을 통해 feature를 만들고 그것들 간의 유사도를 계산할 수 있다.

장점

  • 다른 유저의 데이터를 고려할 필요가 없다.
  • 기존/신규 아이템 상관 없이 추천할 수 있다.
  • 추천에 대한 이유를 말할 수 있다.

단점

  • 원하는 feature의 획득을 보장할 수 없다.
  • 새로운 사용자에게는 좋은 추천이 어렵다 (아이템에 대한 평가가 없어서).
  • 선호하는 특성을 가진 아이템을 계속해서 추천할 수 있다.
profile
당신을 한 줄로 소개해보세요

0개의 댓글