比你更懂你- 神经网络与推荐系统的深度结合

比你更懂你- 神经网络与推荐系统的深度结合

  • 发布时间:2022-03-14 07:00
  • 访问量:

【概要描述】推荐系统的主要任务是推荐用户感兴趣的内容,通过揣摩人心来预测用户未来的行为。一个好的推荐系统所能带来的价值是无比巨大的。本文将介绍近期深度学习在推荐系统领域的发展和它们的主要原理,其中特征交叉是所有推荐系统能否成功预测用户行为的一大关键。

比你更懂你- 神经网络与推荐系统的深度结合

【概要描述】推荐系统的主要任务是推荐用户感兴趣的内容,通过揣摩人心来预测用户未来的行为。一个好的推荐系统所能带来的价值是无比巨大的。本文将介绍近期深度学习在推荐系统领域的发展和它们的主要原理,其中特征交叉是所有推荐系统能否成功预测用户行为的一大关键。

  • 分类:研究院
  • 作者:
  • 来源:
  • 发布时间:2022-03-14 07:00
  • 访问量:
详情

摘要

推荐系统的主要任务是推荐用户感兴趣的内容,通过揣摩人心来预测用户未来的行为。显然,一个好的推荐系统所能带来的价值是无比巨大的。特别是在近几年,它所带来的商业价值是显而易见的。我们将介绍近期深度学习在推荐系统领域上的发展以及它们的主要原理。在此文中我们将着重关注特征交叉,因为这是所有推荐系统能否成功预测用户行为的关键。

 

引言

 

推荐系统在互联网领域例如广告或视频推荐、线上购物等业务中拥有着巨大的商业价值。一个好的推荐系统能根据用户、商品等相关的特征精准快速地预判用户的下一步行为,从而提供最相关联的商品或服务,进而带来更多的收益。点击率是其中一个衡量收益的关键,其定义为(CTR=点击次数/商品出现次数×100%),它是衡量一个商品(例如一则广告页面)与某个用户的关联度指标,且通常还会乘以该商品所带来的收益/费用得到点击成本(CPC),因此推荐系统的终极目标是达成CTR或者CPC的最大化。

 

在深度学习崛起的早期,主流的推荐系统仍是相对简单的模型,例如基于logistic regression (LR),extreme gradient boost (XGBoost)或两者融合的方法等。然而这一类模型的缺点也比较明显:首先,它们往往需要人工提取特征来进行建模。这样不仅增加了时间成本,还会不可避免地丢失一些关键特征。其次,这类模型的表达能力也不够丰富,缺乏对一些复杂场景的捕捉能力,从而限制了模型的预测准确度。随着深度学习与相关硬件的发展,基于神经网络的推荐系统也逐渐取代传统的推荐算法。本文将从深度学习的角度出发,着重介绍几个重要的推荐系统网络结构。

 

特征交叉(Feature Crossing)

 

在介绍具体的深度推荐网络之前,我们先介绍一下在所有推荐系统中一个最重要的概念,即特征交叉。可以认为这是特征之间的交互作用,或着是种高阶特征。举个简单的例子,在网络购物的场景下,年龄与性别是两个重要的特征,我们可以从一阶(线性)的角度来单独地分别处理这两个特征。然而很显然,年龄与性别拥有着较大的交互作用:年纪相仿的男女与中老年人在商品种类的兴趣上有着很大的差异,因此两者的交叉特征所给予的额外信息对于预测用户的购物习惯有着很大的意义。当然了,更多的特征也可以被加入已有的特征组之中,例如曾浏览过的商品等,形成更高阶的特征交叉,然而这样往往会给网络训练与推理带来额外的负担并造成计算延迟。

 

虽然全连接神经网络理论上完全可以提取一定程度的高阶特征交叉信息,然而神经网络通过激活函数达到的非线性表征具有一般性的意义,并不只针对特征交叉,因此提取的特征交互信息往往都相对较弱。为应对这一问题,目前主流的深度推荐系统都在某些层面上采用了针对性地提取特征交叉的算法。其中最为经典的方法莫过于因子分解器(Factorization Machine:FM)[1]。

 

 

因子分解器(FM)

 

特征的一阶线性关系可以用一个简单的线性回归模型来表示

这里是n组不同的特征值,y(x)是模型输出, , 则为零阶与一阶的模型参数。我们可以看出线性模型将每一个特征单独对待,因此只针对单个特征进行预测。然而少有真实的推荐场景可被线性关系所描述,因为该模型缺乏表达力而无法抽出高阶信息。

我们可以加入一个二阶项来提升模型的表达能力

这里是一个能捕捉二阶特征交互作用的模型参数。眨眼一看,这个二阶项的两个求和符号与其上下标起还比较复杂,不过其实这就是特征的两两(不包括自己)相乘后的和。比如当n=3时,对应的是

虽然该模型拥有了捕捉特征交叉的能力,但是在推荐任务中,许多分类特征(categorical features)都是以稀疏的形式存在,这会导致许多项为零,因此缺乏样本对许多二阶参数的训练,使得模型不够完善。因子分解器(FM)则因其而诞生。一个二阶的FM可以被表达成

FM的第一个贡献便是使用分解交叉参数的内积 来估算。这里使得原先拥有n×n组的下降到有n×k个参数的。因为k远远小于n,这大大降低了所需要的训练参数并可减小模型的过拟合问题。然而这里有个问题,原先的公式需要O(n^2)的操作,FM则需要O(kn^2)的操作。这很有可能会带来性能上的限制。FM做出的第二个贡献便是使用一些基本的线性代数原理来重新表达原有的FM公式,且新的公式拥有着更高的计算效率。

在数学中,内积是可以被列为一种有着对称属性的双线性项(symmetric bilinear form)。我们可以将其用双线性项式表示

 

所有双线性项都有双线性的特质

 

我们可以利用双线性属性以及内积的对称性得到

 

这里我们可以看出以上公式分离出了两两相乘的部分,因此FM公式里的二阶项可以被改写为

 

结合这一个结果,我们可以得到二阶FM的最终公式

 

这个新的公式只有O(kn)的操作,并比原始的二阶模型有着还要少的复杂度(因k<<n),FM也因此成为许多主流深度推荐系统里的一个重要部分。

 

 

深度推荐系统

 

随着神经网络的高速发展以及大数据的爆发,基于深度学习的模型也在近年来逐渐成为主流的推荐系统模型。在这里我们将介绍几个最具代表性的网络结构。许多早期深度推荐系统都有着一个比较明显的缺陷,那就是只关注低阶特征或者只关注高阶特征交叉信息,例如FNN[2],PNN[3]等深度推荐系统网络。这一缺陷会被接下来将要介绍的网络所克服。

 

 

能兼容同时抽取低阶与高阶信息的网络- Wide & Deep

 

首先,在经典的深度推荐系统网络结构莫过于Wide & Deep[4]了。这是一个简单且易理解的网络结构。其精髓便是,它是由一个线性层(Wide部分)与多层Relu激活的MLP(Deep部分)所组成的结构(图1),最后将Wide与Deep的结果加起来并通过一个sigmoid激活得到最终结果[4]。

 

图1:Wide & Deep的网络结构 [4]

 

另外,我们简单介绍一下embedding层,这是一个在几乎所有推荐系统都会出现的部件。它的作用是与其将分类特征索引转换成one-hot向量与全连接层权重矩阵乘,不如直接用索引提取权重矩阵的值来大大缩小计算量,所以embedding矩阵也往往被称之为lookup table。这样做大大提高了网络效率,因为分类特征的维度往往都无比巨大,导致绝大部分的网络参数都来源于embedding层(大小是根据有多少独特的特征)。

 

回到Wide & Deep,深度学习在推荐系统的场景下面临的两个主要问题。首先是如何记忆重要的特征交叉以避免神经网络自己去挖掘,以及如何泛化模型来对未见过的数据做出精准预测。Wide & Deep的核心思想是使用Wide的部分来记忆预设的特征交叉来预测许多常见的场景,用Deep的部分来泛化从而做出Wide部分没记忆过的推理。

 

我们会发现大部分主流深度推荐模型都有最适应的业务场景。例如Wide & Deep是针对手机端App的预测,因此交叉的特征为用户已安装的App和推荐的App(图2)。Wide部分的网络会通过用户已安装的App来决定是否该给用户推荐当前App(这两个特征的选择是基于工程经验),而Deep部分则会根据所有特征信息(包括已安装App和给用户展现的App)用全连接网络来提取非线性信息从而提高整体预测效果。

 

图2:Wide & Deep的网络结构细节 [4]

 

这里的特征交叉虽没采用FM方法而是使用了交叉转换(cross product transformation)来实现,但是核心的思想仍是为了提取高阶特征之间交互作用的信息(具体实现请看[4])。Wide & Deep的网络结构对之后的深度推荐系统都有着巨大影响,以至于大部分之后产生的网络都延续了Wide & Deep的结构。

 

 

DeepFM 和Deep & Cross(DCN)

 

Deep & Wide的网络结构固然经典,不过它的一个最大缺点就是需要在Wide部分的输入为人工筛选的特征,导致无法被简单的扩展到其他场景中。DeepFM[5]则是一个经典的无需人工特征处理的Wide & Deep衍生网络。在结构上,DeepFM延续了Wide & Deep的整体结构(由两个分支组成)。不过Wide部分的线性层被一个能自动提取高阶特征交叉的FM层所替代(图3)。

 

图3:DeepFM的网络结构 [5]

 

同样类似的网络还有Deep & Cross(DCN)[6],该网络使用了交叉层(cross network)来取代Wide的部分。DCN的交叉层有着比FM更高的表达力,因此在理论上更适合提取高阶特征交叉的信息。不过需要注意的一点是,我们其实无法对两者在实际应用中的效果做出判断,这些都与应用场景和数据集相关。

 

图4:Deep & Cross的网络结构 [6]

 

 

其他深度推荐系统网络

 

在DeepFM,DCN之后,还诞生了许多其他推荐系统网络,改进了之前的一些机制。例如xDeepFm[7]和DCN-V2[8]都对DCN里的交叉层进一步改进了特征交叉的处理方法,得到了更好的高阶信息提取效果,然而在计算效率中做出了些牺牲。

另外,针对线上购物的DIN[9]在embedding层与MLP之间加入了注意力(attention)机制,根据用户以往的习惯,放大或缩小甚至抛弃与用户历史行为相关的权重,来更好预测用户将来的兴趣。这之后还相继诞生了DIEN[10]和DSIN[11],都为该网络的升级版。

其他主流网络还有DLRM[12]在输入的方法做出了些改动,稀疏(分类特征)与稠密(连续特征)输入的分别对应到了不同的网络输入口(分别是embedding层与MLP),并且只使用了二阶特征交叉在速度与准确度中做了平衡。

最后,近期推出了DeepLight[13]网络,是一个针对输入向量和不同层的神经单元和交叉矩阵执行了剪枝(pruning)操作,大大减少了内存需求以及提高了模型的推理速度,同时还保持了与之前主流网络相近的预测效果。

 

 

总结

 

在深度推荐系统领域中,虽然存在着许多不同的网络,但是我们可以看出大部分改进与创新都是为了更好地提取特征交叉。以此可见,特征之间的交互作用对于推荐任务来说无疑是一个最重要的模块。虽然一个复杂的特征交叉提取模块能更好地提取高阶信息,但是复杂性通常会带来更高的内存需求和推理时间,从而导致线上推理的延迟,影响最终收益。

需要注意的是,在模型选择中一定要配合场景,任务与数据。在不同情况下,模型的准确率有可能差距会很大。在实际应用中,往往需要测试多个模型,才能达到比较好的效果。此外,有些模型是在比较具体的业务场景下诞生的,例如Wide & Deep是针对手机端App的推荐任务,而DIN,DIEN和DSIN对应的则是线上购物的业务。因此,最适合的模型往往是通过经验筛选而出。

深度推荐系统所带来的商业价值是显而易见的,特别是最近几年里,我们也很期待在未来会出现一些创新来颠覆以往的推荐模型。

 

[1]        S. Rendle, Factorization Machines, in: 2010 IEEE International Conference on Data Mining, IEEE, 2010: pp. 995–1000. https://doi.org/10.1109/ICDM.2010.127.

[2]        W. Zhang, T. Du, J. Wang, Deep Learning over Multi-field Categorical Data, in: 2016: pp. 45–57. https://doi.org/10.1007/978-3-319-30671-1_4.

[3]        Y. Qu, H. Cai, K. Ren, W. Zhang, Y. Yu, Y. Wen, J. Wang, Product-based Neural Networks for User Response Prediction, (2016).

[4]        H.-T. Cheng, L. Koc, J. Harmsen, T. Shaked, T. Chandra, H. Aradhye, G. Anderson, G. Corrado, W. Chai, M. Ispir, R. Anil, Z. Haque, L. Hong, V. Jain, X. Liu, H. Shah, Wide & Deep Learning for Recommender Systems, (2016).

[5]        H. Guo, R. Tang, Y. Ye, Z. Li, X. He, DeepFM: A Factorization-Machine based Neural Network for CTR Prediction, (2017).

[6]        R. Wang, B. Fu, G. Fu, M. Wang, Deep & Cross Network for Ad Click Predictions, (2017).

[7]        J. Lian, X. Zhou, F. Zhang, Z. Chen, X. Xie, G. Sun, xDeepFM: Combining Explicit and Implicit Feature Interactions for Recommender Systems, (2018). https://doi.org/10.1145/3219819.3220023.

[8]        R. Wang, R. Shivanna, D.Z. Cheng, S. Jain, D. Lin, L. Hong, E.H. Chi, DCN V2: Improved Deep & Cross Network and Practical Lessons for Web-scale Learning to Rank Systems, (2020). https://doi.org/10.1145/3442381.3450078.

[9]        G. Zhou, C. Song, X. Zhu, Y. Fan, H. Zhu, X. Ma, Y. Yan, J. Jin, H. Li, K. Gai, Deep Interest Network for Click-Through Rate Prediction, (2017).

[10]      G. Zhou, N. Mou, Y. Fan, Q. Pi, W. Bian, C. Zhou, X. Zhu, K. Gai, Deep Interest Evolution Network for Click-Through Rate Prediction, (2018).

[11]      Y. Feng, F. Lv, W. Shen, M. Wang, F. Sun, Y. Zhu, K. Yang, Deep Session Interest Network for Click-Through Rate Prediction, (2019).

[12]      M. Naumov, D. Mudigere, H.-J.M. Shi, J. Huang, N. Sundaraman, J. Park, X. Wang, U. Gupta, C.-J. Wu, A.G. Azzolini, D. Dzhulgakov, A. Mallevich, I. Cherniavskii, Y. Lu, R. Krishnamoorthi, A. Yu, V. Kondratenko, S. Pereira, X. Chen, W. Chen, V. Rao, B. Jia, L. Xiong, M. Smelyanskiy, Deep Learning Recommendation Model for Personalization and Recommendation Systems, (2019).

[13]      W. Deng, J. Pan, T. Zhou, D. Kong, A. Flores, G. Lin, DeepLight: Deep Lightweight Feature Interactions for Accelerating CTR Predictions in Ad Serving, (2020).

 

近期文章

由简入繁探究机器视觉中的数据增强(上)

由简入繁探究机器视觉中的数据增强(上)

本文探讨图像数据增强的两大主流方法各自的优劣势,针对目前图像数据增强面临的挑战及未来思考可研究的技术方向。
2022-05-09
Kubric:高效地合成视觉数据集

Kubric:高效地合成视觉数据集

随着机器学习的发展,数据集的重要性越来越凸显。然而收集大量带标注的图像或者视频数据成本高昂。而使用合成的数据集则具有成本更低,且由于收集方便,标注信息准确,高度可控,使得其成为一种训练大规模深度学习模型的有效手段。
2022-05-02

联系我们

这是描述信息

招贤纳士

公众号二维码
这是描述信息

 版权所有   ©   上海壁仞科技有限公司   |    沪ICP备19047354号