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 ...
随机推荐
- loadrunner中JavaVuser脚本的编写
1.环境准备: LoadRunner11----->对应JDK1.6版本(32位) LoadRunner12----->对应JDK1.7版本(32位) (一).JDK下载安装完成 ...
- 分页查询最好加排序(order by)
昨天,与外部化系统对接时,发现有一个数据一直咩有集成到,双方各自排查了自己系统的代码,都觉得逻辑非常简单,无法就是一个分页查询而已. 问题就出在这个分页查询上. 为了说明当时问题发生的情景,我模拟了一 ...
- jfinal afterJFinalStart中执行长久循环操作的解决方案:创建新线程
很多时候,需要在jfinal中afterJFinalStart方法中,写一些需要一直循环运行的程序,做一些循环操作.但是在afterJFinalStart中,执行时间过长的话,会导致整个站点启动超时. ...
- java的toString()及包装类的实现--Integer重点学习
1. toString()来源 2. toString()目的 3. toString()实现(JDK8) 1. toString()来源 源于java.lang.Object类,源码如下: /** ...
- Js 语言中 变量提升问题
变量提升: 提升变量的声明. 函数声明式: 像这种形式: function foo() {}: 会发生变量提升. 函数表达式: var fn=function fn(){}: 不会发生变量提升.var ...
- [luogu P2521] [HAOI2011]防线修建
[luogu P2521] [HAOI2011]防线修建 题目描述 近来A国和B国的矛盾激化,为了预防不测,A国准备修建一条长长的防线,当然修建防线的话,肯定要把需要保护的城市修在防线内部了.可是A国 ...
- angular组件
- 集合框架之map
Map实现类用于保存具有映射关系的数据.Map保存的每项数据都是key-value对,也就是由key和value两个值组成.Map里的key是不可重复的,key用户标识集合里的每项数据. Map提供了 ...
- 【Monkey】Monkey获取包名的方式
获取包名的方式: 1.有源码:查看AndroidManifest.xml 2.只有apk: 2.1 aapt dump xmltree ColaBox.apk AndroidManifest.xml ...
- nginx+tomcat 分布时服务部署
一. 工具 nginx-1.8.0 apache-tomcat-6.0.33 二. 目标 实现高性能负载均衡的Tomcat集群: 三. 步骤 1.首先下载Nginx,要下载稳定 ...