返回介绍

数学基础

统计学习

深度学习

工具

Scala

十五、DICM [2017]

发布于 2023-07-17 23:38:25 字数 29423 浏览 0 评论 0 收藏 0

  1. 淘宝是中国最大的电商平台,通过移动 appPC 网站为数亿用户提供数十亿 item 。用户通过搜索或个性化推荐从而来到淘宝浏览这些 item 。每个 item 通常由 item 图像以及一些描述文本来展示。当用户对某个 item 感兴趣时,可以单击该图像从而查看详细信息。下图显示了淘宝移动 app 中推荐 item 的示例。

    淘宝还建立了全球领先的展示广告系统display advertising system 之一,帮助数百万广告主连接到用户。实际上,展示广告display advertising 是一种必不可少的在线广告形式。通过识别用户兴趣,它可以在诸如 “猜你喜欢” 之类的各个地方展示,并有效地向合适的顾客传递营销信息 marketing message 。淘宝展示广告采用 cost-per-click: CPC 计费方式,并且足够有效。在 CPC 模式下,媒体平台通过 effective cost per mille: eCPM 对候选广告进行排序。eCPM 可以通过竞价 bid price 乘以预估点击率click through rate: CTR 来计算。这种策略使得点击率预估成为广告系统中的核心任务。

    CTR 预估对用户对于 item 的偏好进行打分,并且很大程度上依赖于从历史行为中理解的用户兴趣。用户每天在淘宝上浏览和点击 item 数十亿次,这些访问带来了海量的日志数据,微弱 weakly 地反映了用户兴趣。传统的 CTR 预估研究侧重于精心设计的反馈特征feedback feature 和浅层模型 shallow model ,如逻辑回归。近年来,基于深度学习的 CTR 预估系统大量涌现。这些方法主要涉及稀疏 ID 特征,如广告 ID、用户交互 item ID 等。然而,当一个 ID 在数据中出现的频率较低时,它的参数可能没有得到很好的训练。图像可以提供内在的视觉描述,从而为模型带来更好的泛化能力。考虑到 item 图像是用户直接与之交互的内容,这些图像可以提供更多关于用户兴趣的视觉信息。论文 《Image Matters: Visually modeling user behaviors using Advanced Model Server》建议通过这些图像自然地描述每个行为,并在 CTR 预估中联合建模图像和 ID 特征。

    用图像数据训练 CTR 模型需要大量的计算和存储消耗。一些开创性的工作致力于在 CTR 预估中表达具有图像特征的广告(仅在一个样本中引入单张图像)。这些研究没有探索用户行为图像。对用户行为图像进行建模有助于了解用户的视觉偏好,并提高 CTR 预估的准确性。此外,结合用户视觉偏好和广告视觉信息可以进一步有利于 CTR 预测。然而,用户交互图像建模用户偏好更具有挑战性。因为一个典型用户的行为数量从几十到几百不等,因此对于广告图像的消费次数也是在几十到几百。考虑到淘宝正在为数亿用户提供数十亿 item,这是一个不可忽视的问题,而设计一个良好的高效的训练系统是处理这个大规模问题,从而进行真正生产的必要条件。

    论文 《Image Matters: Visually modeling user behaviors using Advanced Model Server》提出了 Advanced Model Server: AMS 框架,它超越了众所周知的 Parameter Server: PS 框架来处理这个大规模的训练问题。

    • 在传统的 PS 框架中,图像要么被视为训练数据的一部分并存储在样本中,要么存储在 server 中分发给 worker 。然而,每个样本包含许多行为图像,原始图像特征尺寸 feature size 远大于 ID 特征。因此,由于无法接受的大存储或者无法接受的高通信负载,PS 处理如此大量的样本和图像有些不切实际。

    • AMS 中,server 被设计为能够前向传播和反向传播具有某些独立特征independent features 的子模型sub-model 。那么整个模型又可以分为 worker 模型部分和 server 模型部分。原始图像特征数据作为全局共享特征无重复地(即只需要存储一份)放置在 server 端。

      在论文的 application 中,与图像存储在样本中相比,论文的方法大大减少了存储量大约 40 倍。并且只需要传输 server 模型部分输出的、图像的低维高级语义 representation,而不是原始图像特征数据。另外,通信负载显著减少了大约 340 倍。

      此外,梯度反向传播从 worker 模型部分到由 server 模型部分完全处理,这保证了从原始图像特征到最终 CTR score 的端到端训练。

    基于 AMS ,论文成功地构建了一个高效的训练系统,并部署了一个轻量级的在线服务,解决了图像特征带来的存储、计算和通信的沉重负载。具体而言,论文的数十亿样本的训练过程在 18 小时内完成,可以实现在线模型的天级更新,这是工业级生产所必须的特性。

    受益于精心优化的基础设施,论文提出了一个统一的网络架构,称作深度图像 CTR 模型 Deep Image CTR Model: DICM,可以有效地为用户建模相关的行为图像。DICM 通过一个 selected attentive pooling 机制实现图像感知image aware 的用户建模,该机制在生成注意力权重时同时使用图像和 ID 特征。DICM 还利用用户偏好和广告之间的视觉联系,显著提高了性能。

    总而言之,论文的贡献有三个方面:

    • 首先,论文提出了新颖的 AMS 框架。它以子模型分布式方式sub-models distributing style 超越了众所周知的参数分布式方式parameters distributing style ,便于整个模型以分布式方式联合学习。这是朝着使深度学习模型能够利用负担得起的计算资源开发大规模和结构化数据迈出的重要一步。

      例如,在论文中,我们有大规模的 CTR 样本数据(其中每个样本涉及一个用户、一个广告)、有大规模的图像数据、还有大规模的连接样本的用户行为数据和用户行为图像。

    • 其次,论文提出了 DICM。它不仅利用了图像对广告进行建模,还利用了用户的海量行为图像来更好地建模用户偏好,这比仅利用广告图像更具有挑战性。

      论文表明,广告图像或用户行为图像都可以使 CTR 预估受益,并且将它们与精心设计的模型相结合将带来更大的提升。

    • 此外,论文通过广泛的离线实验和在线实验验证了所提出方法的效率efficiency 和效果 efficacy 。目前论文的模型已经部署在淘宝展示广告系统中,服务于 5 亿用户和数百万广告主的主流量。

  2. 相关工作:早期的 CTR 预估侧重于精心设计的低维统计特征,通常由用户点击统计量来定义。LS-PLMFTRLFM 是浅层模型的经典探索。

    最近,随着样本数量和特征维度越来越大,CTR 模型从浅到深演进。特别地,受到自然语言处理领域的启发,学习分布式 representationembedding 技术用于处理大规模稀疏数据。

    • NCFWide & Deep 利用 MLP 网络极大地增强模型能力。
    • DeepFM 通过在 Wide & Deep 中的 wide 部分使用分解机 factorization machine: FM 来进一步建模特征交互。
    • 最新的工作 DIN 提出采用注意力机制来根据给定的目标 item 自适应地建模用户行为。

    这些工作提升了稀疏特征的使用。然而,稀疏的 ID 特征只能告诉我们:对象是不同的,并且透露的语义信息很少。特别是当一个 ID 在训练集中出现频率较低时,它的 embedding 参数将不会得到很好的训练。并且在训练期间未见 unseenID 不会在预测中生效。

    具有视觉语义信息的图像会带来更好的模型泛化能力。此外,训练数据中未见 unseen 的图像仍然可以帮助训练良好的图像模型进行 CTR 预估。图像 representation 任务近年来有了显著的改进。深度模型学习的高级语义特征已经被证明对大范围的任务有效。之前的一些工作尝试在 CTR 模型中引入图像信息来描述广告。

    • 《Multimedia features for click prediction of new ads in display advertising》《Image Feature Learning for Cold Start Problem in Display Advertising》 通过使用手动设计的特征或预训练的 CNN 模型对广告图像进行建模来解决冷启动问题。
    • 《Images don’t lie: Transferring deep visual semantic features to large-scale multimodal learning to rank》 引入了 item 的视觉信息,从而克服 Esty 的搜索引擎中对纯文本 representation 的误解 misunderstanding
    • 《Deep ctr prediction in display advertising》 提出以端到端的方式训练 CNN

    所有这些工作都专注于用图像来表示广告,这与我们的动机不同。广告图像描述了广告的视觉特征,用户行为图像会揭示用户的视觉偏好 visual preference 。将这些视觉信息组合在一起,将比单独使用它们中的任何一个产生更好的性能。在本文中,我们提出用图像来增强 user representation ,并设计一种新颖、高效的分布式机器学习范式来对应它带来的挑战。

15.1 AMS

  1. 展示广告系统display advertising system :淘宝展示广告系统每天响应数十亿次 pv 请求。每个请求,在特定场景(曝光时间、广告位等上下文中)都需要系统向用户展示最合适的广告。广告系统仅在几毫秒内从数千万个广告中选择 eCPM 排名最高的广告。

    在线系统以类似漏斗的方式完成此任务,大致主要由三个顺序的模块组成,如下图所示:

    • Match 模块:该模块根据用户行为预测出用户的偏好,并从全量候选广告集中检索大约 4000 个广告。该模块也被称作检索模块或者召回模块。
  • Pre-rank 模块:该模块采用轻量级的 CTR 模型将检索到的广告集根据预估的 CTR 进一步缩减至大约 400 个广告。该模块也被称作粗排模块。

    • Rank 模块:该模块使用复杂的CTR 模型准确预测粗排召回的广告集中每个广告的CTR,通过 eCPM 对这些广告进行排序并选择最佳的广告。这一步缩减到 1 个广告。该模块也被称作精排模块。

    所有这些模块都依赖于对用户兴趣的恰当理解从而提供个性化推荐。在本文中,我们专注于在 CTR 预估中使用用户行为图像进行更好的用户建模。接下来我们以 Rank 模块为例仔细描述了挑战和解决方案。我们也将其应用于 Pre-rank 模块。RankPre-rank 的实验结果都显示在后面。

    我们的方法也可以与 Mathcing 中的 tree based 深度模型一起使用,我们将其留待未来的工作。

  1. 任务描述:通过输入用户特征、广告特征、场景特征等等,CTR 模型输出用户在该场景中点击广告的概率。遵从前人的工作,这个问题被认为是一个二分类问题,其标签是弱反馈 weak feedback:是否点击。训练过程中采用交叉熵损失作为目标函数。

    与图像分类任务不同,其中图像由像素很好地表达,点击率预估问题需要根据具体application 进行仔细的特征设计 feature design 。通常的做法是通过 ID 来描述用户、item、场景的各个方面,构成了很多稀疏的特征 field 。用户历史行为 field 由用户之前点击过的 item id 来组成,是描述用户的最重要的一个 field 。这种方法导致大量的、但是极为稀疏的数据。

    Embedding & MLP 方式的网络现在被广泛应用于拟合 fit 如此大的稀疏输入。在淘宝广告系统中,部署了遵循这种模式的、高度优化的 CTR 模型。为清晰起见,下图的 Embedding & MLP 部分展示了生产模型的简化版本。最近在生产中引入了 DIN,以更好地建模稀疏行为特征。使用这些复杂的模型,在接下来的部分中,我们将展示使用图像对用户行为进行建模,仍然可以带来显著的改进。

  2. 带图像的建模:我们用视觉信息扩展了 Embedding & MLP 模型,特别是用图像增强了用户行为 representation 。我们将这种结构称作深度图像 CTR 模型 Deep Image CTR Model: DICM ,并将 Embedding & MLP 成为基础网络 basic net

    如下图所示,用户的行为图像和广告图像被合并为两个特殊的特征 field。这些图像首先馈入可训练的子模型 submodel ,从而获得低维的 high level representation 。与 embedding 类似,子模型也是一种将图像嵌入到向量中的 embedding 操作。所以我们称之为 embedding modelembedding model 可以看作是传统 key-value embedding 操作的泛化扩展,因为它可以嵌入在训练期间未见 unseen 的新图像。由于用户行为的长度是可变的,因此需要将多个嵌入的图像聚合在一起,形成一个固定长度的用户 representation,然后输入到 MLP 中。

    值得注意的是,该模型中的图像 embedding 实际上是独立的,即不依赖于其它特征。因此 embedding model 可以独立地前向传播、反向传播。这一观察提示了我们设计 Advanced Model Server 。此外,还有更多针对各种类型数据的 embedding model,如可以使用 AMS 来设计文本特征、视频特征等等。

  3. Parameter Server 及其限制:参数服务器 Parameter Server: PS 是一种广泛采用的分布式架构,用于大规模参数化parametric 的机器学习问题。PS 由两个 node group 组成:worker groupserver group

    • worker group 包含一组 worker,它们对各自分配到的部分训练样本进行训练。
    • 同时,server group 作为分布式数据库,存储了模型的参数并且可以通过 key-value 结构访问。

    通过这种方式,PS 可以高效地聚合和同步参数。

    Embedding & MLP 模型可以在 GPU 集群上使用 PS-like 架构高效地实现。embedding layer 的参数被放置在 server group 中,因为它们的规模远远超过每个 worker 的内存容量,并且可以通过 key-value 结构访问(前向传播)和更新(反向传播)。

    然而,当使用图像特征,尤其是与大量用户行为相关的图像时,完成训练过程并非易事。图像数量很大,图像数据需要分布式存储在 worker group 或者 server group 中。采用 PS 时,无论是存储在 worker group 还是 server group,在实践中效率都很低。

    • 如果图像与训练样本一起存储在 worker group 中,那么图像特征将大大增加训练数据的大小(在我们的场景中,每个 mini-batch 大小从 134MB 增加到 5.1 GB ,大约增加 40 倍),这带来无法承受的 IO 或存储。
    • 如果图像存储在 server group 中并在训练期间被 worker 访问,那么这将带来沉重的通信压力,因为图像特征是高维的(在我们的实验中通常为 4096 维),远远超过 ID 特征(通常为 12 维)。

    这种困境促使我们探索了接下来要重点描述的新架构。

  4. AMS 架构:这里我们将详细介绍 AMS 架构。与 PS 类似,AMS 也包含 serverworker。但是除了处理 key-value 参数之外,AMS 中的 server 还端到端地训练 embedding model。因此命名为 Advanced Model Server: AMS

    AMS 中,样本由稀疏特征组成,其中行为图像被标记为索引,也是一种 ID 。所有的图像都在 server 中存储和计算,并通过 embedding model 嵌入到语义向量中。这种范式为各种类型的数据提供了各种建模方法。例如,我们可以有效地为用户交互的 item 引入由 RNN 建模的客户评论 customer comment ,这面临着与图像建模相同的问题。

    不带图像的训练样本在所有 worker 之间进行划分。图像以 key-value 格式分布式存储在 server 之间。key 为图像索引,value 为图像数据。

    • 在每次迭代中,worker 独立地读取 mini-batch 样本,并从 server 请求 mini-batch 中的 ID embedding 和图像 embedding 结果。注意, 来自某个 worker 的请求被发送到存储相应 ID 或图像的 server 节点。

    • server 收到请求时,以与 PS 相同的方式返回 ID 特征参数中的 embedding 向量。

      对于图像,server 首先从本地内存中获取图像数据,然后馈入 embedding model $ \mathcal E $ 从而获得 embedding 向量 $ \mathbf{ e} $ 。

    • workerserver 拉取所有的 embedding 向量 $ \left\{\mathbf e_s\right\}_{s=1}^N $ (包括ID embedding 和图像 embedding ),其中 $ N $ 为 server 数量 。然后完成 worker model 的计算,获得关于模型参数的梯度 $ \delta_{\mathcal{W}_r} $ 和关于 embedding 的梯度 $ \delta_{\mathbf{ e}_r} $ 。

    • $ \delta_{\mathbf{ e}_r} $ 然后被推送到相应的 server,以便 embedding model 能够进行反向传播从而计算梯度 $ \delta_{\mathcal E_s} $ 。

    • 最后,workerserver 同步它们的模型梯度 $ \delta_{\mathcal W_r} $ 和 $ \delta_{\mathcal E_s} $ ,并完成模型更新。

      注意:embedding 参数存储在 server 端,而权重矩阵参数存储在 worker 端。换句话讲,模型 $ \mathcal E $ 位于 server 端、模型 $ \mathcal W $ 位于 worker 端。

    AMS 带来了几个好处:

    • 首先,通过仅在 server 中存储一次,图像存储显著减少。
    • 此外,由于最终 embedding 向量规模远小于图像的原始数据(通常从 4096 维降低到 12 维,压缩比超过 340 倍),因此通信显著降低。
    • 另外,在单次训练迭代中多次发生的、特定图像的计算可以由 server 自然地合并,从而减少计算负载。

    值得注意的是,serverworker 实际上部署在同一台 GPU 机器上,因此交替的 worker 计算和 server 计算最大化了 GPU 的利用率。

  5. AMS 算法:AMS 包括 serverworker 、以及 task schedulerAMS 同时训练两个模型 worker model $ \mathcal W $ 和 embedding model $ \mathcal E $ 。其中各组件的执行过程为:

    • Task Scheduler

      • 初始化模型 $ \mathcal W,\mathcal E $ 。
      • 执行 mini-batch 训练。在所有 worker 上,对于每个 mini-batch t 执行过程 WORKERITERATIOIN(t) , $ 0\le t\le T $ 。
    • Worker

      rworker ( $ 1 \le r\le M $ ) 的 WORKERITERATIOIN(t) 过程:

      • 加载第 tmini-batch 的特征 $ \mathbf x_r^t $ 、标签 $ \mathbf y_r^t $ 。

      • 通过SERVEREMBED 过程从 Server 请求 $ \mathbf{ x}_r^t $ 中的 ID embedding 和图像的 embedding 。其中图像通过图像的索引来向 server 发生请求。

      • Server 获取所有的 embedding 向量 $ \mathbf e_r^t $ 。

      • 基于 $ \mathbf e_r^t $ 对 $ \mathcal W $ 进行前向传播和反向传播,并得到梯度:

        • worker 参数的梯度: $ \delta^t_{\mathcal W_r} = \nabla_{\mathbf w}\mathcal L\left(\mathbf{ x}_r^t,\mathbf y_r^t,\mathbf e_r^t\right) $ 。
        • embedding 参数的梯度: $ \delta_{\mathbf e_r}^t = \nabla_{\mathbf e} \mathcal L\left(\mathbf{ x}_r^t,\mathbf y_r^t,\mathbf e_r^t\right) $ 。
      • Server 推送梯度 $ \delta^t_{\mathbf e_r} $ ,并且执行 serverSERVERUPDATE 过程。

      • 向所有 worker 同步梯度 $ \delta^t_{\mathcal W_r} $ 并更新模型 $ \mathcal W $ 。

    • Server:对所有的 Server 执行过程 SERVEREMBED(t)SERVERUPDATE(t)

      sServer ( $ 1 \le s\le N $ ) 的 SERVEREMBED(t) 过程:

      • Server 本地获取图像数据 I
      • 计算图像的 embedding: $ e = \mathcal E(I) $ 。

      第 $ s $ 个 Server ( $ 1 \le s\le N $ )的SERVERUPDATE(t) 过程:

      • 计算梯度: $ \delta^t_{\mathcal E_s}= \nabla \mathcal E(I)\times \delta^t_\mathbf e $ 。
      • 向所有 server 同步梯度 $ \delta^t_{\mathcal E_s} $ 并更新模型 $ \mathcal E $ 。
  6. 通过 AMS 实现的 DICM:可以使用 AMS 有效地训练 DICM。稀疏 ID 特征的 embeddingembedding modelembeddingserver 中运行。MLPAggregator(接下来我们会详细说明)在 worker 中运行。

    采用 AMS 的分布式 GPU 训练架构,使得每天更新数十天日志数据的模型成为可能,这对于真实的广告系统而言至关重要。下表描述了我们最佳配置模型的训练时间(包含 18 天日志的训练数据)和 GPU 数量的关系。值得注意的是,我们的系统对 GPU 具有理想的近线性可扩展性。我们使用 20GPU,从而在效率和经济性之间进行合理的权衡。

15.2 Image Based 用户建模

  1. Image Embedding Modelembedding model 旨在将像素级别的视觉信息提取为语义 embedding 向量。计算机视觉的最新进展表明,学到的用于分类任务的语义特征具有良好的泛化能力。我们的实验研究表明,在我们的 application 中,VGG16 的性能优于从头开始的端到端训练。但是由于 VGG16 的复杂性太高,所以我们采用了混合训练:整个网络被划分为一个固定部分和一个可训练部分,其中可训练部分和 CTR 模型一起进行端到端的训练。

    • 对于固定部分,我们采用预训练的 VGG16 网络的前 14 层,具体而言是从 Conv1FC6,生成一个 4096 维的向量。

      对于实际 application,这是效率和效果之间的谨慎权衡。例如,在我们的实验中,用 1000 维输出的 VGG16 FC8 代替 4096 维输出的 FC6 作为固定部分,将导致 3% 的相对性能损失(因为冻结的部分太多,导致可训练部分太少)。这表明需要控制固定部分的信息缩减 information reduction,输入size 和整个网络共同学习的可训练部分至关重要。

      然而,当我们使用 VGG16 中更低的层作为固定部分时,训练中的计算负载变高,并且我们发现效果提升并不显著。最后我们选择 4096 维输出的 VGG16 FC6 作为固定部分。

    • 对于可训练部分,我们使用 3 层全连接网络(4096-256-64-12) ,并输出 12 维向量。

  2. 用户行为图像聚合器 User Behavior Image Aggregator:对于使用 Embedding & MLP 模型的 CTR 预估,用户的紧凑 representation 至关重要。我们需要将各种用户数据,尤其是可变数量的历史行为,聚合为一个固定长度的向量。为此目的,我们设计了 aggregator block 来聚合大量行为图像 embedding

    事实上,许多经典问题都涉及类似的任务。对于传统的图像检索/分类,局部特征,例如 SIFT,在图像中聚合。包括 VLAD 和稀疏编码在内的经典方法通过 sum 或者 max 操作来实现这一点。对于神经机器翻译 neural machine translation: NMT,不同长度句子的上下文向量是采用最近提出的注意力方法来提取出来的。我们遵循这些思想并探索各种设计,尤其是注意力方法。为了进一步考虑 ID 特征信息,我们提出了 Multiple Query Attentive Pooling

    • 最直接的方法是将所有行为图像 embedding 拼接在一起,并填充或者截断到指定的长度。但是当行为数量太大或者行为顺序发生改变时,这会遭受损失。

    • 最大池化和 sum 池化是另外两种直接的方法,它们都无法针对多样化的用户行为适当地关注focus

    • 最近 DIN 将注意力机制引入用户建模,它根据目标广告自适应地捕获最相关的行为。我们也采用了这种方法,并考虑到视觉相关性,我们使用广告图像作为注意力的 query。我们称这种方法为 Attentive-Pooling 。这些方法如下图所示。下图为一些典型的聚合器设计,我们将在实验部分比较它们的性能差异。

    • 不同类型特征之间的交互很重要。例如,广告的类目ID T shirt 和用户行为中的 T shirt 图像可以连接,因此它可以更好地捕获用户对于此类 item 的偏好。因此,我们提出了 MultiQueryAttentivePooling(下图 (d) ),它结合了图像特征和 ID 特征来生成注意力权重。

      具体而言,我们设计了两个注意力通道,分别涉及广告图像特征和 ID 特征。两个注意力通道分别生成自己的权重和加权sum 向量,然后将它们拼接起来。注意,与 multi-head 技术不同,MultiQueryAttentivePooling 对每个注意力通道使用不同的 query,从而探索具有互补性的不同相关性。

15.3 推断

  1. 在大型工业广告系统中,推断效率对于CTR 模型的在线部署至关重要。对于常规 DNN 模型,通常 embedding 参数存放在全局 key-value 共享存储中,MLP 参数存储在本地 ranking server 中。对于每个inferrence 请求,ranking server 会从 key-value 共享存储提取 ID embeding,并向MLP 馈入该 embedding 从而执行 CTR 预测。实践证明该方案在生产中具有高吞吐、低延迟。

    当涉及图像尤其是大量的用户行为图像时,提取图像的 embedding 向量可能带来大量的计算开销和通信开销。受益于图像的独立性,图像embedding 向量可以离线计算并作为常规 ID 特征进行全局存储。因此ranking server 无需任何修改即可适配图像的引入。

    注意:对于已有的图像可以通过其图像ID 查找离线计算好的图像 embedding 向量。对于新的图像,系统可以直接计算其 embedding 来使用并缓存起来。这可以有效缓解 ID 特征的冷启动问题。

    对于每个pv 请求,DICM 的响应时间仅仅从 21ms(传统 的、不带图像的DNN 模型)增加到 24ms ,符合在线推断的需求。

15.4 DICM 用于 Pre-Rank

  1. DICM 框架可以顺利应用于 Pre-Rank 阶段。为了加速在线服务,我们设计了类似于 DSSM 结构的架构,该架构广泛应用于效率敏感的跨域 cross domain 搜索/推荐任务。 如下图所示,维度相等的 ad representationuser representation 首先用它们各自的特征分别独立建模。和 Rank 一样, ID 特征和图像都被使用,并且通过 embedding 模型来嵌入。为了避免广告特征和用户特征的早期融合,sum 池化(而不是 MultiQueryAttentivePooling )作为行为图像的聚合器。最终的点击率由ad representationuser representation 的内积来预测。

    注意,在最终内积之前,用户相关特征和广告相关特征之间没有交互。因此,可以离线预先计算 ad representationuser representation ,以便在线服务仅关注内积操作,从而显著降低总的计算负载。

15.5 实验

  1. 数据集:所有数据来自于淘宝的展示广告系统收集自 2017-07 月连续 19 天的日志数据,其中前 18 天为训练集、最后一天为测试集。数据集包含 39 亿训练样本、2.19 亿测试样本。样本有 27ID 特征,包括用户画像特征、用户行为特征、广告描述信息、场景描述信息。

  2. 评估方式:对于离线评估指标,我们采用 AUCGAUCGAUC 是所有用户的 AUC 加权平均。GAUC 是所有用户 AUC 的加权平均,定义为:

    $ \text{GAUC} = \frac{\sum_u \text{用户 u 曝光量} \times \text{AUC}_u}{\sum_u \text{用户 u 曝光量}} $

    其中 $ \text{AUC}_u $ 为用户 $ u $ 的 AUC

    在实际广告系统中,GAUCAUC 和交叉熵损失更有效。因为 GAUC 是个性化的,专注于每个用户的预测。

  3. 训练细节:

    • 为了加快训练速度并降低存储成本,我们遵循了公共特征技术common feature technique 。具体而言,我们将对应于相同用户的样本放在一起,形成样本组 sample group,这些样本组共享相同的用户侧特征。
    • 为了描述用户行为,我们选取了每个用户在过去 14 天内的点击行为。由于来自真实系统的原始数据是噪音noisy 的,我们选择具有合理的、较长的浏览时间的典型点击行为。我们实验发现这种过滤策略可以获得更好的性能。平均的用户行为从 200 多个过滤到 32.6 个。
    • 我们使用 PReLU 作为激活函数,因为我们实验中发现它的优越性。我们采用 Adam 作为优化器,初始学习率为0.001,每 24000batch 之后以 0.9 的系数进行衰减。模型在 2epoch 后收敛(在我们的场景中为 128K 次迭代)。
    • 部分 warm-up:参数初始化被广泛使用。受益于我们系统的天级更新方案,我们可以使用前一天训练好的模型作为初始化,而无需任何额外成本。我们观察到 DICM 的每个部分以不同的速度收敛。由于 ID 特征的稀疏性和较大的参数规模,ID embedding 容易出现过拟合。而图像 embedding model 需要足够的训练来捕获视觉信息和用户意图之间的高度非线性关系。因此我们提出了 partial warm-up 技术。具体而言,我们使用预训练模型(它使用不同日期的训练数据)作为除 ID embedding 之外的所有部分(即图像 embedding model、提取器、MLP 部分)的初始化,并随机初始化 ID embedding 部分。

15.5.1 AMS 效率

  1. 我们首先在我们的 application 中研究了 AMS 相对于 PS 架构的效率优势。我们对比了以下两种可能的保存图像的方式:

    • PS-worker:将图像和其它训练数据一起存储在 worker 节点中。
    • PS-server:将图像存储在 server 节点中作为全局数据。

    为了给出定量结果,我们总结了我们的典型场景。我们总共有 39 亿训练样本,由一个 20 节点的 GPU 集群来处理。对于每次训练迭代,每个节点的 mini-batch 设置为 3000,因此有效的 mini-batch size = 60000 。在每个样本中,用户平均与 32.6 张行为图像相关。得益于公共特征技术,据统计,每个有效的 mini-batch 涉及大约 32 万张图像以及 140 万个 ID(不包括图像 ID)。总共有 1.2 亿张 unique 图像参与训练,每一张图像都被预处理为 4096 维浮点特征作为训练输入。

    我们将 AMS 与下表中的两个替代方案进行了比较。实验结果如下表所示,表中的结果是 mini-batch 的平均数据规模,单位为Bytes 。其中:

    • storage 指标:存储 mini-batch 图像和 ID 数据需要的存储规模,单位为 Bytes
    • communication 指标:在 workerserver 之间传输 mini-batch 数据的传输规模,单位为 BytesALL 指的是传输所有数据(图像 + ID 数据),Image 指的是仅传输图像数据。

    可以看到:AMS 实现了很好的系统效率,而 PS-workerPS-server 策略在存储负载或通信负载方面存在重大缺陷。具体而言,PS-worker 需要比 AMS31 倍的存储空间(5.1G vs 164M),而 PS-server 的通信成本是 AMS32 倍(5.1G vs 158M) 。

15.5.2 消融研究

  1. 这里我们首先通过离线实验专门研究我们方法的各种设计细节。为了公平比较,除非另有说明,否则所有消融研究都禁用 partial warm-up 策略。

  2. baseline:我们将所有离线实验的 baseline 设为仅具有稀疏 ID 特征的 Embedding & MLP 模型,这是淘宝展示广告系统中生产模型的简化版本。

    注意,baseline 中也使用了两个特殊 ID 字段作为稀疏特征:广告图像的 ID、用户行为图像的 ID。这两个 ID 字段对于公平比较至关重要,因为图像特征实际上可以起到 ID 的部分作用,我们应该为两个模型保持一个公共的基础,从而显示图像语义信息的净增益 clean improvement 。此外,我们采用自适应正则化(参考 DIN 模型)来解决 ID 特征的过拟合问题。

  3. 图像信息研究:DICM 集成了用户行为图像和广告图像。这里我们对它们的有效性进行消融研究。为此,我们从 baseline 开始,分别使用广告图像、行为图像、以及同时使用这两种。下表展示了离线数据集的结果。可以看到:

    • 行为图像或广告图像都可以提升 baseline,这表明在用户和广告建模中引入视觉特征可以带来积极的效果。
    • 此外,行为图像和广告图像的联合建模将显著提高性能。值得注意的是,联合建模的增益远远大于对它们单独建模的增益之和,即 GAUC0.0055 vs 0.0044AUC0.0037 vs 0.0024 。这一结果有力地证明了通过视觉信息对用户和广告进行建模的协同效应,这是我们的 DICM 带来的理想效果。

  4. 行为图像聚合器的研究:我们详细比较了前面描述的不同聚合器的影响,这些聚合器在模型中聚合了行为图像 embedding。结果如下表所示,可以看到:

    • concatenation 不适合行为聚合,性能较差;sum/max 池化给出了合理的改进。
    • AttentivePooling 展示出将广告图像作为注意力 query 的显著收益。
    • MultiQueryAttentivePooling 带来最好的结果,这受益于稀疏 ID 和图像语义信息之间的交互。

  5. 不同基础结构的研究:我们的工作重点是通过联合用户行为视觉信息和广告视觉信息来增强 CTR 预测模型。传统稀疏特征的基础basic 网络结构设计不是本文的中心话题。我们假设 DICM 可以应用于不同的基础网络,并带来图像特征的一致的改进。为了验证这一假设,我们使用经典的逻辑回归 LR 、最近提出的 DIN 模型、以及 baseline Embedding & MLP 作为基础模型来测试 DICM 。下图给出了这些模型的离线 GAUC 指标。可以看到:

    • 具有图像特征的模型始终优于仅具有 ID 特征的模型。

    • 具有图像特征的 DIN 表现最好,并且大大超越了经典的 DIN

    • LR 在使用图像特征增强时的提升不如其它模型,这是因为 LR 无法充分利用图像的高层语义信息。

  6. partial warm-up 研究:我们通过比较 non warm-uppartial warm-upfull warm-up 来研究 warm-up 策略。如下表所示:

    • partial warm-up 效果最佳。
    • 由于 ID embedding 参数的严重过拟合,full warm-up 会导致更糟糕的结果。

15.5.3 DICM 结果

  1. 这里我们将使用 partial warm-up 策略和 MultiQueryAttentivePooling 的最佳配置的 DICMbaseline 进行离线效果的比较。我们还进行了在线 A/B test,结果表明与 state-of-the-art 的生产模型相比有了显著提升。

  2. 离线评估:我们首先使用离线数据集评估我们的 DICM 模型,我们采用 partial warm-up 策略和 MultiQueryAttentivePooling。下表和下图显示了 baseline 和最佳配置 DICM 之间的 AUC/GAUC 比较。可以看到:

    • DICM 的性能比 baselineGAUC 上提升 0.0078、在 AUC 上提升 0.0055。这在实际系统中是显著的改进。
    • 此外,从下图可以看出,baselineDICM 中的gap 在训练过程中是一致的。这表明我们的方法是鲁棒 robustness 的。

  3. 在线 A/B test:在在线 A/B test 中,为了与生产环境保持一致,我们将 DICM 的基础网络替换为生产中 state-of-the-art 的网络(具有更复杂设计特征的 Embedding & MLP 模型的高级版本)。我们将 DICM 和生产模型进行比较,评估指标为广告系统中的三个关键指标:CTReCPMgross merchandise value: GPM

    如下表所示,DICM 在连续 7 天的统计周期内在在线 A/B test 中取得了一致的收益。考虑到淘宝的庞大规模和高度发达的广告系统,这种持续的在线改进意义重大。DICM 现已部署在淘宝的展示广告系统中,服务于 5 亿用户和数百万广告主的主流量main traffic

15.5.4 Pre-rank

  1. 最后,我们评估了在 Pre-Rank 阶段应用 DICM 的性能。我们在离线数据集上进行训练,结果如下表所示:我们的 DICMGAUCAUC 指标上再次显著优于 baseline。这样的结果再次证明了将我们的框架推广到广告/推荐系统的其它 CTR 预估任务的前景。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文