博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ctr预估论文梳理和个人理解
阅读量:6101 次
发布时间:2019-06-20

本文共 1421 字,大约阅读时间需要 4 分钟。

问题描述

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的非线性能更好的学习到特征之间的关系。

以上只是个人对模型的梳理和个人理解,肯定有不到位之处,欢迎留言指点。

转载于:https://www.cnblogs.com/jfwang/p/8987634.html

你可能感兴趣的文章
MyEclipse for Linux 的版本
查看>>
了解Jalangi2
查看>>
Google I/O 2016笔记之图像压缩
查看>>
mongodb的命令大全
查看>>
如何用js判断一个复选框是否被选中
查看>>
苹果首席设计师谈iOS7扁平风格,对设计的理解非常的有高度
查看>>
分享reset.css
查看>>
Go 1.1 is released! [转]
查看>>
密码技术十 证书
查看>>
Android Dependencies
查看>>
IE9关联数组导致内存泄漏测试报告
查看>>
开始学习汇编语言
查看>>
14.3-全栈Java笔记:JPanel原来是这样用的
查看>>
Android游戏开发学习笔记(二):音频的播放
查看>>
【故障解决】ORA-06502错误解决
查看>>
linux基础的一些常见问题总结_学习笔记
查看>>
“管理”软件适合小团队吗?
查看>>
内网服务器无外网上网 &&端口映射
查看>>
Reactive Native学习资料汇总
查看>>
WebService简单例子--cxf整合spring
查看>>