[1] Neural Factorization Machines for Sparse Predictive Analytics
Xiangnan He, Tat-Seng Chua
SIGIR 2017
https://www.comp.nus.edu.sg/~xiangnan/papers/sigir17-nfm.pdf
针对多种类别型变量的情形,对这些变量利用one-hot编码之后构成的特征会比较稀疏。针对这种问题,这篇文章提出神经分解机模型(Neural Factorization Machine ,NFM),该模型可以应对稀疏数据。
该模型不仅可以对特征之间的二阶关联进行建模,而且可以利用神经网络对更高阶的特征关联进行建模。这样可以使得神经分解机模型相对FM表达能力更强,FM可以看做不含隐含层的神经分解机模型。
几种方法不同的初始化方法效果对比如下
神经分解机模型图示如下
下面是数据集统计信息
不同的dropout及l2正则方法的效果对比如下
隐含层层数的影响如下
下面是多种方法在多个数据集上不同参数下的效果对比
代码地址
https://github.com/hexiangnan/neural_factorization_machine
该代码利用Python和Tensorflow实现
[2] xDeepFM: Combining Explicit and Implicit Feature Interactions for Recommender Systems
KDD 18
Jianxun Lian, Xiaohuan Zhou, Fuzheng Zhang, Zhongxia Chen, Xing Xie, Guangzhong Sun
University of Science and Technology, Beijing University of Posts and Telecommunications, Microsoft Research
https://arxiv.org/pdf/1803.05170.pdf
很多商用模型之所以得以成功应用,组合特征起着至关重要的作用。由于大型Web 系统中原始数据具有多样性,数据量巨大,生成速度较快,人工生成组合特征通常成本很高。
基于分解机的模型,利用矢量积来得到特征之间的相互作用,可以自动学习组合特征,并且可以泛化到未见特征中。随着深度神经网络(DNN)在多个应用领域中的巨大成功,最近研究人员提出了几种基于DNN的分解模型,这些分解模型能够学习低阶和高阶特征交互。
尽管从数据中学习任意函数的能力很强,但一般的DDN在基于位级别隐式生成特征之间的交互。本文提出了一种新的压缩交互网络(CIN),这种网络能够以明确的方式在矢量层次生成特征交互。
结果表明,CIN与卷积神经网络(CNN)和循环神经网络(RNN)能够共享一些特征。作者们将 CIN 和经典的 DNN 组合到一个统一模型中,并将此新模型称为eXtreme 深度分解机,xDeepFM。
一方面,xDeepFM 能够显式学习某些有界度的特征交互;另一方面,它可以隐式地学习任意的低阶和高阶特征交互。作者们在三个真实数据集上进行了全面的实验。结果表明,xDeepFM 优于最先进的模型。
域嵌入层图示如下
DeepFM与PNN的结构图示如下
Cross Network结构图示如下
压缩交互网络的元素和结构图示如下
xDeepFM的结构图示如下
数据集信息统计如下
多种方法在多个数据集上的效果对比如下
层数 单元数 激活函数等超参数效果(AUC)对比如下
层数 单元数 激活函数等超参数效果(LogLoss)对比如下
代码地址
https://github.com/Leavingseason/xDeepFM
[3] AutoInt: Automatic Feature Interaction Learning via Self-Attentive Neural Networks
Weiping Song, Chence Shi, Zhiping Xiao, Zhijian Duan, Yewen Xu, Ming Zhang, Jian Tang
Peking University, University of California, Montreal Institute for Learning Algorithms (Mila), HEC Montreal
https://arxiv.org/pdf/1810.11921.pdf
点击率 (CTR) 预估旨在预测用户点击广告或项目的概率,该任务对于在线应用,比如在线广告和推荐系统,至关重要。该问题非常具有挑战性,因为
(1) 输入特征(例如用户 ID、用户年龄、项目 ID、项目类别)通常比较稀疏,并且维度较高
(2) 有效的预测依赖于高阶组合特征,即交叉特征,这种特征依赖于领域专家的手工设计,非常耗时,并且不可能枚举。
因此,研究人员不仅试图寻找两类特征的低维表示,即稀疏和高维原始特征,以及有意义的组合特征。本文提出了一种高效算法,该算法能够自动学习输入特征的高阶特征组合。该算法非常通用,不仅可以处理数值类型的特征,也可以处理类别型特征。具体来说,该方法将数值和类别型特征映射到相同的低维空间。然后,提出了一种具有残差连接的多头自注意神经网络,进而对低维空间中的特征交互进行显式建模。多头自注意神经网络的不同层,可以对输入特征不同阶的组合进行建模。
整个模型可以端到端地有效地适应大规模原始数据。在四个真实数据集上的实验结果表明,本文方法不仅优于现有的预测方法,而且具有较好的可解释性。
本文贡献可以总结为
本文模型结构图示如下
输入层及嵌入层图示如下
交互层结构图示如下
数据集信息统计如下
多种方法的效果对比如下
多种方法的效率(运行时间)对比如下
多种方法的效率(模型规模 参数个数)对比如下
有无残差连接对模型效果的影响如下
交互层数的影响如下
集成隐含特征的效果对比如下
嵌入层维度的影响如下
代码地址
https://github.com/DeepGraphLearning/RecommenderSystems/tree/master/featureRec