使用一个深度学习 pCTR 模型分析广告效果

在 Instacart Ads,我们的重点在于向客户提供最具相关性的广告,促进新颖的产品发现并增强他们的杂货购物之旅。同时,我们努力通过提高品牌认知度、增加产品销量和扩大客户范围来为广告商提供价值。在这个多边市场上实现这些相互关联的目标需要一种广告服务战略方法,特别是在管理广告排名的算法方面。

在我们的旅程中,我们创建了各种各样的页面布局,每种布局都经过定制,以提供独特的用户体验。我们的客户可以直接搜索特定产品,或在店面浏览产品,这与实体杂货店的导航过程类似。后者(浏览界面)的设计考虑了特定的意图,其中包括:

  • 再次购买 (BIA):展示用户之前购买过的产品。
  • 经常购买的产品 (FBW):建议经常与用户购物车中已有的商品一起购买的产品。
  • 商店根目录:显示当前正在查看的商店中可用的产品。
  • 系列:突出显示同一类别内的产品集合。
  • 项目详细信息:介绍与客户正在检查的项目相关的产品。

这些广告表面可能看起来相似,但关键区别在于它们的上下文差异。例如,集合具有特定的类别名称,而项目详细信息提供与用户当前正在检查的项目相关的信息,等等。

原有问题
在开发这些界面的早期阶段,我们设计了基本的排名模型,使用 XGBoost 来预测广告点击率 (CTR) 并根据预测对广告进行排名。如上所述,不同的表面往往具有不同的上下文并生成独特的输入和特征集。因此,每当引入新的上下文时,团队都会创建一个新模型,从而导致模型集合不断增长。

随着时间的推移,随着我们的浏览界面范围不断扩大,我们积累了一套专门针对不同界面上的广告而设计的基于 XGBoost 的排名模型。因此,这种方法也出现了一些局限性:

  1. 不同的训练数据集:训练数据集的分离使得用户交互洞察的交叉共享变得不可能。例如,如果用户通过与某个表面上的特定产品交互而表现出对这些产品的兴趣,则在为其他 pCTR 模型构建训练数据时,该参与数据将无法传播到其他表面。
  2. XGBoost 模型限制: XGBoost 模型本身在合并某些类型的特征方面受到限制,而这些特征是统一所有表面的模型所必需的。值得注意的是,在模型中容纳高基数分类特征提出了一个挑战,因为这些特征的单热编码将导致输入的维度极高。因此,我们无法将集合的集合名称、商品详细信息的产品 ID 或 FBW 的搜索词合并到模型中。
  3. 维护复杂性:为每个表面部署模型会带来显着的操作复杂性。管理数据管道和模型服务的服务、监视器和事件响应的工作量随着表面数量的增加而线性增长。与跨职能利益相关者协调变革会进一步阻碍未来的变革。
  4. 孤立的模型基础设施: XGBoost pCTR 模型的遗留模型训练和服务平台依赖于过时的服务基础设施,这使我们无法利用我们公司的 ML 基础设施堆栈提供的最新改进。因此,我们无法从跨职能合作伙伴实施的增强功能中受益。

统一浏览pCTR模型
认识到传统浏览模型的这些局限性,我们开始创建(Unified Browse pCTR )统一浏览 pCTR 模型。该举措旨在纠正上述问题并提高 pCTR 模型在我们浏览界面上的性能。

我们的方法是使用深度学习模型来统一所有页面。Unified Browse pCTR 模型的架构从 Wide-and-Deep 架构中汲取了强烈的灵感,该架构构成了业界众多用于用户响应预测的 pCTR 模型的基础。

模型严重依赖于三个大规模嵌入矩阵,这些矩阵经过专门训练,用于从产品 ID、用户 ID 和各种文本属性(例如产品名称、品牌名称、搜索词)等特征中捕获基本信息。

这些嵌入矩阵是我们模型中深度学习特征提取过程的重要组成部分。通过利用这些矩阵,我们可以有效地处理与用户和产品相关的高基数,从而使我们能够捕获在确定点击概率方面发挥重要作用的细微差别和偏好。

一旦获得嵌入向量,它们就会被连接并通过多个全连接层。这些层是近似每个特征的高度非线性效应并捕获它们之间复杂相互作用的基本机制。通过结合这种深层架构,我们的模型可以捕获数据中隐藏的复杂模式和关系,从而实现更准确的预测。

训练数据包含以下不同(但并非详尽)的特征类别:

  • 用户特征:此类别包含有关向其呈现广告印象的用户的特征。通过一系列迭代,我们纳入了用户 ID、用户历史浏览、点击和购买模式等信息,以及补充行为信号,这些信号揭示了用户对销售和促销的历史反应、他们重新购买产品的倾向、品牌忠诚度、等等,这些已被证明是非常强大的预测功能。
  • 产品特性:在本节中,我们包含了与所评估的产品相关的属性。值得注意的是,我们将产品 ID、名称、品牌、大类和价格视为重要指标。此外,我们还涵盖特定的产品细节,例如该产品是否具有酒精、犹太洁食或有机等属性。此外,我们还将综合属性集成到组合中,例如,基于深度学习模型构建的分数,揭示了无法通过简单统计数据完全捕获的更抽象关系,例如其类别内的竞争力。
  • 上下文特征:这些特征描述了呈现广告印象的上下文背景。该组中的某些功能适用于所有上下文,例如广告展示位置的类型。但其他功能的可用性可能取决于给定的上下文。例如,在商品详细信息页面上,当在此表面上对广告进行评分时,参考产品的产品属性将作为特征提供给模型。另一个例子,在我们在商店内展示产品系列的页面上,系列名称(例如“果汁”或“清洁产品”)也作为模型的特征包含在内。
  • 平均目标编码:这些 MTE 功能对特定数据段的历史 CTR 进行编码。它们可以普遍应用于所有上下文,例如历史用户-产品交互,也可以专门针对某些上下文而存在,例如项目详细信息表面上的参考产品类别和目标产品类别之间的历史交互。这些 MTE 功能为过去的参与提供了宝贵的见解,可以作为未来绩效的有效预测指标。有关 MTE 功能以及计算和集成到我们的训练数据中的简化管道的更多详细信息,请继续关注即将发布的有关此主题的文章!
  • 数据稀疏和缺失特征:工作环境特征面临的一个显着挑战是训练数据中所需的大量插补。为简单起见,在我们的模型中,我们选择了使用默认值进行直接插补的方法。这种选择的动机是,在这种情况下,默认值象征着缺乏可用数据,而模型可以从中学习这一概念。此外,考虑到我们的模型处理的数据量巨大,使用辅助模型或其他统计信号等替代方法可能在计算上很困难。


经验教训和结论

  • 统一建模:通过整合数据并训练单个统一模型,我们能够改进用户分析并提高各种浏览界面的性能。
  • 深度学习的优势:利用深度学习框架使我们能够集成高基数特征,合并所有不同表面的上下文信息。深度学习框架还可以捕获复杂的交互,从而实现更准确的预测并提高模型性能。
  • 缺失值:即使不同的浏览界面具有独特的上下文集,深度学习模型也可以学习缺失值的含义。即使不采用复杂的插补技术,模型的性能也不会受到影响。
  • 浅层交互:我们还通过分解机引入了浅层交互,这使得对数损失和 AUC 等指标显着提高了 1%。这证明了该技术在增强模型性能方面的有效性。
  • 迭代改进:通过合并新功能并尝试不同的模型架构来快速迭代和优化模型的能力对于维持简化的 ML 工作流程和在机器学习方面取得持续成功至关重要。