Recommender Systems

추천가 시스템은 사용자 선호도에 대한 데이터베이스를 사용하여 새로운 관심 주제 또는 사용자가 무엇을 더 좋아할지 결정하는 시스템이다. 이 시스템은 정보 여과(IF, Information Filtering)로 불리우는 기술의 한 분야로, 사용자 선호 정보(영화, 음악, 책, 뉴스, 웹 페이지 등)를 입력으로 사용한다. 이 시스템은 기업의 사용자 선호 조사 또는 앞으로 각광받을 제품 및 서비스에 대한 예측 등에 사용됨으로써 사용자의 현명한 의사 결정을 돕고 시스템 운영자에게는 큰 이익을 줄 수 있다.

이 시스템은 실제로 여러 기업에서 사용되고 있다. 많은 영화 및 도서, 음악 사이트에서 사용자들에게 정보를 제공하기 위해 사용되고 있다(Amaxon, Netflix, 싸이월드 등). 그리고 과학 논문 추천과 자전거 여행지 추천 등에도 쓰인다.

추천가 시스템은 두 가지 종류로 나뉜다. 다음의 두 가지 방법이 주요 연구 분야이다. 두 방법의 한계를 극복하고 보다 나은 추천을 하기 위해 두 가지 방법을 결합하는 방법도 연구되고 있다.

1. Content-Based Methods: 내용 기반 추천 기법

사용자가 과거에 사용했거나 평가한 아이템을 기반으로 새로운 아이템을 추천하는 방식이다. 예를 들어 영화 추천 서비스의 경우 사용자가 보았던 영화들 중에 높게 평가한 것들에 대해 다양한 측면(주연배우, 감독, 장르, 주제 등)에서 공통점을 찾아낸다. 이렇게 분석된 각 사용자의 영화 선호도에 기반하여 새로운 영화가 사용자가 좋아하는 영화에 얼마나 근접하는지 평가, 높은 점수를 받는 영화를 추천한다. 이와 같이 내용 기반 방식에서는 사용자의 과거 경험에서 선호도, 취향, 욕구 등의 사용자 정보를 어떻게 찾아내는가가 핵심 이슈다. 이를 위해 각 아이템의 내용을 분석하여 그것을 특징지을 수 있는 속성들을 찾아내는 과정이 필요하다. 그리고 나서 계산된 사용자의 과거 아이템들에 대한 속성들을 통합하여 사용자의 선호도에 대한 정보를 구축한다. 이것이 새로운 아이템에 대한 평가에 대한 기준으로 사용된다.

전통적으로 내용 기반 방식이 주로 사용된 텍스트 기반 어플리케이션들(문서, 웹페이지, 유즈넷 뉴스 등)을 예를 들어 보자. 텍스트의 성격은 핵심 키워드들로서 규정할 수 있다. 즉, 텍스트에서 몇 개의 키워드를 찾아내고 중요도에 따라 가중치를 부여하여 키워드 점수 벡터를 만든다(예: (2, 5, 1, 2)). 사용자의 모든 과거 텍스트에 대해 키워드 점수 벡터를 계산하고 이들을 평균하여 최종적으로 하나의 키워드 점수 벡터를 만들어 낸다. 이것이 사용자 선호도를 나타내는 기준으로서 새로운 텍스트의 점수 벡터와의 거리를 비교하는데 사용된다.

 기본적인 방법으로 구현이 간단하고 사용자의 명시적인 신호 정보를 직접적으로 반영할 수 있다는 장점이 있지만 아이템의 내용 기반 정보를 구하기 어려운 경우가 많고, 사용자의 명시적 프로필을 얻기 힘들며, 특히 사용자의 선호 취향을 특정 단어로 표현하기가 매우 힘이 든다는 단점 또한 존재한다.

2. Collaborative Filtering Methods: 사회적 추천 기법

사용자와 취향이 비슷한 다른 사용자의 과거 아이템을 추천하는 방식이다. 예를 들어 영화 추천 서비스의 경우 사용자와 취향이 비슷한 다른 사용자들이 좋게 평가한 영화를 추천한다. 따라서 이 방식에서는 취향이 비슷한 사용자들을 어떻게 찾아내는가 하는 것이 핵심이다. 사용자의 자세한 프로필이나 아이템에 대한 정보가 필요 없고, 기계에 의한 자동화가 용이하고, 양질의 추천 결과를 제공해 준다는 장점이 있지만, 계산량이 많고 결측 정보에 대해 취약하다는 단점이 있다. 사용되는 방법으로는 벡터와 확률 기반의 알고리즘이 있고, 또한 기계 학습의 군집화 알고리즘을 사용하여 전체 사용자들을 취향이 비슷한 사용자들끼리 묶어서 그 그룹 내에서 추천이 이루어지도록 하는 방법이 있다.

collaborative_f.png

[그림 1] 추천가 시스템의 두 가지 접근법