美文网首页
论文笔记之Deep Neural Networks for Yo

论文笔记之Deep Neural Networks for Yo

作者: 小弦弦喵喵喵 | 来源:发表于2020-08-06 14:23 被阅读0次

    Deep Neural Networks for YouTube Recommendations

    文中把整个推荐过程分成两个步骤:
    •deep candidate generation model. 即召回部分
    •deep ranking model. 即精排部分

    文中指出YouTube推荐的三个主要挑战:
    •Scale. YouTube推荐的数据规模大,一些适合处理小规模数据的推荐算法效果不好。
    •Freshness. YouTube的语料库(corpus)是动态的,每一秒都有大量的视频被上传。推荐系统需要能够对新上传的内容作出反应,并且能够对用户最近采取的行动作出反应。能够在新内容与得到确认(well-established)的内容之间达到平衡,即探索与利用。
    •Noise. 以用户的历史行为进行预测本身就有一定的困难,包括数据稀疏性以及一些不可观测的外在因素。我们获得的数据并不是关于用户满意度的ground truth, 而是内含了一定噪声的数据。

    SYSTEM OVERVIEW

    推荐系统的总体结构如上所示。系统有两部分的神经网络组成:candidate generation和ranking.
    candidate generation network把用户的历史行为作为输入,并从语料库(corpus)中检索出一个子集(hundreds)。candidate generation network通过协同过滤(CF)进行粗略的筛选。
    ranking部分为每个物品分配一个score, 然后根据score进行排序,将高的推送给用户。
    在模型的构建过程中,使用一些离线指标(precision, recall, ranking liss, etc.)来引导模型更新的方向。然而,最终衡量算法或模型的效果,需要使用在线A/B测试。

    CANDIDATE GENERATION

    这一步的目标是把大量的corpus减少到hundreds规模的候选集,也就是召回过程。
    模型结构如下。

    需要注意的是,embedding的生成和模型参数是共同训练的。通过一个average pooling将一组向量整合成一个向量,输入到之后的模型部分中去。
    人口统计学的特征也是非常重要的,能够提供一个先验,从而使得对于新用户的推荐也是合理的。
    geographic region以及device之类的特征,也做了embedding,整合到长向量中。简单的binary特征和连续型特征,比如gender, logged-in state, age等可以直接输入到网络中,实数值的特征归一化到[0,1]。
    example age是一个很特殊的特征。
    在YouTube上每一秒都有很多videos被上传,对于这种最近被上传物品的推荐是很重要的。机器学习系统通常表现出对历史数据隐含的偏好,因为模型是从历史数据中进行学习的。为了解决这一问题,在训练阶段引入example age这一特征,指的是the age of the training example。在预测阶段,这个特征将会被设置为0(或者很小的负数)。文中并没有精确的定义example age,应该是把log日志距离当前的时间作为example age。比如24小时前的日志,example age就是24。
    回到模型图,最上面分为training和serving两部分。在training阶段,使用softmax预测用户的next watch,输出在所有候选video上的概率分布。label的选择方式如下。

    在serving阶段,使用了nearest neighbor search的方法,这是因为最近邻搜索计算量要小得多。最后一层relu输出的向量即为user vector,而video vector文中并没有具体描述,根据模型图推断,应该是最后一个relu和softmax层之间的权重矩阵output embedding matrix来获得的(通常在word2vec中用input embedding matrix)。

    RANKING

    在ranking阶段,对hundreds规模的候选集进行精排,确定要推荐给用户的物品。文中使用一个deep neural network使用logistic regression来为每个video的曝光分配一个值(其实就是做CTR)。然后对物品按score进行排序,并返回给用户。文中提到YouTube最终的ranking objective会基于线上A/B测试结果做一些调整,但总体上是一个关于每次曝光的期望观看时长的简单函数。并且指出如果完全根据CTR排序,会促进视频欺诈,也就是用户不会播放完整(原文用了clickbait一词,类似于标题党)。使用观看时长,可以更好的捕获用户的参与度。

    对连续型特征做归一化,对离散型特征做embedding(如果不存在,文中提出用0向量代替)。
    这里引入一个新的网络来做ranking是为了引入更多的特征,因为现在候选集的规模相对比较小了。
    图中画出了一些具体特征:
    •impression video ID:当前考虑的video的ID,之后接一个embedding。
    •watched video IDs:用户观看过的video的ID,因为是一组ID,做完embedding后还要做average pooling。
    •user language:用户的语言。
    •video language:video的语言。
    •time since last watch:距离上次观看的时间。
    •# previous impressions:该视频已经曝光给该用户的次数。
    一个特征输入x, x ^ 2, 根号x是为了给模型提供更多的表达力。
    模型的目标是给定训练集(包括positive样本和negative样本,即video曝光后是否被点击)来预测期望的观看时间。正例表示用户观看该video的时间。这里使用了weighted logistic regression,损失函数用交叉熵。对于正例,会通过观看时间来进行加权;对于负例,使用单位权重。
    在serving阶段,使用指数函数作为激活函数来预测期望的观看时间。

    相关文章

      网友评论

          本文标题:论文笔记之Deep Neural Networks for Yo

          本文链接:https://www.haomeiwen.com/subject/ubpdrktx.html