1700540860
1700540861
(c)程序化交易广告
1700540862
1700540863
图14.2 常见的广告类型
1700540864
1700540865
不同类型的广告在广告系统设计上有所区别,比如合约广告一般不需要考虑广告的实际效果,所以没有CTR模块;程序化交易广告需要对接广告交易平台等第三方信息,所以需要更多的数据对接模块。但总体来说,广告系统的整体架构是通用的。图14.3是一个简化的广告系统框架,主要展示了与算法相关的模块,而对其他系统模块有所省略。系统由分布式计算平台、流式计算平台和广告投放机三大部分组成。分布式计算平台负责根据海量的投放日志进行批处理计算,得到算法分析和建模的结果,例如用户画像、点击率/转化率建模等算法都是在分布式计算平台上运行的,并将得到的用户标签、模型特征和参数等数据更新至数据库中。流式计算平台负责收集和计算有实时需求的用户标签、特征、点击反馈等数据,并将它们实时地同步到数据库中去。当一个请求到来时,广告投放机根据请求对应的用户、上下文等信息以及数据库当前的状态进行广告检索、排序和选择。一次广告投放完成之后,相关的记录将被流式计算平台及时地获取并处理,同时它们也被收集到投放日志中,供分布式计算平台稍后使用。
1700540866
1700540867
广告系统的各个算法模块,不仅与Spark、HDFS、Kafka等大数据工具息息相关,更涉及大量机器学习的知识。如果要成为广告算法工程师,在打牢算法基础的同时,还需要对广告的商业模型,各模块的业务功能有较深的了解。下面就对广告系统各个模块涉及的算法和机器学习知识进行逐一介绍。
1700540868
1700540869
1700540870
1700540871
1700540872
图14.3 广告系统架构图
1700540873
1700540874
■ 用户画像
1700540875
1700540876
用户画像是计算广告学的核心组成部分之一,在合约广告、搜索广告、程序化交易广告等产品形式中广泛存在。在合约广告中,广告主可以根据自身品牌的受众群体指定合适的定向条件,以节省成本;搜索广告和程序化交易广告可以根据用户的画像对该用户对各广告的点击率和转化率进行更精确的预估,从而优化整体的投放效果。
1700540877
1700540878
监督学习和非监督学习技术在用户画像中都得到了广泛的应用。例如,性别预测问题就是一个典型的监督学习问题。我们根据用户填写的性别信息可以得到一些用户的性别,而对于另外一些用户我们无法得知他们的准确性别,但是有些广告主要求针对特定的性别进行品牌推广。例如,一个主要经营男装的广告主可能需要对广告的受众定向设为男性。为了满足广告主的类似需求,我们需要通过用户过去的行为和其他已有特征对用户性别进行建模和预测,比如通过某个用户经常观看足球、拳击等项目的历史行为,预测出他是男性的概率更高,对于其他的用户标签也是类似的。只要我们有了足够多的标注样本,都可以用监督学习的方式对用户标签进行建模和预测。
1700540879
1700540880
监督学习的模型可以采用逻辑回归、支持向量机、决策树、随机森林、梯度提升决策树、前向神经网络等,采用的特征因具体的业务而异。例如,在搜索引擎中,可以根据用户的搜索和浏览历史来对用户的性别进行预测,从而实现更精准的搜索广告投放。参考文献[45]利用一个大型网站的历史访问数据进行实验,输入的特征为该用户搜索和浏览过的历史网页文本,其中的每个词作为单独的一维特征,最终分类器学习到的较为显著的文本特征如图14.4所示。可以发现,在预测女性时,较为重要的特征是孩子、食物、家庭等;而对于男性来说,较为显著的特征是体育、车、因特网等。所以,对特征的学习结果还是比较符合直觉的。
1700540881
1700540882
1700540883
1700540884
1700540885
图14.4 男性和女性的文本特征
1700540886
1700540887
另外一大类用户画像方法是采用非监督学习。非监督学习的目的是发现数据本身存在的规律,并不需要使用带标注的数据。根据用户以往的行为和已有的特征,我们可以将用户聚为一些特定的类别。对于每一类用户,虽然很难描述他们所对应的确切标签,但是可以知道他们拥有很高的相似度,并据此预期他们对广告具有某种相似的兴趣。这样,通过应用聚类技术,并将得到的聚类结果用于点击率预估、广告排序与选择,通常能够带来明显的效果提升。常用的聚类方法有K均值、高斯混合模型、主题模型等,它们都属于非监督学习的范畴。
1700540888
1700540889
参考文献[46]是一个用非监督学习的方法挖掘用户兴趣主题的例子。该论文结合了用户在移动端的搜索内容和上下文特征(时间、地点等),利用主题模型对用户的行为数据进行建模。图14.5展示了两个挖掘出来的主题实例,其中左边的主题可以理解为在工作日的早晨搜索股票的相关信息;右边的主题可以理解为在周末的晚上搜索聚会的酒吧;IsRelevant表示该特征的取值与我们对主题的解读是否相关,这是一种人工的判断。可以发现,绝大多数的特征都是与主题相关的,说明主题挖掘的效果较好。
1700540890
1700540891
1700540892
1700540893
1700540894
图14.5 非监督学习挖掘用户兴趣主题
1700540895
1700540896
■ 点击率预估
1700540897
1700540898
点击率预估是效果类广告中最重要的算法模块之一。为了优化广告效果,首先要对广告展示之后的效果(即点击率、转化率等)有一个准确的判断,才能据此进行合理的选择与投放。在搜索广告中,一般通过广告的点击数量进行效果的评估和结算,因此点击率预估的准确性在效果优化中起到非常关键的作用。如果最终评估效果的指标是转化,那么还需要同时对点击之后的转化率进行估计。在很多场景中,实际的转化数据非常稀少,很难直接利用转化数据对模型进行训练,所以经常退而求其次,对二次跳转、加入购物车等行为进行建模。对转化、二次跳转、加入购物车等行为进行建模的原理与点击率预估十分类似,因此仅以点击率预估为例对算法流程以及常用模型进行介绍。
1700540899
1700540900
点击率预估可以抽象成为一个二分类问题。它所解决的问题是:给定一个请求以及与该请求所匹配的广告,预测广告展示之后获得点击的概率。标注可以从实际的投放数据中获得,在历史的投放结果中,获得了点击的记录标注为1,其余标注为0。图14.6为点击率预估模型中的一条训练/测试数据记录的示意[47]。左边的方框中列出了这条数据记录对应的特征,包括与用户(User tags)、上下文(Date,City,Ad exchange,Domain,…)、广告主(Ad Id)、创意(Ad size)等相关的特征。在训练记录中,如果这条记录最终发生了点击,则记录为1,否则记录为0;在预测时,我们需要预测这条记录发生点击的概率,即CTR(Click-Through Rate)。
1700540901
1700540902
1700540903
1700540904
1700540905
图14.6 一条点击率预估的数据记录
1700540906
1700540907
点击率预估的公开数据集可以参见2014年Criteo(全球领先的DSP公司)在Kaggle上发起的CTR预估竞赛。训练集是连续7天的Criteo广告展示数据,里面包含点击和非点击数据,总共4000+万条,其中对负样本进行了不同采样率的采样;测试集是紧接着训练集之后一天的广告展示数据,总共600+万条,采样方式和训练集一致。
1700540908
1700540909
点击率预估主要分为样本采样、特征抽取与组合、模型训练、模型评估等步骤,下面分别进行介绍。
[
上一页 ]
[ :1.70054086e+09 ]
[
下一页 ]