本章主要对搜索广告的业务进行介绍,搜索广告模块可以分为广告检索、广告排序、流量分配三大子模块。
graph LR;
A(搜索广告)-.->B[广告检索]
A-.->C[广告排序]
A-.->D[流量分配]
B -.-> E1[广告索引]
B -.-> E2[广告匹配]
C -.-> H[ML方法预估点击率]
E2 -.-> G[分词,查询纠错,查询扩张等...]
E1 -.-> F[键值对索引]
classDef className fill:#f9f,stroke:#333,stroke-width:4px;
class B,C,D className;
style A fill:#ccf,stroke:#f66,stroke-width:2px,stroke-dasharray: 5, 5
广告检索
一般来说,广告检索需要经过三个步骤,广告分析,关键字分析和相关性匹配。
广告分析
- 生成倒排索引
广告的倒排索引指<竞价词,广告ID列表>这样的键值对。竞价词通常有广告商自行定义和广告平台生成两种方式。
- 抽取广告特征
查询分析(关键字分析)
- 对于用户输入内容,根据其输入字符串的长短,有不同的处理方式。
- 对于长串来说,重点在于分词,提取关键词汇。
- 对于短串来说,终点在于消除歧义。常根据用户的行为分析,和上下文搜索信息进行消歧处理。
- 查询分析的重点:查询扩展(扩大召回率)
- 用来做查询扩展的技术包括,topic model、语意字典扩充、事先构造本体扩充以及通过query-ad链接分析查询相似度做关键字聚类的方法等等。
- 相关性匹配:精确匹配/模糊匹配
广告排序
通常,广告系统会按照ECPM(Effective Cost Per Mille,指的是每一千次展现可以获得的广告收入)降序排列广告候选集,然后将排序靠前的广告展现出来。
其中ECPM正比于点击率CTR
如何预测CTR?—-逻辑回归LR
将广告特征处理为0,1向量作为输入,通过逻辑回归函数对其进行CTR预测。由于单个向量维度过高,为了防止过拟合,需要加入正则项。常用L1正则
- L1 VS L2
- L2正则,可以防止得到单维绝对值过高的w,从而防止模型过拟合。L1则更加激进,不仅可以防止出现单维绝对值过高,还能使得大量特征的权重为0,从而起到特征选择的作用
- 逻辑回归
- 之前对极大似然法理解一直不深,贴个链接以后有需要的话推一下子~嘻嘻 逻辑回归推导
相似度预估CTR方式
- 广告和查询字相似度
- 广告和查询关键字的共现词个数
- 广告和查询关键字的cosine距离、KL距离、编辑距离等
- 语义相似度
- 广告本身的特征,如广告的历史CTR、历史展现、广告对于商品的价格、广告的字数、广告所包含的词语等。
- 查询本身的特征,如查询关键字历史的广告CTR、历史展现、查询所包含的词语等。
- 相似广告的特征,比如与当前广告相似的广告的历史CTR等特征,以及其与当前广告的相似度。
- 相似查询的特征,比如与当前查询相似的查询的历史CTR等特征,以及其与当前查询的相似度。
对于LR来说,需要把连续的特征转化为0/1离散值,常用的方式有等距划分和等频划分
评估标准
评估标准–>AUC
若正样本数为M个,负样本数为N个,计算AUC的开销为M*N。
样本集过多的情况下,可以通过排序的方式减少AUC计算复杂度。(这块没看懂 呜呜呜)
延伸
知乎上看到一个广告计算中特征工程的帖子,先mark一下~
广告主推荐工具
对于广告主来说,他们关注的重点就是竞价词,竞价词作为被推荐的关键词汇,不仅要保证其能准确定位,还要关注“推荐被采用以后的效果”。
关于竞价词的推荐,有主动推荐,和被动推荐两种方式。主动推荐指广告平台直接替广告商生成竞价词,被动推荐指广告商参与指定部分竞价词。
关于竞价词的匹配,一种可以叫做精确匹配,一种可以叫做模糊匹配。
如果要找到推荐给广告主的所有候选词,需要计算广告主跟候选词全集的相关度,然后排序,即找到<广告主,候选词>的所有打分,然后找到最高的N个。
- 广告主到中间节点的边的归一化权重,中间节点到候选词的边的归一化权重。主要是文本相关性,计算相似度的方式如Cosine距离、欧式距离、KL距离、Jaccard系数、Dice系数、Pearson系数……等等。
- 根据中间节点出度、入度等信息,计算中间节点的调整系数,结合第一步的相关性,计算出:广告主1,通过一个中间节点,到一个候选词的分数;即<广告主1,中间节点,候选词>的分数。
- 根据<广告主1,中间节点,候选词>的数据,固定一个候选词(比如是候选词1),综合所有中间节点,计算所有的<广告主1,候选词1>分数。循环计算,直至算完所有的候选词集合,获得<广告主1,候选词>打分列表。
- 根据分数排序,获得最前面的N个词。