우리가 유튜브에서 동영상을 추천받거나 넷플릭스에서 취향에 맞는 콘텐츠를 발견하는 과정에는 고도로 정교한 ‘추천 시스템(Recommender System)’이 작동하고 있습니다. 이 추천 시스템의 핵심에는 수학적으로 설계된 ‘확률 모델(Probabilistic Model)’이 숨어 있으며, 사용자의 행동을 기반으로 미래의 선택을 예측합니다. 이번 글에서는 추천 시스템이 확률을 어떻게 활용해 사용자의 취향을 추론하는지, 그리고 그 수학적 원리를 살펴보겠습니다.
추천 시스템의 기본 구조
추천 시스템은 크게 두 가지 방식으로 구성됩니다:
- 협업 필터링(Collaborative Filtering): 사용자 행동 패턴 간 유사성을 분석
- 콘텐츠 기반 필터링(Content-based Filtering): 아이템 자체의 속성을 기반으로 추천
이 두 방식 모두 확률 모델을 활용해 사용자가 특정 아이템을 좋아할 확률 \( P(\text{like} \mid \text{user, item}) \)을 예측하는 것을 목표로 합니다.
확률적 행렬 분해: 잠재 요인 모델
추천 시스템의 대표적인 확률 모델 중 하나는 ‘확률적 행렬 분해(Probabilistic Matrix Factorization, PMF)’입니다. 사용자-아이템 평점 행렬 \( R \)을 두 개의 잠재 벡터 행렬로 분해합니다:
\[ R_{ui} \approx U_u^T V_i \]
여기서 \( U_u \)는 사용자 \( u \)의 잠재 요인(latent factor), \( V_i \)는 아이템 \( i \)의 잠재 요인입니다. 이 모델은 다음 확률분포 하에서 유도됩니다:
\[ P(R \mid U, V, \sigma^2) = \prod_{(u,i) \in \mathcal{K}} \mathcal{N}(R_{ui} \mid U_u^T V_i, \sigma^2) \]
즉, 각 평점은 정규분포로 모델링되며, 그 평균은 두 잠재 벡터의 내적으로 정의됩니다.
베이즈 모델과 사후 확률
사용자의 의도는 직접 관찰할 수 없기 때문에, 추천 시스템은 베이즈 정리를 기반으로 한 사후 확률 추론을 사용합니다. 사용자가 특정 영화를 좋아할 확률은 다음과 같이 표현됩니다:
\[ P(\text{좋아함} \mid \text{행동}) = \frac{P(\text{행동} \mid \text{좋아함}) \cdot P(\text{좋아함})}{P(\text{행동})} \]
이와 같은 추론은 광고 클릭, 상품 구매 등 다양한 형태의 사용자 행동을 해석하고, 미래 행동을 예측하는 데 활용됩니다.
연관 규칙과 조건부 확률
추천 시스템은 아이템 간 연관성을 파악하기 위해 조건부 확률을 사용합니다. 예를 들어, A라는 상품을 구매한 사람이 B를 구매할 확률:
\[ P(B \mid A) = \frac{P(A \cap B)}{P(A)} \]
이러한 규칙은 장바구니 분석(Market Basket Analysis)에서 널리 쓰이며, 추천 엔진에서 “이 제품을 산 고객은 이런 것도 구매했습니다”라는 방식으로 활용됩니다.
딥러닝 기반 확률 모델
최근에는 딥러닝을 이용한 확률 모델도 추천 시스템에 많이 도입되고 있습니다. 대표적으로는 Variational Autoencoder(VAE), Bayesian Neural Networks 등이 있습니다. 이들은 다음과 같은 구조로 사용됩니다:
- 입력: 사용자-아이템 상호작용 데이터
- 잠재 공간: 확률분포를 통한 잠재 표현 학습
- 출력: 각 아이템을 선택할 확률
이러한 모델들은 사용자 선호의 불확실성을 더 잘 표현할 수 있으며, 추천의 다양성과 개인화를 향상시킵니다.
결론
추천 시스템은 단순한 알고리즘이 아니라, 수학적 확률 모델 위에 구축된 정교한 예측 기계입니다. 행렬 분해, 조건부 확률, 베이즈 추론, 딥러닝 기반 확률 모델 등 다양한 수학적 도구들이 사용자의 취향을 이해하고, 미래의 선택을 예측하는 데 활용되고 있습니다.
이처럼 추천 시스템의 배경에는 수학적 확률 사고가 깊이 자리 잡고 있으며, 이는 우리가 일상적으로 경험하는 추천 결과가 단순한 우연이 아니라, 계산된 예측이라는 점을 보여줍니다.