《大数据互联网大规模数据挖掘与分布式处理》阅读笔记(四)-----WEB广告
作者: 沈慧
目前,许多WEB应用通过广告而维持生计,从在线广告中获益最多的是搜索应用,“adwords”模型就是一种用于搜索查询和广告匹配的模型。这一章介绍了在线广告的相关问题、在线算法、Adwords实现和问题等,具体框架如下图1所示。
图1 Web广告主要框架图
一、在线广告相关问题
1、当前WEB广告机会:网站上的展示广告、在线上商店自主选择的广告、搜索广告。
2、直投广告,通过应答查询词项时展示或者通过查询者查询广告具体参数来查询。采用“最近最优”策略,并度量广告的吸引力。
3、定向广告可能会引起隐私问题,但是WEB上可以通过用户信息来制作定向广告确实是一种比较高效的广告方式。
二、在线算法
1、离线算法:将算法所需的所有数据准备好才产生答案的传统算法。
在线算法:只能保存有限的流数据,但是需要在某个流元素到达之后就以输出的方式对查询进行应答,此时是在对未来的数据一无所知的情况下对当前元素进行决策的过程。
2、一般情况下会寻找搜索引擎收益和广告上显示次数同时的最大化,因为无法保证在线算法与离线算法一样有效。
3 贪心算法:采用贪心策略,综合考虑关键词与广告的匹配程度、广告商竞价、广告商剩余预算等因素,通过最大化当前输入元素信息的某个函数得到当前的最优值。
4 竞争率:存在某个小于1的常数c,使得对于任意输入,一个具体的在线算法的结果至少是最优离线算法结果的c倍。
三、广告的匹配问题
1、二部图:设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集,则称图G为一个二分图。
2、最大匹配:给定一个二分图G,在G的一个子图M中,M的边集中的任意两条边都不依附于同一个顶点,选择这样的边数最大的子集称为图的最大匹配问题。
3、完美匹配:在一个匹配中,所有的节点都不会同时是两条或者多条边对的端点且所有的节点都出现,则匹配是完美的。
4、最大匹配的贪心算法:按照任意次序来考虑边,当考虑边(x,y)时,如果x和y都不是已有匹配中边的端点则加入,否则跳过。贪心算法产生的匹配不一定是最大匹配,很可能结果会不尽人意。
5、贪心匹配算法的竞争率为1/2。因为算法的竞争率是算法所有可能的输入下所得到最小值和最优结果的比值,因此1/2是竞争率的上界。又设Mo是最大匹配、Mg是贪心算法匹配,L为在Mo中匹配但在Mg中不匹配的左节点结合,R为L中所有节点连接的边右节点的集合。由于|M0|<=|M0|+|L| ,|L|<=|R|,|R|<=|Mg| ,可以推导得到|M0|<=2|Mg|,竞争率至少为1/2。因此竞争率为1/2。
四、Adwords问题
1、Adwords问题定义:
给定信息为:广告商为搜索查询设定的投标价格集合;每个广告商-查询对所对应的点击率;每个广告的预算;每个搜索查询所显示的广告数目上限。每一个搜索查询后,得到的结果:
(1) 结果集合大小不超过每条查询显示广告数的上限
(2) 集合中每个广告商对于本条搜索的出价
(3) 每个广告商必须剩余足够的预算为广告的点击付费。
这样,一次广告选择的收益为:每个选出的广告的价值之和,其中每条广告的价值等于对应查询的出价和广告点击率的乘积。
2、简化后的Adwords问题:
(1) 每条查询只显示一个广告
(2) 所有广告商的预算都相等
(3) 所有广告的点击率都相等
(4) 所有的出价不是0就是1
简化后的Adwords问题可以通过贪心算法,促使搜索引擎将广告分配给对查询投标并有剩余预算的广告商。竞争率1为1/2。
3、Balance算法:是对贪心算法的改进。它将查询分配给出价最高且剩余预算最多的广告商,若多个广告商的剩余预算相等,则随机选择一个。如果只有两个广告商,竞争率正好为3/4,广告商增多时,竞争率可以达到1-1/e 约为63%。
4、Balance算法竞争率的下界:
按照书中例8.8,分类讨论在最优算法中分配给A1的查询在Balance算法中的分配情况,可以证明, Balance算法的竞争率就是3/4。
5、多投标者的Balance算法:
Balance最差的情况:
(1)有N个广告商A1、A2...An;
(2)每个广告商的预算为B=N!.
(3)有N个查询q1、q2...qn;
(4)广告商 Ai只为 q1、q2...qi出价,而不对其他查询出价。
(5)查询序列包括N轮,第i轮有查询 qi的B次构成。
最优算法的收益为NB。
Balance算法会优先考虑剩余预算最高的广告商,将第一轮每个查询等分为N分,第二轮等分为N-1分,在第i轮中,到会各自得到B/(N-i)个查询。最终最低轮次j=N(1-1/e)时,分配更多的广告商预算会被花光。Balance的收益近似为 BN(1-1/e),竞争率为(1-1/e)。
6、一般性的Balance算法
当现实中出价和预算为任意值,出价大小的权重难以设立。会在选择时倾向于出价高的广告,并对剩余预算处理更加人性,并倾向于广告商的部分预算,使得任意广告商的预算不会剩余太多。设 Ai预算中的节余比例为fi,将广告分配给 φi=Xi(1-e^(-fi))最大的广告商。 (这边看了还是有点糊涂,和他们再讨论讨论)。
五、Adwords实现
1、投标和搜索查询的匹配:将投标关键词集合按照词典顺序排列,并建立投标哈希表值.同样地,搜索查询也对词排序并映射为哈希值,找到匹配的投标。另外,由于内存的限制,全部的哈希表中的桶分割到几台机器。当搜索查询的到达速度过快时,查询流会分割为多段,每一段交给一组机器来处理。
2、较为复杂的匹配:当投标关键词和投标完全一致时,匹配较为简单。现实中,常常需要用投标和更大的文档匹配,比如邮件和推文。此时的匹配法则是:若投标集合的所有词都出现在文档中,不管词语是否与投标中同序,也不管是否相邻,都认为投标和文档匹配。
3、文档与投标之间的匹配算法:
首先要将投标按照低频优先的方式排序成词语表,并且每个词语列表都会有一个状态信息用以存储列表中从头开始和当前文档已经匹配的词语数目。
然后将投标将存放在哈希表中,其中哈希键是投标按照词频逆序方式得到的第一个关键词。另外还有一张哈希表,保存已经部分匹配的投标的副本。
文档中的词按照低频优先的方式处理。只有投标在其最低频词出现在文档时才会复制到第二个哈希表中,这样可以大大地减少哈希表的大小。
《大数据互联网大规模数据挖掘与分布式处理》阅读笔记(四)-----WEB广告的更多相关文章
- 最近整理出了有关大数据,微服务,分布式,Java,Python,Web前端,产品运营,交互等1.7G的学习资料,有视频教程,源码,课件,工具,面试题等等。这里将珍藏多年的资源免费分享给各位小伙伴们
大数据,微服务,分布式,Java,Python,Web前端,产品运营,交互 领取方式在篇尾!!! 基础篇.互联网架构,高级程序员必备视频,Linux系统.JVM.大型分布式电商项目实战视频...... ...
- 【HADOOP】| 环境搭建:从零开始搭建hadoop大数据平台(单机/伪分布式)-下
因篇幅过长,故分为两节,上节主要说明hadoop运行环境和必须的基础软件,包括VMware虚拟机软件的说明安装.Xmanager5管理软件以及CentOS操作系统的安装和基本网络配置.具体请参看: [ ...
- 【每天五分钟大数据-第一期】 伪分布式+Hadoopstreaming
说在前面 之前一段时间想着把 LeetCode 每个专题完结之后,就开始着手大数据和算法的内容. 想来想去,还是应该穿插着一起做起来. 毕竟,如果只写一类的话,如果遇到其他方面,一定会遗漏一些重要的点 ...
- 大数据技术原理与应用——分布式文件系统HDFS
分布式文件系统概述 相对于传统的本地文件系统而言,分布式文件系统(Distribute File System)是一种通过网络实现文件在多台主机上进行分布式存储的文件系统.分布式文件系统的设计一般采用 ...
- 大数据学习之hadoop伪分布式集群安装(一)公众号undefined110
hadoop的基本概念: Hadoop是一个由Apache基金会所开发的分布式系统基础架构. 用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力进行高速运算和存储. Hadoo ...
- Hadoop大数据初入门----haddop伪分布式安装
一.hadoop解决了什么问题 hdfs 解决了海量数据的分布式存储,高可靠,易扩展,高吞吐量mapreduce 解决了海量数据的分析处理,通用性强,易开发,健壮性 yarn 解决了资源管理调度 二. ...
- 《OD大数据实战》Hadoop伪分布式环境搭建
一.安装并配置Linux 8. 使用当前root用户创建文件夹,并给/opt/下的所有文件夹及文件赋予775权限,修改用户组为当前用户 mkdir -p /opt/modules mkdir -p / ...
- [大数据学习研究] 3. hadoop分布式环境搭建
1. Java安装与环境配置 Hadoop是基于Java的,所以首先需要安装配置好java环境.从官网下载JDK,我用的是1.8版本. 在Mac下可以在终端下使用scp命令远程拷贝到虚拟机linux中 ...
- 易初大数据 2019年11月14日 spss笔记 王庆超
“均匀分布”的随机数 需要打开本章的数据文件“sim.sav.”. 1.设置随机数种子 1选择[转换]--[随机数字生成器],勾选‘设置起点’,并在‘固定值’ 的下‘值’中输入一个用户给定的数值.该数 ...
随机推荐
- Win7 和 MAC 系统通过VMware共享文件夹(简单又好用,几乎什么都不用设置)
Win7是Server,Mac是Client,VMware上运行Mac系统 1.在VMware的Options菜单中选择Shared Folders选项 2.选择Always enabled选项 3. ...
- JDBC连接SQL server与ADO.NET连接Sql Server对比
JDBC连接SQL server与ADO.NET连接Sql Server对比 1.JDBC连接SQL server 1)java方面目前有很多驱动能够驱动连接SQL servernet. 主流的有 ...
- 《C++ Primer Plus》学习笔记1
C++ Primer Plus>学习笔记1 第二章.開始学习C++ 1.控制符endl 假设显示字符串时,在字符串中包括换行符,而不是在末尾加上endl,这样能够大大降低输入量:假设是要生成一个 ...
- Linux 软件源设置
版本号:1.0.0-beta 作者:石硕 更新:2014-04-30 15:51:40 ======================================================== ...
- oracle exp实例
exp nam/pwd@ip:1521:databasename log=/tmp/export.log file=/tmp/oracle_database.dmp ./exp cmsuser/x ...
- CSS属性总结——思路很清晰
CSS 属性总结 CSS的属性是用来改变文档元素的状态的,其中主要改变两方面的东西,即位置.样式,现在我们就将CSS的属性分为定位和样式两方面来总结,知识结构图如下: 用来定位的属性: 在同一 ...
- WCF技术剖析之十一:异步操作在WCF中的应用(下篇)
原文:WCF技术剖析之十一:异步操作在WCF中的应用(下篇) 说完了客户端的异步服务调用(参阅WCF技术剖析之十一:异步操作在WCF中的应用(上篇)),我们在来谈谈服务端如何通过异步的方式为服务提供实 ...
- POJ 2187 Beauty Contest 凸包
Beauty Contest Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 27276 Accepted: 8432 D ...
- Android用surface直接显示yuv数据(二)
上一篇文章主要是參照AwesomePlayer直接用SoftwareRenderer类来显示yuv,为了能用到这个类,不惜依赖了libstagefright.libstagefright_color_ ...
- java对象引用传递和值传递的一些总结
1.对象作为函数的参数传递过去的时候,是以原对象的引用的方式传递的,更改参数对象的值,会影响原来的对象. 2.对象作为函数的返回值的时候,传递过来的也是一个引用传递,更改传递过来的对象的时候,会影响原 ...