이번 글에서는 추천 시스템 중 협업 필터링 collaborative filtering 에 대한 내용을 개괄적으로 살펴보도록 하겠습니다. 우선, 협업 필터링이란 사용자가 평가하지 않은 항목에 대한 반응을 예측하는 것을 목표로 하여 각 사용자 혹은 항목 간의 유사도를 측정하여 이루어집니다. 협업 필터링은 크게 다음 두 가지로 분류할 수 있습니다. - 메모리 기반 필터링 Memory-base...
2025. 2. 5.7 min read
이번 글에서는 추천 시스템 중 협업 필터링collaborative filtering에 대한 내용을 개괄적으로 살펴보도록 하겠습니다. 우선, 협업 필터링이란 사용자가 평가하지 않은 항목에 대한 반응을 예측하는 것을 목표로 하여 각 사용자 혹은 항목 간의 유사도를 측정하여 이루어집니다. 협업 필터링은 크게 다음 두 가지로 분류할 수 있습니다.
메모리 기반 필터링Memory-based Filtering : 유사한 사용자 혹은 유사한 아이템을 기반으로 특정 아이템에 대한 특정 사용자의 값을 예측
모델 기반 필터링Model-based Filtering : 평가 데이터를 활용하여 decision tree, bayesian model, latent factor model 등 머신러닝 모델을 학습시키고 활용
메모리 기반 필터링
메모리 기반 필터링은 또 다시 다음 두 가지 형태로 분류할 수 있습니다.
사용자-사용자 간 필터링
아이템-아이템 간 필터링
각 세부 항목은, 어떤 것에 대한 유사도를 측정하는지에 기반합니다. 즉, 사용자-사용자 간 필터링은 추천 대상이 되는 사용자와 비슷한 성향을 가진 사용자를 선택하여, 해당 사용자가 선호하는 아이템을 추천해주는 방식입니다. 아이템-아이템 간 필터링은 그 반대로 작동합니다.
이때, 유사도를 측정하는 방식이 필요한데 대표적으로는 코사인 유사도cosine similarity를 사용할 수 있습니다. 예를 들어 사용자 u와 사용자 v의 평가 데이터가 4개의 아이템에 대해 다음과 같이 주어졌다고 가정해봅시다.
여기서 K는 새로운 사용자-아이템 행렬의 계수를 의미합니다. 위와 같은 행렬 분해 R^=P^Q^⊤의 특징 중 하나는, 분해된 행렬 P^와 Q^가 각각 사용자, 아이템에 대한 잠재 요인을 나타낸다는 것입니다(PCA의 개념과 유사). 또한, 위 최적화 문제에서 과적합을 방지하기 위해 다음과 같이 정규화 항을 추가할 수 있습니다.
혹은 P,Q를 직교행렬로 가정하거나, non-negative로 가정하여 해석가능성을 높이는 방법도 여럿 제안되었습니다.
Model-based Filtering
모델 기반의 필터링은 사용자의 피드백을 반응변수로, 사용자와 아이템에 대한 context vector를 설명변수로 하는 회귀모형을 학습하는 방식입니다. 앞서 살펴본 사용자-아이템 행렬은 사용자가 아이템에 대해 평가한 점수만을 담고 있기 때문에, 사용자의 피드백(e.g. 좋아요/싫어요, 클릭 여부)을 활용하여 이를 보완할 수 있습니다.
예시로 다음과 같은 3×3 사용자-아이템 행렬과 각 사용자 i와 아이템 j에 대한 context vector xij가 주어졌다고 가정해봅시다.
여기서 Ui는 사용자, Ij는 아이템, Vk는 보조정보를 나타내며 xij의 Ui와 Ij는 i,j번째 사용자와 아이템을 나타내는 one-hot vector입니다. R의 각 성분 rij을 반응변수로 하면, 다음과 같은 회귀모형을 생각할 수 있습니다.
rij=f(xij)+ϵij
즉, 사용자 i와 아이템 j에 대한 context vector xij를 입력으로 받아 평가 점수 rij를 출력하는 함수 f를 찾는 문제입니다. 간단하게는 선형 회귀 모형
r=β0+x⊤β+ϵ
을 고려할 수 있고, 나아가 복잡한 모델링을 하기 위해 f 자리에 neural network, decision tree, random forest 등의 머신러닝 모델을 도입할 수 있습니다.
Factorization Machine
앞서 살펴본 Matrix Completion 문제는 사용자-아이템 행렬을 분해하는 문제였습니다. 이를 일반화하여, 사용자 피드백 및 보조정보를 활용하여 사용자-아이템 행렬을 분해하는 방법을 생각해볼 수 있습니다. Factorization Machine은 다음과 같은 모델을 사용하여 사용자-아이템 행렬을 분해하는 방법입니다.
앞서 살펴본 Low-rank matrix factorization은 이러한 Factorization machine의 일종으로 볼 수 있습니다. 만일 각 context vector xij에 보조정보가 포함되어 있지 않다면(즉, D=N+A가 성립하는 경우), β0=⋯=βD=0 으로 두면 위 식은
다음 글에서는 앞선 방법들에 딥러닝을 적용한 다양한 방법론들에 대해 다루어보도록 하겠습니다.
References
온라인 콘텐츠 추천 문제의 통계학적 기초, 최영근, 한국통계학회 2024년 동계학술논문발표회 Tutorial
Y. Koren, R. Bell, and C. Volinsky, “Matrix Factorization Techniques for Recommender Systems,” Computer, vol. 42, no. 8, pp. 30–37, Aug. 2009, doi: 10.1109/MC.2009.263.