十二、DIN

  1. 在电商领域,每个用户都有丰富的历史行为数据,从这些历史行为数据中提取特征对于 CTR 预估模型非常重要。

    这些用户历史行为数据具有两个显著特点:

    • 多样性:用户在访问电商网站时,可能对各种各样的商品感兴趣。如:一个年轻的母亲可能同时对包包、鞋子、耳环、童装等感兴趣。

    • 局部激活 local activation :用户是否点击当前商品仅取决于历史行为数据中的部分数据,而不是全部历史行为数据。

      如:一个游泳用户会点击推荐的护目镜,主要是因为曾经购买过泳衣,而不是因为最近曾经购买的手机。

    如,从淘宝线上收集的用户行为案例:

    十二、DIN - 图1

    常见的 DNN 模型缺乏针对性的深入了解、利用用户历史行为数据的结构。这些模型通常都是在 embedding 层之后添加一个池化层,通过使用sum pooling 或者 avg pooling ,从而将用户的一组历史行为 embedding 转化为固定尺寸的embedding 向量。这将导致部分信息丢失,从而无法充分利用用户丰富的历史行为数据。

    论文 《Deep Interest Network for Click-Through Rate Prediction》 提出了深度兴趣网络 Deep Interest network:DIN 模型,该模型通过兴趣分布来刻画用户的不同兴趣,并针对候选广告(淘宝的广告也是一种商品)设计了类似 attention 的网络结构来激活局部的相关兴趣,使得与候选广告相关性更高的兴趣获得更高的权重。

    另外,论文为了解决过拟合问题提出了一种有效的自适应正则化技术。

  2. 展示广告系统 display advertising system 的应用场景如下所示。当用户访问电商网站时:

    • 首先检查用户的历史行为数据
    • 然后根据 matching 模块召回候选广告集
    • 接着根据 ranking 模块预测用户对每个广告的点击率,挑选出点击率最高的一批广告
    • 最后曝光广告并记录用户的行为

    注意:电商领域的广告也是一种商品。即:被推广的目标就是广告主期望售卖的商品。

    十二、DIN - 图2

  3. 与搜索广告不同,大部分用户进入展示广告系统时并没有明确的兴趣意图。因此我们需要从用户的历史行为数据中有效抽取用户兴趣。

12.1 模型

  1. 样本原始特征由稀疏 ID 组成,我们将其划分为四组:

    • 用户画像特征:包括用户基础画像如年龄、性别等。
    • 用户行为特征:包括用户历史访问的商品id、历史访问的店铺id、历史访问的商品类别id 等。
    • 广告特征:包括广告的商品id、店铺id、商品类别id 等。
    • 上下文特征:包括访问时间等。

    这里不包含任何交叉特征,交叉特征由神经网络来捕获。

    十二、DIN - 图3

  2. DIN 模型(右图)和基准模型 Base Model (左图)如下图所示。

    十二、DIN - 图4

  3. 基准模型采用 embedding&MLP 结构,它由两个部分组成:

    • embedding 部分:将稀疏 id 特征映射到 embedding 向量。
    • MLP 部分:将 embedding 向量馈入 MLP 来预测输出。

    由于输入中包含长度可变的行为序列ID,因此基准模型采用一个池化层(如 sumpooling )来聚合 embedding 向量序列,从而获得固定尺寸的向量。

    基准模型在实践中表现良好,但是在池化过程中丢失了很多信息。即:池化操作破坏了用户行为数据的内部结构。

  4. 假设用户 u 的分布式表达为 十二、DIN - 图5,广告 a 的分布式表达为 十二、DIN - 图6 。我们通过内积来衡量用户和广告的相关性:十二、DIN - 图7

    假设用户 u 和广告 a,b 的相关性都很高,则 十二、DIN - 图8 的值都会较大。那么位于 十二、DIN - 图9 之间的点都会具有很高的相关性得分。这给用户和广告的分布式表达建模带来了硬约束。

    • 我们可以通过增加向量空间的维数来满足约束条件,但是这会导致模型参数的巨大增长。

    • DIN 通过让 十二、DIN - 图10 称为 十二、DIN - 图11 的函数来解决这个问题:

      十二、DIN - 图12

      其中:

      • 十二、DIN - 图13 是用户第 i 个行为id (如商品id、店铺 id )的 embedding 向量
      • 十二、DIN - 图14 是用户所有行为 idembedding 向量的加权和,权重 十二、DIN - 图15 是用户第 i 个行为对候选广告 aattention score

      因此用户的 embedding 向量根据不同的候选广告而有所不同,即:局部激活。而通过 sum pooling 融合历史行为来实现兴趣多样性。

12.2 Dice 激活函数

  1. PReLU 激活函数是一种广泛应用的激活函数,其定义为:

    十二、DIN - 图16

    其中 十二、DIN - 图17 是一个很小的数。

    PReLU 激活函数类似 Leaky ReLU,它用于避免零梯度。研究表明:PReLU激活函数虽然能提升准确率,但是会有引入一些额外的过拟合风险。

    为进一步提高模型的收敛速度和预测能力,论文设计了一个新的、依赖于数据的激活函数,称作 Dice

    十二、DIN - 图18

    其中:

    • 十二、DIN - 图19十二、DIN - 图20 是训练期间基于 mini-batch 统计得到的均值和方差,十二、DIN - 图21 为一个小的正数从而平滑结果。

    • 在推断期间我们使用 十二、DIN - 图22十二、DIN - 图23

      十二、DIN - 图24

      其中 十二、DIN - 图25 分别为第 十二、DIN - 图26mini-batch 统计得到的均值和方差,十二、DIN - 图27 为超参数(入 0.99 )。

      最后一个迭代步的 十二、DIN - 图28十二、DIN - 图29 就是推断期间用到的均值和方差。

      十二、DIN - 图30

  2. Dice 可以视为一个 soft rectifier ,它带有两个通道 十二、DIN - 图31十二、DIN - 图32 ,通过 十二、DIN - 图33 控制这两个通道的流量。

  3. Dice 的核心思想是:根据数据来自适应的调整整流点 rectifier point,而不是像 PReLU 一样整流点在零点。

12.3 自适应正则化

  1. 实验显示:当添加细粒度的、用户访问过的商品id 特征时,模型的性能(验证auc)在第一个 epoch 后迅速下降。这表明模型遇到严重过拟合。

    由于 web-scale 级别的用户行为数据遵从长尾分布,即:大多数行为特征ID 在训练样本中仅出现几次。这不可避免地将噪声引入到训练过程中,并加剧过拟合。

    缓解该问题地一种简单方式是:过滤掉低频地行为特征ID 。这可以视为一种人工正则化策略。

    这种过滤策略太过于粗糙,因此论文引入了一种自适应地正则化策略:根据行为特征ID 出现地频率对行为特征ID 施加不同地正则化强度。

  2. 定义 十二、DIN - 图34size = bmini batch 样本集合,十二、DIN - 图35 表示训练集中行为特征ID = i 出现的频次,十二、DIN - 图36 为正则化系数。

    定义参数更新方程为:

    十二、DIN - 图37

    其中:

    • 十二、DIN - 图38 表示特征 ID = i 对应的 embedding 向量,它也是embedding 参数。

    • 十二、DIN - 图39 用于指示:十二、DIN - 图40 中是否有特征 i 非零的样本。

      十二、DIN - 图41

    该正则化项惩罚了低频特征。

12.4 XDL

  1. 实践中发现:大多数DNN 网络都是基于以下两个部分来构建:

    • 采用 embedding 技术将高维的原始稀疏特征转换为低维的 embedding 向量
    • 将得到的 embedding 向量馈入 MLP/RNN/CNN 等网络。

    模型参数主要集中在 embedding 部分,这部分需要在多台机器上分配;第二个部分可以在单台机器上处理。

    基于该思想,论文提出了支持多GPU分布式训练的 X-Deep Learning:XDL 平台,该平台支持模型并行和数据并行,其目标是解决大规模稀疏输入特征、百亿级参数的工业级深度学习网络的挑战。

    XDL平台主要有三个组件:

    • 分布式embedding 层:它是一个模型并行模块,embedding 层的参数分布在多个 GPU 上。

      embedding 层作为一个预定义的网络单元来使用,提供前向、反向传播两种工作模式。

    • 本地后端local backend 模块:它是一个独立的模块,用于处理本地网络的训练。

      其优点是:

      • 采用统一的数据交换接口和抽象,我们可以轻松的集成和切换不同的框架。
      • 论文复用了开源的深度学习框架,如 tensorflow,mxnet,theano 等。因此可以方便的跟进开源社区并利用最新的网络结构和算法的好处。
    • 通信模块:它是基础模块,用于帮助分布式embedding 层和本地后端实现并行。

      论文的第一版中,它基于 MPI 实现的。

    十二、DIN - 图42

  2. DINXDL 平台上训练,并采用了 common feature 技巧。

    由于 XDL 平台的高性能和灵活性,训练速度加快了10倍,从而以更高的效率优化超参数。

12.5 实验

  1. 评估指标:AUCGroup AUC : GAUC

    GAUCAUC 的推广,它是 AUC 的加权平均:

    十二、DIN - 图43

    其中:十二、DIN - 图44 表示用户 i 的所有样本对应的 auc十二、DIN - 图45 是用户 i 的所有样本数。

    事实证明:GAUC 在展示广告中更具有指导意义。 AUC 考虑所有样本的排名,而事实上在线上预测时,对于给定用户我们只需要考虑候选广告的排名。

    GAUC 对每个用户单独进行处理,先考虑每个用户的预测结果,再对所有用户进行加权。这可以消除用户 bias 的影响。

    如:模型倾向于对女性用户打高分(预测为正的概率较高),对男性用户打低分(预测为正的概率较低)。

    • 如果采用AUC 则指标效果一般,因为男性正样本打分可能低于女性负样本。
    • 如果采用 GAUC 则指标效果较好,因为男性用户、女性用户各自的 AUC 都较高,加权之后的 GAUC 也较高。这和线上投放的方式一致。

12.5.1 可视化

  1. DIN 模型中,稀疏ID 特征被编码为embedding 向量。这里随机选择 9 个类别(服装、运动鞋、箱包等),每个类别选择 100 种商品。这些商品的 embedding 向量通过 t-SNE 可视化如下图。

    图中具有相同形状的点对应于同一类别颜色和点击率预测值相对应。从图中可以清楚看到 DIN embedding 的聚类特性。

    十二、DIN - 图46

  2. DIN 基于 attention 单元来局部激活与候选广告相关的历史行为。下图展示了候选广告相关的注意力得分。

    可以看到:与候选广告高度相关的历史行为获得了很高的注意力得分。

    十二、DIN - 图47

12.5.2 自适应正则化

  1. 基准模型和DIN 模型都会遇到过拟合问题。下图展示了具有细粒度商品ID 特征时的训练过程,图中清楚的看到过拟合问题(without reg )。

    论文比较了几种正则化技术:

    • dropout:在每个样本中,随机丢弃 50% 的历史行为商品ID

    • 人工频率过滤:在每个样本中,人工去掉历史行为中的低频商品ID,保留高频商品ID

    • 十二、DIN - 图48 正则化:采用正则化系数 十二、DIN - 图49十二、DIN - 图50 正则化。

    • DiFacto 正则化:正则化系数 十二、DIN - 图51

      十二、DIN - 图52

    • 自适应正则化::正则化系数 十二、DIN - 图53

    比较结果如下图所示:

    • 不带任何正则化时(without reg ),模型发生严重过拟合。
    • dropout 正则化会缓解过拟合,但是同时会导致收敛速度在第一个epoch 变慢。
    • 人工频率过滤正则化也会缓解过拟合,同时在第一个epoch 保持同样的收敛速度(和无任何正则化方法相比),但是最终模型性能比 dropout 效果更差。
    • DiFactro 正则化对于用户历史行为中的高频商品设置更大惩罚。但是在我们的任务中,高频商品更能代表用户的兴趣,而低频商品代表噪声。因此这种形式的正则化效果效果甚至不如 十二、DIN - 图54 正则化。
    • 自适应正则化方法在第一个epoch 之后几乎看不到过拟合,在第二个epoch 验证集的 lossGAUC 几乎已经收敛。这证明了自适应正则化方法的有效性。

    十二、DIN - 图55

12.5.3 模型对比

  1. 在淘宝线上展示广告系统中比较了不同的模型效果。

    • 训练数据和测试数据采集自系统日志(曝光日志和点击日志)。论文收集了两周的样本作为训练集,下一天的样本作为测试集。

    • 基准模型和 DIN 模型的参数各自独立调优,并且报告各自最佳结果。

    • 结论:

      • 使用自适应正则化的 DIN 使用基准模型一半的迭代次数就可以获得基准模型最好的 GAUC

        最终 DIN 模型相比基准模型获得了 1.01% 的绝对 GAUC 增益。

      • 采用Dice 激活函数之后,DIN 模型提高了 0.23% 的绝对 GAUC 增益。

    十二、DIN - 图56

    十二、DIN - 图57