目录
一、广告系统与广告引擎介绍
(一)广告系统与广告粗分
(二)广告引擎在广告系统中的重要性分析
二、广告引擎整体架构和工作过程
(一)一般概述
(二)核心功能架构图
三、标签检索:合理使用标签过滤和划分索引空间
四、向量检索:提供智能匹配能力
五、打分排序:用非精准打分结合深度学习模型的精准打分
六、索引精简:在索引构建环节缩小检索空间
离线过滤条件
动态索引更新
增量索引构建
定期清理
参考文章技术
一、广告系统与广告引擎介绍
(一)广告系统与广告粗分
广告系统是一个复杂的软件系统,用于管理、发布和优化广告内容以达到广告主和广告平台的商业目标。这些系统在互联网和其他媒体上广泛使用,以连接广告主(企业或个人推广者)和广告发布者(网站、应用程序、社交媒体等),从而展示广告内容给目标受众。注意广告系统与性能和效率对广告商、用户和互联网公司都具有重大影响。
对于广告的了解可以具体见互联网广告及产品变现认知分析整理_张彦峰ZYF的博客-CSDN博客,
互联网广告通常可以分为两大类:搜索广告和展示广告。
-
搜索广告:搜索广告是与用户的搜索查询相关的广告形式。当用户在搜索引擎上输入关键词或短语时,搜索引擎会在搜索结果页面中显示相关的广告链接,通常位于搜索结果的顶部或侧边。这些广告是以关键词匹配为基础的,广告主出价竞争关键词,以确保他们的广告在相关搜索中显示。搜索广告通常在用户主动寻找信息时出现,因此具有很高的相关性。
-
展示广告:展示广告是用户在浏览网站、使用应用程序或浏览社交媒体时被动看到的广告形式。这些广告可以包括横幅广告、视频广告、原生广告、弹出广告等,它们通常嵌入在网页或应用程序中,而不是由用户搜索触发。展示广告的投放通常是根据广告主的目标受众和兴趣进行定位,而不是像搜索广告那样依赖用户的搜索查询。
展示广告的特点是能够在广告中包含更多的创意元素,如图像、视频和互动元素,以吸引用户的注意力。它们通常用于建立品牌认知度、推广产品和服务,以及吸引潜在客户。
这两种广告形式在互联网广告生态系统中扮演不同的角色,广告主通常根据他们的广告目标和受众来选择使用搜索广告、展示广告或两者结合来推广他们的业务。
(二)广告引擎在广告系统中的重要性分析
广告检索引擎在广告系统中扮演着至关重要的角色,其重要性可以从以下几个方面来分析:
-
广告匹配和选择:广告检索引擎负责从广告库中选取最相关的广告来响应用户的广告请求。这需要高效的广告匹配算法和广告检索机制,以确保用户看到的广告与其兴趣和上下文相关。一个强大的广告检索引擎能够提高广告的点击率和转化率,从而提升广告系统的效益。
-
实时性和低延迟:广告系统需要在极短的时间内响应用户的广告请求,通常在毫秒级别完成。广告检索引擎必须能够高效地搜索广告库,进行广告匹配和选择,然后返回响应。低延迟是为了确保用户不会等待太长时间,提供更好的用户体验。
-
大规模数据处理:广告系统通常面对庞大的广告库和广告请求量,需要处理海量的数据。广告检索引擎必须具备高度可扩展性,以处理大规模数据,同时保持高性能。这可能涉及到分布式计算、数据分片和缓存等技术。
-
实时竞价和拍卖:在广告竞价市场中,广告检索引擎需要协调广告主的出价和广告位的竞争,以选择最佳广告。这需要实时的决策和竞价算法,以最大化广告系统的收入。
-
智能广告投放:现代广告系统不仅仅根据关键词匹配广告,还会利用用户的行为、兴趣和上下文信息来进行智能广告投放。广告检索引擎需要整合大量的数据和机器学习算法,以提供更个性化和精准的广告。
-
广告效果追踪和反馈:广告检索引擎通常需要追踪广告的效果和用户反馈,以帮助广告系统不断优化广告投放策略。这包括监测广告点击、转化和用户互动等数据,并利用这些数据进行实时调整。
总的来说,广告检索引擎是广告系统的核心组件,它直接影响广告的质量、效益和用户体验。因此,广告检索引擎的性能、算法和技术是广告系统成功的关键因素之一。广告系统开发人员和工程师需要不断改进和优化广告检索引擎,以应对不断变化的广告市场和用户需求。
二、广告引擎整体架构和工作过程
(一)一般概述
广告引擎的整体架构和工作过程涉及多个关键组件,下面是一个广告引擎的一般架构和工作流程的概述:
- 数据收集与存储:广告引擎首先需要收集和存储各种数据,包括广告库、用户数据、网站或应用数据等。这些数据用于广告匹配和定位广告目标受众。
- 广告库管理:广告库包含广告主提交的广告内容和相关信息。这些广告通常包括标题、描述、目标链接、关键词和出价等信息。广告库需要经常更新,以反映广告主的新广告和变化。
- 用户数据和行为分析:广告引擎使用用户数据,如搜索历史、兴趣、地理位置等,来了解用户的需求和兴趣。这可以帮助引擎更好地匹配广告。
- 广告请求接收:当用户在搜索引擎上输入查询或在浏览网页或应用时,广告引擎会接收广告请求。这个请求通常包括用户信息、上下文和查询关键词(如果有的话)。
- 广告匹配:广告引擎的核心部分是广告匹配引擎。它使用各种算法和规则来将广告库中的广告与广告请求进行匹配。匹配过程考虑关键词、用户兴趣、广告出价等因素,以确定哪些广告最相关,最有可能吸引用户的注意。
- 出价和拍卖:如果广告系统涉及到广告拍卖,广告匹配后的广告将被提交到拍卖系统,广告主的出价和相关性将决定哪些广告将在广告位上显示。广告拍卖系统会选择最高出价且相关性合适的广告。
- 广告展示:选中的广告将被展示给用户,这可以在搜索引擎结果页面、网站、应用程序或其他广告位上进行。广告可以是文本、图像、视频或其他多媒体形式,具体取决于广告位和广告主的选择。
- 广告效果跟踪:广告引擎通常会追踪广告的效果,包括广告的点击率、转化率和其他指标。这些数据用于分析广告效果,优化广告策略和反馈给广告主。
- 持续优化:广告引擎需要不断优化算法和规则,以提高广告匹配的质量和广告系统的性能。这可以包括采用机器学习技术、A/B 测试和数据分析来不断改进。
总的来说,广告引擎的工作过程涉及数据收集、广告匹配、拍卖、广告展示和效果追踪等多个步骤,需要高效的算法和技术来确保广告的相关性和用户体验,同时最大化广告系统的效益。
(二)核心功能架构图
为了方便,我们按极客时间《检索技术核心 20 讲》【广告系统:广告引擎如何做到在0.1s内返回广告信息?】中的广告引擎的核心功能架构图,从用户浏览和广告主投放广告这两个方面讲解一下广告引擎的工作过程。具体可见对应的极客时间文章。
当用户浏览网页时,网页会向广告系统的服务器发送一个广告请求。服务器收到请求后,首先进行请求解析,这涉及查询与用户唯一标识、网站地址和广告位相关的扩展信息。这些信息的查询是通过之前对用户行为的长期收集和分析来实现的。这样的分析能够帮助了解用户的兴趣,例如他们是否喜欢篮球或购物。同样,对于各种不同的网页和广告位,系统也会进行分类和分析。这些分析的结果会提前存储在Key-value数据库中,以便能够迅速查询。这种方式,广告请求解析能够通过查询Key-value数据库,迅速获得相关信息。
另一方面,广告主在投放广告时,通常会设定广告投放的限制条件,以确保广告能够达到预期效果。例如,他们可能希望广告仅对位于北京、年龄在20岁以上、对篮球感兴趣,或使用特定型号手机的用户展示。这些限制条件可以用标签的方式表示。因此,广告设置本质上是由一系列标签的组合构成。
因此,广告引擎在处理广告请求时,实际上是根据用户的广告请求信息,查找与标签匹配的广告设置,并对这些广告进行排序,然后返回给用户。这确保了广告能够有针对性地展示给最相关的受众。
三、标签检索:合理使用标签过滤和划分索引空间
在广告引擎中,合理使用标签过滤和划分索引空间是一项关键策略,用于提高广告匹配性能和效率。标签是一种有助于描述用户、广告和广告位的属性和特征的元数据。
以下是如何合理使用标签来进行索引和过滤的方法:
-
标签化广告和广告位: 广告库中的广告和广告位可以分配标签,这些标签可以描述广告的内容、目标受众、广告位的属性等。例如,广告可以被标记为"运动鞋"、"折扣",而广告位可以被标记为"体育新闻"、"健康与生活"。
-
用户标签: 对用户进行标签化,以描述他们的兴趣、行为和属性。用户标签可以包括地理位置、性别、年龄、兴趣领域等。这些标签可以通过用户的历史行为、搜索查询、点击记录等数据分析来获得。
-
构建标签索引: 基于标签,构建广告库的索引和用户数据库的索引。这可以是倒排索引或其他索引结构。标签索引将广告、广告位和用户数据连接起来,以便快速检索。
-
标签匹配算法: 开发标签匹配算法,以根据广告请求中的标签信息,匹配最相关的广告和广告位。这可能涉及标签的匹配程度、权重等考虑。
-
标签过滤和筛选: 在广告请求处理过程中,使用标签过滤和筛选广告库,以缩小匹配范围。这有助于减少匹配的时间和资源消耗。
-
标签层次结构: 创建标签层次结构,使标签之间存在父子关系,从而更好地组织和管理标签。例如,"运动"可以是一个父标签,而"篮球"和"足球"可以是子标签。
-
动态标签更新: 根据实时数据和用户行为,动态更新用户标签和广告标签。这有助于确保标签信息始终反映实际情况。
-
定向广告: 利用标签来实施广告定向,确保广告仅展示给符合特定标签条件的用户。这提高了广告的相关性和效果。
综合运用上述策略,广告引擎可以高效地利用标签来过滤、划分索引空间和匹配广告,以提供更相关的广告,提高广告系统的性能和用户体验。
四、向量检索:提供智能匹配能力
在广告引擎中引入向量检索技术可以提供更高级的智能匹配能力。向量检索允许广告引擎将广告、广告位和用户表示为向量,然后通过向量相似性来进行匹配,从而更精确地确定哪些广告最适合与哪些用户和广告位相匹配。
让我们通过一个具体案例来理解如何在广告引擎中应用向量检索以提供智能匹配能力。以一个虚构的在线体育新闻网站的广告引擎为例。
- 广告库: 包含不同类型的体育广告,如足球、篮球、网球、高尔夫等,以及不同品牌的广告。
- 广告位: 包括不同类型的页面和文章,如首页、足球新闻、篮球新闻、高尔夫新闻等。
- 用户数据: 包括用户的地理位置、兴趣领域、性别、年龄等信息。
使用向量检索实现智能匹配:
-
向量表示: 针对广告库中的每个广告、广告位和用户,使用向量表示。这些向量可以包括广告内容、广告位属性、用户兴趣等维度。例如,一个足球广告的向量可能包括 "足球"、"体育"、品牌信息等。
-
聚类: 使用聚类算法将相似的广告向量分组到同一簇中。例如,所有足球相关广告可能分为一个簇,所有篮球广告分为另一个簇。
-
倒排索引: 为每个簇构建倒排索引,将广告、广告位和用户向量映射到它们所属的簇。这样,当广告请求到达时,可以首先确定可能相关的簇。
-
乘积量化: 在每个簇中,将向量应用乘积量化来降低维度。这可以将每个向量表示为一组较低维度的子向量,并应用量化来减小向量的大小。
-
查询处理: 当用户访问网站时,广告引擎接收广告请求,其中包括用户的信息、页面类型和内容。引擎首先使用这些信息确定可能相关的簇。然后,在这些簇中使用乘积量化技术,将请求中的向量与广告、广告位和用户向量进行匹配。最相似的向量将被选择,以决定要显示的广告。
-
智能排序: 匹配后,引擎可以使用向量相似性来排序广告,确保最相关的广告首先显示给用户。例如,如果用户正在查看篮球新闻,引擎会更有可能选择篮球广告并根据与用户兴趣的匹配程度来排序。
-
动态更新: 引擎可以定期更新向量,以反映用户行为和广告内容的变化,确保匹配仍然是智能的。
通过这种方式,广告引擎可以实现智能匹配,确保广告与用户的兴趣和页面内容相关,并提供更个性化的广告体验。这有助于提高广告效果和用户满意度。
五、打分排序:用非精准打分结合深度学习模型的精准打分
在广告引擎中,使用非精准打分结合深度学习模型的精准打分是一种常见的策略,以提高广告的排序性能。这组合了两个环节:召回(Recall)和精准打分排序(Precision Ranking),中间加入了非精准打分(Non-Precision Scoring)的环节。
-
召回(Recall): 首先,广告引擎执行召回环节,目的是尽可能多地检索潜在匹配的广告候选集。在这一阶段,引擎可以使用基于标签、规则或其他快速方法来检索广告候选集。召回环节的目标是捕获潜在的广告,即使其中一些不是精确匹配,也要确保不错过任何潜在的机会。
-
非精准打分(Non-Precision Scoring): 这是添加到召回阶段的新环节。在非精准打分中,引擎可以使用快速的打分算法,例如基于规则或标签匹配的算法,来为召回的广告候选集打分。这些打分是非精确的,主要用于粗略排序,以便稍后的精准打分排序能够更聚焦在具有更高潜在匹配性的广告上。
-
精准打分排序(Precision Ranking): 在这一环节,引擎使用深度学习模型或其他精确的打分算法来为召回的广告候选集中的每个广告进行更精准的打分。这些算法可以综合考虑广告内容、用户兴趣、广告位属性等多个因素,以确定广告与用户的匹配程度。广告按照精确的打分进行排序,以确保最相关的广告最先呈现给用户。
-
结果返回: 最终,排名好的广告将根据其得分从高到低呈现给用户。用户将看到高度相关的广告,提高了广告效果和用户满意度。
这种组合策略允许广告引擎在召回阶段宽泛地捕获潜在广告,然后通过精准打分排序在确保精确匹配的同时,提高广告的排序性能。非精准打分阶段可以快速排除一些不相关的广告,从而加速精准打分的过程。同时,深度学习模型可以学习复杂的广告与用户之间的关系,以提供更准确的排序。这种策略有助于平衡性能和准确性。
六、索引精简:在索引构建环节缩小检索空间
广告引擎和搜索引擎在检索对象的生命周期上存在显著差异。广告设置的生命周期变化快,而不是像网页一样持久存在。这种快速变化的特性需要在广告引擎的索引构建环节采取不同的优化策略,以提高检索效率。主要优化策略包括:
离线过滤条件
在离线的索引构建环节,广告引擎应用广告设置的过滤条件。这些条件可能包括时间段、预算状态、地理位置等,而不仅仅是与广告内容或用户属性相关的条件。通过在索引构建时过滤掉那些在未来某个时间点不再有效的广告设置,可以大幅减小检索空间。
动态索引更新
由于广告设置的状态和限制条件可能随时发生变化,广告引擎应该支持动态索引更新。这意味着在实时或定期基础上,广告引擎需要更新索引以反映广告设置的最新状态。例如,当广告的投放时间段结束或预算用尽时,相应的广告设置应该从索引中移除。
增量索引构建
广告引擎可以使用增量索引构建策略,只构建或更新发生变化的广告设置的索引。这减少了索引构建的计算成本,因为不必重新构建所有广告设置的索引。
定期清理
定期清理索引中的过期或不再有效的广告设置是关键的。这有助于保持索引的整洁,减小检索空间,避免对无效广告进行不必要的检索。
通过将过滤条件提前到离线的索引构建环节,并支持动态索引更新,广告引擎可以更好地适应广告设置的生命周期的快速变化。这种优化策略有助于提高检索效率,减少冗余计算开销,提供更快速的广告检索。
参考文章技术
- 极客时间《检索技术核心 20 讲》【广告系统:广告引擎如何做到在0.1s内返回广告信息?】,陈东 ----- 主要学习材料
- 互联网广告及产品变现认知分析整理_张彦峰ZYF的博客-CSDN博客互联网广告及产品变现认知分析整理_张彦峰ZYF的博客-CSDN博客
- 美团广告实时索引的设计与实现 - 美团技术团队
- https://www.cnblogs.com/ErinCodeMM/p/5033321.html
- 搜索,推荐,广告系统架构及算法技术资料大合集吐血整理——2019 年终分享 - AIQ
- https://www.infoq.cn/article/73za7ahrg1osmdtfa9tv
- “量效合一”背后,巨量引擎搜索广告的业务逻辑是什么? - 数英