推荐系统与深度学习(1): [第四范式 2020]Network On Network for Tabular Data Classification in Real-world Applica...

~~ 个人对文章的理解,如果有错误,欢迎大家指正。
如果觉得有帮助或者写的还行,点个赞呗~~~

如今在电子商务、物联网等领域,推荐系统扮演着越来越重要的地位。如何根据用户的历史行为和项目的特征信息,判断用户对商品是否感兴趣成了重要的研究问题之一。日前,第四范式提出了全新的深度神经网络表数据分类模型——深度稀疏网络(Deep Sparse Network,又名 NON)。最近阅读了这篇文章,记录一下,了解NON模型提出动机、整体结构、局部特点以及突出贡献。


文章标题及作者

Luo Y, Zhou H, Tu W, et al. Network On Network for Tabular Data Classification in Real-world Applications[J]. arXiv preprint arXiv:2005.10114, 2020.
(文章引用及文章地址)

一、相关工作简介

可以将推荐系统分为以下四类,简单介绍基于内容的推荐算法、基于协同过滤的推荐算法、混合推荐算法,重点介绍基于模型的推荐算法。主要是通过基于深度学习的算法引出NON模型。
1. Contented based
基于内容的推荐算法。主要根据用户的浏览记录,或者购买记录,向用户推荐与浏览记录或者购买记录相似的物品。

2. Collaborative Filter
基于协同过滤的推荐算法。主要根据拥有相同经验或者相同群体的喜好,为用户推荐感兴趣的资讯或者物品。例如用户A和用户B相似,就可以把用户B喜欢的物品推荐给用户A。协同过滤算法还可以分为基于用户的协同算法和基于物品的协同算法。

3. Hybrid
混合推荐算法,将不同的算法混合使用。可以在不同阶段使用不同的推荐算法,也可以对多个推荐算法进行不同的处理,然后将多个推荐算法的结果耦合,将最终结果推荐给用户。

4. Model Bsed
基于模型的推荐算法。将用户的profile和物品的properties作为特征,用机器学习模型,来预测用户对物品的喜好程度。在推荐系统中,经常会用到点击率(CTR)来表示喜好程度。点击率表示用户点击物品的概率,点击率越高说明用户对该物品的喜好程度越高。

如下图给出的FM数据图例子,表示用户对电影的点击率。每一行是一个样本。每一列是不同的特征,表示用户的属性,电影的特征,以及用户的一些历史行为记录。在每一条样本中,0表示用户没有点击对应的movie,1表示点击对应电影。那么此时问题已经转化为二分类问题。


FM模型数据图

5. 基于模型的常见方法

(1)浅层的基于模型的方法
首先,是一些比较浅层的推荐方法,例如LR、FM、FFM等。逻辑回归算法(Logistic Regression,LR)是推荐系统的常用方法之一。将用户的浏览记录和项目的信息、离散特征,通过one-hot编码;将数值类特征归一化,或者通过分桶技术,进行离散化。然后通过LR模型进行训练,LR模型很稳定, 但是缺乏学习高阶特征的能力,尤其是特征间的交互。而FM模型和FFM模型则将低维的离散特征通过embedding,转化为高维的稠密向量。然后用稠密向量的内积表示特征之间的交互特征。LR、FM 和 FFM 三种模型取得了较好的效果,但由于它们的结构较浅,其表达能力也受到了限制。

(2)基于深度学习的方法
基于深度学习的推荐方法,目前有基础DNN、NFM、AFM、NCF、DeepFM、WDL、xDeepFM、AutoInt等。介绍比较基础的两个。

DNN模型。DNN方法使用了Embedding技术,将离散和数值特征Embedding 到高维的稠密向量。然后和将稠密向量和数值特征拼接,作为DNN的输入,然后直接预测输出。

WIDE&DEEP模型。WIDE&DEEP方法,对比DNN方法。增加了Y的部分,即专家手工设计的高维特征。然后把高维特征和DNN学到的特征拼接,作为模型的输入,预测最终的点击率。

其他深度学习的方法借鉴了WIDE&DEEP的模式。例如,在DeepFM模型中,将专家手工设计的部分(Wide部分)替换成了FM; 在xDeepFM模型中, 将Wide部分替换成了CNN; 在AutoInt模型中,将Wide部分替换成self-attention的网络。

在推荐系统中还有一类方法,基于用户的兴趣, 使用了用户的历史行为数据,例如DIN、DSIN,但是这一类方法和NON模型有所区别。

DNN和WDL模型结构

上述方法的存在的问题:

  • 现有方法直接融合不同特征域的向量表示,而未显式地考虑域内信息。
    文中将“每个特征域内的不同特征值,均属于同一个特征域”记为域内信息。对于每个特征域中的特征,它们的内在属性是都属于同一个特征域。以在线广告场景为例,假设特征域 ‘advertiser_id’ 和 ‘user_id’ 分别表示广告商和用户的 ID,则特征域 ‘advertiser_id’(‘user_id’)中的不同的广告商 ID(用户 ID)都属于广告商(用户)这个特征域。此外,特征域有自己的含义,如 “advertiser_id” 和 “user_id” 分别代表广告主和用户,而不管域内特征的具体取值。

  • 大多数现有方法使用预定义的特征域交互操作组合(如 DNN、FM),而未考虑输入数据。
    事实上,预定义的操作组合并不适用于所有的数据,而是应该根据数据选择不同的操作,以获得更好的分类效果。如下图所示,Wide&Deep中的Operations使用了了Linear和DNN;DeepFM使用了FM和DNN;xDeepFM使用了CIN、Linear和DNN;AutoInt中使用了self-attention和DNN。

  • 最后,现有方法忽略了特征域交互操作(如 DNN 和 FM)的输出之间的非线性。
    如下图第三列所示,在Prediction时,都是通过线性关系关联的,没有考虑非线性关系。

现有模型Operation总结

二、NON模型详细讲解

接下来全面介绍《Network on Network》。

1. NON模型整体结构

为了解决上述问题,第四范式提出了深度稀疏网络(NON),它由三部分组成: 底层为域内网络(Field-wise Network)中层为域间网络(Across Field Network),顶层为融合网络(Operation Fusion Network)。域内网络为每个特征域使用一个 DNN 来捕获域内信息;域间网络包含了大部分已有的Operation,采用多种域间交互操作来刻画特征域间潜在的相互作用; 最后融合网络利用 DNN的非线性,对所选特征域交互操作的输出进行深度融合,得到最终的预测结果。


image.png

2. Field-wise network

每一个特征Field都和一个NN网络相连,其中类别特征先进行Embedding操作,而数值型特征直接通过NN网络。通过NN网络强大的学习能力, 显示地学习特征域内信息。鉴于 DNN 的强大的表达能力,特征域内信息可以被充分地学习。还有一点需要注意,在模型中还加入了一个Gate Function,将NN的输出和输入耦合起来,常见的Gate Function包括concatenation、element-wise product以及其他更加复杂的操作。

Field wise network

3. Across field network

在域间网络(Across field network)中,利用已有的Operation,来学习特征之间的Interaction,这些Operation都是以Field-wise network的输出为输入。常见的特征域交互操作包括 LR、DNN、FM、Bi-Interaction 和多头自注意网络等。在设计中,兼容目前大部分学术上提出的Operation。在操作中,将Operation作为超参数,在训练过程中根据数据进行选择。现有方法中,域间交互操作的方式是用户事先制定的。而在深度稀疏网络中,可以通过数据,自适应地选择最合适的操作组合,即在深度稀疏网络中,操作组合的选择是数据驱动的。

Across field network

4. Operation fusion network

在融合网络(Operation fusion network)中,将域间网络层的输出拼接,作为NN的输入,利用NN的非线性,学习不同Operation的高阶特征表示。


Operation fusion network

需要注意一点,NON网络设计的特别深,所以在训练过程中,很容易出现梯度消散的现象,导致模型效果变差,收到GoogLeNet的启发,在模型训练过程中引入了辅助损失。在DNN的每一层都加入了一条路径,连接到最终的损失上,缓解了梯度消散问题。经实验测试,该方案不仅能够增加模型最终预测效果,也使得模型能在更短的时间内,取得更好的效果。如下图所示。


Auxiliary losses

至此模型介绍结束,接下来将分析实验结果。

三、NON模型实验结果分析

1. DNN with auxiliary losses

这是在Criteo数据集上的实验结果,图中的横坐标是训练的轮次,纵坐标是AUC。从图上可以看出,通过添加辅助损失,训练效率明显提升。在同等AC的情况下,产生了1.67倍的加速。之后的所有训练都是通过添加辅助函数的方式进行训练的。


测试Auxiliary losses的作用

2. Ablation study of NON

在NON消融研究中,展示NON每一个模块的作用。从左到右:第一列数据集;第二列,只有DNN;第三列,增加辅助损失的DNN,和DNN比较,添加了辅助损失可以提高性能;第四列,添加了Field-wise Network,从结果看出,域内网络捕获的域内信息有助于提高模型的泛化性能;第五列,加入了Across field network,结果有所提升;第六列,完整的NON模型,取得了最好的结果。可以看出随着 NON 不同的组件堆叠,模型的预测效果持续增长。
NON模型消融分析

3. Study of field-wise network

从定性和定量的角度分析Field-wise network的结果。下图第一行,是通过Field-wise network之前,第二行是通过Field-wise network之后。不同的颜色表示不同Field之间的Embedding。通过对Field-wise network处理前后特征值对应的向量进行可视化和比较,可以看出经过Field-wise network后,每个Field内的特征在向量空间中更加接近,不同Field间的特征也更容易区分。
Field-wise network功能探究

下表展示了所有的Field 内部的Embedding 预先相似度。通过进一步计算数据中特征的平均余弦距离(数值越大,相似度越高),Field-wise network可以使余弦距离提高一到两个量级,即能有效地捕获每个域内特征的相似性。
image.png

4. Study of operations

对Operation的学习,就是对Across field network层的学习。这一部分做了两个实验。在Across field network,深度稀疏网络将不同的交互操作视为超参数,并根据在具体数据上的预测效果,选择最适合的交互操作。其中,DNN 被视为必选,而其他操作(LR、Bi-Interaction和multi-head self-attention)被视为可选。同时,通过固定深度稀疏网络的其他层,只变换域间网络中不同的操作组合来进行更多验证。横坐标是不同的组合,纵坐标是AUC。可以看出没有一个操作组合能够在所有数据集上都取得最优效果,也没有一个Operation组合能够在所有的数据集上都取得最好的效果,这表明了根据数据选择操作组合的必要性。


不同数据集不同Operations的组合研究

上表列出了在不同数据集上表现组好的Operation组合,可以看到DNN和LR都有,可能是因为LR的稳定性很好。同时,从结果可以看出来,大数据集倾向于选择容量大、复杂的操作组合;小数据集倾向于轻量、简单的操作组合。再一次证明需要通过不同的数据集需要选择不同的Operation组合。


不同数据集最终选择的Operations组合

5. Comparison with SOTAs

和当前的SOTA模型进行比较。与 FFM、DNN、Wide&Deep、NFM、xDeepFM、AutoInt 等模型相比,深度稀疏网络在实验数据集上均能获得最好的结果,AUC 可提高 0.64%~0.99%,结果说明NON模型设计的有效性。其次,看一些细节,在Talkshow数据集上,NFM模型的效果退步,说明网络不一定越复杂越来,需要进行设计,才能获得较好的结果。证明了NON模型设计范式的有效性。


和SOTAs模型对比

四、个人观点

首先,不可否认,这是一比较好的文章。NON可以看成是模块化的系统,尤其是Cross field network层,从WDL模型开始,越来越多的模型使用双塔结构,然后NON模型告诉你,你不要纠结了,这些模型都放进来,你们都是超参数,我通过排列组合给你们挑出最好的结果。以后若是产生了新的模型,也可以放进去作为模块进行训练,很万金油。所以只要选得好,模型的结果应该是会比SOTAs的模型好的。不过Field-wise network和Auxiliary loss的使用对结果的提升从实验看来确实比较明显。当然另一方面这也会为人诟病: NON模型是不是可以看成模型融合呢?个人觉得,在一定程度上是可以的。
其次,还有一个明显的问题在于训练的时间问题,这个模型的参数量比任何一个SOTAs模型都要大,因为在Embedding和Prediction层都加了Network,而且选择了很多个Operation,所以显而易见。而且将operation作为超参数的代价太大,需要训练的时间更长。作者也在文章中分析了时间复杂度的问题,并且给出了建议,在保证效果的前提下选择轻量级的Operation组合。

你可能感兴趣的:(推荐系统与深度学习(1): [第四范式 2020]Network On Network for Tabular Data Classification in Real-world Applica...)