广告行业中那些趣事系列1:广告统一兴趣建模流程

摘要:这是广告系列的第一篇。广告的核心是服务广告主,为广告主圈定对应的人群从而达到好的广告转化效果。而在其中起到桥梁作用的就是标签。广告主会根据自身的性质选定一类或几类有明显特点的人群,这里用标签表示。而我们要做的就是给用户打上标签,然后提供给广告主使用。广告主选择标签,而标签后面则代表人群。本文基于实战项目介绍如何为广告主圈定人群以及如何刻画用户对标签的兴趣度得分。

本系列文章主要结合实际项目围绕广告行业出发,涉及统一兴趣建模、NLP文本理解、图计算等等内容,会持续更新。对相关内容感兴趣的小伙伴可以关注,互相探讨学习。

文章目录

  • 更通俗的理解为广告主圈合适的人群
  • 构建广告主和用户之间的联系
  • 如何刻画用户对标签的兴趣度

01 更通俗的理解为广告主圈合适的人群

图 1 为广告主圈人群

广告主是干什么的?通俗的理解有点像甲方。广告主说我现在想投入1W块提升下自身的影响力,这里的提升影响力可以是增加点击人数、下载人数、注册人数等等。

有甲方那肯定就有乙方。乙方就是我们移动端厂商。甲方有钱,而我们乙方则可以说是有展示广告的资源。过去广告行业可能是这样的,有个广告主想打广告,看到有栋大楼有个很显眼的位置空着,然后广告主就找到大楼的拥有者说,我出1W块,想在你这个空着的位置打个广告,然后大楼的拥有者收了钱,在上面贴了广告。

随着移动互联网时代的到来,大家花在手机上的时间越来越多。而对于移动厂商来说,卖出的这X亿部手机都可以是移动的广告展示位。区别在于什么?以前的广告就贴在那栋楼上,来来往往的人都能看到。而现在的广告是”千人千面”。同一时刻小A的手机上展示的是传奇游戏的广告,而小B的手机上可能展示的是东方仙侠的广告。对应到图1中移动厂商就提供了中间那个展示广告的大盘子X亿部手机终端。

如何做到给不同的人展示不同的广告呢?这就是我们标签团队要做的事情了。我们需要构建广告主和手机用户之间的联系。对应到图1中,我们要将大盘人群根据不同的兴趣爱好给用户打上不同的兴趣标签。

02 构建广告主和用户之间的联系

图 2 广告主和用户联系图

构建广告主和用户之间的联系主要经过以下五个步骤:

1、构建一个兴趣类目体系

这个兴趣类目体系就是广告主选择人群的一个标准。兴趣类目体系需要覆盖所有广告主需求。现在我们可能存在这样一个简单的兴趣类目体系:

其中传奇游戏标签就代表对传奇这一类游戏有兴趣的人群。

2、建立用户操作行为的关联user-item

用户对手机的所有操作行为都属于item,比如用户登录app、登录网址等等都属于用户操作行为。这里用户操作手机行为用user-item来表示。user-item的数据来源主要是通过手机终端埋点获取。实际项目中数据源可能会用到app、ad、site、query_word、news、微信小程序等等。

3、建立数据源和标签的关联item-tag

其实就是给数据源打上标签。拿app举例,比如成龙大哥代言的一刀传奇我们可以打上传奇游戏标签,而这些标签的制定都是在第一步兴趣类目体系中完成的。

给数据源打标可以通过人工标注或者模型打标。目前项目中app打标采用的是人工打标,主要原因是app数量较少,通过人工打标即可完成app识别。人工标注app也存在很多问题,比如同一个app不同的人由于社会阅历、经验等原因会打上不同的标注。如何更精准的给item打标也是目前项目中一个非常棘手的问题,这个后续会总结一些项目经验和大家一起探讨。

而新闻资讯news和用户搜索词query主要通过模型打标,主要使用的是NLP里大名鼎鼎的BERT模型。这里打个小小的广告,广告系列的第二篇文章会主要讲一下在实际项目中如何使用BERT来给数据源打标,有兴趣的小伙伴可以关注一波。

4、建立用户和标签的关联user-tag

根据user-item和item-tag我们可以构建user-tag的关联。有的小伙伴可能要问怎么做?将上面两种关系分别持久化到hive表中join一下就能拿到user-tag的关联了。通过上面四个步骤我们已经得到人群和标签的关联了。

5、广告主从标签池中选择标签圈定人群

广告主会根据自身的需求选择一个或者多个标签,而这些标签背后都有各自对应的人群。这里人群可能存在重叠,也就是说有人可能既喜欢传奇游戏,还喜欢西方魔幻游戏。

广告主和标签的关系是多对多的关系,一个广告主可以选择一个或者多个标签,而一个标签也可能被一个或者多个广告主选中。

总结下整个流程:首先我们会制定一个兴趣类目体系;然后分别构建user-item和item-tag的关联;接着根据user-item和item-tag进行join即可拿到user-tag的关系。到这里我们已经给用户打上对应的标签了;最后广告主会根据自己的需求去标签池中选择标签,选择标签就是选择人群,最终完成了给广告主圈人群的整个流程。

03 如何刻画用户对标签的兴趣度

通过上述部分我们已经生产出了user-tag的关联。现在有个新的问题,假如现在有个成龙大哥代言的一刀传奇app,现在有100W人登录这个app,按照上述流程我们会给这100W人打上传奇游戏这个标签。有个对传奇游戏标签感兴趣的广告主想打广告,而广告主仅仅需要曝光50W人。那么如何从这100W人群中选择需要曝光的50W人群?

因为广告展示位本身是有价值的,有效曝光(曝光并且有转化)会为我们手机厂商带来广告收益,而无效曝光(曝光无转化效果)则会让我们白白浪费资源,所以我们希望选中的50W人会有更好的曝光转化效果。广告的转化效果越好,广告主就愿意出更多的钱来投广告。

来段题外话,现在广告行业竞争也异常惨烈。一般广告主会同时在多个平台投放广告,并进行对比。如果他在头条或者腾讯都花了1W块,但是腾讯带来的广告效果更好,那广告主为什么不把更多的钱花在腾讯呢?所以如何选出广告转化效果更好的这50W人群,这就需要刻画用户对传奇标签的兴趣度得分,选择得分高的用户进行曝光。

如何刻画用户的兴趣度也是该篇的重点内容。通过统一建模流程我们可以系统批量的生产标签。

统一建模流程整体架构如下:

图 3 统一建模整体架构

1、如何计算当天用户的兴趣度User-tag(score_daily)

User-tag(score_daily)主要是计算日维度用户u在标签t上的得分。

这里拿app举例,其他数据源item计算流程类似。得分score_daily代表用户u在当天d对标签t的兴趣度,计算公式如下:

该公式主要由三部分组成:

下面分别讲解上述三部分:

1.1、用户u使用app的程度W_behave

这里用户使用app可以是登录次数、登录时长、付费次数等等。

如果对于app行为只看登录时长,那么用户使用app的程度由用户u使用app的时长在所有使用该app的时长排名来决定。W_behave的计算公式如下:

其中MTS_mid表示使用该app的所有用户的时长的中位数。而MTS_u,i表示用户当天使用app的时长(同时修正异常值),单位为秒。TS_u,i表示用户使用app的时长。
MTS_u,i计算公式如下:

min中后半部分表示使用该app的所有用户的时长均值加上3倍的标准差。

有些小伙伴可能要问W_behave如何修正异常值?W_behave公式中min部分的取值为0或1。当出现异常数据时(最明显的是用户u使用app的时长大于1天)会设置为1,因为按照日维度计算计算情况下用户一整天使用app,但不可能大于1天。公式中max部分取值为大于等于0的值。当出现异常值时比如MTS_mid大于1天的时间时log部分会是负数,则会自动置为0。而正常值时则会显示一个正数。

如果觉得上述流程太复杂,那么W_behave通俗简单的理解是分位数。

比如小A当天使用抖音的时长为5个小时,超过了90%的抖音用户,那么我们可以简单的设置W_behave=0.9。

在实际项目中可能使用的是用户的多种操作行为,比如同时使用登录行为和付费行为,这样涉及到不同行为的权重也是不同的。对于游戏类app我们主要看中用户的付费行为,所以付费行为的权重会大于登录行为的权重。

1.2、App本身的重要程度W_importance

这里使用了类似TFIDF的策略,主要目的是对活跃人数多的app进行打压。通俗的理解是如果一个app比如微信很多人都会登录,那么使用这个app去识别某个标签的能力会大大降低,我们就会认为这个app的重要程度很低。而这类app本身对于兴趣标签挖掘意义不大。反过来,有些人数不是那么多的app它更能识别对该类app是否有兴趣。

W_importance的计算公式如下:

其中N代表大盘总的人数,n_i代表某个app的使用人数。举例来说,极端情况下当一个app所有人都使用了,那么它的重要性为0。
还拿抖音举例,假如N代表当天所有使用app的人数为2亿,n_i表示抖音用户为1亿,那么抖音app的重要度W_importance=log(2/1)=log2

1.3、App所属标签的可能性W_tag_possible

设置这个的原因是针对item理解的时候会同时采用人工标注和机器学习模型识别。针对人工识别的app我们会设置为1,而对于通过机器学习模型打标的app我们会设置为概率值(因为使用机器学习模型时通常会输出一个判定为正例的概率值)。

总结下,通过上述一大推猛如虎的操作我们可以得到在app数据源上用户u当天在标签t上的得分score_daily。通过score_daily我们可以很好的刻画当天哪些用户更有广告价值,而这些用户可能会带来更好的广告转化效果。

这里咱们的核心目标永远是广告转化效果,广告转化效果,广告转化效果!重要的事情说三遍。计算用户u当天在标签t上的得分流程对应图3中黄色的方块部分。

2、如何计算一段时间内的用户兴趣度User-tag(score_p_daily)

通过上述我们可以得到用户u在当天标签t上的得分score_daily。但是仅仅考虑当天用户在标签t上行为就决定是不是给用户打上对应的标签是不合理的。

比如有个用户在过去一个月经常登录传奇游戏,但是昨天因为某些原因并没有登录传奇游戏,所以我们就没有给这个用户打上传奇游戏标签,这显然很不合理。反应用户兴趣标签应该考虑一段时间内的行为而不是某一天,所以用户最终的兴趣得分应该是当天用户u在标签t上的得分和最近一段时间上累计的兴趣得分共同来决定。计算公式如下:

其中score_p_d(u,t,d-1)代表前天用户u在一段时间内(一般设置为3-6个月)在标签t上累计的兴趣得分。

score_d(u,t,d)代表昨天当天用户u在标签t的上的得分,也就是上一部分得到的score_daily。α_t代表衰减系数,该值表示当前用户最终兴趣得分在最近一段时间得分和当天用户u在标签t上的得分的一个权衡。α_t的计算公式如下:

举例来说,如果我们认为用户在90天里没有登录某个标签的app,那么我们认为该用户u在标签t上的得分最终降低为0.0001。当降低到0.0001时我们认为用户对该标签已经没有兴趣。

总结一下,刻画用户u在标签t上最终的兴趣得分不仅要看用户当天对标签t的兴趣得分,还要看最近一段时间内累计的兴趣得分。计算score_p_daily流程对应图3中紫色的部分。

3、多个数据源融合

通过上述部分我们可以得到用户u在app数据源上在标签t上的最终兴趣得分,该兴趣得分可以反映用户在一段时间内对该标签的兴趣程度。

实际项目中我们不仅仅会用到app数据源,还会包括新闻资讯news、网址site等等。所以我们需要将不同的数据源的得分进行融合得到在多种数据源下最终的兴趣得分,计算公式如下:

其中weight_i代表数据源i的权重,score_p_daily_i代表用户u在数据源i上累计兴趣得分,将所有数据源上的得分乘以数据源的权重然后累计相加得到最终的兴趣得分。
通过融合多个数据源我们得到了用户在多个数据源下的综合的兴趣得分,我们称为统一兴趣建模流程。

到这里,大功告成。总结一下,通过统一建模流程,我们可以批量生产标签,通过控制底层数据源的标注可以动态的增减标签,更好的满足广告主的需求。

说点轻松的
文章里一直在拿传奇游戏举例子。一个很重要的原因是小时候有幸经历过传奇游戏风靡的时代,还记得那时候想尽一切办法偷偷去网吧上网而被妈妈抓住暴打的样子。那个战法道横行的时代,和公会的小伙伴一起攻打过沙巴克,还有我最喜欢的法师职业。可能是那个年代里大家很难忘记的回忆。也许正是因为这个原因,尽管现在比传奇游戏好玩的游戏有那么多,还是有那么多中年油腻大叔会愿意花很多很多钱去玩传奇游戏。这也是目前我们游戏板块传奇游戏依然是重头角色的原因吧。而我加入标签团队的第一个标签优化任务就是传奇游戏标签。一点感慨,不过是青春罢了。

下一篇会通过使用NLP中BERT模型对资讯news、用户搜索词query进行文本识别,从而给这些数据源进行模型打标。

喜欢本类型文章的小伙伴可以关注我的微信公众号:数据拾光者。有任何干货我会首先发布在微信公众号,还会同步在知乎、头条、简书、csdn等平台。也欢迎小伙伴多交流。如果有问题,可以在微信公众号随时Q我哈。

原文地址:https://www.cnblogs.com/wilson0068/p/12388846.html

时间: 2024-11-09 15:11:40

广告行业中那些趣事系列1:广告统一兴趣建模流程的相关文章

广告行业中那些趣事系列3:NLP中的巨星BERT

摘要:上一篇广告行业中那些趣事系列2:BERT实战NLP文本分类任务(附github源码)通过项目实战讲解了如何使用BERT模型来完成文本分类任务.本篇则从理论的角度讲解BERT模型的前世今生.BERT虽然在模型创新的角度来说并不是非常出色,但它是近几年NLP领域杰出成果的集大成者.BERT大火最重要的原因是效果好,通用性强两大优点.可以说BERT的出现是NLP领域里具有里程碑意义的大事件.本篇主要讲解NLP里面的Word Embedding预训练技术的演化史,从最初的Word2Vec到ELMO

广告行业中那些趣事系列4:详解从配角到C位出道的Transformer

摘要:上一篇广告行业中那些趣事系列3:NLP中的巨星BERT,从理论的角度讲了下NLP中有里程碑意义的BERT模型.BERT具有效果好和通用性强两大优点,其中效果好最主要的原因就是使用了Transformer作为特征抽取器.本篇主要详解下这个从配角到C位出道的Transformer,主要从宏观和微观的角度分析Transformer,讲下它的核心注意力机制Attention,然后以翻译任务举例讲下Transformer是如何进行工作的. 对充满挑战的高薪行业NLP感兴趣的小伙伴可以多多关注.不仅仅

广告行业中那些趣事系列6:BERT线上化ALBERT优化原理及项目实践(附github)

摘要:BERT因为效果好和适用范围广两大优点,所以在NLP领域具有里程碑意义.实际项目中主要使用BERT来做文本分类任务,其实就是给文本打标签.因为原生态BERT预训练模型动辄几百兆甚至上千兆的大小,模型训练速度非常慢,对于BERT模型线上化非常不友好.本篇研究目前比较火的BERT最新派生产品ALBERT来完成BERT线上化服务.ALBERT使用参数减少技术来降低内存消耗从而最终达到提高BERT的训练速度,并且在主要基准测试中均名列前茅,可谓跑的快,还跑的好.希望对需要将BERT线上化感兴趣的小

广告行业中那些趣事系列2:BERT实战NLP文本分类任务(附github源码)

摘要:上一篇广告中那些趣事系列1:广告统一兴趣建模流程,我们了解了如何为广告主圈人群以及如何刻画用户的兴趣度.要想给用户打标签,我们需要构建数据源和标签的关联,也就是item-tag.针对数量较少的app数据源我们可以使用人工打标的方式来识别,但是对于news.用户query等数量较多的数据源则需要通过机器学习模型来进行打标.实际项目中我们使用NLP中鼎鼎大名的BERT模型来进行文本分类. 通过本篇学习,小伙伴们可以迅速上手BERT模型用于文本分类任务.对数据挖掘.数据分析和自然语言处理感兴趣的

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

原作:面包包包包包包 修改:寒小阳 && 龙心尘 时间:2016年2月 出处:http://blog.csdn.net/Breada/article/details/50697030 http://blog.csdn.net/han_xiaoyang/article/details/50697074 声明:版权所有,转载请联系作者并注明出处 1. 引言 提笔写这篇博客,我的内心是惶恐的.原因很简单,作为一个资历尚浅的研究生,是没有资格对计算广告这样一个伟大的行业.领域和学科来评头论足的.之

计算广告小窥[中]这孙子怎么什么都知道

计算广告小窥[中]这孙子怎么什么都知道 原作:面包包包包包包 修改:寒小阳 && 龙心尘 时间:2016年2月 出处:http://blog.csdn.net/breada/article/details/50697030 声明:版权所有,转载请联系作者并注明出处 1. 引言 提笔写这篇博客,我的内心是惶恐的.原因很简单,作为一个资历尚浅的研究生,是没有资格对计算广告这样一个伟大的行业.领域和学科来评头论足的.之所以这么做,一是总结自己已掌握的知识,二是降低同学们的学习成本.本人能力有限,

CPA广告联盟中常说的“WAP量”是什么意思?

经常可以看到很多中小CPA广告联盟在各种平台找渠道,比如:"收pc量,安卓量,ios量,WAP量等"pc,安卓,ios这些常见的名词从本义上就可以知道大致的意思,但是WAP量可能很多对CPA广告联盟不了解的渠道对其认知就比较模糊了!那么CPA广告联盟中常说的"WAP量"是什么意思呢? 要清楚WAP量是什么意思就先弄清楚什么是WAP! WAP(Wireless Application Protocol)无线应用协议是一个开放式标准协议,利用它可以把网络上的信息传送到移

程序化广告交易中的点击率预估

原文:http://www.cnblogs.com/Matrix_Yao/p/4773221.html 程序化广告交易中的点击率预估 指标 广告点击率预估是程序化广告交易框架的非常重要的组件,点击率预估主要有两个层次的指标: 1. 排序指标.排序指标是最基本的指标,它决定了我们有没有能力把最合适的广告找出来去呈现给最合适的用户.这个是变现的基础,从技术上,我们用AUC来度量. 2. 数值指标.数值指标是进一步的指标,是竞价环节进一步优化的基础,一般DSP比较看中这个指标.如果我们对CTR普遍低估

广告行业的大数据处理架构实践

广告行业的大数据处理架构实践 如果您希望阅读更多的大数据机器学习的文章,请关注公众号:QCon大数据机器学习 时间:2015年5月26日 晚20点 讲师介绍:AdMaster技术副总裁,资深大数据技术专家.关注高可靠.高可用.高扩展.高性能系统服务,关注Hadoop/Storm/Spark/ElasticSearch等离线.流式及实时分布式计算技术.曾在联想研究院.百度基础架构部.Carbonite China工作:拥有超过10年云存储.云计算开发及架构工作经验,多年Hadoop实战经验,专注于