[추천시스템] 추천시스템(1) - 추천시스템의 기초

업데이트:

추천시스템(1) - 추천시스템의 기초

본 포스팅은 Aggarwal의 recommender system을 참고했습니다.

1. 추천시스템에 사용되는 2가지 데이터

1.1. User-item interaction 데이터

이 데이터는 평점(rating) 혹은 구매행동 데이터를 의미합니다. 이 데이터를 이용해 추천하는 방법으로는 Collaborative filtering method가 있습니다.

1.2. 속성(attribute) 정보

이 데이터는 textual profile 또는 관련 키워드 데이터를 의미합니다. 이 데이터를 이용해 추천하는 방법으로는 content-based recommendation method가 존재합니다.

2. Collaborative Filtering Model

이 방법은 유저의 추천을 위해 다수의 유저의 평점을 이용하는 방법입니다. 이 방법에는 다소 어려운 부분이 존재하는데, 그것은 평점 행렬이 sparse 하다는 점입니다. 예를 들어, 영화 추천을 생각해보겠습니다. 수많은 영화가 존재하지만 사람 한명이 본 영화는 다합쳐도 몇개 안됩니다. 따라서 대부분의 평점은 null값이 됩니다. 이 때, 평점이 기록되어 있는 것을 “specified”라고 표현하며 다른 말로는 “Observed”라고 표현합니다. 반대로 평점기록이 없는 경우는 “unspecified”라고 표현하며 다른 말로는 “Unobserved” 또는 “missing”이라고 표현합니다. Collaborative Filtering Model은 다음과 같이 2가지로 세분화 할수 있습니다.

2.1. Memory-based Method

이 방법은 다른 말로 neighborhood based collaborative filtering algorithm이라고도 불립니다. Memory-based Method의 장점으로는 간단하고 추천시스템을 설명하기 쉽다는 장점이 있습니다. 반면 sparsed 행렬에 대해 제대로 작동하지 않는다는 단점이 있습니다. 예를 들어 철수와 비슷한 유저를 찾기 어려운 경우 영화 글래디에이터 추천이 어렵습니다. 따라서 행렬 전체를 이용하지 않고 k개만 사용합니다. 이 방법은 고전적인 방법으로 neighborhood가 의미하는 것은 다음과 같습니다.

(1) User-based Collaborative filtering

이 방법은 타겟 유저 A와 비슷한 마음을 가진 유저들의 평점을 이용해 유저 A에게 추천하는 방법입니다. 따라서 기본 아이디어는 유저 A와 비슷한 유저를 찾는 것입니다. 그리고 유저 A의 unobserved rating은 같은 그룹 유저들의 평균값으로 계산됩니다. 예를 들어 철수와 영희가 과거에 본 영화 평점이 비슷하다면, 철수가 영화 터미네이터를 봤고, 영희는 보지 않았다면 철수의 터미네이터 평점이 영희의 추천에 이용됩니다. 즉, 철수와 가장 유사한 k명의 유저 평점이 철수의 영화 추천 예측에 사용되는 것입니다. 이는 평점 행렬의 행(row)을 이용해 유사도 함수를 계산할 수 있습니다.

(2) Item-based collaborative filtering

유저 A의 아이템 B의 평점 예측을 하는 경우, 첫 단계는 아이템 B와 가장 비슷한 아이템 집합 S를 결정하는 것입니다. 즉, 유저 A의 아이템 집합 S의 평점을 보고 아이템 B의 평점을 예측하는 것입니다. 예를 들어, 철수가 영화 에일리언을 보고 평점을 메겼다면 이 평점은 영화 터미네이터 평점 예측에 사용될 수 있습니다. 이는 평점 행렬의 열(column)을 이용해 유사도 함수를 계산할 수 있습니다.

2.2. Model based method

이 방법은 머신러닝과 같은 알고리즘을 사용해 예측합니다. 따라서 모델을 결정하는 파라미터가 존재하며 데이터 학습을 통해 파라미터가 결정됩니다. 예를 들어, 의사결정나무나 rule-based 모형, 베이지안 방법등이 사용됩니다.

3. Content-based Recommender System

이 방법은 아이템의 속성을 이용해 예측하는 방법입니다. 예를 들어 존이 터미네이터 평점을 높게 주었다고해도 다른 유저의 평점을 이용할 수 없는 경우, 터미네이터는 에일리언과 장르가 같고, 관련 키워드가 비슷하므로 존에게 에일리언을 추천할 수 있습니다.

4. Knowledge-based Recommender System

이 방법은 부동산, 자동차, 금융서비스 등과 같이 자주 구매되지 않는 아이템에 대해 추천할 때 자주 사용됩니다. 자주 구매되지 않는 아이템에 대해서는 충분한 평점이 준비되지 않은 경우 추천해야하는 경우가 생깁니다.