DeepCTR专题:DeepFM论文学习和实现及感悟
论文地址:https://arxiv.org/pdf/1703.04247.pdf
CTR预估我们知道在比较多的应用场景下都有使用。如:搜索排序、推荐系统等都有广泛的应用。并且CTR具有极其重要的 地位,特别相对广告推荐领域来说更加如此,竞价广告需要通过ctr给出相应的价格,并由此获得广告曝光的机会。而ctr的大小决定了出价的高低,直接会影响到该广告是否能得到曝光机会。这里涉及到计算广告相关的知识,暂时就不展开讲了。这里主要介绍一下DeepFM该算法的基本原理和网络框架。
论文总体来看还是相对比较容易的,主要分为三个部分:
第一部分:算法的主要背景
第二部分:DeepFM的基本网络框架和原理
第三部分:实验(papers必须有的部分)
下面分别从我个人理解的角度来说说每个部分吧:
1、DeepFM算法的背景
(1)首先我们同样要回顾一下FM算法的基本原理,FM主要是在LR的基础上增加了二阶交叉项的概念,从而可以获得一些轿车特征。但是算法每个特征两两交叉的话,算法复杂度是O(n平方),
所以,为了优化FM算法,将矩阵分解应用其中。
FM的缺点是:
1)仅仅两两之间的交叉特征
2)只能获得二阶交叉的特征,对于高阶特征并没有涉及
(2)从16年wide-deep算法中,或多或少的作者受到了一些启发,于是想到可以对FM算法利用深度学习进行优化,预计就提出了DeepFM算法。
2、DeepFM算法的基本原理(个人觉得还是比较简单的)
(1)总体网络结构

网络结构中,主要包含Deep部分和FM部分,网络结构类似Wide-Deep结构。
(2)算法的原理
首先网络最终输出是:
其中,FM部分如下所示:

Deep部分如下所示:

网络就是这么简单,就是讲这两部分的输出进行求和并输出。
3、实验。实验部分可以学习别人调节参数的经验。
(1)Dropout设置:

从作者的实验来看,dropout设置为0.9效果最佳
(2)隐藏层数设定

从上图来看,作者实验数据表明,隐层数量=3效果最佳
(3)隐藏层神经元个数
神经元个数的变化: constant (200-200-200), increasing (100-200-300),decreasing (300-200-100), and diamond (150-300-150)

DeepCTR专题:DeepFM论文学习和实现及感悟的更多相关文章
- DeepCTR专题:Neural Factorization Machines 论文学习和实现及感悟
papers地址:https://arxiv.org/pdf/1708.05027.pdf 借用论文开头,目前很多的算法任务都是需要使用category feature,而一般对于category f ...
- Objective-C专题,是学习iOS开发的前奏(转)
第一个OC的类 来源:http://www.cnblogs.com/mjios/archive/2013/04/06/3002814.html 本文目录 一.语法简介 二.用Xcode创建第一个OC的 ...
- Faster RCNN论文学习
Faster R-CNN在Fast R-CNN的基础上的改进就是不再使用选择性搜索方法来提取框,效率慢,而是使用RPN网络来取代选择性搜索方法,不仅提高了速度,精确度也更高了 Faster R-CNN ...
- 《Explaining and harnessing adversarial examples》 论文学习报告
<Explaining and harnessing adversarial examples> 论文学习报告 组员:裴建新 赖妍菱 周子玉 2020-03-27 1 背景 Sz ...
- 论文学习笔记 - 高光谱 和 LiDAR 融合分类合集
A³CLNN: Spatial, Spectral and Multiscale Attention ConvLSTM Neural Network for Multisource Remote Se ...
- Apache Calcite 论文学习笔记
特别声明:本文来源于掘金,"预留"发表的[Apache Calcite 论文学习笔记](https://juejin.im/post/5d2ed6a96fb9a07eea32a6f ...
- GoogleNet:inceptionV3论文学习
Rethinking the Inception Architecture for Computer Vision 论文地址:https://arxiv.org/abs/1512.00567 Abst ...
- IEEE Trans 2008 Gradient Pursuits论文学习
之前所学习的论文中求解稀疏解的时候一般采用的都是最小二乘方法进行计算,为了降低计算复杂度和减少内存,这篇论文梯度追踪,属于贪婪算法中一种.主要为三种:梯度(gradient).共轭梯度(conjuga ...
- Raft论文学习笔记
先附上论文链接 https://pdos.csail.mit.edu/6.824/papers/raft-extended.pdf 最近在自学MIT的6.824分布式课程,找到两个比较好的githu ...
随机推荐
- linux 修改普通用户的 max user process
因为出现 fork: retry: No child processes 问题 , google了一下 , 大家说是要去修改 /etc/security/limits.conf 文件 , 然后我用r ...
- js的点滴
一些好的博客 http://www.cnblogs.com/coding4/p/7809063.html canvas http://www.cnblogs.com/coding4/p/5593954 ...
- 调节kafka消费信息的大小
Kafka设计的初衷是迅速处理短小的消息,一般10K大小的消息吞吐性能最好(可参见LinkedIn的kafka性能测试).但有时候,我们需要处理更大的消息,比如XML文档或JSON内容,一个消息差不多 ...
- 如何成为F1车手?
sorry,玩了几天的GT sport才发现赛车有多难,理论的最佳走线是存在的,但是真实的赛道实在是千变万化,弯道形状角度.高低差.F1还有温度和风速,甚至是路面上的一个碎石都会极大地影响你的成绩.赛 ...
- Python+turtle交互式绘图:可以用鼠标拖动的小海龟
下面是我画海龟的过程: (1)打开python: 2.调用turtle库,先设置一些基础设置,与一个画龟的函数 from turtle import Screen,Turtle,mainloop cl ...
- django的CBV设计模式
一.什么的是CBV cbv是class base view的缩写,是django中基于类来设计视图函数的,我们一开始接触的这种形式----path('login',views.login),叫fbv, ...
- 安卓开发创建活动,布局,添加按钮,she使用Toast,设菜单,使菜单相关联等操作
---恢复内容开始--- 创建一个新活动在app/src/main/java/com.example.activitytest ,然后右击com.example.activitytest包→New→A ...
- redis 持久化文章分析的很到位
https://baijiahao.baidu.com/s?id=1611955931705092609&wfr=spider&for=pc
- AngularJs在ng-click函数中获取代表当前元素的DOM对象
html代码 <div ng-click="test($event)">111</div> Controllers.js $scope.test= func ...
- 2018 HDU多校第三场赛后补题
2018 HDU多校第三场赛后补题 从易到难来写吧,其中题意有些直接摘了Claris的,数据范围是就不标了. 如果需要可以去hdu题库里找.题号是6319 - 6331. L. Visual Cube ...