CTR预估的几种方式

2023-11-02

1.CTR预估

CTR预估是计算广告中最核心的算法之一,那么CTR预估是指什么呢?简单来说,CTR预估是对每次广告的点击情况做出预测,预测用户是点击还是不点击。具体定义可以参考 CTR. CTR预估和很多因素相关,比如历史点击率、广告位置、时间、用户等。CTR预估模型就是综合考虑各种因素、特征,在大量历史数据上训练得到的模型。CTR预估的训练样本一般从历史log、离线特征库获得。样本标签相对容易,用户点击标记为1,没有点击标记为0. 特征则会考虑很多,例如用户的人口学特征、广告自身特征、广告展示特征等。这些特征中会用到很多类别特征,例如用户所属职业、广告展示的IP地址等。一般对于类别特征会采样One-Hot编码,例如职业有三种:学生、白领、工人,那么会会用一个长度为3的向量分别表示他们:[1, 0, 0]、[0, 1, 0]、[0, 0, 1]. 可以这样会使得特征维度扩展很大,同时特征会非常稀疏。目前很多公司的广告特征库都是上亿级别的。

2.DNN

深度神经网络(DNN)近年来在图像、语音、自然语言等领域大放异彩,特别是在图像分类、语音识别、机器翻译方面DNN已经超过人,精度已经达到商业应用程度。不过,DNN在CTR预估这种场景的应用却仍在摸索中。图像、语言、自然语言领域的数据一般是连续的,局部之间存在某些结构。比如,图像的局部与其周围存在着紧密的联系;语音和文字的前后存在强相关性。但是CTR预估的数据如前面介绍,是非常离散的,特征前后之间的关系很多是我们排列的结果,并非本身是相互联系的。

3.Embeding

Neural Network是典型的连续值模型,而CTR预估的输入更多时候是离散特征,因此一个自然的想法就是如何将将离散特征转换为连续特征。如果你对词向量模型熟悉的话,可以发现之间的共通点。在自然语言处理(NLP)中,为了将自然语言交给机器学习中的算法来处理,通常需要首先将语言数学化,词向量就是用来将语言中的词进行数学化的一种方式。

一种最简单的词向量方式是one-hot,但这么做不能很好的刻画词之间的关系(例如相似性),另外数据规模会非常大,带来维度灾难。因此Embeding的方法被提出,基本思路是将词都映射成一个固定长度的向量(向量大小远小于one-hot编码向量大些),向量中元素不再是只有一位是1,而是每一位都有值。将所有词向量放在一起就是一个词向量空间,这样就可以表达词之间的关系,同时达到降维的效果。

既然Embeding可以将离散的词表达成连续值的词向量,那么对于CTR中的类别特征也可以使用Embeding得到连续值向量,再和其他连续值特征构成NN的输入。下图就是这种思路的表达。
这里写图片描述
因此问题的关键就是采用何种Embeding技术将离线特征转换到离线空间。

3.1 FM Embeding  

Factorization Machine是近年来在推荐、CTR预估中常用的一种算法,该算法在LR的基础上考虑交叉项,如下面公式所示:
这里写图片描述
FM在后半部分的交叉项中为每个特征都分配一个特征向量V,这其实可以看作是一种Embeding的方法。Dr.Zhang在文献[1]中提出一种利用FM得到特征的embeding向量并将其组合成dense real层作为DNN的输入的模型,FNN。FNN模型的具体设计如下:
这里写图片描述
Dr.Zhang在模型中做了一个假设,就是每个category field只有一个值为1,也就是每个field是个one-hot表达向量。field是指特征的种类,例如将特征occupation one-hot之后是三维向量,但这个向量都属于一个field,就是occupation。这样虽然离散化后的特征有几亿,但是category field一般是几十到几百。 模型得到每个特征的Embeding向量后,将特征归纳到其属于field,得到向量z,z的大小就是1+#fields * #embeding 。z是一个固定长度的向量之后再在上面加入多个隐藏层最终得到FNN模型。

Dr.Zhang在FNN模型的基础上又提出了下面的新模型PNN. PNN和FNN的主要不同在于除了得到z向量,还增加了一个p向量,即Product向量。Product向量由每个category field的feature vector做inner product 或则 outer product 得到,作者认为这样做有助于特征交叉。另外PNN中Embeding层不再由FM生成,可以在整个网络中训练得到。
这里写图片描述

3.2 NN Embeding
这里写图片描述
Google团队最近提出Wide and Deep Model。在他们的模型中,Wide Models其实就是LR模型,输入原始的特征和一些交叉组合特征;Deep Models通过Embeding层将稀疏的特征转换为稠密的特征,再使用DNN。最后将两个模型Join得到整个大模型,他们认为模型具有memorization and generalization特性。 Wide and Deep Model中原始特征既可以是category,也可以是continue,这样更符合一般的场景。另外Embeding层是将每个category特征分别映射到embeding size的向量,如他们在TensorFlow代码中所示:

deep_columns = [
  tf.contrib.layers.embedding_column(workclass, dimension=8),
  tf.contrib.layers.embedding_column(education, dimension=8),
  tf.contrib.layers.embedding_column(gender, dimension=8),
  tf.contrib.layers.embedding_column(relationship, dimension=8),
  tf.contrib.layers.embedding_column(native_country, dimension=8),
  tf.contrib.layers.embedding_column(occupation, dimension=8),
  age, education_num, capital_gain, capital_loss, hours_per_week]

4.结合图像

目前很多在线广告都是图片形式的,文献[4]提出将图像也做为特征的输入。这样原始特征就分为两类,图像部分使用CNN,非图像部分使用NN处理。 其实这篇文章并没有太多新颖的方法,只能说多了一种特征。对于非图像特征,作者直接使用全连接神经网络,并没有使用Embeding。
这里写图片描述

5.CNN

CNN用于提取局部特征,在图像、NLP都取得不错的效果,如果在CTR预估中使用却是个难题。我认为最大的困难时如何构建对一个样本构建如图像那样的矩阵,能够具有局部联系和结构。如果不能构造这样的矩阵,使用CNN是没有什么意思的。 文献[5]是发表在CIKM2015的一篇短文,文章提出对使用CNN来进行CTR预估进行了尝试。 一条广告展示(single ad impression)包括:element = (user; query; ad, impression time, site category, device type, etc) 用户是否点击一个广告与用户的历史ad impression有关。这样,一个样本将会是(s, label) ,s由多条l组成(数目不定)
这里写图片描述
作者提出CCPM模型处理这样的数据。每个样本有n个element,对每个element使用embeding 得到定长为d的向量ei∈Rdei∈Rd,再构造成一个矩阵s∈Rd∗ns∈Rd∗n,得到s矩阵之后就可以套用CNN,后面的其实没有太多创新点。
这里写图片描述

6.RNN

考虑搜索场景下的CTR预估,如果考虑历史信息,如可以将一个用户的历史ad impression构成一个时间序列。RNN非常适合时间序列的场景,如语言建模等。这篇 发表在AAAI2014将RNN模型引入CTR预估。作者首先在数据集上验证了用户的点击行为与之前的ad impression历史有关联:

如果用户在之前的impression很快离开广告页面,那么将会在接下来一段时间内不会点击类似的广告
如果用户最近有过与广告相关的查询,那么接下来点击相关广告的可能性会大幅提升
前面的两种行为还可能随着间隔时间的增加而不是那么相关
当前关联不止这些,而且人工难以刻画,需要模型来自动提取。RNN模型对此类问题非常适用,作者的主要工作是将数据集构造成适合RNN的输入(即对用户的历史ad impression根据时间排序),对模型本身并没有改进。
这里写图片描述
参考文献

1.Deep Learning over Multi-field Categorical Data – A Case Study on User Response Prediction
2.Product-based Neural Networks for User Response Prediction
3.Wide & Deep Learning for Recommender Systems
4.Deep CTR Prediction in Display Advertising
5.A Convolutional Click Prediction Model
6.http://www.52cs.org/?p=1046
7.http://techshow.ctrip.com/archives/1149.html
8.http://tech.meituan.com/deep-understanding-of-ffm-principles-and-practices.html
9.Sequential Click Prediction for Sponsored Search with Recurrent Neural Networks
转自:https://yxzf.github.io/2017/03/dnn-for-ctr/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CTR预估的几种方式 的相关文章

  • 基于python大数据的电影可视化分析及电影推荐

    随着信息技术和互联网技术的快速发展 利用数据采集技术实现用户感兴趣的数据收集分析成为很多互联网公司研究讨论的热门话题 通过对基于Python的大数据的电影可视化分析与电影推荐 采集进行电影热度动态变化的需求进行调查分析 发现作为研究电影热度
  • 21亿春节红包撒出去,能缓解快手的流量焦虑吗?

    来源 连线Insight 编辑 李信 抖音作为央视春晚合作伙伴 着实火了一把 官方数据显示 春晚期间 抖音红包的总互动次数达到703亿 在抖音宣布成为2021年春晚独家红包互动合作伙伴时 最焦虑的莫过于快手 1月28日 快手官方微博宣布拿下
  • 推荐系统(2)——评测指标

    根据评测体系来评价一个推荐系统的好坏 由于推荐系统是和实际收益挂钩 所以需要考虑三方 用户 物品提供者和平台 的利益 实现最大化的三方共赢 接下来从 实 验 方 法 评
  • 数据和技术驱动下的投放效率优化

    业内流行着这样一句话 用户增长三板斧 投放 push和分享 渠道投放是用户增长非常重要的一个方向 以往渠道投放更多是重商务 渠道和运营 现在已经发展成了一个通过数据和技术驱动不断优化 精益求精的领域 技术在投放 营销场景正扮演着越来越关键的
  • R语言 决策树--预测模型

    决策树 算法的目标是建立分类预测模型或回归预测模型 是一种预测模型 按目标不同可以细分为分类树和回归树 因为在展示的时候 类似于一棵倒置的树而得名 如下图 基本概念 根节点 如上图中最上方 一棵决策树只有一个根节点 中间节点 位于中间的节点
  • 广电大数据用户画像及营销推荐策略(四)——Python实现

    本次大数据项目数据及分析均做脱敏化和保密化 主要分享思路体系 全程用Python实现 数据和代码均不提供 如有建议欢迎讨论 4 模型构建 在实际应用中 构造推荐系统时 并不是采用单一的某种推荐方法进行推荐 为了实现较好的推荐效果 大部分都将
  • 备战数学建模34-BP神经网络预测2

    目录 一 辛烷值的预测 1 题目分析与原理介绍 2 神经网络建立过程 3 预测结果分析 BP神经网络模型 包含输入层 隐含层和输出层 正向传播过程是通过输入样本到输入层 通过输入层经过各层隐藏层 最后到达输出层 若输出层输出值与期望值的输出
  • 推荐算法:基于内容的推荐_1:内容推荐算法

    基于内容的推荐 推荐给用户他们过去喜欢的类似产品 基于CF的推荐 识别出具有相同爱好的用户 给他们推产品 基于内容的推荐算法 基于内容推荐的步骤 对数据内容分析 得到物品的结构化描述 分析用户过去的评分或评论过的物品的 作为用户的训练样本
  • 个人总结:推荐算法篇(附协同过滤等) 综述

    现代推荐系统 对于在线部分来说 一般要经历几个阶段 首先通过召回环节 将给用户推荐的物品降到千以下规模 因为在具备一定规模的公司里 是百万到千万级别 甚至上亿 所以对于每一个用户 如果对于千万级别物品都使用先进的模型挨个进行排序打分 明显速
  • 时间序列完全教程(R)

    简介 在商业应用中 时间是最重要的因素 能够提升成功率 然而绝大多数公司很难跟上时间的脚步 但是随着技术的发展 出现了很多有效的方法 能够让我们预测未来 不要担心 本文并不会讨论时间机器 讨论的都是很实用的东西 本文将要讨论关于预测的方法
  • 图文并茂:推荐算法架构——粗排

    导语 粗排是介于召回和精排之间的一个模块 是典型的精度与性能之间trade off的产物 理解粗排各技术细节 一定要时刻把精度和性能放在心中 本篇将深入重排这个模块进行阐述 一 总体架构 粗排是介于召回和精排之间的一个模块 它从召回获取上万
  • 推荐算法实战项目:FNN 原理以及案例实战(附完整 Python 代码)

    本文要介绍的是FNN模型 出自于张伟楠老师于2016年发表的论文 Deep Learning over Multi field Categorical Data 论文提出了两种深度学习模型 分别叫做FNN Factorisation Mac
  • 推荐系统综述:初识推荐系统

    目录 1 引言 2 发展历史 3 研究现状 4 推荐方式和效果评估 4 1 评分预测 4 2 TopN推荐 5 推荐算法 5 1 基于用户行为推荐 5 1 1 基于用户的协同过滤 User Based CF 5 1 2 基于物品的协同过滤
  • YouTube 的视频推荐算法

    转载 https www zhihu com question 20829671 answer 205421638 第一阶段 基于User Video图游历算法 2008年 1 在这个阶段 YouTube认为应该给用户推荐曾经观看过视频的同
  • 毕业设计-基于大数据招聘岗位可视化系统-python

    目录 前言 课题背景和意义 实现技术思路 实现效果图样例 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力 近几年各个学校要求的毕设项目越来越难 有不少课题是研究生级别难度
  • 图书推荐管理系统Python,基于Django和协同过滤算法等实现

    一 介绍 图书推荐系统 图书管理系统 以Python作为开发语言 基于Django实现 使用协同过滤算法实现对登录用户的图书推荐 二 效果展示 三 演示视频 视频 代码 https www yuque com ziwu yygu3z gq5
  • 模拟实现 队列 - JAVA(使用链表,数组)

    以链表实现 以数组实现 以链表实现 class Node public int val public Node next public Node int val this val val public class MyQueue publi
  • 异常检测主要方法总结

    最近对预测及异常检测进行了一些研究和学习 把所学东西做一个汇总整理 欢迎交流拍砖 侵权删 目录 一 时间序列概念 二 时间序列异常检测 三 时序类型 四 异常类型 4 1 点异常 4 2 上下文异常 4 3 集合异常 五 重要概念 5 1
  • 推荐算法(Recommended Algorithms)

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • lr推荐模型 特征重要性分析

    在分析lr模型特征重要性之前 需要先明白lr模型是怎么回事儿 lr模型公式是sigmoid w1 x1 w2 x2 wn xn 其中w1 w2 wn就是模型参数 x1 x2 xn是输入的特征值 对于lr模型来说 特征可以分为两个粒度 一个是

随机推荐

  • web中异步和同步的理解

    普通的B S模式就是同步 而AJAX技术就是异步 当然XMLHttpReques有同步的选项 同步 提交请求 gt 等待服务器处理 gt 处理完毕返回 这个期间客户端浏览器不能干任何事 异步 请求通过事件触发 gt 服务器处理 这是浏览器仍
  • 欧拉路问题—详解

    先区分几个概念 欧拉路 从一个点S出发 不重不漏的经过每条边 允许重复经过一个点 最终去到另一个点T 的一条路径 欧拉回路 从一个点S出发 不重不漏的经过每条边 允许重复经过一个点 最终回到这个点S 的一条路径 欧拉图 存在欧拉回路的无向图
  • QQGuild删除

    整理C盘用户数据时发现了这玩意 输入路径 C Users Dell AppData Local Tencent 筛选最小输出文件大小 20 QQBrowser 大小 246 52 M QQGuild 大小 306 37 M 明明把Tence
  • encoder-decoder

    Encoder decoder框架 Encoder decoder框架最抽象的一种表示 即由一个句子生成另一个句子的通过处理模型 对于句子对
  • vulhub打靶第二周

    第二周 信息收集 主机发现 arping 和arp scan 都可以使用 arping 在大多Linux 发行版都默认包含 但是arping无法扫一个网段 可以用shell脚本补足这个缺陷 for i in seq 1 254 do sud
  • nginx 握手失败SSL_do_handshake() failed (SSL: error:1408A0C1:SSL routines:SSL3_GET_CLIENT_HELLO:no share...

    SSL do handshake failed SSL error 1408A0C1 SSL routines SSL3 GET CLIENT HELLO no shared cipher 因为nginx不支持客户端的算法套件 1 可更新n
  • Python 数据采集-爬取学校官网新闻标题与链接(进阶)

    Python 爬虫爬取学校官网新闻标题与链接 进阶 前言 一 拼接路径 二 存储 三 读取翻页数据 四 完整代码展示 五 小结 前言 本文基于学校的课程内容进行总结 所爬取的数据均为学习使用 请勿用于其他用途 准备工作 爬取地址 https
  • mysql bitmap redis_Redis 中 BitMap 的使用场景

    BitMap 原本的含义是用一个比特位来映射某个元素的状态 由于一个比特位只能表示 0 和 1 两种状态 所以 BitMap 能映射的状态有限 但是使用比特位的优势是能大量的节省内存空间 在 Redis 中 可以把 Bitmaps 想象成一
  • C语言文件操作之fgets()

    来说一说fgets 函数 原型 char fgets char s int n FILE stream 参数 s 字符型指针 指向存储读入数据的缓冲区的地址 n 从流中读入n 1个字符 stream 指向读取的流 返回值 1 当n lt 0
  • 2023华为OD机试真题Python实现【食堂供餐/二分法】

    题目内容 某公司员工食堂以盒饭方式供餐 为将员工取餐排队时间降低为0 食堂的供餐速度必须要足够快 现在需要根据以往员工取餐的统计信息 计算出一个刚好能达成排队时间为0的最低供餐速度 即 食堂在每个单位时间内必须至少做出多少份盒饭才能满足要求
  • 使用easyExcel导入大批量数据

    常用来导入excel的工具有poi 但笔者实测中发现 poi导入的excel数据少于5000条时是没有任何问题的 当导入excel里的数据大于5000条时 内存会被占满 从而导致解析错误 导入失败 这种情况俗称 OOM Out Of Mem
  • 震撼!国产自研多环境开发软件 CEC-IDE 问世!遥遥领先!!

    程序员的成长之路 互联网 程序员 技术 资料共享 关注 阅读本文大概需要 2 8 分钟 来自 网络 侵删 震撼到了 厉害 继国产自研浏览器 国产自研操作系统 国产自研手机系统后的全新力作 国产自研 IDE 它就是 CEC IDE 一款由数字
  • Scanvenger游戏制作笔记(一)Unity3D状态机转换

    Scanvenger游戏制作笔记 一 Unity3D状态机转换 前言 一 打开Controller 二 选择 Parameters 创建新的trigger 三 选择状态转换线 四 返回到原状态 选择返回的剪头 系列链接 前言 本文章是我学习
  • 使用yum 源安装nginx

    执行以下命令 添加Nginx到yum源 sudo rpm Uvh http nginx org packages centos 7 noarch RPMS nginx release centos 7 0 el7 ngx noarch rp
  • 树模型-决策树

    树模型 1 决策树 ID3 C4 5 CART 2 随机森林RF 3 Adaboost 4 GBDT 5 XGboost 6 孤立森林 异常检测 一 决策树 决策树是一种基本的分类和回归方法 用于分类主要借助每一个叶子节点对应一种属性判定
  • torchtext 教程 超详细

    torchtext 教程超详细 https www jianshu com p da3a5d5ed2ba
  • 数字电路实验(02)小规模组合逻辑电路实验1:交通灯状态

    数字电路实验 02 小规模组合逻辑电路实验1 交通灯状态 2020 5 11 一 实验要求 1 1 实验目的 1 认识解决实际组合逻辑问题的一般方法和过程 2 熟悉基本逻辑门的使用 1 2 实验器材 1 2输入与门 2 3输入与门 3 4输
  • Java用类实现结构体的功能

    我们都知道C C 里面的结构体在储存数据的时候很方便 但是在Java中没有Struct 但是我们可以用类来实现Struct的功能 与Struct声明功能一样的类的定义 public class platform private int x
  • C++类模板特化全总结

    基础模板一 template
  • CTR预估的几种方式

    1 CTR预估 CTR预估是计算广告中最核心的算法之一 那么CTR预估是指什么呢 简单来说 CTR预估是对每次广告的点击情况做出预测 预测用户是点击还是不点击 具体定义可以参考 CTR CTR预估和很多因素相关 比如历史点击率 广告位置 时