DeepFM这种算法是一种基于分解机的神经网络,该算法由哈尔滨工业大学深圳研究生院联合华为诺亚方舟实验室于2017年提出的。

这种算法是一种端到端的学习模型,不仅考虑了低阶的特征融合,也考虑了高阶的特征融合。该算法利用深度学习来学习特征,利用分解机做推荐。

本图给出了DeepFM的示意图。其中的“宽”元素和“深”元素共享同样的输入,它们的输入都是原始的特征向量。这种结构可以使得DeepFM从原生特征中同时学到低阶的特征之间的相互作用和高阶的特征之间的相互作用。

分解机模型可以通过将隐含因子作内积来学到结对的特征之间的交互作用,并且能够取得较好的效果。从原理上来讲,分解机模型可以学到更高阶的特征,但是实际应用中一般只考虑二阶的,更高阶的计算复杂度会更高。

DeepFM中的分解机用于学习低阶的特征之间的交互作用,深度神经网络用于学习高阶的特征之间的相互作用。

在数据处理部分,针对类别类型的数据,一般用one-hot编码来处理,针对连续型变量,保留值本身即可,也可以离散化之后利用one-hot编码来处理。

DeepFM中的FM结构如下

FM的输出形式如下

其中既包含了一阶的特征,也包含了二阶的特征。

深层神经网络的结构如下

注意,这里的深层神经网络,是深层的前馈神经网络,用来学习高阶特征。

其中嵌入层的结构如下

值得注意的是,这里的嵌入层允许输入层的节点数不一样,而嵌入以后节点数保持一致。分解机中所学到的权重可以用于将输入层映射到嵌入层。

下图给出了比较类似的网络结构

各个模型相互之间的比较如下

各模型运行时间比较

性能比较如下

容易看出,DeepFM的效果最好

激活函数类型的影响

容易看出针对DeepFM,relu的表现优于tanh。

dropout对模型的影响

容易看出dropout的比例对DeepFM有一定的影响,取值0.9时效果最好。其中dropout的值表示保留某个神经元的概率。

神经元个数对模型的影响

容易看出,单元数对DeepFM的影响不显著。

网络层数对模型的影响

容易看出,层数对DeepFM的影响不是那么显著。

网络形状对模型的影响

其中constant的形状为200-200-200,即每一层都有200个单元,increasing为100-200-300,即单元数随层数的增大而变大,decreasing为300-200-100,即单元数随层数的减小而变小,diamond为150-300-150,即单元数先变大后变小。容易看出,网络形状对DeepFM的影响不大。

参考资料

Guo, Huifeng, Ruiming Tang, Yunming Ye, Zhenguo Li, and Xiuqiang He. "Deepfm: A factorization-machine based neural network for CTR prediction." arXiv preprint arXiv:1703.04247(2017).

Zhang, Weinan, Tianming Du, and Jun Wang. "Deep learning over multi-field categorical data." In European conference on information retrieval, pp. 45-57. Springer, Cham, 2016.

Sedhain, Suvash, Aditya Krishna Menon, Scott Sanner, and Lexing Xie. "Autorec: Autoencoders meet collaborative filtering." In Proceedings of the 24th International Conference on World Wide Web, pp. 111-112. ACM, 2015.

Salakhutdinov, Ruslan, Andriy Mnih, and Geoffrey Hinton. "Restricted Boltzmann machines for collaborative filtering." In Proceedings of the 24th international conference on Machine learning, pp. 791-798. ACM, 2007.

Rendle, Steffen. "Factorization machines." In Data Mining (ICDM), 2010 IEEE 10th International Conference on, pp. 995-1000. IEEE, 2010.

Cheng, Heng-Tze, Levent Koc, Jeremiah Harmsen, Tal Shaked, Tushar Chandra, Hrishi Aradhye, Glen Anderson et al. "Wide & deep learning for recommender systems." In Proceedings of the 1st Workshop on Deep Learning for Recommender Systems, pp. 7-10. ACM, 2016.

Covington, Paul, Jay Adams, and Emre Sargin. "Deep neural networks for youtube recommendations." In Proceedings of the 10th ACM Conference on Recommender Systems, pp. 191-198. ACM, 2016.

Juan, Yuchin, Yong Zhuang, Wei-Sheng Chin, and Chih-Jen Lin. "Field-aware factorization machines for CTR prediction." In Proceedings of the 10th ACM Conference on Recommender Systems, pp. 43-50. ACM, 2016.

聊聊CTR预估算法DeepFM相关推荐

  1. 仅需24小时,带你基于PaddleRec复现经典CTR预估算法

    项目背景 偶然看到了[飞桨论文复现挑战赛],抱着 划水 提升自己的态度,报名了一个推荐赛道的赛题.因为本身已经参加工作了,实际空闲时间不是太多,只能晚上下班或者周末和各位参赛大佬卷上一卷,划划水- 工 ...

  2. CTR预估算法(浅层模型)

    1. 发展 在CTR预估中,Logistic Regression应该是最早被应用而且应用最广泛的模型了.输入是one-hot之后的特征,输出是点击广告的概率.对于类别型特征,one-hot之后,每一 ...

  3. 阿里妈妈自研CTR预估核心算法MLR

    一. 技术背景 CTR(Click-Through-Rate)即点击通过率,是互联网广告常用的术语,指网络广告(图片广告/文字广告/关键词广告/排名广告/视频广告等)的点击到达率,即该广告的实际点击次 ...

  4. 【推荐算法】ctr预估模型总结(LR、FM、FFM、NFM、AFM、WDL、DCN、DeepFM、FwFM、FLEN)

    文章目录 前言 LR POLY2 FM(Factorization Machine) FFM(Field-aware Factorization Machine) AFM(Attention Fact ...

  5. 资深算法专家解读CTR预估业务中的深度学习模型

    内容来源:2018 年 01 月 05 日,资深算法专家张俊林在"2018 移动技术创新大会"进行<深度学习在CTR预估业务中的应用>演讲分享.IT 大咖说(微信id: ...

  6. 《推荐系统笔记(十)》CTR预估以及一般算法介绍(GBDT+LR)

    前言 CTR预估是推荐系统中重要的问题,根据历史数据,我们需要预测用户是否点击.CTR预估同样可以运用到广告中,预测广告的点击率等. CTR数据形式 CTR预估问题的数据形式一般是这样的: 列名:特征 ...

  7. 推荐算法—ctr预估

    文章目录 总览 传统CTR模型演化的关系图 深度学习CTR模型的演化图谱 算法比对与总结 LR FM LR+GBDT FTRL--在线实时训练模型 LS-PLM(MLR) FNN PNN Google ...

  8. 深度学习核心技术精讲100篇(五)-通过CTR预估对比深度学习模型(deepfm)梯度提升模型(catboost)

    前言 CTR预估模型的特点: 毫无疑问这个任务的是个二分类任务,预测点击与否. CTR 预估的特征一般是 用户的日志特征和画像特征,包含类别特征和数值型特征两种. 此任务的评估指标是 AUC 得分 或 ...

  9. 华为2019算法大赛CTR预估数据探索

    华为2019算法大赛CTR预估数据探索 训练集 时间信息 siteId(媒体Id) slotId(广告位Id) netType(网络连接类型) id类信息 测试集 媒体id 网络型号 测试集与训练集分 ...

最新文章

  1. centos设置固定IP方法
  2. python基础练习_1
  3. 十道上市公司java面试试题
  4. HDU5794 - A Simple Chess
  5. javascript 15位和18位身份证的正则表达式及其验证
  6. 浮动元素 —— 怎么使用它们、它们有什么问题以及怎么解决这些问题。
  7. Git教程——查看修改日志 (log diff)
  8. 100. SimpleXML
  9. PC防光护眼专家Iris Pro绿色特别版 傻瓜式软件
  10. J2EE是什么,主要包括哪些技术
  11. 图像调优2:什么是10° D65 和 2° D65
  12. 在Delphi中很精确地控制生成的WORD文档的格式
  13. python3 安卓_Android QPython3 调用 其他 Android App
  14. CSTC 部分pwn wp
  15. 一文带你看懂小程序朋友圈广告是什么
  16. 一招教你快速取消Mac系统开机密码的方法
  17. 2022年登高架设操作证考试题及在线模拟考试
  18. 飞利浦zigbee智能灯泡的软硬件设计
  19. 服务器金蝶上机日志在哪个文件夹,金蝶软件如何查看某用户的上机日志
  20. gocolly-登录(5)

热门文章

  1. linux不自动创建sda1,linux下头挂载新硬盘(转)
  2. Apache连接和访问控制
  3. Linux awk编辑器及命令
  4. Linux中常见服务对应的端口号
  5. PHP包含文件函数include、include_once、require、require_once区别
  6. CiscoOSPF的选路原理
  7. 抛弃一键恢复。教你用vista一键还原备份多系统。图文教程
  8. WIN7如何更改计算机名称
  9. linux 权限777_Linux编程之权限系统与工具使用(二)
  10. mongodb创建用户名和密码_Python中使用MongoDB详解