In-Batch Negative Sampling은 인기 있는 아이템(상품/영화)이 상대적으로 더 자주 네거티브 샘플로 선택될 가능성이 높습니다.
이 현상은 데이터 분포의 편향성에서 비롯되며, 추천 시스템의 성능에 영향을 미칠 수 있습니다.
1. 문제: 인기 아이템의 과도한 네거티브 샘플링
(1) 발생 원인
- 인기 아이템의 빈도 수:
인기 있는 아이템은 데이터셋에서 더 자주 등장합니다.
→ 배치 내에 포함될 확률이 높아 자연스럽게 네거티브 후보로 더 많이 선택됩니다.
- 예시:
- Positive:
user_A가 인기 영화 "인셉션"을 시청 → "인셉션"은 user_A의 positive.
- Negative: 동일 배치의
user_B, user_C 등 다른 사용자에게 "인셉션"은 네거티브로 사용됨.
→ "인셉션"이 배치에 포함될 때마다 여러 네거티브 샘플로 재활용됩니다.
(2) 문제점
- 편향된 학습:
모델이 인기 아이템을 과도하게 네거티브로 인식하도록 학습될 수 있습니다.
→ 실제로는 유저에게 적합할 수 있는 인기 아이템이 추천에서 배제될 위험.
- 소수 아이템의 희생:
드물게 등장하는 아이템(장기 꼬리 아이템)은 네거티브 샘플링 확률이 낮아 제대로 학습되지 않을 수 있음.
2. 해결 방안
(1) 샘플링 전략 보정
- 가중치 부여 (Importance Weighting):
아이템의 빈도 수에 반비례하는 가중치를 적용해, 인기 아이템이 네거티브로 선택될 확률을 감소시킵니다.
- 예:
sampling_probability = 1 / (아이템 등장 횟수 + α) (α: smoothing 파라미터).
- 명시적 네거티브 샘플링:
In-Batch Negative에 더해 랜덤 샘플링 또는 하드 네거티브 샘플링을 혼합합니다.
(2) 손실 함수 수정
- 편향 보정 항 추가:
아이템의 인기도를 고려한 보정 항을 손실 함수에 포함합니다.
- Focal Loss 활용:
쉽게 구분되는 샘플(인기 아이템)보다 어려운 샘플(소수 아이템)에 더 큰 가중치를 부여합니다.
(3) 하이브리드 샘플링
- In-Batch + 외부 샘플링:
배치 내 네거티브와 함께 전체 아이템 풀에서 균일하게 샘플링된 네거티브를 추가합니다.
→ 인기 아이템 편향 완화 + 소수 아이템 학습 기회 증가.
(4) 모델 아키텍처 개선
- 인기도 분리 임베딩:
아이템 임베딩을 인기도와 콘텐츠 특징으로 분리해 학습합니다.
→ 모델이 인기도와 콘텐츠를 구분하도록 유도.
- Two-Tower 모델 확장:
사용자-아이템 상호작용 빈도를 별도의 모듈로 학습합니다.
3. 실제 사례: YouTube 추천 시스템
- 문제: 인기 동영상이 과도하게 네거티브로 사용되면, 개인화 추천 성능 저하.
- 해결:
- 샘플링 보정: 인기 동영상의 네거티브 선택 확률을 인기도에 따라 조정.
- 온라인 하드 네거티브 샘플링: 모델이 실시간으로 예측한 False Positive를 네거티브로 추가.
4. 요약
- ✅ 인기 아이템은 In-Batch Negative 샘플링에서 편향적으로 선택됩니다.
- ✅ 원인: 데이터 내 빈도 수 차이 → 배치 내 과도한 노출.
- ✅ 해결: 샘플링 전략 보정, 손실 함수 수정, 하이브리드 샘플링 등을 통해 편향 완화.
이 문제를 해결하지 않으면 모델이 인기 아이템을 과소평가하거나 소수 아이템을 무시하는 결과를 초래할 수 있습니다. 도메인에 맞는 전략을 선택해 적용하는 것이 중요합니다