要想了解YouTube的召回模型,需要依次掌握召回算法、召回模型网络结构,以及召回特征和样本设计。
召回算法
为了生成候选集,需要从视频语料库中选出与用户相关的视频,可以将其看成一个极多分类问题(extreme multiclass classification problem)。
基于特定的用户U和上下文C,在时刻t将指定的视频Wt准确地划分到第i类中,其中
极多分类就是Softmax分类,公式如下:
其中,用户向量u是由用户观看和搜索视频记录进行Embedding,再和上下文以及用户的其他特征组合而成的一个向量。
vju表示第j个视频的Embedding向量,这里每个视频都Embedding成一个向量。
假设存在百万个类别,训练这样的极多分类问题时会显得异常困难,需要对Softmax多分类问题进行优化加速。其解决方法采用负类采样(sample negative classes),通过采样找到数千个负类,将多分类问题变成二元分类问题,如此一来运行速度大大提升。
召回模型网络结构
在Word2vec语言模型(CBOW)中,我们将各个词Embedding编码到一个向量,并将词的Embedding向量喂给前馈神经网络进行学习。受此方法启发,我们将每个视频都映射(Embedding)到一个向量,并且将视频的Embedding向量喂给神经网络,其中神经网络的输入需要为固定大小的向量。我们可以简单地将用户观看过的所有视频ID的Embedding做聚合操作(最大、最小、平均、累加等),其中平均操作的效果最好。
另外,视频的Embedding向量也可以通过正常的梯度下降反向传播更新与所有其他模型参数一同学习。召回模型的网络结构如下图所示。
召回模型的网络结构
YouTube召回模型的网络结构包含多层神经网络:输入层、中间层(多层网络)、输出层。接下来对各层神经网络进行详细介绍。
在该网络结构中,输入数据都是一些异构数据,包括:
中间层包括两层,其中每一层的激活函数为ReLU。
输出层的维度和视频ID的Embedding维度一致,最终得到用户向量u。
通过该网络结构的学习,最终可以得到所有视频的Embedding向量V,其维度为pool_size×k,其中pool_size为训练集视频资源池大小,k为Embedding的维度。我们还可以得到所有用户的输出向量u,其中每个用户向量的维度是k维,和物品的Embedding维度一致。
在线服务阶段,通过视频向量V和用户向量u,进行相似度计算,采用最近邻查询,取得Top相似视频作为召回候选集。
召回特征和样本设计
接下来介绍召回模型输入层的特征处理,以及如何进行样本的设计和如何选择模型参数。
包括如下内容。
加入example age特征后的效果示例
这里在训练时将训练样本的example age值作为一个特征进行训练学习;而在线上进行在线推荐服务时,会将example age这个特征值设置为0(或绝对值比较小的负数),以反映模型正在训练窗口的末端进行预测。
包括如下两项内容。
上下文选择对比效果示例
通过增加特征数量和神经网络的深度,可以显著提高准确性,如下图所示。
神经网络深度参数对比示例
在上图的实验中,总共有数以百万计的视频和搜索词汇,我们取最多50个观看视频和50个最近搜索视频,映射成256维的float数组。最后一层网络的输出是一个256维的向量,其中最后的输出结果会通过一个Softmax函数,计算得到1MB视频的得分,即分类结果。模型基于所有YouTube用户数据进行训练,直至收敛。网络结构呈一个常见的塔状,底部的网络最宽,每往上一层节点数就减半。深度为0的网络和之前的推荐系统非常相似,是一个高效的线性分解模型。
本文节选自电子工业出版社博文视点的新书《推荐系统算法实践》。这本书系统、全面、深入地解析了推荐系统中的推荐算法,包括线性模型、树模型、集成学习模型、深度学习模型中的典型方法,以及在Sklearn、Spark、TensorFlow主流工具中的源码实现与应用实现,可以帮助读者进行工程实践并在实际工作中应用。走过路过不要错过左下阅读原文,作为互联网时代最为通行的一种信息检索工具,推荐系统将通过有效连接用户和信息,为你创造显著价值。
内容简介:本书主要讲解推荐系统中的召回算法和排序算法,以及各个算法在主流工具Sklearn、Spark、TensorFlow等中的实现和应用。书中本着循序渐进的原则进行讲解。首先,介绍推荐系统中推荐算法的数学基础,推荐算法的平台、工具基础,以及具体的推荐系统。其次,讲解推荐系统中的召回算法,主要包括基于行为相似的协同过滤召回和基于内容相似的Word2vec召回,并且介绍其在Spark、TensorFlow主流工具中的实现与应用。再次,讲解推荐系统中的排序算法,包括线性模型、树模型和深度学习模型,分别介绍逻辑回归、FM、决策树、随机森林、GBDT、GBDT+LR、集成学习、深度森林、DNN、Wide & Deep、DeepFM、YouTube推荐等模型的原理,以及其在Sklearn、Spark、TensorFlow主流工具中的实现与应用。最后,介绍推荐算法的4个实践案例,帮助读者进行工程实践和应用,并且介绍如何在Notebook上进行代码开发和算法调试,以帮助读者提升工作效率。本书适合 AI、数据挖掘、大数据等领域的从业人员阅读,书中为开发者展现了推荐算法的原理、实现与应用案例。
作者简介:黄美灵,现任一线互联网公司的高级工程师,拥有多年大型互联网公司推荐系统和机器学习实战经验,现从事广告推荐、应用分发和资讯Feeds流推荐相关工作。