
추천 시스템은 크게 두 단계로 나뉩니다:
1. 후보 생성 (Candidate Generation): 수백만 개의 비디오 중에서 사용자에게 적합한 수백 개의 비디오를 선정합니다.
2. 랭킹 (Ranking): 선정된 수백 개의 비디오를 순위화하여 최종적으로 사용자에게 몇 개의 비디오만 추천합니다.
이 과정은 "깔때기(Funnel)" 형태로 표현됩니다. 수백만 개의 비디오가 수백 개로 줄어든 후, 최종적으로 몇 개의 비디오만 사용자에게 제공됩니다.
2. 후보 생성 (Candidate Generation):
후보 생성 단계에서는 사용자의 시청 기록과 컨텍스트를 기반으로 수백만 개의 비디오 중에서 수백 개의 후보 비디오를 선정합니다.
2.1 추천을 분류 문제로 정의:
- 추천 문제를 극단적인 다중 클래스 분류(Extreme Multiclass Classification) 문제로 정의합니다.
- 사용자 ( U )와 컨텍스트 ( C )가 주어졌을 때, 특정 시간 ( t )에 사용자가 시청할 비디오 ( w_t )를 예측합니다.
- 수식으로 표현하면:

2.2 암묵적 피드백 사용:
- 사용자의 명시적 피드백(좋아요/싫어요 등)보다 암묵적 피드백(시청 기록)을 사용합니다.
- 사용자가 비디오를 완전히 시청한 경우를 긍정적 예제로 간주합니다.
2.3 효율적인 학습:
- 수백만 개의 클래스(비디오)를 효율적으로 학습하기 위해 후보 샘플링(Candidate Sampling) 기법을 사용합니다.
- 실제로는 수천 개의 부정적 예제를 샘플링하고, 이를 중요도 가중치로 보정합니다.
3. 구체적인 예시:
시나리오:
앨리스는 YouTube에서 요리 비디오를 자주 시청합니다. 그녀의 시청 기록에는 "파스타 만드는 법", "이탈리아 요리 기술" 등이 포함되어 있습니다. 또한, 그녀는 "이탈리아 디저트"를 검색했습니다.
3.1 후보 생성:
- 앨리스의 시청 기록과 검색 기록을 기반으로 수백만 개의 비디오 중에서 수백 개의 후보 비디오를 선정합니다.
- 예를 들어, "전통 이탈리아 디저트", "빠른 이탈리아 전채 요리", "이탈리아 와인 소개" 등이 후보로 선정될 수 있습니다.
3.2 랭킹:
- 선정된 수백 개의 후보 비디오를 순위화합니다.
- 앨리스의 선호도와 컨텍스트를 고려하여 "전통 이탈리아 디저트"가 가장 높은 순위를 받을 수 있습니다.
3.3 최종 추천:
- 앨리스에게 "전통 이탈리아 디저트", "빠른 이탈리아 전채 요리", "이탈리아 와인 소개" 등이 추천됩니다.
4. 요약:
- 후보 생성: 사용자의 시청 기록과 컨텍스트를 기반으로 수백만 개의 비디오 중에서 수백 개의 후보를 선정합니다.
- 랭킹: 선정된 후보 비디오를 순위화하여 최종적으로 몇 개의 비디오만 추천합니다.
- 모델 아키텍처: 사용자의 시청 기록, 검색 기록, 인구 통계 등 다양한 특성을 입력으로 받아 비디오를 추천합니다.
이 과정을 통해 YouTube는 사용자에게 개인화된 비디오 추천을 제공할 수 있습니다.