Recommendation

Web2hub wiki

Jump to: navigation, 찾기

목차

What is Recommendation?

Recommendation 방식의 종류

Content-Based Methods

사용자가 과거에 사용했거나 평가한 아이템을 기반으로 새로운 아이템을 추천하는 방식이다. 예를 들어 영화 추천 서비스의 경우 사용자가 보았던 영화들 중에 높게 평가한 것들에 대해 다양한 측면(주연배우, 감독, 장르, 주제 등)에서 공통점을 찾아낸다. 이렇게 분석된 각 사용자의 영화 선호도에 기반하여 새로운 영화가 사용자가 좋아하는 영화에 얼마나 근접하는지 평가, 높은 점수를 받는 영화를 추천한다. 이와 같이 내용 기반 방식에서는 사용자의 과거 경험에서 선호도, 취향, 욕구 등의 사용자 정보를 어떻게 찾아내는가가 핵심 이슈다. 이를 위해 각 아이템의 내용을 분석하여 그것을 특징지을 수 있는 속성들을 찾아내는 과정이 필요하다. 그리고나서 계산된 사용자의 과거 아이템들에 대한 속성들을 통합하여 사용자의 선호도에 대한 정보를 구축한다. 이것이 새로운 아이템에 대한 평가에 대한 기준으로 사용된다. 전통적으로 내용 기반 방식이 주로 사용된 텍스트 기반 어플리케이션들(문서, 웹페이지, 유즈넷 뉴스 등)을 예를 들어 보자. 텍스트의 성격은 핵심 키워드들로서 규정할 수 있다. 즉, 텍스트에서 몇 개의 키워드를 찾아내고 중요도에 따라 가중치를 부여하여 키워드 점수 벡터를 만든다. (예: (2, 5, 1, 2)) 사용자의 모든 과거 텍스트에 대해 키워드 점수 벡터를 계산하고 이들을 평균하여 최종적으로 하나의 키워드 점수 벡터를 만들어 낸다. 이것이 사용자 선호도를 나타내는 기준으로서 새로운 텍스트의 점수 벡터와의 거리를 비교하는데 사용된다.

Collaborative Filtering Methods

사용자와 취향이 비슷한 다른 사용자의 과거 아이템을 추천하는 방식이다. 예를 들어 영화 추천 서비스의 경우 사용자와 취향이 비슷한 다른 사용자들이 좋게 평가한 영화를 추천한다. 따라서 이 방식에서는 취향이 비슷한 사용자들을 어떻게 찾아내는가 하는 것이 핵심이다. 여기에 다음과 같은 몇가지 방법이 있다.

  • 전통적인 Collaborative Filtering
  • Clustering models
  • Item-to-Item Collaborative Filtering

전통적인 Collaborative Filtering

사용자의 과거 아이템들에 대한 평가 점수 벡터를 다른 사용자들의 점수 벡터와 비교하여 유사도를 결정하는 방법이다. 예를 들어 세 명의 사용자가 네 편의 영화에 대해 다음과 같이 평가를 했다고 가정하자.

영화A 영화B 영화C 영화D
사용자1 2 5 1 4
사용자2 4 1 3 3
사용자3 3 4 2 4

유사도를 두 점수 벡터 사이의 각도에 대한 코사인값으로 계산할 때

유사도 (사용자1, 사용자2) = 0.70 
유사도 (사용자2, 사용자3) = 0.86 
유사도 (사용자1, 사용자3) = 0.97 

사용자1과 사용자3 사이의 유사도값이 가장 크기 때문에 두 사용자의 영화에 대한 취향이 비슷하다고 판단한다.

Clustering models

전체 사용자들을 취향이 비슷한 사용자들끼리 묶은 그룹으로 나누어 같은 그룹의 사용자들끼리 추천이 이루어지도록 하는 방법이다. 그룹핑의 방법에는 여러가지가 있을 수 있겠으나 사용자수가 많을 경우에는 보통 greedy algorithm을 사용한다. 즉, 처음에 임의의 사용자를 각 그룹에 할당을 하고 나머지 사용자들을 각 그룹 사용자들과의 유사도 평가를 하여 적합한 그룹을 선택한다. 여기서 유사도 평가는 위에서 설명한 전통적인 Collaborative Filtering을 사용할 수 있다. 이렇게 만들어진 그룹은 상황에 따라 통합되거나 새로운 그룹의 생성이 가능하다. 이 방법의 장점은 복잡하고 계산량이 많은 그룹핑 과정은 오프라인에서 이루어지고 사용자와 유사한 취향을 가진 다른 사용자들을 찾는 과정은 정해진 수의 그룹들과 비교만으로 실시간으로 빠르게 달성할 수 있다는 것이다. 그러므로 전체 사용자를 비교해야 하는 전통적인 Collaborative Filtering에 비해 확장성과 성능이 뛰어나다. 반면 가장 유사한 사용자를 찾아주는 것이 아니고 유사한 사용자들의 그룹에 기반해 추천을 받는 것이기 때문에 추천의 질은 더 떨어진다.

Item-to-Item Collaborative Filtering

전통적인 Collaborative Filtering과 Clustering Models가 사용자와 유사한 사용자를 찾아 그의 과거 아이템들에 기반한 추천을 하는 반면 이 방법은 사용자가 선택한 아이템과 유사한 아이템들을 찾아 추천하는 것이다. 여기에 핵심이 아이템들간의 유사도를 나타내는 Item-to-Item matrix로서 이것은 과거의 판매정보에서 함께 구매된 아이템들을 분석함으로써 구축할 수 있다. 이 과정은 복잡하고 계산량이 많으나 오프라인에서 가능하기 때문에 확장성이 좋다고 할 수 있다. 또한 자신과 유사한(함께 구매된) 모든 다른 아이템들을 비교하므로 추천의 질 역시 뛰어나다. Amazon.com이 방법을 제안하고 사용하고 있다. 아래 그림은 이 방법에 기반한 아마존의 책 추천 예이다.

Amazon book recommendation
Amazon book recommendation

Hybrid Methods

Content-based method와 Collaborative method를 결합함으로써 두 방법의 한계를 극복하고 보다 나은 추천을 하는 방식이다. 두 방식을 결합하는데 몇 가지 방법이 존재한다.

  1. 두 방식을 개별적으로 구현하고 그들의 추천결과를 결합하는 방법
  2. collaborative method에 몇가지 content-based method의 특징을 결합하는 방법
  3. content-based method에 몇가지 collaborative method의 특징을 결합하는 방법
  4. 두 방식을 유기적으로 결합하여 단일한 모델을 만드는 방법

두 방식을 독립적으로 결합하기

두 방식에서 개별적으로 추천결과를 얻어내고 결합하여 최종 추천결과를 만들어 낸다. 다른 방법으로는 상황에 따라 더 적절한 추천결과를 내는 쪽을 선택적으로 이용하는 것이다.

Collaborative 방식에 Content-based 특성을 추가하기

기본적으로 Collaborative 방식을 이용하지만 두 사용자 사이의 유사도를 평가하는데 있어서 개별적인 아이템들간 비교하는 원래 방법을 쓰지않고 Content-based 방식으로 만들어진 사용자 프로파일들간 비교하는 방법이다. 여기서 사용자 프로파일은 개별 아이템들에 대한 선호도를 반영한 하나의 통합적인 평가기준을 제시해 주기 때문에 Collaborative 방식이 사용자들간 관련된 아이템이 적은 경우 제대로 비교를 못하는 단점을 해결해준다.

Content-based 방식에 Collaborative 특성을 추가하기

두 방식을 화학적으로 결합하기

Case studies

Music Recommendation

Pandora

Last.fm

last.fm

Last.fm은 Collaborative Filtering 방식의 추천서비스로 사용자들의 playlist를 비교하여 취향이 비슷한 다른 사용자들의 음악을 추천해 준다. 일단 Last.fm에서 제공되는 Audioscrobbler plug-in을 Winamp와 같은 뮤직플레이어에 설치하면 음악이 재생될 때 파일의 file tag를 읽어 곡정보를 서버에 전송한다. 이렇게 서버로 전달된 곡에 대해서는 사용자가 선호하는 것으로 간주한다. 선호여부에 대한 정확한 판단을 위해 일정시간 (1-2분정도) 재생된 경우만 서버로 정보를 전달한다.

Audioscrobbler plug-in 동작화면
Audioscrobbler plug-in 동작화면

수집된 정보를 기반으로 다음과 같은 추천 기능들을 제공한다.

  • Recommended Music : 자동 음악 추천과 다른 사용자들에 의한 추천
Recommended music
  • Recommended Reading : 선호하는 음악과 관련된 사용자들의 글 추천
Recommended reading
  • Recommended Users : 음악적 성향이 비슷한 사용자들 추천
Recommended users
  • Similar Artists : 선택한 음악가와 유사한 성향의 음악가 추천
Similar artists

특징 Last.fm은 Collaborative 방식을 사용하기 때문에 어느 정도 playlist가 쌓여야 추천을 해 줄 수 있다. 또한 Musical Neighbors(음악적 이웃들)이라 불리우는 Recommended Users은 300곡 이상 들어야 분석하여 추천을 해 준다.

last.fm

사용자들의 선택에 의존하기 때문에 유명한 음악가나 장르만 충분한 정보를 얻을 수 있어 제대로 된 추천을 할 수 있고 그렇지 않은 경우 부정확한 추천을 할 가능성이 있다. 예를들어 음악가들 사이의 유사성을 결정할 때 사용자가 함께 들은 음악가의 경우 유사하다고 판단하기 때문에 정보가 적은 음악가의 경우 음악적 성향과 무관하게 유명한 음악가들과 비슷한 것으로 추천될 수 있다. (유명한 음악가는 여러 사용자들에 공통으로 들을 가능성이 크기 때문에)

GenieLab

UpTo11.net

History of Recommender Systems

Recommender System 이슈들

Recommendation 알고리즘들

Non-Personalized Summary Statistics

K-Nearest Neighbor

Dimensionality Reduction

Content + Collaborative Filtering

Graph Techniques

Clustering

Classifier Learning

Case studies

Amazon

liveplasma

StoryCode.com

GenieLab

...

참고 자료