🎭

BERT4Rec

Masked Language Model을 추천에 적용 — 빈칸 맞추기로 유저 취향 학습

SASRec은 왼쪽→오른쪽 단방향 attention을 쓴다. BERT4Rec(2019, Sun et al.)은 양방향이다.

시퀀스 [A, B, C, D, E]에서 C를 [MASK]로 바꾸고, A, B, D, E를 모두 참고해서 C를 맞추는 방식. BERT가 텍스트에서 하던 것과 똑같다.

단방향 vs 양방향

SASRec: A → B → C → ? (오른쪽만 예측)
BERT4Rec: A → ? → C → D (양쪽 문맥 활용)

양방향이 직관적으로 더 강해 보이지만, 실제 서빙에서는 "다음 아이템 예측"이 필요하기 때문에 추론 시에는 마지막 위치를 마스킹하는 방식으로 변환해야 한다.

학습 vs 서빙의 괴리

학습은 랜덤 위치 마스킹, 서빙은 마지막 위치 예측. 이 gap이 성능에 영향을 줄 수 있다. 최근에는 이 문제를 완화하는 변종들이 나오고 있다.

동작 원리

1

유저 행동 시퀀스에서 랜덤 위치를 [MASK]로 교체

2

Bidirectional Transformer로 마스킹된 아이템 예측

3

양방향 문맥이 표현에 반영됨

4

서빙 시에는 마지막 위치를 마스킹하여 다음 아이템 예측

장점

  • 양방향 문맥 활용 — 단방향보다 풍부한 표현
  • BERT 생태계의 도구/기법 재활용 가능

단점

  • 학습-서빙 간 목적 함수 차이 (train-serve gap)
  • SASRec 대비 항상 우월하지는 않음 (데이터에 따라 다름)

사용 사례

유저 히스토리에서 누락된 선호 아이템 복원 E-commerce 세션 내 다음 클릭 예측

참고 자료