概述
标题 * 表示未完成
论文原文传送门!
本文章由 Huifeng Guo 等中国国内学者在 IJCAI 2017 发表
由于之前阅读的 【Wide & Deep Learning for Recommender Systems】一文为本文章的模型基础,二者又同时属于推荐系统领域中至关重要的论文所以选择阅读此论文。
文章将 Wide & Deep模型 的 Wide 部分替换为FM模型(DeepFM = DNN + FM)并做出了改进。使之可以同时捕获高阶与低阶特征交互;除了需要新加入的特征外,不再需要人工特征工程;并很巧妙地使低阶FM和神经网络两个子模型共享Embedding层(共享权重),减少了大量参数,并将模型整个进行训练,提高了训练速度和学习精准度,在CTR预测中非常经典。
- 研究目的
- 由于CTR在推荐系统领域常常被用来作为为用户推荐何种可能感兴趣的服务的重要衡量指标,并且可以将CTR与系统受益额度权重相乘来评比最可能盈利的服务,所以预测CTR是推荐系统中至关重要的。
- 文章指出目前流行的各种模型有两个缺陷:模型往往偏向于只提取低阶(或高阶)的组合特征,而不能同时提取这两种类型的特征;需要专业的知识来做特征工程。
- 在 【Wide & Deep model】中指出同时考虑低阶和高阶的组合特征比单一考虑某一种情况要好得多,过去往往是由专家依据经验手动建立模型处理特征交互,但这并不能很好的考虑到潜在的或者不易察觉的特征交互(文章中给出了 “尿布和啤酒” 的例子)并且会耗费很大的人力,所以,如何高效的提取这些复杂的组合特征是至关重要的。
- 现有方法(研究现状)
- 广义线性模型
起初线性模型取得了不错的效果。例如:LR,FTRL,但线性模型无法学习特征的交互(尤其是在处理需要高阶特征组合的数据集中尤为乏力),为了弥补这一缺陷,往往在特征向量中人工添加成对的特征交互。但还是欲盖弥彰,模型表达能力较弱。 - FM模型
FM模型将特征间的潜在关系(特征组合)使用隐向量的内积计算方式进行衡量,此模型从理论上解决了低阶和高阶组合特征提取的问题。但是实际应用中受限于计算复杂度,一般也就只考虑到二阶交叉特征。之后又进行了改进,提出了FFM,增加了Field的概念。 - 深度学习时代:
- CNN And RNN For CTR
基于CNN 的模型偏向于找出相邻特征之间的交互,而基于RNN的模型更适合于具有一定顺序依赖性的数据。 - PNN and FNN
Product-based Neural Network (PNN),PNN为了捕获高阶组合特征,此模型在embedding layer 和 first hidden layer 之间加入了一个product layer;Factorization-machine supported Neural Network (FNN),此模型提出了一个支持因式分解机的神经网络(先使用预先训练好的FM计算得到隐向量,然后作为DNN的输入来训练模型),文章指出在将FM应用于神经网络之前,该FM已经经过了预训练,因此该模型整体受到FM的性能限制。文章还指出这两个模型只能捕获到很少的一些低维组合特征,但低维特征对于CTR Prediction很重要。
- 本文模型及方法
- DeepFM模型分为两个子模型:FM、DNN。其中FM主要负责对于低维特征交互的建模,DNN负责对于高维特征交互的建模。此模型可以同时提取低维及高维的特征组合,并且一般情况下不需要特征工程。
- 编码方式:categorical field (e.g., gender, location) 被表示为一个经过one-hot编码后的向量;continuous fields(e.g., age) 被表示为它本身 或者 经过离散处理后再进行one-hot编码的向量;最后的预测结果
y
^
hat y
y^表示用户点击某一服务的概率。
-
F
M
C
o
m
p
o
n
e
n
t
FM Component
FM Component
FM部分是一个因式分解机,它由多个 Addition unit 和 一些Inner Product units组成。Addition Unit 反映的是一阶的特征,Inner Product units 反映的是二阶的组合特征对于预测结果的影响。
以下是FM的计算公式。Steffen Rendle. Factorization machines. In ICDM, 2010 一文中有该公式的具体解释. -
D
e
e
p
C
o
m
p
o
n
e
n
t
Deep Component
Deep Component
此子模型用来学习FM处理不好的高阶组合特征。同时可以看到此子模型也增加了Embedding层,用于降低对第一个隐藏层的输入向量的纬度和稀疏度。
关于文章中提出的Embedding层构建方法值得一提的是:虽然Input Layer中的输入向量长度各不相同,但经过Embedding后,得到的都是同样维度的embeddings,这为两个子模型共享Embedding层奠定了基础。
-
R
e
l
a
t
i
o
n
s
h
i
p
w
i
t
h
t
h
e
o
t
h
e
r
N
e
u
r
a
l
N
e
t
w
o
r
k
s
Relationship with the other Neural Networks
Relationship with the other Neural Networks
(1) FNN(FM-initialized feedforward neural network),此模型已在博客上文中简述过。其使用经过预训练的FM来初始化DNN,但没有将FM部分实质性的加入到模型当中,只能学习高阶特征组合。
(2) PNN(Product-based Neural Network),为了捕获高阶组合特征,此模型在embedding layer 和 first hidden layer 之间加入了一个product layer,并根据向量积计算方式的不同,有三种变体:IPNN、OPNN和PNN*,其中IPNN基于向量的内积,OPNN基于外积,PNN* 同时基于内积和外积。此模型作者为了提高计算效率,采用近似计算的方法来计算内积和外积。内积:忽略一些神经元(但复杂度仍旧很高)。外积:把 m*k 维的vector转换成k维度的vector(丢失了很多信息)。此模型和FNN一样,只能学习到高阶的特征组合。
(3)Wide & Deep,在上一篇博客中详细说过,这里就不再赘述了,文章指出此模型在 ‘Wide’ 部分需要使用专业的特征工程,而DeepFM可以直接将整个模型从未被加工的特征中学习。如果将此模型的‘Wide’ 部分替换为FM,则与DeepFM类似,但没有实现共享Embedding层,从而影响了模型学习特征的精确度。
- 实验结果
-
DeepFM具有以下优点:
不需要预训练FM得到隐向量;
不需要人工特征工程;
能同时学习低阶和高阶的组合特征;
FM模块和Deep模块共享Embedding,可以更快的训练,以及更精确的学习; -
文章将 L R , F M , F N N , P N N , W i d e & D e e p LR, FM, FNN, PNN, Wide & Deep LR, FM, FNN, PNN, Wide&Deep 分别与DeepFM进行比较,但考虑到人工特征工程对于模型效果的提升作用,文章额外添加了一组对照,即将 W i d e & D e e p Wide & Deep Wide&Deep中的LR使用FM代替。
- 剩下的是一些建立模型所需要的超参数设置建议,这里看原文即可。
- 其它
- 相关论文出现顺序: F M − > F F M − > D e e p F M − > D C N − > x D e e p F M FM->FFM->DeepFM->DCN->xDeepFM FM−>FFM−>DeepFM−>DCN−>xDeepFM
- CTR (Click-Through Rate) 点击率
- Steffen Rendle. Factorization machines. In ICDM, 2010.
- FM 知乎介绍
- END
最后
以上就是乐观凉面为你收集整理的论文笔记 【DeepFM: A Factorization-Machine based Neural Network for CTR Prediction】的全部内容,希望文章能够帮你解决论文笔记 【DeepFM: A Factorization-Machine based Neural Network for CTR Prediction】所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复