FrankLearningMachine 作者

顶会中深度学习用于CTR预估的论文及代码集锦 (2)

[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

机器学习blog
机器学习blog

本专栏专注于机器学习(主要包含但不限于深度学习)相关知识分享,其中涉及自然语言处理以及图像处理前沿论文等,欢迎大家关注交流

理论智能科研CTR深度学习
1
相关数据
激活函数技术

在 计算网络中, 一个节点的激活函数定义了该节点在给定的输入或输入的集合下的输出。标准的计算机芯片电路可以看作是根据输入得到"开"(1)或"关"(0)输出的数字网络激活函数。这与神经网络中的线性感知机的行为类似。 一种函数(例如 ReLU 或 S 型函数),用于对上一层的所有输入求加权和,然后生成一个输出值(通常为非线性值),并将其传递给下一层。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

超参数技术

在机器学习中,超参数是在学习过程开始之前设置其值的参数。 相反,其他参数的值是通过训练得出的。 不同的模型训练算法需要不同的超参数,一些简单的算法(如普通最小二乘回归)不需要。 给定这些超参数,训练算法从数据中学习参数。相同种类的机器学习模型可能需要不同的超参数来适应不同的数据模式,并且必须对其进行调整以便模型能够最优地解决机器学习问题。 在实际应用中一般需要对超参数进行优化,以找到一个超参数元组(tuple),由这些超参数元组形成一个最优化模型,该模型可以将在给定的独立数据上预定义的损失函数最小化。

推荐系统技术

推荐系统(RS)主要是指应用协同智能(collaborative intelligence)做推荐的技术。推荐系统的两大主流类型是基于内容的推荐系统和协同过滤(Collaborative Filtering)。另外还有基于知识的推荐系统(包括基于本体和基于案例的推荐系统)是一类特殊的推荐系统,这类系统更加注重知识表征和推理。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

卷积神经网络技术

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

深度神经网络技术

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

推荐文章
暂无评论
暂无评论~