计算广告学中的一个重要的问题是, 如果用户产生了一次转化(conversion, 比如购买, 注册等), 且该用户在转化之前看过大量不同频道(比如搜索, 展示, 社交等等)的广告, 那么我们如何确定是哪个(或)那些频道的广告导致的这次转化呢?

这就是归因(Attribution)问题, 如下图所示:

工业界采取的两种方法是“最后阅读获胜”(Last View Win)和“最后点击获胜”(Last Click Win), 前者会把转化归因于这个用户最后一次阅读的广告属于的频道, 后者会归因于最后一次点击的广告属于的频道(如果一直没有点击, 则归因于最后一次阅读的广告属于的频道). 以上两种方法统称为Last-Touch Attribution. 这种方法很简单, 但是忽略了除最后一个频道以外的所有其他频道的广告的影响, 所以效果不是很好.

实际上, 每个频道都对用户最终的转化产生了影响, 这种考虑多个频道的影响的模型称之为多点归因模型(Multi-Touch Attribution Model). 比较简单的就是线性归因模型和时间衰退归因模型:

Xuhui Shao等人提出了使用机器学习的方法来解决归因问题. 把归因看作是分类问题, 对于每个用户, 如果其有转化, 则是正样本, 否则是否样本. 特征则选择该用户在各个频道上的广告的阅读量. 在解决归因问题时, 我们不仅仅要求模型得到很好地分类性能(正确的预测用户是否有转化), 更重要的是, 得到各个频道对于用户的转化的影响, 以确定各个频道对于用户的转化的作用.

可以使用逻辑斯蒂回归(Logistic Regression)作为模型, 其得到的各个特征(频道)的系数作为其对该用户的转化的影响. 另外, 因为用户的行为很复杂, 所以单个逻辑斯蒂模型得到的系数估计的变化性可能很大, 这样不利于解释(因为重复试验时得到的各个频道对转化的影响变化很大). Xuhui等人提出了一种新的衡量标准: V-A metric. V(variability)衡量的是模型得到的特征系数(亦即各频道对转化的影响)的可变性, A表示的是对用户分类的准确性.

Xuhui等人提出使用装袋(bagging)方法训练多个逻辑斯蒂回归模型, 对于每个特征, 我们求得其系数的估计的标准差, 然后取所有特征的标准差的平均值来作为V. 使用多个逻辑斯蒂模型的准确率的平均值来作为A. 算法的具体步骤为:

  1. 从所有的数据中随机的抽取\(p_s\)比例的训练样本, 以及\(p_c\)比例的特征. 训练一个逻辑斯蒂模型. 记录各个特征的系数.
  2. 以上步骤迭代M次, 取各个特征的系数的平均值作为各个特征最终的系数值.

参考文献:

[1]. Xuhui Shao, Lexin Li, Data Driven Multi-Touch Attribution Models.

[2]. The Math Behind Multi-Touch Attribution Model

[3]. Multi-Channel Attribution Model: The good, Bad and Ugly Models

计算广告学-多点归因模型(Multi-Touch Attribution Model)的更多相关文章

  1. [Computational Advertising] 计算广告学笔记之基础概念

    因为工作需要,最近一直在关注计算广告学的内容.作为一个新手,学习计算广告学还是建议先看一下刘鹏老师在师徒网的教程<计算广告学>. 有关刘鹏老师的个人介绍:刘鹏现任360商业产品首席架构师, ...

  2. 【计算机视觉】阶编码本模型(Multi phase codebook model)

    转自:http://www.cnblogs.com/xrwang/archive/2012/04/24/MPCBBGM.html 多阶编码本模型(Multi phase codebook model) ...

  3. ML学习分享系列(2)_计算广告小窥[中]

    原作:面包包包包包包 改动:寒小阳 && 龙心尘 时间:2016年2月 出处:http://blog.csdn.net/Breada/article/details/50697030 ...

  4. 计算广告(computational advertising)

    计算广告学是一门由信息科学.统计学.计算机科学以及微观经济学等学科交叉融合的新兴分支学科. 1. 课程与资源 Andrei Broder:美国工程院院士,计算广告概念的提出者: MS&E 23 ...

  5. 计算广告CTR预估系列(七)--Facebook经典模型LR+GBDT理论与实践

    计算广告CTR预估系列(七)--Facebook经典模型LR+GBDT理论与实践 2018年06月13日 16:38:11 轻春 阅读数 6004更多 分类专栏: 机器学习 机器学习荐货情报局   版 ...

  6. 漫谈计算摄像学 (一):直观理解光场(Light Field)

    什么是计算摄像学 计算摄像学(Computational Photography)是近年来越来越受到注意的一个新的领域,在学术界早已火热.本来计算摄像学的业界应用在群众中一直没什么知名度,直到Lytr ...

  7. 《通过C#学Proto.Actor模型》之 HelloWorld

    在微服务中,数据最终一致性的一个解决方案是通过有状态的Actor模型来达到,那什么是Actor模型呢? Actor是并行的计算模型,包含状态,行为,并且包含一个邮箱,来异步处理消息. 关于Actor的 ...

  8. 超计算(Hyper computation)模型

    超计算(Hyper computation)模型 作者:Xyan Xcllet链接:https://www.zhihu.com/question/21579465/answer/106995708来源 ...

  9. 计算广告(4)----搜索广告召回(也叫match、触发)

    一.搜索广告形态 1.特征工程 特征主要有用户画像(user profile).用户行为(user behavior).广告(ad)和上下文(context)四部分组成,如下所示: 2.平台算法主要分 ...

随机推荐

  1. 《构建之法》第8,9,10章读后感&sprint1个人总结

    第8章 这一章主要介绍需求分析.具体说明了软件需求的类型.利益相关者,获取用户需求分析的常用方法与步骤.竞争性需求分析的框架NABCD,四象限方法以及项目计划和估计的技术.需求分析是决定一个软件的使用 ...

  2. 第六周PSP&进度条

    团队项目PSP 一.表格:     C类型 C内容 S开始时间 E结束时间 I时间间隔 T净时间(mins) 预计花费时间(mins) 讨论 讨论alpha完成情况并总结 9:40 11:20 17 ...

  3. Sql Server中判断表、列不存在则创建的方法[转]

    一.Sql Server中如何判断表中某列是否存在 首先跟大家分享Sql Server中判断表中某列是否存在的两个方法,方法示例如下: 比如说要判断表A中的字段C是否存在两个方法: 第一种方法  ? ...

  4. HBase 架构与工作原理1 - HBase 的数据模型

    本文系转载,如有侵权,请联系我:likui0913@gmail.com 一.应用场景 HBase 与 Google 的 BigTable 极为相似,可以说 HBase 就是根据 BigTable 设计 ...

  5. CF1083C Max Mex 线段树

    题面 CF1083C Max Mex 题解 首先我们考虑,如果一个数x是某条路径上的mex,那么这个数要满足什么条件? 1 ~ x - 1的数都必须出现过. x必须没出现过. 现在我们要最大化x,那么 ...

  6. Linux下的bash对拍

    下面是Linux下的bash对拍程序: #!/bin/bash t=0 //数据组数 while true; do let "t=$t + 1" echox printf $t / ...

  7. 【BZOJ5334】数学计算(线段树)

    [BZOJ5334]数学计算(线段树) 题面 BZOJ 洛谷 题解 简单的线段树模板题??? 咕咕咕. #include<iostream> #include<cstdio> ...

  8. 【Cf #449 C】Willem, Chtholly and Seniorious(set维护线段)

    这里介绍以个小$trick$,民间流传为$Old Driver Tree$,实质上就是$set$维护线段. 我们将所有连续一段权值相同的序列合并成一条线段,扔到$set$里去,于是$set$里的所有线 ...

  9. 遇到问题----linux-----linux 打开文件数 too many open files 解决方法

    在运行某些命令或者 tomcat等服务器持续运行 一段时间后可能遇到   too many open files. 出现这句提示的原因是程序打开的文件/socket连接数量超过系统设定值. 查看每个用 ...

  10. Java之使用链表实现队列

    import java.util.Iterator; import java.util.NoSuchElementException; /** * 使用链表来实现队列 * 1.考虑结点的结构,包括当前 ...