← notes

Sampling-bias-corrected Two-Tower Recommendation @Youtube

, ,

Two Tower Model

추천 시스템 Retrieval 단계에서의 역할

YouTube DNN (Covington et al., 2016)에서 산업 표준이 된 두 단계 아키텍처:

Two-Tower는 Retrieval 단계의 표준 구조다. 각 탑은 연속 은닉층에서 유닛 수가 절반씩 감소하는 구조이며, 정식 정의는:

학습 목표는 positive (xi,yi)(x_i, y_i) 쌍을 임베딩 공간에서 가깝게, negative 쌍을 멀리 배치하는 것 → Negative Sampling 참고.

변형 및 확장

In-batch Negative Sampling - 임베딩 기반의 대규모 분류/유사도 학습 시 사용되는 트릭으로

현재 mini-batch 안의 다른 item들을 negative로 재활용
- 별도 negative 샘플링 과정이 불필요하고 메모리 절약, 설정에 따라 hard negative 역할도 가능

선택 편향 (Selection Bias)

BNS의 핵심 문제: 인기 아이템이 미니배치에 더 자주 등장 → 아이템 선택 확률이 Unigram 분포를 따름

logQ 보정 (Yi et al., 2019)

점수에서 샘플링 확률의 로그를 빼 편향을 보정:

sc(xi,yj)=s(xi,yj)−log⁡Q(j)s^c(x_i, y_j) = s(x_i, y_j) - \log Q(j)

여기서 Q(j)=count(j)∑kcount(k)Q(j) = \frac{\text{count}(j)}{\sum_k \text{count}(k)} (아이템 jj의 Unigram 확률)

인기 아이템일수록 log⁡Q(j)\log Q(j) 값이 커서 점수가 낮아지고, 롱테일 아이템은 상대적으로 점수가 올라가 편향이 완화된다.

요청 정렬 데이터에서의 거짓 음성 (False Negative)

학습 데이터를 Request-level Deduplication 목적으로 요청(request) 단위로 정렬하면 IID 가정이 깨지면서 거짓 음성이 급증한다.

해결책: user-level masking — 동일 사용자(요청)에서 온 아이템은 negative 후보에서 제외하고, 다른 사용자의 아이템만 negative로 사용. logQ 보정(logQ 보정)은 별도로 유지.