인과 RL로 추천 그래프 신경망 편향 제거
Source: Dev.to
학부 연구로 그래프 신경망(GNN)과 인과 추론을 탐구하면서, 현대 추천 시스템의 큰 결함인 관측 편향을 발견했습니다.
표준 추천 알고리즘—최신 GNN인 LightGCN과 NGCF조차도—편향된 데이터에서 학습합니다. 인기 아이템이 더 많이 노출되고, 그 결과 클릭이 늘어나면서 피드백 루프가 형성돼 인기 편향이 강화되고 니치 아이템은 묻히게 됩니다.
이를 해결하고자 저는 GNN과 인과 강화학습을 결합한 오픈소스 프레임워크를 만들었습니다.
아래는 제가 진행한 과정입니다.
👋 안녕하세요, 저는 Tasfin Mahmud입니다! BRAC University에서 컴퓨터 과학 연구원으로 활동하고 있으며 오픈소스 기여자이기도 합니다. 제 포트폴리오 웹사이트와 GitHub에서 제 작업을 더 알아볼 수 있습니다.
베이스라인 모델 구현
먼저 PyTorch Geometric(PyG)으로 세 가지 견고한 아키텍처를 구현했습니다.
- LightGCN: 비선형 변환을 없앤 최소주의 접근법.
- NGCF (Neural Graph Collaborative Filtering): 특징 상호작용 항을 통해 고차 연결성을 명시적으로 모델링.
- GAT‑CF: 협업 필터링에 맞게 변형된 그래프 어텐션 네트워크.
이 모델들은 표준 지표에서 매우 좋은 성능을 보이지만, 관측 데이터로 평가하면 테스트 데이터가 학습 데이터와 동일한 노출 편향을 공유하기 때문에 지표가 과대평가됩니다.
인과적 디바이싱 기법 4가지
인기 루프를 끊기 위해 다음 네 가지 보완적인 인과 디바이싱 기법을 구현했습니다.
-
IPS (Inverse Propensity Scoring) 디바이싱
- Bayesian Personalized Ranking(BPR) 손실을 노출 확률로 나누어 재가중합니다.
- 드물게 노출된 아이템은 더 큰 그래디언트를 받고, 초인기 아이템은 스케일이 낮아집니다.
-
두 개의 임베딩 공간 유지
- 사실 공간: 편향된 데이터에서 학습된 임베딩.
- 반사실 공간: 균등 노출을 가정한 임베딩.
- 불일치 정규화자를 사용해 사실 표현을 반사실(편향 없는) 표현 쪽으로 끌어당겨, 노출 분포에 과적합되는 것을 방지합니다.
-
인과 보상 형태(Causal Reward Shaping)와 REINFORCE
- 추천을 순차적 의사결정 문제로 보고 REINFORCE 알고리즘을 적용.
- 관측된 보상을 “진정한 선호”(인과 성분)와 “인기 편향”(혼동 성분)으로 분해합니다.
- Doubly Robust(DR) 추정을 사용해 로그 데이터로부터 학습할 때 안정성을 크게 향상시킵니다.
-
잠재 혼동 요인 자동 탐지
- 노출 행렬에 Truncated SVD를 적용해 잠재적인 혼동 요인을 자동으로 식별하고, 이를 보상 형태 과정에 통합했습니다.
실험 결과 (LightGCN, MovieLens 100k)
| Model | Mode | Recall@20 | NDCG@20 | Notes |
|---|---|---|---|---|
| Standard (Baseline) | 0.1676 | 0.1624 | 표준 편향 관측 학습 | |
| IPS Debiasing | 0.1453 | 0.1543 | 희귀 아이템에 가중치 부여; 편향 테스트 데이터에서는 점수 감소 예상 | |
| CausE | 0.1675 | 0.1625 | 균등 노출에 대해 정규화 | |
| Causal PG (DR) | 0.1593 | 0.1602 | 이중 강인 정책 그래디언트 |
(참고: 디바이싱된 모델을 기존 편향 테스트 세트에 평가하면 원시 지표 점수가 낮아 보입니다. 이는 테스트 세트가 동일한 노출 편향을 공유하기 때문이며, 진정한 향상을 확인하려면 편향되지 않은 로그 데이터가 필요합니다.)
결론
GNN은 추천에 강력한 도구이지만 인과 추론이 없으면 데이터에 존재하는 편향을 증폭시키는 역할에 불과합니다. IPS와 인과 정책 그래디언트 같은 기법을 활용하면 인기가 아니라 사용자 선호를 진정으로 이해하는 추천 시스템을 만들 수 있습니다.
🔗 전체 프레임워크는 GitHub에서 확인하세요:
gnn-collaborative-filtering
🔗 제 연구와 오픈소스 작업에 대해 더 알고 싶다면:
tasfinmahmud.github.io
댓글로 인과 추론을 활용한 추천 시스템 경험을 공유해 주세요!