
이미지: The Decoder 화면 갈무리
摘要
- Netflix对基于语言模型的推荐系统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에서 텍스트 생성 없이 입력을 한 번 읽고 후보 전체를 한 번에 스코어링
主页背后的实验
Netflix进行了一项将自家推荐引擎替换为语言模型运行的实验,这套实验系统名为GenRec。Netflix在其官方技术博客文章中表示,GenRec的表现优于经过多年打磨的现有系统。
Netflix现有的推荐系统依赖数千个针对用户、作品、互动关系人工设计的特征(feature),也就是说有大量人工逐一设计加入的变量。问题在于,每当要将游戏、直播内容、播客等新内容类型纳入推荐系统,或将推荐功能扩展到应用界面的新区域时,这种结构都会带来巨大成本。但也不能直接拿市面上的通用语言模型来用,因为它们过度偏向热门内容,会编造目录中不存在的作品名称,还会无视Netflix设定的业务规则。

用句子取代数字向量
GenRec的训练分为两个阶段。首先用Netflix的目录和用户行为数据对一个未公开名称的开放权重语言模型进行微调,得到基础模型。随后对该基础模型进行第二阶段的专门训练,使其专注于推荐排序,这一阶段会更频繁地更新,以反映新作品和不断变化的用户偏好。
最大的变化在于数据的表示方式。现有系统将用户数据编码为密集的数字向量,而GenRec将其转换为普通文本。播放与否、观看时长、点赞/点踩、加入片单、中途放弃等行为,都被转化为用户与推荐系统之间的一种对话文本。模型不再依靠人工设计特征来捕捉类型偏好或口味变化等模式,而是直接从这些对话文本中自行读取。
如果把所有互动都不加筛选地转换为文本,很快就会超出模型的上下文窗口(一次能读取的容量)。因此Netflix对数据进行了主动筛选:信号强的行为(如长时间观看会话)会详细保留,短暂点击或快速滑动会被剔除,连续追剧的会话则会被压缩。为防止推荐出不存在的作品名称,系统还额外加入了一个独立组件,只对目录中实际存在的条目进行打分。

性能提升了多少
GenRec运行在vLLM之上,它不生成文本,而是一次性读取输入并对所有候选项统一打分,以此将成本控制在可管理的范围内。
| 对比区间 | 指标 | 结果 |
|---|---|---|
| 离线对比 | 排序质量 | 较现有系统提升约1.6% |
| 离线对比 | 第二阶段训练所需标注数据量 | 较现有系统减少约40倍 |
| 在线A/B(4周,流量占比10%) | 短期指标(主页行为) | 提升0.115% |
| 在线A/B(4周,流量占比10%) | 长期核心指标 | 提升0.006% |
Netflix表示,这两个在线指标的提升幅度大到不能用偶然来解释。不过这一对比仅限于本次实验阶段,并不能直接套用到Netflix所拥有的全部训练数据上。
一个值得注意的地方是模型的时效性问题。第二阶段针对推荐场景的专项微调,能在基础模型性能之上再提升35%~50%,但基础模型仅仅两周不更新,这一差距就会扩大到约80%。这意味着,如果基础模型未能反映新作品和变化的用户口味,其效用会很快下降。

不只是Netflix一家的故事
Netflix认为GenRec是一个更大趋势的一部分,这一趋势也体现在PLUM、GLIDE、OneRec-Think等研究中。与其为每个推荐任务打造单独的定制架构,不如让一个语言模型处理多种用途。在这一趋势下,工程师的工作内容也在改变:从不断构建新特征,转变为挑选应向模型输入哪些信号、投入多大权重。基础设施也在向GPU服务器和大语言模型工具方向转移。
Netflix明确表示这项实验仍处于早期阶段。他们将GenRec形容为"尚早但有前景的第一步",并表示完全取代现有系统的方案目前尚未提上讨论日程。
这并非Netflix首次在推荐列表之外运用机器学习。早在2020年,Netflix就曾介绍过利用知识图谱和相似度地图,来预测正在筹划的作品适合归入哪个内容类别、在各国能吸引多少观众的方法。当时,谷歌的语言模型BERT只负责处理人工撰写的作品简介,再将结果交给后续模型处理。此后Netflix持续开发用于制作工作流程的自研模型,其中一些还对外公开,例如能从视频中抹除特定对象的VOID框架。

编辑视角
这项实验有趣之处在于,Netflix没有把语言模型用作聊天机器人,而是用作排序引擎。GenRec不生成文字,只是一次性读取输入、对候选项打分。这表明语言模型的应用范围正在从对话式界面,扩展到推荐、排序、过滤这类"安静"的后端工作。PLUM、GLIDE、OneRec-Think等同方向研究已相继出现,也印证了这一点。
单看数字,1.6%、0.115%、0.006%并不起眼。但在Netflix这种规模的流量下,这样的提升会影响每天数千万次的播放决策。放在过去,要实现这种数值提升,工程团队可能需要花上数月时间重新设计和验证特征。这次的关键在于,仅用四十分之一的标注数据,就取得了相当甚至更好的结果。对于数据采集和清洗成本高昂的组织而言,这种差距的实际体感会更加明显。
国内电商、媒体平台值得关注的是时效性问题。基础模型仅两周不更新,性能差距就会扩大到80%,这个数字意味着,任何打算引入基于语言模型的推荐系统的组织,都必须首先设计好模型训练周期和再训练流水线。把模型训练好之后就放任不管的方式行不通。目录内容每周都在变化的服务,更需要制定紧密的更新周期。
不过值得记住的是,Netflix自己也没有称其为完全的替代方案。将经过多年调优的生产系统换成单一语言模型,这样的决定不是靠几个性能数字就能做出的。未来几个月内,Netflix是扩大GenRec的流量占比进行更大规模测试,还是先将其应用于游戏、直播等特定新内容类型,都将成为判断这项技术究竟获得了多少实际信任的观察窗口。




评论