广告中的去重选择

广告中的去重选择

在广告展示策略中,有一些去重的需求。本文中介绍一个去重中的细节问题。

举一个广告主去重的例子。如果在页面上一次可以展示三个广告,如果我们展示的广告中有两上广告是同一个广告主的,那么广告主会很不开心。因为他会感觉自己的展示次数是虚的,对他来讲是一次展示,但给他的报表里却说是两次。

再举一个素材去重的例子。如果一个用户在网页浏览时,看到大量相似素材非常接近的广告,他会有点反感,并且通常不会去点击多个相似素材的广告,这对广告主,广告受众,广告平台都是不利的。

看到这个问题,第一反应会是这算什么问题呀,简单去重一下不就可以吗?是的,去重一下是可以解决,但这是最优解吗?

我举一个例子说明,下图中的每一个块代表一个候选广告,一个广告有两个属性,用两个颜色表示,相同属性中相同颜色不能重复,一共需要2个广告。

现在看简单去重的逻辑,我们先选择了广告1,广告1的第一个属性(深棕色)与广告2的第一个属性冲突,广告1的第二个属性(深蓝色)与广告3第二个属性冲突。所以广告1只能与广告4搭配,它们两个的价值之和为9+1=10。

而换一个思路,不一定要选择第一个广告后去重,那么我们选择广告2和广告3,它们的价值之和是8+7=15。也就是说简单的去重逻辑不是最优策略。

有了上述的问题,我们将它形式化成一个算法问题。有N个候选广告,每个广告一次展示的价值为Vi (i=[1, … N]),N个候选广告已经按价值排序,一次展示需要K个广告。现要找出K个价值之和最大的广告。

再对上面的问题进行一点解释,候选广告已经按价值排序,这是广告系统中的逻辑决定的。

看完问题之后,第一反应应该是这不就是0/1背包问题吗?但仔细想一下,与0/1背包问题还是有点不一样,1. 0/1背包问题中的weight在这里是相同的,一个广告就占一个展示的位置,广告与广告所占的空间相同(我们现在正在搞不相素材规格的混排问题,就不发散了),但这个区别只是说它是0/1背包问题的一个特例。2. N个候选已经按价值排序过了,按价值排序了,那么就可以提前剪枝了。

Talk is cheap, Show me the Code

AD_COUNT = ad_list.size();

CURRENT_MAX_VALUE = 0;

REQUIRED_AD_COUNT = 4;

FETCH_LIST = []

FindMaxValue(index, sum_value, fetch_list)

if index >= AD_COUNT

if sum_value > CURRENT_MAX_VALUE

CURRENT_MAX_VALUE = sum_value

FETCH_LIST = fetch_list;

return ;

if fetch_list.size() == REQUIRED_AD_COUNT

if sum_value > CURRENT_MAX_VALUE

CURRENT_MAX_VALUE = sum_value

FETCH_LIST = fetch_list;

return ;

if (Pruning(index, fetch_count, sum_value))

return ;

value = ad_list[index].value;

copy_sum_value = sum_value;

copy_index = index

copy_fetch_list = fetch_list.deep_copy();

FindMaxValue(index + 1, sum_value, fetch_list);

copy_sum_value += value;

copy_fetch_list fetch_list.append(index);

copy_index += 1;

FindMaxValue(copy_index, copy_sum_value, copy_fetch_list);

Pruning(index, fetch_count sum_value)

int max_value = sum_value;

remain_count = REQUIRED_AD_COUNT - fetch_count;

for i = index to remain_count

if index >= AD_COUNT &&

max_value < CURRENT_MAX_VALUE

return true;

max_value += ad_list[i].value;

if max_value < CURRENT_MAX_VALUE

return true;

return false;

时间: 2024-08-17 15:36:53

广告中的去重选择的相关文章

合约广告中的流量分配算法

简介 合约广告是一种基于合约的广告模式,在线广告中的一种主流方式是担保式投放(Guaranteed Delivery,GD).GD是一种量优于质的广告投放方式,需要保证广告主能够获得在合约中约定的受众用户的流量.GD中,媒体的流量按照属性划分,媒体要给不同的广告主按照合同分配约定好的流量.Ad Server的准则是希望在每一次展现满足多个合约时,选择合适的广告主,以使得每个广告主效果最好,同时能够更有效的分配流量.如下图所示,supply为媒体方,提供流量,媒体的流量可以按照性别.年龄.地域划分

诚信的cpm广告联盟该怎么选择

诚信的cpm广告联盟该怎么选择?58传媒广告联盟介绍说,在目前我国的互联网行业发展中,新站长在不断的崛起,这也就意味着老站长在不断的衰败,而老站长的衰败并不是一天两天造成的,而是其长期积累形成的,将错就错的心理导致的. 除此之外,58传媒广告联盟认为,这里的沟通不仅仅是指网站内部的沟通,也包括网站与网站之间的沟通,以及网站与网民之间的沟通.对于网站与网站之间的沟通就要求站长们要网站的建设发展过程中多与其他网站站长进行合作交流,取人之长补己之短,而对于网站与网民之间的沟通就要求网站站长要在对网站的

js中数组去重的几种方法

js中数组去重的几种方法         1.遍历数组,一一比较,比较到相同的就删除后面的                 function unique(arr){                         for(var i=0;i<arr.length;i++){                                 for(var j=i+1;j<arr.length;j++){                                         if(ar

解决QML开发中ComboBox中一个已选择项没有清除的问题

解决QML开发中ComboBox中一个已选择项没有清除的问题 近期使用QML开发一个项目.须要使用ComboBox进行显示.当进行一个操作时,须要向ComboBox加入一个元素,当进行另外一个操作时.须要清除ComboBox里面的元素. 可是在操作的过程中,出现了一个诡异的现象--ComboBox里面的已选择项并没有清除. 以下是程序的截图,能够看到.ComboBox中已选择项并没有删除.可是ComboBox中的候选项已经删除了. 我在QTCN上进行提问.后面再大家的努力下,最终把这个问题攻克了

漫谈redis在运维数据分析中的去重统计方式

今天,我和大家分享下redis在运维数据分析中的去重统计方式.为了避免混淆,本文中对于redis的数据结构做如下约定: SET:saddkey member ZSET:zaddkeyscoremember HYPERLOGLOG:pfaddkeyelement STRING:setbitkeyoffset value 名词约定: 维度:比如版本.操作系统类型.操作系统版本.运营商.设备型号.网络类型等 复合维度:由两个或多个维度交错产生的维度,比如某个版本下的某个设备型号. 去重统计在数据化运维

【CSWS2014 Summer School】互联网广告中的匹配和排序算法-蒋龙(下)

[CSWS2014 Summer School]互联网广告中的匹配和排序算法-蒋龙(上) Fig19,用到了矩阵,这个我没有听太明白,蒋博士也没有详细说明.不过可以明确的一点就是,我们常说的K-means.聚类等技术都是有实际应用价值的,而且我们日常就在使用. Fig20,这个定向广告,就更加接近推荐系统了,根据用户的特征,来投放特定的广告,这样回报率会高一点. Fig21,这里定向方式,也就是一些特征,可以利用用户的人口属性.地理位置.上网的行为等等.这个重定向,其实大家每天都在接受着重定向广

OC中NSSet去重细节

我们都知道,NSSet在存储数据时,不允许存储相同数据?那么,这里的相同该如何理解呢? 很多人都简单的理解为按照其存储对象的内存地址进行评判.其实不然.经过个人实验证明:当类型为NSString,NSNumber..时,依然会比较其值是否相同,如果相同,依然会被去除. 其评判依据类似与isEqualTo 或者 isEqualToString方法:即先比较内存是否相等,然后比较其值是否相等. OC中NSSet去重细节,布布扣,bubuko.com

dorado中的creationType选择类型

新建model层中 DataType类型的时候,有几个属性creationType,matchType时候需要在右侧选择对应的javaBean,这是时候要在弹出的对话框搜索. 此时,只要搜索javaBean的名字就好了,千万不要搜索路径,不然花一百年都找不到的. dorado中的creationType选择类型

解决:IE中不能自动选择UTF-8编码的解决方法

IE中不能自动选择UTF-8编码的解决办法 在windows操作系统上使用IE作为浏览器时.常常会发生这样的问题:在浏览使用UTF-8编码的网页时,浏览器无法自动侦测(即没有设定“自动选择”编码格式时)该页面所用的编码.即使网页已经声明过编码格式: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> ,由此造成某些含有中文UTF-8编码的页面产生空白输出. 问题分析: