이전에 S³-Rec을 분석하면서 self-supervised 학습이 추천 시스템에서 얼마나 강력한지 알게되었고, 자연스럽게 후속 연구들이 어떤 방향으로 확장되는지 궁금해졌음
그러다 contrastive learning을 시퀀스 추천에 직접 적용한 CL4SRec을 확인하게 되었고, 기존 한계를 어떻게 개선했는지 살펴보고자 본 논문을 선정함
CL4SRec은 self-supervised learning(자기지도학습) + contrastive learning(대조학습) 을 시퀀스 추천에 활용하는 최초의 시도임
초기: Markov Chain 기반
→ 바로 다음 행동만 고려하여 성능이 낮음
중기: RNN, LSTM, GRU 기반
→ 시퀀스 전반을 고려하지만 long-term dependency 한계
최근(2021 기준) : Transformer 기반 SASRec 등장
→ self-attention으로 중요한 아이템들에 집중
→ SOTA 달성
또 다른 라인: GNN 기반 모델
→ 그래프 구조에서 이웃 정보를 활용하나
→ computational cost 큼 + 복잡함 증가
하지만 여전히 문제는 레이블 부족 + sparse
1) Prediction-style task
Masked prediction(BERT)
→ 시퀀스 일부 토큰을 [MASK]로 가리고, 모델이 가려진 원래 아이템을 맞히도록 학습시키는 방식
Rotation prediction
→ 시퀀스를 임의로 회전(shift)시켜 순서를 섞어놓고, 모델이 원래의 올바른 시작 위치를 맞히도록 학습시키는 방식.
Jigsaw puzzle
→ 데이터를 변형하고 원래를 맞추는 방식
2) Contrastive learning
여기서 CL4SRec이 등장하여 sequence-level contrastive를 최초로 제안함
사용자의 시퀀스를 3가지 방식으로 랜덤하게 변형시켜 두 개의 correlated views 생성함
(1) Item Crop
시퀀스 일부 구간만 남기기
→ 지역적인 취향 정보 캡처
(2) Item Mask
token을 [MASK]로 가리기
→ BERT의 masked LM과 유사한 효과
(3) Item Reorder
아이템 순서를 일부 섞기
→ 시퀀스 순서가 조금 바뀌어도 취향은 동일하다는 가정
두 개의 augmentation(ai, aj)을 적용하여 두 개의 view를 생성함
SimCLR loss :
수식 설명
contrastive learning에서 사용하는 loss 값
이 값을 최소화하는 방향으로 학습이 이뤄짐
→ 같은 user u의 시퀀스에 서로 다른 augmentation 를 적용한 두 개의 view
(temperature)
우리가 원하는 건 anchor와 진짜 positive 쌍이 선택될 확률이 최대화 하는 것인데 그 확률을 최대화하는 대신
→ 그 확률에 log를 취하고 마이너스를 붙여서그 값을 최소화하는 형태로 바꾼 것
그래서 학습이 진행되면서
→ positive 쌍의 similarity는 점점 커지게 만들고
→ negative 쌍의 similarity는 상대적으로 작아지도록 압박하는 구조가 됨
contrastive loss는 같은 유저 시퀀스에서 나온 두 augmentation view의 유사도가 모든 다른 시퀀스들과의 유사도보다 상대적으로 높아지도록 확률 형태로 강제하는 함수라고 보면 되며 CLS4Rec 성능의 핵심임
CL4SRec의 핵심은 사용자 행동 시퀀스를 여러 다른 관점(view)으로 변환해 self-supervised 신호를 만듦
이를 위해 세 가지 증강 기법을 사용함
이미지에서 crop 하듯이, 사용자 시퀀스에서 연속된 일정 길이의 sub-sequence만 남기고 나머지를 버림
사용자의 최근 행동 패턴에 집중하게 해주며 두 개의 서로 다른 crop을 만들면, 상호 겹치지 않을 때는 다음 아이템 예측 같은 신호도 만들어짐
즉, 로컬한 관심사 + 다음 행동을 더 선명하게 학습하도록 만들기 때문에 representation 품질 향상에 도움됨
NLP에서 word dropout과 비슷하며 시퀀스에서 일정 비율(η)의 아이템을 골라 [mask] 토큰으로 대체함
사용자가 특정 제품을 구매하려는 의도는 전체 시퀀스에 균질하게 나타나므로, 일부 아이템이 mask 돼도 중심 관심사를 유지할 수 있음
서로 다른 masking 결과물 두 개를 만들면 같은 사용자 시퀀스에서 나온 두 view가 동일한 선호를 나타내도록 representation을 학습할 수 있음
원래 순서 기반 모델은 시퀀스의 순서를 강하게 신뢰하지만, 실제로는 클릭 순서가 뒤죽박죽일 수도 있고 여러 행동이 동시에 발생하기도 함
reorder 증강은 시퀀스 내 일부 구간을 랜덤하게 섞어서 순서에 대한 강한 의존도를 완화함
모델이 순서 노이즈에 덜 민감해지고, 시퀀스 전반의 맥락을 좀 더 유연하게 파악할 수 있게 됨
CL4SRec은 SASRec과 동일한 Transformer Encoder 구조를 사용함
Transformer 기반 SASRec 구조:
CL4SRec의 최종 objective는
(1) 추천용 메인 loss (sequence prediction)
(2) contrastive learning loss (representation alignment)
두 개를 함께 학습시키는 형태임
1) Main Loss (L_main)
2) Contrastive Loss (L_CL)
최종적으로 λ는 두 loss 간의 trade-off를 조절하여 prediction과 representation 간 균형을 맞추게 됨
Main Loss는 정답 맞추는 것에 Contrastive Loss는 똑똑한 표현을 만드는 것에 집중하며
두 개가 결합되면서 CL4SRec은 단순한 ranking accuracy를 넘어 더 견고하고 일반화 능력이 높은 추천 모델을 만들게 됨
Research Questions (RQ)
논문에서는 실험을 통해 아래 5가지 질문을 해결하려고 함
RQ1. CL4SRec은 기존 state-of-the-art sequential recommendation 모델보다 성능이 좋은가?
RQ2. 서로 다른 augmentation 방식(크롭·마스크·리오더)이 성능에 어떤 영향을 주는가?
RQ3. contrastive loss의 가중치 λ 값이 multi-task 학습 프레임워크에서 어떤 영향을 주는가?
RQ4. CL4SRec의 구성 요소들(augmentation + contrastive learning)이 각각 성능 향상에 어떻게 기여하는가?
RQ5. CL4SRec은 실제로 다른 모델보다 “더 좋은 user sequence representation”을 학습하는가?
전체적으로 모델 구조 + augmentation 조합 + loss weighting이 성능에 어떤 영향을 주는지 다각도로 검증하는 구성임.

CL4SRec은 4개 데이터셋 모두에서 모든 SOTA baseline을 초과하는 성능을 보임
주요 결과:
평균 개선:

결과 요약:
어떤 augmentation 방식도 대부분 SASRec보다 우수함
dataset마다 가장 효과적인 augmentation은 다름
Sports → Mask
Yelp → Crop
augmentation 비율(0.1~0.9)에는 최적 구간이 존재
→ 너무 적으면 self-supervised 신호 부족
→ 너무 많으면 원본 변형이 커져 정보 손실 발생
→ 적절한 변형 수준이 contrastive learning 성능을 극대화함
핵심 패턴:
Contrastive learning은 “적당히” 섞여야 효과적이며, representation quality와 prediction 사이의 밸런스가 중요함
모델 비교:

결론:
SASRec_aug > SASRec
→ augmentation만으로도 학습 generalization이 개선됨
CL4SRec > SASRec_aug
→ contrastive loss가 representation 품질을 크게 향상
Figure 6을 통해 CL4SRec embedding이 더 의미 있는 구조를 형성함을 시각적으로 확인
Yelp의 “친구 관계(friend links)” 데이터를 이용해 latent space에서의 유저 유사도를 측정

결과:
평균 cosine similarity
→ SASRec: 0.5198
→ CL4SRec: 0.6100
CL4SRec의 embedding은 비슷한 취향(친구 관계) 사용자끼리 더 가깝게 위치
학습 중 friend 정보는 사용하지 않았음에 embedding 구조가 더 semantic하게 형성됨
CL4SRec은 단순 추천 정확도뿐 아니라 user representation quality 자체가 개선됨
본 논문에서는 Contrastive Learning for Sequential Recommendation (CL4SRec) 라는 새로운 모델을 제안하였으며 CL4SRec은 interaction 데이터만으로도 효과적인 사용자 표현 학습이 가능하도록 설계되었음
contrastive learning 프레임워크를 활용하여 추가 레이블 없이 raw sequence로부터 self-supervised 신호를 추출하고 crop, mask, reorder의 세 가지 data augmentation 전략을 제안을 함
네 개의 공개 데이터셋(Beauty, Sports, Yelp, ML-1M)에서의 실험 결과 CL4SRec은 기존 SOTA 모델들보다 일관적으로 우수한 성능을 보이며 contrastive learning이 sequential recommendation에서 매우 효과적임을 입증함
지난주에 리뷰했던 S³-Rec 논문에 이어, 이번에는 또 다른 추천시스템 관련 연구를 선택하여 리뷰하였음
BERT4Rec → S³-Rec → CL4SRec 으로 이어지는 흐름을 따라가며, 추천 모델이 어떻게 발전해 왔는지 살펴보니 새로운 모델을 제안할 때 어떤 관점에서 성능을 개선하려 하는지 점점 더 이해하게 되는 느낌이음
특히 이번 논문에서는 contrastive learning을 추천 시스템에 적용한다는 점이 가장 인상적이었는데 contrastive learning은 현재 다양한 영역에서 활용되는 핵심 기법이며 이를 sequential recommendation에 효과적으로 녹여낸 방식이 매우 흥미로웠음
그래서 이번 리뷰에서는 다른 논문들보다 관련 수식과 학습 구조를 좀 더 깊이 정리하는 데 집중하였는데 이유는 수식을 이해하는 것이 CL4SRec의 핵심이라고 판단했기 때문임
물론 2021년 논문이라 최신 연구는 아니지만, 당시 기준으로는 충분히 의미 있는 임팩트를 가진 연구라고 생각하며 앞으로도 최신 논문까지 연속적으로 리뷰하며, 추천 시스템 분야의 흐름을 계속 따라가 보고자 함
++ 그리고 추천뿐 아니라 다른 분야 논문도 가끔 탐색하며 시야를 넓히는 것도 좋을 것 같음!
논문 만족도 : ⭐️⭐️⭐️ (contrastive learning을 활용한 점이 인상깊었음)
논문 이해도 : ⭐️⭐️⭐️⭐️ (논문 핵심이라 생각한 수식을 자세히 리뷰하니 이해가 더 잘됨)
추천시스템 관심도 : ⭐️⭐️⭐️⭐️ (추천시스템은 현실 서비스에서 가장 큰 영향을 미치는 분야라 생각해서 관심이 많음)