Recommendation System

1 minute read

추천 시스템이란 유저에게 입맞에 맞도록 개인화된 상품, 서비스 추천을 해주는 시스템이다. 실로 다양한 분야에서 사용되고 있다. E-commerce에서 상품 추천은 물론이고 광고 쪽에서 사용자를 타겟팅할 때나 유튜브에서 동영상 추천할 때 등 많은 곳에서 사용되고 있다.

추천 시스템은 크게 두 가지 방법으로 나뉘는 데 하나는 collaborative filtering 방법과 다른 하나는 content-based 방법이다.

Content-based System

말 그대로 컨텐츠를 기반으로 추천해주는 시스템이다. 사용자나 상품의 정보를 가지고 사용자에게 맞는 상품을 찾아주는 방법이다. 상품의 정보라면 영화라 했을 때, 장르, 출연 배우 등이 있고, 사용자의 정보는 연령대, 성별 등을 사용할 수 있다.

예를 들어 사용자가 한 액션 장르의 영화를 높게 별점 매겼을 때, 다음에 액션 장르에서 영화를 추천해줄 수 있다.

컨텐츠를 기반으로 추천할 시에는

  • 아이템간의 유사도 측정
  • 사용자의 프로파일 업데이트

등을 고려해야 한다. 시스템의 단점으로는 단순히 사용자의 이전 정보와 아이템의 정보만을 사용한다는 것이다. 그렇기에 많은 양의 데이터를 필요로 하지 않는다.

Collaborative Filtering System

비슷한 아이템을 좋아하는 사용자들은 비슷한 취향을 가질 거라는 전제로 추천하는 방법이다. 예를 들어 사용자 A와 B가 쿠팡에서 비슷한 상품을 구매한 이력이 있을 때, B가 구매했지만 A가 구매하지 않은 상품을 추천해줄 수 있다. 이러한 방법을 협업 필터링이라고 한다.

협업 필터링을 할 때는 다음을 고려한다.

  • 사용자 간의 유사도 측정
  • 아이템 간의 유사도 측정
  • 새로운 사용자나 아이템에 관한 Cold Start

사용자나 아이템에 대한 정보를 사용하지 않기에 사용자 이력에 대한 많은 정보를 필요로 한다.

Explicit Data

데이터 종류 또한 크게 2가지로 나눌 수 있다. 사용자가 아이템에 대해 직접적인 평가가 있는 자료를 explicit data라고 한다. 예를 들어, 온라인에서 구매한 제품에 대한 1~5점 평가를 매긴다던지 SNS에서 본 게시물에 대해 좋아요를 누르는 것과 같이 직접적인 피드백이 있는 자료들을 explicit data라고 한다.

Implicit Data

반대의 경우는 간접적으로 의견이 평가되는 데이터이다. 넷플릭스에서 영화를 시청한 이력, 구매 이력과 같은 데이터는 사용자가 직접적으로 평가하지 않은 데이터이다.

Reference

  • Gorakala, S. K., & Usuelli, M. (2015). Building a recommendation system with R. Packt Publishing Ltd.

Leave a comment