阅读记录-视频推荐

Youtobe基于深度学习的视频推荐

场景特点

1.大规模:用户量和视频量超过1billion
2.新鲜度:每天会有超过100K的新视频上传
3.噪音大:用户行为系数,大量噪音,视频缺少结构化meta数据


Youtube推荐系统架构图

分两步走:召回+排序

召回几千个候选集,然后排序选top几十展示给用户

召回

1.看成分类问题,v表示视频的embedding向量,u表示用户的embedding向量


image.png

2.虽然有‘点赞’或‘拍砖’这样的显式反馈,但是这篇论文用的是隐式反馈:user completing a video is a positive example(用户看完了一个视频?要求有点高?)因为显式反馈数据比较少
3.采用的是负采样+权重的方法,loss是最小化交叉熵,不能采用哈弗曼树方法是因为,在遍历节点时没有办法确定路径,因为目标是希望'产生多个类别'
4.线上需要计算topN个类别(视频)展示给用户,需要计算millions级,所以需要采用一个近似次线性方法。因为线上服务时只需要取embedding 向量。不关注softmax输出层的概率,因此可以简化为点积空间中的最邻近搜索,有一些通用库可以使用。AB实验也发现,最邻近算法的选择对结果不是很敏感

回模型结构

Youtube基于深度模型的召回算法架构

特征

1.用户观看过的视频id列表做embedding、取embedding向量的平均值,得到watch vector。同时把用户搜索过的视频id列表也做如上的embedding,得到search vector
2.人口统计特征作为先验知识是重要的,如地区、设备可以对新用户发挥作用,做embedding然后concate,一些其他的二类别或连续特征,如性别,年龄,登录状态等归一化到[0-1]。
3.一些非多值类的特征如性别,还有数值类特征直接做为神经网络的输入。
4.还有一些数值类特征,可以利用经验知识,对其进行变换。如对年龄特征进行平方操作,然后作为新的特征。
5.异构特征:神经网络的优点是可以随意将连续或类别特征加到模型里面去,如搜索历史和观看历史,query被分词用embedding表示,然后用均值来表示。

你可能感兴趣的:(阅读记录-视频推荐)