十六、DeepMCP[2019]

  1. 点击率 click-through rate: CTR预估是预测用户点击某个 item 的概率。它在在线广告系统中扮演着重要的角色。例如,广告排序策略通常取决于 CTR x bid,其中 bid 为广告的点击出价。此外,根据常见的 cost-per-click: CPC 扣费模式,广告主仅在用户点击广告之后才扣费。因此,为了最大限度地提高收入并保持理想的用户体验,准确预估广告的 CTR 至关重要。

    CTR 预估引起了学术界和工业界的广泛关注。例如:

    • 逻辑回归 Logistic Regression: LR 模型考虑了线性的特征重要性,并将预测的 CTR 建模为: ,其中 sigmoid 函数, 为权重系数,bias 为特征向量。

    • 分解机 Factorization Machine: FM 模型进一步对 pairwise 特征交互interaction 进行建模。它将预估的 CTR 建模为:,其中 为第 个特征的潜在 embedding 向量, 为第 个特征的取值。

    • 近年来,深度神经网络 Deep Neural Network: DNN 被广泛用于 CTR 预估和 item 推荐,从而自动学习特征 representation 和高阶特征交互。

    • 为了同时利用浅层模型和深层模型,人们还提出了混合模型。例如:

      • Wide & Deep 结合了 LRDNN,从而提高模型的 memorizationgeneralization 能力。
      • DeepFM 结合了 FMDNN ,从而进一步提高了学习特征交互的模型能力。
      • Neural Factorization Machine: NFM 结合了 FM 的线性和 DNN 的非线性。 尽管如此,这些模型仅考虑了 feature-CTR 关系,并且存在数据稀疏问题。论文 《Representation Learning-Assisted Click-Through Rate Prediction》 提出的 DeepMCP 模型额外考虑了 feature-feature 关系,例如如 user-ad 关系、ad-ad 关系,从而学习更多信息丰富的、统计可靠的特征representation ,最终提高 CTR 预估的性能。下图说明了DeepMCP(图 (b)) 和其它方法图 (a))的主要区别:
    • (a):经典的 CTR 预估方法建模 feature-CTR 关系。

    • (b)DeepMCP 进一步对 feautre-feature 关系进行建模,诸如 user-ad 关系(虚实线)、ad-ad 关系(点线)。

    注意:FM 模型中的特征交互仍然是建模 feature-CTR 关系。可以将其视为tow_features-CTR 关系,因为它建模了特征交互 CTR 的关系,但是并未建模两个特征representation 是否应该彼此相似。其中 是第 个特征的 latent embedding 向量, 是第 个特征的取值。

    更具体而言,论文提出的 DeepMCP 模型包含三个部分:一个 matching subnet、一个 correlation subnet、一个 prediction subnet ,这也是 DeepMCP 模型名称的由来。这三个部分共享相同的 embedding 矩阵。

    • matching subnetuser-ad 的关系(即,广告是否匹配用户的兴趣)进行建模,并旨在学习有用的用户representation 和有用的广告 representation
    • correlation subnetad-ad 的关系(即,哪些广告位于用户点击序列的时间窗口内)进行建模,并旨在学习有用的广告 representation
    • prediction subnetfeature-CTR 关系进行建模,并旨在预测在给定所有特征的条件下的 CTR

    当这些 subnet 在目标label 的监督下联合优化时,学到的特征representation既具有良好的预测能力、又具有良好的表达能力。此外,由于同一个特征以不同的方式出现在不同的 subnet 中,因此学到的 representation 在统计上更加可靠。

    总之,论文的主要贡献是:

    • 论文提出了一种用于 CTR 预估的新模型 DeepMCP。与主要考虑 feature-CTR 关系的经典 CTR 预估模型不同,DeepMCP 进一步考虑了 user-ad 关系和 ad-ad 关系。
    • 论文对两个大规模数据集进行了大量实验,从而比较了 DeepMCP 和其它几个 state-of-the-art 模型的性能。论文还公开了 DeepMCP 的实现代码。
  2. 相关工作:

    • CTR 预估:CTR 预估引起了学术界和工业界的广泛关注。

      • 广义线性模型,如逻辑回归 Logistic Regression: LRFollow-The-Regularized-Leader: FTRL 在实践中表现出不错的性能。然而,线性模型缺乏学习复杂特征交互的能力。
      • 分解机 Factorization Machine: FM 以被涉及特征的潜在向量 latent vector 的形式对 pairwise 特征交互建模。
      • Field-aware FMField-weighted FM 进一步考虑了特征所属 field 的影响,从而提高 FM 的性能。

      近年来,深度神经网络 Deep Neural Network 被广泛用于 CTR 预估和 item 推荐,以自动学习特征 representation 和高阶特征交互。

      • Factorization-machine supported Neural Network: FNN 在应用 DNN 之前预训练 FM
      • Product-based Neural Network: PNNembedding layer 和全连接层之间引入了 product layer
      • Wide & Deep 结合了 LRDNN,从而提高模型的 memorizationgeneralization 能力。
      • DeepFMFM 一样对低阶特征交互进行建模,并像 DNN 一样对高阶特征交互进行建模。
      • Neural Factorization Machine: NFM 结合了 FM 的线性和神经网络的非线性。

      尽管如此,这些方法主要是对 feature-CTR 关系进行建模。我们提出的 DeepMCP 模型进一步考虑了 user-adad-ad 的关系。

    • Multi-modal / Multi-task Learning:我们的工作也与多模态/多任务学习密切相关,其中引入了多种信息或辅助任务来帮助提高main task 的性能。

      • 《Collaborative knowledge base embedding for recommender systems》 利用知识库 knowledge base 中的异质信息 heterogeneous information(如结构化内容、文本内容、视觉内容)来提高推荐系统的质量。
      • 《Recommendation with multisource heterogeneous information》 除了利用经典的 item 结构信息之外,还利用文本内容和社交 tag 信息来改进推荐。
      • 《Improving entity recommendation with search log and multi-task learning》 引入上下文感知排序 context-aware ranking 作为辅助任务,以便更好地对实体推荐中的 query 语义进行建模。
      • 《Deep cascade multi-task learning for slot filling in online shopping assistant》 提出了一种多任务模型,该模型额外学习了 segment taggingnamed entity tagging ,从而用于在线购物助手中的槽位 slot 填充。

      在我们的工作中,我们解决了一个不同的问题。我们引入了两个辅助的、但是相关的任务(即共享了 embeddingmatching subnetcorrelation subnet)来提高 CTR 预估的性能。

16.1 模型

  1. 在线广告中点击率预估任务是估计用户点击特定广告的概率。下表展示了一些样本实例,每一行都是 CTR 预估的一个样本。其中第一列是 label(点击是 1、未点击是 0)。每个样本可以用多个 field 来描述,例如用户信息field(用户 ID、城市等)和广告信息 field(创意ID、标题等)。field 的实例化对应了一个特征。

    与大多数主要考虑 feature-CTR 关系的现有 CTR 预估模型不同,我们提出的 DeepMCP 模型额外考虑了 user-adad-ad 关系。DeepMCP 包含三个部分:一个 matching subnet、一个 correlation subnet、一个 prediction subnet ,如下图 (a) 所示。当这些 subnet 在目标label 的监督下联合优化时,学到的特征representation既具有良好的预测能力、又具有良好的表达能力。

    DeepMCP 的另一个特点是:尽管在训练过程中所有 subnet 都处于活跃状态,但是在测试过程中只有 prediction subnet 处于活跃状态,如下图 (b) 所示。这使得测试阶段变得相当简单和高效。

  2. 我们将特征分为四组:用户特征(如用户 ID、年龄)、query 特征(如 queryquery category )、广告特征(如创意ID、广告标题)、其它特征(如一天中的小时、星期)。每个 subnet 使用不同的特征集合。具体而言:prediction subnet 使用所有四组特征,matching subnet 使用 user, query, ad 三组特征,correlation subnet 仅使用 ad 特征。所有 subnet 共享相同的 embedding 矩阵。

    注意:Context ad featuresNegative ad featurescorrelation subnet 中,位于用户点击序列的时间窗口内上下文广告、以及窗口外的负采样广告。它们仅用于 correlation subnet

  3. DeepMCP 的整体结构如下图所示,所有的subnet 共享相同的 embedding 矩阵。

16.1.1 Prediction Subnet

  1. prediction subnet 这里是一个典型的 DNN 模型,它对 feature-CTR 关系进行建模(其中显式地或隐式地对特征交互进行建模)。它旨在在目标 label 的监督下,根据所有特征预估点击率。尽管如此,DeepMCP 模型非常灵活,可以使用任何其它CTR 预估模型来代替prediction subnet,如 Wide & DeepDeepFM 等。

    prediction subnet 的整体结构为:

    • 首先,单个特征 (如用户ID)通过一个 embedding 层,然后映射到对应的embedding 向量 ,其中 embedding 向量维度, 为待学习的参数。

      假设特征 的取值集合规模为 ,则这个特征所有 embedding 的集合构成一个 embedding 矩阵

      注意:

      • 这里假设所有特征都是离散的。如果存在连续值的特征,则需要首先对其进行离散化。
      • 对于多类别的离散特征(如广告标题中的 bi-gram,一个广告标题可能包含多个 bi-gram),我们首先将每个 bi-gram 映射到一个 embedding 向量,然后再执行一个 sum pooling 从而得到广告标题的、聚合后的 embedding 向量。
    • 接着,我们将样本的所有特征的 embedding 向量拼接为一个长的向量 。然后向量 经过若干层全连接层fully connected:FC 层(带有 ReLU 非线性激活函数),从而学到高阶的非线性特征交互。

    • 最后,最后一层 FC 层的输出 通过一个 sigmoid 函数从而得到预估的 CTR

      其中 都是待学习的模型参数。

    为缓解过拟合,我们在每个 FC 层之后都应用了 dropout

  2. prediction subnet 的损失函数为训练集的交叉熵:

    其中: 为训练样本的数量; 为第 个样本是否点击的真实label 为第 个样本预估的CTR

16.1.2 Matching Subnet

  1. matching subnetuser-ad 的关系(即,广告是否匹配用户的兴趣)进行建模,并旨在学习有用的用户representation 和有用的广告 representation 。它的灵感来自于网络搜索的语义匹配模型semantic matching model

  2. 在推荐系统的经典矩阵分解中,rating score 近似为用户ID 潜在向量和item ID 潜在向量的内积。在我们的问题中,我们没有直接 match 用户 ID 和广告ID,而是在更高级别上进行了 match ,并结合了关于用户的所有特征、关于广告的所有特征。

    当用户点击广告时,我们假设所点击的广告至少部分和用户需求相关(考虑到用户提交的 query,如果有的话)。因此,我们希望用户特征(和query 特征)的 representation 和广告特征的 representation 相匹配。

    具体而言,matching subnet 包含两个部分:

    • 用户部分 user part:用户部分的输入是用户特征(如用户ID、年龄)和 query 特征(如 queryquery category)。

      像在 prediction subnet 中一样,单个特征 首先经过 embedding 层,然后映射为对应的 embedding 向量 。然后我们将单个用户 的多种特征的 embedding 拼接为长向量 ,其中 为长向量的维度。

      然后向量 经过若干层全连接层fully connected:FC 层(带有 ReLU 非线性激活函数),从而学到高阶的非线性特征交互。对于最后一个 FC 层,我们使用 tanh 非线性激活函数(而不是 ReLU),我们后面解释这么做的原因。

      用户部分的输出是一个 high-level 的用户 representation 向量 ,其中 为向量维度。

    • 广告部分 ad part:广告部分的输入是广告特征(如广告ID、广告标题)。

      同样,我们首先将每个广告特征映射到对应的 embedding 向量,然后将单个广告 的多种特征的 embedding 拼接为长向量 ,其中 为长向量的维度。

      然后向量 经过若干层全连接层fully connected:FC 层(带有 ReLU 非线性激活函数),从而得到一个 high-level 的广告 representation 向量 。同样地,对于最后一个 FC 层,我们使用 tanh 非线性激活函数(而不是 ReLU)。

    注意:通常用户部分、广告部分的输入具有不同的特征维度,即 。因为用户特征和广告特征的类别、数量通常都不相等。但是,经过 matching subnet 之后, 具有相同的维度 。换句话讲,我们将两组不同的特征投影到一个公共的低维空间中。

    然后我们通过下式计算 matching score 为:

    我们并没有使用 ReLU 作为最后一个 FC 层的激活函数,因为 ReLU 之后的输出将包含很多零,这使得

    注意:前面 prediction subnet 最后一个 FC 层仍然采用 ReLU,因为其输出为 是和模型参数 进行内积。 为零的概率远小于

  3. 至少有两种选择来建模 matching score

    • point-wise 模型:当用户 点击广告 时,则 ;当用户 未点击广告 时,则
    • pair-wise 模型:如果用户 点击了广告 但是未点击广告 ,则 ,其中 margin 超参数。

    这里我们选择 point-wise 模型,因为它可以直接将训练数据集重新用于 prediction subnet 。我们将 matching subnet 的损失函数定义为:

    其中: 为样本数量;如果用户 点击广告 ,否则

  4. matching subnet 也是采用是否点击作为label,这和 prediction subnet 完全相同。二者不同的地方在于:

    • matching subnetuv 粒度,而 prediction subnetpv 粒度。
    • matching subnet 通过representation 向量的内积来建模用户和广告的相关性,用户信息和广告信息只有在进行内积的时候才产生融合。而 prediction subnet 直接建模点击率,用户信息和广告信息在 embedding layer 之后就产生融合。

16.1.3 Correlation Subnet

  1. correlation subnetad-ad 的关系(即,哪些广告位于用户点击序列的时间窗口内)进行建模,并旨在学习有用的广告 representation 。在我们的问题中,由于用户的点击广告构成了随时间推移的、具有一定相关性的序列,因此我们使用 skip-gram 模型来学习有用的广告representation

    给定单个用户点击广告的广告序列 ,我们最大化平均对数似然:

    其中: 是广告序列长度, 为上下文窗口大小。

  2. 概率 可以通过不同的方式进行定义,例如 softmax、层次 softmax、负采样。由于负采样的效率高,我们选择负采样技术将 定义为:

    其中:

    • 为负采样的广告数,sigmoid 函数。
    • 为广告 high-level representation,它涉及广告 的所有特征,并经过多个 FC 层。
  3. correlation subnet 的损失函数为负的对数似然:

    考虑所有用户的 则得到 correlation subnet 总的损失。

16.1.4 其它

  1. 离线训练过程:DeepMCP 的最终联合损失函数为:

    其中 为超参数,它们平衡了不同 subnet 的重要性。

    DeepMCP 通过在训练集上最小化联合损失函数来训练。由于我们的目标是最大化 CTR 预估性能,因此训练过程中我们在独立的验证集上评估模型,并记录验证 AUC。最佳模型参数在最高的验证 AUC 处获得。

  2. 在线预测过程:DeepMCP 模型仅需要计算预估的点击率pCTR,因此只有prediction subnet 处于活跃状态。这使得 DeepMCP 的在线预测阶段相当简单和高效。

16.2 实验

  1. 数据集:我们使用两个大型数据集:

    • Avito 广告数据集:数据集包含来自俄罗斯最大的通用分类网站 avito.ru 的广告日志的随机样本。我们将 2015-04-28 ~ 2015-05-18 的广告日志用于训练、2015-05-19 的广告日志用于验证、2015-05-20 的广告日志用于测试。

      CTR 预估中,测试通常是第二天的预测,这里测试集包含 个样本。用到的特征包括:用户特征(如用户 IDIP ID 、用户浏览器、用户设备)、query 特征(如queryquery categoryquery 参数)、广告特征(如广告ID、广告标题、广告cateogry)、其它特征(如 hour of dayday of week )。

    • Company 广告数据集:数据集包含来自阿里巴巴商业广告系统的广告曝光日志和点击日志的随机样本。我们使用 2018 年八月到九月连续30 天的日志用于训练,下一天的日志用于验证、下下一天的日志用于测试。

      测试集包含 个样本。用到的特征也包括用户特征、query 特征、广告特征、其它特征。

  2. baseline 方法:我们使用以下 CTR 预估的 baseline 方法:

    • LR:逻辑回归方法。它是线性模型,建模了特征重要性。
    • FM:因子分解机。它同时对一阶特征重要性和二阶特征交互进行建模。
    • DNN:深度神经网络,它包含一个 embedding 层、几个 FC 层、一个输出层。
    • Wide & Deep:它同时结合了 LRwide 部分)、DNNdeep 部分)。
    • PNNproduct-based 神经网络,它在 DNNembedding 层和 FC 层之间引入了一个乘积层production layer
    • DeepFM:它结合了 FMwide 部分)、DNNdeep 部分)。
    • DeepCPDeepMCP 模型的一种变体,仅包含 correlation subnetprediction subnet 。它等价于在联合损失函数中设置
    • DeepMPDeepMCP 模型的一种变体,仅包含 matching subnetprediction subnet 。它等价于在联合损失函数中设置
  3. 实验配置:

    • 考虑到每个特征的取值范围很广,因此我们设置每个特征的维度 ,从而防止 embedding 矩阵规模太大。
    • 对于基于神经网络的模型,我们设置全连接层的层数为 2、维度分别为 512256
    • 我们设置 batch size=28,上下文窗口大小 ,负采样广告数量为 dropout rate=0.5
    • 所有这些方法都在 tensorflow 中实现,并通过 Adagrad 算法进行优化。
  4. 评估指标:测试 AUC (越大越好)、测试 logloss (越小越好)。

  5. 实验结果如下表所示,可以看到:

    • FM 性能要比 LR 好得多,这是因为 FM 建模了二阶特征交互,而 LR 仅建模一阶的特征重要性。

    • DNN 性能进一步优于 FM,因为它可以学习高阶非线性特征交互。

    • PNN 优于 DNN,因为它进一步引入了 production layer

    • Wide & Deep 进一步优于 PNN,因为它结合了 LRDNN,从而提高了模型的记忆memorization 能力和泛化generalization 能力。

    • DeepFM 结合了 FMDNN,它在 Avito 数据集上优于 Wide & Deep,但是在 Company 数据集上性能稍差。

    • DeepCPDeepMP 在两个数据集上都超越了表现最好的 baseline

      由于 baseline 方法仅考虑单个CTR 预估任务,因此这些观察结果表明:考虑额外的 representation learning 任务可以帮助更好地执行 CTR 预估。

    • 还可以观察到 DeepMP 的性能比 DeepCP 更好,这表明:matching subnet 要比 correlation subnet 带来更多的好处。

      这是可以理解的,因为 matching subnet 同时考虑了用户和广告,而 correlation subnet 仅考虑了广告。

    • DeepMCP 在这两个数据集上均表现最佳,这些证明了 DeepMCP 的有效性。

  6. 超参数 的影响:下图分别给出了 超参数对于DeepMCP 测试 AUC 的影响,其中 Pred 表示 DNNPred+Corr 表示DeepCPPred+Match 表示 DeepMP 。可以看到:

    • 当超参数 或者 开始增加时,测试AUC 开始提升;当 或者 继续增加时,测试 AUC 开始下降。
    • Company 数据集上,较大的 可能导致非常差的性能,甚至比单纯的 DNN 更差。
    • 总体而言,matching subnetcorrelation subnet 带来更大的测试 AUC 提升。

  7. 隐层维度的影响:下图给出了两层隐层的模型中,测试 AUC 和隐层维度的关系。为了方便阅读,我们仅展示了 DNN, Wide & Deep, DeepMCP 的结果。我们使用收缩结构,其中第二层维度为第一层维度的一半。第一层维度选择从 128 增加到 512

    可以看到:当隐层维度增加时,测试 AUC 通常会提升;但是当维度进一步增加时,测试 AUC 可能会下降。这可能是因为训练更复杂的模型更加困难。

  8. 隐层数量的影响:我们对比了不同深度的模型的效果。为了方便阅读,我们仅展示了 DNN, Wide & Deep, DeepMCP 的结果。我们分别使用一层([256])、两层([512, 256])、三层([1024, 512, 256])、四层([2048, 1024, 512, 256])。

    可以看到:

    • 当隐层数量从1 层增加到 2 层时,模型性能通常会提高。这是因为更多的隐层具有更好的表达能力。
    • 但是当隐层数量进一步增加时,性能就会下降。这是因为训练更深的神经网络更加困难。

十七、MIMN[2019]

  1. 不断发展的互联网将我们带入具有个性化在线服务的数字世界。从在线系统收集的大量用户行为数据为我们提供了更好地了解用户偏好的绝佳机会。从技术上讲,从丰富的行为数据中捕获用户兴趣至关重要,因为它有助于典型的现实世界application (如推荐系统、在线广告)的显著改进。这里我们限制在点击率Click-Through Rate: CTR预估建模的任务上。CTR 预估在在线服务中起着至关重要的作用。这里讨论的解决方案也适用于许多相关任务,例如转化率 conversion rate: CVR 预估和用户偏好建模。

    在深度学习的推动下,人们已经提出了体系结构精心设计的、用于建模用户兴趣的深度 CTR 模型,从而实现了 state-of-the-art 效果。这些模型大致可以分为两类:

  1. 相关工作:

    • Deep CTR Model:随着深度学习的快速发展,我们在计算机视觉、自然语言处理等诸多领域取得了进展。受这些成功的启发,人们提出了许多基于深度学习的 CTR 预估方法。与传统方法中的特征工程不同,这些方法利用神经网络来捕获特征交互。虽然这个思想看起来很简单,但是这些工作在 CTR 预估任务的发展上向前迈出了一大步。之后,工业社区更多地关注模型架构设计,而不是通过无穷无尽的特征工程来提高性能。

      除了学习特征交互之外,人们还提出了越来越多的方法来从丰富的历史行为数据中获取用户的洞察 insight

      • DIN 指出用户的兴趣是多样化的,并且随着目标 item 的不同而不同。DIN 中引入了注意力机制来捕获用户的兴趣。
      • DIEN 提出了一个辅助损失来从具体行为中捕获潜在的兴趣,并改进了 GRU 从而建模兴趣演变。
    • Long-term User Interest

      • 《Learning implicit user interest hierarchy for context in personalization》 认为长期兴趣意味着通用兴趣general interest ,这是用户大脑根深蒂固的、对个性化很重要的因素。
      • 《Framework for selecting and delivering advertisements over a network based on combined short-term and long-term user behavioral interests》 提出对用户对类目的长期兴趣建模。
      • 《Incremental update of long-term and short-term user profile scores in a behavioral targeting system》 增量地建模长期和短期用户画像 score,从而表达用户的兴趣。

      所有这些方法都通过特征工程来建模长期兴趣,而不是通过自适应端到端的学习。TDSSM 提出联合建模长期用户兴趣和短期用户兴趣来提高推荐质量。不幸的是,这些基于深度学习的方法,如 TDSSM、DIN、DIEN 很难部署在面临极长用户行为序列的实时预估 server 中。存储压力、计算延迟将随着用户行为序列的长度线性增长。在工业 application 中,行为序列的长度通常很小(例如 50),然而淘宝的活跃用户可能会在两周内留下长度超过 1000 的行为(如点击、转化等)。

    • Memory Network:记忆网络已经被提出用于使用外部记忆组件external memory component 提取知识。这个思想在 NLP 中得到了广泛的应用,如问答系统question answering system 。一些工作利用记忆网络进行用户兴趣建模。然而,这些方法忽略了长期兴趣建模和实际部署问题。

17.1 模型

17.1.1 UIC

  1. 在现实世界的推荐系统或者广告系统中,点击率预估模块是至关重要的组件。通常点击率预估模块接收一组候选对象(如item 或者广告),并通过执行实时的模型推断来返回相应的预估点击率。这一过程需要在严格的延迟时间内完成,实践中典型的延迟时间为 10ms

    下图简要介绍了在线展示广告系统online display advertising system 中用于 CTR 任务的实时预估(RealTime Prediction: RTP) 系统。为了便于读者理解,我们假设对 RTP 的请求输入仅包含用户和广告信息,忽略了上下文或其它信息。

  2. 在工业应用中,如电商行业的推荐系统,用户行为特征在特征集合中的贡献最大。例如,在我们的推荐系统中,接近 90% 的特征是用户行为特征,剩余 10% 的特征是用户人口统计特征 user demography featur 和广告特征。这些用户行为数据包含丰富的信息,对于用户兴趣建模很有用。

    下图显示了我们系统中不同天数收集的用户行为序列的平均长度,以及使用不同长度的用户行为特征训练的basic modelEmbedding & MLP)的离线性能。无需任何其它努力,当使用长度为 1000 的用户行为序列时,basic model 要比使用长度为 100 的用户行为序列,在 AUC 上提升 0.6% 。值得一提的是,仅 0.3%AUC 提升对我们的业务而言就足够了。

    这种AUC 的提升表明:利用较长的用户行为序列数据具有很大的价值。

  3. 然而,利用长的用户行为序列数据带来了巨大的挑战。

    实际上,数以亿计用户的行为特征非常庞大。为了在推荐系统中保持低延迟和高吞吐量,通常将行为特征存储在额外的分布式内存存储系统中distributed in-memory storage system,例如我们系统中的 TAIR (阿里巴巴实现的一个分布式 key-value 存储系统)。这些特征将被提取到预测服务器 prediction server ,并在流量请求到来时参与实时推断的计算。

    根据我们的实践经验,在我们的系统中实现 DIEN 会花费很多工程工作。为了使得延迟和吞吐量都满足 RTP 系统的性能需求,用户行为序列的长度最高为 150,无法达到长度为 1000 的情况。

    直接包含更多的用户行为数据非常困难,因为面临几个挑战。其中两个最关键的挑战包括:

    • 存储约束:我们系统中有超过 6 亿用户,每个用户的行为序列的最大长度为 150 。这将花费大约 1TB 的存储空间,该存储空间不仅存储 product_id,也会存储其它相关的特征id(如shop_idbrand_id 等)。

      当用户行为序列的长度最大为 1000 时,将会消耗 6TB 的存储空间,并且该数量还会随着用户行为序列的长度而线性增加。如前所述,我们的系统中使用高性能存储来保持低延迟和高吞吐量,而维持如此大的存储太昂贵了。庞大的存储量也导致用户行为特征的相应计算和更新的成本很高。

      因此,较长的用户行为序列意味着无法接受的存储消耗。

    • 延迟约束:众所周知,使用序列的深度网络sequential deep network 进行实时推断非常困难,尤其是在我们的请求量很大的情况下。DIEN 部署了多种技术,可以将我们系统中 DIEN serving 的延迟降低到 14ms,而每个 workerQuery Per Second: QPS 的容量 capacity500

      然而,当用户行为序列的长度最大为 1000 时,DIEN 的延迟在 500 QPS 时会高达 200ms 。我们的展示广告系统很难容忍 500 QPS 下的 30ms 延迟限制。因此,在当前的系统架构下,无法获得长的用户行为序列的好处。

  4. 为解决上述针对长的用户行为序列建模的挑战,我们提出了共同设计co-design机器学习算法和在线serving 系统的解决方案。由于用户行为建模是 CTR 预估系统最具挑战性的部分,因此我们设计了一个 User Interest Center: UIC 模块来处理它。

    下图的 B 部分说明了带有 UIC server 的、新设计的 RTP 系统。系统 AB 之间的差异是用户兴趣 representation 的计算。在 B 中,UIC server 为每个用户维护最新的兴趣representationUIC 的关键是其更新机制:用户状态的更新仅取决于实时用户行为触发事件,而不是取决于请求。 也就是说,UIC 对于实时 CTR 预测是无延迟 latency free 的。在我们的系统中,UIC 可以在 500QPS 下将长度 1000 的用户行为序列的 DIEN 模型的延迟从 200ms 降低到 19ms

    下图为CTR 任务的 RTP 系统示意图。通常 RTP 由三个关键组件构成:特征管理模块feature management module 、模型管理模块model management module、预估服务器prediction server 。系统 AB 的主要区别在于用户兴趣representation 的计算。

    • A 中,用户兴趣representation 针对每个请求在 prediction server 内执行。
    • B 中,用户兴趣 representation 针对实时的用户行为事件在 UIC server 中独立执行。也就是说,用户兴趣 representation 的计算和流量请求解耦并且是 latency free 的。

17.1.2 MIMN

  1. 这里我们详细介绍用于长的用户行为序列建模的机器学习方法。

  2. 从长序列数据中学习是困难的。众所周知,简单的 RNNRNN,GRU,LSTM )难以建模长的序列。

    注意力机制通过将序列数据中的必要信息necessary information 压缩到固定长度的张量中来提升模型的表达能力。例如,在 DIN 中,注意力机制通过 soft-search 隐状态序列(或者 source 行为序列)中与目标 item 相关的部分来工作。

    • 为了进行实时推断,注意力机制需要存储所有原始行为序列,这给在线系统的存储带来很大压力。
    • 此外,注意力的计算成本随着行为序列的长度线性增长,这对于长的用户行为序列建模是不可接受的。

    实际上,RNN 中的隐状态hidden state 并非旨在存储 source 序列历史的全部信息,而是更多地关注预测目标 predicting target。因此,最后一个隐状态可能会遗忘长期的信息 long-term information 。此外,存储所有隐状态是多余的。

    最近,人们提出了神经图灵机 Neural Turing Machine: NTMsource 序列中捕获信息,并将其存储在固定大小的外部记忆中external memory 。在很多使用长序列数据进行建模的任务中,NTM 相比 RNN 模型取得了显著提升。

    借鉴 NTM 的想法,本文中我们提出了一个基于记忆网络memory network-based 的模型,该模型为处理长的用户行为序列建模提供了新的解决方案。我们将该模型命名为 Multi-channel User Interest Memory Network: MIMN ,如下图所示。

    MIMN 由两个主要部分组成:左子网络聚焦于用户行为序列的用户兴趣建模;右子网络遵循传统的 Embedding &MLP 范式,该范式采用左子网络的输出以及其它特征作为输入。

    NIMN 的贡献在于左子网络,它是由 NTM 模型驱动的,并且包含两个重要的记忆网络架构:

  1. UIC 存储 MIMN 的外部记忆张量 external memory tensor,并利用用户的每个新行为来更新该张量。这样,UIC 从用户的行为序列中逐步捕获用户的兴趣。

    尽管 UIC 存储固定长度的记忆张量而不是原始行为序列,但是考虑到存储压力时,必须限制存储张量的大小。本文中,我们提出了记忆利用正则化memory utilization regularization ,以通过提高记忆利用utilization来提升 UIC 中的记忆张量的表达能力。

    另一方面,随着用户兴趣的变化以及随着时间的演变,我们提出使用记忆归纳单元 memory induction unit 来帮助捕获高阶信息。

  2. NTM:标准的 NTM 通过记忆网络从序列数据中捕获并存储信息。在 time step ,记忆memory 的参数记作 ,其中包含 个记忆槽 memory slot ,其中

    NTM 的两个基本操作是记忆读取 memory read 和记忆写入memory write ,它们通过一个控制器controller 来和记忆交互。

    • 记忆读取memory read:给定第 个行为的 embedding 向量 作为输入,控制器会生成一个 read key 来寻址记忆 address memory 。它首先遍历所有的记忆槽,生成一个权重向量

      其中:

      然后计算加权的memory summarization 作为输出

    • memory write:类似于memory read 操作,我们生成用于 memory write 寻址的权重向量 。控制器还生成了额外的两个keyadd vector erase vector ,从而控制 memory 的更新:

      其中:

      • erase matrix 为向量的外积。

        相当于每个 slot 提供一个加权的 erase vector ,第 slot 权重为

      • add matrix

        相当于每个 slot 提供一个加权的 add vector ,第 slot 权重为

      • 为逐元素乘积。(注:原文说的是 dot product )。

  3. Memory Utilization Regularization:实际上,basic NTM 会遭受 memory 利用utilization 不平衡unbalanced 的问题,尤其是在用户兴趣建模的场景下。即,热门的 item 倾向于在用户行为序列中频繁出现,并且主导着 memory 的更新,从而使得 memory 的使用变得低效。

    NLP 领域先前的一些工作已经提出使用 LRU 策略来平衡每个 memory 的利用utilization。由于 LRU 在处理过程的每个短序列中都非常注意平衡 memory 的利用,因此 LRU 几乎从来不会在相邻的时间步对相同的slot 写入信息。

    但是,在我们的场景中,用户可能会与隶属于相同兴趣的几种行为进行交互,这会写入同一个 slotLRU 将会使得内容寻址混乱 disorganize,并且不适合我们的任务。

    本文中,我们提出了一种称作memory 利用正则化memory utilization regularization 的新策略,该策略被证明对用户兴趣建模是有效的。

    memory utilization regularization 背后的思想是:将不同 memory slot 之间的 write weight 方差进行正则化,从而使得 memory 利用达到平衡。

    为截止到 时刻的累积的、各 slot 的更新后的权重,其中 为时刻 的、re-balancedwrite weight

    其中:

    • 为原始的 write weight,而 为新的 write weight

    • slot 之间的权重转移矩阵,它取决于:

      • ,它代表了截止到 步每个 memory slot 的累积利用accumulated utilization

      • 参数矩阵 ,它通过正则化损失来学习:

        其中: slot 数量。注意:上式中没有下标 。该正则化的物理意义为:不同 slot 的累计 write weight 的方差最小化。

        有助于降低不同 memory slotwrite weight 的方差。

    通过使用 来代替 ,则所有的 个槽的更新频率将趋于均匀。通过这种方式,所有 memory slot 的利用都被提升从而得到平衡。因此,utilization regularization 可以帮助 memory tensor 存储来自于 source 行为数据的更多信息。

  4. Memory Induction UnitNTM 中的 memory 旨在尽可能多地存储源数据中的原始信息。美中不足的是,它可能会错过捕获某些高级信息的机会,例如各部分兴趣的动态演变过程。为了进一步提升用户兴趣抽取的能力,MIMN 设计了一个 Memory Induction Unit: MIU

    MIU 还包含了一个内部的 memory ,它具有和 NTM 相同的槽数 。这里我们将每个 memory slot 视为一个用户兴趣通道user interest channel 。在时刻 MIU

    • 选择 个通道,其中通道索引为:

      其中 为前面提到的 NTMmemory read 中的权重向量。

      选择 top k 是为了挑选重要的通道,从而过滤掉噪音信号。

    • 对于第 个选中的通道,更新

      其中 NTM 的第 memory slot 为行为 embedding 向量。

      上式表明:MIU 既从原始行为输入中捕获信息,又从 NTM 模块存储的信息中捕获信息。这是一个归纳过程 inductive process ,如下图所示。

    多通道 memoryGRU 参数是共享的,因此不会增加参数量。

    和目标广告 embedding 进行 attention-pooling 从而得到固定长度的 embedding 向量,并用于后续的向量拼接和 MLP

  5. Online Serving:与 DIEN,DIN 应用注意力机制从而获得 candidate-centric 兴趣的 representation 不同,MIMN 学会了显式地捕获和存储用户的多样化兴趣,并将其存储在每个用户的 external memory 中。这种 memory-based 架构无需在候选对象(如,我们系统中的目标广告)和用户行为序列之间进行交互式计算,并且可以增量执行,这使得它可扩展地用于长的用户行为序列建模。

    用于在线 servingMIMN 的实现非常简单。我们将整个模型拆分并实现到两个 server 中:

    • 左侧的子网是在 UIC server 中实现的,如下图所示。它使用 NTMMIU 进行计算量最大的用户兴趣建模。

    • 右侧的子网可以在 RTP server 中实现。

    NTMMIU 模块均享受增量计算的优势:最新的 memory state 代表用户的兴趣,并更新到 TAIR 以进行实时 CTR 预估。当收到最新的用户行为事件时,UIC 将再次计算用户兴趣 representation,并更新到 TAIR 。这样,不需要存储用户行为数据。

    在我们的系统中,长用户行为序列的存储量可以从 6T 减少到 2.7T

  6. UIC serverMIMNco-design 使得我们能够处理长的用户行为序列数据,序列长度可以扩展到数千。

    • UIC 用于用户兴趣representation 的更新和整个模型的计算无关,从而使它对于实时CTR 预估是无延迟latency free 的。
    • MIMN 提出以增量的方式对用户兴趣进行建模,而无需像传统解决方案一样存储整个用户行为序列。此外,MIMN 使用改进的 memory architecture,可以实现出色的模型性能。

    但是,它并不适合所有情况。我们建议将该解决方案应用于具有以下条件的应用程序:丰富的用户行为数据,以及实时用户行为事件的流量规模不能明显超过实时 CTR 预测请求的流量规模。

17.2 实验

  1. 实验分为两个部分:

    • 详细介绍了算法验证,包括数据集、实验配置、比较模型、以及相应的分析。
    • 讨论并分享在阿里巴巴展示广告系统中部署所提出的解决方案的实践经验。

17.2.1 实验结论

  1. 数据集:

    • Amazon Dataset:由Amazon 提供的商品评论、商品元信息组成。我们使用Amazon 数据集的 Books 子集。

      对于该数据集,我们将评论视为一种交互行为,并根据时间对一个用户的所有评论进行排序。假设用户 个行为,我们的目的是使用之前的 个行为来预测用户 是否会对第 个评论中的商品写下评论。

      为了聚焦长的用户行为序列预测,我们过滤了行为序列长度小于 20 的样本,并截断了行为序列长度为 100 (即超过100 截断为 100)。

    • Taobao Dataset:收集自淘宝推荐系统的用户行为。数据集包含几种类型的用户行为,包括点击、购买等。它包含大约一百万用户的用户行为序列。我们采用每个用户的点击行为,并根据时间对其进行排序,从而尝试构建行为序列。

      假设用户 个行为,我们使用之前的 个商品作为特征来预测用户是否会点击第 个商品。行为序列长度被截断为 200

    • Industrial Dataset:收集自阿里巴巴在线展示广告系统。样本来自曝光日志,其中标签为这个曝光是 ”点击“ 或者”未点击“。训练集由过去49 天的样本组成,测试集由下一天的样本组成。这是工业建模的经典配置。

      在这个数据集中,每天每个样本的用户行为特征包含之前60天的历史行为序列,行为序列长度被截断为 1000

    下表给出了这些数据集的统计信息。

  2. 实验配置:

    • 对于所有模型,我们使用 Adam 优化器。我们采用指数衰减,学习率从 0.001 开始、衰减速率为 0.9
    • FCN: fully connected network 的层数设置为:200 x 80 x 2
    • embedding 维度设为 16,和 memory slot 的维度相同。
    • MIUGRU 的隐层维度设为 32
    • NTMMIU 中的 memory slot 数量是一个在消融研究部分仔细检查过的参数。
    • 我们将 AUC 视为衡量模型性能的指标。
  3. baseline 方法:我们将 MIMNstate-of-the-artCTR 预估模型进行比较。

    • Embedding & MLP:是CTR 预估的 basic 深度学习模型。它需要 sum 池化操作才能整合行为 embedding 序列。

    • DIN:是用户行为建模的早期工作,提出针对目标 item 条件下对用户行为进行软搜索soft-search

    • GRU4Rec:基于 RNN 的方法,并且是使用循环单元recurrent cell 来建模用户行为序列的首次研究。

    • ARNN:是 GRU4Rec 的一种变体,它使用注意力机制对所有隐状态进行加权和,从而得到更好的用户行为序列 representation

    • RUM:使用external memory 来存储用户的额行为特征。它还利用 soft-writingattention reading 机制来和memory 进行交互。我们使用 feature-level RUM 来存储序列信息。

    • DIEN:将 GRUcandidate-centric attention 技巧融合,从而捕获用户兴趣的演变趋势,并实现了 state-of-the-art 性能。

      为了进行公平地比较,我们省略了辅助损失的技巧,以便更好地在 DIEN 中进行 embedding 学习。否则应该针对上述所有模型都使用辅助损失技巧。

  4. 下表给出了所有模型的实验结果,每个实验重复 3 次并报告均值和标准差。可以看到:

    • 所有其它模型都击败了 Embedding & MLP,这验证了针对用户行为建模的网络体系架构设计的有效性。

    • MIMN 以很大的 AUC 优势击败了所有模型。我们认为,这是由于memory-based 架构的巨大容量capacity 适用于建模用户行为。

      如前所述,长的用户行为序列数据背后的用户兴趣是多样的,且随着时间而动态演化。MIMN 使用多通道 memory 在两个方面学会了捕获用户兴趣:

      • basic NTM 中的 memory 使用平衡的利用 balanced utilization 来记忆兴趣。
      • MIU 中的 memory 通过归纳兴趣的序列关系进一步捕获高阶信息,其中兴趣是基于 NTMmemory

  5. memoryslot 数量:我们在具有不同数量的memory slotMIMN 上进行了实验。为简化起见,我们使用最基本的 NTM 体系结构来评估 MIMN,省略了 memory utilization regularizationmemory induction unit 。下表给出了结果。

    可以看到,slot 数量会影响模型性能:

    • 对于 Amazon 数据集,最佳性能是 slot 数量为 4 时取得的。
    • 而对于 Taobao 数据集,最佳性能是 slot 数量为 8 时取得的。

    我们的分析结果表明,这与数据集中用户行为序列的长度有关。memory 中的每个slot 都是随机初始化的。

    • 对于行为序列较长的数据集,例如 Taobao 数据集,memory 有更多的机会学习和达到稳定stablerepresentation

    • 对于行为序列较短的数据集,例如 Amazon 数据集,具有较大memory capacity 的模型遭受学习不足的影响。尤其是当 memory 的所有 slot 的利用不平衡时,部分 memory 向量可能无法充分利用和更新,这意味着这些 memory 向量仍然保持接近于初始化状态。

      这会损害模型的性能。因此我们提出了 Memory Utilization Regularization 来缓解该问题。

  6. Memory Utilization Regularization:由于每个用户的兴趣强度不一致,并且memory 进行了随机初始化,因此在basic NTM 模型中,存储的利用可能不平衡。这个问题将损害 memory 的学习,使其不足以利用有限的memory 存储。

    我们使用 memory utilization regularization 技巧来帮助解决该问题。下图显式了memory utilization ,它验证了所提出的正则化器的有效性。

    这种平衡的效果还带来了模型性能的改善,如下表所示。

  7. Memory Induction Unit:通过归纳从 basic NTMmemory,带 memory induction unitMIMN 能够捕获高阶信息并带来更多提升,如上表所示。它增强了用户兴趣抽取的能力,并有助于从长的用户行为序列数据中建模用户兴趣。

  8. 工业数据集结果:

    • 我们进一步对阿里巴巴在线展示广告系统收集的数据集进行实验。我们将 MIMNDIEN 模型进行了比较,下表给出了结果。MIMN0.01AUC 提升超越了 DIEN,这对于我们的业务而言意义重大。

    • 除了离线模型的性能,在系统方面 MIMNDIEN 模型之间还存在很大差异。下图给出了当 MIMNDIEN 作为 serving 模型时实际 CTR 预估系统的性能。

      MIMNUIC serverco-design 在很大程度上击败了 DIEN,前者具有随着不同行为序列长度保持恒定的延迟和吞吐量的特性。因此,MIMN 可以在我们的系统中利用长度可达数千个的、长的用户行为序列数据,并享受模型性能的提升。相反,DIEN serving 的系统会同时遭受延迟和系统吞吐量的困扰。

      由于系统的压力,作为我们最新产品模型的 DIEN 中使用的用户行为序列长度仅为 50 。这再次验证了我们提出的解决方案的优越性。

    • 我们已经在阿里巴巴的展示广告系统中部署了提出的解决方案。我们在 2019-03-30 ~ 2019-05-10 进行了严格的在线 A/B 测试实验,从而验证提出的 MIMN 模型。

      DIEN (我们的最新产品模型)相比,MIMNCTRRPMRevenue Per Mille 每千次收入)均提高了 7.5%。我们将此归因于提出的 co-design 解决方案从长的用户行为序列中挖掘的额外信息。

17.2.2 部署经验

  1. 这里我们讨论在我们的在线系统中,部署 UICMIMN 的实践经验。

  2. UIC ServerRTP Server 的同步synchronization:如前所述,MIMN 是通过 UIC serverRTP server 一起来实现的。因此,UIC serverRTP server 之间存在不同步out-sync 的问题。

    在周期性模型部署的实际系统中,两个 server 的异步参数更新可能导致不正确的模型推断,这具有很大的风险。下表给出了模拟不同步场景实验的结果。注意,在该实验中,out-sync 时间的间隔在一天之内,这是工业系统中的常见设置。实际上,在我们的真实系统中,模型部署被设计为每小时执行一次,这进一步降低了风险。

    可以看到 MIMN 针对 out-sync 具有很好的鲁棒性。我们认为这是由于 MIMN 学到的用户兴趣的稳定表示stable representation,从而使得 MIMN 具有良好的泛化性能。

  3. 超大规模big-scale 数据的影响:如今很多电商网站都采用大促来吸引用户进行在线消费,例如阿里巴巴的”双十一“活动。在这种极端情况下,样本的分布以及用户行为和日常情况大相径庭。我们比较了系统中 11.11 大促日收集的训练数据、以及不包含 11.11 大促日的训练数据,这两种情况下 MIMN 的性能。

    结果如下表所示。我们发现:最好移除 big-scale 数据。

  4. Warm Up Strategy:尽管 UIC 旨在进行增量更新,但是从一开始就需要相当长时间才能进入稳定积累stable accumulation。 实际上我们采用预热策略warm up strategy 来使用预先计算的用户兴趣表示来初始化 UIC 。即,我们为每个用户收集最近 120 天的历史行为(用户行为序列的平均长度为 1000),并以离线模式使用训练好的 MIMN 来推断,然后将累积的 memory 推送到 UIC 中以便进行进一步的增量更新。

    该策略可以尽快地部署MIMN ,并取得合理的模型性能。

  5. Rollback Strategy:如果出现意外问题,如大规模在线作弊对训练样本的污染,UIC server 的增量更新机制可能会遭受重大损失。 一个麻烦的挑战是寻找异常case 发生的时间点。

    为了抵御这种风险,我们设计了一种回滚策略 rollback strategy,该策略将每天00:00 学到的用户兴趣representation 副本存储起来,并保存最近 7 天的副本。

十八、DMR[2020]

  1. MatchingRanking 是推荐系统中信息检索的两个经典阶段。

    • matching 阶段(又称作候选生成 candidate generation)通过将 useritem 进行 matching ,从而从整个item 集合中检索一小部分候选对象candidate

      基于协同过滤的方法被广泛用于计算 user-to-item 的相关性,并选择最相关的item

    • ranking 阶段通过 ranking 模型为不同 matching 方法生成的候选者打分,并将 top-N 打分的 item 呈现给最终用户。

    用户点击是推荐系统中非常重要的评估指标,它是所有后续转化行为的基础。click-through rate: CTR 的预估已经引起了学术界和工业界的广泛关注。

    个性化personalization 是提高CTR预估性能和提升用户体验的关键。已经提出了很多基于深度学习的方法来进行CTR 预估,这些方法可以学习隐式特征交互并提升模型容量capability 。这些方法大多数都关注于设计自动特征交互的网络结构。

    最近,有人提出了几种模型来从点击、购买之类的用户行为数据中提取用户兴趣,这对于用户没有明确显示其兴趣的推荐配置setting而言非常重要。为了表示用户的兴趣,这些模型考虑了用户交互的 item 和目标 item 之间的 item-to-item 相关性。

    但是,这些模型主要聚焦于用户 representation,而忽略了表达 user-to-item 相关性。user-to-item 相关性直接衡量了用户对目标 item 的个性化偏好,并在基于协同过滤的 matching 方法中精心建模。

    基于这些观察,论文 《Deep Match to Rank Model for Personalized Click-Through Rate Prediction》提出了一种新的模型,称作 Deep Match to Rank: DMR 。该模型将协同过滤的思想和 matching 思想相结合,用于 CTR 预估的 ranking 任务,从而提高了 CTR 预估的性能。

    DMR 包含 User-to-Item NetworkItem-to-Item Network 这两个子网来代表 user-to-item 的相关性。

    • User-to-Item Network ,论文通过embedding 空间中 user embeddingitem embedding 的内积来表达用户和 item 之间的相关性。其中 user embedding 是从用户行为中抽取而来。

      考虑到最近的行为可以更好地反映用户的时间的兴趣temporal interest ,论文应用注意力机制来自适应地学习每种行为在行为序列中的权重,并考虑行为在序列中的位置position

      同时,论文提出一个辅助的match 网络 auxiliary match network 来推动更大larger 的内积从而代表更高的相关性,并帮助更好地拟合 User-to-Item Network

      辅助 match 网络可以视为一种 match 方法,其任务是根据用户的历史行为来预测下一个要点击的 item ,然后论文在 DMR 中共同训练 matching 模型和 ranking 模型。据作者所知,DMR 是第一个在 CTR 预估任务中联合训练matchingranking 的模型。

    • Item-to-Item Network,论文首先计算用户交互item 和目标 item 之间的 item-to-item 相似度,其中采用考虑了位置信息position information 的注意力机制。然后论文将item-to-item 相似性相加,从而获得了另一种形式的 user-to-item 相关性。

      注意,一般而言在 matching 阶段,候选者通常是通过多种 matching 方法生成的,以满足用户需求的多样性,并且不同方法之间的 user-to-item 相关性得分是不可比的not comparable 。但是在 DMR 中,可以以统一的方式将相关性强度进行比较。

    论文的主要贡献:

    • 论文指出捕获用户和 item 之间相关性的重要性,这可以使 CTR 预估模型更加个性化和有效。受此启发,论文提出了一种称作 DMR 的新模型,该模型在 mathcing 方法中应用协同过滤的思想,通过 User-to-ItemItem-to-Item Network 来表示相关性。
    • 论文设计了辅助 match 网络,可以将其视为 mathcing 模型,从而帮助更好地训练 User-to-Item Network。据作者所知,DMR 是第一个在 CTR 预估模型中联合训练 matchingranking 的模型。
    • 考虑到最近的行为对用户的动态兴趣贡献更大temporal interest ,论文在注意力机制中引入 positional encoding 来自适应地学习每个行为的权重。
    • 论文在公共数据集和工业数据集上进行了广泛的实验,证明了所提出的 DMRstate-of-the-art 的模型有着显著提升。
  2. 相关工作:

    • 特征交互:最近,基于深度学习的 CTR 预估模型备受关注并取得了显著的效果。与传统的线性模型相比,基于深度学习的方法可以增强模型容量 capability,并且通过非线性变换学习隐式特征交互。通过从高维稀疏特征中学习低维representation ,深度模型对罕见的特征组合有更好的估计estimation

      然而,实际应用中高维稀疏特征带来了很大的挑战:深度模型可能会过拟合overfit 。基于此,人们提出了不同的模型,以便更好地对特征交互进行建模,提高 CTR 预估的性能。

      • Wide & Deep 通过联合训练线性模型和非线性深度模型,从而结合了二者的优势。
      • Deep Crossing 应用深度残差网络来学习交叉特征。
      • PNNembedding layer 和全连接层之间引入一个 product layer,从而探索高阶特征交互。
      • AFM 基于对二阶特征交互建模的分解机 factorization-machine: FM,通过注意力机制来学习加权的特征交互。
      • DeepFMNFM 通过将 FM 与深度网络相结合,从而结合了低阶特征交互和高阶特征交互。
      • DCN 引入了 cross network 来学习某种有界阶次bounded-degree 特征交互。

      DMR 模型中,user-to-item 相关性的 representation 可以视为用户和 item 之间的一种特征交互。

    • 用户行为特征:和搜索排序search ranking 不同,在推荐系统和许多其他application 中,用户并没有清楚地表明他们的意图。因此,从用户行为中捕获用户兴趣对于 CTR 预估至关重要,而上述模型对此关注较少。

      • 可变长度的用户行为特征通常通过简单的均值池化转变为固定长度的向量,这意味着所有行为都同等重要。
      • DIN 通过加权 sum 池化来表示用户兴趣,其中每个用户行为相对于目标 item 的权重通过注意力机制自适应学习。
      • DIEN 不仅提取用户兴趣,而且建模兴趣的动态演变temporal evolution
      • DSIN 利用行为序列中的会话信息来建模兴趣演变。

      DMR 模型中,受 Transformer 的启发,论文将 positional encoding 引入注意力机制从而捕获用户的动态兴趣temporal interest

    • user-to-item 相关性:尽管取得了很大进展,但是这些方法侧重于用户 representation,而忽略了 user-to-item 相关性的表达,而后者直接衡量了用户对目标 item 的偏好强度。在提出的 DMR 中,论文关注表达 user-to-item 的相关性,从而提高个性化 CTR 模型的性能。

      • 基于协同过滤 collaborative filtering: CF 的方法在构建推荐系统的 matching 阶段非常成功。在这些方法中,item-to-item CF 因其在实时个性化方面的可解释性和效率而被广泛应用于工业推荐 setting 。通过预先计算好 item-to-item 的相似度矩阵,系统可以向用户推荐与该用户历史点击item 相似的 item

        为了计算 item-to-item 相似度,早期的工作侧重于统计量,例如余弦相似度和 Pearson 系数。基于深度学习的方法 NAIS 采用带注意力机制的 item-to-item CF,从而区分用户不同行为的重要性,这与 DIN 有相似的想法。

        item-to-item CF 可以视为获取 user-to-item 相关性的间接方法。

      • item-to-item CF 不同,基于矩阵分解的 CF 方法通过在低维空间中计算 user representationitem representation 的内积来直接计算useritem 相关性。以类似的基于内积的形式,人们提出了基于深度学习的方法来从用户的历史行为中学习 user representation ,这可以看作是矩阵分解技术的非线性泛化。

        《Deep neural networks for youtube recommendations》matching 视为极端多分类问题,其中点击预估问题变成了根据用户的历史行为准确地分类用户接下来将要点击的 item

        《Session-based recommendations with recurrent neural networks》GRU 应用到基于会话的推荐任务。

        TDM 使用 tree-based 方法来超越基于内积的方法。

      DMR 模型中,一方面论文使用 user representationitem representation 之间的内积来获得一种 user-to-item 的相关性;另一方面论文应用注意力机制来表示 item-to-item 的相似性,并进一步基于这种相似性来获得另一种 user-to-item 的相关性。

18.1 模型

  1. 这里我们详细介绍 Deep Match to Rank:DMR 模型的设计。

    • 首先我们从两个方面概述了基于深度学习的 CTR 模型的基本结构:特征表示feature representation、多层感知机multiple layer perceptron: MLP
    • 然后我们介绍建模 user-to-item 相关性的、带有两个子网的 DMR 的总体结构。

18.1.1 Feature Rpresentation

  1. 我们的推荐系统中包含四类特征:

    • 用户画像User Profile:包含用户 ID、消费水平等等。
    • Target Item 特征:包括item IDcategory ID 等等。
    • 用户行为 User Behavior:是用户交互的 item 形成的 item 序列。
    • 上下文 Context:包含时间、matching 方法、以及对应的 matching score 等。

    大多数特征都是离散型特征,可以将其转换为高维的 one-hot 向量。在基于深度学习的模型中,one-hot 向量通过 embedding layer 转换为低维稠密特征。

    例如,item IDembedding 矩阵可以表示为:,其中: item 集合的大小,embedding 向量维度, 为第 itemembedding 向量。

    无需在 one-hot 向量和 embedding 矩阵之间进行复杂的矩阵乘法,embedding layer 通过查表 look up table 就可以获取 embedding 向量。

  2. 我们将离散特征 embeddingnormalized 的连续特征拼接起来,其中:用户画像User Profile 的拼接特征为 、用户行为User Behavior 的拼接特征为 Target Item 的拼接特征为 、上下文Context的拼接特征为

    注意,用户行为序列包含很多个item,因此用User Behavior 的特征是由这些item 的特征向量列表拼接而成 ,其中:

    • 为用户行为序列的长度,由于不同用户的行为序列长度不同,因此 是可变的。
    • 为第 个行为的特征向量, 为对应的维度,|| 表示向量拼接。

    User Behavior 特征和 Target Item 特征位于相同的特征空间,并共享相同的 embedding 矩阵以降低内存需求。

  3. 注意: 是用户第 个行为的特征向量,它其实是第 个产生行为的itemrepresentation。它和 不同: 仅仅是 item IDembedding 向量,而 可能包括 item IDcate IDembedding 向量的拼接。

18.1.2 MLP

  1. 所有特征向量拼接起来构成样本的完整representation 之后,将representation 灌入 MLPMLP 隐层的激活函数为 PRelu,最终输出层采用 sigmoid 激活函数从而用于二分类任务。

    • MLP 输入的长度需要固定,因此需要将User Behavior 特征向量 进行池化从而转换为固定长度的特征向量。

    • 交叉熵损失函数通常和 sigmoid 函数一起使用,其对数函数可以抵消 sigmoid 函数中指数的副作用。给定样本 ,其中 为标签, 为样本特征,则损失函数为:

      其中 为训练集, 为总的样本数量, MLP 的预测输出的点击概率。

18.1.3 DMR

  1. 基于深度学习 CTR 模型的basic 结构很难通过隐式特征交互来捕获用户和 item 的相关性。在 DMR 中,我们提出了两个子网,即 User-to-Item NetworkItem-to-Item Network,从而建模 user-to-item 相关性,进而可以提高个性化 CTR 模型的性能。

    DMR 结构如下图所示:

    • 输入特征向量是嵌入embedded 的离散特征、和正则化normalized 的连续特征的拼接。
    • DMR 使用两个子网( User-to-Item NetworkItem-to-Item Network)以两种形式来建模 user-to-item 相关性。
    • 两种形式的 user-to-item 相关性、用户的动态兴趣temporal interestrepresentation 、以及其它所有特征向量拼接起来,然后馈入到 MLP 中。

    最终损失由 MLPtarget loss 和辅助的 match network loss 组成。

a. User-to-Item Network
  1. 遵循基于矩阵分解的 matching 方法中的representation 形式,User-to-Item Network 通过user representationitem representation 的内积来建模用户和目标 item 之间的相关性,这可以视作用户和 item 之间的一种特征交互。

  2. 为获得user representation,我们求助于 User Behavior 特征。用户不会在推荐场景中明确展现其兴趣,而用户行为则隐式地反映了用户兴趣。

    表达用户兴趣的一种朴素方法是:对用户行为特征使用均值池化。这种方法认为每种行为对于最终用户兴趣做出同等贡献。

    但是,用户的兴趣可能会随着时间而变化。在这种情况下,最近的行为可能会更好地反映用户的时间 temporal 兴趣。根据发生的时刻为每个行为分配权重可以缓解该问题,但是也很难找到最佳权重。

    User-to-Item Network 中,我们使用位置编码作为 query 的注意力机制来自适应地学习每个行为的权重,其中用户行为的位置position 是行为序列中按发生时间排序的序列编号。数学描述为:

    其中:

    • 为第 个位置 embedding
    • 为第 个行为的特征向量。
    • 为待学习的参数。
    • 为第 个行为的归一化权重。

    通过加权的 sum 池化,我们将 User Behavior 特征向量 映射到固定长度的特征向量,然后由全连接层进行转换以匹配 item representation 的维度

    最终用户的 representation 的公式为:

    其中:

    • 表示非线性的映射,其输入维度为 、输出维度为
    • 表示第 个行为的加权特征向量。

    这里的 attention 计算的是基于 positional embedding 计算不同位置的、归一化的重要性。这里没有考虑 target item 的重要性,因为计算 user representation 时不会融合 item representation 信息。

  3. 这里的attention 网络有三个细节,为简化起见我们忽略了它们:

    • 首先,可以添加更多的隐层从而具有更好的representation
    • 其次,除了位置编码之外,还可以将更多的、反映用户兴趣强度的上下文特征添加到 attention 网络中,例如行为类型(如点击、购买、收藏)、停留时长等。在这些特征中,位置在我们的应用中影响力最大。
    • 第三,以行为发生时间的倒序对位置进行编码,从而确保最近的行为获得第一个位置。
  4. 尽管 RNN 擅长处理序列数据,尤其是在 NLP 任务中,但是它不适合建模用户行为序列。和严格遵循某些规则的文本不同,用户行为序列是不确定的 uncertain,并且可能会受到呈现给用户的内容的影响。如果没有特殊设计的结构,那么 RNN 很难提高预测效果。

    此外,串行计算的 RNN 给在线 serving 系统带来了挑战。

  5. 目标 itemrepresentation 直接从 embedding 矩阵 中查找look up 。其中 是针对target item 的一个独立的 embedding 矩阵,它不是和 embedding 矩阵 共享。

    为区分这两个 embedding 矩阵,我们称 Target Iteminput representation、称 Target Itemoutput representation 。尽管这种方式增加了存储空间,但是与 相同的方式相比,模型仅仅是将 embedding 大小增加了一倍,而模型具有更强的表达能力。我们将在实验部分验证该结论。

  6. 得到用户representation 和目标 itemrepresentation 之后,我们使用向量内积来表示用户和 item 的相关性:

    我们预期更大的 代表更强的相关性,从而对点击预测产生积极的影响。

    但是,从反向传播的角度来看,仅通过点击标签的监督来确保这一点并不容易。此外,embedding 矩阵 中参数的学习完全依赖于相关单元 relevance unit 。有鉴于此,我们提出了一个辅助match 网络,该网络从用户行为中引入label,从而监督 User-to-Item Network

  7. 辅助 match 网络的任务是基于之前的 个行为来预测第 个行为,这是一个极端extreme 的多分类任务。

    遵从前文中用户 representation 的形式,我们可以从用户的前 个行为中获取用户 representation ,记作 。则用户具有前面 个行为的前提下,对 item 产生第 个行为的概率为:

    其中 为第 itemoutput representation 。因此,针对target itemoutput representation 可以视为 softmax layer 的参数。

    通过使用交叉熵损失函数,则我们得到辅助 match 网络的损失为:

    其中:

    • 为辅助 match 网络的样本数量, 为总的item 数量。
    • 表示辅助 match 网络的样本 target item 是否为第 item 当且仅当第 个用户的行为序列中,最后一个 itemitem 时成立。
    • 表示辅助 match 网络的样本 target item 为第 item 的预测概率。

    然而上式中的 计算代价很高,这和item 总数 成正比。为了有效训练具有百万类别的分类任务,我们采用了负采样技术。我们将带负采样的辅助match 网络损失函数定义为:

    其中: sigmoid 函数; 为正样本, 为负采样的负样本; 为负采样数量,它远远小于

    最终的损失函数为:

    其中 为一个超参数,用于平衡这两部分损失。

  8. 通过从User Behavior 中引入标签,辅助match 网络可以推动更大的 来表示更强的相关性,并帮助更好地训练 embedding 矩阵 和其它参数。

  9. 理解 User-to-Item Network 的另一种方法是:在统一模型中共同训练 ranking 模型和 matching 模型,其中 matching 模型是辅助 match 网络。

    matching 阶段,候选者是通过多路match 来生成,其中每一路match 之间的分数不可比not comparable ,每个候选者仅具有对应 matching 方法的相关性得分。

    和仅将 matching score 作为特征馈入 MLP 不同,User-to-Item Network 能够在给定任务 Target Item 的情况下获得 user-to-item 相关性得分,并且相关性以统一的方式可比comparable

b. Item-to-Item Network
  1. 除了直接计算 user-to-item 相关性之外,我们还提出了 Item-to-Item Network 以间接方式来表达相关性。

    首先我们建模用户交互的 itemtarget item 之间的相似性similarity ,然后对这些相似性相加从而得到另一种形式的user-to-item 相关性relevance

  2. 为了使得相关性的 representation 更具有表达性,我们使用 attention 机制(而不是 User-to-Item Network 中的内积)来建模 item-to-item 相似性。

    给定用户交互的 itemtarget item、位置编码作为输入,item-to-item 相似性的公式为:

    其中:

    • target item 的特征向量, 为第 个位置 embedding 为第 个行为的特征向量。
    • 都是待学习的参数。

    用户行为和 target item 之间的 item-to-item 相似性之和构成了另一种类型的 user-to-item 相关性:

    通过加权的 sum 池化,UserBehavior 特征 被转换为固定长度的特征向量 ,从而构成了与目标相关的动态兴趣表示:

    其中 为第 个行为的归一化权重。

    注意:计算 的过程中并未进行归一化。因为归一化之后的注意力系数之和恒为 1.0

    和用户representation 不同,目标相关的用户 representation 针对不同的target item 有所不同。通过注意力机制的局部激活能力,和目标 item 相关的行为的权重更高,并且主导了目标相关的用户 representation

  3. 两种类型的 user-to-item 相关性 、以及用户动态兴趣 将和其它输入特征向量拼接起来从而馈入 MLPMLP 的最终输入为:

注,DMR 模型相当于对模型空间新增了约束:对于正样本,不仅点击率预估为 1.0,还需要 user representationitem representation 之间相关性很高。负样本也是类似。

18.2 实验

  1. 数据集:

    • Alimama Dataset (公共数据集):包含从Taobao 连续8 天中随机采样的曝光和点击日志。

      7 天的日志用于训练,最后1 天的日志用于测试。数据集包含 2600 万条日志,一共有 114 万用户、84item

    • 工业数据集:数据集包含从阿里巴巴在线推荐系统收集的曝光和点击日志。

      我们将前 14 天的日志用于训练、第15 天的日志用于测试。数据集包含 11.8 亿条日志,一共有 1090 万用户、4860item

  2. baseline 方法:

    • LR :逻辑回归方法。它是一种经典的线性模型,可以看作是浅层神经网络。线性模型通常需要手动特征工程才能表现良好,这里我们添加了 User BehaviorTarget Item 的叉积 cross-product

    • Wide&Deep:它具有一个 wide 部分和一个 deep 部分,因此同时结合了线性模型和非线性深度模型的优势。在我们的实现中,wide 部分和上述 LR 模型完全相同。

    • PNN:它引入了 product 层以及全连接层,从而探索高阶特征交互。

    • DIN:它通过自适应地学习注意力权重从而表示用户对目标 item 的兴趣。

      注意:如果没有两种 user-to-item 相关性、如果没有使用positional encoding,那么我们的 DMR 退化为 DIN 模型。

    • DIENDIEN 通过两层 GRU 建模了用户对目标item 的兴趣演化。

  3. 实验配置:

    • 在公共数据集上:我们将学习率设为 0.001batch size = 256item embedding 维度为 32,用户行为序列的最大长度为 50MLP 中的隐层维度分别为 512,256,128

      此外,辅助 match 网络中的负样本数设为 2000,辅助损失的权重 设为 0.1

    • 在工业数据集上:除了将 item embedding 维度设为64,其它超参数和公共数据集相同。

  4. 下表给出了实验结果。我们使用 AUC 作为评估指标,所有实验重复5 次并报告平均结果。 Relative Improvement: RI 表示基于 LR 的相对提升。

    可以看到:

    • LR 的表现明显比 Wide&Deep 和其它基于深度学习的模型更差,这证明了深度神经网络中非线性变换和高阶特征交互的有效性。

    • PNN 受益于 product layer,从而相比 Wide&Deep 实现了更好的特征交互从而性能更好。

    • 在用户没有显式表现其兴趣的推荐场景中,捕获用户的兴趣至关重要。

      • 在基于深度学习的模型中,Wide&DeepPNN 表现最差,尤其是在工业数据集上,这证明了从用户行为中抽取用户兴趣的重要性。

      • DIN 代表了用户对目标item 的兴趣,但是忽略了用户行为中的顺序信息。

      • DIEN 的性能优于 DIN,这主要归因于捕获了用户兴趣演变的两层 GRU 结构。

      • 基于用户兴趣representationDRM 进一步通过 User-to-Item NetworkItem-to-Item Network 来分别捕获两种形式的 user-to-item 相关性。

        通过相关性的representationDRM 充分考虑了用户对目标 item 的个性化偏好,并且大幅度击败了所有baseline 方法,包括 LR、Wide&Deep、PNN、DIN、DIEN

  5. 下表给出了公共数据集和工业数据集上具有不同组成部分的 DMR 的比较结果,Relative Improvement: RI 表示基于 DMR 的相对提升。其中:

    • DMR I2I 表示仅有 Item-to-Item Network
    • DMR U2I 表示仅有 User-to-Item Network
    • DMR-No-AM 表示没有辅助match 网络。
    • DMR-NO-PE 表示User-to-Item Network 中没有位置编码。
    • DMR-Double 表示 共享 embedding (即 ) ,且使用两倍尺寸的 item embedding

    可以看到:

    • user-to-item 相关性的 representation 的有效性:为了获得更具表达能力的 representation,我们应用了不同的操作来建模 user-to-item 相关性。

      User-to-Item Network 使用基于内积的操作来计算相关性,Item-to-Item Network 使用attention 网络来计算相关性。可以看到,这两个子网的组合要比单独使用时表现更好,这说明两种不同类型的 user-to-item 相关性是有效的,并且两种形式的 user-to-item 相关性是互补的,不是冗余的。

    • 辅助match 网络的有效性:和没有辅助match 网络的 DMR 相比,完整DMR 获得了更好的性能。

      辅助match 网络从用户行为中引入标签来监督训练,并在用户representationitem representation 之间推入更大的内积从而表示更高的相关性。

    • 额外 embedding 矩阵 的有效性:User-to-Item Network 使用额外的 embedding 矩阵 ,可以将其视为辅助match 网络的 softmax layer 中的参数。

      我们尝试将 item embedding 的尺寸翻倍,并且共享 embedding 从而得到 DMR-Double,其参数数量和 原始 DMR 相同。可以看到原始 DMR 的性能优于 DMR-Double。这证明了单独的 embedding 矩阵 的有效性。

    • 位置编码的有效性:可以看到,在 User-to-Item Network 中没有位置编码的 DMR 要差于完整的 DMR

      通过位置编码,DMR 会考虑用户行为序列中的顺序信息,并提取用户的动态兴趣。在工业数据集上, User-to-Item Network 没有位置编码的 DMR 甚至要比没有整个 User-to-Item NetworkDMR (即 DMR I2I )表现更差,这意味着没有位置编码的 User-to-Item Network 很难拟合。

  6. user-to-item 相关性的 representation 的有效性:我们在公共数据集和工业数据集上探索了两个 user-to-item 相关性的值,如下图所示。这些值分别在正样本和负样本中取平均。

    不出所料,正样本的 user-to-item 相关性高于负样本,这意味着我们的 user-to-item 相关性模型是合理的。

  7. 辅助match 网络的有效性:下图显式了 DMR 在公共数据集和工业数据集上的学习曲线 learning curve。可以看到目标损失 和辅助损失 同时降低,这意味着 matchingranking 联合训练是有效的。其中

  8. 位置编码的有效性:我们探索用户行为序列中不同位置的注意力权重。下图给出了公共数据集和工业数据集上 Item-to-Item Network 中的平均权重,其中距离当前时间越近的行为具有越小的位置编号。

    尽管注意力权重受到多个因素的影响,但是总体趋势是:如预期所示,最近的行为获得更高的注意力权重,尤其是在工业数据集上。

  9. 在线 A/B 测试:我们在阿里巴巴的推荐系统中进行在线 A/B 测试。和我们系统中最新版本的 CTR 模型 DIN 相比,DMRCTR 提升了 5.5%click per user 提升了 12.8%。由于提升如此之大,DMR 已经部署到线上从而提供推荐服务。

十九、MiNet[2020]

  1. 点击率 click-through rate: CTR 预估是在线广告系统中的一项关键任务,它旨在预估用户点击目标广告的概率。预估的CTR 会影响广告 ranking 策略和广告收费模型。因此为了维持理想的用户体验并使收入最大化,准确预估广告的 CTR 至关重要。

    CTR 预估引起了学术界和工业界的广泛关注。例如:

    • 因子分解机 Factorization Machine: FM 用于建模 pairwise 特征交互。
  1. 相关工作:

    • CTR 预估:现有工作主要解决单域single-domain CTR 预估问题,他们对以下方面进行建模:特征交互(如 FM, DeepFM)、feature embedding(如 DeepMP)、用户历史行为(如 DIN,DSTN)、上下文信息(如 DSTN)。

      • 特征交互:

        由于诸如逻辑回归 Logistic Regression: LRFollow-The-Regularized-Leader: FTRL 等广义线性模型缺乏学习复杂特征交互的能力,因此人们提出了因子分解机 Factorization Machine: FM 来解决这个限制。

        Field-aware FM: FFMField-weighted FM 通过考虑特征所属的 field 的影响来进一步改进 FM

        近年来,人们提出了深度神经网络DNNProduct-based Neural Network: PNN 等神经网络模型来自动学习特征representation 和高阶特征交互。

        Wide & DeepDeepFMNeural Factorization Machine: NFM 等一些模型结合了浅层模型和深层模型来同时捕获低阶特征交互和高阶特征交互。

      • feature embeddingDeep Matching and Prediction: DeepMP 模型结合了两个 subnet 来学习更具有表达能力的 feature embedding 从而用于 CTR 预估。

      • 用户历史行为:Deep Interest Network: DINDeep Interest Evolution Network: DIEN 基于历史点击行为对用户兴趣建模。

      • 上下文信息:

        《Relational click prediction for sponsored search》《Exploiting contextual factors for click modeling in sponsored search》 考虑各种上下文因子,例如广告交互、广告深度 ad depthquery 多样性等。

        Deep Spatio-Temporal Network: DSTN 联合利用了上下文广告、点击广告、未点击广告进行 CTR 预估。

    • 跨域推荐:跨域推荐旨在通过从源域source domain 迁移知识来提高目标域 target domain 的推荐性能。这些方法大致可以分为三类:协同的collaborative、基于内容的content-based 、混合的hybrid

      • 协同方法利用跨域的交互数据(如评级rating)。

        《Relational learning via collective matrix factorization》 提出了协同矩阵分解 Collective Matrix Factorization: CMF,它假设一个通用的全局用户因子矩阵 global user factor matrix 并同时分解来自多个域的矩阵。

        《Cross-domain Recommendation Without Sharing User-relevant Data》 提出了用于跨域推荐的神经注意力迁移推荐Neural Attentive Transfer Recommendation: NATR,而无需共享用户相关的数据。

        《Conet: Collaborative cross networks for cross-domain recommendation》提出了协同交叉网络 Collaborative cross Network,它通过交叉连接cross connection 实现跨域的双重知识迁移dual knowledge transfer

      • 基于内容的方法利用了用户或 item 的属性。

        《A multi-view deep learning approach for cross domain user modeling in recommendation systems》 将用户画像和 item 属性转换为稠密向量,并且在潜在空间中 match 它们。

        《Collaborative knowledge base embedding for recommender systems》 利用 item 的文本知识、结构知识、视觉知识作为辅助信息来帮助学习 item embedding

      • 混合方法结合了交互数据和属性数据。

        《CCCFNet: a content-boosted collaborative filtering neural network for cross domain recommender systems》 在一个统一的框架中结合了协同过滤和基于内容的过滤。

    不同的是,在本文中,作者解决了跨域 CTR 预估问题。论文对三种类型的用户兴趣进行建模,并在神经网络框架中自适应地融合它们。

19.1 模型

  1. 在线广告中的CTR 预估任务是建立一个预估模型来预测用户点击特定广告的可能性。每个样本可以由多个field 描述,如用户信息(用户ID、城市、年龄等)、广告信息(素材IDCampaign ID 、广告标题等)。每个field 的实例代表一个特征,如用户 ID 字段可能包含诸如 21351473467291

    下表为 CTR 预估任务样本的示例,其中 Label 表示用户是否点击这个广告。

  2. 我们定义跨域CTR 预估问题为:利用一个源域(或多个源域)中的数据来提高目标域中 CTR 预估性能。

    在新闻 feeds 流广告中(如下图所示的 UC 头条 ),源域就是原生natural的新闻feeds 流、目标域是广告。这种情况下,源域和目标域共享同一组用户,但是没有重叠的 item

  3. 为了有效利用跨域数据,我们提出了混合兴趣网络Mixed Interest Network: MiNet ,如下图所示。该模型对三种类型的用户兴趣进行了建模:

    • 跨域的长期兴趣是通过拼接用户画像特征 embedding 来建模的。用户画像特征 embedding 是基于跨域数据共同学习,从而实现知识迁移的。
    • 源域的短期兴趣是通过向量 来建模的,它聚合了最近点击的新闻的信息。
    • 目标域的短期兴趣是通过向量 来建模的,它聚合了最近点击的广告的信息。

    MiNet 中,我们还应用了两种level 的注意力:item-level 注意力、interest-level 注意力。

    • item-level 注意力的目的是从最近点击的新闻/广告中提取有用的信息(和待预估CTR 的目标广告相关),并抑制噪声。
    • interest-level 注意力的目的是自适应地调整三种类型的用户兴趣(即 )的重要性,并为目标广告提供更有信息量的信号。

    接下来我们详细描述各个组件。

19.1.1 Feature Embedding

  1. 我们首先将特征编码为 one-hot encoding 。对于某个离散型特征,假设其unique 取值数量为 。为了实现跨域的知识迁移,特征的 unique 集合选取的是在两个域中的 unique 取值集合的交集,即:该 unique 值在两个域中都出现过。

    对于该特征的第 个取值,其 one-hot encoding 记作:

    其中 的第 项为 1 、其它项全部为零。

    然后我们将稀疏的高维 one-hot encoding 映射到适合神经网络的稠密的低维 embedding 向量。具体而言,我们定义一个 embedding 矩阵 ,其中 embedding 维度且满足 。注意, 是待学习的。

    那么该特征的第 个取值可以投影到对应的 embedding 向量 实际上就是 的第 行,这通常采用查表法来进行(而不是矩阵乘法)。

19.1.2 跨域的长期兴趣

  1. 对于每个广告样本,我们将其特征拆分为用户特征、广告特征。

    • 我们获取所有广告特征,并拼接对应的 embedding 向量,从而获取目标域中的广告的 representation 向量

    • 同样地,我们可以在源域中获得新闻 representation 向量

    • 对于用户,我们通过相应的用户特征 embedding 向量进行拼接,从而获得长期兴趣 representation 向量

      例如,如果用户 有特征 UID = u123, City = BJ, Gender = male, OS = ios,则我们有:

      其中 || 表示向量拼接。

      长期兴趣representation 向量 在各个域之间共享,并使用来自两个域的数据来共同学习。

    这里 分别代表广告representation 向量维度、新闻representation 向量维度、用户 representation 向量维度。

19.1.3 源域目标的短期兴趣

  1. 给定一个用户,对于目标域中的每个目标广告,用户通常会在源域中查看新闻。尽管新闻的内容可能和目标广告的内容完全不同,但是它们之间可能存在一定的相关性。例如,用户在查看一些娱乐新闻之后很可能点击游戏广告。基于这种关系,我们可以将有用的知识从源域迁移到目标域。

  2. 令最近点击的新闻的 representation 向量的集合为 。由于点击新闻的数量可能会有所不同,因此我们需要聚合这些新闻。

    具体而言,聚合的 representation 为:

    其中 为分配给 的权重,从而表示它在聚合期间的重要性。

    聚合的 representation 反映了源域中用户的短期兴趣。

  3. 剩下的问题是如何计算权重

    • 一种简单的方法是选择 ,即每条被点击的新闻都具有相等的重要性。这显然不是明智的选择,因为某些新闻对于目标广告没有帮助。

    • 另一种方式是基于注意力机制, 的计算为:

      其中 为模型参数。

      上式仅单独考虑每条被点击的新闻 ,它没有捕获新闻和目标广告之间的关系。

      此外,上式也未考虑目标用户。例如,无论目标广告是关于咖啡还是衣服,无论目标用户是 还是 ,点击新闻的重要性都保持不变。

    • 我们提出 item-level 注意力, 的计算为:

      其中: 为待学习的参数; 为超参数,指定 attention 隐向量维度; 为逐元素乘积。

      上式考虑了以下方面:

      • 源域中点击的新闻

      • 目标域中的目标广告

      • 目标用户

      • 点击新闻和目标广告之间的迁移交互 transferred interaction

        其中 为迁移矩阵 transfer matrix,它将源域的 迁移到目标域 使得 可以和目标广告 进行比较。

      通过这种方式,计算出的 以及 不仅是需要待分配权重的点击新闻的函数,而且也是目标广告感知的aware、以及目标用户感知的 aware 。另外,它还考虑了点击新闻和跨域目标广告之间的交互interaction

      如果采用两层 DNN 来计算 attention,是否可以移除迁移交互项?

  4. 复杂度缩减:item-level 注意力中,迁移矩阵 的尺寸为 。当 较大时, 包含很多要学习的参数。

    为降低计算复杂度,我们将 分解为: 。其中: 是一个中间维度,可以设为一个较小的值。这样,总的参数数量从 降低到

19.1.4 目标域的短期兴趣

  1. 给定用户,对于每个目标广告,该用户在目标域中也具有近期行为。用户最近点击的广告对用户不久将来点击的广告有很大的影响。

  2. 令最近点击的广告的 representation 向量集合为 ,我们计算聚合的 representation 为:

    其中: 为待学习的参数; 为超参数,指定 attention 隐向量维度; 为逐元素乘积。

    聚合的 representation 反映了用户在目标域中的短期兴趣。

    上式考虑了以下方面:

    • 目标域中点击的广告
    • 目标域中的目标广告
    • 目标用户
    • 点击的广告和目标广告之间的交互 interaction 。由于它们在相同的域中,因此不需要迁移矩阵。

    类似地,计算出的 不仅是待分配权重的点击广告的函数,而且也是目标广告感知的aware、以及目标用户感知的 aware

19.1.5 Interest-Level Attention

  1. 在获得三种类型的用户兴趣 之后,我们将它们一起用于预估目标广告 CTR

    尽管 都代表了用户兴趣,但是它们反映了不同的方面aspect,并且具有不同的维度。因此,我们不能使用加权和的方式来融合它们。

    • 一种可能的解决方案是将所有可用信息拼接起来作为一个长的输入向量:

      但是,这样的解决方案找不到针对目标广告 最有用的用户兴趣信号。例如,如果短期兴趣 和目标广告 不相关,则长期兴趣 应该更有信息价值。但是现在这里 具有相等的重要性。

    • 因此,我们没有使用 ,而是使用如下的

      其中 是动态权重,它们根据不同的用户兴趣信号的取值来调整其重要性。具体而言,这些权重的计算为:

      其中:

      • 为参数矩阵。
      • 为参数向量。
      • 为标量参数。 的引入是为了建模特定类型用户兴趣的固有intrinsic 重要性,而不管该兴趣的实际取值。

      可以看到,这些权重是根据所有可用信息来计算的,以便在给定其它类型的用户兴趣的条件下考虑特定类型用户兴趣对于目标广告的贡献。

      item-level attention 采用了加权 sum 池化,而 interest-level attention 采用了加权拼接。事实上向量拼接(相比较于池化操作)可以保留尽可能多的信息。

      由于历史行为序列的长度不固定,因此为了得到固定长度的向量所以选择了加权池化。

      由于兴趣 embedding 数量是固定的 3 个,因此可以进行向量拼接从而得到固定长度的向量。

  2. 我们使用 来计算权重,这使得 可能大于 1.0 。这是我们想要的效果,因为这些权重可以补偿维度差异问题dimension discrepancy problem

    例如,当 的维度比 的维度大得多时(由于 具有更多特征),那么 的贡献自然会由于这种效应而削弱。

    • 如果我们用 sigmoid 函数代替 exp 函数,使得分配给 的权重位于 0.0 ~ 1.0 之间,那么也无法解决这个问题。
    • 而如果分配给 的权重大于 1.0,那么可以很好地缓解这种维度差异效应。

    而且,这些权重是自动学习的,因此在必要时也会小于 1.0

    这里并没有对重要性进行归一化,因此得到的是 “绝对相关性”。归一化之后代表的是“相对相关性”。另外为了使得绝对相关性非负,这里使用指数函数 exp 。具体效果可以做实验来对比。

19.1.6 模型和部署

  1. 在目标域,我们让输入向量 通过具有 ReLU 激活函数的几个全连接层FC layer,从而利用高阶特征交互以及非线性变换。

    具体而言:

    其中: 表示隐层数量; 表示待学习的、第 层的参数。

    最后,向量 通过一个 sigmoid 输出层得到目标广告的预估 CTR

    其中 为输出层待学习的参数。

  2. 为了便于长期兴趣 的学习,我们还为源域创建了一个输入向量,即 。其中 为目标新闻特征的 embedding 向量的拼接。

    同样地,我们让 经过几个 FC 层和一个 sigmoid 输出层(这些层都具有自己的参数)。最后,我们获得了目标新闻的预估 CTR

    还可以包含最近点击的新闻的 representation 向量的集合 ,从而学到更好的长期兴趣

  3. 我们使用交叉熵作为损失函数。在目标域中,训练集上的损失函数为:

    其中: 为目标广告的真实label 为目标广告的预估 CTRlabel 集合。

    类似地,我们得到源域中的损失函数 。最终我们的损失函数为:

    其中 为一个超参数,用于平衡不同损失的重要性。

    注意: 是跨域共享的,因此当优化联合损失 时,将根据两个域的数据共同学习

  4. 我们在 UC 头条部署了 MiNet,其广告投放系统架构如下图所示。在 201912 月到 20201 月的两周内,我们在 A/B test 框架中进行了在线实验,其中的 basic 模型为 DSTN ,评估指标为实际 CTR

    在线 A/B test 表明,和 DSTN 相比,MiNet 使得在线 CTR 提升了 4.12% 。该结果证明了 MiNet 在实际 CTR 预估任务中的有效性。经过 A/B test 之后,MiNet 服务于 UC 头条的主要流量。

19.2 实验

  1. 数据集:

    • Company News-Ads 数据集:该数据集包含UC 头条中从新闻系统和广告系统中随机抽取的新闻、广告的曝光和点击日志。源域是新闻,目标域是广告。

      我们将 2019 年的连续 6 天的日志用于初始训练,随后一天的日志用于验证,再之后一天的日志用于测试。在验证集上找到最佳超参数之后,我们将初始训练集和验证集合并为最终训练集,并使用最佳超参数重新训练。

      使用的特征包括:用户特征(如用户 IDagent、城市)、新闻特征(如新闻标题、新闻category、新闻tag)、广告特征(如广告标题、广告 ID、广告category)。

    • Amazon Books-Movies 数据集:Amazon 数据集已被广泛用于评估推荐系统的性能。我们选择两个最大的类别来用于跨域 CTR 预估任务,即图书 Books、影视 Movies&TV 。源域是图书,目标域是影视。我们在每个域中只保留至少有 5 次评分的用户。我们将评级为 4,5 分的评分转换为 label 1,其它的评分都视为 label 0

      为了模拟 CTR 预估的行业惯例(即,预估未来的 CTR 而不是过去的 CTR),我们按照时间顺序对用户日志进行排序,然后将每个用户的最后一个评分构成测试集、倒数第二个评分构成验证集、其它评分构成初始训练集。在验证集上找到最佳超参数之后,我们将初始训练集和验证集合并为最终训练集,并使用最佳超参数重新训练。

      使用的特征包括:用户特征(用户 ID)、图书/影视特征(item ID、品牌、标题、主类目category 和子类目)。

    这些数据集的统计信息如下表所示。fts. 表示特征featuresini. 表示初始的 initialinsts. 表示实例 instancesval. 表示验证validationavg. 表示均值 average

  2. baseline 方法:我们比较了单域方法和跨域方法。现有的跨域方法主要是为跨域推荐而提出的,必要时我们将其扩展用于跨域 CTR 预估(如,包含属性特征而不是仅包含 ID 特征,并且调整损失函数)。

    • 单域方法:

      • LR :逻辑回归。它是一个广义的线性模型。
      • FM:因子分解机。它同时对一阶特征重要性和二阶特征交互进行建模。
      • DNN:深度神经网络。它包含一个 embedding 层、几个 FC 层、以及一个输出层。
      • Wide & Deep:经典的 Wide & Deep 模型。它结合了逻辑回归( wide 部分)和 DNNdeep 部分)。
      • DeepFMDeepFM 模型。它结合了 FMwide 部分)和 DNNdeep 部分)。
      • DeepMPDeep Matching and Prediction 模型(即 DeepMCP )。它学习了用于 CTR 预估的、更有表达能力的feature embedding
      • DINDeep Interest Network 模型。它基于历史行为对动态用户兴趣进行建模,从而进行 CTR 预估。
      • DSTNDeep Spatio-Temporal Network 模型。它利用时空辅助信息(即,上下文信息,点击的广告,未点击的广告)进行 CTR 预估。
    • 跨域方法:

      • CCCFNetCross-domain Content-boosted Collaborative Filtering Network。它将协同过滤和 content-based filtering 结合起来的因子分解框架。它与神经网络有关,因为 CF 中的潜在因子等价于神经网络中的 embedding 向量。
      • MV-DNNMulti-View DNN 模型。它扩展了 Deep Structured Semantic Model: DSSM,并具有 multi-towermatching 结构。
      • MLP++MLP++ 模型。它利用了两个 MLP ,并且跨域共享的用户 embedding
      • CoNetCollaborative cross Network 模型。它在 MLP++ 上添加交叉连接单元cross connection unit ,从而实现双重dual知识迁移。
  3. 模型配置:

    • 每个特征的 embedding 向量维度设置为 ,即映射到 10 维。

    • item-level 注意力中,迁移矩阵 分解的中间维度

    • Company 数据集:

      • 基于神经网络模型中的 FC 层数量设为 ,隐层维度分别为[512, 256]
      • attention 隐向量维度 ,源域 batch size512,目标域 batch size128
    • Amazon 数据集:

      • 基于神经网络模型中的 FC 层数量设为 ,隐层维度分别为[256, 128]
      • attention 隐向量维度 ,源域 batch size64,目标域 batch size32

    所有方法都基于 Tensorflow 实现,并使用 Adagrad 算法。每个方法运行 5 次,并报告平均结果。

  4. 评估指标:AUC, RelaImpr, Logloss

    • AUC 反映了对于随机选择的正样本和负样本,模型将正样本排序rank 在负样本之上的概率。对于完全随机的模型,AUC = 0.5AUC 越大越好。AUC 的一个很小的改进可能会导致在线 CTR 的显著提升。

    • RelaImpr 衡量指定模型相对于基础模型的相对提升。由于随机模型的 AUC0.5,因此 RelaImpr 定义为:

    • Logloss:测试集(目标域)的对数损失,即 ,越小越好。

  5. 实验结果如下表所示。* 表示和最佳的 baseline 相比,基于成对 t-test 检验的、 的统计显著性。

    可以看到:

    • AUC 而言,诸如 LRFM 之类的浅层模型的表现要比深度模型更差。

    • FM 的性能优于 LR,因为它可以进一步建模二阶特征交互。

    • LRDNN 相比,Wide & Deep 获得了更高的 AUC,表明结合 LRDNN 可以提高预估性能。

    • 在单域方法中,DSTN 表现最佳。因为 DSTN 共同考虑了可能影响目标广告 CTR 的各种时空因素。

    • 在跨域方法中,CCCFNet 优于 LRFM,这表明使用跨域数据可以提高性能。

      • CCCFNet 性能比其它跨域方法更差,因为它压缩了所有属性特征。
      • MV-DNN 的性能和 MLP++ 相近,它们都通过 embedding 共享来实现知识迁移。
      • CoNetMLP++ 上引入了交叉连接单元,从而实现跨域的双重知识迁移。然而,这也引入了更高的复杂度和随机噪声。
    • CCCFNet,MV-DNN,MLP++,CoNet 主要考虑长期的用户兴趣。相反,我们提出的 MiNet 不仅考虑了长期用户兴趣,还考了了这两个域的短期兴趣。通过适当地结合这些不同的兴趣信号,MiNet 显著地超越了这些 baseline 方法。

  6. level of attention:这里我们考察注意力level 的影响。

    我们采用以下配置:没有 attention 机制、仅 item-level attention、仅 interest-level attention (并且使用文中提出的指数激活函数)、仅 interest-level attention (但是用 sigmoid 代替 exp 函数)、同时采用两种 attention 机制。

    实验结果如下图所示(Base model:DNN),可以看到:

    • 没有 attention 的表现最差,这是因为如果没有注意力机制来提取,那么有用的信号很容易被噪音淹没。
    • item-level attention 或者 interest-level attention 都可以提升 AUC,同时使用二者可以获得最高的 AUC
    • interest-level attention(sigmoid) 效果比 interest-level attention(exp) 更差。这是因为不合适的激活函数无法有效解决维度差异问题。

    这些结果证明了我们提出的分层注意力机制的有效性。

  7. item-level attention:这里我们考察 MiNetitem-level 注意力权重,并检查它们是否可以捕获有信息的信号。

    下面给出Company 数据集中随机选择的一个活跃用户(因此具有相同的点击广告集合、点击新闻集合),对于不同目标广告的注意力权重。

    由于隐私问题,我们仅按照类目粒度展示广告和新闻。由于广告位于同一个域中,因此比较容易判断点击广告和目标广告之间的相关性。而广告和新闻位于不同的域中,因此很难判断它们之间的相关性。因此我们根据用户的行为日志来计算概率

    可以看到:

    • 当目标广告为时尚媒体 Publishing & Media:P&M 时,P&M 类目的点击广告权重最高,而娱乐 Entertainment 类目的点击新闻权重最高。
    • 当目标广告为游戏Game时,游戏类目的点击广告权重最高,而体育新闻类目的点击新闻权重最高。

    以上结果表明,item-level 注意力确实可以动态捕获针对不同目标广告的更重要的信息。

    我们还观察到,该模型可以学到点击新闻和目标广告之间的某种相关性。具有较高 的新闻通常会获得较高的注意力权重。

    理论上 以及 ,但是这里并未满足。所以这里是 top 3 重要性的历史点击广告和历史点击新闻?

  8. interest-level attention :这里我们研究 MiNet 中不同类型的用户兴趣建模的效果。

    我们观察到两个数据集上完全不同的现象,如下图所示(Base model:DNN)。src. 表示源域 source domaintar. 表示目标域 target domain

    • Company 数据集上,和建模长期兴趣相比,建模短期兴趣可以实现更高的 AUC。这表明短期行为非常有帮助。
    • Amazon数据集上,建模长期兴趣会产生更高的 AUC。这是因为 Amazon 数据集是电商数据集而不是广告,并且评分的性质和点击的性质不同。
    • MiNet 综合考虑所有类型的用户兴趣时,获得了最高的 AUC。这表明不同类型的用户兴趣可以相互补充,联合建模可以带来最好的效果。

二十、DSTN[2019]

  1. 点击率 Click-Through Rate: CTR 预估是用于预测用户点击某个 item 的可能性。它在在线广告系统中起着重要作用。例如,广告 ranking 策略通常取决于 CTR x bid,其中 bid 是点击广告后系统获得的收益。另外,根据常见的 cost-per-click: CPC 计费模式,只有在用户点击广告之后才会对广告主收费。因此,为了最大化程度地增加收入并保持理想的用户体验,准确地预估广告的 CTR 至关重要。

    CTR 预估引起了学术界和工业界的广泛关注。一系列研究方向是利用机器学习方法独立预估每个广告的 CTR。例如,因子分解机 Factorization Machine: FM 根据所涉及特征对应的潜在向量来建模 pairwise 特征交互。近年来,深度神经网络 DNN 被用于 CTR 预估和 item 推荐,以自动学习 feature representation 和高阶特征交互。为了同时利用浅层模型和深层模型,人们还提出了混合模型hybrid model 。例如,Wide & Deep 将逻辑回归 Logistic Regression: LRDNN 结合起来,从而提高模型的memorizationgeneralization 能力。DeepFMFMDNN 相结合,进一步提高了模型学习特征交互的能力。

    这一系列方法独立地考虑每个目标广告,但是忽略了可能影响目标广告 CTR 的其它广告。在本文中,我们从两个角度探讨辅助广告auxiliary ad

    • 空域 spatial domain角度:我们考虑在同一个页面上出现的、目标广告上方展示的上下文广告 contextual ad

      背后的直觉是:共同展示的广告可能会争夺用户的注意力。

    • 时域temporal domain 角度:我们考虑用户的历史点击和历史未点击广告。

      背后的直觉是:历史点击广告可以反映用户的偏好,历史未点击广告可能一定程度上表明用户的不喜欢。

    这两个角度包含了三种类型的辅助数据auxiliary data(如下图所示):同一个页面上出现的、目标广告上方展示的上下文广告contextual ad;用户的历史点击广告clicked ad;用户的历史未点击广告unclicked ad

    为有效利用这些辅助数据,我们必须解决以下问题:

    • 由于每种类型辅助广告的数量可能会有所不同,因此模型必须能够适应所有可能的情况。

      例如,可能有 1 个上下文广告、2 个历史点击广告、4 个历史未点击广告,也可能是 0 个上下文广告、3 个历史点击广告、2 个历史未点击广告。

    • 由于辅助广告不一定和目标广告相关,因此模型应该能够提取有用的信息并抑制辅助数据中的噪声。

      例如,如果历史点击广告集合是关于咖啡、衣服、汽车的广告,而目标广告是咖啡广告,那么模型能够学到哪个历史点击广告对目标广告的 CTR 预估更有用。

    • 每种类型辅助广告的影响程度可能会有所不同,并且模型应该能够区分它们的贡献。

      例如,应该区别对待上下文广告和历史点击广告的重要性。

    • 模型应该能够融合所有可用的信息。

    为了解决这些问题,论文 《Deep Spatio-Temporal Neural Networks for Click-Through Rate Prediction》 提出了用于 CTR 预估的深度时空神经网络Deep SpatioTemporal neural Network: DSTN 的三种变体。这些变体包括:池化pooling 模型、自注意力self-attention模型、交互式注意力interactive attention 模型。其中,交互式注意力模型完全解决了上述问题。

    在一个公共数据集和两个工业数据集上的离线实验表明:DSTN 的效果优于几种 state-of-the-artCTR 预估方法。作者在中国第二大搜索引擎 “神马搜索” 中部署了 DSTN 模型。在线 A/B test 表明:和线上最新的 serving 模型相比,DSTN 模型的在线 CTR 得到显著提升。

    论文主要贡献:

    • 论文探索了三种类型的辅助数据,从而提高目标广告的 CTR 预估。这些辅助数据包括:展示在同一个页面上的、目标广告上方的上下文广告,用户历史点击广告,用户历史未点击广告。
    • 论文提出了有效融合这些辅助数据来预测目标广告 CTRDSTN 模型。DSTN 模型能够学习辅助数据和目标广告之间的交互,并强调更重要的 hidden information
    • 论文对来自真实广告系统的三个大规模数据集进行了广泛的离线实验,从而测试 DSTN 和几种 state-of-the-art 方法的性能。论文还进行了案例研究,从而提供模型背后的进一步洞察。
    • 论文在中国第二大搜索引擎神马搜索中部署了性能最好的 DSTN。论文还进行了在线 A/B test,从而评估DSTN在实际 CTR 预估任务中的性能。
  2. 相关工作:

    • CTR 预估:学习特征交互效应 effect of feature interaction 似乎对于准确的 CTR 预估至关重要。

      • 广义线性模型,如逻辑回归 Logistic Regression: LRFollow-The-Regularized-Leader: FTRL 在实践中表现出不错的性能。然而,线性模型缺乏学习复杂特征交互的能力。
      • 因子分解机 Factorization Machine: FM 根据所涉及特征的潜在向量对 pairwise 特征交互进行建模。
      • Field-aware FM: FFMField-weighted FM 通过考虑特征所属的 field 的影响来进一步改进 FM

      近年来,深度神经网络 DNN 显示出强大的自动学习有信息量 informativefeature representation 的能力。因此,DNN 也被用于 CTR 预估和 item 推荐,以自动学习 feature representation 和高阶特征交互。

      • FNN 在应用 DNN 之前预训练 FM
      • PNNembedding layer 和全连接层之间引入了一个 product layer
      • Wide & Deep 模型结合了 LRDNN 来同时捕获低阶特征交互和高阶特征交互。这种结构还同时提高了模型的 memorizationgeneralization 能力。
      • DeepFMFM 一样对低阶特征交互建模、像 DNN 一样对高阶特征交互建模。
      • NFM 结合了 FM 的线性和神经网络的非线性。
    • 利用辅助数据进行 CTR 预估:另外有一系列研究利用辅助数据来提高 CTR 预估性能。

      RNN-based 模型:

      • 《Sequential Click Prediction for Sponsored Search with Recurrent Neural Networks》 考虑用户的历史行为(例如,该用户点击了哪些广告)。论文使用 RNN 来建模用户行为序列的依赖性。
      • 《Improved recurrent neural networks for session-based recommendations》session-based 推荐提出了改进的 RNN

      基于 RNN 的模型的一个主要问题是:模型生成一个行为序列的整体 embedding 向量,该向量只能保留用户非常有限的信息。即使使用 LSTMGRU 等高级记忆单元结构,长期依赖性仍然难以保留。此外,由于其递归结构,RNN 的离线训练过程和在线预测过程都很耗时。

      CRF-based 模型:

      • 《Relational click prediction for sponsored search》 考虑了同一页面上显示的广告之间的 pairwise 关系,并提出了一种基于条件随机场 Conditional Random Field: CRFCTR 预估模型。
      • 《Exploiting contextual factors for click modeling in sponsored search》 在建模 CTR 时考虑了各种上下文因子,例如广告深度ad depthquery 多样性、广告交互。

      这些模型的一个主要问题是:需要根据数据分析手动定义顶点特征函数 vertex feature function 和边特征函数 edge feature function ,并且难以将模型推广到其它类型的数据。

    • 差异:本文提出的 DSTN 和先前工作的不同之处在于:

      • DSTN 将异质辅助数据heterogeneous auxiliary data (即上下文、点击广告、未点击广告)集成在一个统一的框架中,而 RNN-based 模型无法利用上下文广告和未点击广告,而 CRF-based 模型无法结合点击广告和未点击广告。
      • DSTN 不是 RNN based,因此更容易实现,并且训练和在线评估都更快。

20.1 模型

  1. 这里我们首先介绍 CTR 预估问题,然后介绍 DSTN 模型的三种变体。

  2. CTR 预估问题:在线广告中的CTR 预估任务是建立一个预估模型来估计用户点击特定广告的概率。

    • 每个样本都可以由多个字段 field 来描述,例如用户信息(用户ID、用户城市、用户年龄等等),以及广告信息(广告创意ID、广告计划ID、广告标题等等)。我们将每个样本称作 ad instance,它不仅包含广告信息,也包括用户信息、上下文信息等。

      字段的实例 instance 是一个特征。例如,用户 ID 字段可能包含诸如 21351473467291 的特征。下表给出了一些例子,其中:第一列是标签列,1 表示发生点击行为,0 表示未发生点击行为;其它各列均为一个字段。

    • 诸如 FM, DNN, Wide & Deep 之类的经典 CTR 预估模型主要考虑目标广告(如下图所示,target ad 表示目标广告对应的样本),它们聚焦于如何表示样本特征,以及如何学习特征交互。

      与这些方法不同,我们探索了辅助数据(即辅助广告)来提升 CTR 预估。我们必须解决以下问题:

      • 如何适应每种类型辅助广告的不同数量的各种情况。
      • 如何从辅助广告中提取有用的信息并抑制噪音。
      • 如何区分每种类型辅助广告的贡献。
      • 如何融合所有可用信息。

20.1.1 Embedding

  1. 在介绍模型之前,我们首先介绍所有模型中常见的 embedding 过程。embedding 过程是先将每个特征映射到一个 embedding 向量,然后将每个样本表示为相应特征 embedding 向量的拼接 concatenation

  2. 假设某个特征有 unique 值。我们创建一个 embedding 矩阵 ,其中第 代表对应于特征第 个取值的 embedding 向量。这个 embedding 矩阵 是在模型训练期间待学习的参数。

  3. 我们将特征分为三种类型并进行不同的处理,如下图所示。cate. 表示 categoricalft. 表示 featuread instance 表示样本,ad embedding vector 表示样本 embedding 向量。

    • 单值univalent 的离散特征:这类特征仅包含单个值。

      例如用户 ID 就是这类特征的代表,每个用户 ID 特征只有一个用户 ID 值。如果我们使用 one-hot 特征表示,则由于 unique 用户 ID 数量可能高达 ,导致特征向量非常稀疏。因此,我们将稀疏的高维离散特征映射为稠密的低维 embedding 向量从而适用于神经网络。

      one-hot representation 相比,这些 embedding 向量包含更丰富的信息。

    • 多值multivalent的离散特征:这类特征包含一组值。

      例如广告标题就是这类特征的代表。假设广告标题为 ABCD,那么它的 bi-gram 表示为:AB, BC, CD 。由于这类特征包含取值的数量不是固定的,因此我们首先将每个值映射到 embedding 向量,然后执行池化来生成固定长度的聚合向量。

    • 数值特征:用户年龄是数值特征的典型例子。每个数值特征首先被离散化为离散的桶,然后表示为桶ID,最后将每个桶 ID 映射到 embedding 向量。

  4. 经过 embedding 过程之后,样本的 representation 是所有 embedding 向量的拼接,每个 emebdding 向量对应于一个 field

  5. embedding 之后:

    • 每个目标广告target ad 获得了一个 embedding 向量 ,其中 为目标广告 embedding 维度。
    • 上下文广告集合获得了 embedding 向量 ,其中 为上下文广告数量, 为上下文广告 embedding 维度。
    • 历史点击广告集合获得了 embedding 向量 ,其中 为历史点击广告数量, 为历史点击广告 embedding 维度。
    • 历史未点击广告集合获得了 embedding 向量 ,其中 为历史未点击广告数量, 为历史未点击广告 embedding 维度。

    注意:

    • 包含了用户 embedding、广告 embedding 、上下文 embedding (如 query )。

    • 仅包含广告 embedding、上下文 embedding ,而不包含用户 embedding

      因为历史点击广告、历史未点击广告和目标广告都是同一个用户,没必要提供冗余的、重复的用户信息。

    • 仅包含广告 embedding,而不包含用户 embedding、广告 embedding

      因为上下文广告和目标广告都是同一个用户、同一个上下文(如 query )。

20.1.2 DSTN

a. DSTN-Pooling
  1. 由于不同用户的辅助广告数量 可能千差万别,因此这为深度神经网络带来了问题。我们需要解决的第一个问题是:将每种类型的、可变长度的辅助实例auxiliary instance 处理未固定长度的向量。在 DSTN-Pooling 模型中,我们使用 sum 池化来实现该目标,模型结构如下图所示。

    个上下文广告的聚合 representation 向量 个历史点击广告的聚合 representation 向量 个历史未点击广告的聚合 representation 向量 分别表示为:

    如果某种类型的辅助广告完全缺失(例如,根本没有上下文广告)则我们将全零向量作为其聚合representation 向量。

  2. 现在我们有了目标广告的 representation 、不同类型辅助广告的 representation ,下一个问题是融合这些representation 中包含的信息。

    具体而言,我们生成融合的 representation 为:

    其中:

    • 为待学习的权重矩阵,它们将不同的类型的 representation 映射到相同的语义空间。
    • 为待学习的 bias 向量。

    可以看到,我们实际上使用不同的权重来融合来自不同类型数据的输入。这是因为不同类型的辅助数据对于目标广告的影响程度可能不同,因此我们需要区分这些差异。

    此外,融合的representation 具有以下特性:如果一种或者多种类型的辅助广告完全缺失,则融合的representation 不受影响。例如,如果没有上下文广告,那么 。结果导致 ,因此 不受影响。

  3. 如果我们将目标广告的 representation 、不同类型辅助广告的 representation 拼接为 ,那么我们可以将上式重写为:

    其中: 表示向量拼接; 为所有权重矩阵的拼接; 为待学习的 bias 向量。这种方式大大简化了模型。

    因此,DSTN-Pooling 模型最终的设计为:

    • 首先拼接各个representation 从而获得临时 representaion

    • 然后将 通过若干个带 ReLU 激活函数的全连接层FC layer,从而利用高阶特征交互以及非线性变换。文献表明:ReLU 激活函数在收敛速度和模型效果方面比 tanh 激活函数具有明显的优势。

      其中: 为全连接层的层数; 表示第 层全连接层的、待学习的参数。

    • 全连接层输出向量 通过一个 sigmoid 函数来生成目标广告的预估 CTR

      其中 为待学习的参数。

此外,为了避免模拟过拟合,我们在每个全连接层之后应用 dropout

  1. 所有的模型参数通过最小化交叉熵损失函数来学习,其中损失函数定义为:

    其中: 为目标广告的真实label 为目标广告的预估CTR 为所有真实label 的集合。

  2. 可以看到:在 DSTN-Pooling 模型中,当给定用户在给定位置展示不同的目标广告时只有 发生变化,而所有的辅助representation 都保持不变。这意味着辅助 representation 仅用作静态基础信息。

    而且,由于 是通过 sum 池化生成的,因此有用的信息很容易被淹没在噪声中。例如,如果目标广告是关于咖啡的,但是大多数历史点击广告是关于衣服的、少部分历史点击广告是关于咖啡的。那么,虽然关于衣服的这些历史点击广告对于目标广告的贡献很小,但是 sum 的结果显然是由这些关于衣服的历史点击广告所主导。

b. DSTN-Self Attention
  1. DSTN-Self Attention 模型:鉴于 DSTN-Pooling 的上述限制,我们考虑采用自注意力机制,即 DSTN-Self Attention 模型。

    在我们的 DSTN-Self Attention 模型中,我们在每种类型的辅助数据上应用自注意力从而强调更重要的信息。以上下文辅助广告为例,其聚合representation 向量建模为:

    其中 为第 个上下文广告 representation 的注意力系数,它计算为:

    其中 为一个函数,它将上下文广告 representation 向量 映射为一个标量权重 的一个可能的实现方式是采用多层感知机 Multilayer Perceptron: MLP

    自注意力机制的优点在于:可以根据 self-attention 来加权不同的辅助广告 ,从而可以强调有用的信息并抑制噪声。但是,它仍然具有以下局限性:

    • 权重 仅仅基于上下文辅助广告 来计算,它并未捕获这个上下文辅助广告和目标广告 之间的关系。例如,无论目标广告是关于咖啡还是衣服,上下文辅助广告的重要性都保持不变。
    • 归一化的注意力系数 通过 之间的相对重要性来计算,并且 。结果,即使所有的上下文辅助广告 和目标广告 无关,由于归一化的存在,最终的注意力系数 仍然很大。
    • 每种类型辅助广告的绝对数量也很重要,但是归一化并未捕获这种效果。例如,假设每个上下文辅助广告的重要性都相同,则采用归一化的注意力系数完全无法区分是 1 个上下文辅助广告、还是 100 个上下文辅助广告。
c. DSTN-Interactive Attention
  1. DSTN-Interactive Attention:鉴于 DSTN-Self Attention 的上述限制,我们考虑引入每种类型辅助广告和目标广告之间的显式交互,即 DSTN-Interactive Attention 模型,如下图所示。

    以上下文辅助广告为例,其聚合representation 向量建模为:

    其中: 为模型参数。

    DSTN-Self Attention 相比,这里的 现在是目标广告 和上下文辅助广告 的函数。通过这种方式, 基于目标广告 来动态调整上下文辅助广告 的重要性。

    此外, 现在还不依赖于其它上下文辅助广告 ,也不需要进行归一化。如果没有任何上下文辅助广告能够提供信息,则所有的 都会很小。

    类似地,我们为历史点击辅助广告生成 、为历史未点击辅助广告生成

  2. DSTN-Interactive Attention 模型最终得到融合的 representation 为:

    DSTN-Pooling 相比,可以看到:

    • 辅助representation 现在不再使用静态基础信息,而是根据目标广告来动态调整。这意味着模型会针对目标广告自适应地提取辅助数据中的更多有用信息。

      例如,假设历史点击广告和咖啡、衣服、汽车相关。

      • 当目标广告 和咖啡有关时,历史点击的咖啡广告应该为 做出更大的贡献。
      • 当目标广告 和汽车有关时,历史点击的汽车广告应该为 做出更大的贡献。
    • 此外,模型仍然保留了使用不同的权重来融合不同类型辅助数据输入的特点。

    • 最后,模型中的权重 并没有在所有上下文辅助广告之间进行比较,这避免了归一化导致的问题。

  3. 最后我们给出 DNN, DSTN-Pooling, DSTN-Interactive Attention 等模型的结构对比,如下图所示。

20.1.3 部署

  1. 我们在中国第二大搜索引擎 “神马搜索” 中部署了 DSTN-I(简称 DSTN )。下图给出了系统的体系架构,其中包括离线阶段、流式 streaming 阶段、在线阶段。

    • 离线阶段:在线用户行为(广告曝光/点击)不断地记录到离线用户日志数据库中。系统从日志数据库中提取训练数据,并训练 DSTN 模型。

      离线训练首先以 batch 方式执行,然后周期性地使用最新的日志数据对训练好的模型进行增量更新。

    • streaming 阶段:在线用户行为也会被发送到用户会话服务器User Session Server(延迟不超过 10s ),该服务器上维护并更新了每个用户历史记录的 hashmap

      为了减少内存需求和在线计算量,hashmap 保持了每个用户最近3 天内的最多5 个历史点击广告和5 个历史未点击广告。如果超过 5 个,则仅保留最新的 5 个。

    • 在线阶段:收到用户请求之后,Ad Server 首先从User Session Server 检索用户历史记录数据。然后 Ad ServerModel Server 请求一组候选广告的 pCTR

  2. 在线阶段的pCTR 请求是分为几个步骤来完成的。这是因为神马搜索现在每个 app 页面拥有 3-4 个广告位,因此需要为用户返回 3-4 个广告。而且,前面的广告是后面广告的上下文。

    • ①:Ad Server 将候选目标广告集合以及历史点击广告、历史未点击广告一起发送给 Model Server。此时没有上下文广告集合。

    • ②:Model Server 返回这些候选目标广告的 pCTR

    • ③:Ad Server 根据某些排序策略(依赖于 pCTR)选择 top 候选目标广告。假设该 top 候选目标广告是广告 2 ,然后广告 2 将成为其它目标广告的上下文广告。

      Ad Server 将剩余的候选目标广告集合以及上下文广告(广告 2 )、历史点击广告、历史未点击广告一起发送给 Model Server

    • ④:Model Server 将返回剩余候选目标广告的 pCTR

    理论上讲我们需要多次执行步骤 ③和④,从而依次挑选目标广告并更新上下文广告集合。但是考虑到预测准确率和服务延迟之间的折衷,我们仅执行步骤③和④一次,并在步骤④之后 Ad Server 选择2-3 个得分最高的剩余候选目标广告,并将最终广告列表发送给用户。

    本质是,在线预估的时候上下文广告集合是不确定的,依赖于在线策略的选择。

20.2 实验

  1. 这里我们对三个大型数据集进行实验,从而评估所提出的 DSTN 以及几种 state-of-the-artCTR 预估方法的效果

  2. 数据集:

    • Avito 广告数据集:该数据集包含来自俄罗斯最大的通用分类网站 avito.ru 的广告日志随机采样的样本。我们将 2015-04-28 ~ 2015-05-18 的广告日志用于训练,将 2015-05-19 的广告日志用于验证,将 2015-05-20 的广告日志用于测试。

      我们使用的特征包括:

      • 广告特征,如广告ID、广告标题、广告类别、广告的父类别parent category(类别的上一级类别)。
      • 用户特征,如用户 IDIP ID、用户 agent、用户 agent OS、用户设备。
      • query 特征,如搜索query、搜索位置location、搜索类别cateogry、搜索参数 parameter
    • Search 广告数据集:该数据集包含来自阿里巴巴商业搜索广告系统的广告曝光和点击日志随机采样的样本。我们将 20186 月连续7 天的广告日志用于训练,将下一天的广告日志用于验证,将下下一天的广告日志用于测试。

      我们使用的特征包括:

      • 广告特征,如广告ID、广告标题、广告行业。
      • 用户特征,如用户IDIP ID、用户 agent
      • query 特征,如搜索query、搜索位置location
    • News feed 广告数据集:该数据集来自阿里巴巴商业新闻 feed 广告系统的广告曝光和点击日志随机采样的样本。我们将 20187 月连续7 天的广告日志用于训练,将下一天的广告日志用于验证,将下下一天的广告日志用于测试。

      我们使用的特征包括:

      • 广告特征,如广告ID、广告标题、广告行业。
      • 用户特征,如用户ID、召回的广告主题 matched ad topic 的数量。
      • 交叉特征,如 AdType-AdResource

      该数据集中的辅助数据不包含上下文广告。这是因为在我们的新闻 feed 广告系统中,页面上仅显示一个广告。

    数据集的统计信息如下表所示,其中 avg 表示 averagectxt 表示 contextualpta 表示 per target ad 。可以看到 distinct 特征数量可以高达 4600 万。

  3. baseline 方法:

    • LR:逻辑回归模型Logistic Regression 。它是一个广义线性模型,建模了一阶特征重要性。

    • FM:因子分解机模型Factorization Machine。它同时对一阶特征重要性和二阶特征交互进行建模。

    • DNN:深度神经网络Deep Neural Network 。每个样本首先经过一个 embedding 层,然后经过几个全连接层。最后输出层利用 sigmoid 函数来预估 CTR

    • Wide&DeepWide&Deep 模型。它结合了 LR 模型(wide 部分)和 DNN 模型(deep 部分)。

    • DeepFMDeepFM 模型。它结合了 FM模型(wide 部分)和 DNN 模型(deep 部分),并且在 wide 部分和 deep 部分之间共享相同的输入和 embedding 向量。事实证明,DeepFM 的性能优于 Wide&Deep, FNN, PNN 等模型。

    • CRF:条件随机场Conditional Random Field 方法。它同时考虑了广告的特征、以及该广告和周围广告surrounding ad 的相似性。

      CTR 预估的对数几率通过 给出,其中: 为模型参数, 为样本特征, 为周围广告的相似性之和 。相似性是在广告标题和广告描述文本中的字符串上人工定义的manually defined

      CRF 在某种程度上是不切实际的,因为在商业广告系统中,无法预先知道目标广告下面的广告。因此,我们仅将上下文广告(即目标广告上方的广告)用作周围的广告。

    • GRUGated Recurrent Unit,最先进的 RNN 网络之一。它利用了用户的历史点击广告序列。

    • DSTN-PDSTN-Pooling 模型。它使用 sum 池化来聚合辅助数据。

    • DSTN-SDSTN-Self Attention 模型。它使用 self attention 来聚合辅助数据。

    • DSTN-IDSTN-Interactive Attention 模型。它引入了辅助数据和目标广告之间的显式交互。

    在所有这些方法中,CRF, GRU, DSTN 均考虑辅助广告,而所有其它方法都聚焦于目标广告上。具体而言:CRF 考虑了上下文广告,GRU 考虑了历史点击广告,DSTN 考虑了上下文广告、历史点击广告、历史未点击广告。

  4. 配置:

    • 每个特征的 embedding 向量维度设为 10。因为 distinct 特征数量太高,如果embedding 维度太大则参数规模异常巨大。
    • DNN, Wide&Deep, DeepFM, GRU, DSTN 中全连接层的层数设为 2,每层的维度分别为512,256
    • dropout rate 设为 0.5
    • GRU 的隐层维度设置为 128
    • DSTN-S 中的 函数是具有单隐层的 MLP,隐层维度为 128
    • DSTN-I 中的 的维度也设为 128
    • 所有方法都在Tensorflow 中实现,并通过 Adagrad 算法进行优化。batch size 设为 128
    • 我们使用用户最近 3 天的历史行为。为了降低内存需求,我们进一步限制 。也就是说,如果历史点击广告数量不超过 5 个,则我们全部使用;如果超过5 个,则我们使用最新的 5 个。
  5. 评估指标:测试集上的 AUC, logloss

    AUC 反映了对于随机选择的一个正样本和一个负样本,模型对正样本的rank 高于负样本的概率。

  6. 下表给出了实验结果。可以看到:

    • Wide&DeepLR, DNN 获得了更高的 AUC;同样地, DeepFMFM, DNN 获得了更高的 AUC

      这些结果表明:将 wide 部分和 deep 部分组合在一起可以提高整体的预测能力。

    • CRF 的效果比 LR 好得多,因为 CRF 可以通过一个系数来校正LR 的预测,该系数summarize 了当前广告和上下文广告的相似性。

      但是,这种相似性是基于原始字符串人工定义的,因此遇到了语义gap 的困扰。

    • GRU 在两个数据集上(除了 Search 数据集)的表现优于 LR, FM, DNN, Wide&Deep, DeepFM,因为 GRU 还利用了历史点击广告。

      GRU 的改善在 News Feed 广告数据集上最为明显。这是因为用户没有在 News Feed 广告中提交query,因此历史行为非常有信息量informative

    • DSTN-P 优于 GRU。原因有两个:

      • 首先,用户行为序列中的连续行为可能没有很好的相关性。例如,某个用户最近点击了零食和咖啡的广告。下一次点击的广告可能是关于牙膏的,而不是关于食品的。这仅仅取决于用户的需要,而不是与之前点击广告的相关性。因此,考虑用户行为序列可能不一定有助于提高预测性能。
      • 其次,DSTN-P 可以利用上下文广告、历史未点击广告中的信息。
    • 当我们比较 DSTN 的不同变体时,可以观察到: DSTN-S 的性能优于 DSTN-P,而DSTN-I 的性能进一步优于 DSTN-P

      这些结果表明:和简单的 sum 池化相比,self attention 机制可以更好地强调有用的信息。而interactive attention 机制显式地引入了目标广告和辅助广告之间的互动,因此可以自适应地抽取比 self attention 更多的相关信息。

    • 我们还观察到,logloss 不一定与 AUC 相关。即 AUC 更大的模型,其 logloss 不一定更小。尽管如此,DSTN-I 在所有数据集上的AUC 最大、 logloss 也最小,这显示了模型的有效性。

  7. 为了检查不同类型辅助数据的影响,我们在DSTN-I 模型中分别仅提供上下文广告、仅提供历史点击广告、仅提供历史未点击广告。为了衡量效果,我们定义并计算以下两个指标:

    • 绝对 AUC 提升absolute AUC improvement: AbsImp

      其中 ctxt 是上下文的缩写。

    • 标准化的 AUC 提升 normalized AUC improvemen: NlzImp

      这里我们针对平均辅助数据的规模进行归一化。

    AbsImp 考虑AUC 的整体提升,而 NlzImpAUC 提升效果针对单个辅助广告进行标准化。通常我们关注AUC 的绝对提升而不是相对提升,因为在工业实践中 AUC 的绝对提升更具有意义和指导性。

    实验结果如下图所示。

    • (a) 中可以看到:不同类型辅助数据的效果在不同数据集上有所不同。上下文广告在 Avito 数据集上的 AbsImp 最高,而历史未点击广告在Search 数据集上的 AbsImp 最高。

    • (b) 中可以看到:有意思的是,一旦标准化之后,上下文广告、历史点击广告的作用就比历史未点击广告高得多。

      这符合直觉,因为上下文广告可能会分散用户的注意力,而历史点击广告通常会反映出用户的兴趣。相反,历史未点击广告可能会产生很大的噪音:历史未点击可能表明用户对广告不感兴趣,或者用户根本没有查看广告。

  8. 为了检查全连接层深度的影响,我们在DSTN-I 模型中分别选择了三种不同配置的全连接层:单层 256 维、两层 512-256 维、三层 1024-512-256 维。实验结果如下图所示。

    可以看到:

    • 增加全连接层的数量可以在一开始改善 AUC,但是随后添加更多层时,提升的幅度会降低。
    • 最后,添加更多的层甚至可能导致轻微的性能降级degradation。这可能是由于更多的模型参数导致过拟合,以及更深的模型导致训练难度增加而导致的。

  9. 下图分别给出了NNDSTN-I 学到的 ad-embedding 的可视化(基于 t-SNE),不同颜色代表不同的子类目。这些广告是基于 5 个主类目(电子、服装、家具、计算机、个人护理)下的 20 个子类目。我们在每个子类目中随机选择 100 个广告。

    注意:这里可视化的是 target ad embedding,而这里的的 ad embedding 只有广告信息,不包含 query 信息和用户信息。

    可以看到:

    • 两种方法学到的 embedding 均显示了清晰的簇结构,每个簇代表一组相似的广告。
    • 尽管如此,DNN 还是将 iPhone 和 “三星手机” 混在一起,将 “床” 和 “橱柜” 混在一起,将 “礼服” 和 “鞋子” 混在一起。相比之下,DSTN-I 学习到了更清晰的簇,并清楚地区分了不同的子类目。

    这些结果表明,DSTN-I 可以借助辅助广告来学习更具代表性的 embedding

  10. 现在我们通过对 Avito 数据集的一些案例研究来检查 DSTN-I 辅助广告的注意力权重。我们很难分别检查每种类型的辅助广告,因为很难找到包含足够数量的、所有辅助类型广告的案例。

    • 上下文广告:下图给出了关于 YotaPhone 的目标广告。我们显示了三个上下文广告,分别是手机镜头、三星手机、HTC 手机。我们给出了上下文广告的注意力权重

      可以看到:两个手机广告的权重相差不大(约 0.6),但是手机镜头广告(最不相似)的权重却要高得多(约 0.8)。

      这样的观察结果符合 《Relational click prediction for sponsored search》 中的分析,作者发现:周围的广告和目标广告越相似,目标广告的点击率就越低。这是因为相似的广告可以分散用户的注意力,因为所有这些广告都提供相似的产品或服务。

      相反,相异的广告可以帮助目标广告更加引人注目,因此 DSTN-I 将手机镜头广告给予较大的权重。

      因此对于上下文广告,和目标广告越相似,注意力权重越低。

    • 历史点击广告:目标广告是关于自拍杆。我们给出了历史点击广告的注意力权重

      • 第一个历史点击广告是关于婴儿安全座椅,这显然与目标广告无关,其注意力权重为 0.5223
      • 第二个历史点击广告是关于闪光灯,闪光灯是用于摄影的数码相机的附件,其注意力权重( 0.7057 )要比婴儿安全座椅高得多。
      • 第三个历史点击广告是关于三脚架,三脚架和自拍杆更为相似,因此注意力权重更高(0.8449)。
      • 第四个历史点击广告也是关于自拍杆,其注意力权重最高(0.9776)。

      这些观察结果表明:历史点击广告和目标广告越相似,注意力权重越高。这是因为:如果用户曾经点击了和目标广告类似的广告,则用户也可能会点击目标广告。

    • 历史未点击广告:目标广告是关于 Sony 相机套装的。四个历史未点击广告分别与自行车、自拍杆、相机镜头、相机套装有关。我们给出了历史未点击广告的注意力权重

      这些广告和目标广告的相似性依次递增,因此相应的注意力权重也在增加。

      这些观察结果表明:历史未点击广告和目标广告越相似,注意力权重越高。这是因为:如果用户过去没有点击和目标广告类似的广告,那么用户很可能也不会点击目标广告。

    将历史点击广告和历史未点击广告的注意力权重进行比较,我们发现一个有趣的现象:即使历史未点击广告和目标广告非常相似,历史未点击广告的平均权重也要比历史点击广告的平均权重小得多。这是因为历史点击广告会反映出可能的用户偏好,而历史未点击广告则更加模棱两可ambiguous

  11. 我们于 20191 月进行了为期两周的在线 A/B test 实现。基准模型是 Wide&Deep,这是我们最新的在线 serving 模型。我们的在线评估指标是 CTR

    在线实验结果表明:DSTN 的效果始终优于 Wide&Deep,两周的平均 CTR 提升在 6.92% 。这证明了 DSTN 在实际点击率预估任务中的有效性。目前我们已经在神马搜索中部署了 DSTN

二十一、BST[2019]

  1. 在过去的十年中,推荐系统已经成为业界最流行的应用application 。并且在过去的五年中,基于深度学习的方法已经广泛应用于工业推荐系统中。在中国最大的电商平台阿里巴巴上,推荐系统一直是Gross Merchandise Volume: GMV 和收入的主要引擎,并且在丰富的电商场景中已经部署了各种基于深度学习的推荐方法。

    阿里巴巴的推荐系统分为两个阶段:matchrank

    • match 阶段,根据和用户交互的item 选择一组相似的item
    • 然后在rank 阶段,我们学习一个经过微调fine-tuned 的预测模型,从而预测用户点击给定候选 item 集合的可能性。

    在论文 《Behavior Sequence Transformer for E-commerce Recommendation in Alibaba》 中,我们重点关注阿里巴巴旗下淘宝(中国最大的 Consumer-to-Consumer: C2C 平台)的 rank 阶段。在这个阶段,我们有数百万的候选item,并且需要在给定用户历史行为的情况下预测用户点击候选 item 的概率。

    在深度学习时代,embeddingMLP 已经成为工业推荐系统的标准范式:大量原始特征作为向量被嵌入到低维空间中,然后馈入称作多层感知机multi layer perceptron: MLP 的全连接层中,从而预测用户是否会点击某个 item 。代表作是谷歌的 wide and deep learning: WDL ,以及阿里巴巴的 Deep Interest networks: DIN

    在淘宝,我们在 WDL 的基础上构建了 rank 模型,在 Embedding&MLP 范式中使用了各种特征。例如,item 类目category、品牌branditem 的统计数字,用户画像特征等等。尽管该框架取得了成功,但是它本身远远不能令人满意,因为它实际上忽略了一种非常重要的信号:用户行为序列(即用户按顺序点击的 item )背后的序列信号sequential signal

    例如,用户在淘宝上购买了 iphone 之后倾向于点击手机保护套,或者在购买一条裤子之后试图找到合适的鞋子。从这个意义上讲,在淘宝的 rank 阶段部署预测模型时,不考虑这一因素是有问题的。

    • WDL 中,模型只是简单地拼接所有特征,而没有捕获用户行为序列中的顺序信息order information
    • DIN 中,模型使用注意力机制来捕获候选 item 和用户历史点击item 之间的相似性,也没有考虑用户行为序列背后的序列性质sequential nature

    因此,在这项工作中,为解决 WDLDIN 面临的上述问题,我们尝试将用户行为序列的序列信号融合到淘宝的推荐系统中。

    受到natural language processing: NLP 中机器翻译任务的 Transformer 的巨大成功的启发,我们采用 self-attention 机制,通过考虑 embedding 阶段的序列信息来学习用户行为序列中每个 item 的更好的representation 。然后将这些 item representation 馈入到 MLP 中来预测用户对候选 item 的响应。

    Transformer 的主要优势在于,它可以通过 self-attention 机制更好地捕获句子中单词之间的依赖关系。从直觉上讲,用户行为序列中 item 之间的 'dependency' 也可以通过 Transformer 来提取。因此,我们在淘宝上提出了用于电商推荐的 user behavior sequence transformer: BST

    离线实验和在线 A/B test 显示了 BST 与现有方法相比的优越性。BST 已经部署在淘宝推荐的rank 阶段,每天为数亿消费者提供推荐服务。

  2. 相关工作:自从 WDL 提出以来,人们已经提出了一系列基于深度学习的方法来提高 CTR 预估的工作,如 DeepFMXDeepFMDeep and Cross 等。然而,所有这些先前的工作都集中在神经网络的特征组合或不同架构上,而忽略了现实世界推荐场景中用户行为序列的顺序特性 sequential nature

    最近, DIN 通过注意力机制来处理用户的行为序列。我们的模型和 DIN 之间的主要区别在于,我们提出使用 Transformer 来学习用户行为序列中每个 item 的更 deeperrepresentation ,而 DIN 试图捕获历史点击 item 和目标 item 的相似性。换句话讲,我们的 transformer 模型更适合捕获序列信号。

    《Self-attentive sequential recommendation》《BERT4Rec: Sequential Recommendation with Bidirectional Encoder Representations from Transformer》 中,他们使用 Transformer 模型来以 sequence-to-sequence 的方式解决序列推荐问题,而我们的 CTR 预估模型与他们的架构不同。

21.1 模型

  1. rank 阶段,我们将推荐任务建模为点击率Click-Through Rate: CTR预估问题,其定义如下:给定用户 点击item 构成的用户行为序列 ,我们需要学习一个函数 来预测 点击目标item (即候选 item ) 的概率。

  2. 我们在 WDL 的基础上构建了 BST,整体架构如下图所示。从图中可以看到 BST 遵循流行的 Embedding&MLP 范式,其中历史点击item 和相关的特征首先被嵌入到低维向量中,然后被馈送到 MLP

    具体而言,BST 将用户行为序列(包括target item 和其它特征Other Features)作为输入。其中Other Features 包括:用户画像特征、上下文特征、item 特征、以及交叉特征。

    • 首先,这些输入特征被嵌入为低维向量。为了更好地捕获行为序列中 item 之间的关系,可以使用 transformer layer 来学习序列中每个 item 的更深层representation
    • 然后,通过将Other Featuresembeddingtransformer layer 的输出进行拼接,并使用三层 MLP 来学习 hidden features 的交互作用。
    • 最后,使用 sigmoid 函数生成最终输出。

    注意:Positional Features 被合并到 Sequence Item Features 中。

    BSTWDL 之间的主要区别在于:BST 添加了 transformer layer ,从而通过捕获底层的序列信号来学到用户点击item 的更好的 representation

    接下来的内容我们将以自下而上的方式介绍 BST 的关键组件:embedding layertransformer layerMLP

21.1.1 Embedding Layer

  1. 第一个组件是 embedding layer,它将所有输入特征嵌入到一个固定大小的低维向量中。

    • 在我们的场景中有各种特征,如用户画像特征、item 特征、上下文特征、以及不同特征的组合(即交叉特征)。由于我们的工作聚焦于使用 transformer 对用户行为序列进行建模,因此为简单起见我们将所有这些特征都表示为 Other Features,并在下表中给出了一些示例。

      我们将 Other Features 拼接起来,将它们嵌入到低维向量中。对于这些特征,我们创建一个 embedding 矩阵 。其中: embedding 向量的维度,uniqe 特征数量。

    • 此外,我们还获得了用户行为序列中每个 item (包括目标item)的 embedding 。我们使用两种类型的特征来表示一个 itemSequence Item Features(红色)、Positional Features(深蓝色)。

      • Sequence Item Features 包括 item idcategory id

        注意,一个 item 往往具有数百个特征,而在用户行为序列中选择item的所有这些特征代价太大。正如我们先前的工作 《Billion-scale commodity embedding for e-commerce recommendation in alibaba》 所述,item idcategory id 足以满足性能要求。因此我们选择这两个稀疏特征来表示嵌入用户行为序列中的每个 item

      • Positional Features 对应于下面的 positional embedding

      对于每个 item,我们将 Sequence Item FeaturesPositional Features 拼接起来,并创建一个 embedding 矩阵 。其中: embedding 向量的维度, item 数量。我们使用 来表示给定行为序列中第 itemembedding

  2. positional embedding :在 《Attention is all you need》 中,作者提出了一种 positional embedding 来捕获句子中的顺序信息order information 。同样地,顺序order 也存在于用户行为序列中。因此,我们添加 position 作为bottom layer 每个item 的输入特征,然后将其投影为低维向量。

    注意,item position value 计算为:

    其中:

    • target item 为用户行为序列中第 item
    • 表示推荐时间 recommending time,而 表示用户点击 item 的时间戳。

    我们采用这种方法,因为在我们的场景中,它的性能优于 《Attention is all you need》 中的 sincos 函数。

21.1.2 Transformer Layer

  1. 这一部分,我们介绍了 Transformer layer,它通过捕获行为序列中每个item 与其它item 的关系来学习item 的更深 deeperrepresentation

  2. self-attention layer:缩放的内积注意力 scaled dot-product attention 定义为:

    其中: 代表 query 代表 key 代表 value

    在我们的场景中,self-attention 操作将itemembedding 作为输入,通过线性映射将其转换为三个矩阵,并将其馈入attention layer

    遵从 《Attention is all you need》,我们使用 multi-head attention

    其中:

    • 为映射矩阵。
    • 中所有 itemembedding 矩阵。
    • head 数量。
  3. Point-wise Feed-Forward Network:遵从 《Attention is all you need》,我们添加一个 point-wise Feed-Forward Network:FFN 来进一步提升模型的非线性,它定义为:

    为避免过拟合并且学习层次的有意义的特征,我们同时在 self-attentionFFN 中使用 dropoutLeakyReLU 。然后 self-attention layerFFN layer 的总输出为:

    其中:

    • 为可学习的参数。
    • 为标准的 normalization layer
  4. Stacking the self-attention blocks:在第一个 self-attention block 之后,它会聚合所有历史 itemembedding。为了进一步建模底层 item 序列的复杂关系。我们堆叠了 self-attention building block,其中第 block 定义为:

    实践中我们观察到 可以获得比 更好的性能。为了提高效率,我们并未尝试更大的 ,并把这个留给以后的工作。

21.1.3 MLP Layer & Loss Function

  1. 我们将Other Featuresembedding 和应用于 target itemTransformer layer 的输出进行拼接,然后使用三个全连接层来进一步学习这些 dense features 之间的交互。这是工业推荐系统的标准做法。

    为了预测用户是否点击 target item ,我们将其建模为一个二类分类问题,因此使用 sigmoid 函数作为输出单元。

    为了训练模型,我们使用交叉熵损失函数:

    其中:

    • 代表所有样本的训练集。
    • 代表是否点击的 label
    • 为网络经过 sigmoid 单元之后的输出,代表样本 被点击的概率。

21.3 实验

  1. 数据集:数据集是根据 Taobao App 的日志来构建的。我们根据用户在八天内的行为来构建离线数据集,其中前七天用于训练集、第八天用于测试集。

    数据集的统计信息如下表所示,可以看到该数据集非常大并且非常稀疏。

  2. baseline:为了显示 BST 的有效性,我们将它和其它两个模型进行比较:WDLDIN

    此外,我们通过将序列信息合并到 WDL (称作 WDL(+Seq))中来创建 baseline 方法,该方法将历史点击itemembedding 进行均值聚合。

    我们的框架是在 WDL 的基础上通过使用 Transformer 添加序列建模而构建的,而 DIN 是通过注意力机制来捕获目标 item 和历史点击item 之间的相似性。

  3. 评估指标:

    • 对于离线结果,我们使用 AUC 得分来评估不同模型的性能。

    • 对于在线 A/B test ,我们使用 CTR 和平均 RT 来评估所有模型。

      RT 是响应时间response time: RT 的缩写,它是给定query (即淘宝上来自用户的一个请求)生成推荐结果的时间成本。我们使用平均 RT 来衡量在线生产环境中各种效率的指标。

  4. 配置:我们的模型是使用 Python2.7Tensorflow 1.4 实现的,并且选择了 Adagrad 作为优化器。

    此外,我们在下表中给出了模型参数的详细信息。

  5. 实验结果如下表所示,其中 Online CTR Grain 是相对于控制组control group (即 WDL )。从结果中我们可以看到 BST 相比于 baseline 的优越性。具体而言:

    • 离线 AUC0.7734WDL)和 0.7866 (DIN) 提高到 0.7894BST)。

    • 比较 WDLWDL(+Seq) 时,我们可以看到以简单的平均方式结合序列信息的有效性。这意味着BSTself-attention 的帮助下,具有强大的能力来捕获底层用户行为序列的序列信号。

      注意:根据我们的实际经验,即使离线 AUC 的收益很小,也可以带来在线 CTR 的巨大收益。Google 的研究人员在 WDL 中报道了类似的现象。

    • 此外,就效率而言,BST 的平均 RT 接近 WDLDIN 的平均 RT,这保证了在现实世界的大型推荐系统中部署诸如 Transformer 之类的复杂模型的可行性。

    • 最后,我们还展示了堆叠 self-attention layer 的影响。可以看到 获得最佳的离线 AUC

      这可能是由于以下事实:用户行为序列中的序列依赖性并不像机器翻译任务中的句子那样复杂。因此,较少的 block 数量就足以获得良好的性能。在《Self-attentive sequential recommendation》中报道了类似的观察结果。因此,我们选择 在生产环境中部署 BST,并且仅在下表中报告 的在线 CTR 增益。

二十二、SIM[2020]

  1. 点击率Click-Through Rate: CTR预估建模在推荐系统recommender system 和在线广告online advertising等工业应用中起着至关重要的作用。由于用户历史行为数据user historical behavior data 的快速增长,以学习用户兴趣的意图representation 为重点的用户兴趣建模user interest modeling被广泛引入 CTR 预估模型。然而,由于真实在线系统中计算负担和存储负担的限制,大多数提出的方法只能对长度最多数百的用户行为序列数据进行建模。

    事实证明,丰富的用户行为数据具有巨大的价值。例如,在全球领先的电商网站之一的淘宝网中,有 23% 的用户在过去五个月内点击了 1000 多种商品。如何设计一种可行的解决方案来对长的用户行为序列数据long sequential user behavior data 进行建模,这一直是一个开放而热门的话题,吸引了来自工业界和学术界的研究人员。

    • 研究的一个分支借鉴了 NLP 领域的思想,提出使用 memory network 对长的用户行为序列数据进行建模,并取得了一些突破。阿里巴巴提出的 MIMN 是一项典型的工作,它是通过共同设计 co-design 学习算法和 serving system 来达到 SOTA 的。MIMN 是第一个可以对长度可达 1000 的用户行为序列进行建模的工业级解决方案。

      具体而言,MIMN 将一个用户多样化diverse的兴趣增量地incrementally 嵌入到固定大小的 memory matrix 中。该矩阵将通过每个新的行为进行更新,这样用户建模的计算就和 CTR 预估解耦。因此,对于在线 serving 而言,latency 将不再是问题。而存储代价依赖于 memory matrix 的大小,该大小远远小于原始的用户行为序列。

      在长期兴趣建模long-term interest modeling 中可以找到类似的思想。然而,对于 memory network-based 方法来建模任意长的序列数据仍然是具有挑战性的。实际上我们发现:当用户行为序列的长度进一步增加,比如增加到 10000 甚至更多时,对给定一个特定的候选item 的情况下,MIMN 无法精确地捕获用户的兴趣。这是因为将用户所有的历史行为编码到固定大小的 memory matrix 会导致大量的噪声被包含在 memory unit 中。

    • 另一方面,正如 DIN 在以前的工作中指出的,一个用户的兴趣是多样化diverse 的,并且在面对不同候选item 时会有所不同。DIN 的关键思想是:在面对不同的候选 item 时,从用户行为序列中搜索有效信息,从而建模用户的特定兴趣special interest 。通过这种方式,我们可以解决将用户所有兴趣编码为固定大小的参数parameter的挑战。

      DIN 确实为使用用户行为序列数据的 CTR 建模带来了很大的提升。但是,如前所述,面对长的用户行为序列数据,DIN 的搜索公式的计算成本和存储成本是不可行的。因此,我们能否应用类似的搜索技巧,并设计一种更有效的方法来从长的用户行为序列数据中提取知识?

    在论文 《Search-based User Interest Modeling with Lifelong Sequential Behavior Data for Click-Through Rate Prediction》 中,作者通过设计一个新的建模范式来解决这一挑战,并将其命名为基于搜索的兴趣模型 Search-based Interest Model: SIMSIM 采用了 DIN 的思想,并且仅捕获与特定候选 item 相关的用户兴趣。

    SIM 中,用户兴趣是通过两个级联 cascaded的搜索单元search unit 来提取的:

    • 通用搜索单元 General Search Unit: GSU:充当原始的、任意长的行为序列数据的通用搜索,并具有来自候选 itemquery 信息,最终得到和候选item 相关的用户行为序列子集Sub user Behavior Sequence: SBS

      为了满足latency 和计算资源的严格限制,在 GSU 中使用了通用、但是有效的方法。根据我们的经验,可以将 SBS 的长度缩短为数百个,并且可以过滤原始的、长的用户行为序列数据中的大部分噪声信息。

    • 精准搜索单元Exact Search Unit: ESU:对候选 itemSBS 之间的精确关系进行建模。在这里,我们可以轻松应用 DINDIEN 提出的类似方法。

    论文主要贡献:

    • 提出了一种新的范式 SIM,用于长的用户行为序列数据进行建模。级联的两阶段搜索机制的设计使得 SIM 具有更好的能力,可以在可扩展性scalability 和准确性accuracy 方面为长期的life-long 用户行为序列数据建模。
    • 介绍了在大规模工业系统中实现 SIM 的实践经验。自 2019 年以来,SIM 已经部署在阿里巴巴展示广告系统display advertising system 中,带来了 7.1%CTR 提升和 4.4%RPM 提升。现在 SIM 正在服务于主要流量。
    • 将长的用户行为序列数据建模的最大长度提高到 54000,比已发布的 SOTA 行业解决方案 MIMN54 倍。
  2. 相关工作:

    • 用户兴趣模型User Interest Model:基于深度学习的方法在CTR 预估任务中取得了巨大的成功。

      在早期,大多数前期作品使用深度神经网络来捕获来自不同 field 的特征之间的交互,以便工程师可以摆脱枯燥的特征工程的工作。最近,我们称之为用户兴趣模型User Interest Model 的一系列工作聚焦于从用户历史行为中学习潜在用户兴趣的 representation ,这些工作使用不同的神经网络架构(如 CNN, RNN, Transformer, Capsule 等等)。

      • DIN 强调用户的兴趣是多样化的,并引入了一种attention 机制来捕获用户对不同 target itemdiverse 兴趣。
      • DIEN 指出,用户历史行为之间的时间关系对于建模用户漂移drifting 的兴趣非常重要。在 DIEN 中设计了一个基于 GRU 的、带辅助损失的兴趣抽取层interest extraction layer
      • MIND 认为,使用单个向量来表示一个用户不足以捕获用户兴趣的变化的特性varying nature 。在 MIND 中引入了胶囊网络Capsule network 和动态路由方法 dynamic routing method,从而学习用户兴趣的、以多个向量表示的representation
      • 受到 self-attention 架构在 seq-to-seq learning 任务重成功的启发, DSIN 引入了 Transformer 来对用户的 cross-sessionin-session 中的兴趣进行建模。
    • 长期用户兴趣Long-term User InterestMIMN 的论文中显示了在用户兴趣模型中考虑长期历史行为序列可以显著提高 CTR 模型的性能。尽管更长的用户行为序列为用户兴趣建模带来了更多有用的信息,但是它极大地增加了在线 serving sysem 的延迟和存储负担,同时也为 point-wiseCTR 预估带来了大量的噪声。

      一系列工作聚焦于解决长期用户兴趣建模中的挑战。长期用户兴趣建模通常基于非常长的、甚至是 life-long 的历史行为序列来学习用户兴趣 representation

      • 《Lifelong Sequential Modeling with Personalized Memorization for User Response Prediction》提出了一种 Hierarchical Periodic Memory Network,用于对每个用户进行 life-long 序列建模,其中对序列模式进行个性化memorization

      • 《Adaptive user modeling with long and short-term preferences for personalized recommendation》 选择一个attention-based 框架来结合用户的长期偏好和短期偏好。他们采用了 attentive Asymmetric-SVD 范式来对长期兴趣建模。

      • 《Practice on Long Sequential User Behavior Modeling for Click-through Rate Prediction》提出了一种 memory-based 的架构,称作 MIMN。该架构将用户的长期兴趣嵌入到固定大小的memory network 中,从而解决用户兴趣数据的大容量存储问题。并且他们设计了一个 UIC 模块来增量记录新的用户行为,从而解决latency 的限制。

        但是,MIMNmemory network 中放弃了 target item 的信息,而 target item 已经被证明对于用户兴趣建模很重要。

22.1 模型

  1. 通过建模用户行为数据来预估 CTR ,这已经被证明是有效的。典型地,attention-based CTR 模型(如 DIN, DIEN)设计复杂的模型结构,并且包含attention 机制,以通过从用户行为序列中搜索有效知识来捕获用户的多样化兴趣。其中搜索的 input 来自于不同的候选 item

    但是在现实世界的系统中,这些模型只能处理长度小于 150 的短期short-term 行为序列数据。另一方面,长期long-term 用户行为数据很有价值,并且对长期兴趣进行建模可以为用户带来更多样化的推荐结果。

    我们似乎陷入了一个两难的境地:在现实世界的系统中,我们无法通过有效而复杂的方法来处理有价值valuablelife-long 用户行为数据。为应对这一挑战,我们提出了一种新的建模范式,称之为基于搜索的兴趣模型Search-based Interest Model: SIMSIM 遵循两阶段搜索策略,可以有效地处理长的用户行为序列。

    我们首先介绍 SIM 的总体工作流程,然后详细介绍我们提出的两种搜索单元 search unit

  2. SIM 遵循一个级联的 two-stage search 策略,其中包含两个单元:通用搜索单元General Search Unit: GSU、精确搜索单元Exact Search Unit: ESUSIM 的整体工作流如下图所示。

    • 第一阶段:我们利用 GSU 从原始的长期行为序列中寻找 top-K 相关relevant 的子行为序列,其复杂度为线性时间复杂度。这里 K 通常要比原始序列的长度要短得多。

      如果有时间和计算资源的限制,则可以执行一种有效的搜索方法来搜索相关relevant 的子行为序列。在后续内容中,我们提供了 GSU 的两种简单实现:软搜索soft-search 和硬搜索 hard-search

      GSU 采取一种通用general 但有效effective 的策略来减少原始的行为序列的长度,从而满足对时间和计算资源的严格限制。同时,长期用户行为序列中可能会破坏用户兴趣建模的大量噪声可以在第一阶段通过搜索策略进行过滤。

    • 第二阶段:ESU 将经过过滤的用户行为子序列作为输入,并进一步捕获精确precise的用户兴趣。

      由于长期用户行为序列的长度已经减少到数百,因此可以应用复杂体系结构的精巧sophisticated 的模型,如 DIN, DIEN 等等。

    然后遵循传统的 Embedding&MLP 范式,将精确precise 的长期用户兴趣的输出、以及Other Feature作为输入。

    注意:尽管我们分别介绍了这两个阶段,但是实际上它们是一起训练的。

22.1.1 General Search Unit

  1. 给定一个候选 item (即将被 CTR 模型打分的target item),只有一部分用户行为有价值。这部分用户行为与最终用户决策密切相关。挑选出这些相关relevant 的用户行为有助于用户兴趣建模。

    然而,使用整个用户行为序列直接对用户兴趣进行建模将带来巨大的资源占用和响应延迟latency ,这在实际应用中通常是无法接受的。为此,我们提出了一个通用搜索单元general search unit: GSU ,从而减少用户兴趣建模中用户行为的输入数量。这里,我们介绍两种通用的搜索单元:硬搜索hard-search 和软搜索 soft-search

  2. 给定用户行为的列表 ,其中 为第 个用户行为(这里每个行为就是用户点击或购买的 item ), 为用户行为列表的长度。通用搜索单元计算每个行为 相对于候选 item 的相关性得分 relevant score ,然后选择得分 top-K 的相关relevant 行为作为行为子序列 sub behaviour sequence

    硬搜索和软搜索的区别在于相关的分 的计算:

    其中:

    • 为示性函数, 表示第 个行为 的类目,target item 的类目。

    • 为权重参数, 为第 个行为 embedding 向量,target itemembedding 向量。item embedding 的维度, 为映射的新空间的维度。

      对于软搜索,GSUESU 共享相同的 embedding 参数。

  3. 硬搜索 hard-search:硬搜索模型是非参数non-parametric 的。只有和候选item 相同类目category 的行为被挑选出来,然后得到一个子行为序列并发送给 ESU

    硬搜索非常简单,稍后在实验中我们证明它非常适合在线 serving

  4. 软搜索soft-search:在软搜索模型中,首先将 编码为one-hot 向量,然后嵌入到低维向量 中。

    • 为了进一步加速成千上万个用户行为的 top-K 搜索,基于embedding 矩阵 的、亚线性时间sublinear time 的最大内积搜索 maximum inner product search 方法 ALSH 用于搜索和target item 最相关的 top-K 行为。其中 为所有distinct 行为的 embedding 向量组成。

      借助训练好的 embedding 和最大内积搜索Maximum Inner Product Search: MIPS 方法,成千上万个用户行为可以减少到数百个。

    • 需要注意的是:长期long-term数据和短期short-term数据的分布是不同的。因此,在软搜索模型中直接使用从短期用户兴趣建模中学到的参数可能会误导长期用户兴趣建模。所以在本文中,软搜索模型的参数是在基于长期行为数据的辅助 CTR 预估任务下训练的,如上图左侧的软搜索训练soft search training 所示。

      用户整体行为序列的representation 可以通过将 相乘得到:

      行为 representation target Ad 向量 然后拼接起来,作为后续多层感知机 Multi-Layer Perception: MLP 的输入,从而建模辅助任务。

      注意,如果用户行为序列增长到一定程度,则不可能将整个用户行为序列馈入辅助任务的模型。这种情况下,可以从长的用户行为序列中随机采样子序列,子序列仍然遵循原始行为序列相同的分布。

22.1.2 Exact Search Unit

  1. 在第一个搜索阶段,我们从长期用户行为中选择和 target item 最相关的 top-K 子用户行为序列 。为了进一步从相关行为中建模用户兴趣,我们引入了精确搜索单元Exact Search Unit: ESUESU 是一个以 为输入的、attention-based 的模型。

    考虑到这些选出来的用户行为横跨了很长时间,因此每个用户行为的贡献是不同的,所以涉及到每个行为的时间属性temporal property 。具体而言,target item 和选出来的 K 个用户行为的时间间隔 用于提供时间距离temporal distance 信息。

    被编码为 embedding 矩阵 embedding 矩阵 。 其中, 的拼接作为第 个行为的最终 representation ,记作

    我们利用 multi-head attention 来捕获用户的多样化兴趣:

    其中:

    • 为作用在第 个行为 上的第 attention score 为第 headattention
    • 为第 head 的权重矩阵。

    最终的用户长期diverse 兴趣表示为: ,其中 head 数量。然后 被馈入到 MLP 中用于点击率预估。

  2. 最终模型同时使用了长期用户行为和短期用户行为,其中:

    • 长期用户行为使用 ESU 来抽取长期用户兴趣representation
    • 短期用户行为使用 DIEN 来抽取短期用户兴趣representation

    长期用户兴趣representation 、短期用户兴趣representation 、以及Other feature representation 一起拼接作为后续 MLP 的输入。

    长期用户兴趣由长期用户行为来捕获,这里使用 GSU + ESU 的原因是序列太长,DIEN 无法处理。

    短期用户兴趣由短期用户行为来捕获,这里使用 DIEN 是因为序列较短因此可以更精细地建模。对于较短的序列,没必要使用 GSU 来硬过滤。

  3. 最后,我们在交叉熵损失函数下同时训练 GSUESU

    其中:

    • 为超参数,用于控制损失之间的比例。在我们的实验中:

      • 如果 GSU 为软搜索模型,则
      • 如果 GSU 使用硬搜索模型,那么
    • ESU 单元的损失,这也是SIM 模型主任务的目标损失。

    • GSU 单元的损失。

      • 如果 GSU 为硬搜索,则由于硬搜索没有参数,因此不考虑其损失。
      • 如果 GSU 为软搜索,则它是 SIM 模型辅助任务的目标损失。辅助任务也是一个 CTR 预估任务,只是它采用了更简单的架构(没有 multi-head、没有 DIEN )、更少的特征(没有短期用户行为、没有 Other feature )。

    这个辅助损失函数本质上是强制 GSU 部分学到的 embedding 是任务相关的。可以理解为 boosting 模型的一种:GSU 部分已经学到了 CTR 相关的信息,ESU 部分继续拟合残差。

    SIMDeepMCPDMR 等模型都是类似的思想,要求模型的子结构也能够捕获到 CTR 相关的信息,从而使得约束了模型的解空间。

22.1.3 在线实现

  1. 这里我们介绍在阿里巴巴的展示广告系统display advertising system 中实现 SIM 的实际经验。

  2. life-long 用户行为数据在线serving 的挑战:工业级的推荐系统或广告系统需要在一秒钟内处理的大量的流量请求,这需要 CTR 模型实时响应。通常, serving latency 应该小于 30 毫秒。下图简要说明了我们在线展示广告系统中用于 CTR 任务的实时预测Real Time Prediction: RTP系统。该系统由两个关键组件组成:计算节点Computation Node、预估server

    考虑到 lifelong 的用户行为,在实时工业系统中建立长期的用户兴趣model serving 就变得更加困难。存储和延迟的限制可能是长期用户兴趣模型的瓶颈。实时请求的数据量(数据量 = 请求条数 x 单条请求的数据量)会随着用户行为序列长度的增加而线性增加。此外,我们的系统在流量高峰时每秒可为超过 100 万用户提供服务。因此,将长期模型部署到在线系统是一个巨大的挑战。

  3. 在线 serving 系统:前面我们提出了两种类型的 GSU:软搜索模型和硬搜索模型。

    对于软搜索模型和硬搜索模型,我们对从阿里巴巴在线展示广告系统收集的工业数据进行了广泛的离线实验。我们观察到软搜索模型生成的 top-K 行为数据与硬搜索模型的结果极为相似。换句话讲,软搜索的大部分 top-K 行为通常属于 target item 相同类目category 的。这是我们场景中数据的一个特色。在电商网站中,属于同一类目的 item 在大多数情况下是相似的。考虑到这一点,尽管在离线实验中软搜索模型的性能要比硬搜索模型稍好,但是在平衡性能提升和资源消耗之后,我们选择硬搜索模型将 SIM 部署到我们的广告系统中。

    对于硬搜索模型,包含所有长的用户行为序列数据的索引是关键组件。我们观察到,行为可以通过其所属类目自然访问到。为此,我们为每个用户建立一个两级的结构化索引 two-level structured index ,并将其命名为用户行为树user behavior tree: UBT ,如下图所示。

    简而言之,UBT 遵循 Key-Key-Value 数据集结构:第一个 keyuser-id,第二个 keycategory id,最后一个value 是属于每个类目的特定的行为itemUBT 被实现为分布式系统,最大容量可达 22TB,并且足够灵活以提供高吞吐量的query

    然后,我们将 target itemcategory 作为我们的硬搜索query

    GSU 之后,用户行为的长度可以从一万多个减少到数百个。因此,可以缓解在线系统中 lifelong 行为的存储压力。

    下图显示了 SIM 的新 CTR 预估系统。新系统加入了一个硬搜索模块,以从长的用户行为序列数据中寻找 target item 相关的有效行为effective behaviors

    注意:GSUUBT 的索引可以离线构建。这样,在线系统中的 GSU 的响应时间可以非常短,与 GSU 的索引构建相比可以忽略。此外,其它用户特征可以并行计算。

22.2 实验

  1. 这里我们详细介绍了我们的实验,包括数据集、实验配置、模型比较、以及一些相应的分析。由于 SIM 已经部署在我们的在线广告系统中,因此我们还会进行仔细的在线 A/B test,并比较几个著名的工业级的模型。

  2. 数据集:我们在两个公共数据集、以及阿里巴巴在线展示广告系统收集的工业数据集进行了模型比较。

    • Amazon Dataset:由 Amazon 的商品评论和元数据meta-data组成。我们使用 Amazon 数据集的 Books 子集,该子集包含 75053 个用户、358367item1583 个类目category

      对于该数据集,我们将评论视为一种交互行为,并按时间对一个用户的评论进行排序。Amazon Books 数据集的最大行为序列长度为 100。我们将最近的 10 个用户行为划分为短期short-term用户序列特征,将最近的 90 个用户行为划分为长期long-term用户序列特征。这些预处理方法已经在相关作品中广泛使用。

    • Taobao Dataset:是来自淘宝推荐系统的用户行为集合。数据集包含几种类型的用户行为,包括点击、购买等。它包含大约800 万用户的用户行为序列。

      我们采用每个用户的点击行为,并根据时间对其进行排序从而构建用户行为序列。Taobao Dataset 的最大行为序列长度为 500。我们将最近的 100 个用户行为划分为短期用户序列特征,将最近的 400 个用户行为划分为长期用户序列特征。数据集将很快公开。

    • Industrial Dataset:是从阿里巴巴在线展示广告系统收集的。样本是由曝光日志构建的,标签为是否点击。训练集是由过去49 天的样本组成,测试集是第50 天的样本组成,这是工业建模的经典设置。

      在这个数据集中,每个样本的用户行为特征包含最近 180 天的历史行为序列作为长期行为特征,以及最近 14 天的历史行为序列作为短期行为特征。超过 30% 的样本包含长度超过 1 万的行为序列数据。此外,行为序列的最大长度达到 54000,这比 MIMN 中的行为序列长 54 倍。

    这些数据集的统计信息如下表所示。注意,对于Industrial Datasetitem 为广告。

  3. baseline 方法:我们将 SIM 和以下主流的 CTR 预估模型进行比较。

    • DIN:是用户行为建模的早期工作,旨在针对候选item 进行用户行为的软搜索。和其它长期用户兴趣模型相比,DIN 仅将短期用户行为作为输入。
    • Avg-Pooling Long DIN:为了比较长期用户兴趣下的模型性能,我们对长期行为应用了均值池化操作(没有使用任何 attention 操作),并将long-term embedding 、以及其它特征 embedding 拼接起来。
    • MIMN:它巧妙地设计了模型体系结构从而捕获长期的用户兴趣,实现了state-of-the-art 性能。
    • SIM(hard):我们提出的 SIM 模型,其中第一阶段使用硬搜索,并且在 ESU 中没有 time embedding
    • SIM(soft):我们提出的 SIM 模型,其中第一阶段使用软搜索,并且在 ESU 中没有 time embedding
    • SIM(hard/soft) with Timeinfo:我们提出的 SIM 模型,其中第一阶段使用硬搜索/软搜索,并且在 ESU 使用 time embedding
  4. 实验配置:我们采用与相关工作(即 MIMN)相同的实验配置,以便可以公平地比较实验结果。

    • 对所有模型,我们使用 Adam 优化器。
    • 我们使用指数衰减,学习率从 0.001 开始。
    • 全连接网络FCNlayer 设置为 200 x 80 x 2
    • embedding 维数设置为 4
    • 我们使用 AUC 作为模型性能的评估指标。
  5. 下表显式了所有模型在公共数据集上的比较结果。a 表示SIM 采用软搜索且没有时间间隔的 embeddingb 没有在 Amazon Dataset 上实验,因为该数据集没有时间戳数据。

    • DIN 相比,具有长期用户行为特征的其它模型的性能要好得多。这表明长期用户行为对CTR 预估任务很有帮助。

    • MIMN 相比,SIM 取得了显著提升,因为 MIMN 将所有未过滤的用户历史行为编码到固定长度的 memory 中,这使得难以捕获多样化的长期用户兴趣。

    • SIM 使用两阶段搜索策略从庞大的历史行为序列中搜索相关的行为,并针对不同target item 来建模多样化的长期用户兴趣。

      实验结果表明:SIM 优于所有其它长期兴趣模型。这充分证明了我们提出的两阶段搜索策略对于长期用户兴趣建模很有用。而且,包含time embeding 可以实现进一步的提升。

  6. 消融研究--两阶段搜索的有效性:如前所述,我们的 SIM 模型使用两阶段搜索策略。

    • 第一阶段遵循通用搜索策略,从而过滤得到与target item 相关的历史行为。
    • 第二阶段对第一阶段的行为进行 attention-based 的精确exact搜索,从而准确地accurately 捕获用户对于target item 的多样化的长期兴趣。

    这里我们通过对长期历史行为应用不同操作的实验来评估所提出的两阶段搜索架构的有效性。这些不同的操作如下:

    • Avg-Pooling without Search 仅仅简单地应用均值池化来聚合长期行为 embedding,没有使用任何过滤。它和 Avg-Pooling Long DIN 相同。

    • Only First Stage(hard) 在第一阶段对长期历史行为应用硬搜索,并通过对过滤后的结果应用均值池化从而得到固定大小的、聚合的 embedding,从而作为 MLP 的输入。即没有第二阶段搜索策略。

    • Only First Stage (soft) 几乎和 Only First Stage(hard) ,但是前者采用软搜索而不是硬搜索。

      我们根据预训练pre-trainedembedding 向量,离线计算 target item 和长期用户行为之间的内积相似度得分。然后根据相似度得分选择 top 50 个相关行为来进行软搜索。

    • 最后三个实验是我们提出的两阶段搜索架构的搜索模型。

    实验结果如下表所示,可以看到:

    • 与简单的均值池化 embedding 相比,所有具有过滤策略的方法都极大地提高了模型性能。这表明在原始的长期行为序列中确实存在大量的噪声,而这些噪声可能会破坏长期用户兴趣的学习。
    • 和仅进行一阶段搜索的模型相比,我们提出的具有两阶段搜索策略的搜索模型通过在第二阶段引入 attention-based 的搜索而取得了进一步的提升。这表明:精确地precisely 建模用户对 target item 的多样化的长期兴趣,有助于 CTR 预估任务。并且在第一阶段搜索之后,过滤后的行为序列通常比原始序列短得多,attention 操作不会给在线 RTP 系统带来太多负担。
    • 包含time embedding 的模型得到了进一步的提升,这表明不同时期 peroid 的用户行为的贡献是不同的。

  7. 我们进一步对阿里巴巴在线展示广告系统收集的工业数据集进行实验,下表给出了实验结果。a 表示该模型目前已经部署在我们的在线serving 系统,并且服务于主要的流量。

    • SIM 相比 MIMNAUC 上提升了 0.008,这对于我们的业务而言意义重大。

    • 和第一阶段使用硬搜索相比,第一阶段使用软搜索的性能更好。

    • 在第一阶段,硬搜索和软搜索这两种搜索策略之间只有微小的差距。

      • 在第一阶段应用软搜索会花费更多的计算资源和存储资源。因为软搜索需要在 online serving 中使用最近邻搜索,而硬搜索只需要从离线构建的两级索引表中检索。因此,硬搜索更加有效且系统友好。
      • 对两种不同的搜索策略,我们对来自工业数据集的超过 100 万个样本和 10 万个具有长期历史行为的用户进行了统计。结果表明:硬搜索策略保留的用户行为可以覆盖软搜索策略的 75%

      最后,我们在第一阶段选择更简单的硬搜索策略,这是在效率efficiency 和性能 performance 之间的 trade-off

  8. 在线 A/B test:自 2019 年以来,我们已经在阿里巴巴的展示广告系统中部署了SIM 。从 2020-01-07 ~ 2020-02-07,我们进行了严格的在线 A/B test 实验,从而验证 SIM 模型。和 MIMN (我们的最新模型)相比,SIM 在阿里巴巴的展示广告场景中获得了巨大收益,如下表所示。现在,SIM 已经在线部署并每天为主要场景流量提供服务,这为业务收入的显著增长做出了贡献。

    下表为 2020-01-07 ~ 2020-02-07 期间,SIM 相对于 MIMN 的在线效果提升,其中模型应用于淘宝 App 首页的“猜你喜欢” 栏目。

  9. Rethinking Search Model:我们在用户长期兴趣建模方面做出了巨大努力,所提出的 SIM 在离线和在线评估方面都取得了良好的性能。但是 ,由于进行了精确的precise 长期兴趣建模,SIM 的性能会更好吗?SIM 是否会倾向于推荐和人们长期兴趣相关的 item

    为回答这两个问题,我们制定了另一个指标,即点击样本的 Days till Last Same Category Behavior 定义为:在点击事件发生之前,用户在相同类目cateogryitem 上的最近行为距离当前点击事件的时间间隔。

    例如,用户 点击了类目为 item ,并且用户 五天前点击了相同类目 item (并且在这五天之内没有点击相同类目的其它item )。如果将点击事件记作 ,那么样本 Days till Last Same Category Behavior5 ,即 。此外,如果用户 历史上从未在类目 上有任何行为,我们设置

    对于给定的模型,可以使用 来评估模型在长期兴趣long-term interest 或短期兴趣short-term interest 上的选择偏好selection preference

    • 经过在线 A/B test 之后,我们根据提出的 指标分析了 SIMDIEN (这是短期的CTR 预估模型的最新版本)的点击样本。点击样本越多则说明模型效果越好(模型找的越准)。

      根据 我们将点击样本(这里指的是模型预估参与竞价的结果)拆分为两个部分:长期的(>14天)、短期的(<14天)。方框显示了不同 SIM 模型点击样本的提升比例(相对于 DIEN 模型)。曲线表示不同 下不同模型找到的点击样本数量。

      可以看到:在短期部分( )上的两个模型之间几乎没有差异,因为 SIMDIEN 在过去14 天中都具有短期的用户行为特征。在长期部分,SIM 提升比例更大。

    • 此外在工业数据集上,我们统计了 的均值、以及用户拥有和 target item 相同类目的历史行为的概率。结果如下表所示(在不同模型找到的点击样本上统计到的)。

      结果表明:SIM 的提升确实是更好的长期兴趣建模的结果。并且和 DIEN 相比,SIM 倾向于推荐与人们长期行为有关的item

    读者注:这里假设 A/B test 时流量相等,因此点击量的差异等价于 CTR 的差异。

  10. 部署的实践经验:这里我们介绍了在线 serving 系统中实现 SIM 的实践经验。

    阿里巴巴的高流量是众所周知的,它在流量高峰时每秒为超过100 万用户提供服务。此外,对于每个用户,RTP 系统需要计算数百个候选item 的预估CTR。我们对整个离线用户行为数据建立一个两阶段索引,该索引每天都会更新:第一阶段是user id;在第二阶段,一个用户的 life-long 行为数据由该用户所交互的类目来索引。

    虽然候选item 的数量为数百,但是这些item 的类目数量通常少于 20 。同时,来自 GSU 的每个类目的子行为序列的长度被截断为不超过 200 (原始的行为序列长度通常小于 150 )。这样,来自用户的每个请求的流量是有限的并且可以接受的。

    此外,我们通过 deep kernel fusion 优化了 ESUmulti-head attention 的计算。

    下图显示了我们的实时 CTR 预估系统相对于 DIEN,MIMN,SIM 流量的效率。值得注意的是:

    • MIMN 可以处理的最大用户行为长度是 1000,而这里显示的性能是基于截断的行为数据( MIMNDIEN 中,用户行为的长度被截断为 1000)。
    • SIM 中的用户行为的长度不会被截断,并且可以扩展到 54000,使得最大长度可以扩展到 54 倍。针对一万个行为的 SIM serving ,相比于截断用户行为的 MIMN servinglatency 仅增加了 5ms
    • DIEN 的最大流量为 200,因此图中只有一个点。

二十三、ESM2[2019]

  1. 从互联网上大量可用的options 中为用户发现有价值的产品或服务已经成为现代在线 application (如电商、社交网络、广告等等)的基本功能fundamental functionality 。推荐系统Recommender System 可以起到这个作用,为用户提供准确accurate 、及时timely 和个性化personalized 的服务。下图显示了电商平台中在线推荐的架构。它包含两个基础部分 fundamental component,即系统推荐system recommendation 和用户反馈user feedback

    • 在分析了用户的长期行为long-term behavior和短期行为short-term behavior之后,推荐系统首先召回了大量相关 relateditem。然后,根据几种排序指标 ranking metrics (例如点击率Click-Through Rate: CTR、转化率Conversion Rate: CVR 等等)对召回的 item 进行排序并向用户展示。
    • 接下来,当浏览推荐的item 时,用户可能会点击并最终购买感兴趣的 item。这就是电商交易中的典型的用户行为序列路径 user sequential behavior path “曝光impression--> 点击click --> 购买purchase”。

    推荐系统收集了用户的这些反馈,并将其用于估计更准确的排序指标,这对于下一轮生成高质量的推荐确实非常关键。这里,本文重点关注后点击post-clickCVR 估计 estimation任务。

    但是,CVR 估计中的两个关键问题使得该任务相当具有挑战性,即样本选择偏差sample Selection Bias: SSB和数据稀疏性Data Sparsity: DS

    • SSB 指的是训练空间和推断空间之间数据分布的系统性差异systematic difference 。即:常规的 CVR 模型仅在点击的样本上进行训练,但是在所有曝光样本上进行推断inference

      直觉地,点击样本仅仅是曝光样本的一小部分,并且受到用户 self-selection (如用户点击)的偏见biased 。因此,当 CVR 模型在线 serving 时,SSB 问题将降低其性能。

    • 此外,由于和曝光样本相比,点击样本相对更少。因此来自行为序列路径 “点击 --> 购买” 的训练样本数量不足以拟合CVR 任务的大的参数空间,从而导致 DS 问题。

    如下图所示说明了传统CVR 预估中样本选择偏差问题,其中训练空间仅由点击样本组成,而推断空间是所有曝光样本的整个空间。另外,从曝光到购买,数据量是逐渐减少。

    如何处理 SSBDS 问题对于开发高效的工业级推荐系统至关重要。已经有一些研究来应对这些挑战。例如,Entire Space Multi-Task Model: ESMM 模型通过多任务学习框架在用户行为序列路径 “曝光--> 点击 --> 购买” 上定义了 CVR 任务。

    • 它使用整个空间上的所有曝光样本进行训练,以完成两个辅助任务auxiliary task(即post-view CTRpost-view CTCVR)。因此,当在线推断时,从 CTRCTCVR 导出的 CVR 也适用于相同的整个空间,从而有效地解决了 SSB 问题。
    • 此外,CVR 网络和具有丰富标记样本的辅助 CTR 网络共享相同的特征representation,这有助于缓解 DS 问题。

    尽管 ESSM 通过同时处理 SSBDS 问题从而获得了比传统方法更好的性能,但是由于购买行为的训练样本很少(根据来自淘宝电商平台的大规模真实交易日志,不到 0.1% 的曝光行为转化为购买),它仍然难以缓解 DS 问题。

    在对日志进行详细分析之后,论文《Entire Space Multi-Task Modeling via Post-Click Behavior Decomposition for Conversion Rate Prediction》 发现用户总是在点击之后采取了一些和购买相关的动作purchase-related action 。例如,由于某些原因(如等待折扣),用户可以将青睐的item 添加到购物车(或者 wish list )中,而不是立即购买。此外,这些行为确实比购物行为更加丰富。有鉴于此,该论文提出了后点击行为分解post-click behavior decomposition 的新思想。

    具体而言,在点击和购买之间并行parallel 地插入不相交的购买相关purchase-related 的决定性动作Deterministic Action: DAction、以及购买无关的其它动作 Other Action: OAction ,形成一个新颖的 “曝光 --> 点击 --> D(O)Action --> 购买” 的用户行为序列图 user sequential behavior graph 。其中任务关系由条件概率明确地定义。此外,在这个图上定义模型能够利用整个空间上的所有曝光样本以及来自后点击行为post-click behavior的额外的丰富abundant 的监督信号supervisory signal ,这将有效地共同解决 SSBDS 问题。

    在论文《Entire Space Multi-Task Modeling via Post-Click Behavior Decomposition for Conversion Rate Prediction》 中,作者借助深度神经网络来体现上述思想。具体而言,论文提出了一种新颖的深度神经网络推荐模型,称作 Elaborated Entire Space Supervised Multi-task Model: ESM2ESM2 包含三个模块:共享embedding 模块 shared embedding module: SEM、分解预估模块decomposed prediction module: DPM、序列合成模块sequential composition module: SCM

    • 首先,SEM 通过线性的全连接层将 ID 类型的 one-hot 特征向量嵌入到dense representation 中。
    • 然后,这些 embedding 被馈入到后续的 DPM 中。在该 DPM 中,各个预测子网通过在整个空间上对所有曝光样本进行多任务学习来并行 parallel 预估分解的子目标decomposed sub-target的概率。
    • 最后,SCM 根据图上定义的条件概率规则conditional probability rule defined ,依次合成compose最终的 CVR 和一些辅助概率。在图的某些子路径sub-path 上定义的 multiple losses 用于监督 ESM2 的训练。

    本文的主要贡献:

    • 据我们所知,我们是第一个引入后点击行为分解 post-click behavior decomposition 的思想来在整个空间内对 CVR 建模的。显式分解explicit decomposition 产生了一个新的用户行为序列图 “曝光 --> 点击 --> D(O)Action --> 购买 ”。

    • 我们提出了一种名为 ESM2 的新颖的神经推荐方法,该方法根据用户行为图 user behavior graph 上定义的条件概率规则,在多任务学习框架中同时对 CVR 预估任务prediction task 和辅助任务auxiliary task进行建模。

      通过收集大量带标签的的后点击行为数据post-click action dataESM2 可以有效解决 SSBDS 问题。

    • 我们的模型在现实世界的离线数据集上比典型的 state-of-the-art 方法获得了更好的性能。我们还将其部署在我们的在线推荐系统中,并取得了显著的提升,证明了其在工业应用中的价值。

  2. 相关工作:我们提出的方法通过在整个空间上采用多任务学习框架来专门解决 CVR 预估问题。因此,我们从以下两个方面简要回顾了最相关的工作:CVR 预估、多任务学习。

    • CVR 预估:CVR 预估是许多在线应用的关键组成部分,例如搜索引擎search engines 、推荐系统recommender systems 、在线广告online advertising 。然而,尽管最近 CTR 方法得到了蓬勃发展,很少提出针对 CVR 任务的文献。事实上,CVR 建模是非常具有挑战性的,因为转化行为是极为罕见的事件,只有极少量的曝光item 最终被点击和购买。

      近年来,由于深度神经网络在特征 representation 和端到端建模end-to-end modeling 方面的卓越能力,因此在包括推荐系统在内的许多领域都取得了重大进展。在本文中,我们也采用了深度神经网络对 CVR 预估任务prediction task 进行了建模。与上述方法相比,我们基于一种新颖的后点击行为分解post-click behavior decomposition 思想,提出了一个新颖的用户行为序列图 “曝光 --> 点击 --> D(O)Action--> 购买 ” 。根据图中定义的条件概率规则,我们的网络结构经过专门设计,可以并行预测parallel 几个分解的子目标decomposed sub-target,并依次合成从而形成最终的 CVR

    • 多任务学习:由于用户的购买行为在时间上具有多阶段性multi-stage nature,如曝光、点击、购买,先前的工作试图通过多任务框架来形式化CVR 预估任务。例如:

      • 《multi-task learning for recommender systems》 通过同时对 ranking 任务和 rating prediction 任务建模,提出了一个基于多任务学习的推荐系统。

      • 《Modeling task relationships in multi-task learning with multi-gate mixture-of-experts》 提出了一种多任务学习方法,称作 multi-gate mixture-of-experts: MMOE, 以从数据中明确学习任务关系。

      • 《Neural Multi-Task Recommendation from Multi-Behavior Data》 提出一种神经多任务推荐模型neural multi-task recommendation model 来学习不同类型行为之间的级联关系cascading relationship

        相反,我们通过关联associating 用户的序列行为图来同时建模 CTRCVR 任务,其中任务关系由条件概率明确定义。

      • 《Perceive your users in depth: Learning universal user representations from multiple e-commerce tasks》 提出学习跨多个任务的通用用户 representation,以实现更有效的个性化。

        我们也通过跨不同任务共享 embedded 特征来探索这种思想。

      • 最近,《Entire space multi-task model: An effective approach for estimating post-click conversion rate》 提出了用于 CVR 预估的entire space multi-task model: ESMM 模型。它将 CTR 任务和 CTCVR 任务作为辅助任务添加到主 CVR 任务中。

        我们的方法受到 ESMM 的启发,但有以下显著的不同:我们提出了一个新颖的后点击行为分解post-click behavior decomposition 的思想来重构一个新的用户行为序列图 “曝光 --> 点击 --> D(O)Action --> 购买”。通过在这个图上定义模型,可以同时形式化最终的 CVR 任务以及辅助任务auxiliary tasks

        我们的方法可以利用整个空间的所有曝光样本以及来自用户后点击行为post-click behaviors 的丰富的监督信号,这些监督信号和购买行为高度相关,因此可以同时解决 SSBDS 问题。

23.1 模型

  1. 在实践中,一个item 从曝光到购买,这之间可能存在多种类型的序列动作sequential action 。例如,在点击一个感兴趣的 item 之后,用户可以毫不犹豫的直接购买它,或者将其添加到购物车中然后最终进行购买。这些行为路径如下图 (a) 所示。图(a) 为区分从曝光到购买的、包含后点击行为的多条路径multiple path ,例如 “曝光 --> 点击 --> 添加到购物车 --> 购买” 。

    我们可以根据几个预定义的、特定的和购买相关purchase-related 的后点击动作post-click action 来简化和分组这些路径,即添加到购物车Shopping Cart: SCart、添加到愿望清单Wish list: Wish,如下图 (b) 所示。图(b) 为描述简化的购买过程的有向图,其中边上的数字表示不同路径的稀疏性。

    根据我们对真实世界在线日志的数据分析,我们发现只有 1% 的点击行为最终会转化为购买行为,这表明购买训练样本很少。然而,SCartWish 这样的一些后点击动作的数据量远大于购买量。如, 10% 的点击会转化为加购物车。此外,这些后点击动作与最终购买行为高度相关。例如,12% 的加购物车行为会转化为购买行为、31% 的加愿望清单行为会转化为购买行为。

    考虑到后点击行为post-click behaviors 和购买行为高度相关,我们如何以某种方式利用大量的后点击行为从而使得 CVR 预估收益?直观地讲,一种解决方案是将购买相关的后点击动作与购买行为一起建模到多任务预测框架multi-task prediction framework中。关键是如何恰当地形式化它们,因为它们具有明确的序列相关性sequential correlation 。例如,购买行为可能是以 SCartWish 行为为条件的。为此,我们定义了一个名为Deterministic Action: DAction 的单个节点node 来合并这些预定义的、特定的与购买相关的后点击动作,例如 SCartWish ,如下图 (c) 所示。

    DAction 有两个性质:与购买行为高度相关、具有来自用户反馈的丰富的确定性deterministic 的监督信号。例如,1 表示执行某些特定操作(即在点击之后添加到购物车中、或者点击之后添加到愿望清单中),0 表示未执行这些操作。

    我们还在点击和购买之间添加了一个名为 Other Action: OAction 的节点,以处理DAction 以外的其它后点击行为。借此方式,传统的行为路径 “曝光 --> 点击 --> 购买” 就变为新颖novel 的、精巧elaborated 的用户行为序列图 “曝光 --> 点击 --> D(O)Action --> 购买”,如下图 (c) 所示。

    通过在该图上定义模型,可以利用整个空间上的所有曝光样本以及来自 D(O)Action 的额外的丰富的监督信号,这可以有效地避免 SSBDS 问题。我们称这种新颖的想法为后点击行为分解post-click behavior decomposition

23.1.1 条件概率分解

  1. 这里我们根据上图 (c) 中定义的有向图来介绍 CVR 的条件概率分解 conditional probability decomposition ,以及相关的辅助任务auxiliary tasks

  2. 定义 item post view ctr 为:用户浏览到 item 的情况下点击它的条件概率。这由有向图中的路径 “曝光 --> 点击” 来描述。从数学上讲,这可以写成:

    其中:

    • 表示 item 是否被点击。
    • 表示 item 是否浏览。
    • 是一个简单的替代符号。
  3. 定义 item click-through DAction CVR 为:用户浏览到 item 的情况下执行 DAction 动作的条件概率。这由有向图中的路径 “曝光 --> 点击 --> DAction” 来描述。从数学上讲,这可以写成:

    其中:

    • 表示 item 是否被执行 DAction 动作。

    • 这里假设:如果用户未点击item ,则不会发生下一步的 DAction 动作。即:

    • 表示路径 “点击 --> DAction” 。

      考虑到点击()一定意味着浏览(),因此 简化为:

  4. 定义 item CVR 为:在用户已点击item 的条件下购买item 的条件概率。这由有向图中的路径 “点击 --> D(O)Action --> 购买” 来描述。从数学上讲,这可以写成:

    其中:

    • 表示 item 是否被购买。
    • 表示有向图中的路径 “ DAction -> 购买” 。这里我们假设DAction)一定意味着点击()。
    • 表示有向图中的路径 “ OAction -> 购买” 。这里我们假设OAction)一定意味着点击()。
  5. 定义 item click-through CVR 为:用户浏览到 item 的情况下购买它的概率。这由有向图中的路径 “曝光 --> 点击 --> D(O)Action --> 购买” 来描述。从数学上讲,这可以写成:

    考虑到如果没有点击就没有任何购买,即:

    则上式简化为:

    因此,上式可以通过将有向图 “曝光 --> 点击 --> D(O)Action --> 购买” 分解为 “曝光 --> 点击”、以及 “点击 --> D(O)Action --> 购买”,并根据链式法则 chain rule整合之前所有的公式(即 )从而得出。

23.1.2 ESM2 模型

  1. 从前面推导可以看到: 可以从四个隐概率变量hidden probability variable 中推导而来。每个隐概率变量代表有向图中某个子路径sub-path 上的条件概率,其中:

    • 表示 “曝光 --> 点击“ 的条件概率。
    • 表示 “点击 --> DAction“ 的条件概率。
    • 表示 “ DAction -> 购买” 的条件概率。
    • 表示 “ OAction -> 购买” 的条件概率。

    此外,这四个子目标 sub-target 在整个空间中定义,并且可以使用所有曝光样本进行预测。以 为例,仅使用点击样本直接训练 会遇到 SSB 问题。 实际上根据前面的推导, 是从 派生的中间变量intermediate variable 。由于 都是使用所有曝光样本在整个空间上建模的,因此派生的 也适用于整个空间,因此在我们的模型中没有 SSB

    另一方面, 给定用户的日志,ground truth label 是可用的,这些 label 可用于监督这些子目标。

    因此,一种直观的方法是通过多任务学习框架同时对它们进行建模。为此,我们提出了一种新颖的深度神经推荐模型neural recommendation model,称作Elaborated Entire Space Supervised Multi-task Mode: ESM2 ,用于CVR 预估。ESM2 之所以取这个名字是因为:

    • 首先, 是在整个空间上建模,并使用所有曝光样本进行预测。
    • 其次,派生的 也受益于整个空间的多任务建模。这将在实验部分得到验证。
  2. ESM2 由三个关键模块组成:

    • 一个共享的 embedding 模块Shared Embedding Module: SEM

      SEM 将稀疏特征嵌入到稠密的 representation 中。

    • 一个分解decomposed 的预估模块Decomposed Prediction Module: DPM

      DPM 可以预估分解目标的概率。

    • 一个顺序sequential 的合成composition 模块Sequential Composition Module: SCM

      SCM 将预估分解目标的概率按顺序合成在一起,以计算最终的 CVR 以及其它相关的辅助任务(即 CTRCTAVRCTCVR )。

    整体模型如下图所示。

  3. 共享的 embedding 模块:首先我们设计一个共享的 embedding 模块,从而嵌入来自user fielditem fielduser-item cross field 的所有稀疏ID 特征和稠密数值特征。

    • 用户特征包括 user ID、年龄、性别、购买力等等。
    • item 特征包括 item ID、价格、历史日志统计的历史累计CTR 和历史累计 CVR 等等。
    • user-item 特征包括用户对 item 的历史偏好分historical preference score 等等。
    • 稠密特征首先基于它们的边界boundary 来离散化,然后将其表示为one-hot 向量。

    令第 个样本第 个特征为 ,进行 one-hot 之后为 。第 个样本的 one-hot 特征为:

    其中 为特征数量。

    由于 one-hot 编码的稀疏性,我们使用线性的全连接层将它们嵌入到 dense representation 中。令第 个特征的 embedding 矩阵为 ,则第 个样本第 个特征的 embedding 为:

    个样本的 embedding 特征为:

  4. 分解预估模块 :然后一旦获得了所有的特征 embedding,就将这些 embedding 拼接到一起,馈入几个分解的预估模块,并由每个模型共享。DPM 中的每个预估网络分别在 “曝光 --> 点击”、“点击 --> DAction”、“DAction --> 购买”、“OAction --> 购买” 等路径上预估分解的 target 的概率。

    在本文中,我们采用多层感知机Multi-Layer Perception: MLP 作为预估网络。除了输出层之外,所有非线性激活函数均为ReLU。对于输出层,我们使用 Sigmoid 函数将输出映射为 0.0 ~ 1.0 之间的概率值。从数学上讲,这可以写成:

    其中:

    • sigmoid 函数。
    • 为第 MLP 学到的映射函数, 为网络参数。

    例如,上图中的第一个 MLP 输出了估计的概率estimated probability ,这实际上是post-view CTR

  5. 顺序合成模块:最后我们设计了一个顺序合成模块,根据前面描述的公式合成上述预估概率,从而计算转化率 和一些辅助的目标auxiliary target(包括post-view CTR click-through DAction CVR click-through CVR 等等)。

    如上图的顶部所示,顺序合成模块是一个无参的前馈神经网络,它表示购买决策有向图purchasing decision digraph 所定义的条件概率。

  6. 注意:

    • 所有任务共享相同的 embedding,使这些任务使用所有曝光样本进行训练。即在整个空间上对这些任务进行建模,从而在推断阶段不会出现 SSB 问题。
    • 轻量级的分解预估模块由共享的 embedding 模块严格正则化,其中共享的 embedding 模块包含了大部分的训练参数。
    • 我们的模型提出了一种高效的网络设计,其中共享的 embedding 模块可以并行运行,因此在在线部署时可以有较低的 latency
  7. 训练目标:令 表示训练集, 表示第 个曝光样本 的 ground truth label (是否点击、是否发生deterministic action、是否发生购买行为)。然后我们定义所有训练样本的联合 post-view pCTR 为:

    其中 表示点击 label 空间 中的正样本和负样本。

    使用负的对数函数进行变换之后,我们得到 logloss

    类似地,我们得到 的损失函数为:

    其中: 表示 DAction label 空间 中的正样本和负样本; 表示购买label 空间 中的正样本和负样本。

    最终的训练目标函数为:

    其中:

    • ESM2 模型中的所有参数。
    • 分别为 损失函数的权重。在本文中我们将这些权重都设置为 1.0

    需要强调的是:

    • 添加中间损失intermediate loss 来监督分解后的子任务,可以有效地利用后点击行为中丰富的标记数据,从而缓解模型受到 DS 的影响。
    • 所有损失都是从整个空间建模的角度来计算的,这有效解决了 SSB 的问题。

23.2 实验

  1. 为了评估 ESM2 模型的有效性,我们针对从现实世界电商场景中收集的离线数据集和在线部署进行了广泛的实验。我们将 ESM2 和一些代表性的 state-of-the-art 方法进行比较,包括 GBDTDNN、使用过采样over-sampling 思想的 DNNESMM 等。

    首先我们介绍评估设置setting,包括数据集准备、评估指标、对比的 SOTA 方法的简要说明、以及模型实现细节。然后我们给出比较结果并进行分析。接着我们介绍消融研究。最后我们对不同的后点击行为进行效果分析。

  2. 数据集:我们通过从我们的在线电商平台(世界上最大的第三方零售平台之一)收集用户的行为序列和反馈日志来制作离线数据集。

    我们得到超过3 亿个样本,其中包含用户特征、item 特征、user-item 交叉特征以及序列的反馈标签sequential feedback label(如,是否点击、是否DAction、是否购买)。下表给出了离线数据集的统计信息。

    我们将离线数据集进一步划分为不相交的训练集、验证集、测试集。

  3. 评估指标:为了全面评估ESM2 模型的有效性,并将其和 SOTA 方法进行比较,我们使用三种广泛采纳的指标:AUCGAUCF1 score

    • AUC 刻画了模型的排序能力ranking ability

      其中:

      • 为正样本集合, 为负样本集合, 为正样本数量, 为负样本数量。
      • 为预估函数, 为示性函数。
    • GAUC 首先根据每个用户ID 从而将数据划分为不同的组,然后在每个组中计算 AUC,最后对每个组的 AUC 加权平均。即:

      其中:

      • 为用户 的权重。在我们离线评估中我们选择为 1
      • 为用户 AUC
    • F1 score 定义为:

      其中 precisionrecall

  4. baseline 方法:

    • GBDT:梯度提升决策树gradient boosting decision tree: GBDT。它遵循gradient boosting machine: GBM 的思想,能够为回归任务和分类任务提供有竞争力的、高度健壮robust 的、可解释性的方法。本文中,我们将其作为 non-deep learning-based 方法的典型代表。
    • DNN:我们还实现了一个深度神经网络baseline 模型,该模型具有和 ESM2 中单个分支相同的结构和超参数。和 ESM2 不同,它是用 “点击 --> 购买” 或者 “曝光 --> 点击” 路径上的样本进行训练,从而分别预估转化率 或点击率
    • DNN-OS:由于 “曝光 --> 购买” 和 “点击 --> 购买” 路径上的数据稀疏性,很难训练具有良好泛化能力的深度神经网络。为了解决该问题,我们训练一个叫做 DNN-OS 的深度模型,它在训练期间利用了过采样 over-sampling 策略来增加正样本。它具有与上述 DNN 模型相同的结构和超参数。
    • ESMM:为了公平地进行比较,我们为 ESMM 使用与上述深度模型相同的主干结构backbone structureESMM 直接在用户序列路径 “曝光 --> 点击 --> 购买” 上对转化率进行建模,而没有考虑和购买相关的后点击行为post-click behavior

    简而言之:

    • 前三种方法分别从 “曝光 --> 点击”、“点击 --> 购买” 路径上的样本来学习预估 ,然后将二者相乘从而得到曝光转化率
    • 而对于 ESMM 和我们的 ESM2,则是通过在整个空间上直接建模预估
  5. 实验配置:

    • 对于 GBDT 模型,以下超参数是根据验证集 AUC 来选择的:

      • 树的数量为 150
      • 树的深度为 8
      • 拆分一个顶点的最小样本量为 20
      • 每次迭代的样本采样率0.6
      • 每次迭代的特征采样率为 0.6
      • 损失函数为 logistic loss
    • 对基于深度神经网络的模型,它们基于TensorFlow 实现,并使用 Adam 优化器。

      • 学习率为 0.0005mini-batch size = 1000
      • 在所有模型中,使用 logistic loss
      • MLP5 层,每层的尺寸分别为 512, 256, 128, 32, 2
      • dropout 设置为 dropout ratio = 0.5

      这些配置(基于深度神经网络的模型)如下表所示。

  6. 离线数据集的评估结果如下表所示。可以看到:

    • DNN 方法相比较 GBDT 模型在 CVR AUCCTCVR AUCCTCVR GAUC 上分别获得了 0.02420.01020.0117 的增益。这证明了深度神经网络的强大 representation 能力。

    • 和普通的 DNN 不同,DNN-OS 使用过采样策略来解决 DS 问题,从而获得比DNN 更好的性能。

    • 对于 ESMM,它针对 “曝光 --> 点击 --> 购买” 路径来建模,从而试图同时解决 SSBDS 问题。得益于对整个空间的建模以及丰富的训练样本,它的性能优于 DNN-OS

      尽管如此,ESMM 忽略了后点击行为的影响,仍然受到购买训练样本稀疏的困扰,因此仍然难以解决 DS 问题。

    • 我们提出的 ESM2 进一步利用了这些后点击行为。在多任务学习框架下并行预测一些分解的子目标之后,ESM2 依次合成这些预测从而形成最终的 CVR

      可以看到,我们的 ESM2 超越了所有的其它方法。例如,ESM2 相较于 ESMM 模型在 CVR AUCCTCVR AUCCTCVR GAUC 上分别获得了 0.00880.01010.0145 的增益。值得一提的是,离线 AUC 增加 0.01 总是意味着在线推荐系统收入的显著增加。

    对于 F1 score,我们分别通过为 CVRCTCVR 设置不同的阈值来报告几个结果。

    • 首先,我们根据预估的 CVRCTCVR 分数对所有样本进行降序排序。
    • 然后,由于 CVR 任务的稀疏性(大约 1% 的预估样本为正样本),我们选择三个阈值:top @ 0.1%top @ 0.6%top @ 1% ,从而将样本划分为 positive groupnegative group
    • 最后,我们计算在这些不同阈值下,预估结果的 precision, recall, F1 score

    评估结果在下表中给出。可以观察到和 AUC/GAUC 类似的趋势。同样地,我们的 ESM2 方法在不同的配置下也达到了最佳性能。

  7. 在线性能:在我们的推荐系统中部署深度网络模型并不是一件容易的事情,因为推荐系统每天服务于数亿用户。例如,在流量高峰时每秒超过1 亿用户。因此,需要一个实用的模型来进行高吞吐量、低延迟的实时 CVR 预估。例如,在我们的系统中,应该在不到 100 毫秒的时间内为每个访客预测数百个推荐的 item 。得益于并行的网络结构,我们的模型计算效率高,可以在 20 毫秒内响应每个在线请求。

    为了使在线评估公平fair、置信confident、可比较comparableA/B test 的每种部署的方法都包含相同数量的用户(例如数百万用户)。在线评估结果如下图所示,其中我们使用 GBDT 模型作为 baseline 。可以看到:

    • DNN, DNN-OS, ESMM 的性能相当,明显优于baseline 模型,并且 ESMM 的性能稍好。

    • 我们提出的 ESM2 显著优于所有的其它方法,这证明了它的优越性。

      此外,ESM2 相比 ESMMCVR 上提升了 3%,这对于电商平台具有显著的商业价值。

    以上结果说明了:

    • 深度神经网络比 tree-basedGBDT 具有更强的 representation 能力。
    • 在整个样本空间中的多任务学习框架可以作为解决 SSBDS 问题的有效工具。
    • 基于后点击行为分解post-click behaviors decomposition 的思想,ESM2 通过在整个空间上对 CVR 建模并利用 deterministic 行为中大量的监督信号来有效解决 SSBDS 问题,并获得最佳性能。

  8. 消融研究:这里我们介绍详细的消融研究,包括深度神经网络的超参数设置、嵌入稠密数值特征embedding dense numerical features 的有效性、以及分解的后点击行为的选择。

    • 深度神经网络的超参数:这里我们以三个关键的超参数(dropout rate、隐层的层数、item 特征的embedding 维度)为例,从而说明了我们的 ESM2 模型中的超参数选择过程。

      • dropout rate 指的是通过在训练过程中随机停止deactivating 一些神经单元的正则化技术。通过引入随机性,可以增强神经网络的泛化能力。

        我们在模型中尝试了不同的 dropout rate,从 0.20.7 。如图 (a) 所示,dropout rate = 0.5 时性能最佳。因此,如果没有特别指出,那么实验中我们默认将 dropout rate 设为 0.5

      • 增加网络的深度可以提高模型容量,但是也可能导致过拟合。因此,我们根据验证集的 AUC 仔细设置了这个超参数。

        从图 (b) 可以看到:在开始阶段(即从两层增加到五层),增加隐层的数量会不断提高模型的性能。但是,模型在五层达到饱和,后续增加更多的层甚至会略微降低验证 AUC ,这表明模型可能对训练集过拟合。因此,如果没有特别指出,那么实验中我们默认使用五层的隐层。

      • item 特征 embedding 的维度是一个关键的超参数。高维特征可以保留更多信息,但是也可能包含噪声并导致模型复杂度更高。

        我们尝试了不同的超参数设置,并在图 (c) 中给出结果。可以看到:增加维度通常会提高性能,但是在维度为 128 时性能达到饱和。而继续增加维度没有更多收益。因此,为了在模型容量和模型复杂度之间的 trade-off,如果没有特别指出,那么实验中我们默认将 item 特征 embedding 的维度设为 128

    • 嵌入稠密数值特征的有效性:在我们的任务中有几个数值特征。

      • 一种常见的做法是首先将它们离散为 one-hot 向量,然后将它们与 ID 特征拼接在一起,然后再通过线性投影层将它们嵌入到稠密特征。但是,我们认为对数值特征的离散化 one-hot 向量表示可能会损失一定的信息。

      • 另一种方案将数值特征归一化,然后使用 tanh 激活函数来嵌入它们,即:

        其中: 为第 个数值特征的均值和标准差。使用 函数是为了将特征调整到 (-1,+1) 之间。

        然后我们将归一化的数值特征和嵌入的 ID 特征拼接在一起,作为 ESM2 模型的输入。

        和基于离散化的方案相比,归一化的方案获得了 0.004AUC 增益。因此,如果没有特别指出,那么实验中我们默认对稠密的数值特征使用基于归一化的方案。

    • 分解的后点击行为的有效性:当分解后点击行为时,我们可以将不同的行为聚合到 DAction 节点中。例如only SCartonly WishSCart and Wish 。这里我们评估不同选择的有效性,结果如下表所示。

      可以看到:SCart and Wish 的组合达到了最佳的 AUC 。这是合理的,因为和其它两种情况相比,SCart and Wish 有更多的购买相关的标记数据来解决 DS 问题。

  9. 用户行为的性能分析:为了了解 ESM2 的性能以及和 ESMM 的区别,我们根据用户购买行为的次数将测试集分为四组:[0,10][11,20][21,50][51, +) 。我们报告了每组中两种方法的 CVR AUCCTCVR AUC,结果如下图所示。可以看到:

    • 两种方法的 CVR AUCCTCVR AUC) 都随着购买行为次数的增加而降低。
    • 但是我们观察到,每组中 ESM2 相对于 ESMM 的相对增益在增加,即 0.72%0.81%1.13%1.30%

    通常,具有更多购买行为的用户总是具有更活跃的后点击行为,例如 SCartWish 。我们的 ESM2 模型通过添加 DAction 节点来处理此类后点击行为,该节点由来自用户反馈的 deterministic 信号来监督学习。因此,它在这些样本上比 ESMM 具有更好的表示能力,并在具有高频购买行为的用户上获得了更好的性能。

    论文没有分析为什么模型在更多购买行为的用户的 AUC 上下降。这表明模型在这些高购买行为的用户上学习不充分,是否可以将他们作为 hard 样本?或者把购买次数作为特征从而让模型知道这个信息?

二十四、MV-DNN[2015]

  1. 推荐系统和内容个性化content personalizationweb 服务中扮演着越来越重要的角色。最近的很多web 服务都致力于寻找与用户最相关relevant 的内容,以最大限度地提高网站的互动engagement、并最大限度地降低寻找相关内容relevant content 的时间。

    完成该任务的主要方法称作协同过滤 Collaborative Filtering: CF ,它使用用户在网站上的历史交互 interaction 来预测最相关的内容从而进行推荐。另一种常见的方法是基于内容的推荐content-based recommendation,它使用有关 item 特征或/和用户特征来基于特征之间的相似性similarity 从而向用户推荐新的 item 。虽然这两种方法在许多实际应用中运行良好,但是它们通常都面临一定的限制limitations 和挑战challenges ,尤其是在个性化需求日益增加以及考虑推荐质量recommendation quality 的情况下。具体而言:

    • CF 在提供高质量推荐之前需要大量的网站交互 interaction 的历史记录。这个问题被称作用户冷启动问题user cold start problem 。在一个新建的在线服务中,由于用户与网站的历史交互很少或者没有历史交互,因此问题变得更加严重。因此,传统的 CF 方法通常无法为新用户提供高质量的推荐。

    • 另一方面,content-based 推荐方法从每个用户或/和 item 中提取特征,并使用这些特征进行推荐。例如,如果两个新闻News 共享相同的主题topic,并且用户喜欢新闻 ,则系统可以向用户推荐新闻 。类似地,如果两个用户 共享某些相似性similarity (如地理位置location 相似、年龄相似、性别相同),则系统可以向用户 推荐用户 之前喜欢的 item

      在实践中,研究表明:content-based 方法可以很好地处理新 item 的冷启动问题。然而,当应用于对新用户的推荐时,其有效性是有问题的。因为 user-level 特征通常更难获取,并且user-level 特征通常是是从用户在线个人画像user online profiles中的有限信息生成的,而这些信息无法准确地捕获实际的用户兴趣。

      即:精准画像难以获取,而且画像相似不代表兴趣相似。

    为解决这些限制,论文 《 Multi-View Deep Learning Approach for Cross Domain User Modeling in Recommendation Systems》提出了一个利用用户特征和 item 特征的推荐系统。和许多基于用户画像user profile-based 的方法不同,为了构建用户特征,论文提出从用户的浏览和搜索历史中提取丰富的特征来建模用户的兴趣。潜在的假设是:用户的历史在线活动historical online activities 反映了用户的背景 background 和偏好preference ,因此提供了关于用户可能感兴趣的 item 和主题 topic 的精确洞察 precise insight。例如,具有很多与婴儿相关 query 和相关网站访问的用户可能暗示着这个用户是一个新生儿的妈妈。通过这些丰富的用户在线活动user online activities,可以更有效地实现对相关relevantitem 的推荐。

    在论文中,作者提出了一种新颖的深度学习方法,该方法从深度结构语义模型 Deep Structured Semantic Model: DSSM 扩展而来,将用户和 item 映射到共享的语义空间,并推荐与用户在语义空间中相似性最大的item 。为此,论文的模型通过非线性转换层将用户和 item (均由丰富的特征集合来表示)投影到紧凑的共享潜在语义空间compact shared latent semantic space 中。在这个语义空间中,用户的语义表示和用户喜欢的 item 的语义表示之间的相似性similarity 被最大化。这使得该模型能够学到兴趣的映射interesting mapping。例如,访问过 fifa.com 的用户喜欢阅读有关世界杯的新闻,并在PC 或者 Xbox 玩足球游戏。

    • 用户侧user side 的丰富特征可以对用户的行为进行建模,从而克服了 content-based 推荐中的诸多限制。

      user 的行为来代替用户画像,可以解决用户画像不准或者不全的问题。

    • 该模型还有效地解决了用户冷启动问题,因为该模型允许我们从query 中捕获用户兴趣并推荐相关的 item (例如音乐),即使用户没有使用音乐服务的任何历史记录。

    • 该模型有一个 ranking-based 目标,旨在将正样本(用户喜欢的 item)排名高于负样本。这种 ranking-based 目标已经被证明对推荐系统更有利。

    此外,作者扩展了原始的 DSSM 模型(在本文中称之为 single-view DNN,因为 DSSM 学习来自单个领域domain 的用户特征和 item 特征),从而联合学习来自不同领域的 item 的特征。作者将新模型命名为 Multi-View Deep Neural Network: MV-DNN

    在文献中,多视图学习 multi-view learning 是一个经过充分研究的领域,它从非共享公共特征空间 not share common feature space 的数据中学习。作者认为 MV-DNN 是多视图学习配置setup 中一种通用的深度学习方法。具体而言,在包含新闻NewsAppsMovie/TV 日志的数据集中,作者不是为每个领域建立独立的模型来简单地将用户特征映射到领域内的 item 特征,而是建立新的多视图模型来发现潜在空间中用户特征的单个映射,从而与来自所有领域的 item 特征共同进行了优化。MV-DNN 使得我们能够学到更好的用户 representation ,它利用更多的跨域数据,并利用来自所有领域的用户偏好数据从而解决数据稀疏性问题。

    论文在实验中表明:这种多视图扩展同时提高了所有领域的推荐质量。此外,值得一提的是,深度学习模型中的非线性映射使得我们能够在潜在空间中找到用户的紧凑表示compact representation,这使得存储学到的用户映射 user mapping 以及在不同任务之间共享信息变得更加容易。

    使用深度学习来建模丰富的用户特征的另一个挑战是特征空间的高维high dimension ,这使得学习效率低下并可能影响模型的泛化能力。作者提出了几种有效 effective 且可扩展scalable 的降维技术,这些技术在不损失大量信息的情况下可以将维度降低到合理的大小。

    论文的主要贡献:

    • 使用丰富的用户特征来构建通用的推荐系统。
    • content-based 推荐系统提出深度学习方法,并研究不同的技术以扩展该系统。
    • 引入新颖的多视图深度学习模型,通过组合来自多个领域的数据集来构建推荐系统。
    • 通过利用从 multi-view DNN model 中学到的语义特征映射 semantic feature mapping 来解决文献中未充分研究的用户冷启动问题。
    • 使用四个真实世界的大型数据集进行严格的实验,并证明论文提出的方法相对于 state-of-the-art 方法有着显著的优势。
  2. 相关工作:已有大量文献对推荐系统进行广泛的研究。这里我们旨在回顾一组与论文提出的方法最相关的代表性方法。通常推荐系统可以分为协同推荐collaborative recommendation 和基于内容的推荐 content-based recommendation

    • 协同推荐系统Collaborative Recommendation Systems 向用户推荐一个 item,如果相似的用户喜欢这个 item

      该技术的例子包括:最近邻模型 nearest neighbor modeling、矩阵补全Matrix Completion、受限玻尔兹曼机Restricted Boltzmann machine 、贝叶斯矩阵分解Bayesian matrix factorization 等等。本质上,这些方法都是用户协同过滤user collaborative filteringitem 协同过滤 item collaborative filtering、或者同时 item 和用户的协同过滤。

      • user-based 协同过滤中,基于用户喜欢的 item 来计算用户之间的相似度 similarity 。然后,通过组合相似用户在目标item 上的score 来计算当前用户对目标 itemuser-item pairscore
      • item-based 协同过滤中,基于喜欢这两个item 的用户来计算 item 之间的相似度 similarity 。然后向用户推荐该用户曾经喜欢的 item 所相似的 item
      • user-item based 协同过滤中,基于 user-item 矩阵为 useritem 找到公共空间 common space,并结合 item representation 和用户 representation 来找到推荐。几乎所有矩阵分解方法都是这种技术的例子。

      collaborative filtering: CF 可以扩展到大规模设置large-scale setup ,但是它无法处理新用户和新 item。这一问题通常被称作冷启动问题cold-start issue

    • content-based 推荐从 item 和/或用户的画像中提取特征,并根据这些特征向用户推荐 item。背后的假设是:相似的用户倾向于喜欢他们以前喜欢的 item 所相似的 item

      • 《Amazon.com recommendations: Item-to-item collaborative filtering》 中,作者提出了一种方法来构建具有用户历史喜欢的 item 的一些特征的搜索query,从而寻找其它相关的 item 来推荐。

      • 《Personalized news recommendation based on click behavior》 中,作者给出了另一个例子,其中每个用户都是由新闻主题topics 上的分布建模的。其中这个主题分布是根据用户喜欢的文章来构建的,并且使用和用户相同地理位置location 的所有其它用户的主题分布偏好preference 作为先验分布 prior distribution

        这种方法可以处理新item (新的新闻),但是对于新用户,系统仅使用地理位置特征,这意味着新用户预期看到该用户当地最热门的主题topics 的新闻。这可能是推荐新闻的很好的特性,但是在其他领域(如 Apps 推荐)中,仅使用地理位置信息location information 可能无法得到用户偏好的一个很好的先验 prior

    • 最近,研究人员开发了将协同推荐和 content-based 推荐结合在一起的方法。

      • 《Content-boosted collaborative filtering for improved recommendations》 中,作者在使用协同过滤之前使用 item 特征来平滑用户数据。
      • 《Tied boltzmann machines for cold start recommendations》 中,作者使用受限玻尔兹曼机来学习 item 之间的相似性,然后将其与协同过滤相结合。
      • 《Collaborative topic modeling for recommending scientific articles》中开发从一种贝叶斯方法来共同学习item (在他们的场景中 item 是研究论文 research paper) 在不同主题topics上的分布、以及评分矩阵的因子分解。
    • 在推荐系统中处理冷启动问题主要针对新item (没有任何用户评分的 item)进行研究。如前所述,所有 content-based filtering 都可以处理 item 的冷启动,并且有一些方法是专门针对冷启动问题开发和评估的。《Learning preferences of new users in recommender systems: an information theoretic approach》 中的工作研究了如何通过推荐能够提供用户最多偏好信息的 item 、同时最小化推荐不相关内容irrelevant content 的概率,从而为新用户逐步地学习用户偏好。

    • 近年来,通过丰富的特征进行用户建模的研究很多。例如,已经表明用户的搜索query 可以用于发现用户之间的相似性。用户搜索历史中的丰富特征也被用于个性化的 web 搜索。对于推荐系统,《Scalable hierarchical multitask learning algorithms for conversion optimization in display advertising》中的作者利用用户的历史搜索query 来构建推荐广告的个性化分类personalized taxonomy

      另一方面,研究人员发现,用户的社交行为也可以用于建立用户画像。在 《Twitter-based user modeling for news recommendations》 中,作者使用 Twitter 数据中的用户推文tweets 来推荐新闻文章。

    • 大多数传统的推荐系统的研究都几种在单个领域 domain 内的数据。最近人们对跨域推荐cross domain recommendation 越来越感兴趣。有不同的方法来处理跨域推荐。

      • 一种方法是假设不同的领域共享相似的用户集合,但是不共享item 集合。如 《Cross-domain collaborative recommendation in a cold-start context: The impact of user profile size on the quality of recommendation》 所示。在他们的工作中,作者从电影评分数据集和书籍评分数据集抽取公共用户并增强数据,然后将增强的数据集用于执行协同过滤。他们表明:这种方法尤其有助于那些在某个领域中几乎没有用户画像的用户(冷启动用户)。

      • 另一种方法处理的场景是:同样的item 集合在不同领域中共享不同类型的反馈(如用户点击、用户显式评分等等)。

        • 《Transfer learning in collaborative filtering for sparsity reduction》 中,作者介绍了一种用于跨域矩阵分解的坐标系转换方法coordinate system transfer method
        • 《Transfer learning for collaborative filtering via a rating-matrix generative model》 中,作者研究了在领域之间不存在共享用户或共享 item 的情况下的跨域推荐。他们开发了一个生成模型来发现不同领域之间的公共簇common clusters 。但是,由于计算成本问题,他们的方法无法扩展到中等规模数据集之外。
        • 《Cross-domain collaboration recommendation》 中介绍了一种不同的 author collaboration 推荐方法,其中他们建立了一个主题模型来推荐来自不同研究领域的 author collaboration
    • 对于推荐系统中的很多方法,目标函数是最小化 user-item 矩阵重构reconstruction 的均方误差。最近,ranking-based 目标函数已经显示出在给出更好的推荐方面更有效。

    • 深度学习最近被提出从而用于为协同过滤和 content-based 方法建立推荐系统。

      • 《Restricted boltzmann machines for collaborative filtering》 中,受限玻尔兹曼机模型被用于协同过滤。
      • 《Cross-domain collaborative recommendation in a cold-start context: The impact of user profile size on the quality of recommendation》 中,深度学习用于 content-based 推荐,其中深度学习用于学习音乐特征的 embedding。然后使用这个 embedding 在协同过滤中对矩阵分解进行正则化。

24.1 模型

24.1.1 数据集

  1. 这里首先介绍数据集。我们描述了每个数据集的数据收集过程和特征表示feature representation ,以及数据集的一些基本统计信息。这里使用的四个数据集是从微软的几款产品的用户日志中收集的,包括:Bing Web vertical 的搜索引擎日志、Bing News vertical 的新闻浏览历史记录、Windows AppStoreApp 下载日志、XboxMovie/TV 观看日志。所有日志都是在 2013-12 ~ 2014-06 期间收集的,并且重点关注美国、加拿大、英国等英语市场English-speaking markets

  2. 用户特征:我们从 Bing 收集了用户的搜索query 和他们点击的 URL,从而形成用户特征。

    • 首先对 query 进行规范化normalized 、词干化stemmed,然后将其拆分为 unigram 特征。

      然后,我们使用 TF-IDF 得分来保留最热门 popular 和最重要 non-trivial 的特征。

    • 对于 URL ,我们压缩到仅保留 domain-level (如 www.linkedin.com) 。

    通过对 queryURL 的这些操作我们降低了特征的维度。

    总体而言,我们选择了 300 万个 uni-gram 特征和 50 万个域名特征,最终得到的用户特征向量user feature vector350 万维。

    • query 特征向量为 300 万维,分量大小为对应 uni-gram termTF-IDF 得分。
    • 域名特征向量为 50 万维,为域名的 one-hot 向量。
  3. 新闻特征:我们从 Bing News vertical 收集了点击的新闻 News 。每个新闻 item 由三部分的特征来表示:

    • 第一部分是使用字母三元组表示 letter tri-gram representation 编码的标题特征。
    • 第二部分是每篇新闻的 top-level 类目category (如娱乐Entertainment) 编码的二元特征。
    • 第三部分是在每篇新闻中,通过内部专有的 NLP parser 抽取的命名实体Named Entities,这些命名实体也是通过 letter tri-gram representation 来编码。

    这三部分得到的新闻特征向量为 10 万维。

  4. App 特征:我们从 Windows AppStore 日志中收集用户历史下载的 App 。每个App item 由两部分的特征来表示:

    • 第一部分是使用 letter tri-gram representation 编码的App 标题特征。
    • 第二部分是每个 App 的类目category (如游戏 Game) 编码的二元特征。

    考虑到 App 描述信息 descriptions 不断的变化,我们决定不将它纳入特征空间中。最终得到的 App 特征向量为 5 万维。

  5. Movie/TV 特征:我们从 XBox 日志中收集了每个 XBox 用户观看的历史 Movie/TV 。每个 item 由两部分的特征来表示:

    • 第一部分是item 标题和描述信息description 合并为文本特征 text features,然后使用 letter tri-gram 来编码。
    • 第二部分是每个 item 的流派 genre 编码的二元特征。

    最终得到的 Movie/TV 特征向量为 5 万维。

  6. 在我们的神经网络框架中,用户特征被映射到用户视图user view,其它特征被映射到不同的 item 视图item view 。出于训练的目的,每个用户视图都与一个包含相应用户集合的 item 视图相匹配。为实现这一点,我们根据用户 ID(每个用户都有一个唯一的、匿名的、哈希的 Microsoft User ID)来执行 inner join,从而得到 user-item view pair 。这导致每个 user-item view pair 中包含的用户数量不同。

    下表描述了本文所使用的数据的一些基本统计信息。Joint Users 列给出了 item viewuser view 之间公共用户common users 的数量。

    读者注:为什么用搜索数据作为 User View ?因为搜索数据的规模最大、用户行为最丰富、暴露用户的主动意图,从而能够更好地刻画用户兴趣。

24.1.2 DSSM

  1. 在论文 《Learning deep structured semantic models for web search using click-through data》 中引入了深度结构化语义模型 deep structured semantic model: DSSM ,从而增强 web 搜索上下文中的query document 匹配。考虑到 DSSM 和我们提出的 MV-DNN 模型密切相关,因此这里我们简要回顾一下 DSSM

  2. DSSM 的典型体系结构如下图所示。

    • DNN 的输入(原始文本特征)是一个高维的 term vector ,例如 querydocumentterm 的未归一化的原始计数raw count
    • 然后 DSSM 通过两个神经网络传递其输入,每个神经网络对应不同的输入(如 querydocument ),并将每个输入映射到共享语义空间shared semantic space 中的语义向量semantic vector
    • 对于 web document rankingDSSMquerydocument 之间的相关度得分 relevance score 计算为它们对应的语义向量之间的余弦相似度cosine similarity,并通过 documentquery 的相似度得分对 document 进行排序rank

  3. 正式而言,对于DSSM 中的单个神经网络,如果我们将 表示为输入的 term vector,将 表示为输出向量,将 表示为中间的隐向量 hidden vector 。令 为第 层的权重矩阵, 为第 层的偏置向量,那么有:

    其中 为非线性激活函数,这里我们使用 tanh 函数:

    然后,query document 之间的语义相关性得分 semantic relevance score 为:

    其中 分别为 query 语义向量和 document 语义向量。

    web 搜索中,给定 query 条件下,document 按照它和 query 之间的语义相关性得分semantic relevance score 进行排序。

  4. 传统上,每个单词word 由一个 one-hot word vector 来表示,其中向量的维度是词表 vocabulary 的大小。然而,在现实世界的 web 搜索任务中词表通常非常大,因此 one-hot 向量的 word representation 使得模型的学习代价太大。因此,DSSM 使用一个 word hashing layer 来用一个 letter tri-gram vector 来表示一个单词。

    例如,给定一个单词(如 web),在添加了单词边界符号(如 #web# )之后,单词被分割为一系列的 letter n-grams。然后,单词表示为 letter tri-gramscount vector 。例如,web 这个单词的 letter tri-gram representation 为:#-w-e, w-e-b, e-b-#

    DSSM 中,第一层layer 的权重矩阵 表示从 term-vector 映射到 letter tri-gram count vectorletter tri-gram 映射矩阵,这不需要学习。

    尽管英语单词的总量可能非常庞大,但是英语(或者其它类似语言)中不同的 letter tri-grams 总量通常是有限的。因此,这种做法可以泛化到没有在训练集中出现的新单词。

  5. 在训练中,假设 query 和针对该query 点击的 document 相关,我们利用这一信号来训练 DSSM 的参数,即权重矩阵 、偏置向量

    • 首先,给定query 的条件下,一个 document 被点击的概率是通过 softmax 函数从它们之间的语义相关性得分来估计:

      其中:

      • softmax 函数中的平滑因子 smoothing factor,并且通常是根据实验中的验证集来设定的。

      • 为待排序的候选document 的集合。理想情况下 应该包含所有可能的 document

        实际上对于每个 (query, clicked-document)pair 对,记作 其中 query 为点击的 document,我们使用 个随机选择的未点击 document 来近似 。即:

    • 然后,我们通过最大化在整个训练集上的、给定query 条件下点击documentlikelihood 来估计模型参数:

      其中 为模型的参数集合。

      注意,虽然目标函数 中没有负样本的损失函数,但是 中有负样本参与计算。而且 ,因此 尽可能大意味着 尽可能小。

24.1.3 MV-DNN

  1. DSSM 可以视作一个多学习框架 multi-learning framework,它将数据的两个不同的视图映射到一个共享视图 shared view 。从这个意义上讲,可以从更一般地角度来学习两个不同视图之间的共享映射 shared mapping

    在这项工作中我们提出了 DSSM 的扩展,其中包含有两个以上的数据视图,我们称之为多视图 DNN 模型 Multi-view DNN: MV-DNN 。在这种配置 setting下我们有 个视图,其中一个中心视图pivot view 称作 ,其它 个辅助视图 auxiliary views 记作

    • 每个 都有它自己的领域输入 domain input ,其中 为第 个视图的样本数、 为第 个视图的输入维度。
    • 每个视图 都有自己的非线性映射层,从而将 映射到共享的语义空间 shared semantic space

    MV-DNN 的体系架构如下图所示。在我们的推荐系统设置setup中,我们将中心视图 设为用户特征,并为我们要推荐的每种不同类型的 item 创建辅助视图。

    下图中,MV-DNN 将高维稀疏特征(如用户、新闻、App 中的原始特征)映射为联合语义空间joint semantic space 中的低维稠密特征。 DNN 第一个隐层(具有 5 万个单元)完成单词哈希word hashing。然后将 word-hashed 特征通过多个非线性层来投影,其中最后一层的激活值构成了语义空间中的特征。

    注意:该图中的输入的特征维度(5M3M )是假设的,因为实际上每个视图可以具有任意数量的特征。

  2. 给定训练的一组 user-item view pair ,假设第 个样本具有中心视图特征 、以及某个活跃的辅助视图特征 ,其中 。所有其它辅助视图的输入 都设为零向量。

    MV-DNN 的目标函数是为每个视图找到一个非线性映射,使得在语义空间中,中心视图的映射 和其它所有视图的映射 之间的相似度之和最大化。数学上表述为:

    其中: 为辅助视图的总数, 为第 个辅助视图的样本数, 为第 个辅助视图的 item 数量, 为第 个辅助视图的平滑因子。

    该目标函数就是将各辅助视图的目标函数相加。

    具有该目标函数的直觉是:试图为用户特征找到单个映射 single mapping ,该映射可以将用户特征转换到一个匹配不同视图/领域中用户喜欢的所有 item 的空间中。

    这种共享参数的方式允许没有足够信息的领域通过具有更多数据的其它领域来学习良好的映射。例如,如果我们假设具有相似新闻News 偏好的用户在其他领域中也具有相似的偏好,那么这意味着其它领域也可以从新闻领域学到的用户映射中受益,那么这种方式应该会很好地工作。

    如果该假设成立,那么来自任何领域的样本都将有助于所有领域中更准确accurately 地对相似用户进行分组。实验结果表明,该假设在我们实验的领域是合理的,我们将在实验部分进一步阐述。

    DSSMMV-DNN 的目标函数评估的是:最大化正样本和负样本之间的相对序关系。这和 CTR 预估任务中的 logloss 目标函数不同,后者的目标是准确预估样本的点击率。因此 DSSMMV-DNN 无法直接应用与 CTR 预估任务,而只能用于推荐任务。

  3. MV-DNN训练:可以使用随机梯度下降 Stochastic Gradient Decent: SGD 来训练 MV-DNN

    实际上每个训练样本都包含一对a pair输入,一个用于用户视图user view、一个用于数据视图data view 。因此,尽管在我们的模型中仅有一个用户视图,但是使用 个用户特征文件 user feature files 会更方便,每个文件对应于一个 item 特征文件 item feature file

  4. MV-DNN 的优势:尽管 MV-DNN 是原始 DSSM 框架的扩展,但是MV-DNN具有几个独特的特点使得它优于 DSSM

    • 首先,原始的 DSSM 模型对 query 视图和document 视图使用相同的特征维度,并使用相同的representation (例如 letter tri-gram)进行预处理。这在特征构建步骤feature composition step 中产生了巨大的限制。

      原始的 DSSM 使用相同的塔结构来处理 query 视图和 doc 视图,因此特征维度和预处理方法都一样。

      • 由于推荐系统的异质性heterogeneity,用户视图和 item 视图很可能具有不同的输入特征。

      • 此外,很多类型的特征不能用 letter tri-gram 来最佳地表示。

        例如,URL 域名特征通常包含前缀和后缀,如 wwwcomorg。如果采用 letter tri-gram ,那么这些前缀、后缀将映射到相同的letter tri-gram

        在实践中我们发现,在输入的原始文本很短的情况下(如原始 DSSM 模型中的 query 文本和 document 标题), letter tri-gramrepresentation 工作得很理想。但是不适合为通常包含大量queryURL 域名的 user-level 特征来建模。

      通过消除这些约束,新的 MV-DNN 模型可以融合类别特征categorical feature (如电影题材、app类目)、地理位置特征(如国家、地区)、以及来自用户输入的uni-grambi-gram 表示的原始文本特征。

    • 其次,MV-DNN 有能力扩展到很多不同的领域,而这是原始 DSSM 框架无法做到的。

      通过在每个 user-item view pair 之间执行 pair-wise 训练,我们的模型能够轻松地采用新的 view pair 。这些新的 view pair 可能包含完全独立的用户集合和 item 集合。例如,可以添加从 Xbox games 收集的新的数据集。

      通过在每次训练迭代中交替 user-view pair ,我们的模型最终可以收敛到最优的用户视图 embedding。这个用户视图 embedding 通过所有 item 视图来训练。

      注意,虽然理论上我们可以在不同的 item 视图中使用不同的用户集合,但是在我们的实验中我们选择在所有视图中保持相同的用户集合。这是为了同时考虑便利性convenience 和更容易特征归一化 feature normalization

24.1.4 降维和数据缩减

  1. 在实践中,MV-DNN 通常需要在高维特征空间中为用户视图处理大量的训练样本。为了系统的可扩展性,我们提出了几种降维技术来减少用户视图中的特征数量。

    然后,我们提出了一种压缩compact和摘要summarize 用户训练样本的思想,从而将训练数据的数量缩减 reduce 到用户数量的线性关系。

  2. 用户特征降维技术(仅用于用户视图):

    • top 特征:一种简单的用户特征降维方法是选择 top-K 的最高频 most frequent 特征。

      我们选择特征出现频率 >= 0.001 的用户特征。 主要的基本假设是:可以使用一组相对较小的、解释用户常见在线行为 common online behavior 的常用特征 frequent feature 来很好地描述用户。

      注意,用户的原始特征使用 TF-IDF 得分进行预处理,以便我们选择的 top 特征不再包含搜索query 中的常见停用词。最终用户特征的维度为 8.3 万。

    • K-meansK-means 是一种众所周知的聚类技术,旨在创建多个聚类使得每个点与其最近的聚类之间的距离之和最小化。

      这里的基本思想是:将相似的特征分组到同一个簇中。

      • 给定输入 ,我们根据列来拆分得到 个样本点point

      • 然后对这 个点聚类为 个簇,

      • 然后我们统计这些簇中分别有多少个点。假设簇 中有 个点,则我们得到簇向量 。其中

        这相当于将 个特征降维到 个特征。这是基于特征的聚类,而不是基于样本的聚类。

      • 然后我们归一化 ,得到

        实际上可以不用归一化。可以通过实验对比归一化和未归一化的效果。

      对于用户特征向量 ,我们假设它在的非零特征为 ,这些特征对应的簇为 。则用户特征向量降维为:

      为了能够使用 K-means 提取合理数量的特征,我们需要有相对较大的簇数量。因为考虑到用户特征的维度为 350 万,较少的簇(比如 100)将导致大块 large chunk 特征在同一个簇中。因此,这将产生难以学到有用模式的特征。为了缓解这个问题,我们将簇数量设置为 10k。这意味着平均每个簇有 350 个用户特征。

      大规模的簇和大规模的原始特征使得运行 K-means 的计算量很大。在我们的实验中,我们使用了一个基于云计算的 Map-Reduce 实现来运行 K-means

    • LSH:局部敏感哈希Local Sensitive Hashing: LSH 的工作原理是使用随机投影矩阵random projection matrix 将数据投影到一个低得多的低维空间,使得原始空间中的 pair-wise 余弦距离cosine distance 仍然在新空间中保留preserved

      LSH 需要一个变换矩阵 ,其中 为原始空间中的特征数量, 为随机投影的数量。这意味着 包含 个不同的投影,我们记作 。每个投影 将原始输入向量 映射到一个哈希值 LSH 的输出向量 可以通过拼接所有不同的哈希值 来得到。

      具体而言,为了计算每个 ,我们使用以下方程:

      两个输入向量 的余弦相似度可以近似为 ,其中 LSH 输出向量 的汉明距离。为了以更高的准确率accuracy 保持余弦相似度,我们需要提高投影数量 。我们使用 ,这和 k-Means 聚类的簇数量相同。

      LSH 可以独立地应用于每个特征向量,并且可以独立地计算所有投影,因此使得该算法在 Map-Reduce 框架内高度可分布distributable。但是,LSH 算法需要生成变换矩阵 ,在我们的case 中该矩阵包含从标准正态分布 中随机生成的 个元素,这大概需要 300GB 的存储空间。此外,在计算 LSH 向量的时候,必须将 存储在每个计算节点上。这些问题使得 LSHMap-Reduce 框架中代价太大。

      人们已经提出了很多方案来解决这个问题,其中大多数方案都是基于生成稀疏矩阵 。这里我们使用《Online generation of locality sensitive hash signatures》 中介绍的池化技巧pooling trick。 基本思想是:保留一个由 生成的、size 的随机数池子 ,其中 通常要远远小于 size 。为了获得元素 ,只需要应用 的一致哈希函数consistent hash function 来获得 中的索引并查找对应的值。在我们的实验中,我们设置 ,这样一来内存需求减少了 10000 倍,并且可以在 Map-Reduce 期间仅使用 10M 的存储空间轻松地存储在每个节点上。

  3. 减少训练样本的数量:每个视图的训练数据包含 pair 的集合,其中 偏好 。实践中,用户可能会喜欢很多item,这可能使得训练数据非常大。例如,在我们的新闻News 推荐数据集中,pair 对的数量远远超过 10 亿。即使使用优化的 GPU 实现optimized GPU implementation,训练也会非常慢。

    为了缓解这个问题,我们压缩了训练数据,使得每个视图中每个用户都包含一个训练样本。具体而言,压缩的训练样本使用了用户在该视图中喜欢的所有 item 的特征的均值(即对 item 特征进行均值池化)。这样可以将每个视图的训练样本数量降低为用户数量,从而大大减少了训练数据的大小。

    注意,这种技术的一个问题是:目标函数现在变成了最大化用户特征和用户喜欢的item 的平均特征之间的相似性。在评估的时候有细微的差异,因为在测试期间每个用户只能提供一个 item 。但是,这种逼近approximation 是必要的,使得系统有很好的可扩展性。此外,实验结果表明:这种逼近在实践中仍然会产生非常有前景的结果。

24.2 实验

  1. 这里我们将解释我们的实验研究过程,并简要回顾了我们作为 baseline 的几种推荐算法。

  2. 数据集:对于每个数据集,我们旨在评估已经在该领域中具有历史交互的用户(老用户)、以及在该领域中没有任何历史交互但是在用户视图中具有历史搜索和浏览行为的用户(新用户)。为了进行评估,我们根据以下标准将数据集划分为训练集和测试集:

    • 首先,以 0.9 : 0.1 的比例为每个用户随机分配一个 train 或者 test 的标记。

    • 然后,对于每个带 test 标记的用户,我们以 0.8 : 0.2 的比例将其进一步随机分配一个 old 或者 new 标记。

    • 接着,对于每个带 old 标记的用户,他们的 50%item 用于训练、剩余的用于测试。

      于每个带 new 标记的用户,他们的所有 item 都用于测试,从而确保这批用户的 user-itempair 永远不会出现在训练过程中。通过这种方式,这批用户都成为系统的全新用户。

    数据集的详细划分信息在下表所示。

  3. 性能评估:对于训练数据集中的每个 pair 对,我们随机选择其它的 9item ,其中 都是随机的索引,然后创建 9 个测试的 pair 并添加到测试数据集。

    评估指标是:衡量系统对用户 是否将正确的 pair 排序在随机的 pair 之上。因此,我们采用了两个指标:

    • 平均倒数排名Mean Reciprocal Rank: MRR:计算所有 item 中正确 item 的排名的倒数,然后对整个测试数据集的得分进行平均。
    • Precision@1: P@1:计算系统将正确item 排名为 top 1 item 的次数占比。

    注意:这种随机抽取item 为负样本的方式有可能导致负样本太简单。可以考虑同类目或者同主题下抽取负样本,从而得到 hard 负样本来评估。

  4. baseline 方法:

    • 标准的 SVD 矩阵分解:在这个 baseline 中,我们构建 user-item 矩阵,并使用 SVD 执行矩阵分解。这是协同过滤技术的标准 baseline

      实际上,该 baseline 仅在相对较小的数据集(在我们的 case 中为 Apps 数据)上在计算上是可行的。此外,该方法不能为新用户提供推荐,因为他们没有出现在 user-item 矩阵中。

    • 最热门item:由于 SVD 无法处理新用户的推荐,因此我们使用最热门item 作为新用户的简单 baseline

      它的工作原理是首先计算训练集中每个 item 的频次frequency,然后针对每个测试样本 及其随机pair ,该方法根据训练集中 item 的频次来排序。

    • Canonical Correlation Analysis: CCACCA 是一种传统的多视图学习技术,旨在找到两对 two pair 线性变换,每个输入视图一对,使得变换后 transformed 的数据之间的相关性最大化。

      CCADSSM 相似,但是有两个主要区别:

      • 尽管 CCAkernel 版存在非线性变换,但是 CCA 经常使用线性变换,因为kernel 版在大规模数据中计算量是不可行的。
      • CCA 在某种固定方差 certain fixed variance 约束下最大化相关性,而DSSM 最大化 correct pair 的排序rank 。排序目标函数 ranking objective 已经被证明是一个更好的推荐系统目标函数。

      在我们针对 CCA 的实验中,我们仅使用 top-k 的用户特征,因为其它两种降维技术(K-meansLSH)产生了一个非常稀疏的特征向量,这会使得相关性矩阵 correlation matrix 过于稠密dense 从而无法有效地计算。

    • 协同主题回归Collaborative Topic Regression: CTRCTR 是最近提出的推荐系统,它结合了贝叶斯矩阵分解 Bayesian matrix factorizationitem 特征来创建 item 推荐。它在学术论文推荐academic paper recommendation 方面已被证明是成功的。

      CTR 模型中有两个输入:协同矩阵 collaborative matrixitem 特征(以 bag-of-words 来表示)。该模型通过最大化协同矩阵的重构误差 reconstruction error 并将 item 特征作为额外信号extra signal 从而匹配用户和 item 。这有助于对训练数据中没有出现过的新 item 进行建模。对于我们场景中的新用户推荐,我们将协同矩阵 的转置作为输入,并提供用户特征而不是 item 特征。

    • single-view DNN:对于 AppsNews 数据集,我们运行三组实验来训练单视图 DNN 模型,每组实验对应于一种降维方法(SV-TopKSV-KmeansSV-LSH )。

    • MV-DNN:我们针对 MV-DNN 进行了另外三组实验。

      • 前两个使用 TopKKmeans 降维的用户特征(MV-TopKMV-Kmeans)来联合训练 AppsNews 数据。
      • 第三组实验使用 TopK 用户特征(MV-TopK w/Xbox)来联合训练 AppsNewsMovie/TV 数据。
  5. 我们评估了 App 数据集(第一张表)和 News 数据集(第二张表)中的不同方法获得的结果,如下表所示。我们将算法分为三类:第一类是 baseline 方法,第二类是我们的单视图模型,第三类是MV-DNN 模型。可以看到:

    • 第一类方法:

      • 朴素的最热门itembaseline 表现很差,这证明了对新用户的简单解决方案在我们的场景下不会很好地工作。
      • 即使对于在协同过滤矩阵中存在的老用户,标准的 SVD 矩阵分解方法在该任务中也不够好。
      • 出乎意料的是,CCA 模型的表现并不比对 Apps 数据的随机猜测更好。这表明在 DSSM 中使用非线性映射以及基于排序的目标函数ranking-based objective 对于系统很重要。
      • CTR 模型对于老用户而言表现不错,但是对于新用户却表现不佳。
    • 第二类方法:对于单视图 DNN,结果表明性能取决于所使用的的降维方法。

      • 对于 AppsNews 数据而言,最好的降维方法是 top-K 特征降维方法,该方法的性能远远优于其它两种方法。

        这可以被视为对以下假设的证实:用户可以使用相对较少的、有信息量informative 的特征的集合来建模。这也表明 K-meansLSH 在正确捕获用户行为语义方面不太有效。

      • 作为单视图 DNN 和传统推荐方法的直接比较,我们的最佳模型 (SV-TopK) 的性能优于最佳的 baseline 方法(CTR,它也利用了 item 特征来进行推荐),其中在所有用户上提升了 11%MRR 得分为 0.497 vs 0.448) 、在新用户上提升了 36.7%MRR 得分为 0.436 vs 0.319)。

        P@1 指标上,我们看到了更大的提升:在所有用户上提升 13%、在新用户上提升 88.7%。这表明我们的系统在推荐 top-rated item 方面的有效性。

    • 第三类方法:对于 MV-DNN,结果表明添加更多领域确实有助于同时改善所有领域。具体而言:

      • 通过将 News 视图和 Apps 视图进行联合训练,我们发现 NewsApps 数据集在这两个指标中都有显著提升。

        具体而言,在 App 数据中,和最佳单视图模型相比,所有用户的 MRR 得分从 0.497 提升到 0.517 ,相对提升 4% 。更重要的是,我们看到新用户有大幅提升,这表明一个视图中缺少新用户的数据可以通过其它视图该用户的数据来弥补。这可以从 App 数据集中新用户的相对提升来说明,其中新用户的 MRR 指标提升了 7%0.436 vs 0.466 )、P@1 指标提升 11%0.268 vs 0.297)。

      • 因此,我们迫切地想知道:我们能否安全地得出结论,即更多的视图确实有助于提升系统的性能?为了回答这个问题,我们进一步将 Xbox 数据添加到框架中,并使用三个 user-item view pair 来训练了一个 MV-DNN 模型。

        结果令人振奋: 在 Apps 数据中所有用户的 MRR 得分进一步提升了 6%、新用户的 MRR 得分进一步提升了 8%

        另一方面,通过和 state-of-the-art 算法进行比较,我们具有 top-K 特征的 MV-DNN with Xbox view 的方法相比 CTR 模型在所有用户上的 P@1 指标提升 25.2%0.277 vs 0.347)、在新用户上的 P@1 指标提升 115%0.142 vs 0.306)。

    News 数据集也可以观察到类似的结果:相对于 CTR 模型,MV-DNN 在所有用户上的 P@1 指标提升 49%、在新用户上的 P@1 指标提升 101% 。注意,在该数据集中缺少 CCASVD 的结果。由于包含 150 万用户和超过 10 亿条数据,这两种传统算法无法处理如此大规模的数据。很明显,我们基于 DNN 的方法可以很轻松地扩展到数十亿条数据,同时产生出色的推荐结果。

    下表为 App 数据集的结果:

    下表为 News 数据集的结果:

  6. 为了探索从系统中学到的模型的有效性,我们执行以下实验来测试单特征输入single-feature input 的推荐性能。具体而言,我们采用了性能最佳的系统(带 top-k 特征的MV-DNN),并构建了仅开启 URL 域名特征的用户特征user feature 。由此产生的用户特征只有一个值,即域名 ID 。然后,我们针对其它视图运行我们的预测模型,以便在所有现有 item 中找到最匹配的 NewsApps 。下表显示了其中的一些结果。可以看到,学到的推荐系统确实非常有效。

    • 在第一个示例中,我们假设用户仅访问了 brackobama.com。匹配度最高的新闻显示了和奥巴马总统 Obama 以及 Obamacare health 的所有相关信息,这些信息都和该网站有关。另一方面,这个示例中最匹配的 Apps 也和健康有关。
    • 在第二个例子中,我们有一个用户访问了 www.spiegel.de,这是一个主要的在线的德国新闻网站,除了用户会阅读德语之外,它没有告诉关于用户的更多信息。该系统为用户匹配了 2014FIFA 世界杯的文章,这似乎是德国人在这段时间内的共同兴趣。
    • 在最后一个例子中,用户似乎对婴儿相关的信息感兴趣,最匹配的NewsApps 都和婴儿、怀孕等相关。

    注意:在这个实验中我们仅使用域名ID,域名的名字domain name 对于目标任务而言是未知的。

  7. 公共数据集:为进一步展示我们的方法在跨域用户建模方面的优势,我们对公共数据集进行了一系列实验。

    数据集包含来自五个领域(数据挖掘、理论等等)的 33739 位作者,其中每条数据包含研究领域的name、论文的标题和摘要、论文的作者列表、论文的发表年份。目标是推荐来自另一个领域的作者进行跨领域合作cross-domain collaboration

    我们使用single-view DNN 来建模这种跨领域协作(如数据挖掘和理论研究学者之间的协作)。在这种情况下,用户视图和 item 视图都共享相同的特征表示。具体而言,我们使用作者在训练期间(1990~2001 年)发表的论文的标题和摘要中的 uni-gram 单词作为特征,从而得到 31932 维的特征向量。我们随机选择训练期间已经有跨域协作、并且在测试期间至少由五个跨域协作的作者作为我们的测试集。对于不同领域之间的每个协作集合,我们将迭代 100 次来训练一个 single-view DNN。注:这里仅评估了single-view DNN (即 DSSM)。

    结果如下表所示。总体而言,除了 P@20 指标之外,我们的方法在所有四个跨域数据集中的性能均明显优于 CTL 方法。特别是,我们在 P@100 时实现了更高的召回率,这对于 DM to theory 提升了 96% 的推荐性能。

    结果表明,将丰富的用户特征和非线性深度神经模型结合使用,确实可以捕获更多语义,而这些语义无法使用传统的 word-based 共享模型(例如生成式的主题模型 topic model )准确地建模。我们相信,使用多视图 DNN 模型可以进一步提高性能。但是我们将其留待将来研究。

    在效率方面,作者报告了整个数据集的 CTL 方法的训练时间为 12~15 小时。而我们的算法运行速度非常快,每个模型仅用 5~7 分钟就可以在 GPU 机器上以相同数量的数据完成 100 次迭代。

  8. 可扩展性:这里我们根据训练时间来比较各种算法的性能。我们的方法使用 SGD 进行训练,因此可以使用分布式训练来处理大量数据。下表给出了不同方法的性能的详细信息。

    可以看到:

    • 对于较小的 Apps 数据集,SVDCCA 训练完成时间相对较快(大约四个小时),但是推荐性能却很差。

    • single-view DNN 模型(SV-TopK)在 33 小时内完成了 100 次训练迭代。

    • content-based CTR 模型需要花费很长的时间进行训练,原因是 CTR 需要使用 LDA 模型训练的主题比例 () 和主题分布 ( ) 的初始种子。

      然后 CTR 获取了这些文件,并优化了用户特征和 item 特征之间的关联。因此,对于这两个数据集,训练 CTR 比我们的深度学习模型更昂贵。

    • 另一方面,我们看到 SV-TopKMV-TopK 都表现出对数据大小的 (亚)线性训练时间。因为当更多的数据可用时,SGD 通常会花费更少的时间来收敛。

    另外,下图显示了 NewsApps 视图在 MV-TopK 模型的每次迭代期间的训练误差。在我们的实验中,我们手动将训练迭代次数设置为 100 次。有两个原因:

    • 一个原因是,尽管随着时间的推移效果提升越来越小,但是我们仍然能够看到所有视图的性能都有所提升。

    • 另一个原因是,我们发现在实践中,某些视图的收敛速度比其他视图更快。例如,对于下图中的特定模型,News 视图在 20 次迭代后迅速收敛,而 Apps 视图大约花费了 70 次迭代才能达到收敛。

      由于训练期间交替使用 user-item view pair 的过程以及不同视图的收敛速度不同,因此使用早停以进一步提高模型的可扩展性成为未来的关键工作。

二十五、CAN[2020]

  1. 随着机器学习模型,尤其是推荐系统模型的日益复杂,如何有效地处理丰富的输入特征成为一个关键问题。对于工业环境中的在线推荐器recommender,模型通常使用 one-hot 编码的十亿级二元稀疏特征进行训练。每个特征也可以视为一个 unique ID:它首先被映射到一个低维的 embedding,然后被输入到模型中。

    处理大规模输入的一种简单方法是考虑特征之间相互独立。在这种假设下,特征之间没有联系,因此可以直接训练广义线性模型,从而基于特征的组合来估计点击率CTR。然而,推荐系统中的target item 和 “用户历史点击” 等特征是高度相关的,即存在对最终预测目标(如点击率)的特征协作效应 feature collective effect ,称作 feature co-action 。例如,点击历史中有 “泳衣” 的一名女性用户,由于 “泳衣” 和 “泳镜” 的co-action ,很可能会点击推荐的 “泳镜”。

    feature co-action可以被认为是对一组原始特征的子图进行建模。如果子图仅包含两个特征,那么建模feature co-action相当于对两个 ID 之间的边进行建模。co-action effect解释了一组特征如何与优化目标相关联。如下图所示,feature co-action显式地将特征 pair[A, B] 连接到 target label

    近年来,已有一些工作致力于建模feature co-action,这些方法可以分为三类:

    • 基于聚合aggregation的方法聚焦于学习如何聚合用户的历史行为序列,从而获得 CTR 预估的有区分性discriminativerepresentation 。这些方法利用feature co-action对历史行为序列中的每个 user action 的权重进行建模,然后对加权的用户行为序列进行sum 池化从而表示用户兴趣。
    • 基于图的方法将特征视为节点,这些节点被连接成有向图或无向图。在这种情况下,feature co-action作为信息沿着边传播的 edge weight
    • 和基于聚合的方法、基于图的方法不同(这两种方法将feature co-action建模为权重),组合嵌入combinatorial embedding方法通过显式组合特征 embedding 来对feature co-action进行建模。

    尽管这些方法以不同的方式导致 CTR 预估的提升,但是它们仍然存在一些缺点:

    • 基于聚合的方法和基于图的方法仅通过 edge weightfeature co-action进行建模,但是 edge 仅用于信息聚合information aggregation 而不是用于信息增强information augmentation

    • combinatorial embedding 方法将两个特征的 embedding 相结合,从而对feature co-action进行建模。 例如,PNN 执行两个特征的内积或外积以增强augment 输入。

      combinatorial embedding 方法的一个主要缺点是:embedding 同时承担了representation learningco-action modeling的责任。representation learning 任务和co-action modeling可能会相互冲突,从而限制了性能。

    在论文 《 CAN: Revisiting Feature Co-Action for Click-Through Rate Prediction》 中,论文强调了 feature co-action建模的重要性,并认为 state-of-the-art 方法严重低估了 co-action 的重要性。由于表达能力有限,这些方法无法捕获到 feature co-action。捕获feature co-action以增强输入的重要性在于它可以降低模型学习和捕获 co-action 的难度。假设存在一个最优函数 来建模特征 之间的 co-action,通过在输入阶段显式提供 可以大大减轻学习难度。

    为了验证论文的假设,即当前的方法无法完全捕获feature co-action,论文回顾了 state-of-the-art 的方法和设计实验,从而表明探索feature co-action潜力的简单方法可以提高性能。例如,如果选择了特征 ,那么 的共现co-occurrence 将被视为一个新特征并馈入到模型中。作者将这个 baseline 称作笛卡尔积cartesian product 模型。虽然笛卡尔积是 co-action modeling 的直接方法,但是它存在一些严重的缺陷,如参数量太大、特征完全独立的 embedding learning 。然而令人惊讶的是,根据论文的一些初步实验,作者发现大多数 state-of-the-artcombinatorial embedding 方法完全被笛卡尔积击败。作者推测这种情况可能是因为这些方法的表达能力差,并且无法学到平衡 representationco-action modelingembedding

    为此,作者提出了feature co-action网络 Co-Action Network: CAN,它可以在输入阶段捕获feature co-action,并有效利用不同特征 pair 对的互信息mutual information 和公共信息common informationCAN 不是直接参数化parameterize 笛卡尔积 embedding,而是参数化 embedding 生成网络generation network 。这种参数化将追加参数的规模从 降低到 而且实现更好的性能,其中 为特征数量、 为特征维度、embedding 维度,

    具体而言,CAN 区分了用于 representation learningco-action modelingembedding 空间,其中 embedding 生成网络派生自 co-action modeling 空间。通过这种方式,CAN 丰富了它的表达能力,缓解了 representation learningco-action learning 的之间的冲突。与笛卡尔积模型相比,CAN 由于提高了参数的利用率,因此显著降低了存储成本和计算成本。

    本文主要贡献:

    • 作者强调了feature co-action建模的重要性,而 state-of-the-art 方法严重低估了这一点。具体而言,论文重新回顾了现有的建模feature co-action的方法。实验结果表明:这些方法无法捕获笛卡尔积 baseline 的性能。这表明当前的 CTR 模型没有充分探索原始feature co-action的潜力。
    • 受观察的启发,作者提出了一个轻量级模型Co-Action Network: CAN ,从而建模原始特征之间的co-actionCAN 可以有效地捕获feature co-action,在降低存储代价和计算代价的同时提高模型性能。
    • 论文对公共数据集和工业数据集进行了广泛的实验,一致的优势验证了 CAN 的有效性。到目前为止,CAN 已经部署在阿里巴巴的展示广告系统中,带来了平均 12% 的点击率提升、平均 8%RPM 提升。
    • 论文介绍了在工业环境中部署 CAN 的技术。CAN 利用feature co-action的思想和作者学到的经验教训可以泛化到其它的 setup,因此受到研究人员和业界从业者的关注。
  2. 相关工作::一些研究工作致力于CTR 预估中建模feature co-action。这些方法可以分为三类:aggregation-based方法、graph-based 方法、combinatorial embedding方法。

    • aggregation-based 方法:深度CTR 预估模型通常遵循 embedding & MLP 的范式。在这些方法中,大规模稀疏输入特征(即 ID 特征)首先映射到低维向量,然后以group-wise 的方式聚合为固定长度的向量。最终拼接好的向量馈入多层感知机 MLP

      一系列工作聚焦于学习如何聚合特征以获得 CTR 预估的、有区分性discriminativerepresentationCNNRNNTransformerCapsule 等不同的神经架构被用于聚合特征。

      • DIN 是采用注意力机制进行特征聚合的代表性工作之一。它使用注意力来激活关于给定 target item 的局部历史行为,并成功地捕获到用户兴趣的多样性特点diversity characteristic
      • DIEN 进一步提出了一种辅助损失来从历史行为中捕获潜在的兴趣。此外,DIEN 将注意力机制和 GRU 相结合,对用户兴趣的动态演化进行建模从而进行特征聚合。
      • MIND 认为单个向量可能不足以捕获用户和 item 中的复杂模式。MIND 引入了胶囊网络和动态路由机制来学习多个 representation 来聚合原始特征。
      • 受到 self-attention 架构在 seq-to-seq learning 任务中取得成功的启发,DSIN 引入了 Transformer 以进行特征聚合。
      • MIMN 提出了一种 memory-based 的架构来聚合特征并解决长期long-term 用户兴趣建模的挑战。
    • graph-based 方法:图包含节点和边,其中 ID 特征可以由节点 embedding 表示,feature co-action可以沿着边建模。基于图的方法(如 Graph Neural Network: GNN)对每个节点进行特征传播,并在传播过程中聚合了邻域信息。feature co-action被建模为边权重,用于特征传播从而沿着边局部平滑节点 embedding

      • 《Spectral Networks and Locally Connected Networks on Graphs》 首先提出了一种基于谱图spectral graph 的卷积网络扩展,从而用于特征传播。
      • GCN 进一步简化了图卷积层。在 GCN 中,边是预定义的,边的权重是一维实数。边的权重用于聚合邻域信息以建模feature co-action
      • GAT 学习每个中间层 intermediate layer 分配不同的边权重。GAT 也通过边权重对feature co-action进行建模,但是由于注意力机制,GAT 中的权重是节点的函数。因此注意力机制使得 GAT 更有效地对feature co-action进行建模。
      • 还有一些工作利用不同节点之间的 meta-path 进行 embedding learning

      尽管基于图的方法在图结构化数据中取得了巨大的成功,但是feature co-action仅由表示连接强度的一维权重来建模。这种表达能力可能不足以建模feature co-action

    • combinatorial embedding 方法:组合 embedding 方法根据组合 embedding 来度量feature co-action

      • FM 是浅层模型时代的代表性方法。在 FM 中,feature co-action被建模为特征的latent vector 的内积。然而,FM 在不同类型的 inter-field 相互作用中使用相同的 latent vector,这可能会导致耦合梯度coupled gradient 问题并降低模型容量。

        假设有三个特征:性别、地点、星期。某个样本的特征为:“男性”、“上海”、“周日”。因此有:

        因此有梯度:

        假设性别和星期是独立的,那么理想情况下 应该和 是正交的。但是上述梯度会沿着 的方向更新 。这就是梯度耦合问题,这是由于在不同类型的 inter-field 相互作用中使用相同的 latent vector 引起的。

        此外,FM 的表达能力也受到浅层的限制。

      • 受到深度学习成功的启发,最近的 CTR 预估模型也已经从传统的浅层方法过度到现代的深度方法。DNNbit-wise level 建模非线性交互的能力非常强大,但是feature co-action是隐式学习的。许多工作已经表明: 通过组合特征 embedding 来显式建模feature co-action有利于 CTR 预估。

      • Wide&Deep 手动设计的笛卡尔积作为 wide 模块的输入,其中 wide 模块是一个广义的线性模型。wide 模块结合深度神经网络来预估 CTR

      • DeepFMWide&Deep 中将 wide 部分替换为 FM 模块,从而无需手动构建笛卡尔积。

      • Productbased Neural Network: PNN 引入一个 product layer 来捕获 inter-field category 之间的feature co-actionproduct layer 的输出馈入到后续的 DNN 来执行最终的预测。

      • Deep & Cross Network: DCN 在每一层应用特征交叉。

      尽管和普通 DNN 相比,这些方法取得了显著的性能提升,但是它们仍然存在一些局限性。具体而言,每个 ID embedding 同时承担 representation learningco-action modeling 的责任。representation learningco-action modeling 之间的相互干扰可能会损害性能。因此, combinatorial embedding 的限制没有充分利用feature co-action的能力。

25.1 模型

  1. feature co-action 回顾:这里我们首先简要介绍一下 CTR 预估中的feature co-action,然后我们回顾建模feature co-actionstate-of-the-art 方法。

    在广告系统中,用户 点击广告 的预估点击率 是通过以下方式计算:

    其中:

    • 为用户 的特征集合,包括浏览历史、点击历史、用户画像等等特征。
    • 为广告 的特征集合。
    • embedding 函数,它将稀疏的 ID 特征映射到可学习的、稠密的 embedding 向量。其中 embedding 维度。

    除了这些一元特征,一些工作将特征交互建模为 DNN 的附加输入:

    其中 表示用户特征 和广告特征 之间的特征交互。

    特征交互的融合改善了预测结果,这表明来自不同 group 的特征组合提供了额外的信息。直观的原因是:在 CTR 预估任务中,某些特征组合与 label 的关系,比单独isolated 的特征本身与 label 的关系更强。以用户点击行为为例,由于用户兴趣的存在,用户点击历史与用户可能点击的target item 之间存在很强的关联。因此,用户点击历史和target item 的组合是 CTR 预估的有效共现co-occurrence 特征。我们将这种与label 关系密切的特征交互称作特征协同feature co-action

    仔细回顾以前的 DNN-based 方法,可以发现一些深度神经网络即使不使用组合特征作为输入,也可以捕获特定特征之间的交互。例如,DINDIEN 使用注意力机制来捕获用户行为特征和 item 之间的交互。然而,这些方法的弱点在于它们仅局限于用户兴趣序列的特征交互,并且都是处理特征的 embedding 向量。而低维空间中的 embedding 向量往往会丢失很多原始信息。

    最直接的实现方法是为每个组合特征学习一个 embedding 向量,即笛卡尔积cartesian product 。然而,这也存在一些严重的缺陷:

    • 第一个问题是参数爆炸问题。例如,取值空间大小为 的两个特征做笛卡尔积,那么参数空间从 扩展到 ,这会给在线系统带来很大的负担。

    • 此外,包含相同特征的两个组合之间没有信息共享,这也限制了笛卡尔积的表达能力。

      另外,笛卡尔积的方式也无法泛化到训练期间 unseen 的特征组合。

    一些工作尝试使用特殊的网络结构来建模 feature co-action。然而,大多数这种相互交互的结构,与特征组 feature groupsrepresentation 之间没有任何区别。

  2. 为了不受笛卡尔积和其它先前工作缺陷的情况下利用feature co-action,我们提出了一个 Co-Action Network: CAN 模型来有效地捕获 inter-field 交互。根据以上分析,以往的工作并没有充分挖掘feature co-action的潜力。受笛卡尔积中特征组合独立编码的启发,CAN 引入了一个可插拔pluggable 模块:协同单元 co-action unit

    co-action unit聚焦于扩展参数空间parameter space ,并有效地应用参数来建模feature co-action。具体而言,co-action unit充分利用一侧(例如用户侧)的参数来构建应用于另一侧(例如广告侧)的多层感知机MLP 。这种特征交叉范式给模型带来了更大的灵活性。

    • 一方面,增加参数维度意味着扩展 MLP 参数和层数。
    • 另一方面,和在具有相同特征的不同组合之间不共享信息的笛卡尔积相比,co-action unit提高了参数利用率,因为 MLP 直接使用 feature embedding
    • 此外,为了在模型中融入高阶信息,我们引入了多阶增强multi orders enhancement ,它显式地为co-action unit构建了一个多项式输入。多阶信息促进了模型的非线性,有助于更好的feature co-action

    此外,我们提出了包括 embedding 独立性、组合独立性、阶次独立性的 multi-level independence ,并通过拓宽broadening 参数空间来保证 co-action learning 的独立性。

  3. CAN 的整体架构如下图所示。用户特征和 target item 特征以两种方式输入到 CAN 中。

    • 在第一种方式中,所有的用户特征 target item 特征 都使用 embedding layer 编码为稠密向量,然后分别拼接为

    • 在第二种方式中,来自 的部分特征被选择并映射到co-action unit 从而进行 co-action modelingco-action unit的算子operator 定义为:

      它扮演 MLP 的角色,它的参数来自于 、输入来自于 co-action unit的细节后面详述。

    CAN 的最终架构形式化为:

    其中: 为预估的点击率,co-action unitlookup table 的参数,DNN 的参数。

    ground truth 记作 。我们最终最小化 之间的交叉熵损失函数:

    其中 feature embedding 的参数(用于计算 )。

  4. co-action unitco-action unit 的详细结构如上图左侧部分所示。每个 item 特征通过 MLP table lookup 从而对应一个多层感知机 ,而用户特征被视为这些 MLP 的输入。 输出的feature co-actioncommon feature embeddings 一起用于最终的 CTR 预估。

    注意:上图中 Parameter lookup 独立于 Embedding Layer,这使得 representation learningco-action modeling 是独立的。

    作为 中每一层的 weightbias 作为 的输入从而得到 co-action 输出 ,其中 unique ID 数量, 为向量维度,

    • 事实上 也可以作为 的参数、 也可以作为 的输入。根据经验,在广告系统中,候选 item 是所有 item 中的一小部分,因此其数量小于用户点击历史中的 item 数量。因此,我们选择 作为 的参数。
    • 的维度和 输入的维度相同;而 的维度更高,因为它需要reshapeMLP 的权重矩阵和 bias 向量。

    给定某个 item ID 特征的参数 、给定某个 user ID 特征的参数 。我们首先将一维向量 reshape 中所有层的权重矩阵和 bias 向量,即:

    其中 层的权重和偏置,一共有 层。

    然后 feature co-action计算为:

    其中: 为激活函数, feature co-action

    读者注:本质上是将向量内积这种线性交互形式替换为 MLP 这种非线性交互形式。在 MLP 中,输入为用户侧embedding 、权重为广告侧 embeddingrespahe

    对于像用户点击历史这样的序列特征,co-action unit应用于每个历史点击 item,然后对序列进行 sum 池化;对于用户画像这样的非序列特征,co-action unit 并未进行池化。

    和其它方法相比,我们提出的co-action unit至少有三个优势:

    • 和以往在不同类型的 inter-field 相互作用中使用相同的 latent 向量不同,co-action unit利用 DNN 的计算能力,通过动态参数和输入而不是固定模型来耦合两个分特征component feature ,从而提供更大容量来保证两个 field 特征的更新并且避免耦合梯度。
    • 其次,可学习参数的规模较小。co-action learning 的最终目标是学习每个co-action feature 的良好的representation 向量。但是,直接学习分特征component feature 的笛卡尔积的 embedding 需要学习相当大规模的参数。例如,考虑两个具有 ID 数量的特征。如果我们通过学习笛卡尔积的 embedding 来学习 co-action representation,则参数的规模应该是 ,其中 embedding 维度。但是,通过使用co-action unit,这个规模可以降低到 ,其中 co-action unit的维度。更少的参数不仅有利于学习,还可以有效减轻在线系统的负担。
    • 第三,和之前的其他工作相比,co-action unit对新的特征组合具有更好的泛化能力。给定一个新的特征组合,只要之前训练过两侧的 embeddingco-action unit仍然可以工作。
  5. 读者注:为简化讨论,假设 co-action unit 没有非线性激活函数、也没有 bias 。用户侧的 embedding item 侧有一组 embedding ,因此特征组合得到新的交叉特征为

    如果 co-action unit 层,则 item 侧的 embedding 为:

    得到的交叉特征为:

    因此 item 侧的 embedding 可以视为高阶的( 阶)、multi-head (第 阶的 head 数量为 )的 embedding 。如果muti-head 退化为 single-head、并且不同阶次的 item embedding 共享,则 co-action unit 退化回 Deep Cross Network

    • 一方面, co-action unit 类似于 DIN,它们都是仅考虑和 target item 的交互。但是它们交互的方式(即交互函数)不同。
    • 另一方面,co-action unit 类似于 xDeepFM,它们都是显式建模特征交互,但是 xDeepFM 考虑了更 field 的特征交互。

    因此这篇论文创新点存疑,并且 co-action unit 是否能够捕获feature co-action 也是存疑的。

  6. 多阶加强Multi-order Enhancement:前面提到的feature co-action基本上是基于一阶特征形成的,也可以在高阶上估计特征交互。虽然co-action unit可以利用深层 MLP 隐式地学习高阶特征交互,但是学习过程被认为很漫长。为此,我们在co-action unit中显式引入多阶信息从而获得多项式输入。这是通过将 应用于 的不同阶次来实现的:

    其中 为阶次。

    这里的近似是假设不同阶次之间的权重是共享的。

    注意:当 时,使用 SeLU 作为激活函数;当 时我们使用 tanh 激活函数,从而避免由于高阶项引起的数值问题。

    多阶增强multi-order enhancement 有效地提升了模型对 co-action modeling 的非线性拟合能力,而不会带来额外的计算和存储成本。

  7. level 独立性 Multi-level Independencelearning independenceco-action modeling 的主要关注点之一。为了确保学习的独立性,我们根据重要性从不同方面提出了三个 level 的策略:

    • level 1:参数独立性,这是必须的。如前所述,我们的方法区分了 representation learningco-action modeling 的参数。参数独立性是我们 CAN 的基础。

    • level 2:组合独立性,这是推荐的。随着特征组合数量的增加,feature co-action线性增长。根据经验, target item 特征像 item_id, category_id 被选为权重侧 embedding,而用户特征则用于输入侧embedding。由于权重侧 embedding 可以和多个输入侧embedding 组合,反之亦然,因此我们的方法以指数方式扩大了它们的维度。假设有 个权重侧 embedding 个输入侧 embedding,那么我们将权重侧 embedding 的维度扩大 倍、将输入侧 embedding 的维度扩大 倍:

      其中 的输入维度, 为参数维度。

      在前向传播中,这些 embedding 被分为几个部分来完成 MLP 操作。

    • level 3:阶次独立性,这是可选的。为了进一步提高多阶输入中co-action modeling的灵活性,我们的方法对不同的阶次使用了不同的权重侧 embedding 。权重侧 embedding 的维度也相应增加了 orders 倍。

      注意,此时由于 在不同阶次中不共享参数,因此以下的近似不可行:

    协作独立性co-action independence 有助于co-action modeling,但是同时也带来了额外的内存访问和计算成本。在独立性level 和部署成本之间存在 tradeoff。从经验上来讲,模型使用的独立性level 越高,模型需要的训练数据就越多。在我们的广告系统中,我们使用了 三个 level 的独立性。但是由于缺乏训练样本,我们在公共数据集中仅使用了 embedding 独立性。

25.2 实验

  1. 数据集:我们使用三个公开可访问的数据集进行 CTR 预估任务的实验:

    • Amazon 数据集:包含来自 Amazon 的产品评论和元数据。在 24 个产品类目中,我们选择 Books 子集,其中包含 75053 个用户、358367item1583 个类目。

      由于 Amazon 数据集最初不是 CTR 预估数据集,因此未提供负样本。遵从前人的工作,我们随机选择未被特定用户评论的item 作为该用户的负样本,并创建相应的用户行为序列(点击和未点击)。最大序列长度限制为 100

    • Taobao 数据集:来自淘宝推荐系统中用户行为的集合。数据集包含大约 100 万用户,用户行为包括点击、购买、加购物车、收藏。我们获取每个用户的点击行为,并根据时间戳进行排序从而构建用户行为序列。最大序列长度限制为 200

    • Avazu 数据集:是 Avazu 提供的移动广告数据,包含 11 天的真实工业数据,前 10 天用于训练、第 11 天用于测试。

      对于Amazon 数据集和 Taobao 数据集,我们根据用户行为序列对feature co-action进行建模。相反,对于 Avazu 数据集,我们使用离散特征对feature co-action进行建模,因为 Avazu 数据集包含各种数据字段,适合验证序列/非序列对feature co-action建模的影响。

      在训练期间,第 10 天被视为验证集。

    数据集的统计信息如下表所示。

  2. baseline 方法:在本文中,我们使用 DIEN 作为 CANbase model。请注意,由于co-action unit是可插拔模块,因此允许使用其它任何模型。

    为了验证我们方法的有效性,我们将 CAN 和当前聚焦于特征交互的方法进行了比较。为了公平比较,DIEN 被用作这些方法的 basis

    • DIEN:它设计了一个兴趣抽取层来从用户行为序列中捕获用户兴趣。兴趣演化层进一步用于对兴趣演化过程进行建模。
    • 笛卡尔积Cartesian Product:它是将两个集合相乘从而形成所有有序pair 对的集合。有序pair 对的第一个元素属于第一组集合、第二个元素属于第二组集合。
    • PNN:它使用 product layer 和全连接层来探索高阶特征交互。
    • NCF:它提出了一种神经网络架构来学习useritem 的潜在特征,这些特征用于使用神经网络对协同过滤进行建模。
    • DeepFM:它是一种新的神经网络架构,它结合了FM 和深度学习的能力。
  3. 实现:我们使用 Tensorflow 实现了 CAN

    • 对于 ,我们使用八层的 MLP,权重维度为 4 x 4,这导致 的维度为 (4 x 4 + 4) x 8 = 160 (包括 bias)。
    • 我们使用多阶加强,其中 的阶次为 2
    • 模型从头开始训练,模型参数初始化为高斯分布(均值为 0、标准差为 0.01 )。优化器为 Adambatch size = 128 ,学习率为 0.001
    • 我们使用三层 MLP 来预测最终的 CTR,隐层维度为 200 x 100 x 2

    模型的评估指标为 AUC

  4. 下表给出了 Amazon 数据集和 Taobao 数据集上的实验结果。可以看到:

    • CAN 在两个数据集上都优于其它 state-of-the-art 的方法。

      base 模型 DIEN 相比,CAN 分别将 AUC 提高了 1.7%2.1%。同时 CAN 在很大程度上优于其它 co-action 方法,这证明了我们的方法在co-action modeling上的有效性。

    • 值得注意的是,作为纯粹的 representation learning 方法,笛卡尔积方法和其它组合 embedding 方法(如 PNNNCFDeepFM)相比,可以获得更好的性能。这表明虽然这些组合 embedding 方法可以抽取一些 co-action 特征,但是笛卡尔积确实可以学习具有良好 representationco-actionembedding

      相比之下,CAN 取得了比笛卡尔积和组合 embedding 方法更好的结果,这意味着基于网络机制的 CAN 可以同时学习 representationco-action

  5. 消融研究:为了研究每个组件的影响,我们进行了几项消融研究,如下表所示。

    • 多阶multi order:首先我们评估多阶的影响。在 一阶项的基础上,我们逐渐增加了二阶项、三阶项、四节项。可以看到:

      • 从一阶到二阶,AUC 提升了很多。
      • 之后随着阶次的增加,差距开始缩小甚至造成负向影响。

      多阶对于性能增益的影响很小,因此在实践中我们使用 2 阶或者 3 阶是合适的。

    • MLP 深度:其次,我们展示了 架构对于 co-action modeling 的影响。具体而言,我们分别训练了具有不同 MLP 层数的模型,分别为 1/2/4/8MLP 层的输入和输出维度不变。

      可以看到:

      • 一般而言,更深的 MLP 会带来更高的性能。
      • 但是当层数超过 4 时,没有明显的 AUC 增益,即 8MLP 相比较 4MLP 仅增加了 0.02%AUC。主要原因是训练样本对于如此深的架构来说是不够的。
    • 激活函数:最后,我们比较了不同激活函数的影响。可以看到:

      • 非线性使得 AUC 提高了 0.03% ~ 0.41%
      • 在阶次为 2 的情况下,Tanh 相比 SeLU 表现出更显著的性能,因为 Tanh 起到了 normalizer 的作用,从而避免高阶次的数值稳定性问题。

  6. 模型通用性 universality 和泛化 generalization:为了验证 CAN 的特征通用性和泛化能力,我们从两个方面对 CAN 和其它方法进行比较:验证具有非序列的 co-action 特征,并预测训练期间未见过的 co-action 特征的样本。

    • 通用性:虽然 CAN 主要针对包含大量行为序列的真实工业数据而设计,但是它仍然能够处理非序列输入。Avazu 数据集包含 24 个数据字段,我们从中选择 9 个字段构建 16 种特征组合。实验结果如下表所示。可以看到:CAN 优于大多数方法并且和笛卡尔积相当。

      DNN 作为 basic 模型,没有包含任何序列特征。因此除了 DNN 之外,其它方法都包含了 16 种组合特征。

    • 泛化能力:在真实的商业场景中,每天都会出现无数的特征组合,这就需要 CTR 模型的快速响应。泛化能力对于实际应用非常重要。

      为此,我们从Amazon 测试集中删除了包含现有特征组合的样本。通过这种方式,我们获得了一个新的测试集,其特征组合对于训练好的模型而言是全新的。注意:我们仅要求特征组合为 zero shot,而不是所有特征都是 zero shot

      实验结果如下表所示可以看到:

      • 笛卡尔积在这种场景下是无效的(DIEN+Cartesian 相比于 DIEN 几乎没有提升),因为它依赖于训练好的 co-action embedding ,但是测试集中这种 co-action embedding 不可用。
      • 相反,CAN 仍然运行良好。与其它方法相比,CAN 显示出对新特征组合的出色泛化能力。

      在真实的工业环境中,特征组合非常稀疏,只要 训练好,使用 CAN 处理新的特征组合就容易的多。

  7. 工业数据集上的结果:

    • 在线 Serving 和挑战:一开始我们在我们的系统上部署了笛卡尔积模型,这造成了很多麻烦。

      • 一方面,即使使用 ID 低频过滤,模型大小也以极大的速度扩大。
      • 另一方面,额外的 ID 也带来了无法接受的 embedding look up 操作的数量以及系统响应延迟。

      相比之下,CAN 在这方面要有好的多。为了在我们的广告系统上部署 CAN,我们选择了 21 个特征,包括 6 个广告特征、15 个用户特征来生成特征组合,以便由于co-action 独立性而分配了额外的 21embedding 空间。

      显著增加的 embedding 空间仍然导致在线serving 的巨大压力。由于用户特征大多数为长度超过 100 的行为序列,因此需要额外的内存访问,导致响应延迟上升。此外,feature co-action 的计算成本根据特征组合的数量线性增加,这也给我们的系统带来了相当大的响应延迟。

    • 解决方案:为了解决这些问题,我们付出了很多努力来减少响应延迟。我们从三个方面简化模型:

      • 序列截断:16 个用户特征的长度从 50500 不等。为了降低内存访问成本,我们简单地对我们的用户特征应用序列截断。例如,长度为 200 的所有用户行为序列都截断到 50 。最近的用户行为被保留。

        序列截断将 Query Per Second: QPS 提高 20%,但是导致 AUC 降低 0.1%,这是可以接受的。

      • 组合缩减:6 个广告特征和 15 个用户特征最多可以获得 90 个特征组合,这是一个沉重的负担。经验上,同一类型的广告特征和用户特征的组合可以更好地对特征共现co-occurrence 进行建模。根据这个原则,我们保留 item_iditem_click_historycategory_idcategory_click_history 等组合,并删除一些不相关的组合。这样,组合的数量从 90 减少到 48 个, QPS 提高了 30%

      • 计算 kernel 优化:co-action 计算涉及到 之间的一个耗时的大矩阵乘法,它们的形状分别为 [batch_size, K, dim_in, dim_out][batch_size, K, seq_len, dim_in]。其中 K, seq_len, dim_in, dim_out 分别指的是 co-action 特征数量、用户行为序列长度、MLP 输入维度、MLP 输出维度。

        在我们的场景中,dim_indim_out 不是常用的形状,因此这种矩阵没有被 Basic Linear Algebra Subprograms:BLAS 很好地优化。为了解决这个问题,我们重写了内部计算逻辑,带来了 60%QPS 提升。

        此外,由于该矩阵乘法之后是 seq_len 维度上的sum 池化,我们进一步在矩阵乘法和sum 池化之间进行了 kernel fusion 。通过这种方式,避免了矩阵乘法输出的中间结果写入 GPU 内存,这又带来了 47%QPS 提升。

      通过这一系列的优化,使得 CAN 能够在主流量main traffic 中稳定地在线 serving 。在我们的系统中,每个 GPU 可以处理将近 1K QPS。下表给出了我们的在线 A/B testCANCTRRPM:Revenue Per Mille 的提升。