背景
点击率(CTR)的预测在推荐系统中至关重要,目的是估算用户点击推荐项目的可能性。大多数推荐系统的目标都是最大程度地增加点击次数,因此返回给用户的项目也根据估算的点击率进行排名;而在其他应用场景(例如互联网广告)中,提高收入也很重要,因此项目的排名策略调整为所有候选项的点击率X出价,其中“出价”是用户点击商品后系统获得的收益。故无论哪种情况,很明显,关键都在于正确估算点击率。
难点与现状
对于CTR预测而言,了解用户点击行为背后的隐式交互特征非常重要:
比如,人们经常在用餐时下载用于送餐的APP,这表明应用程序类别和时间戳之间的(2阶)交互作用可用作CTR预测的一个特征。再比如,男性青少年喜欢射击游戏和RPG游戏,这意味着应用类别,用户性别和年龄的(3阶)交互作用也是CTR的一个特征。
如上,用户点击行为背后的各种交互非常复杂,其中低阶和高阶特征交互均发挥重要作用。
因此,CTR预测关键在于如何有效的建模捕捉交互特征。一些功能交互很容易理解(如上面的实例),但其实大多数交互都隐藏在数据中,并且很难识别(例如,零售业经典关联规则“尿布和啤酒”是从数据中提取的,而不是由专家发现的),这类交互只能通过机器学习自动捕获。而即使对于易于理解的交互,当其规模很大时,也很难做到详尽的建模描述。
目前主流的几种方法,如FTRL、FM、CNN、RNN、DNN、PNN、Wide&Deep要么仅支持低阶特征(或高阶特征),要么就需要大量的特征工程。
故本文提出了一种DeepFM方法,既能支持低阶与高阶的特征交互,同时引入了特征嵌入的共享策略,以避免特征工程。
文章模型
数据集描述:
假设用于训练的数据集包含n个实例(x,y)
其中x是涉及用户和产品的m个字段的数据记录,y∈{0,1}是表示用户点击行为的标签(1表示点击、0表示未点击), x通常包括类别字段(例如,性别,位置)和连续字段(例如,年龄)。
数据处理阶段,每个类别字段均表示为one-hot的向量,而每个连续字段则表示为值本身,或离散化后的one-hot的向量。
然后,将每个实例转换为(x,y)
其中,
是d维向量,其中X field j是x的第j个字段的矢量表示。通常,x是高维且极为稀疏的。
CTR预测的任务就是建立一个预测模型y = CT R_model(x)来估计用户在给定上下文中点击特定应用的概率。
DeepFM:
DeepFM由两个部分组成,FM部分和Deep部分,它们共享相同的输入。
对于特征i,标量wi用于权衡其1阶重要性,而潜在矢量Vi用于测量其与其他特征相互作用的影响。
Vi馈入FM组件以建模2阶特征交互,并馈入深层组件以建模高阶特征交互。
联合训练预测模型所有参数,包括wi,Vi和网络参数(下文提到的W(l),b(l)),则有:
其中ˆ y∈(0,1)是预测的CTR,yFM是FM分量的输出,而yDNN是DNN分量的输出。
FM Component:
除了特征之间的线性(1阶)交互作用外,FM模型将2阶的特征交互作为各个特征潜在向量的内积。它可以比以前的方法更有效地捕获2阶特征交互,尤其是在数据集稀疏的情况下。在先前的方法中,仅当特征i和特征j都出现在同一数据记录中时,才能训练特征i和j的交互作用的参数。在FM中,通过其潜在向量Vi和 Vj的内积对其进行测量。由于这种灵活的设计,只要i(或j)出现在数据记录中,FM都可以训练潜矢量Vi(Vj)。因此,FM可以更好地学习从未或很少出现在训练数据中的特征交互。
如图2所示,FM的输出是2个单元的总和:
其中,
前半部分反映了1阶特征的重要性,后半部分表示2阶特征交互的影响。
Deep Component:
Deep部分用于学习高阶特征交互。如图3所示,数据记录(向量)被馈送到神经网络,这些原始特征输入向量通常是高度稀疏且超高维的,类别字段与连续字段混合并且按标签(例如性别,位置,年龄)分组。
故在进一步馈入第一隐藏层之前,嵌入层会将输入向量压缩为低维,密集的实值向量,否则网络可能不堪重负。
图4突出显示了从输入层到嵌入层的子网结构。注意:1)虽然不同输入场矢量的长度可以不同,但它们的嵌入大小相同(k);2)FM中的潜在特征向量(V)现在用作网络权重,这些权重已被学习并用于将输入场向量压缩为嵌入向量。
与[Zhang et al,2016]不同,本文没有使用FM的潜在特征向量来初始化网络,而是将FM模型作为整体学习架构的一部分。这样一来,我们就无需通过FM进行预训练。
将嵌入层的输出表示为:
其中ei是第i个字段的嵌入,m是字段数。然后,馈入深度神经网络,正向过程为:
其中l是层深度,σ是激活函数。a(l),W(l),b(l)是第l层的输出,模型权重和偏差。进一步,生成一个密集的实值特征向量,最终将其输入到用于CTR预测的S型函数中:
其中| H |是隐藏层的数量。
算法复现
数据处理
设定权重
模型训练
模型预测
模型评估
结果输出
参考文献:
Guo H , Tang R , Ye Y , et al. DeepFM: A Factorization-Machine based Neural Network for CTR Prediction[J]. 2017.
参考代码:
https://github.com/ChenglongChen/tensorflow-DeepFM
数据下载:
https://www.kaggle.com/c/porto-seguro-safe-driver-prediction/overview
--------- END ----------
代码语言:javascript复制