
이미지: METAL
요약
- 넷플릭스가 언어모델 기반 추천 시스템 GenRec을 기존 엔진과 비교 테스트했다
- 오프라인 평가에서 랭킹 품질이 약 1.6% 개선됐고 라벨 데이터는 약 40배 적게 들었다
- 4주간 트래픽 10%로 진행한 온라인 A/B 테스트에서도 단기·장기 지표가 각각 0.115%, 0.006% 올랐다
- 시스템 이름
- GenRec
- 훈련 방식
- 오픈웨이트 언어모델을 넷플릭스 데이터로 1차 파인튜닝 후, 추천 랭킹용 2차 특화 훈련
- 오프라인 랭킹 품질
- 기존 시스템 대비 약 1.6% 개선
- 2단계 훈련 라벨 데이터
- 기존 대비 약 40배 적게 사용
- 온라인 A/B 테스트 규모
- 4주간, 트래픽 약 10%, 사전 계산되는 추천 화면 한정
- 온라인 테스트 결과
- 단기 지표(홈 화면 행동) 0.115% 상승, 장기 핵심 지표 0.006% 상승
- 서빙 방식
- vLLM에서 텍스트 생성 없이 입력을 한 번 읽고 후보 전체를 한 번에 스코어링
홈 화면 뒤에서 벌어진 실험
넷플릭스가 자사 추천 엔진을 언어모델로 바꿔 돌려보는 실험을 진행했다. 이 실험용 시스템의 이름은 GenRec이다. 넷플릭스는 자사 기술 블로그에 올린 글에서 여러 해에 걸쳐 다듬어 온 기존 시스템보다 GenRec이 더 나은 결과를 냈다고 밝혔다.
기존 넷플릭스 추천 시스템은 사용자·작품·상호작용에 대한 수천 개의 수작업 특징(feature)에 의존한다. 사람이 하나하나 설계해 넣은 변수가 그만큼 많다는 뜻이다. 문제는 이 구조가 게임, 라이브 콘텐츠, 팟캐스트 같은 새로운 콘텐츠 유형을 추천 시스템에 편입시키거나 앱 인터페이스의 새 영역으로 추천 기능을 확장할 때마다 비용이 크게 든다는 점이다. 그렇다고 시중에 나온 범용 언어모델을 그대로 가져다 쓸 수도 없다. 인기 콘텐츠에 지나치게 쏠리고, 카탈로그에 없는 제목을 지어내며, 넷플릭스가 정해둔 비즈니스 규칙을 무시하기 때문이다.

숫자 벡터 대신 문장으로
GenRec은 두 단계로 훈련된다. 먼저 이름이 공개되지 않은 오픈웨이트 언어모델을 넷플릭스의 카탈로그와 사용자 행동 데이터로 파인튜닝해 기반 모델을 만든다. 그다음 이 기반 모델을 추천 랭킹 전용으로 다시 훈련하는 2차 단계를 거치는데, 이 단계는 신작과 변화하는 취향을 반영하기 위해 더 자주 갱신된다.
가장 큰 변화는 데이터를 표현하는 방식이다. 기존 시스템이 사용자 데이터를 조밀한 숫자 벡터로 인코딩했다면, GenRec은 이를 평범한 텍스트로 바꾼다. 재생 여부, 시청 시간, 좋아요·싫어요, 리스트 추가, 중도 이탈 같은 행동이 사용자와 추천 시스템 사이의 일종의 대화문으로 변환되는 식이다. 장르 선호나 취향 변화 같은 패턴을 사람이 특징으로 일일이 설계해 넣는 대신, 모델이 이 대화문에서 스스로 읽어낸다.
모든 상호작용을 빠짐없이 텍스트로 옮기면 모델의 컨텍스트 윈도우(한 번에 읽을 수 있는 분량)를 금세 넘어선다. 그래서 넷플릭스는 데이터를 적극적으로 걸러낸다. 긴 시청 세션처럼 신호가 강한 행동은 상세하게 남기고, 짧은 탭이나 빠른 스크롤은 버리며, 몰아보기 세션은 압축한다. 실재하지 않는 제목을 추천하는 걸 막기 위해서는 카탈로그에 실제로 존재하는 항목만 점수를 매기는 별도 구성 요소를 추가로 붙였다.

성능은 얼마나 좋아졌나
GenRec은 vLLM 위에서 돌아가는데, 텍스트를 생성하지 않고 입력을 한 번 읽어 모든 후보를 한 번에 채점하는 방식이라 비용을 관리 가능한 수준으로 유지한다.
| 비교 구간 | 지표 | 결과 |
|---|---|---|
| 오프라인 비교 | 랭킹 품질 | 기존 대비 약 1.6% 개선 |
| 오프라인 비교 | 2단계 훈련 라벨 데이터 사용량 | 기존 대비 약 40배 적음 |
| 온라인 A/B (4주, 트래픽 10%) | 단기 지표(홈 화면 행동) | 0.115% 상승 |
| 온라인 A/B (4주, 트래픽 10%) | 장기 핵심 지표 | 0.006% 상승 |
넷플릭스는 이 두 온라인 지표의 상승폭이 우연으로 설명하기엔 너무 크다고 밝혔다. 다만 이 비교는 이번 실험 단계에 한정된 것이며, 넷플릭스가 보유한 전체 훈련 데이터에 그대로 적용되는 수치는 아니다.
한 가지 눈에 띄는 대목은 모델의 신선도 문제다. 2단계의 추천 특화 파인튜닝은 기반 모델 성능 위에 35~50%를 더 얹는데, 기반 모델이 2주만 지나도 이 격차는 약 80%까지 벌어진다. 신작과 바뀐 취향을 반영하지 못한 기반 모델은 그만큼 빨리 쓸모가 떨어진다는 뜻이다.

넷플릭스만의 얘기는 아니다
넷플릭스는 GenRec을 PLUM, GLIDE, OneRec-Think 같은 연구에서도 드러나는 더 큰 흐름의 일부로 본다. 추천 작업마다 별도의 맞춤형 아키텍처를 만드는 대신, 언어모델 하나가 여러 용도를 처리하는 방향이다. 이 흐름에서 엔지니어의 일도 바뀐다. 특징을 계속 더 만들어 넣는 작업에서, 모델 입력에 어떤 신호를 얼마만큼 넣을지 고르는 작업으로 옮겨간다. 인프라 역시 GPU 서버와 LLM 도구 쪽으로 이동하고 있다.
넷플릭스는 이 실험이 아직 초기 단계라는 점을 분명히 했다. GenRec을 "이르지만 유망한 첫걸음"이라 표현했고, 기존 시스템을 완전히 대체하는 방안은 아직 검토 대상이 아니라고 밝혔다.
넷플릭스가 추천 목록 바깥에서 머신러닝을 활용한 건 이번이 처음이 아니다. 2020년에는 지식 그래프와 유사도 지도를 이용해 기획 중인 작품이 어떤 콘텐츠 카테고리에 맞는지, 국가별로 얼마만큼의 시청자를 모을지 예측하는 방식을 소개한 바 있다. 당시에는 구글의 언어모델 BERT가 사람이 쓴 작품 소개문만 처리해 후속 모델에 넘겨주는 역할을 맡았다. 넷플릭스는 이후로도 제작 워크플로용 자체 모델을 계속 만들었고, 영상에서 특정 대상을 지우는 VOID 프레임워크처럼 일부는 외부에 공개하기도 했다.

에디터의 시선
이 실험이 흥미로운 건 넷플릭스가 언어모델을 챗봇이 아니라 순위 매기기 엔진으로 썼다는 점이다. GenRec은 글을 생성하지 않는다. 입력을 한 번 읽고 후보를 채점만 한다. 이건 언어모델의 활용 범위가 대화형 인터페이스를 넘어 추천·랭킹·필터링 같은 '조용한' 백엔드 작업으로 번지고 있다는 신호다. PLUM·GLIDE·OneRec-Think까지 같은 방향으로 나온 연구가 이미 여럿이라는 사실이 이를 뒷받침한다.
숫자만 보면 1.6%, 0.115%, 0.006%는 눈에 띄지 않는다. 하지만 넷플릭스 정도 규모의 트래픽에서 이 정도 개선은 매일 수천만 건의 재생 결정에 영향을 준다. 예전 같으면 이런 수치 개선을 위해 엔지니어 팀이 몇 달간 특징을 새로 설계하고 검증했을 일이다. 이번에는 라벨 데이터를 40분의 1만 쓰고도 비슷하거나 더 나은 결과를 얻었다는 점이 핵심이다. 데이터 수집·정제 비용이 큰 조직일수록 이 격차는 체감이 클 것이다.
국내 커머스·미디어 플랫폼이 눈여겨볼 대목은 신선도 문제다. 기반 모델이 2주만 지나도 성능 격차가 80%까지 벌어진다는 수치는, 언어모델 기반 추천 시스템을 도입하려는 조직이라면 모델 학습 주기와 재훈련 파이프라인부터 설계해야 한다는 뜻이다. 모델을 한번 잘 만들어 놓고 방치하는 방식은 통하지 않는다. 카탈로그가 매주 바뀌는 서비스일수록 갱신 주기를 촘촘히 짜야 한다.
다만 넷플릭스 스스로도 이걸 완전한 대체재라 부르지 않았다는 점은 새겨둘 만하다. 수년간 튜닝된 프로덕션 시스템을 언어모델 하나로 바꾸는 결정은 성능 수치 몇 개로 내릴 수 있는 게 아니다. 앞으로 몇 달 안에 넷플릭스가 GenRec을 트래픽 비중을 늘려 확대 테스트하는지, 아니면 특정 신규 콘텐츠 유형(게임·라이브)에만 먼저 붙이는지를 보면 이 기술이 실제로 얼마나 신뢰받고 있는지 가늠할 수 있을 것이다.





댓글