주의 : 본 게시글은 저자가 Recap용으로 작성하는 글로서 명확하지 않은 정의와 모호한 설명이 있을 수 있음.
논문 요약
1. CF는 (1)상호작용 인코더, (2)손실함수, (3)네거티브 샘플링 세가지로 구성이 되어 있으며, (2),(3)에 대한 연구는 진행 되지 않아 본 연구에서 심도있게 연구를 진행함.
2. 손실함수로 Cosine Contrastive Loss를 제안
3. SimpleX라는 간단한 아키텍쳐를 설계
-> LightGCN대비 NDCG@20에서 최대 48.5%의 성능을 개선
1. 개론
CF 모델의 학습과정은 (1) 인코더, (2)손실함수, (3)네거티브 샘플링 세가지 구성으로 이루어 진다. 대부분의 연구는 User Item 관계를 인 코더를 복잡하게 설계하며 해결 하는데 초점을 맞춘다. 예를들어 MLP, AutoEncoder, AttentionNetwork, Transformer, GNN등 다양한 연구 분야들이 CF를 풀기위해 연구되어 왔다.
반면, 손실함수 및 네거티브샘플링에 대한 연구는 거의 이루어지지 않았다. 손실함수에 있어서 BPR, CrossEntropy, SoftmaxCrossEntropy, Pairwise HingeLoss, MeanSquareError등 연구되어 왔으나, 손실함수들간의 비교를 하는 연구는 부족했다.
이 논문에서는 BPR & 적은 네거티브샘플링을 한 조합에서 결과가 좋지 않다는 것을 발견하였고, 적절한 손실함수 및 네거티브샘플링을 선택하는게 중요하다는 것을 발견하였다.
SimpleX를 단순성에 집중하여 YoutubeNet, ACF등에서 아이디어를 차용하여 설계를 하였다. SimpleX는 행렬 인수분해, 유저 행동 모델링으로 구성되었으며, 유저 행동 모델링에서 과거 사용자의 선호 벡터들을 취합 및 가중합하고, 유저의 데이터와 융합한다. 매우 단순해 보이지만, 높은 효율성으로 인해 산업 응용 분야에 큰 잠재력을 가지고 있을 것이라 생각된다.
2. 대표적인 연구들 돞아보기 ( 생략 가능 )
2.1 MF기반 알고리즘 : User-Item 상호작용 행렬을 두개의 저차원 잠재 행렬로 분해
두 개의 저차원 잠재 행렬로 분해하여 User, Item을 표현한다.
- GRMF : 라플라시안 정규화 기법을 추가
- Hop-Rec : MF와 Graph기반 모델을 통합한 효율적인 방법론 제안
2.2. AutoEncoder-Based 방법론
AutoEncoder 아키텍쳐를 활용해, User, Item의 Embedding을 학습한다. 이 방법론은 Inductive( 한 User 그룹으로부터 학습하면서 동일한 후보 항목을 가진 다른 User그룹에 대한 추천을 수행)하는데 적합한 방법론이다.
대표적인 연구로는 VAE를 적용한 MultVAE, MacridVAE, EASER등이 있다.
2.3. GNN 방법론
최근 연구에서는 GNN 기반의 CF모델의 연구가 활발히 진행되고 있다. 대표적인 연구로는
- GraphSage
- PinSage : GraphSage개선한 아키텍쳐 제안
- NGCF : 임베딩 propagation을 사용하여 CF를 고차원 관점에서 인코딩하는 방법론
- LightGCN : 비선형과, 선형변환을 제거
- BGCF : 유저-아이템 그래프의 불확실성을 모델링
- DGCF : 유저-아이템 그래프의 의도 분포를 모델링
(NIA-GCN, NGAT4Rec, SGL_ED, DHCF, LCFN 등 많은 연구가 존재)
3. 본 연구
3.1 손실함수
이 논문의 주된 연구인 Loss에 대해서 먼저 살펴보자. 이 논문은 제안한 CosineContrastiveLoss와 ( BPR / PairwiseHingeLoss, BinaryCrossEntropy, SoftmaxCrossEntropy, MeanSquareError ) 에 대해서 실험을 진행하였다.
간략하게 설명을 하자면 빨간 색은 Positive Sample에 대한 부분이며, 파란 부분은 Negative Sample에 대한 Loss 부분이다. Margin을 NegativeSample에 주면서, 노이즈에 로버스트하게 학습이 되도록 설계를 한 것으로 보인다.
- 왜 CosineSim을 사용했을까? -> 연구에서는 유저/아이템 Representation의 크기가 인기도에 따라 크게 편향될 수 있기 때문에 사용했다고 밝히고 있다.
- Neg Sample수가 많아지면, 일반적으로 중복되는 정보이며 정보가가 없는 샘플들이 존재한다. BPR과 같은 손실함수에서는 NegSample을 Positive와 동등하게 처리하고 있다. 따라서 모델이 학습할 때 불필요한 노이즈 데이터에 압도되어 모델 성능이 크게 저하되고 수렴 속도도 느려질 수 있다. 본 Loss에서는 m 보다 큰 코사인 유사도를 갖는 하드한 샘플들에 대해서만 학습을 진행할 것이므로 훈련이 더 잘 진행된다.
- 위에 보이는 Loss에서 빨간 부분과 파란 부분을 동일한 가중치로 학습을 진행할경우, 파란부분의 데이터 셋이 훨씬 많기에 모델 성능이 저하될 수 있는 사실을 발견하였다.
3.2 아키텍처
모델의 구조는 생각보다 간단하다(YouTubeNet, ACF, PinSage에서 따왔음을 밝혔다).
이 논문의 주 기여점은 LossFunction에서 발생하기 때문인 것 같다.
모델은 크게 [유저의 정보, 유저와 관련된 아이템의 정보, 그리고 후보가 되는 정보] 세가지 구조로 되어 있다. 유저의 임베딩 벡터와, 그 유저와 연관 있는 아이템들의 Aggregate된 정보들의 가중합을 진행하고, 후보가 될 수 있는 아이템들관의 관계성으로 추천을 진행한다.
자, 하나씩 뜯어보자
Aggregate에 해당하는 부분을 먼저 살펴보자. (H_u : User U에 속하는 K개의 상호작용한 Item들)
Pu인 User한명에 대하여 가정하고 살펴 보자. 한 User에서 뽑힐 수 있는 Maximum한 아이템 데이터 셋은 K개다.
위 그림에서 2개의 Interact가 있고, K=3이라고 가정하자. 3개까지 Item을 채워야 하니, 임의 벡터 I_3를 추가하되, Indicator를 통해 0,1로 가중을 주어 정보를 추가하거나 제거한다. (위 그림에서는 편의상 가중치인 alpha를 제외 하였음)
위 논문에서 제안한 alpha는 두가지 방법이 있다. 1) 가중평균, 2) 어텐션.
가중평균은 User U가 갖고 있는 Item의 수로 나누면 되는것이며. Attention은 우리가 일반적으로 알고 있는 Attention 구조와 동일하다.
Aggregate된 정보와 User의 정보를 합치는 과정이 필요한 이유를 연구에서는 이렇게 밝히고 있다. Aggregate정보와, User의 정보는 다른 latent Space에 있기에 두 정보를 섞는 과정이 필요함을 언급하였다. (여기서 V는 Learnable Matrix)
이렇게 섞인 User정보를, 다양한 Item Vector들과 비교하며 유사성을 판단한다. 간략하게 Matrix들로 표현하자면 아래와 같다.
4. 연구 결과
1) 손실 함수와 음의 샘플링 비율의 영향 연구
2) 세 가지 주요 데이터 세트에서 기존 모델과 성능 비교
3) 다른 모델에 CCL 통합
4) 매개 변수 분석 및 효율성 평가 수행
5) 다른 데이터 세트에서 SimpleX 추가 검증
- 11개의 데이터 셋.
- NegSampling수를 1~2000까지 실험(대부분 100,500,1000에서 좋은 결과를 얻음).
- 마진(m)은 0.1 간격으로 0∼1 사이에서 실험(Amazon-Books, Yelp2018 및 Gowalla에서는 각각 0.4, 0.9,0.9에서 좋은 성능)
- 비교 모델과 동일한 임베딩 크기(예: LightGCN에서는 64, LCFN에서는 128)를 사용
4.1 손실 함수 실험
기존 연구들은 CF 모델 학습에서 손실 함수의 중요성은 간과하고 있다. 간단한 모델이 더 잘 설명하는 경향이 있기 때문에 가장 단순한 기본 CF 모델 중 하나인 MF를 백본으로 실험을 수행한다.
- 1) CCL은 세 가지 데이터 세트 모두에서 일관되게 최고의 성능을 달성
- 2) BPR은 Gowalla에서만 강력한 것으로 나타났으며, Amazon-Books와 Yelp2018 모두에서 성능이 좋지 않음.
왜 CLL이 좋은가?
- 구별하기 어려운 하드 네거티브 샘플을 필터링할 수 있다. 마진(m)을 사용하여 노이즈가 있는 데이터 셋들은 Loss에서 계산되지 않는다. 마진보다 큰 하드 네거티브 샘플에 대해서만 Loss에 기여하여, 하드 네거티브와, 파지티브 데이터 간의 구별하는데 중점을 두고 있다.
- PHL도 거리 개념을 사용하나, 음성과 양성 사이의 상대적 거리를 사용하기 때문에 하드 네거티브와 양성간의 차이가 얼마 차이가 나지 않더라도, 하드 네거티브의 Loss가 반영되지 않을 수 있다. 예) 하드네거티브의 예측값이 0.8, 양성이 0.9일 경우 둘 간의 거리가 가깝기에 하드 네거티브가 Loss에 영향을 주지 못한다.
4.2 네거티브 샘플링의 비율
- NegSample의 수의 중요성 : 일반적으로 일정 범위에서 NegSample이 증가하면 성능이 향상된다.
- CLL의 우수성
- PHL, MSE, BPR의 성능은 음성 샘플 수가 50개 까지 성능향상이 있다. 반면, CCL, BCE, SCE는 음성 샘플 수가 1000개까지 증가해도 성능 향상이 있다.
4.3 SOTA모델들과 비교
MF와 CCL로스를 사용한 모델이 과거 모델들의 성능들을 앞선다.
4.4 다른 SOTA모델 + CCL 조합
- YoutubeNet, LightGCN + CCL 조합을 실험해본 결과, MF-CCL과 비슷한 성능을 보임을 확인함. 하지만, MF-CCL많큼의 성능 향상이 발생하진 않았다.
- 결론1 : LightGCN과 같은 인코더는 biased CF 데이터를 학습하는데 영향력을 끼치기에 손실 함수가 미치는 영향이 상대적으로 작아 보인다.
- 결론 2 : MF, YouTubeNet, LightGCN을 사용한 실험을 통해 손실 함수가 CF 모델에서 큰 병목 현상이라는 것을 입증하고 강조한다.
4.5 SimpleX의 파라미터 분석
- 논문에서 밝히길, avg_pooling, self_attn, user_attn, 모두 비슷한 성능을 보인다고 하였으며
- g=0.5 Amazon-Books의 다른 두 설정에 비해 더 높은 성능을 보이며, 이는 사용자 임베딩과 사용자 행동 집계를 융합하는 것이 중요하다는 것을 보여준다
- PosSample, NegSampe 비율을 조정하는 음의 가중치 w는 모델 성능에 매우 중요한 요소이며, 일반적으로 PosSample과 NegSample 차이가 너무 작거나(w = 1) 너무 크면(w = 1000) 성능 저하로 이어진다.
4.6 훈련 시간(효율성)
최종 훈련시간을 살펴보면, SimpleX의 훈련시간은 타 모델의 훈련시간을 압도한다...
4.7. 추가적인 실험