最近在看王喆的知乎专栏,第三、四、十三篇都是Youtube的经典论文DNN:https://zhuanlan.zhihu.com/p/52169807 https://zhuanlan.zhihu.com/p/52504407 https://zhuanlan.zhihu.com/p/61827629
跟着大佬又回顾了一下,发现之前真的只能算是一知半解,趁着这次把对这篇论文的新的理解记录一下,可能还会有一些错误。
论文讲解了在召回和精排两个阶段的模型:
召回:
先从特征说起:用户观看过的video的embedding,用户搜索词的embedding,用户的地理位置、年龄等side_infomation,还有exampl_age这个需要解释的特征
然后是模型:三层DNN
最后是training的loss:softmax做分类
serving的方式:nearest neighbor
里面其实有很多疑点:
1.example_age是什么
这个点专栏里说是训练时间 - 得到这条样本的时间(视频点击时间),但是我觉得这样表达不出“新视频”这个概念,也不知道用当前时间去减是啥意思,label是点击那一刻打上去的,又不是训练的时候;
所以我觉得这个example age应该是点击时间-上架时间,表示用户对新上架视频的偏好,用这个特征去捕获这个偏好了,在serve的时候全都置为0就可以消除这个偏好,毕竟这是召回阶段,可以多召回些东西。(这样就是消除用户对新视频的偏好了?)
2.为什么要做多分类,而不是预测分,多分类的话有海量视频,性能怎么保证
为什么要做多分类,而不是把样本的embedding也给到网络里做打分,这一点我是真的没弄明白;
海量视频的多分类性能的提升是用到了sampled softmax,可以参考http://www.4k8k.xyz/article/Kaiyuan_sjtu/119881236 https://zhuanlan.zhihu.com/p/349908071 总的来说就是通过Q(y|x)采样出一个子集,对子集计算logits,然后用计算结果F(x,y)-log(Q(y|x))可以表示原数据集上的logits
3.serving阶段为什么不做多分类了,而是做nearest neighbor
这里首先要弄明白serving阶段的user embedding和video embedding是什么,user_embedding是最后一层relu之后的结果,比如是一个d维的向量;然后要得到一个几百万维(用d_N表示)的向量,需要过一个d*d_N维的矩阵,这个矩阵的每一列训练完之后就是video embedding;如果是serving的阶段依然是和每一列相乘,再算一个softmax,既然分母是一样的,取指数的操作也是一样的,那么就直接做点积就好了。
排序:
先从特征说起:当前排序的video的embedding,用户观看过的video的embedding,用户和video的语言embedding,time since last watch是自上次观看同channel视频的时间,previous impressions是该视频已经被曝光给该用户的次数(这里已经引入了负反馈的思路)
然后是模型:三层DNN
最后是training的loss:weighted logistic
serving的方式:e^(Wx+b)
这里面也有一些疑点:
1.training时候的weighted logistic是什么,为什么serving的时候用的是e^(Wx+b)
这个点是我重读的时候最没理解的地方,先尝试写一下,这里首先要搞清楚weighted logitstic是什么,那先回顾一下LR的公式的由来是log(odds) = w*x;这里的odds=p/(1-p)表示正样本发生的概率/负样本发生的概率;在weighted LR里面这个odds要变成W*p/(1-p)这里的W就是给正样本加的权重,至于为什么是这样有一种解释是用正负样本比去解释的,我觉得不是很合理 https://zhuanlan.zhihu.com/p/435912211;但是如果能够接受这个odds的话,那么log(odds) = w*x就可以得到odds = e^(wx),后者就是serving的目标;
再说W*p/(1-p)是什么,这里W权重是这条视频的时长T,那么sum(Ti*pi)就是E(T)即时长的期望,E(T)/(1-p)泰勒展开就是E(T)*(1+p)这里的p很小的话其实就是E(T)也就是说serving的时候其实得到的就是观看时长的期望,这里如果用到电商里用price去加权,得到的应该也是对price的预估。
还是非常建议多去看一下十大工程问题那篇专栏,讲到了更多,比如对每个用户提取等数量的训练样本、把大量长尾video的embedding置0这些方法的出发点。