十六、DeepMCP

  1. click-through rate: CTR 预估是用于预测用户点击某个item 的可能性,它在在线广告系统中起着重要的作用。例如,广告 ranking 策略通常取决于 CTR x bid,其中 bid 为广告的点击出价。此外,根据常见的cost-per-click 扣费模式,仅在用户点击广告后系统才对广告主进行收费。因此,为了收入最大化并且保持理想的用户体验,准确估计广告的 CTR 至关重要。

    现有的大多数方法主要是对特征和 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 关系。可以将其视为 two_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 在统计上更加可靠。

    在两个大型数据集上进行的实验表明:DeepMCP 的效果优于几种 state-of-the-artCTR 预估模型。

16.1 模型

  1. DeepMCP 包含三个部分:一个 matching subnet、一个 correlation subnet、一个 prediction subnet ,如下图 (a) 所示。当这些 subnet 在目标label 的监督下联合优化时,学到的特征representation既具有良好的预测能力、又具有良好的表达能力。

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

  2. 我们将特征分为四组:

    • 用户特征:如用户 ID、年龄等。
    • query 特征:如 queryquery category 等。(读者注:对于淘宝而言就是淘宝搜索框中的 query
    • 广告特征:如广告素材ID、广告标题等。
    • 其它特征:如hour of dayday of week

    每个 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 等。

  2. 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

  3. 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 粒度,即如果广告 对用户 曝光多次且仅发生一次点击:

    • 对于 prediction subnet 这将生成多个样本,每个样本对应一次曝光。只有发生点击的那个曝光对应的样本label = 1,其它曝光对应的样本 label=1

      另外,每个样本还有曝光的上下文特征,如曝光发生的hour of dayday of week

    • 对于 matching subnet 这将生成一个样本,样本的label=1 (如果所有这些曝光都未发生点击,则样本 label=0 )。

      另外,matching subnet 的样本不包含曝光上下文特征。

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 算法进行优化。
    • 评估指标:测试 AUC (越大越好)、测试 logloss (越小越好)。
  4. 实验结果如下表所示,可以看到:

    • 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 的有效性。

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

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

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

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

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

    可以看到:

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

十七、MIMN

  1. CTR 预估对于推荐系统和在线广告等工业应用至关重要。在深度学习的推动下,人们已经提出了体系结构精心设计的、用于建模用户兴趣的深度 CTR 模型,从而实现了 state-of-the-art 效果。这些模型可以分为两类:

    • 基于池化的体系结构:它将用户的历史行为视为独立的信号,并应用sum/max/attention 等池化操作来summarize 用户的兴趣representation
    • 基于序列的体系结构:它将用户的历史行为视为序列信号,并应用 LSTM/GRU 操作来summarize 用户的兴趣representation

    但是在工业应用中,需要大量的精力将这些复杂的模型部署到在线 serving 系统中以进行实时推断,其中每天都有数以亿计的用户访问该系统。当遇到非常长的用户行为序列数据时,问题变得更加困难:因为所有上述模型都需要在 online serving 系统中存储完整的用户行为序列(也称作特征),并在极短的延迟时间内获取它们以计算兴趣representation

    这里,"长" 表示用户行为序列的长度高达1000 甚至更多。实际上,系统延迟和存储成本随着用户行为序列的长度大致成线性关系。

    DIEN 做了大量的工程工作来部署序列模型,但是它也就最大能处理长度为 50 的用户行为序列。下图给出了在阿里巴巴线展示广告系统online display advertising system 中,用户行为序列的平均长度以及对应的 CTR 模型的性能。显然,有必要解决长的用户行为序列建模的挑战。

    在论文 《Practice on Long Sequential User Behavior Modeling for Click-Through Rate Prediction》 中,论文共同设计co-design了机器学习算法和在线serving 系统来用于 CTR 预估任务,并介绍了工程实践。

    论文将用户行为建模和完整的 CTR 预估系统解耦,并相应地设计了特定的解决方案:

    • serving 系统的角度:论文设计一个叫做 UIC: User Interest Center 用户兴趣中心的独立模块,将用户兴趣建模中最耗资源的部分和整个模型解耦。

      UIC 聚焦于在线serving 的用户行为建模问题,它维护每个用户的最新兴趣representation

      UIC 的关键是它的更新机制。用户粒度的状态更新仅取决于实时的用户行为触发事件realtime user behavior trigger event ,而不依赖于流量请求。也就是说,UIC 对于实时 CTR 预估没有延迟时间latency free

    • 机器学习算法的角度:解耦UIC 模块无法解决存储问题,因为对于数以亿计的用户、且每个用户可能长达上千的用户行为序列的存储和推断仍然很困难。

      这里作者借鉴了 NTM 的记忆网络 memory network 的思想,并提出了一种叫做 MIMN: (Multi-channel user Interest Memory Network 多通道用户兴趣记忆网络的新颖架构。MIMN 以增量的方式工作,可以很容易地使用 UIC 模块实现,这有助于解决存储挑战。

      此外,MIMN 通过 memory utilization regularizationmemory induction unit 这两种设计改善了传统的 NTM ,使其在有限的存储空间下更有效地建模了用户行为序列,并大大提升了模型性能。

    从理论上讲,UICMIMN 的共同设计方案co-design solution 使得我们能够处理无限长度的用户行为序列数据的用户兴趣建模。实验表明:论文提出的方法在模型性能和系统效率上均具有优势。据作者所知,这是能够处理长达数千的用户行为序列数据的、最早的工业解决方案之一。目前该方案已经部署在阿里巴巴的 display advertising 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 。这些特征将被提取到预测服务器 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 压缩到固定长度的张量中来提升模型的表达能力。

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

    实际上,RNN 中的隐状态hidden state 并非旨在存储 source 序列过去past 的全部信息,而是更多地关注预测目标 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 模型驱动的,并且包含两个重要的记忆网络架构:

    • 基本的 NTM 记忆单元,它具有标准的记忆读取 memory read 和记忆写入操作 memory write
    • 多通道 GRU 的记忆归纳单元memory induction unit,它用于基于先前学习的 NTM 记忆来捕获高阶信息。

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

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

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

  4. 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 为向量的外积。
      • add matrix
      • 为逐元素乘积。(注:原文说的是 dot product )。
  5. 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 利用达到平衡。

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

    其中:

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

    • 为权重转移矩阵,它取决于:

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

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

        其中: slot 数量。注意:上式中没有下标

        有助于降低不同 memory slot 上更新权重的方差。

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

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

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

    在时刻 MIU

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

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

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

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

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

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

  7. 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

  8. 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:是用户行为建模的早期工作,提出针对 candidate 来对用户行为进行软搜索soft-search

    • GRURec:基于 RNN 的方法,并且是使用循环单元ecurrent 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

  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 来推动更大的内积从而代表更高的相关性,并帮助更好地拟合 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 中,可以以统一的方式将相关性强度进行比较。

    作者在公开数据集和工业数据集上进行了广泛的实验,DMR 模型明显优于 state-of-the-art 模型,这证明了我们模型的有效性。

  2. 与搜索系统不同,在推荐系统和其它很多应用程序中,用户没有显式地表明其意图。因此,从用户行为中捕获用户兴趣对于 CTR 预估至关重要。

    而大多数现有的模型很少关注到这些,它们通常采用简单的均值池化从而将可变长度的用户行为特征转换为固定长度的向量,这意味着所有行为同等重要。

  3. 受到 Transformer 的启发,在 DMR 模型中作者将位置编码引入注意力机制,从而捕获用户的时间的兴趣temporal interest

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 兴趣的 representation 、以及其它所有特征向量拼接起来,然后馈入到 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 的公式为:

    其中:

    • 表示非线性的映射,其输入维度为 、输出维度为
    • 表示第 个行为的加权特征向量。
  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 特征 被转换为固定长度的特征向量 ,从而构成了与目标相关的时间兴趣表示:

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

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

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

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 相关性、如果没有使用位置encoding,那么我们的 DMR 退化为 DIN 模型。

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

  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 表现更差,这意味着没有位置编码的 User-to-Item Network 很难拟合。

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

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

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