前言
本次分享一篇2017年由哈工大与华为联合发表的论文“DeepFM:A Factorization-Machine based Neural Network for CTR Prediction”。DeepFM在现在也是很多模型比较的Baseline,因此详细的对其进行介绍并简单的复现。
本文约2.5k字,预计阅读15分钟。
DeepFM
DeepFM模型[1]是2017年由哈工大与华为联合提出的模型,与之前讲过的DCN模型[2]一样,也是对Wide&Deep模型[3]的改进。与DCN不同的是,DeepFM模型是将Wide部分替换为了FM模型,增强了模型的低阶特征交互的能力。关于低阶特征交互,文章的Introduction中也提到了其重要性,例如:
1、用户经常在饭点下载送餐APP,故存在一个2阶交互:app种类与时间戳;
2、青少年喜欢射击游戏和RPG游戏,存在一个3阶交互:app种类、用户性别和年龄;
用户背后的特征交互非常的复杂,低阶和高阶的特征交互都是很重要的,这也证明了Wide&Deep这种模型架构的有效性。DeepFM是一种端到端的模型,强调了包括低阶和高阶的特征交互接下来直接对DeepFM模型架构进行介绍,并与其他之前提到过的模型进行简单的对比。
模型结构
DeepFM的模型结构非常简单,由Wide部分与Deep部分共同组成,如下图所示:
在论文中模型的目标是共同学习低阶和高阶特征交互,应用场景依旧是CTR预估,因此是一个二分类任务( 表示用户点击物品, 则表示用户未点击物品)
Input与Embedding层
关于输入,包括离散的分类特征域(如性别、地区等)和连续的数值特征域(如年龄等)。分类特征域一般通过one-hot或者multi-hot(如用户的浏览历史)进行处理后作为输入特征;数值特征域可以直接作为输入特征,也可以进行离散化进行one-hot编码后作为输入特征。
对于每一个特征域,需要单独的进行Embedding操作,因为每个特征域几乎没有任何的关联,如性别和地区。而数值特征无需进行Embedding。
Embedding结构如下:
文章中指出每个特征域使用的Embedding维度