深度模型DNN在个性化推荐场景中的应用

感谢阅读「美图数据技术团队」的原创文章,关注公众号,后台回复 蒋文瑞可获取本次分享的完整 PPT,搭配文章看更清晰哦~

随着深度神经网络在语音和图像识别上取得的巨大成功,AlphaGo 打败人类围棋顶尖高手,以深度网络为基础的人工智能迎来第三次高潮。与此同时互联网所面临的信息超载问题愈演愈烈,其中个性化推荐是重要的信息过滤手段。算法

在第九期美图技术沙龙中,来自美图公司的蒋文瑞以短视频为切入点,探索如何将深度模型应用于个性化推荐场景。这样的模型“深度”的理解用户偏好的同时又能保持必定的推理效率。网络


业务背景

咱们团队主要业务场景在美拍潮流短视频社区,美拍首页以双列流形式展现,也就是热门短视频场景。若用户看完当前热门短视频意犹未尽,想看更多类似内容时可向下滑动,即上下滑业务场景。ide



咱们处在一个信息超载的时代,短视频这种新媒体平台也不例外。随着短视频制做与发布的便捷性提升,每分每秒会有大量的短视频产生,面临这样的信息超载状况,个性化推荐服务愈显重要。学习


个性化推荐流程

个性化推荐分为多个阶段。在召回阶段评估出用户可能感兴趣的内容,过滤掉用户不感兴趣的内容。排序阶段对召回的结果作打分服务,到最后的预估阶段综合考虑新颖性、多样性、准确性、实时性等多方面因素,为用户呈现推荐结果。接下来的内容将围绕排序阶段展开。排序阶段有多种策略模型:线性模型 LR、非线性模型 GBDT、NN 模型,咱们之因此选择 NN 模型,缘由在于它有着更大的想象空间与发挥空间。优化

如何获得一个很好的深度模型 DNN?咱们不可能每作一次调整就尝试应用于线上服务,而是须要经过一些指标来快速衡量模型是否符合预期。那么咱们从两个业务需求点出发肯定两个指标,一个指标用来衡量模型的拟合能力 Metric,另外一个指标用来衡量模型的推理效率 Efficiency ,简单来讲两个字:this

那为何须要交叉?先来看两个 Cross 的例子。试想这样一种场景:当用户打开美拍的时候呈现了一个视频,若是该视频的主题或标签是化妆类,能够想象当用户是女性时点击播放几率要远远大于男性用户,这就是二阶交叉一个例子。同理能够拓展到三阶交叉,在保留刚刚前两个特征(性别:女,标签:化妆)的前提条件下,再引入年龄特征:某个年龄段的用户对这种类型的视频的播放的概率要大于其它用户,这就是所谓的三阶交叉。编码

注:Cross 即特征交叉,符号 fModel_BI 表 Cross 特征交叉。人工智能


深度模型的演进

以下图所示,红色区域表示优化目标在于模型的拟合能力 Metric,而到了后期优化目标则转变为模型的推理效率 Efficiency。cdn

1.LR

LR 模型是很典型的宽而浅的模型,这样的模型有一个特色:当它使用编码方式为 One-hot 时采用手动特征交叉。视频

优点:

易于使用

模型特别浅,模型推理效率高


劣势:

线性模型对非线性场景的拟合能力较差

手动特征交叉

  • 成本高,当对一个业务特别熟悉的时候能够对这个业务提取出比较有效的一些特征交叉,若切换一个新的业务则须要花大量的时间成本去熟悉新业务,才能提取出有效的交叉特征。


  • 可扩展性差,实际业务场景中随着特征维度的激增,有效提取全部的交叉特征的困难度也会随之而增加。


  • 拟合能力差,以上文中所举的性别与标签的交叉示例,这是一个显而易见的交叉,可是在实际业务中不少交叉是隐性、不可见的,很难用手动的方式把它们提取出来。


对于手动特征交叉存在这样的缺陷咱们思考可否从模型层面自动捕捉特征交叉,因而咱们引入了 FM 模型。


2.FM

FM 模型的结构以下图所示,粉色部分表示原来的 LR 模型部分,蓝色部分表示特征交叉的学习,深红色节点表示性别与标签的二阶交叉学习。

咱们每次对模型作一次演化时会评估离线指标,也就是模型的拟合能力。经过下图的效果等级表能够看出:相对于 LR 模型, FM 模型离线指标有一个很好的提高。

另一方面,虽然 FM 模型克服了手动特征交叉的缺陷,但它依然属于线性模型的家族。因而咱们引入了 NFM 模型。


3.NFM

从名字上看 NFM 模型在 FM 模型以前加了一个「Neural」字段,反映在 NFM 模型的结构图中很是直观。咱们在 BI-interaction layer 后接入了一个三层的 FC 全链接层(模型结构图的右侧依然是 LR 模型),经过这种方式提高了模型的非线性拟合能力。可是思考模型自己时会发现,NFM 模型与 FM模型同样依然只能捕捉二阶交叉,没法捕捉三阶甚至是更高阶的交叉。

出于捕捉更高阶交叉的目的,咱们引入了 DCN 模型,即 Deep Cross Network 。


4.DCN

DCN 模型与 NFM 模型除了Cross 部分结构比较相似。DCN 模型经过控制 Cross 层数来捕捉特定阶数的交叉,一层 Cross 能够捕捉二阶交叉,而二层 Cross 能够捕捉三阶交叉......以此类推。

接下来经过对 Cross 层的展开来演示如何捕捉二阶交叉和三阶交叉

二阶交叉捕捉的是:CTR(性别:女,标签:化妆) > CTR(性别:男,标签:化妆)。

三阶交叉捕捉的是:CTR(性别:女,标签:化妆,年龄:18 ~ 36) > CTR(性别:女,标签:化妆,年龄:12 ~ 18)。


学习二阶交叉时捕捉的是 x1=x0 x0T

捕捉三阶交叉时捕捉的是 x2=x0 x1T

经过这种循环的方式将 N 阶交叉扩展到 N+1 阶交叉。另外实现 DCN 模型的时候须要注意:根据秩 1 矩阵的属性,先计算 xt 乘以 w 的部分,假设 embedding 之后向量长度为 2000,那么空间复杂度就能由 2000*2000 优化为 2000。经过这样的实现机制有效避免了参数空间过大所带来的 OOM 。


阶段分析

从 FM 模型到 NFM 模型,增强了模型的非线性拟合能力;从 NFM 模型到 DCN 模型,让模型从仅仅捕捉二阶交叉到捕捉更高阶交叉。在下图能够看到 NFM vs FM 和 DCN vs NFM 的提高状况。

从 LR 模型到 FM 模型、NFM 模型、再到 DCN 模型,咱们把重心放在模型拟合能力的提高上,相应的取得了阶段性的成果。但鱼与熊掌难以兼得,在提高模型拟合能力的同时不可避免地提高了模型的复杂度,致使了模型推理效率的降低。

接下来考虑在保持模型拟合能力的同时(在模型拟合能力降低的可接受范围内)提高模型的推理效率。首先分析 NFM 模型推理效率低下的缘由在于 Embedding 层,Embedding 层的超高维度特征的查表过程是一个费时的过程,从而考虑将 Embedding 层替换为经典的 FC 层。但这样的简单替换可能带来两个问题:超大参数和过大模型


5.xNFM

问题的源头就在于不论什么特征都统一编码为固定长度的向量(如 128),那么这种方式在编码空间上是不是一种浪费呢?因而咱们引入特征分域,按照特征分域区分编码长度。经过特征分域的方式有效扩展了网络可支持的特征维度,克服了超大参数和过大模型的问题,这种添加特征分域和 FC 输出层的模型,即是 xNFM 模型。

在优化以后作一个阶段性的分析,发现 xNFM 模型的推理效率是 NFM 模型的两倍。然而在这个模型的推广过程当中依然会遇到瓶颈,毕竟众多的分域 FC 也在必定程度带来了模型复杂度的提高。此时咱们引入了 xNFM_Sparse 模型。


6.xNFM_Sparse

xNFM_Sparse 模型从 FC Embedding 回归到朴素的 Embedding 查表方式,却单独实现了一套 Sparse Embedding 方式(一种高效的 Embedding 方式),同时它融入了一部分 BI-interaction 运算,提高模型的前向推理效率。对比 xNFM_Sparse 模型与 xNFM 模型得出:Metric 基本保持不变,但推理效率 Efficiency 再次获得了加倍提高。


深度模型总结

上文中为你们介绍了如何一步步优化模型的拟合能力和模型的推理效率,接下来对已有的模型作一个总结。

咱们的模型跨越 4 个方面:

  • Embedding

  • LR

  • MLP

  • Cross

不一样于卷积神经网络 CNN 对图像的语义理解,个性化推荐场景中的特征一般高维度且十分稀疏,须要有效的 Embedding 手段来处理这种问题。对于 LR 模型和 MLP 模型须要经过 Wide 模型捕捉记忆性,也就是 Wide 部分长处在于学习样本中的高频部分,其优势是模型的记忆性好,对于样本中出现过的高频低阶特征可以用少许参数学习。与此同时也须要 Deep 模型去捕捉 Generalization 泛化性,Deep 部分的长处在于学习样本中的长尾部分,优势是泛化能力强,对于少许出现过的样本甚至没有出现过的样本都能作出预测(非零的 embedding 向量)。而最后的 Cross 部分经过模型自动去捕捉二阶,三阶,甚至是更高阶的交叉,也能够将 MLP 概括为隐性特征交叉的捕捉,而将 Cross 概括为对显性特征交叉的捕捉。

回顾深度模型演变历程,在最开始的 LR, Wide & Deep 阶段,咱们经过手动交叉的方式去捕捉交叉特性,同时 Wide & Deep 也有捕捉隐性特征交叉;到了FM、NFM、DeepFM 阶段,咱们可以捕捉显性的二阶交叉;再到了 DCN,咱们经过网络层数控制交叉阶数,捕捉元素级别的显性高阶交叉,直至本文为作展开的 xDeepFM,捕捉向量级别的显性高阶交叉。


将来展望 

虽然上文花了这么多的篇幅来介绍深度 FM 系列的模型,但 FM 不是咱们的所有重心所在,它更像是摩天大楼的一个地基而已。

「This is not the end, this is just the beginning.」

以深度 FM 模型为起点,分别从业务和模型两个层面思考它的不足以及如何改善。首先是业务层面,单纯的 DNN 容易带来以下两个问题:

  • 冷启动问题

新出现的用户或者视频,其相关行为特征少,已“校准”好的模型对 于此类用户或者视频,表征推理能力差

  • 表征能力

单纯的数值统计特征表征能力有限,用户行为都是已视觉产生先入为主的印象,视觉信息更容易对用户产生吸引力

面对这两个问题咱们引入多模态数据融合,模型上也融合了多种模型的优点。保留 FM 以下优点的同时引入 CNN 与 RNN / LSTM。

1.有效的 Embedding 技术应对高维,稀疏特征

2. 非线性表征能力,对隐性交叉的有效捕捉

3.对显性交叉的有效捕捉

其中 CNN 可以有效的捕捉用户的视觉维度特征。同时对于新出现的视频,即便没有出如今训练数据中,CNN 也能作很好的推理。而 RNN / LSTM 则促进了有效学习用户的行为序列。

从模型自己角度出发,DNN 这样的模型有它固有的优点以下:

  • 优秀的数据拟合能力,多种业务下state-of-the-art

  • 大规模的随机优化算法简单而有效。

但 DNN 也有它固有的缺陷:

  • 超参数过多(诸如学习率,正则化参数等等),难以学习

  • 采用点估计,没法考虑到参数的不肯定性

贝叶斯推理能有效克服这些缺陷。贝叶斯推理采用少许的先验分布及参数估计,充分考虑到了参数的不肯定性。所以咱们引入在线贝叶斯深度学习,保留 DNN 模型优势的同时客服它的不足,且模型能够在线实时更新,捕捉实时的用户反馈。

相关文章
相关标签/搜索