오늘은 딥러닝 기반의 추천시스템 모델인 NCF (Neural Collaborative Filtering)에 대해서 정리하고자 한다.
간단하게 먼저 말하자면, NCF는 제목 그대로 딥러닝 기반의 협업필터링이다.
이제 자세히 알아보도록 하자.
0. 들어가기 전
다시 한번 복기해보자면, 협업필터링 방법은 메모리 기반과 모델 기반이 있었는데, NCF는 모델 기반의 방법론 중 하나이다.
추천시스템의 목표는 "사용자가 좋아할 만한 아이템을 예측해서 추천하는 것"이고, 이를 해결하기 위해 가장 널리 쓰인 초기 방법 중 모델 기반 방법론 중 하나가 행렬 분해(Matrix Factorization) 방식이다.
이 행렬 분해 방식은 모든 사용자가 모든 아이템에 대해 남긴 평점, 클릭, 좋아요 등의 행동을 하나의 행렬 R로 표현을 했고, 이 행렬 R을 사용자 임베딩 행렬(P), 아이템 임베딩 행렬(Q) 두 가지로 분해하여 두 벡터의 내적으로 평점을 예측하여 추천을 진행하는 방식이었다.
하지만, 해당 논문에서는 이러한 MF의 한계점을 지적하며 딥러닝 기반의 NCF를 제안하며 이 구조가 다른 SOTA 방법론들보다 개선된 성능을 보였다는 것을 밝혔다.
1. Matrix Factorization의 문제점
Matrix Factorization(MF)는 사용자-아이템 상호작용 행렬 R을 두 개의 잠재요인(latent factor) 행렬 P(사용자)와 Q(아이템)으로 분해하여 사용자-아이템 관계를 표현한다.
이때, latent factor가 서로 독립인 것을 가정하고, 같은 가중치를 사용해 선형결합 즉, 내적을 진행한다.
하지만, 단순한 선형 결합을 활용하기 때문에 user-item간의 복잡한 비선형 관계를 포착하지 못한다.
논문에 첨부된 사진을 통해 예시를 들어보자.
만약 (a)에서 u4와 유사한 순서를 u1, u3, u2 라고 할 때, u4를 p4라는 latent vector로 보낸 경우를 생각해 보자.
u4와 유사도는 u3가 u2 보다 높지만, (b)를 보면 u4를 p4라는 latent vector로 매핑시켰을 때, p2에 더 유사하게 매핑된 것을 볼 수 있다.
즉, user-item 간의 복잡한 관계를 MF는 저차원의 latent space에서 표현하려다 보니 한계점에 부딪히게 되고, 축을 하나 더 추가하자니 over-fitting 되는 현상이 발생한다.
또한, 저자들은 암시적 피드백 (Implicit Feedback)에 대해서도 이야기하고 있다.
평점과 리뷰와 같은 명확한 정보 (Explicit Feedback)은 MF에 강렬하지만 실제 데이터에는 클릭, 조회, 구매와 같은 암시적 피드백이 더 많다.
암시적 피드백의 경우 불호라는 걸 명확히 할 수가 없다.
다시말해서, 조회 기반 데이터라고 할 때, 특정 유저가 특정 상품을 싫어해서 조회하지 않은 것인지 단지 인지하지 못해서 조회하지 못한 것인지 알 수가 없기 때문이다. 그래서 이러한 암시적 피드백을 어떻게 해석하고 학습할 것인가를 즉, 모델의 목적이 무엇인가를 정의해야 한다.
따라서, NCF 논문에서는 user가 item을 좋아하는지 안 좋아하는지를 예측하는 바이너리 분류 문제로 설정을 했다.
- 1(positive) : 사용자가 클릭/구매한 기록이 있음.
- 0(negative) : 명시적 "비선호"가 아니라 "관측되지 않은" 상태
따라서, 확률적 예측을 하기 위해서 2가지 objective function을 활용할 수 있는데, Point-wise bianry cross-entropy (BCE) 손실 함수와 Pair-wise Loss가 있다. (논문에서는 해당 loss를 활용했다.)
먼저, BCE의 경우 user-item 쌍을 독립적인 이진 분류로 보고 예측을 하는 것이고,
Pair-wise Loss의 경우 선호하는 아이템이 그렇지 않은 아이템보다 더 상위에 있어야 한다는 상대적 우선순위를 학습한다.
대표적으로 BPR (Bayesian Personalized Ranking)이 있다.
2. Model
NCF는 기존의 MF 구조를 신경망으로 일반화를 진행했다.
기본적인 구조는 다음과 같다.
Input layer에 user과 item을 나타내는 feature vector로 각각 구성 후,
Embedding Layer에서 sparse 한 vector를 dense vector로 매핑한다.
Neural CF layer에서 각각의 latent vector를 concat 해서 layer를 통과한다. 이때 비선형 관계를 학습한다.
이후 user와 item의 상관관계를 0과 1 사이의 점수로 나타낸다. 즉, 점수를 예측한다.
2.1 GMF (Generalized Matrix Factorization)
GMF는 기존 MF와 유사하지만, 내적 대신 요소별 곱 (element-wise product)를 사용하고 이를 학습 가능한 가중치로 조합한다.
여기서 각 요소는 다음과 같다.
논문에서는 이 GMF가 NCF의 특별한 경우라고 설명한다.
즉, GMF는 MF처럼 벡터 곱을 하되 단순한 내적 방식에서 신경망 요소를 도입해 더 유연하게 관계를 학습할 수 있도록 일반화한 것이다.
이렇게 설정해 주면 기존의 MF와 동일해진다.
2.2 Multi-Layer Perceptron (MLP)
MF에서 임베딩 벡터들 간의 element-wise product으로는 user와 item 간의 상호작용을 모두 캡처하는 데 한계가 있다.
그렇기 때문에 비선형적인 상호작용을 캡처하기 위해서 MLP 층을 이용했다.
이 두 임베딩을 단순히 연결 concat 하여 여러 개의 dense layer를 통과하고 마지막에 시그모이드를 적용하여 최종 출력을 뱉는다.
다음 식은 그 과정을 설명하고 있다.
2.3 Fusion of GMF and MLP
NCF 논문의 핵심은 바로 이 선형 모델 GMF와 비선형 모델 MLP를 동시에 사용한 NeuMF 구조다.
여기서, 복잡한 user-item 상호작용을 캡처할 수 있는 모델을 학습하기 위해서 GMF와 MLP는 각각 독립된 임베딩을 사용하고, 예측 값에서 두 모델의 출력을 concat 한 뒤 최종 출력층으로 보낸다. 그리고 이러한 구조를 NeuMF라고 부른다.
하지만, Fusion 한 모델은 non-convexity 한 objective function을 가지기 때문에 로컬 미니멈에 빠지기 쉽다. 이를 방지하기 위해서 각각의 모듈을 사전학습하는 방식을 이용했다. 사전 학습 시에는 adam을, 학습 후에는 sgd를 사용한다.
이렇게 해서 NCF에서 제안한 모델에 대해서 살펴보았다.
3. Experiment
- NCF가 암시적 데이터에서 sota를 달성할 수 있는지?
- 추천 태스크에서 제안한 loss와 negative sampling이 최적화될 수 있는지?
- 은닉층이 깊어질수록 상호작용 학습에 더 효과적인지?
이 세 가지 목표를 기준으로 다양한 실험을 진행했다.
우선 데이터 셋 같은 경우에는 다음과 같은 두 가지 데이터를 활용했다.
leave-one-out과 negative sampling 전략을 통해 데이터를 준비한 후, (해당 부분에 대해서는 다른 포스팅에서 조금 더 자세히 작성해두었다.)
Pre-train을 활용하고 하지 않고를 기준으로 성능의 경우 Hit Ratio와 NDCG 기준으로 최고 성능을 달성했다.
(솔직히 사전학습을 하고 안하고의 차이가 크지는 않다.)
pair-wise 보다는 pointwise가 더 성능이 높은 것을 알 수 있고, negative의 경우 3-6개가 적절한 샘플링 비율이라고 한다.
마지막으로 hidden layer에 대한 부분은 다음과 같이 깊어질수록 성능이 더 좋아지는 것을 확인했다.
4. Conclusion
NCF 모델에서는 MF를 일반화한 GMF, 그리고 MLP 층을 앙상블 한 NeuMF라는 세 종류의 모델을 제안했다.
두 모델을 앙상블한 NeuMF는 user-item의 상호작용을 캡처할 때 의미가 있음을 파악했다.
이렇게해서, NCF 논문에 대해서 알아보았다.
아래의 페이지에서는 활용한 샘플링 방법에 대해서 더 자세하게 다루고 있다.
https://cherie-ssom.tistory.com/28
[ML] 추천시스템 평가 데이터 구성 방법: Leave-One-Out, Negative Sampling 실전 가이드
이번 포스팅에서는 추천시스템의 평가를 위해서 어떤 전략을 사용해서 학습 데이터와 평가 데이터를 나누는지에 대해서 설명해보고자 한다. 그중에서도 암묵적 피드백으로 이루어진 데이터
cherie-ssom.tistory.com
다음에는 NCF 이후에 발전된 다양한 추천시스템 논문에 대해서도 정리를 해보고자 한다.
최근에는 LLM을 이용한 다양한 추천시스템들이 확장되고 있는데, 다음에는 이러한 다양한 추천시스템 논문에 대해서도 정리를 해보고자 한다.