如何根据广告的业务要求设计更高效的索引和检索

优采云 发布时间: 2021-07-20 02:05

  如何根据广告的业务要求设计更高效的索引和检索

  在竞争性广告中,大量中小广告主的搜索规模需要很高的计算效率。如何根据广告的业务需求设计更高效的索引和检索技术是竞争广告系统要解决的关键问题。

  要结合广告检索的具体需求,重点研究布尔表达式检索和相关性检索两种场景下的算法

  从定价过程的输入可以看出,对于一个以CPC结算的竞价广告系统,首先需要得到候选广告集合,计算每个候选的点击率,对应投标广告中最关键的两个计算问题。 , 广告检索和广告排序

  在竞价广告中,根据不同阶段发生的点击和转化操作,根据 eCPM 对广告进行排序

  eCPM 可以分解为点击率和点击价值的乘积,

  搜索广告系统

  搜索广告与一般广告网络的主要区别在于上下文信息很强,用户标签的作用受到很大限制。搜索广告的检索过程一般不需要考虑用户的影响,上下文信息是通过用户输入实时查询和获取的,所以线下受众定位的过程基本可以忽略

  查询扩展

  需求方需要通过关键词扩容获得更多流量,供应商需要借此实现更多流量,加大竞价力度

  基于推荐的方法:

  如果将用户在一个会话中的查询视为一组具有相同目的的活动,则可以通过推荐技术在矩阵(会话,查询)矩阵上生成相同的关键词。此方法使用搜索日志数据,

  给定一组用户会话和一组关键词,可以生成相应的强交互矩阵。如果用户搜索过某个关键词,矩阵的对应元素会设置一个对应的交互值,比如用户在一段时间内搜索该词的次数

  显然,这个矩阵中的大部分单元格都是空白的,但这并不意味着用户搜索该词的可能性为零

  推荐的基本任务是根据这个矩阵中的已知元素值,可预测地填充那些历史上没有观察到的单元。

  基于主题模型的方法:

  除了使用搜索到的日志数据,一般文档数据也可以用于查询扩展。这种方法本质上是利用文档主题模型将一个查询扩展到其他具有相似主题的查询

  基于历史影响的方法:

  利用广告历史eCPM数据挖掘效果更好的相关查询,因为广告主在选择关键词出价时,一般会选择多个组。如果从历史数据中发现,一些关键词对于某些特定的广告客户,eCPM较高,因此应该记录这些结果良好的查询组。之后,当另一个广告商也选择了关键词之一时,它可以根据这些历史记录自动进行。记录其他查询结果更好

  广告展示位置

  广告投放是指搜索引擎广告中确定北区和东区的广告数量问题

  考虑到用户体验,有必要限制北区的广告数量。因此,这是一个典型的有约束的优化问题。约束是一段时间内北区整体的广告数量,优化目标是搜索广告系统的整体收入。在广告投放前的排序过程中,比较的是单个广告,但这里的优化需要处理一组广告,需要考虑位置因素

  广告网络

  广告网络的成本就是对媒体资源的分减。

  广告投放的决策过程:

  服务器接受前端用户访问触发的广告请求,首先根据上下文信息和用户标识从页面标签和用户标签中找出对应的上下文标签和用户标签,然后使用这些标签和其他一些广告请求条件从广告中找出符合要求的广告候选集,最后使用CTR预测模型计算所有候选广告的eCPM

  根据eCPM排名选择中标的广告返回上一阶段完成投放

  短期行为反馈与流计算

  虽然用户行为导向不适合搜索引擎,但如果可以快速处理会话中的一系列用户查询,仍然有助于准确理解用户意图。除了这种短期的用户行为反馈,广告业务中还有一些场景需要快速处理在线日志

  实现反作弊、实时计费、短期用户标签和短期动态功能

  MapReduce 使用分布式文件系统尽可能调度计算

  流计算就是在服务器之间调度数据来完成计算

  广告搜索

  检索布尔表达式

  广告检索与普通搜索引擎检索的第一个区别是布尔表达式的检索问题。在以受众为导向的销售方式下,一个广告文件不再可以看作是一个BoW,而应该看作是一个目标条件的组合。合成布尔表达式,

  布尔表达式检索问题有两个特点。这两个特性是设计算法的重要基础。首先,当广告请求的目标标签满足某个 Conjunction 时,它必须满足该 Conjunction 的所有广告。

  相关性搜索

  在长查询检索的情况下,我们实际上希望查询和广告候选之间的相似度尽可能高,但是文档中是否出现任何关键词都没有关系。这样,针对文档之间相似度的查询和检索问题就变成了相关查询

  解决相关性检索的基本思想是在检索阶段引入一定的评价函数,根据该函数的评价结果​​确定返回哪些候选。评价函数的设计要求:合理、高效,

  点击率预测

  广告点击率预测的目的是对广告进行排序,但不能应用搜索中的排序问题。点击率预测不能像搜索一样只要求结果排序的正确性,因为点击率需要乘以点击单价才能得到最终排名。 ,

  关于点击率预测的方法,自然会想到基于统计的估计

  但是如果在某个组合中,ad a 没有展示或者点击量很少,那么历史数据就不能用来统计点击率。简单的解决方案是显示广告 a 和已显示的广告。类似于a·,那么a的点击率可以估计接近a·,

  大数据机器学习问题往往需要迭代解决,Hadoop上的MapReduce已经成为范式约束。每次迭代都需要由一个 MapReduce Hadoop 作业完成。 Map读取训练数据和模型,并将数据分成块。在集合上计算统计,Reduce聚合统计平台并更新模型。由于从磁盘读取训练数据时map会产生大量的I/O,因此在Hadoop平台上一次迭代的成本往往非常昂贵,单轮迭代时间无法优化。如果要减少模型训练的时间,只能减少模型训练的次数。这就引出了以下业界常用的模型训练思路:

  如果能降低每次迭代的成本,模型训练的总时间也能大大优化,于是出现了Spark这样的平台,它是一个将数据集缓存在分布式内存中的计算平台。如果数据集的规模可以在内存中控制,那么还是使用MapReduce范式来解决问题,因为每次迭代不需要通过磁盘I/o读取,大大减少了单次迭代的时间

  点击率模型的校准

  点击率预测问题的数据挑战之一是正负样本严重不平衡,尤其是当展示广告的点击率只有千分之几时。

  点击率模型的特点

  点击率预测问题的主要挑战在于,如果模型能够捕捉到高度动态的市场信号,就达到了更准确预测的目的。

  静态特征:

  静态特征是某些标签的值或上下文和用户标签的特征组合,以及特定广告与用户的匹配程度

  动态特性:

  当某个组合特征被触发时,我们不再用1,而是用这个组合历史上一段时间的点击率作为它的特征值

  可以理解为历史点击率作为一个动态特征:我们最终要预测的是某个(a, u, c)上的点击率,以及特征的组合( a, u, c) 点击率可以看作是关于最终目标的弱决策者。通过融合这些特征组合对应的弱决策者,可以更容易地进行预测,

  位置偏差

  如何去除位置等因素的影响?

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线