출처: He, Xiangnan, et al. "Neural collaborative filtering." Proceedings of the 26th international conference on world wide web. 2017.
요약:
최근 심층 신경망 기법이 음성인식, 컴퓨터 비전, 자연어 처리에 성공을 가져왔지만, 추천 시스템에 대해서는 큰 성과가 없었다. 그래서 이 논문에서는 추천 시스템의 중요 문제인 협업 필터링(암묵적 피드백에 기반을 둔)의 신경망 기법 개발을 목적으로 한다.
최근 몇몇 연구에서는 추천 시스템에 딥러닝을 적용하지만 주로 텍스트 설명이나 음향 특징과 같은 아이템의 보조 기법으로 이용하였다. 사용자와 항목 특징 간의 상호작용인 CF의 핵심 요소로 모델링하는 경우에는 여전히 MF에 의존하고 사용자와 잠재적 요인에 내부 제품을 적용했다.(대충 CF에 딥러닝 본격적으로 적용한 애들도 크게 다른 건 없었다는 뜻)
내부 제품을 데이터로부터 임의의 기능을 학습할 수 있는 신경 구조로 대체하여서 우리는 NCF(neural collaborative filtering)을 제시한다. NCF는 일반적이고 이 구조를 통해 MF를 표현하고 일반화할 수 있다.(NCF는 구조 자체로 MF를 할 수 있다는 뜻) 완전히 비선형의 NCF 모델을 위해, 사용자-아이템 간의 강호작용을 학습하기 위한 방법으로 다층신경망 구조를 사용한다.(이유를 잘 모르겠음) 두 가지의 실제 데이터셋에 대한 광범위한 실험을 진행함으로써 NCF가 상당히 개선되었음을 확인할 수 있다. 이런 경험적인 증거는 더 깊은 층을 사용하였을 때 더 좋은 성능을 제공한다는 것을 보여준다.
1. intro
요즘 추천 시스템 많이 쓰는데 CF에서 가장 인기 있는 방법은 MF 기법이다. (간단하게 말하자면 잠재요인 행렬을 가지고 차원 축소하는 법)
넷플릭스에 의해 MF가 유명해져서 사실상 잠재요인 기법에 접근법으로 볼 수 있다.(MF가 잠재요인 기법을 위한 기술이라고 봐도 됨) 그래서 많은 연구가 MF를 발전하는 데에 진행 되었다. 하지만 이런 MF의 효과에도 상호작용 기능에 대한 단순한 선택이라서 성능이 저해 될 수 있다는 것 또한 알려져 있다.(MF의 단점: 완벽하게 이해는 안 됨) 예를 들어, 명시적 피드백으로 rating 예측 방법의 경우 사용자 및 항목 바이어스 항을 상호작용 기능에 통합하여 MF모델의 성능을 높일 수 있다.(?) 이런 부분은 내부 제품 연산에 단순히 트윅으로 보이지만, 잠재 특징 상호작용을 모델링하기 위해 더 나은 모델을 설계하는 긍정적인 효과를 보인다. 결론적으로, 단순히 잠재 특징의 곱셈을 선형적으로 결합한 내부 제품은 사용자-아이템 상호작용 데이터의 복잠한 구조를 나타내기에 충분하지 않을 수 있다. ==> 그냥 MF는 단점이 있고, 충분하지 않음.
요약의 반복==> 이 논문은 데이터의 상호작용 기능을 배우기 위해 수공예가 아닌 심층 신경망 사용을 탐구합니다. (현재 CF에 딥러닝 사용한 건 제대로가 아님)
NCF는 사용자의 간접적으로 반영하는 암묵적 피드백(implicit feedback)에 초점을 둔다. 예를 들어 클릭 항목, 검색 항목 등. 그 이유는 명시적 피드백의 경우 정보 수집은 쉽지만 부정적인 피드백이 희박하다.(싫어하는 제품에는 평점을 안 다는 경우가 많음) 그래서 DNN을 이용하여 noisy implicit feedback 신호를 모델링하는 방법에 집중한다.
1. 사용자-아이템의 잠재적 특징을 모델링하기 위한 아키텍쳐를 제시하고, 신경망 기반 CF를 위한 일반적인 프레임워크로 NCF를 구상.
2. MF를 NCF의 전문화로 할 수 있고, 다층퍼셉트론을 활용하여 높은 수준의 비선형성 NCF 모델링을 할 수 있다.
3. 두 가지의 실제 데이터셋에 대한 광범위한 실험으로 NCF 의 효과와 협업필터링&심층학습의 가능성을 보여준다.
2. 사전 지식
2.1 Learning from Implicit Data
M: 유저 수, N: 아이템 수
RM x N: 사용자의 암묵적 피드백으로부터 만들어진 사용자-아이템 상호작용 matrix
암묵적 피드백의 인자는 1 또는 0이 될 수 있다.
1은 사용자와 아이템 간의 상호작용이 있다는 뜻이다.==> 하지만 사용자가 아이템을 선호한다는 건 아님
0은 사용자와 아이템 간의 상호작용이 없다는 뜻이다.==> 하지만 사용자가 아이템을 싫어하는 건 아님(그저 모르는 것일 수도)
이런 상황은 사용자에 대해 잡읍이 들어간 데이터를 제공하기 때문에 암묵적 데이터의 어려움을 초래한다. (부정적 피드백의 희소성) ==> Figure 1을 보면 MF의 한계를 알 수 있다. (자세한 문단 설명은 이해되지 않아, 간단히 보고 넘어갔음)
2.2 Matrix Factorization
pu: 유저의 잠재요인 벡터, qi:아이템의 잠재요인 벡터
K: 잠재 공간의 차원
MF는 잠재 공간의 각 차원이 독립적이라고 가정하고 동일한 중량으로 선형적으로 결합하는 사용자, 아이템의 잠재 요인의 양방향 상호작용을 모델링한다. ==> MF는 잠재 인자의 선형 모델
그림 1을 보면 내부 제품이 어떻게 MF의 표현성을 제한할 수 있는지 보여준다.
==> 두 가지 설정
1. MF는 사용자와 아이템을 동일한 잠재 공간에 매핑하기 때문에 두 사용자의 유사성은 내부제품 또는 이들의 잠재 벡터 사이의 cosine 각도로 측정한다.
2. Jaccard coefficient을 이용하여 유사성을 측정한다.
==> figure 1과 같은 문제(MF의 현재 단점)
3. Neural Collaborative Filtering
우선 NCF 프레임워크는 암묵적 데이터의 binary 특성을 강조하는 확률론적 모델로 학습한다. 또한 MF가 NCF에 의해 표현될 수 있다. CF을 위한 DNN기법으로 사용자-아이템 상호작용 기능을 학습하기 위해 다층신경망 기법을 사용한 NCF인스턴스화를 제안한다. 마지막으로, NCF 프레임워크에 MF와 MLP를 통합하는 새로운 신경망 행렬 인자화 모델을 제시한다. 이 모델은 사용자-아이템 잠재구조 모델링을 위한 MF의 선형성과 MLP의 비선형성 강점을 모두 가진다.
3.1 General Framework
CF의 완전한 신경망 처리를 위해 하나의 계층의 출력이 다음 계층의 입력으로 작용하는 다중 계츨 표현을 사용한다. 하단 입력 계층은 각각 가용자, 아이템의 특징 벡터로 구성된다. 이 부분은 순수한 CF에 초점이 맞춰져 있기 때문에, 입력 기능으로 유저와 아이템 아이덴티티만 사용하며, 원핫인코딩의 형태인 sparse vector로 변환한다. 이런 일반적인 특징이 입력으로 들어가기 때문에 우리의 방식이 cold start 해결을 위한 방법으로 생각될 수 있으니까 주의하세요.(?)
그다음 층은 embedding 레이어이다.(밀도가 높은 벡터에 sparse한 표현을 투영하는 완전연결 계층) 획득한 임베딩은 잠재 인자 모델의 맥락에서 잠재 벡터로 볼 수 있다. 이 임베딩들은 잠재 벡터를 예측 점수에 매핑하기 위해 다중계층신경망 구조(신경망CF)에 전달된다. 신경망CF의 각 층은 사용자-아이템 상호작용의 특정 잠재구조를 발견하도록 정의할 수 있다. 마지막 hidden layer의 dimension이 모델의 성능을 결정한다. 최종 출력층은 예측 점수로, 목표 값과의 차이를 최소화하도록 훈련한다. 모델을 학습하는 또 다른 방법은 Bayesian Personalized Ranking과 마진 기반 손실같은 기법은 쌍별 학습하는 것이다. (이 논문에서는 다루지 않음)
3.1.1 Learning NCF
Y: 상호작용을 나타내는 집한
Y-: 관측되지 않은 모든 상호작용의 집합
W: 가중치 파라미터
관측치가 가우스 분포를 따르면 제곱손실을 설명할 수 있지만 암묵적 데이터는 binary하기 때문에 알맞지 않다.
암묵적 피드백은 0과 1의 값이 나온다는 성격을 생각하여 0과 1사이로 제한되는 확률적 기능을 사용할 수 있다.
최적화는 SGD를 수행한다.(binary cross-entropy loss)NCF에 확률론적 처리를 채탬함으로써, 우리는 암묵적 피드백의 추천 방식을 이항 분류로 볼 수 있다. 분류 인식 로그 손실은 문헌들에서 많이 조사되지 않았기 때문에 이 연구에서 이를 탐구하고 4.3에서 그 효과를 확인한다. 부정적인 인스턴스가 Y-인 경우, 관측되지 않은 상호작용에서 표본을 추출하고 관측된 상호작용의 개수를 사용하여 표본 비율을 제어한다.(?) 통일성 없는 표본 추출 전략(item popularity-biased)은 성능을 향상시킬 수 있겠지만 이 부분은 다루지 않음.
3.2 Generalized Matrix Factorization
자세히는 이해하지 못하였지만 결국 NCF계층 사이에 MF를 둔다는 것. activation function을 sigmoid(non-linear)로 둔다는 것.
3.3 Multi-Layer Perceptron
NCF는 사용자와 아이템을 모델링하기 위해 두 가지 경로가 있으므로 두 경로의 특징을 결합하는 것이 가장 직관적이다. 하지만, 단순한 벡터의 결합은 사용자와 아이템 사이의 어떤 상호작용도 설명하지 않으며, 이는 CF의 효과를 모델링하기 불충분하다. 이런 문제를 해결하기 위해 표준 MLP를 사용하여 사용자와 아이템 잠재 요잉 사이의 상효작용을 학습하기 위해 결합된 벡터에 hidden layer를 추가한다. 이렇게 되면 모델에 고정된 요소별 제품만을 사용하는 GMF보다 사용자와 아이템의 잠재 요인 사이의 상호작용을 배우기 위해 큰 수준의 유연성과 비선형성을 부여할 수 있다. 이 부분에서 activation 함수는 기능적인 면에서 적함한 ReLU를 선택한다. 네트워크 구조는 tower patter으로, 하위 레이어는 넓고 높은 레이어는 좁게 만들어서 추상적인 특징을 학습할 수 있도록 한다.
3.4 Fusion of GMF and MLP
GMF(잠재요인 상호작용의 선형성을 더하는 것)과 MLP(데이터의 상호작용에 비선형성을 이용하는 것)이 둘을 어떻게 합칠까? 가장 간단한 방법은 GMF와 MLP가 같은 임베딩 계층을 가지고 마지막 출력 계층에서 두 개의 결과를 합치는 것이다.(Neural Tensor Network와 비슷한 느낌) 하지만, 같은 임베딩을 공유하는 것은 결과에 제한을 줄 수 있다. 왜냐하면 해달 모델에 최적화된 임베딩 사이즈를 사용하지 못하기 때문이다. 더 유연한 혼합 모델을 위해서 서로 다른 임베딩을 가지고, 마지막 hidden layer에서 연결하는 것이다.
3.4.1 Pre-training
NeuMF는 non-convexity(볼록하지 않음)하기 때문에 경사도 기반 최적와는 국소적인 해결책이다. 초기화는 모델의 융합과 성능에서 중요한 역할을 한다고 알려져 있는데, NeuMF는 GMF와 MLP의 앙상블이기 때문에 GMF와 MLP의 사전 검증 된 모델을 사용하여 초기화할 것을 제안한다. 우선 융합 때까지 무작위 초기화를 통해 교육하고 NeuMF 파라미터의 해당 부분에 대한 초기화로 그들의 파라미터를 사용한다. GMF와 MLP를 처음 교육할 때, 빈번한 업데이트와, 파라미터에 대한 대규모 업데이트를 더 적게 수행하기 위해 Adam기법을 채택한다. 또한 NeuMF세 사전 훈련된 파라미터를 만들면 그 이후 최적화는 vanilla SGD로 최적화를 진행한다.
4. Experiments
(추가 예정)
'Sunny's Study > Studying Research' 카테고리의 다른 글
Using Machine Learning for Web Page Classification in Search Engine Optimization (0) | 2022.12.20 |
---|---|
5G Converged Cell-Less Communications in Smart Cities (0) | 2022.11.09 |
Enabling Communication Technologies for Smart Cities (0) | 2022.11.08 |
Inductive matrix completion for predicting gene-disease associations (0) | 2020.09.27 |
Deep collaborative filtering for prediction of disease genes (0) | 2020.09.11 |