Contents
- 1. Introduction
- 2. Investigation of Graph Contrastive Learning in Recommendation
- 3. simGCL: Simple Graph Contrastive Learning for Recommendation
- 4. Experimental Results
본 논문은 Contrastive Learning (CL)을 추천 시스템에 적용한 논문이다. SIGIR'22에서 발표된 컨퍼런스 논문이며, 이전에 제안된 Self-Supervised Learning과는 다른 구조를 띄는 simGCL을 제안하였다. 본 논문에서 제안하는 simGCL이 어떤 것인지 알아보자.
1. Introduction
최근 딥러닝에서 다시 Contrastive Learning (CL)을 적용한 연구들이 제안되고 있다. CL은 라벨이 지정되지 않은 데이터에서 일반적인 특징을 추출하고, 정규화하는 것으로 인해 여러 분야에서 우수한 성능을 발휘하였다. 이는 annotation이 필요하지 않기 때문에, 추천 시스템의 희소성(Sparsity) 문제를 해결할 수 있다. 그로 인해, CL을 추천 시스템에 적용하고자 하는 연구들이 많이 제안되었다. 대표적인 연구는 SGL이 있으며, SGL은 처음으로 추천 시스템에 CL을 적용한 논문이다. 이는 섭동 이론(perturbations Theory)을 통해 이분 그래프(Bipartite Graph)를 증강(Augmenation)하여 실험을 진행하였다. 이때 섭동 이론은 테일러 급수처럼 여러 데이터를 통해 값을 찾는 것을 의미하며, SGL에서는 node dropout, edge dropout을 통해 생성된 graph perturbations으로 관측되지 않은 노드의 값을 찾는 것을 의미한다. [Figrue 1]

이처럼 CL이 추천 시스템에 고무적인 결과를 도출함에도 불구하고, 명확하게 왜 성능이 좋아지는 지에 대한 설명을 얻을 수가 없다. 직관적으로 SGL은 서로 다른 graph augmentation를 통해 실제 user-item interaction을 본질적인 정보를 포착할 수 있다고 가정한다. 그러나 일부 연구에서는 edge dropout rate를 0.9로 설정하더라도 학습이 제대로 되는 것을 확인하였다. 이로써, 다음과 같은 연구 질문을 던질 수 있다. "추천 시스템에 CL을 적용할 때 Graph Augmentation이 정말 필요한가?"
연구 질문에 답하기 위해 본 연구에서는 graph augmentation가 있는 경우와 없는 경우의 성능을 비교하였다. 실험 결과, augmenation이 있는 경우와 없는 경우가 거의 유사한 것으로 확인되었다. 그 후, non-CL과 CL 기법의 표현(Representation)을 시각화하고, 성능과 연관시킴으로써 추천 성능에 실제로 중요한 것은 graph augmenation이 아니라 CL의 Loss인 것을 알게 되었다. Contrastive Loss 함수인 InfoNCE는 Graph Augmenation이 적용되더라도 더 균일한 user-item 표현을 학습한다. 즉, Augmentation보다 CL Loss가 더 중요하다는 것을 의미한다.
그러나, Graph Augmentation이 장점이 없는 것은 아니다. Best Seller나 Influence, Heavy User 들로 인해 추천 제품이 편향되는 것을 Node Dropout, Edge Dropout을 통해 어느정도 완화할 수 있다. 게다가, 효과적이지는 않지만, 원래 그래프 학습보다는 CL을 적용한 경우 성능이 개선되었다. 그러나, Dropout을 수행할 때 직접 Graph를 만들어주어야 되기 때문에 시간이 많이 소모된다. 추가적으로, 노드나 엣지가 잘리기 때문에 실제 그래프와 Augmented 그래프 간의 차이가 존재할 수 있기 때문에 그로 인해 학습이 제대로 안될 수 있다.
그렇다면, 보다 "효율적인 Graph Augmentation 방법은 없을까?" 본 논문에서는 표현의 분포의 균일성이 핵심 포인트 인 것을 확인하고, 균일성을 더 제어할 수 있는 Augmentation 방법이 없는 간단한 CL 방법을 제안한다. 본 논문에서는 Node Dropout, Edge Dropout 등과 같은 방법 대신 그래프에 노이즈를 추가하였다. 서로 다른 노이즈를 그래프에 추가할 경우 contrastive view에서는 분산이 생성되는 반면에, 학습이 가능한 invariance는 제어된 크기로 인해 여전히 유지된다. 이때 contrastive view는 positive pair와 negative pair를 의미한다. 서로 같은 positive pair의 경우 표현이 가깝게, negative pair의 경우 다르게 학습하는 것이다. 이를 Graph Augmentation에 비해 노이즈 버전이 임베딩 공간을 보다 균일한 분포로 직접 정규화하므로 구현하는 것이 훨씬더 효율적이다.
위 내용을 정리하면 본 논문의 메인 Contribution은 아래와 같다.
- CL이 추천 성능을 높일 수 있는 이유를 실험적으로 밝히고 Graph Augmentation보다 InfoNCF 손실이 결정적인 요인인 것을 확인하였다.
- 노이즈를 추가하는 방법을 통해 균일도를 원활하게 조절할 수 있게 되어 Graph Augmenation 없는 CL 추천 방법을 제안하였다.
- simGCL이 3개의 벤치마크 데이터셋에서 추천 성능과 효율성 측면에 Graph Augmentation 기반 기법보다 본 논문에서 제안하는 simGCL의 우수한 것을 검증하였다.
2. Investigation of Graph Contrastive Learning in Recommendation
2.1 Graph CL for Recommendation
CL 기법은 Data Augmentation을 사용하여 추천 시스템에 적용한 경우가 많다. Augmentation을 통해 데이터를 생성하고, 이를 학습하여 편향을 줄이려는 것이 목적이다. 본 연구에서는 추천 시스템에서 SoTA를 달성한 SGL 기법을 사용하여 실험을 구성하였다. SGL은 Node Dropout, Edge Dropout 등을 통해 데이터를 Augmentation하고 CL 기법에 InfoNCE를 적용하여 다음과 같이 Loss를 측정한다.
InfoCNE는 추천 시스템을 통한 Loss인
2.2 Necessity of Graph Augmentation
CL 기반 추천 시스템이 작동하는 방식을 이해하기 위해서는 먼저 SGL에서 그래프 확장이 왜 필요한 지에 대해서 알아야 한다. 이를 확인하기 위해 먼저, Graph Augmentation이 없는 경우의 CL의 수식을 아래와 같이 표현하였다.
이때

SGL를 제안한 논문에서는 LightGCN과 성능을 비교하였으며, 실험 결과 SGL의 성능이 LightGCN에 비해 우수한 것을 확인하였다. 따라서, CL의 효율성이 검증되었다. 본 연구에서의 실험 결과, SGL-WA의 성능이 LightGCN보다 우수하고, 심지어는 SGL-ND, SGL-RW 보다 성능이 우수한 것을 확인하였다. 즉, CL Loss 만을 사용한 경우에도 성능이 향상되고, Graph Augmentation으로 인한 성능 개선은 미미한 것으로 확인되었다.
실험 결과를 바탕으로 다음과 같은 결론을 도출할 수 있다. Node Dropout과 Random Walk의 경우 주요 노드와 관련이 높은 엣지를 드롭할 가능성이 매우 높아 상관관계가 있는 subgraph를 연결되지 않은 조각들로 쪼개어 원본 그래프를 크게 왜곡해서 발생하는 문제라고 추측한다. 이를 통한 Graph Augmentation은 같은 노드 간의 표현이 같도록 학습하는 CL 방법에서는 오히려 부정적인 영향을 미칠 수 있기 때문이다. 반면에, Edge Dropout의 경우 원래 그래프를 크게 왜곡할 가능성이 낮아 다른 모델에 비해 이점을 가지기 때문에 성능이 우수한 것으로 확인된다. 그러나, Edge Dropout 역시도 모델을 학습할 때 인접 행렬을 재구성해야 하기 때문에 시간이 많이 소요된다. 따라서, 이를 극복하기 위한 대안이 제시되어야 한다.
2.3 InfoNCE Loss Influence More
기존 연구에서 InfoNCE를 최적화할 경우 positive pairs의 특징이 잘 정렬되고, hypersphere가 잘 정규화된 분포를 가지는 균일성을 띄는 것으로 확인했다. 위 방식이 추천 시스템에서도 동일한 패턴을 보이는 지 확인하기 위해 이에 대한 문제를 조사하였다.
실험 결과, LightGCN은 일부 공간에 클러스터링 되어 있는 것을 확인할 수 있고, SGL-WA, SGL-ED의 경우 LightGCN에 비해 조금 더 균일한 것을 확인할 수 있으며, Density 또한 덜 sharp 한 것으로 확인된다. 4 번째 그림의 경우 오직 CL Loss만 사용한 경우를 의미하며, 이때 가장 균일한 분포를 띄는 것을 확인할 수 있다.

본 논문에서는 LightGCN에서 특징들이 군집화를 이루는 이유에 대해서 다음과 같이 설명한다. 첫 번째는 LightGCN의 메세지 전달 메커니즘이다. Layer의 수가 증가할 수록 노드들의 표현은 주변 노드들과 비슷해진다. 두 번째는 추천 시스템에서의 데이터에 대한 문제다. LightGCN의 경우 아래와 같은 BPR Loss 를 사용한다.
BPR Loss는 관측된 정보와 관측되지 않은 정보 간의 차이를 최대화 하는 형태로 학습된다. 이때 미분을 수행하면
3. simGCL: Simple Graph Contrastive Learning for Recommendation
본 논문에서는 학습된 표현의 균일성을 조정함으로써 최적의 성능에 도달할 수 있다고 추측하고, 이를 위한 SimGCL (Simple Graph Contrastive Learning method) 모델을 제안한다.
3.1 Motivation and Formulation
Node Dropout, Edge Dropout 처럼 그래프 구조를 조작하는 것은 다루기 힘들 뿐더러, 시간이 많이 걸리기 때문에 본 논문에서는 아래와 같이 임베딩 공간에서 노이즈를 주어 균일성을 조정하고자 한다.
이때

첫 번째 제약 조건은
본 논문에서는 실험을 하기 위해 LightGCN의 graph encoder 구조를 가지고 와서 노드의 정보를 Propagate하고, 단순한 구조와 효율성을 이용하여 노이즈로 인한 편차의 영향을 증폭시켰다. 각각의 Layer마다 서로 다른 크기의 노이즈를 부여하였으며, 이를 수식으로 표현하면 아래와 같다.
3.2 Regulating Uniformity
SimGCL에는
이때

3.3 Complexity

시간 복잡도만 본다면 SimGCL이 왜 효율적이라고 하는지 모를 수 있다. Graph perturbation 연산은 CPU에서 연산이 수행된다. 반면에 본 논문에서 제안하는 SimGCL의 경우 Graph Convolution 연산을 수행할 때 노이즈를 만들어 사용하기 때문에 GPU에서 연산이 가능하다. 따라서, 매우 효율적으로 연산이 가능하다.
4. Experimental Results
4.1 Experimental Settings
본 논문에서는 Douban-Book, Yelp2018, Amazon-Book 데이터를 활용하여 실험을 진행하였다. 실험 결과를 비교하기 위해 벤치마크 모델은 Mult-VAE, DNN+SSL, BUIR, MixGCL을 사용하였다. 자세한 파라미터 세팅은 아래의 그림으로 대체한다.

4.2 SGL vs SimGCL: From a Comprehensive Perspective
4.2.1 Performance Comparison
SGL과 SimGCL의 성능 비교결과, SGL과 SimGCL 모든 결과가 LightGCN 보다 우수한 성능을 보이고 있다. Bouban-Book 데이터셋에서 가장 큰 성능 개선을 보여주었으며, Layer의 수가 1인 경우에 가장 성능이 좋았다. 본 논문에서는 Layer를 3개 까지만 쌓아서 사용했는데, SGL과 SimSGL은 일반적으로 Layer가 낮을 때 성능이 우수한 것으로 확인되었기 때문이다.
SGL-ED의 경우 성능이 우수하지만, SGL-ND의 경우 SGL-RW 에 비해 성능이 저하되는 것을 볼 수 있다. 이는, CL Loss가 성능 향상에 주요한 원인인 것에 반하여, Graph Augmentation은 예상만큼 효과적이지 않을 수 있다는 것을 의미하고, 일부는 성능을 저하시킬 수 있다는 것을 의미한다.

4.2.2 Convergence Speed Comparison
LightGCN의 경우 가장 간단하기 때문에 제일 먼저 수렴하는 것을 확인할 수 있으나, Douban-Book의 경우 수렴 값도 제일 높은 것으로 확인된다. SimGCL의 경우 GCL에 비해서는 수렴속도가 빠른 것을 확인할 수 있다.

4.2.3 Running Time Comparison
본 논문에서는 RTX 2080Ti를 사용하여 실험을 진행하였다. LightGCN의 Runtime 속도를 기준으로 비교하였다. SimGCL은 SGL-WA 만큼 빠르지는 않지만 그래도 SGL-ED에 비해서는 빠른 속도를 보여주고 있다.

4.2.4 Ability to Debias
본 논문에서 사용하는 노이즈 기법이 실제 편향을 낮출 수 있는지 확인하고자 다음과 같은 실험을 진행하였다. 먼저 구매/클릭 횟수가 적은 80%에 위치한 항목은 'Unpopular'으로 표시하고, 상위 5% 항목은 'Popular'으로 표시하였으며, 나머지는 'Normal'로 표시하였다. SimGCL 은 다른 항목들에 비해 인기 있지 않은 제품을 보다 많이 추천하는 것으로 확인된다. 따라서, Debias 한 것으로 확인된다.

LightGCN은 별도의 처리 없이 제품을 추천하기 때문에 모델을 학습하는 과정에서 인기 있는 제품의 영향을 많이 받게 된다. 반면에, SGL과 SimSGL의 경우 CL 학습을 통해 인기 있는 제품을 없해거나, 제품 간의 균일성을 통해 인기 있는 제품만 추천 되는 것을 방지할 수 있어서 Long-tail Distribution을 가진 추천 시스템 분야에서 매우 효과적으로 활용될 수 있다.
4.3 Parameter Sensitivity Analysis
본 논문에서는

4.4 Performance Comparison with Other Methods
이전까지는 전부 SimSGL의 성능을 SGL 혹은 LightGCN 만 비교하였다. 4.4 절에서는 다른 SoTA 모델과 비교하여 성능이개선되었는지 확인하였다. 당연히 모든 데이터셋에 대해 SimGCL의 성능이 가장 우수한 것으로 확인된다. MixGCF의 성능도 우수한 것으로 보인다.

4.5 Performance Comparison with Different Types of Noises
본 논문에서는 SimSGL에서 노이즈를 생성할 때 균일분포를 사용하여 구현하였다. 그러나, 노이즈를 생성하는 방법에는 다양한 방법이 존재한다. 4.5 절에서는 노이즈를 생성하기 위해 다양한 분포를 사용하여 실험을 검증하고 어떤 분포의 노이즈일 때 성능이 가장 우수한지 확인하고자 한다.

Conclusion
본 논문에서는 추천 시스템에서 처음 사용된 Dropout 기반 CL을 다시 뜯어보고 추천 성능을 향상시키고자 하는 연구를 진행하였다. 실험 결과, CL 기반 추천 모델에서 Graph Augmentation이 핵심이 아니라, CL Loss가 핵심이라는 것을 확인하였다. 최적화된 CL Loss는 표현 분포를 보다 균일하게 만들고 있으며, 이는 추천 시스템에서 제품 추천에 편향이 생기지 않도록 만들어 준다. 다시 말해, 실제 제품을 추천할 때 많이 구매된 제품 등으로 인해 추천이 편향되는 문제가 존재하지만, CL Loss를 사용하면 추천이 편향되는 문제를 일부 해소할 수있다. 그 다음 직접적인 방식으로 표현 분포의 균일성을 조절하기 위해 노이즈를 사용하는 방법을 적용한 SimSGL을 제안하였다. 실험을 통해 SimSGL이 기존 방법에 비해 성능이 우수하고, 훈련 시간 역시 단축시킬 수 있다는 것을 확인하였다.