在重读这篇文章的时候,我从一个工程师的角度,始终绷着“如何实现”这根弦,发现这篇论文的工程价值之前被我大大忽略了。下面我列出十个文中解决的非常有价值的问题:
1.文中把推荐问题转换成多分类问题,在next watch的场景下,每一个备选video都会是一个分类,因此总共的分类有数百万之巨,这在使用softmax训练时无疑是低效的,这个问题Youtube是如何解决的?
2.在candidate generation model的serving过程中,Youtube为什么不直接采用训练时的model进行预测,而是采用了一种最近邻搜索的方法?
3.Youtube的用户对新视频有偏好,那么在模型构建的过程中如何引入这个feature?
4.在对训练集的预处理过程中,Youtube没有采用原始的用户日志,而是对每个用户提取等数量的训练样本,这是为什么?
5.Youtube为什么不采取类似RNN的Sequence model,而是完全摒弃了用户观看历史的时序特征,把用户最近的浏览历史等同看待,这不会损失有效信息吗?
6.在处理测试集的时候,Youtube为什么不采用经典的随机留一法(random holdout),而是一定要把用户最近的一次观看行为作为测试集?
7.在确定优化目标的时候,Youtube为什么不采用经典的CTR,或者播放率(Play Rate),而是采用了每次曝光预期播放时间(expected watch time per impression)作为优化目标?
8.在进行video embedding的时候,为什么要直接把大量长尾的video直接用0向量代替?
9.针对某些特征,比如#previous impressions,为什么要进行开方和平方处理后,当作三个特征输入模型?
10.为什么ranking model不采用经典的logistic regression当作输出层,而是采用了weighted logistic regression?