大数据建模之广告点击率预估
一、数据和样本
广告点击率(click through rate,CTR)预估的问题通常被转化为一个分类问题:在给定网民 u(user)、广告 i(item)、环境 e (environment) 的情况下,广告被点击的概率 p_ctr. 即
当一个广告在某次展现中被点击,则构成一条正样本,否则为负样本。
一般而言,搜索引擎厂商都记录了海量的搜索日志,这些日志数据具有丰富的价值,可以用来分析挖掘并用于预测网民的广告点击行为。
利用历史一段时间的展现和点击记录的日志,我们可以训练一个分类器模型,该分类器模型的特征包含如下几个因素:
1.网民的信息:包括当次搜索的搜索词,网民的个体属性,如历史上网的浏览点击行为等;
2.广告的信息:包括广告的内容,广告的历史展现和点击信息;
3.环境:包括当次搜索的时间,当次搜索的地方,广告展现的位置等。
二、logistic回归算法
logistic回归算法在特征设计的过程中,有两种常见的变量衍生技巧:离散化和特征组合。
1.离散化
原始数据变量根据类型的不同,一般可以划分为两种:类目型和数值型。类目型变量的取值可枚举,例如性别或学历;数值型变量是取值在某个区间范围内的任何一个数值,例如资产变量可能是0到正无穷中的任何一个数。
类目型变量一般采用OneHot编码方式对变量做预处理吼构成多个特征进入logistic回归算法。
数值型变量有两种处理方式:一种方式是不做处理,直接将该变量作为logstic回归算法的一个特征;另外一种方式是首先对数值型变量做离散化处理,变成一个类目型变量,然后再使用onehot编码方式形成多个特征。如果将连续变量直接作为一个特征放入回归算法中,目标值关于该变量的关系是一个简单的线性关系。如果将该连续变量离散成N个不同的取值后,再通过onehot方式加入N个特征,则每个特征都能对应一个单独的参数,每个参数都有独立的权重,能够刻画更加复杂的非线性关系,从而提升模型的表达能力。
数值型变量离散成类目型变量时,一般是将该数值型连续变量的可能取值范围划分成几个区间,不同的取值范围为一个不同的类目型变量值,区间的个数即为离散后类目型变量的取值个数。如果两个不同的数值型变量落在同一个区间,在离散之后,这两个变量的取值就会相同。
常见的区间划分方法有以下两种思路:
1. 等距离离散化:特别的,对于长尾分布的数据,还可以先通过logstic变换将长尾部分的数据的距离变得更近后,再等距离离散化。
2. 等样本离散化: 切分后保证落入每个切分区域的样本个数一样多。该方法受数据分布的影响较少,但是由于计算量太大,应用比较少。
在广告点击率预估问题中,大部分变量是类目型变量,如搜索词、广告ID等,一般采用onehot的方式来处理这类特征。由于搜索词和广告ID这类类目型变量取值空间非常大,因此广告点击率预估的特征的维度非常大。除了类目型变量外,还有少量的数值型特征,如广告标题长度等,也是通过离散化和onehot处理后再加入模型。
2. 特征组合
logistic回归算法是一个线性算法,因此目标值关于每个特征都是线性变化。但是,如果我们认为目标值关于某些自变量存在或可能存在非线性关系,则需要手动将该非线性关系作为一个衍生变量加入自变量中。
例如,当目标值可能与某个自变量的平方存在线性关系,则需要设计一个衍生变量
作为一个新的变量放入回归式中;类似的,如果目标值不仅和
,
这两个变量相关,还和它们之间的交互关系相关,那么需要将
这两个变量的组合作为一个新的衍生变量放入模型中。
最常见的添加衍生特征的方式是考虑几个特征不同取值的组合。以性别和职业为例,假设性别有男、女两个取值,职业有学生、教师、其他三个取值;性别和职业的组合是指将两个变量的不同取值组合起来一共构成六种取值的新的类目变量:(男,学生),(女,学生),(男,教师),(女,教师),(男,其他),(女,其他),并将其通过onehot编码方式加入到模型中。
常见的组合方式有下列几种思路:
- 简单组合
- 行为序列组合
- 不同类别的变量组合
三、模型构建与训练
1. logistic回归算法
logistic回归算法是工业界应用最广泛的线性算法,它通过logistic变换将目标值映射到区间,通过这个概率值来表达属于某个类别的概率。算法的函数表达式如下:
logistic回归算法通过把最小化总体样本的转变为最小化训练样本集合中的
,从而求解出参数
的最优解估计
.
这里即为
,该向量的维度即为特征的维度,N为训练样本的个数,y即为我们要求的广告点击率
.
2. 模型训练
在模型训练的过程中,为了防止过拟合,需要加入正则项来避免模型过于复杂。在广告点击率预估问题中,最常用的是正则,因为广告点击率预估的参数规模很大,
正则的稀疏性能够有效降低取值不为0的参数个数,从而降低线上预估的计算量。加入
正则项的模型形式如下:
不同数据集合对应的最优的取值不一样,通常需要通过选取不同的
参数在同一份训练集上训练得到模型,然后再同一份测试集上观察和比较不同
参数下模型的效果,从而找到最优的
参数。
大数据建模之广告点击率预估相关推荐
- 对“科大讯飞2021丨广告点击率预估挑战赛 Top1方案(附完整代码)_Jack_Yang的博客-CSDN博客”的补充。
这篇文章的初衷是针对科大讯飞2021丨广告点击率预估挑战赛 Top1方案(附完整代码)_Jack_Yang的博客-CSDN博客进行补充. 博客的信息量很少,对任务背景的介绍也不太对,说实话令人费解.我 ...
- 业余草推荐阿里妈妈自研广告点击率预估核心算法MLR
业余草推荐阿里妈妈自研广告点击率预估核心算法MLR. 小编觉得CTR(广告点击率)预估的能力对于广告系统的意义和重要性,类似于在证券市场上预测股价的能力,优秀的CTR预测,通向美好和财富...(以下转 ...
- 效果广告点击率预估实践:在线学习
效果广告点击率预估实践:在线学习 原创 2016-03-24 腾讯大数据 腾讯大数据 1.引言 技术钻研如逆水行舟,不进则退.公司的广告业务发展非常迅猛,有目共睹,激烈的外部竞争和客户越来越高的期望, ...
- 计算广告(一)【Ad Click Prediction: a View from the Trenches】工程实践视角下的广告点击率预估
计算广告(一)Ad Click Prediction: a View from the Trenches --工程实践视角下的广告点击率预估 这是谷歌发表于KDD2013的一篇文章,从年份来看,已经有 ...
- 大规模推荐引擎和广告点击率预估引擎中的TopK计算
转自:https://chuansongme.com/n/2035198 推荐引擎的研究结果成千上万,绝大部分工作都来自于矩阵分解或者类似,在针对用户和Item分别训练出特征向量之后,根据向量内积计算 ...
- 微信公众号广告点击率预估效果优化
[转载]微信公众号广告点击率预估效果优化_腾讯大数据 http://data.qq.com/article?id=2914 1.背景 点击率预估(pCTR)是广告投放过程中的一个重要环节,精准的点击率 ...
- kaggle案例:广告点击率预估+LR
一.业务背景 传统广告与在线广告区别? 传统广告: 类似电视广告,报纸媒体.杂志.广播.户外媒体等. 在线广告: 类似百度搜索广告,facebook页面展示广告. 区别:在线广告更多与用户相关,例,在 ...
- 广告点击率预估中的特征选择
一.互联网广告特征project 博文<互联网广告综述之点击率系统>论述了互联网广告的点击率系统,能够看到,当中的logistic regression模型是比較简单并且有用的,其训练方法 ...
- 【总结】广告点击率预估中的特征选择
互联网广告综述之点击率特征工程 一.互联网广告特征工程 博文<互联网广告综述之点击率系统>论述了互联网广告的点击率系统,可以看到,其中的logistic regression模型是比较简单 ...
最新文章
- mysql5.7 生成列 generated column
- nagios监控安装
- 运营商助力新型智慧城市建设
- to make target ‘../../lib/aaaaa.so‘, needed by ‘ xxx ‘
- 二进制搭建kubernetes多master集群【三、配置k8s master及高可用】
- 详解虚函数的实现过程之菱形继承(5)
- 科普 | 你必须了解的漏洞利用缓解及对抗技术
- scipy和statsmodels处理回归
- Nginx关于浏览器缓存相关的配置指令
- FileOutputSteam入门
- 使用反射调用构造器创建对象
- 设置了li(float:right),里面的li反过来显示 - 解决办法
- sort();对结构体数组的排序
- 液冷计算机组装,电脑水冷散热器原理解密及安装方法
- 实时的含时密度泛函理论(rt-TDDFT)的算法进展及在超快动力学中的应用
- 数字图像处理编程入门笔记
- 大一期末C语言大作业—结构体和链表框架
- python找零_用python实现零钱找零的三种方法
- 讨论IOS开发以及自己的经验
- 阐明Linux文件系统的潜藏权限
热门文章
- ggplot2作图细节(长宽数据转化,数据集挑选,变量排序,调色板限制变量解决方案)
- Layui的行内数据的获取
- OSChina 周五乱弹 —— 拿着遣散费做个浪漫人
- idea com.intellij.junit4.JUnit4TestRunnerUtil$5 overrides final method getRunner.()Lorg/junit/runner
- c语言中int默认是有符号还是无符号,C语言迷题:有符号数与无符号数的问题
- 20190416今日总结
- NTP/SNTP协议介绍和校时服务器搭建
- MIni2440 各种资源整理
- Linux学习之压缩命令tar
- ios添加真机调试方法,和xcode查询udid方法