GenRec: Towards LLM-Native Recommendation at Netflix
Author: Ying Li, Arjun Rao, Shradha Sehgal (Netflix) | Source: netflixtechblog.com | Published: 2026-07-31
한 줄 요약
수천 개의 손수 만든 피처 대신 사용자 이력·아이템 메타데이터를 텍스트로 verbalize하고 카탈로그 인지 스코어링 헤드를 붙인 LLM 랭커가, 40배 적은 라벨 데이터로 10년 넘게 다듬은 프로덕션 랭커를 능가했다 — feature engineering에서 context engineering으로의 이동.
핵심 주장/내용
- 문제: 현행 프로덕션 모델은 사용자·아이템·상호작용에 대한 수천 개 hand-crafted 피처와 시퀀스 모델링·피처 상호작용·멀티태스크 목표를 위한 특화 아키텍처에 의존한다. 다양한 콘텐츠 유형(영화, 시리즈, 게임, 라이브, 팟캐스트)과 제품 표면을 지원하도록 수년간 진화했지만, 그 복잡도가 새 유스케이스 온보딩을 비싸게 만든다 — 콘텐츠 유형이나 표면 하나를 추가하려면 상당한 피처 엔지니어링, 아키텍처 변경, 인프라 작업, 실험이 필요할 수 있다
- off-the-shelf LLM은 아직 프로덕션 준비가 안 됐다: 전역적으로 인기 있는 콘텐츠를 과추천하고, 카탈로그 밖 아이템을 환각하고, 비즈니스 제약을 무시하고, 제한적 개인화만 제공한다
- 두 단계 학습:
- Phase 1 — Netflix 적응 foundation LLM: 오픈소스 LLM에서 시작해 사내 코퍼스로 적응. Netflix 콘텐츠 이해, 멤버 행동·선호 패턴, 일반 언어 이해·생성을 학습. 상대적으로 드물게 갱신되고 여러 애플리케이션의 공유 Netflix-aware 백본으로 기능
- Phase 2 — GenRec: 랭킹 특화 데이터·목표로 post-training. 랭킹 품질과 steering에 집중, reward-weighted loss로 다중 reward 신호 통합, 새 콘텐츠와 변하는 취향을 따라가기 위해 더 자주 갱신, 서빙 비용 제약 하에 명시적으로 최적화
- 학습 데이터를 “대화”로: 수천억 개 상호작용 이벤트(view, play, duration, thumbs, add to list, abandon)를 사용자와 추천자 사이의 단일/다중 턴 대화로 변환. user message는 verbalize된 컨텍스트·프로필·이력·아이템 메타데이터·과제, assistant message는 멤버의 실제 참여(어떤 타이틀을 얼마나 오래 재생했고 어떤 피드백을 줬는지). 추론 시에는 assistant message를 디코딩하지 않고 verbalize된 컨텍스트를 넣어 카탈로그 인지 스코어링 헤드로 랭킹한다 — 대화 포맷은 주로 학습 시 LM 목표를 지원하고 verbalize된 텍스트에 대한 강한 언어 이해를 보존하는 데 쓰인다
- Verbalization과 context engineering — 컨텍스트 윈도우가 새로운 “피처 예산”: 사용자 이력의 모든 상호작용을 순진하게 verbalize하면 Netflix 규모에서 토큰 예산을 빠르게 초과하고 너무 비싸진다
- 온전히 유지: 고신호 참여(긴 재생, thumbs-up)를 더 풍부한 세부와 함께
- 생략: 저신호 이벤트(아주 짧은 재생, 빠른 hover)
- 요약·압축: 반복 행동(binge-watching)
- 선택적 상술: 중요하거나 cold-start인 아이템(신작)
- 고정 토큰 예산 안에서 최근·고신호 이력을 우선하고 오래된 것은 압축·삭제. prefix caching을 위해 공유 prefix를 최대화하도록 프롬프트를 구조화
- 다중 목표 손실:
- 카탈로그 인지 랭킹 목표 (주 과제) — 고가치 참여로 positive를 라벨링(충분히 긴 재생, 강한 명시적 피드백. 임계와 denoising 로직 적용)하고 카탈로그/후보 집합에 대한 cross-entropy로 학습
- 언어 모델링 목표 — verbalize된 입출력에 대해 유지. 일반 언어 이해를 보존하고 풍부한 자연어 이력·메타데이터 해석 능력을 개선하며 추천 설명 같은 텍스트 생성 유스케이스의 문을 열어둔다
- Reward-weighted loss — 원시 상호작용 시퀀스만으로 학습하면 binge-watching을 과도하게 선호하거나 단일 콘텐츠 유형에 과집중하는 바람직하지 않은 행동으로 이어질 수 있다. 별도 reward 모델의 신호로 랭킹 손실에 가중치를 준다: 장기 만족 proxy(단기 참여가 재방문·카탈로그 탐색·지속 참여 같은 장기 결과에 얼마나 기여하는지 추정)와 행동 재균형(콘텐츠 유형과 출시 단계 전반의 행동 조정 — 게임 vs 영화, 신작 vs evergreen). full RL보다 단순하고 비용 효율적이면서 실무에서 효과적인 정렬을 제공(GRPO 같은 RL 방식에서 추가 이득을 봤지만 비용 때문에 향후 과제로)
- 아키텍처: decoder-only Transformer + Netflix 카탈로그 내 아이템만 스코어링하는 catalog-aware ranking head. verbalizer가 이력·컨텍스트·메타데이터를 단일 텍스트 시퀀스로 직렬화 → LLM이 처리해 현재 선호와 컨텍스트를 요약하는 pooled hidden state 추출 → 각 카탈로그 아이템의 학습된 임베딩과 결합(dot product나 소형 MLP)해 점수 산출 → softmax → 랭킹. 백본·스코어링 헤드·아이템 임베딩을 함께 학습하고 매우 큰 카탈로그는 sampled softmax나 후보 집합으로 처리. 이 아키텍처가 추천을 Netflix 카탈로그로 제약한다
- 서빙 비용 3전략 (vLLM 기반 사내 LLM 스택. 비용은 모델 크기, 컨텍스트 길이, 추론 모드가 좌우): 더 작은/distill된 모델(더 크거나 타겟된 데이터셋으로 학습해 큰 모델 품질의 대부분을 낮은 비용에), 공격적 컨텍스트 압축, prefill-only 추론(큰 후보 집합에 대한 autoregressive 디코딩은 금지적으로 비싸므로, 모델이 프롬프트를 한 번 소비하고 단일 forward pass로 전체 후보 집합을 스코어링, 토큰별 디코딩 없음)
주요 수치 / 사실
- 오프라인: 훨씬 적은 입력 신호와 라벨 예시를 쓰면서 프로덕션 랭커를 능가. 약 40배 적은 Phase-2 라벨 학습 예시로 MRR 약 +1.6% 개선
- 온라인: 배치 컴퓨트 추천 표면에서 약 4주간 Netflix 트래픽의 ~10% 대상 대규모 A/B. 이 저데이터·저신호 구성에서 단기·장기 온라인 지표 모두에 통계적으로 유의한 이득
- Ablation:
- 데이터 스케일링 — ~1B와 ~10B 백본 모두 Phase-2 데이터가 늘수록 오프라인 MRR 개선. 큰 모델이 더 높은 절대 MRR에 도달하되 유사한 스케일링 곡선을 따름
- 모델 스케일링 — 고정 학습 예산에서
1B10B 중 큰 백본이 일관되게 더 높은 MRR - Phase-1 vs OSS — Netflix 적응 foundation을 base로 쓰면 off-the-shelf LLM에서 바로 시작하는 것 대비 오프라인 랭킹 지표 약 10~20% 개선
- Phase-2 vs Phase-1 — Phase-1 학습 컷오프 근처(Phase-1이 가장 신선할 때) 추가로 35~50% 이득. 시간이 지나 Phase-1이 새 콘텐츠와 변하는 취향에 stale해지면 Phase 2의 상대 이득이 2주 후 약 80%로 커진다
- 데이터 효율 — 강한 Phase-1에서 시작하면 구성에 따라 10~40배 적은 Phase-2 라벨 예시로 프로덕션 랭커를 맞추거나 능가. Phase 2가 Phase 1보다 훨씬 자주 갱신되므로 이 marginal 데이터 효율이 특히 값지다
- 컨텍스트 길이 최적화 3단계: ① 저신호 참여를 버리고 반복 행동을 압축해 정제된 이벤트 시퀀스 형성 ② elbow point 찾기 — 포함할 히스토리 이벤트 수를 변화시키며 MRR을 플로팅해 추가 컨텍스트의 수익이 체감하는 지점 식별 ③ 남은 이벤트의 상세 수준·간결한 표현을 테스트. 결과: 컨텍스트 토큰을 원래 예산의 약 1/3로 줄이면서 오프라인 랭킹 지표 저하는 무시할 수준. 서빙 비용이 컨텍스트 길이에 대략 비례하므로 비용도 유사하게 감소
- LLM-native 추천으로의 4가지 이동:
- feature engineering → context engineering — “프롬프트가 새로운 피처 벡터가 된다.” 모델링 노력이 피처 설계에서 어떤 신호를 포함할지, 시간을 얼마나 거슬러 갈지, 토큰 예산 안에서 이력을 어떻게 압축·요약할지 결정하는 쪽으로 이동
- 커스텀 아키텍처 → foundation 백본 — 과거엔 태스크마다 자기 아키텍처(two-tower, DLRM-style, bespoke attention)를 가졌지만, 이제 많은 태스크가 공통 백본을 공유하고 데이터·verbalization 전략, post-training 목표·reward, 추론 최적화로 차별화. 애플리케이션 간 학습 공유가 쉬워지고 자연어 steering의 문이 열린다
- scaling law가 설계 가이드로 — 전통 RecSys는 희소 ID·무거운 엔지니어링 목표·태스크별 아키텍처 때문에 수익 체감에 부딪히지만, LLM 백본은 비용 한도 안에서 더 많은 데이터와 큰 모델이 일관되게 품질을 개선하는 명확한 스케일링 행동을 상속
- RecSys 인프라 → LLM 인프라 — GPU 가속, vLLM/Triton 기반, 세심한 배칭·캐싱. 시간이 지나면 추천 서빙 인프라가 MLP·factorization 중심의 고전 RecSys 스택보다 일반 LLM 인프라처럼 보이기 시작한다
관련 위키
- Generative Recommender Systems
- ML Ranking Systems
- Context Engineering
- LLM Fine-Tuning
- LLM Platform Engineering
- Semantic IDs
- Recommendation Impact Measurement
Source: 원문 보기