摘要

两阶段:deep candidate generation model + deep ranking model

简介

  • 挑战
    • Scale: 现存用于小数据的算法无法适用。专用分布式算法和高效的服务系统很重要。
    • Freshness: 推荐系统应该对新上传的内容和用户最新操作快速反应。
    • Noise: 因为稀疏性和未能观测到的外部因素,真实的用户喜好很难得到。内容的元数据也很难结构化定义。

系统概述

  • 包含两个NN:candidate generation和ranking。
  • candidate generation network吃用户的活动历史,从巨大的视频库找到几百条视频。通过协同过滤实现泛个性化。用户相似性根据观看视频的ID、搜索关键字和统计数据得到。
  • ranking network根据视频和用户的特征给每个视频打分。最高分数的视频展示给用户。
  • 开发阶段,使用线下metrics(精度、召回率、ranking loss等),最后决定算法有效性的是A/B测试。

Candidate Generation

推荐看作分类

  • 将推荐看作是多分类问题,给定用户U和上下文C,预测在时间t看的视频(softmax)。
  • 这个NN要学用户u的embedding。
  • 使用隐式反馈来训练模型,用户看完一个视频就是一个正样本。

高效极多分类

  • 从背景分布中进行负类抽样,通过重要性权重更正抽样过程。
  • 在提供服务时,需要计算最可能的N个视频。需要近似算法加快计算。打分问题可以退化成在点积空间中的最邻近查找问题。

模型架构

  • 受到CBOW启发,学习视频的embedding,将embedding喂给NN。用户观看历史用变长的视频ID映射成向量表示,把embedding进行平均。
    图片说明

各种信号

  • 搜索历史和观看历史类似,进行处理,平均。加上用户地理信息和设备信息还有用户其他信息。
  • 机器学习系统经常偏向过去,因为他们从历史样本中训练。因此,我们在训练时将训练样本的“年龄”当做特征。在服务时,这个特征设为0。

标签和上下文选择

  • 推荐系统会经常遇到替代问题,将结果迁移到特定的上下文。训练样本从所有YT观看中产生,否则推荐会被严重偏向。另外,每个用户产生的训练样本也是固定的,防止一部分活跃用户主导loss。
  • 预测用户下一个观看视频比随机抽样的性能要好。那样可能会泄露未来的信息。

特征和深度的实验

  • 加特征和深度可以提高精度。

Ranking

图片说明

  • 排序时,需要更多用户和视频特征。使用逻辑回归。使用CTR排序经常提升点击率而观看时间能促进用户完成视频观看。
  • 描述之前视频印象的频率在推荐中很重要。
  • 观看时间建模: 负样本权重为1,正样本权重为观看时间。