Search

협업 필터링(1992. Collaborative Filtering)

1. 최근접 이웃

1-1. 개념

영화와 관련된 정보들을 토대로 영화를 본다기 보다 가까운 지인들의 추천으로 보는 경우가 대다수다. 이런 점을 고려하여 나온 모델이 최근접 이웃이다.
사용자가 아이템에 매긴 평점 정보나 상품 구매 이력과 같은 사용자 행동 양식만을 기반으로 추천을 수행하는 방식이다.
주요 목표는 사용자-아이템 평점 매트릭스와 같은 축적된 사용자 행동 데이터를 기반으로 사용자가 아직 평가하지 않은 아이템을 예측 평가하는 것이다.
memory-based CF
User-based CF(사용자 기반 CF) : 사용자 유사도 기반으로 이웃 생성
Item-based CF(아이템 기반 CF) : 아이템 유사도 기반으로 이웃 생성
model-based CF

1-2. 사용자-아이템 평점 행렬 : Matrix Factorization

행렬 분해는 사용자와 아이템에 대한 평점으로 구성된 하나의 행렬을 분해하는 방법 이를 활용한 대표적인 알고리즘이 특이값 분해(Singular Value Decomposition, SVD)다.
SVD는 고차원 행렬을 저차원 행렬로 축소하고, 축소한 저차원 행렬을 원래의 행렬로 복원하는 과정을 수행할 수 있다. 이런 과정을 통해서 추천 대상 사용자가 평점을 부여하지 않은 제품 및 서비스에 대한 평점을 예측하는 것. 대표적으로, 넷플릭스에서 발표한 논문
Koren, Y., Bell, R., & Volinsky, C. (2009).Matrix factorization techniques for recommender systems. Computer, 42(8), 30-37.
보통 데이터들은 레코드 레벨 형태로 데이터베이스에 저장되어 있는 경우일 것이다. (아래 처럼)
User ID
Item ID
Rating
User1
Item 1
3
User2
Item 3
3
사용자-아이템 평점 매트릭스 형태로 사용하려면 다음과 같이 변경해주어야 한다.
Item1
Item2
Item3
User1
3
3
User2
4
1
사용자-아이템 평점 행렬은 많은 아이템을 열로 가지는 다차원 행렬이고, 아이템에 대하여 평점이 없는 경우가 많기 때문에 희소행렬 특성을 가진다.

2. 딥러닝 기반 추천 시스템

딥러닝 기술의 발전으로 사용자 리뷰 텍스트, 이미지 등 다양한 정보를 모델에 적용하기 위한 모델들이 활발히 연구중
NeuMF 모델은 유저와 아이템의 원-핫 벡터를 밀집 행렬로 임베딩하여

2. 잠재 요인

2-1. 개념

최근접 이웃 방식과 동일하게 사용자-아이템 평점 행렬 데이터에만 의지해 추천을 수행한다.
사용자-아이템 평점 매트릭스속에 숨어 있는 잠재 요인을 추출해 추천 예측을 할 수 있게 하는 기법이다.
→ HOW ?
대규모 다차원 행렬을 SVD와 같은 차원 감소 기법으로 분해하는 과정에서 잠재 요인을 추출하는데, 이러한 기법을 ‘행렬 분해’라고 한다.
다차원 희소 행렬인 사용자-아이템 행렬 데이터를 저차원 밀집 행렬의 사용자-잠재 요인 행렬아이템-잠재 요인 행렬의 전치행렬로 분해할 수 있으며, 이렇게 분해된 두 행렬의 내적을 통해 새로운 예측 사용자-아이템 평점 행렬 데이터를 만들어서 사용자가 아직 평점을 부여하지 않은 아이템에 대한 예측 평점을 생성하는 것이 잠재 요인 협력 필터링 알고리즘의 골자다.
물론, 행렬 분해에 의해 추출되는 ‘잠재 요인’이라는 것이 정확히 어떤 것인지는 알 수 없다.
많은 추천 시스템이 행렬 분해에 기반한 잠재 요인 협업 필터링을 적용하고 있다.
작품 평점은 사용자의 장르별 선호도 벡터와 영화의 장르별 특성 벡터를 서로 곱해서 만들 수 있다.

사용자 기반/ 아이템 기반

사용자 기반 : 당신과 비슷한 고객들(구매 데이터 기반)이 다음 상품도 구매했다.
ex ) 사용자 기반 최근접 이웃 방식 : 특정 사용자와 유사한 다른 사용자들의 TOP-N을 선정하고 TOP-N 사용자가 좋아하는 아이템을 추천
아이템 기반 : 이 상품을 선택한 다른 고객들은 다음 상품도 구매했다.
ex) 아이템 기반 최근접 이웃 방식 : 아이템의 속성과 상관없이, 사용자와 상관없이 평가 척도(평점)의 비슷한 분포를 토대로 추천하는 방식이다.
일반적으로 사용자 기반보다는 아이템 기반 협업 필터링이 정확도가 더 높다. 사용자들간의 유사성을 토대로 판단하는 것은 오차가 크기 때문이다. 즉 사람들간의 유사도를 비교하기가 어려운 부분이 있기 때문에 대부분 아이템 기반의 알고리즘을 적용한다.

유사도 측정 방법

추천 시스템에 사용되는 데이터는 다차원 희소 행렬이라는 특징이 있기 때문에 유사도 측정을 위해 주로 코사인 유사도를 이용한다.