本文主要是介绍CTR模型:推荐系统DeepFM模型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.简介
理解用户点击行为背后隐藏的交叉特征对CTR预估非常重要。
比如, 人们在用餐时间下载送餐APP,也就是APP类别和时间戳的交叉特征可以作为CTR预估的信号。
由于用户点击行为背后的特征之间各种交互非常复杂,其中的低阶交叉特征和高阶交叉特征都能发挥重要的作用。
下面简单介绍之前的FM模型如何构建交叉特征:
FM模型:
使用向量内积作为成对的特征交互;虽然FM可以对特征高阶交互进行建模,但是复杂度高,一般就二阶特征交互。
FM模型利用低阶特征交叉,DNN模型利用高阶特征交叉,Deep&Wide网络的wide端需要专业的特征工程。
理论上,FM模型可以建模任意高阶的交叉特征,但是代价太大了;
基于CNN的模型倾向捕捉相邻特征之间的交互,而点击率预估任务的相邻特征之间并没有显著的相关性。
基于RNN的模型更适合具有顺序依赖性的数据,不适合点击率预估任务的特征。
PNN和FNN模型,和DNN模型一样,智能捕捉高阶的交叉特征,几乎捕捉不到低阶的交叉特征。
因此,DeepFM模型在2017年被提出。该模型结合了FM的推荐能力和DNN的特征学习能力,综合利用了低阶交叉特征和高阶交叉特征。特点有:
(1)DeepFM集成了FM和DNN,可以对低阶交叉特征和高阶交叉特征建模;
(2)Wide部分和Deep部分共享输入以及Embedding,没有特征工程。
2.DeepFM模型
数据集 ( χ , y ) (\chi, y) (χ,y),X 可以是类别特征(如,性别,地址),也可以是连续特征(如,年龄)。类别特征使用one-hot编码表示,连续特征保持不变或者使用离散化后的one-hot编码向量。
每个样本表示为:(x,y)
其中,
x 高维且极度稀疏。
2.1 FM 组件
FM,用于学习一阶特征和二阶交叉特征。
FM由两种操作组成:加法 和 内积。
加法单元(<w,x>)反映一阶特征的重要性,内积计算表示二阶特征交叉。
2.2 Deep组分
Deep组件是一个全连接的前馈神经网络,用于学习高阶特征交互。
2.3 模型整体
2.3 模型比较
FNN:用到FM模型,但仅使用FM模型来初始化FNN,然后进行微调模型,使得FNN的Embedding层参数严重受制于FM模型,降低模型的效果。
此外,FNN仅捕捉高阶特征交互,与此相比,DeepFM不需要预训练,而是端到端的学习低阶交互和高阶特征交互。
PNN:OPNN不如IPNN可靠,因为外积的近似计算丢失了大量信息,使得结果不稳定。
IPNN虽然更可靠,但是由于product层的输出连接到第一个隐层的所有神经元,所以计算复杂度较高。IPNN和OPNN会忽略低阶特征交互。
DeepFM中的product层(FM组件)的输出仅仅连接到输出层(只有1个神经元),计算复杂度很低。
Wide&Deep: Wide & Deep 可以对低阶特征和高阶特征同时建模,但是 wide部分需要人工特征工程。
DeepFM直接处理原始特征。
3. 实验结果
(1)数据集
Criteo Display Ads 数据集:用于预测广告点击率的数据集,包含13个整数特征,26个类别特征,其中每个类别特征的取值集合(即:cardinality )都很大。
数据包含 7 天的 11 GB 用户日志(约 4100万条记录)。我们将数据集拆分为 90% 训练集和 10%测试集。
华为公司数据:从华为 App Store 的游戏中心收集连续 7 天的用户点击数据作为训练集,第八天的数据作为测试集。整个训练集+测试集约10亿条记录。
(2)评估指标
评估指标 AUC,logloss 。
(3)参数配置
模型训练效率:
效果:
评估激活函数:relu比tanh要好,但IPNN除外,可能原始是relu导致很强的稀疏性。
评估dropout:dropout从0.6 到0.9,
这是,0.9的比例丢弃吗,很高啊?
评估deep组件的深度:
评估网络的形状:
参考:
- DeepFM: A Factorization-Machine based Neural Network for CTR Prediction;
- ctr模型汇总;
这篇关于CTR模型:推荐系统DeepFM模型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!