ctr预估论文梳理和个人理解
问题描述
ctr的全称是click through rate,就是预估用户的点击率,可以用于推荐系统的ranking阶段。ctr预估可以理解为给用户的特征、item的特征以及context的特征(比如日期,时间等),然后计算出user item pair的点击率。
问题定义
P(Y=1|X_{user},X_{item},X_{context})
就是计算上面的概率。
模型梳理
LR、SVM等线性模型
线性模型的特点是将用户特征,Item特征以及Context特征做一些预处理,然后concat后输入到模型里面,预处理包括连续特征做归一化,类别特征会做one hot编码。
xgboost、lightgbm 树模型
树模型和线性模型的做法差不多,也是将三类特征concat之后一起输入到模型,就能得到结果。
和线性模型的不同点:
- 连续值特征无需做归一化
- 单值类别特征(比如性别,只能是男或者女),无需做one hot编码,多值类别模型还是需要做one hot编码。
POLY2多项式模型
前两类模型都是考虑的单特征对最终决策的影响,但是都没有显式的考虑特征交叉对最终决策的影响。比如:双十一之前推荐淘宝app的点击率应该要高于双十一之后(这里说显式是因为,树模型也能部分考虑这个因素)。
PLOY2模型就直接将所有特征的交叉作为新的特征,输入到模型里面,将交叉属性对决策的影响从隐性提高到显性。
缺点:
- 特征太多,而且非常稀疏,很多特征在训练中没有出现过
FM 因子机模型
FM模型可以理解为给每一个特征学到一个embedding,然后交叉模型的权重就理解为对应embeeding的内积。这样就能解决PLOY2的问题,没有出现的特征对也能得到权重,只要这个特征和其他特征出现过就能学到一个embedding,就能得到权重。
FFM
FFM是对FM的一个改进,FM给一个特征只学到一个embedding,而FFM能给每一个特征和另一个属性域都学习一个embedding。
缺点:
- 每一个特征对对都能得到一个权重,但是有可能并不是合适的,因为有可能这俩特征并不是能对决策起相关作用的。
- 只能考虑特征对的决策的作用,多维属性交叉就没有考虑了
Wide and Deep
Wide and Deep模型可以理解为FM和POLY2的结合,作者认为FM模型过于泛化,而PLOY2模型过于记忆(记忆的含义是只能学到训练数据中存在的特征对),那就两者结合到一起好了。
wide部分考虑的是显式的特征对对决策的影响,deep部分是隐式的特征,特征对以及高阶特征对决策的影响。
DeepFM 神经网络因子机
这个模型和FM的思路有一定的类似,都是给特征学习embedding,然后用embedding来学习特征之间交叉的关系。
DeepFM可以理解为wide and deep的中wide部分的扩展,wide and deep中特征交叉是手动选择某些特征进行交叉,而DeepFM是对所有特征对进行交叉。
不同点:
FM是将embedding的内积作为特征对的权重,过于粗暴,而且只能考虑两个特征之间的关系,但是多个特征之间的关系就很难学到了。
DNN的非线性能更好的学习到特征之间的关系。
以上只是个人对模型的梳理和个人理解,肯定有不到位之处,欢迎留言指点。
ctr预估论文梳理和个人理解的更多相关文章
- 微软的一篇ctr预估的论文:Web-Scale Bayesian Click-Through Rate Prediction for Sponsored Search Advertising in Microsoft’s Bing Search Engine。
周末看了一下这篇论文,觉得挺难的,后来想想是ICML的论文,也就明白为什么了. 先简单记录下来,以后会继续添加内容. 主要参考了论文Web-Scale Bayesian Click-Through R ...
- (读论文)推荐系统之ctr预估-DeepFM模型解析
今天第二篇(最近更新的都是Deep模型,传统的线性模型会后面找个时间更新的哈).本篇介绍华为的DeepFM模型 (2017年),此模型在 Wide&Deep 的基础上进行改进,成功解决了一些问 ...
- 深度学习在CTR预估中的应用
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由鹅厂优文发表于云+社区专栏 一.前言 二.深度学习模型 1. Factorization-machine(FM) FM = LR+ e ...
- 闲聊DNN CTR预估模型
原文:http://www.52cs.org/?p=1046 闲聊DNN CTR预估模型 Written by b manongb 作者:Kintocai, 北京大学硕士, 现就职于腾讯. 伦敦大学张 ...
- 深度CTR预估模型中的特征自动组合机制演化简史 zz
众所周知,深度学习在计算机视觉.语音识别.自然语言处理等领域最先取得突破并成为主流方法.但是,深度学习为什么是在这些领域而不是其他领域最先成功呢?我想一个原因就是图像.语音.文本数据在空间和时间上具有 ...
- CTR预估经典模型总结
计算广告领域中数据特点: 1 正负样本不平衡 2 大量id类特征,高维,多领域(一个类别型特征就是一个field,比如上面的Weekday.Gender.City这是三个field),稀疏 ...
- 计算广告CTR预估系列(七)--Facebook经典模型LR+GBDT理论与实践
计算广告CTR预估系列(七)--Facebook经典模型LR+GBDT理论与实践 2018年06月13日 16:38:11 轻春 阅读数 6004更多 分类专栏: 机器学习 机器学习荐货情报局 版 ...
- 【项目】百度搜索广告CTR预估
-------倒叙查看本文. 6,用auc对测试的结果进行评估: auc代码如下: #!/usr/bin/env python import sys def auc(labels,predicted_ ...
- CTR预估评价指标介绍
1 离线指标 1.1 LogLoss 1.1.1 KL散度 logloss使用KL散度来计算.设样本的真实分布为P,预测分布为Q,则KL散度定义如下: 这里可以通俗地把KL散度理解为相同事件空间里两个 ...
随机推荐
- vscode自动修复eslint规范的插件及配置
在开发大型项目中,经常都是需要多人合作的.相信大家一定都非常头疼于修改别人的代码的吧,而合理的使用eslint规范可以让我们在代码review时变得轻松,也可以让我们在修改小伙伴们的代码的时候会更加清 ...
- Thymeleaf对象的使用:字符串对象
Thymeleaf主要使用 org.thymeleaf.expression.Strings 类处理字符串,在模板中使用 #strings 对象来处理字符串. 开发环境:IntelliJ IDEA 2 ...
- 【JDBC】C3P0连接池的使用
C3P0连接池的c3p0-config.xml配置文件 <?xml version="1.0" encoding="UTF-8"?> <c3p ...
- andorid popupwindow 更新时动画的实现,可实现一个窗口被一个窗口推上去的效果
最近由于项目需要,一直在寻找一个弹出窗口,在另一个弹出窗口弹出时,推上去的效果,居然找不到,经过不懈的努力,终于实现了popupwindow在更新时的动画. 先上代码: import android. ...
- Shadow Map(单方向)
很早就想看阴影映射,一直拖到了现在,今天终于看了单方向的阴影映射,然后搭了个场景看了一下效果(每次搭场景感觉有点麻烦). 阴影映射的大体过程: // 1. 首选渲染深度贴图 glViewport(, ...
- Sphinx 2.0.8 发布,全文搜索引擎 Installing Sphinx on Windows
参考资料地址信息 http://sphinxsearch.com/docs/latest/installing-windows.html http://my.oschina.net/melonol/b ...
- MySQL常用数据类型 length 专题
MySQL-data_type数据类型 1.查看数据类型 mysql> help data type //通过help对数据进行查看,以及使用的方法 2.MySQL常见的数据类型 整数in ...
- 《大数据技术应用与原理》第二版-第三章分布式文件系统HDFS
3.1分布式文件 HDFS默认一个块的大小是64MB,与普通文件不同的是如果一个文件小于数据块的大小,它并不占用整个数据块的存储空间. 主节点又叫名称节点:另一个叫从节点又叫数据节点.名称节点负责文件 ...
- 利用Runtime对Ivar实例变量进行共用的归档和解档方式
一.介绍 在OC中每一个对象持有的变量都是实例变量,实例变量包括成员变量和属性变量,在runtime中用Ivar表示对象的实例变量.其实,runtime源码中可以看到,Ivar也是一个结构体(基本上在 ...
- linux下用sox音频处理常用方法
一 sox可以给pcm文件加头 方法:sox -t raw -c 1 -e signed-integer -b 16 -r 16000 test.pcm test.wav 二 修改采样率: 方法: s ...