uniformML-Paper1-Recommendation《Deep Neural Networks for YouTube Recommendation》

今天给大家介绍一篇相当棒的经典推荐领域的论文《Deep Neural Networks for YouTube Recommendation》,这篇文章主要介绍如何将深度学习应用在推荐。

1 整体结构

YouTube视频目前服务于10亿的用户量,每天视频库也在大量的增长,面对这样一个场景,YouTube的挑战主要有:

1、规模大小(scale)
目前推荐算法主要都是针对相对较小的规模,而YouTube则需要强大的分布式学习算法已经强大的在线服务能力
2、新鲜度(freshness)
YouTube每天都在上传大量的视频,如何快速把新鲜的视频推荐给用户以及如何权衡过去高质量的视频推荐。
3、噪声
视频推荐也较难获得用户的满意反馈,往往也只能从隐性反馈中学习,这也造成噪声不可避免,加上用户的行为稀疏性和多样性。因此寻找一个稳定的训练集和特征是重要的。

借助Google Brain的强大计算力,问题1这个基本也都不是问题了,这篇论文的推荐架构也是经典的两阶段方法,但是在很多细节处理上有许多值得我们借鉴的地方,下面就简单聊聊(不论是视频推荐,很多排序算法也可以参考这个做法来做)

整体结构

2 召回模块(候选集生成Candidate Generation)

这里描述的方法其实也是一种矩阵分解的方法,早期做法是通过浅层网络来模拟矩阵分解,而且仅仅对用户的观测历史进行embedding,从这个角度来看,本文做法可以看成是一个非线性的分解技术。

2.1 特征表示阶段

这里把候选集推荐当成一个多分类问题:根据用户以及当前上下文特征,为用户在t时刻推荐一个视频,其中视频来源于视频池,表示为:
P(w_t=i|U,C)=\frac{e^{v_iu}}{\sum_{j\in V}e^{v_ju}}
其中u表示用户和context的组合embedding,v表示视频embedding,因此我们的目标是通过神经网络来学浏览历史和上下文的embedding function来表征用户,然后一个softmax分类器来判断哪个视频被预测概率最大。
用户特征主要来源如下几个特征拼接:

  • 一段时间内的观看历史视频的average embedding (这里用到的video的embedding也是最后softmax里的video embedding)
  • 一段时间用户搜索(query)的关键词的average embedding
  • 用户的年龄特征
  • 性别特征
  • 地理位置/设备型号 embedding
  • example age :表示视频上传时间距离当前时间差(时间差越小表示视频越新鲜)

特征拼接后经过几层的全链接层(激活函数采用ReLU)
这里用户的query特征主要是由unigram和bigram来表征,然后训练各自的embedding。
地理位置信息对于新用户来说是个非常重要的特征,YouTube把用户地理位置和设备型号都进行embedding。对于简单的二值/连续 特征,则采用mult-hot/one-hot的编码方式。
example age这个特征则表示视频的新鲜度,YouTube有根据这个特征来模拟其流行度。


流行度

2.2 训练阶段

由于只能通过用户的隐性反馈来获取正负样本,YouTube定义完成一个视频观看作为正样本。由于视频的候选集十分巨大(至少百万级/千万级),因此传统的softmax训练非常慢而且效果不理想,这里采用了负采样的方法进行训练,在进行负采样的时候也采用importance weighting。文章中也提到不采用Hierarchical softmax的原因。

For each ex ample the cross-entropy loss is minimized for the true label and the sampled negative classes.
In practice several thousand negatives are sampled, corresponding to more than 100 times speedup over traditional softmax.

2.3 在线服务

每次推荐的时候都计算所有视频池然后排序,需要消耗大量的时间。这里打分问题被看成一个最近邻搜索问题。这是个很棒的技巧,可以预计算好所有视频的embedding,然后通过大规模的最近邻搜索算法直接根据(U,C)的embedding寻找TopN视频即可。

image

做推荐的同学都知道,如果仅仅使用模型推荐的结果曝光和点击数据来进行训练,会陷入一个局部最优,而且导致新的内容无法被挖掘出来。

It is important to emphasize that recommendation often involves solving a surrogate problem and transferring the result to a particular context.
Training examples are generated from all YouTube watches (even those embedded on other sites) rather than just watches on the recommendations we produce. Otherwise, it would be very difficult for new content to surface and the recommender would be overly biased towards exploitation.

另外一个要注意的问题就是label的选择,在一个序列中,如果某个视频Vt被选为预测对象,那么应该把Vt以前的观看历史作为输入特征,不能泄露Vi(i=t+1, t+2,...)的信息,例如下图(b)

image

3 排序模块

初步筛选之后,可能选择近百个视频进行排序。但影响用户点击与否的特征不单单是视频内容,还有包括视频的图片信息,因此这个阶段需要更多的特征来进行精细排序。虽然深度学习为我们特征工程减轻了负担,但特征还是需要精心设计。
我们先看下排序阶段的模型架构图:

image

其实工作重心依然是在特征工程

  • 某个视频是否会被用户喜欢,很大程度和该用户是否观看过同类视频的特征相关,因此同类视频的观看次数、上一次观看同类视频的时间距离(如图的time since last watch)都可以作为特征
  • embedding categorical features 同召回阶段
  • 神经网络对输入特征的scale是敏感的,因此归一化很重要,除了对原始值进行归一化,我们可以通过其他方式表征连续型变量的特征:power(x, 2), sqrt(x) 等
  • 待推荐的视频被曝光的次数也可以作为特征,如果曝光次数越多,往往被再次点击的可能性较低。

训练阶段
这里不是仅仅把点击作为正样本,未点击作为负样本,而是利用观测时间进行加权,这里称为weighted logistic regression技术

Our goal is to predict expected watch time given training examples that are either positive (the video impression was clicked) or negative (the impression was not clicked). Positive examples are annotated with the amount of time the user spent watching the video. To predict expected watch time we use the technique of weighted logistic regression, which was developed for this purpose.

其实就是加权的逻辑回归,在计算损失函数的时候,加上用户观看视频的时间因子作为权重

The model is trained with logistic regression under cross-entropy loss .
However, the positive (clicked) impressions are weighted by the observed watch time on the video.
Negative (unclicked) impressions all receive unit weight

具体的参数配置以及loss情况如下表所示


image

最后文章也提到该方法相对于之前的矩阵分解技术有很大的提升

Our deep collaborative filtering model is able to effectively assimilate many signals and model their interaction with lay- ers of depth, outperforming previous matrix factorization approaches used at YouTube .

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容