| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 【王喆-推荐系统】前沿篇-(task1)YouTube推荐架构 -> 正文阅读 |
|
[人工智能]【王喆-推荐系统】前沿篇-(task1)YouTube推荐架构 |
学习总结
(1)精读谷歌的这篇paper《Deep Neural Networks for YouTube Recommendations》 文章目录一、YouTube 推荐系统架构YouTube 平台中几乎所有的视频都来自 UGC(User Generated Content,用户原创内容),其内容产生模式特点:
YouTube 在 2016 年发布的推荐系统架构: 为了对海量的视频进行快速、准确的排序,YouTube 也采用了经典的召回层 + 排序层的推荐系统架构(两层都使用了深度学习方法)。其推荐过程分为两级:
二、候选集生成模型视频召回的候选集生成模型: (1)最底层 PS:也可以采用 Embedding 跟模型在一起 End2End 训练的方式来训练模型。注意预训练和 End2End 训练这两种方式的区别。 除了视频和搜索词 Embedding 向量,特征向量中还包括用户的地理位置 Embedding、年龄、性别等特征。这里我们需要注意的是,对于样本年龄这个特征,YouTube 不仅使用了原始特征值,还把经过平方处理的特征值也作为一个新的特征输入模型。
(2)确定好了特征,跟我们之前实践过的深度学习模型一样,这些特征会在 concat 层中连接起来,输入到上层的 ReLU 神经网络进行训练。 (3)三层 ReLU 神经网络过后,YouTube 又使用了 softmax 函数作为输出层。注意这里的输出层不是要预测用户会不会点击这个视频,而是要预测用户会点击哪个视频,这就跟我们之前实现过的深度推荐模型不一样了。
小结:YouTube 推荐系统的候选集生成模型,是一个标准的利用了 Embedding 预训练特征的深度推荐模型,它遵循我们之前实现的 Embedding MLP 模型的架构,只是在最后的输出层有所区别。 三、候选集生成模型独特的线上服务方法3.1 问题一:为啥用视频ID作为预测label为什么候选集生成模型不用“用户是否点击视频”label作为预测目标,而是使用“视频ID”label? 在模型服务过程中,网络结构比较复杂,如果我们对每次推荐请求都端到端地运行一遍模型,处理一遍候选集,那模型的参数数量就会巨大,整个推断过程的开销也会非常大。 在通过“候选集生成模型”得到用户和视频的 Embedding 后,我们再通过 Embedding 最近邻搜索的方法(如局部敏感哈希LSH),就可以提高模型服务的效率了。这样就不用把模型推断的逻辑搬上服务器,只需要将用户 Embedding 和视频 Embedding 存到特征数据库就行了。 3.2 问题二:视频embedding和用户embedding哪里来【视频embedding向量】
然后将视频embedding和用户embedding预存到线上的特征数据库中,在预测某用户的视频候选集时: 四、排序模型4.1 排序层模型YouTube的深度学习排序模型的架构如下图,基本模型还是embedding+MLP,重点关注输入层和输出层的部分。经过召回层的粗筛,排序层可以引入更多特征进行精排,
第 4 个特征和第 5 个特征,很好地引入了 YouTube 工程师对用户行为的观察:
最后:把这 5 类特征连接起来之后,需要再经过三层 ReLU 网络进行充分的特征交叉,然后就到了输出层。 4.2 排序层和召回层的输出层注意,排序模型的输出层与候选集生成模型又有所不同。 不同主要有两点:
原因:YouTube 想要更精确地预测用户的观看时长,因为观看时长才是 YouTube 最看中的商业指标,而使用 Weighted LR 作为输出层,就可以实现这样的目标。具体的做法: 在 Weighted LR 的训练中,我们需要为每个样本设置一个权重,权重的大小,代表了这个样本的重要程度。为了能够预估观看时长,YouTube 将正样本的权重设置为用户观看这个视频的时长,然后再用 Weighted LR 进行训练,就可以让模型学到用户观看时长的信息。 这是因为观看时长长的样本更加重要,严格一点来说,就是观看时长长的样本被模型预测的为正样本的概率更高,这个概率与观看时长成正比,这就是使用 Weighted LR 来学习观看时长信息的基本原理。 4.3 排序模型的模型服务方法候选集生成模型是可以直接利用用户 Embedding 和视频 Embedding 进行快速最近邻搜索的。但是排序层就不可以这么做了。
五、作业YouTube 的排序模型和候选集生成模型,都使用了平均池化这一操作,来把用户的历史观看视频整合起来。你能想到更好的方法来改进这个操作吗? 【答】 六、课后答疑(1)id做输入再embedding vs. 预训练embedding:
(2)用户向量做一层wx+b怎么就得到某个视频的embedding了 【答】最后一层是多分类,预测哪个物品id被观看的概率最高。所以相当于先WX+b, X是用户向量,W是m*n的矩阵(m是总视频数,n是用户embedding的纬度)。然后再把结果放入softmax中正则化得每个物品的观看概率。而大矩阵W的每一行(wi)刚好对应一个物品,所以可以被当做物品embedding。 【答】relu隐藏层的输出是用户向量,正好是softmax层的输入x,根据前向计算wi*x+b算得到了物品i 节点值,这里的wi也就能代表物品向量了,也就是说由用户向量参与计算生成了最后的物品向量,跟我们前面利用电影向量 sum pooling出用户向量逻辑一致。所以他们在同一向量空间。 Reference(1)https://github.com/wzhe06/Reco-papers |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/28 0:48:49- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |