Ad targeting原理

流程:倒排、召回、粗排、精排、混排等。

bitmap介绍:在建立用户画像时,存在性能问题(如本可使用mysql一条条记录,但随着用户标签越来越多,大量数据的去重和统计怎么做?),方案(用户标签用bitmap存,一位代表一种标签,但一个用户一个bitmap,成百上千标签也很大啊?可以反着来,让一个bitmap代表一个标签,一个标签对应多个用户。)
这样实现去重和统计就一目了然,作交集也更方便。

EWAHCompressedBitmap简介
使用long数组,一个long64bit(称word),初始化只有word0(存跨度信息) word1 word2 word3 ,当都有数后会动态扩容增加word4(存跨度信息) word5 word6 word7,若此时要插入400000,可直接写入word5中。存跨度信息的word高32位存后面有多少个连续的word,低32位存当前word跨了多少个空word。若再插入400003,先看word0算出来不在word1到word3里面,再在word4算出来能放在word5里面。

Ad Targeting是广告投放引擎的在线服务,有广告定向检索、广告流控、广告频控等功能,性能要求高。

定向:只有满足定向条件的用户才能投放该广告主的广告。
频控:如dislike后,两周不再投该广告。
流控:控制在投广告上下线,如当cost大于预算,计费告诉流控,流控模块向targeting发消息,下线该广告。

targeting粗选模型:recall2send(将原先的随机截断3w个广告修改成了根据模型粗选最优的3w个广告)。

总之,targeting就是根据规则过滤出广告,并将选出的广告传给下游的召回模型。过滤分为正排和倒排两种:
正排:是个二重循环,针对每个定向条件的每个value判断当前请求是否满足,计算量较大。
倒排:构建倒排索引,针对每个定向条件的每个value构建倒排表,同时进行bitmap优化,当请求到来后直接取出value值对应的bitmap过滤。

在这里插入图片描述

构建倒排 主要流程分为定向倒排,频控倒排,流控倒排。
定向倒排的结果是:fied->value->bitmap。

在这里插入图片描述

频控倒排:
主要为用户考虑,adtargeting使用adarbiter构建好的频控规则过滤广告,Arbiter会解析用户历史,根据 rit、客户端版本号等条件,以adfilter形式生成Dislike过滤规则、频控过滤信息、样式过滤信息、风险控制信息等。

流控倒排:
流控过滤也实现为倒排索引,流量控制主要为广告主考虑,让预算消耗的更加合理,广告检索时,检索结果会经过流控倒排,过滤掉被流控下线或限速的广告,以此实现流控过滤逻辑。

例如,我们要从3000w的候选集里面选3个广告,可以拆解为从3000w候选集里选3000个广告,然后从3000个广告里选300个广告,再从300个广告里面选3个广告。

这里的3000w->3000,3000->300,300->3在广告系统里分别对应的就是召回、粗排和精排。

召回的容错率较精排更宽容,但对性能的要求也更高。
- 召回层的特点是数据量大、速度快、模型简单、特征较少。
- 排序层的特点是数据量小、排序精准、模型复杂、特征较多。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

成长是自己的事

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值