추천 시스템은 사용자가 무엇을 “좋아할지” 예측하는 기술입니다. 특히 전자상거래, 음악 스트리밍, 영상 플랫폼처럼 implicit feedback(암묵적 피드백)이 중심이 되는 서비스에서는 사용자가 클릭·구매·시청한 기록만 주어지고, 명시적으로 1~5점 같은 평점을 남기지 않습니다.
이 경우 행동 기록은 단순히 “본 적 있는 아이템” 또는 “본 적 없는 아이템”으로 불완전하게 주어지는데, 여기서 등장한 혁신적인 방식이 Bayesian Personalized Ranking (BPR) 입니다.
BPR의 핵심은 다음 한 문장으로 요약할 수 있습니다.
“사용자가 본 아이템은 안 본 아이템보다 더 선호한다고 가정하고, 이 선호 쌍(pairwise preference)을 최대화하도록 학습하자.”
⸻
전통적인 행렬분해(Matrix Factorization)는 보통 평점 기반(명시적 피드백)을 가정합니다.
예:
• 유저 A가 영화 1에 ★★★★☆, 영화 2에 ★☆☆☆☆ 기록
• 이를 기반으로 잠재요인을 학습
그러나 Netflix, Amazon, YouTube처럼 평점이 없는 환경에서는 다음 문제가 생깁니다.
문제 1: “0”이 의미하는 것이 불명확함
• 사용자가 아이템을 싫어서 안 본 것인지
• 단순히 노출이 안 되어 못 본 것인지
구분이 불가능합니다.
문제 2: 명시적 피드백 기반 모델은 암묵적 피드백에는 비적합
암묵적 피드백은 선호의 강도를 주지 않으므로, “보았다/안 보았다” 간의 상대적 선호도(relative preference) 개념이 필요합니다.
문제 3: 추천이 결국 필요한 것은 “선호도 순위”
추천 시스템의 궁극적 목표는 “예측 점수”가 아니라 정렬된 순위입니다.
BPR은 처음부터 순위(rank)를 최적화하도록 설계된 알고리즘입니다.
⸻
3.1 Pairwise Ranking 관점
사용자가 아이템 i를 클릭했고 아이템 j는 클릭하지 않았다면:
u는 아이템 i를 j보다 더 선호한다 (i > j).
각 유저 u마다 (i, j) 쌍을 만들어 학습합니다.
3.2 목적 함수
BPR은 다음과 같은 목표를 최대로 만듭니다.
\max \sum{(u,i,j)} \ln \sigma(\hat{x}{uij}) - \lambda||\Theta||^2
여기서
• \hat{x}{uij} = \hat{x}{ui} - \hat{x}_{uj}
• \sigma는 sigmoid
• (u,i,j)는 “u가 i를 j보다 선호한다”는 삼중쌍
• \Theta는 파라미터(Latent factor 등)
즉,
사용자가 선호한 아이템의 점수가 비선호 아이템보다 크게 만들도록 확률을 최대화
하는 것입니다.
⸻
아래 예시는 직관적으로 BPR이 어떻게 작동하는지 보여줍니다.
⸻
예시 1: 영화 추천 서비스
사용자 A의 행동:
• 영화 〈인터스텔라〉 · 〈다크나이트〉 시청
• 〈라라랜드〉 · 〈토이 스토리〉는 시청 X
BPR은 다음과 같은 훈련 데이터를 생성합니다.
• A prefers 인터스텔라 > 라라랜드
• A prefers 인터스텔라 > 토이 스토리
• A prefers 다크나이트 > 라라랜드
• A prefers 다크나이트 > 토이 스토리
즉, (i=인터스텔라, j=라라랜드)처럼 pairwise 데이터를 생성합니다.
모델은 반복적으로 아래를 학습합니다.
• 인터스텔라의 점수가 라라랜드보다 크도록
• 인터스텔라의 점수가 토이 스토리보다 크도록
• 다크나이트의 점수가 라라랜드보다 크도록
• 다크나이트의 점수가 토이 스토리보다 크도록
최종적으로 A에게는 인터스텔라와 다크나이트 계열의 “어두운 SF/스릴러” 영화가 상위에 추천됩니다.
⸻
예시 2: 쇼핑몰 상품 추천
사용자 B의 행동:
• 운동화 클릭/구매
• 티셔츠 클릭
• 모자/백팩은 보지 않음
BPR은 다음처럼 pairwise 비교를 합니다.
• 운동화 > 모자
• 운동화 > 백팩
• 티셔츠 > 모자
• 티셔츠 > 백팩
그러면 모델은 B의 벡터를 “패션 중에서도 스포츠/스타일리시 취향”으로 업데이트합니다.
추천 결과:
• 아디다스 신상 운동화
• 나이키 기능 티셔츠
• 러닝 웨어
이런 식으로 “선호 순위 기반” 추천이 가능합니다.
⸻
예시 3: 음악 스트리밍
사용자 C는
• BTS의 Pop 장르만 자주 재생
• Rock은 거의 재생 X
그러면
• Pop > Rock
• Pop > Jazz
와 같은 pairwise가 생성되어 latent factor가 Pop 쪽으로 이동합니다.
결국 C의 홈 화면에는
• BTS
• NewJeans
• Charlie Puth
과 유사한 Pop 기반 아티스트가 상단 노출됩니다.
⸻
5.1 SGD (Stochastic Gradient Descent)
BPR은 확률적 경사하강법을 활용합니다.
1. 유저 u 임의 선택
2. u가 시청한 아이템 i 선택
3. u가 시청하지 않은 아이템 j 무작위 샘플링
4. 점수 차이 \hat{x}{ui}-\hat{x}{uj} 계산
5. sigmoid를 통해 확률화
6. 경사하강 update
7. 반복
중요 포인트
그냥 “점수 예측”이 아니라 “차이(score difference)”를 직접 최적화합니다.
⸻
이름에는 Bayesian이 들어가지만 모델이 베이지안 확률 모델을 완전하게 구현한다기보다는,
우리가 보고 있는 user preference data가 pairwise likelihood를 따른다
는 관점에서 베이지안적 추론을 활용한 것에 가깝습니다.
⸻
항목 MF BPR
입력 평점 기반(명시) 클릭/구매/재생(암묵)
목표 점수 예측 (RMSE 최소화) 순위 최적화 (pairwise likelihood 최대화)
학습 데이터 (u, i) (u, i, j)
0의 의미 “평점 없음” or “모름” “비선호 가능성”
결과 예측 점수 정렬 순위
⸻
1) 암묵적 피드백에 최적화
대부분의 실제 서비스가 평점 대신 클릭/시청의 로그만 가지므로 BPR이 매우 실용적입니다.
2) 순위(ranking) 자체를 직접 최적화
NDCG, MAP 같은 랭킹 metric을 향상시키는 데 매우 효과적입니다.
3) 매우 큰 데이터에서 효율적
Sampling 방식을 사용하므로 효율적인 확률적 학습 가능.
4) 간단하면서도 강력한 추천 품질
Latent factor + pairwise 구조라는 단순함에도 실제 성능은 매우 좋습니다.
⸻
1) 네거티브 샘플링 품질에 크게 좌우됨
클릭 안 한 모든 아이템 j가 실제 “비선호”인지 알 수 없음.
2) 매우 많은 (u, i, j) 조합 생성 필요
Implicit feedback이 커질수록 pairwise 데이터는 기하급수적으로 늘어남.
3) 희소성(sparsity) 문제는 여전히 존재
한 유저가 본 아이템 수가 적다면 pairwise 쌍도 적습니다.
4) context-aware 추천에는 추가 모델이 필요
시간대·디바이스·위치 등 맥락(join context)을 반영하려면 확장 모델이 필요합니다.
⸻
1) BPR-MF: 가장 기본
Matrix Factorization 기반 BPR.
2) BPR+Neural Networks
Neural Collaborative Filtering(NCF) 모델의 pairwise 구조로 확장.
3) BPR with side information
아이템 메타데이터(장르, 브랜드), 유저 프로필 정보를 함께 사용.
⸻
사용자가 i 상품을 클릭했다고 하자.
모델은 다음처럼 latent factor를 사용:
• 유저 벡터: p_u
• 아이템 벡터: q_i
이때 예측 점수는
\hat{x}_{ui} = p_u^\top q_i
그리고 학습의 목표는
P(i > j | u) = \sigma(p_u^\top q_i - p_u^\top q_j)
즉,
같은 유저 u일 때, i의 내적이 j의 내적보다 크면 된다.
그렇게 되도록 gradient를 통해 u, i, j 벡터를 조정합니다.
⸻
시나리오: 전자상거래 추천 엔진 구축
Step 1. 로그 수집
• view, click, add-to-cart, purchase
이를 implicit positive로 간주하고 “본 기록 없는 아이템”을 negative candidate로 처리.
Step 2. pairwise 생성
• 유저 u가 구매한 상품 i
• 유저 u가 구매하지 않은 상품 j
→ (u, i, j) 생성
Step 3. BPR-MF 훈련
latent factor 50~200차원
SGD 학습 반복
Step 4. 추천 결과 생성
\hat{x}_{ui} = p_u^\top q_i
값이 큰 순으로 정렬하여 Top-N 추천
Step 5. A/B 테스트
CTR, 구매전환율 상승 확인
이런 구조는 한국의 대형 쇼핑몰뿐 아니라 전 세계 대부분의 커머스에서 널리 사용됩니다.
⸻
BPR은 “암묵적 피드백 중심의 순위 최적화 알고리즘”이라는 점에서 오늘날 추천 시스템의 표준 중 하나입니다.
핵심은:
• 사용자가 본 아이템 > 안 본 아이템
• 점수 차이를 sigmoid로 확률화
• pairwise likelihood를 최대화
• SGD 기반으로 효율적으로 학습
BPR은 단순하지만 실제 서비스에서 높은 추천 품질을 보여주며, 신경망 기반 모델들이 등장한 이후에도 여전히 강력한 baseline이자 중요한 구성 요소로 널리 활용되고 있습니다.