一、SDIM [2022]

《Sampling Is All You Need on Modeling Long-Term User Behaviors for CTR Prediction》

  1. 丰富的user behavior数据已被证明对 CTR prediction 应用程序具有重要价值,尤其是在工业推荐、搜索或广告系统中。然而,由于对 online serving time 的严格要求,真实世界的系统要充分利用长期用户行为并不容易。大多数先前的工作采用 retrieval-based 的策略,即首先检索少量用户行为以供后续使用。然而,retrieval-based 的方法是次优的,会造成信息丢失,并且很难平衡检索算法的效果和效率(effectiveness and efficiency )。

    在本文中,我们提出了 Sampling-based Deep Interest Modeling: SDIM,一种简单而有效的 sampling-based 的端到端方法,用于建模长期用户行为。我们从多个哈希函数中采样以生成 target item 的hash signatures、以及用户行为序列中每个behavior item 的hash signatures,并通过直接收集 behavior items 来获取用户兴趣,这些 behavior items 与 target item 具有相同的hash signatures。

    behavior item 就是用户的历史行为序列中的 feature item 。

    我们从理论上和实验上表明,所提出的方法在建模长期用户行为方面与标准的 attention-based 的模型性能相当,同时速度快得多。我们还介绍了 SDIM 在我们系统中的部署。具体来说,我们通过设计一个名为 Behavior Sequence Encoding: BSE 的独立模块,将最耗时的部分behavior(即,behavior sequence hashing )从 CTR 模型中分离出来。BSE 对于 CTR server 来说是无延迟的,使我们能够建模极长的用户行为序列。离线和在线实验证明了 SDIM 的有效性。SDIM 现在已经在线部署在美团 APP 的搜索系统中。

  2. CTR prediction 是工业应用系统中的一项基本任务。用户兴趣建模(user interest modeling )旨在从历史行为数据中学习用户的隐含兴趣,已被广泛引入现实世界系统,并有助于显著改善 ctr prediction 。

    人们提出了各种模型来建模用户兴趣。其中,DIN 通过考虑给定的 target item 与历史行为的相关性来自适应地计算用户兴趣。DIN 引入了一种新的注意力模块,称为 target attention ,其中 target item 充当query Q ,历史user behavior充当 key K 和 value V 。由于其优越的性能,DIN-based 的方法近年来已成为建模用户兴趣的主流解决方案。然而,online serving time 的严格要求限制了可以使用的用户行为序列的长度。因此,大多数工业系统截断了用户行为序列,只提供最近的 50 个行为用于用户兴趣建模,这导致了信息损失。

    随着互联网的快速发展,用户在电商平台上积累了越来越多的behavior数据。以淘宝为例,他们报告23% 的用户半年内在淘宝 APP 中的行为超过 1000 次。在美团 APP 中,有超过 60% 的用户一年内至少有 1000 次行为,有超过 10% 的用户一年内至少有 5000 次行为。对于工业系统来说,如何有效地利用更多的user behavior来更准确地估计用户兴趣变得越来越重要。

    最近,有人提出了一些方法来从长行为序列中建模用户的长期兴趣:

    • MIMN 通过设计一个独立的 User Interest Center: UIC 模块,将 user interest modeling 从整个模型中分离出来。虽然 UIC 可以节省大量的 online serving time ,但它使得 CTR 模型无法从 target item 中挖掘信息,而这已被证明是用户兴趣建模的关键。因此,MIMN 只能建模 shallow user interests 。

    • SIM 和 UBR4CTR 采用两阶段框架来处理长期用户行为。他们从序列中检索 top-k 相似的 items ,然后将这些 items 馈入后续的注意力模块。如 《 End-to-End User Behavior Retrieval in Click-Through RatePrediction Model》 所指出的,这些方法的 retrieve objectives 与 CTR 模型的目标不一致,并且离线倒排索引(offline inverted index )中的 pre-trained embedding 不适合 online learning systems 。

    • 为了提高检索算法的质量,ETA (《 End-to-End User Behavior Retrieval in Click-Through RatePrediction Model》 )提出了一种 LSH-based 的方法,以端到端的方式从user behavior中检索 top-k 相似的 items 。它们使用 locality-sensitive hash: LSH 将 items 转换成hash signatures(hash signatures),然后根据它们到 target item 的汉明距离检索 top-k 相似的 items 。LSH 的使用大大降低了计算 items 之间相似度的代价,ETA 取得了比 SIM 和 UBR4CTR 更好的结果。

    SIM、UBR4CTR 和 ETA 都是 retrieval-based 的方法。retrieval-based 的方法具有以下缺点:

    • 从整个序列中检索 top-k 相似的 items 是次优的,并且会产生对用户长期兴趣的有偏的估计。在用户具有丰富behavior的情况下,检索到的 top-k items 可能都与 target item 相似,并且 estimated user interest representation 将是不准确的。

      其核心在与:对于行为丰富的用户,应该取较大的 k 从而捕获所有的informative 行为;对于行为很少的用户,应该采用较小的 k 从而过滤掉噪音。但是实际应用中,k 是全局统一的。

    • 此外,很难平衡检索算法的有效性和效率。以 SIM (hard) 为例,他们使用简单的检索算法,因此其性能比其他方法差。相比之下,UBR4CTR 在复杂的检索模块的帮助下实现了显著的改进,但其推理速度变得慢了 4 倍,这使得 UBR4CTR 无法在线部署,尤其是对于 long-term user behaviors modeling 。

    在本文中,我们提出了一个简单的 hash sampling-based 的方法来建模长期用户行为。

    • 首先,我们从多个哈希函数中采样,生成 target item 的hash signatures、以及用户行为序列中每个 item 的hash signatures。

    • 然后,我们没有使用某种 metric 来检索 top-k 相似的 items ,而是直接从整个序列中收集与 target item 共享相同hash signatures的 behavior items 来形成用户兴趣。

    我们方法的内在思想是:用 LSH 碰撞概率来近似用户兴趣的 softmax distribution 。我们从理论上表明,这种简单的 sampling-based 的方法产生了与 softmax-based target attention 非常相似的注意力模式,并实现了一致的模型性能,同时时间效率更高。因此,我们的方法类似于直接在原始的长序列上计算注意力,而没有信息损失。我们将提出的方法命名为 Sampling-based Deep Interest Modeling: SDIM。

    传统的 softmax-based target attention :首先计算 attention score,然后将历史行为序列根据 attention score 聚合起来。聚合的权重就是 attention score distribution 。

    这里的方法是:首先用 LSH 去碰撞,然后将历史行为序列根据是否碰撞从而聚合起来。,权重是 0/1 ,表示是否与 target item 的哈希值相同,即是否碰撞。因此这里的方法会考虑到与 target item 相似的所有 item,并且不需要 target attention 计算。

    我们还介绍了在线部署 SDIM 的实践。具体来说,我们将我们的框架分解成两个部分:Behavior Sequence Hashing(BSE) server 、CTR server ,其中这两个部分是分开部署的。行为序列哈希(behavior sequence hashing )是整个算法中最耗时的部分,该部分的解耦大大减少了serving time 。更多细节将在后续章节介绍。

    我们在公共数据集和工业数据集上进行实验。实验结果表明:SDIM 获得了与标准的 attention-based 的方法一致的结果,并且在建模长期用户行为方面优于所有竞争 baselines ,并且具有相当大的加速。SDIM 已经在中国最大的生活服务电商平台美团的搜索系统中部署,并带来了 2.98% 的 CTR 提升和 2.69% 的 VBR 提升,这对我们的业务非常重要。

    综上所述,本文的主要贡献总结如下:

    • 我们提出了 SDIM ,这是一个 hash sampling-based 的框架,用于为 CTR prediction 建模长期用户行为。我们证明了这种简单的 sampling-based 的策略产生了与 target attention 非常相似的注意力模式。

    • 我们详细介绍了我们在线部署 SDIM 的实践。我们相信这项工作将有助于推进 community,特别是在建模长期用户行为方面。

    • 在公共数据集和行业数据集上进行了大量实验,结果证明了 SDIM 在效率和效果方面的优越性。SDIM 已经部署在美团的搜索系统中,为业务做出了重大贡献。

    本质上是通过 LSH 实现了 target attention 。

1.1 基础知识

1.1.1 Task Formulation

  1. CTR prediction 是工业界的推荐、搜索和广告系统中的核心任务。CTR 任务的目标是估计用户点击 item 的概率,定义如下:

    prob1=P(yi=1∣x→i;θ)

    其中:θ 代表 CTR 模型中的可训练参数;x→i 为输入特征;yi 表示 label 。

    给定输入特征 x→i,我们通过最小化交叉熵损失来训练 CTR 模型:

    L=−1N∑i=1N[yilog⁡(probi)+(1−yi)log⁡(1−probi)]

1.1.2 Target Attention

  1. target attention 的概念最早由 DIN 提出,并广泛应用于CTR 任务中的用户兴趣建模。target attention 将 target item 作为 query ,将用户行为序列中的每个 item 作为 key 和 value,并使用 attention 算子从用户行为序列中 soft-search 相关的部分。然后通过对用户行为序列进行加权和来获得用户兴趣。

    具体而言,将 target item 指定为 Q∈RB×d ,将用户序列 representations 指定为 S∈RB×L×d,其中:

    • B :对于每个 request , CTR 模型要评分的 target items 数量。

    • L :是用户行为序列的长度。

    • d :模型的 hidden size 。

    令 q→i 为第 i 个 target item 的 representation 。target attention 计算 q→i 与行为序列 S 中每个 item 的点积相似度,然后以归一化相似度作为权重,得到用户兴趣的 representation :

    TA(q→i,S)=∑j=1L(exp⁡(q→i⊤s→j/t)∑j′=1Lexp⁡(q→i⊤s→j′/t)×s→j)

    矩阵形式可以写成:

    TA(Q,S)=softmax(Q⊤St)S

    其中:t 为缩放因子 ,用于避免内积值过大。

  2. 计算 TA(Q,S) 的复杂度为 O(BLd) 。在大型工业系统中,B 约为 103,d 约为 102,对于在线系统,在长期用户行为建模中部署 target attention 是不可行的。

1.1.3 Locality-Sensitive Hash (LSH) and SimHash

  1. 局部敏感哈希(Locality-sensitive hash: LSH)是一种在高维空间中高效查找最近邻居的算法技术。LSH 满足局部保持性(locality-preserving property ):邻近的向量很可能获得相同的哈希值,而远处的向量则不会。得益于此特性,LSH-based 的signature已广泛应用于互联网搜索系统等许多应用中。随机投影方案 (SimHash)是 LSH 的一种有效实现。SimHash 的基本思想是:采样一个随机投影(由单位法向量 r→ 定义)作为哈希函数,将输入向量哈希到两个轴(+1 或 -1 )。具体而言,给定一个输入 x→ 和一个哈希函数 r→,相应的哈希值计算如下:

    h(x→,r→)=sign(r→⊤x→)

    其中:r→∈Rd,其中的元素 ri∈N(0,1) ,1≤i≤d 。h(x→,r→)=±1 取决于 hashed output 位于哪一侧。

    对于两个向量 x→1 和 x→2 ,只有当 x→1 和 x→2具有相同的 hash code 的取值时,我们才说它们发生冲突:

    p(r→)=Ih(x→1,r→)=h(x→2,r→)
  2. 虽然单个哈希值可以用于估计相似度,但是我们可以使用多个哈希值,从而降低估计误差。在实践中,通常采用 (m,τ) 参数化的 SimHash (即,多轮哈希)算法,其中 m 是哈希函数的数量、τ 是宽度参数。

    • 在第一步中,SimHash 随机采样 m 个哈希函数并为每个输入生成 m 个哈希码:

      h(x→,R)=sign(Rx→)

      其中:R∈Rm×d 为 m 个哈希函数;h(x→,R)∈Rm 为 m 个哈希码。

      这些哈希码被分为 m/τ 组,每组 τ 个哈希码。

    • 为了降低不相似的 items 具有相同哈希码的概率,该算法将每组 τ 个哈希码的结果合并以形成新的hash signatures。有关更多详细信息,请参阅 《Mining of Massive Datasets》。

      对于第 g 组,Rg 为 r→1+(g−1)τ,⋯,r→gτ 组成的投影矩阵。对于第 g 组,只有当 x→1和 x→2的所有 hash signatures相同时, x→1 才会与x→2发生冲突:

      p~(Rg)=p(r→1+(g−1)τ)&p(r→2+(g−1)τ)&⋯&p(r→gτ)=&k=1+(g−1)τgτp(r→k)

      其中:& 表示逻辑 “AND” 运算符,r→k 是第 k 个哈希函数。

    • 最后,每个 hash signature 对应的分组可以被看作是一次 LSH,从而用于期望的计算,从而降低 estimation 的方差。

      注意:读者对这一段文字进行了重新润色。原始论文讲的不太清楚。

    Figure 1 底部显示了 (4, 2) 参数化的 SimHash 算法的示例,其中我们使用 4 个哈希函数并将每 2 个哈希码聚合为hash signatures(黄色和绿色)。

    m=4,τ=2 。

1.2 方法

  1. 在本节中,我们介绍了我们的框架从而在系统中实现 SDIM 。Figure 1 中可以看到high-level 的概述。该框架由两个独立的 servers 组成:Behavior Sequence Encoding (BSE) server 和 CTR server,稍后将详细介绍。

1.2.1 User Behavior Modeling via Hash-Based Sampling

  1. Hash Sampling-Based Attention:第一步,我们采样多个哈希函数并生成 user behavior items 和 target items 的哈希码。与 ETA 类似,我们使用从正态分布中采样的固定的 random hash vectors 作为“哈希函数”。经过哈希处理后,ETA 计算 items 之间的汉明距离(Hamming distance )作为用户兴趣分布(user interest distribution )的近似值,从而用于选择 top-k 相似的items 。这里我们提出了一种更高效、更有效的方法来近似用户兴趣。 由于具有局部保留的属性(locality-preserving property ),相似的向量落入同一个哈希桶的概率很高,因此 user behavior items 和 target item 之间的相似性可以通过它们具有相同哈希码(signature)的频率或碰撞概率来近似。这导致我们假设哈希碰撞的概率可以成为用户兴趣的有效估计器。 基于这一观察,我们提出了一种使用 LSH 来获取用户兴趣的新方法。经过哈希处理后,我们通过将具有相同的 behavior items s→j 相加来直接形成用户兴趣,其中这些 behavior items 都关联了同一个 target item q→ 。在单个哈希函数 r→ 中,所提出的估计用户兴趣的方法可以通过以下方式计算:

    l2(P(r→)S)=l2(∑j=1Lpj(r→)s→j)

    其中:

    • S∈RL×d 是用户行为序列,s→j∈Rd 是序列中的第 j 个 item 。

    • pj(r→)∈{0,1} 指定 s→j 是否有助于用户兴趣。具体来说,在哈希函数 r→ 下,如果 s→j 与的 target item q→ 共享相同的hash signatures,则 pj(r→)=1 ;否则 pj(r→)=0 :

      pj(r→)=Ih(q→,r→)=h(s→j,r→)

      P(r→)∈R1×L 由 target item q→ 与每个 s→j 的碰撞率组成。

    • l2(⋅) 表示 l2 正则化,用于对兴趣分布进行正则化。

      我们还尝试使用 ∑j=1Lpj(r→) 对分布进行归一化,得到的模型与 l2 正则化模型的性能相当。但是, l2 正则化的实现效率更高,因此我们使用 l2 正则化。

  2. Multi-Round Hashing:总是有一个小概率使得不相似的 behavior items 与 target item 共享相同哈希码,从而给模型带来噪音。为了降低这种可能性,我们使用前面描述的多轮哈希算法。 具体来说,我们使用 (m,τ) 参数化的 SimHash 算法。我们并行采样并执行 m 次哈希,然后分成 m/τ 组,每组 τ 个哈希码。对于每个分组,我们合并这 τ 个哈希码的结果以形成新的hash signatures。只有当 s→j 和 q→ 具有相同的 hash signature 时,我们才认为它们发生碰撞:

    p~j(Rg)=&k=1τpj(r→g,k),pj(r→g,k)=Ih(q→,r→g,k)=h(s→j,r→g,k)

    其中:p~j(Rg) 为第 g 组的碰撞概率,1≤g≤m/τ;g→g,k 为第 g 个分组的第 k 个哈希函数。

    m/τ 组hash signatures的输出被平均,从而作为对用户兴趣的低方差的估计。它可以表示为:

    Atten(q→,S)=1m/τ∑g=1m/τl2(P~(Rg)S)=1m/τ∑g=1m/τl2(∑j=1Lp~j(Rg)s→j)

1.2.2 Analysis of Attention Patterns

  1. Hash Sampling-Based Attention 的期望:在我们的方法中,随着 s→j 与 q→ 的相似度越来越高,它们的碰撞概率越来越大,系数 p~j 的期望也越来越高。可以证明 p~j 的期望是 s→j 与 q→ 在单位圆上的夹角(《Similarity estimation techniques from rounding algorithms》):

    E[p~j]=(1−arccos⁡(q→⊤s→j)π)τ

    注意:在计算用户兴趣之前,我们对 q→ 和 s→j 进行归一化。

    因此,SDIM 产生的 user interest representation 的期望为:

    E[Atten(q→,S)]=E[l2(∑j=1Lp~j(Rg)s→j)]=∑j=1L(1−arccos⁡(q→⊤s→j)π)τ∑j′=1L(1−arccos⁡(q→⊤s→j′)π)τs→j

    注意:原始论文的公式有问题,漏掉了 ∑j=1L 。此外,这里用的是 sum 归一化而不是 l2 正则化。

    随着分组数量 m/τ 的增加,p~j 收敛到 E[p~j] ,Atten(q→,S) 收敛到 E[Atten(q→,S)]。实证结果表明,当 m/τ≥16 时,estimation error 会非常小。在实践中,我们对在线模型使用 m=48 和 τ=3。 我们在 Figure2 中绘制了 SDIM 产生的注意力权重 (1−arccos⁡(q→⊤s→j)π)3 。为了进行比较,我们还在同一图中绘制了 target attention 产生的注意力权重 exp⁡(q→⊤s→j/0.5)。从 Figure2 中我们可以看出,SDIM 的注意力权重与 target attention 中的 softmax 函数很好地吻合,因此,从理论上讲,我们的方法可以获得非常接近 target attention 的输出。我们将提出的方法命名为 SDIM ,即 Sampling-based Deep Interest Modeling 。

  2. τ 的性质及其与其他方法的关系:在本小节中,我们描述了 SDIM 中的宽度参数 τ 在控制模型对更相似的 items 提供更多注意力方面所起的作用。 记 wj 表示为 target item q→ 对 item s→j 的注意力权重,即:

    wj=(1−arccos⁡(q→⊤s→j)π)τ∑j=1L(1−arccos⁡(q→⊤s→j)π)τ

    随着 τ 的增加,注意力分布的熵 H(wj) 严格下降,并且 w→ 的分布在相似性较大的区域变得更尖锐,这鼓励模型更多地关注更多相似的items 。 让我们考虑两种极端情况:

    • 当 τ→+∞ (可以通过分配一个大值来近似)时,算法仅关注与 target item 完全相同的 items 。如果我们使用 category 属性进行哈希处理,则算法的behavior类似于 SIM(hard) 。因此,我们的算法可以看作是 SIM(hard) 的扩展,它也会考虑 category ID 不同但非常相似的 behavior items 。

    • 当 τ=0 或 m=1 时,该算法退化为均值池化,因为 target item 和用 user behavior items 将始终具有相同的hash signatures。

    因此,SDIM 非常灵活,可以通过分配不同的 τ 值来建模不同的注意力模式。

1.2.3 Implementation and Complexity Analysis

  1. 在本小节中,我们将详细说明 SDIM 比标准的 attention-based 的方法快很多倍。

  2. 让我们回顾一下 target attention 中计算用户兴趣的公式,即,TA(Q,S)=softmax(Q⊤St)S 。该算法首先通过将 target vector 与行为序列相乘来获得注意力权重,然后使用注意力权重对行为序列进行加权和。因此,在 target attention 中获取用户兴趣的 representation 需要两次矩阵乘法,该算法的时间复杂度为 O(BLd)。

  3. SDIM 将用户兴趣的计算分解为两部分:behavior sequence hashing 、target vector hashing 。注意,用户行为序列是用户的固有特征,与 target item 无关,这意味着无论 target item 是什么,用户的 behavior sequence hashing 的结果都是固定的。因此,对于每个用户,我们只需要在每个 request 中计算一次用户行为序列的 hash transform 。因此,SDIM 将时间复杂度从 B 降低到 1 ,比标准的 target attention 快了相当多倍。

    经过哈希之后,与 target item 共享相同 hash signature 的sequence items 被选中,并被相加从而形成用户兴趣。在 Tensorflow 中,此步骤可以通过 tf.batch_gather 算子实现,该算子是 Tensorflow 的原子算子(atomic operator ),时间成本可以忽略不计。

    SDIM 最耗时的部分是行为序列的多轮哈希(multi-round hashing),即将 d 维矩阵转换为 m 维哈希码。此操作的时间复杂度为 O(Lmd),可以使用近似随机投影(Approximating Random Projection )算法降低到 O(Lmlog⁡(d))。由于 m≪B 和 log⁡(d)≪d,所以 SDIM 比标准的 attention-based 方法快得多。在我们的场景中,SDIM 在训练 user behavior modeling 部分时实现了 10 到 20 倍的速度提升。

1.2.4 Deployment of the Whole System

  1. 本节将介绍如何成功在线部署 SDIM 。如前所述,整个算法分为两部分:behavior sequence hashing 、target vector hashing 。behavior sequence hashing 与 target item 无关,这促使我们构建一个专门的 server 来维护 user-wise behavioral sequence hashes 。

  2. 我们将系统分为两部分:Behavior Sequence Encoding (BSE) server 和 CTR Server ,如 Figure 1所示。

    • BSE Server 负责维护 user-wise behavior sequence hashes。当收到user behavior的 list 时,BSE server 从多个哈希函数中采样,并为行为序列中的每个 item 生成 hash signatures。然后根据 item signatures 将它们分配到不同的 buckets 中,每个 buckets 对应一个 hash signature ,如 Figure 1 所示。hash buckets 被传递给 CTR Server ,从而建模 target item-aware 的用户兴趣。

    • CTR Server 负责预测 target items 的点击率。当收到 B 个 target items (batch size = B )时,CTR Server 会将每个 target item 进行哈希得到 signatures ,并从相应的 buckets 中收集 item representations 。用户兴趣特征与其他特征拼接起来,然后被馈入到复杂的 CTR 模型中,以获得每个 target item 的预测概率。我们的 CTR 模型的整体结构如 Figure 3 所示。该模型以 target item 特征、上下文特征、短期用户兴趣特征、以及长期用户兴趣特征作为输入,并使用 multilayer perceptron 来预测 target items 的点概率。

      根据论文实验章节的描述,长期用户行为序列包含了短期用户行为序列,二者不是正交的。

    请注意,SDIM 不需要改变 CTR 模型的结构,它可以自然地插入现有的主流 CTR 架构中。所提出的框架在训练阶段是端到端的:user interest modeling 与 CTR 模型的其余部分联合训练,我们只在 online serving 阶段单独部署它们。 将 BSE Server 和 CTR Server 解耦后,BSE 的计算对于 CTR Server 来说是无延迟的。在实际应用中,我们将 BSE Server 放在CTR Server 之前,并与 retrieval 模块并行计算。

    分开部署后,计算用户长期兴趣的时间成本只在于 target items 的哈希,其时间复杂度为 O(Bmlog⁡(d)),并且与序列长度 L 无关,这意味着我们的框架理论上可以处理具有极长behavior的用户兴趣建模。从 CTR Server 的角度来看,这个时间复杂度就像增加了一个 common feature 一样。在 Table 1 中,我们比较了不同方法的时间复杂度。

  3. 我们的 serving 系统与 MIMN 有些相似。最大的区别在于我们的系统可以建模用户的 deep interests ,而 MIMN 只能建模 shallow interests 。

  4. 关于 Servers 传输成本的注释:对于每个 request ,我们都需要将 bucket representations 从 BSE Server 传输到 CTR Server 。请注意,我们使用固定数量的哈希函数,因此无论用户的behavior有多长,我们只需要将 bucket representations 的固定长度的向量传输到 CTR Server 。在我们的在线系统中,此向量的大小为 8KB ,传输成本约为 1ms 。

1.3 实验

  1. 为了验证 SDIM 的有效性,我们在公共数据集和真实工业数据集上进行了实验。对于公共数据集,我们遵循以前的工作选择 Taobao 数据集。对于工业数据集,我们使用从美团搜索系统收集的真实数据进行实验。

    • Taobao 数据集:淘宝数据集由 《Learning Tree-based Deep Model for Recommender Systems》 发布,在先前的工作(《Search-based User Interest Modeling with Lifelong Sequential Behavior Data for Click-Through Rate Prediction》、《User Behavior Retrieval for Click-Through Rate Prediction》)中被广泛用于离线实验。此数据集中的每个实例由五个 field 的特征组成:user ID, item ID, category ID, behavior type, and timestamp。遵循 《User Behavior Retrieval for Click-Through Rate Prediction》,我们根据时间戳额外引入了 “is_weekend” 特征以丰富上下文特征。

      我们以与 MIMN 和 ETA 相同的方式对数据进行预处理。具体来说,我们使用首次的 (L−1) 个behavior作为输入来预测第 L 个behavior。我们根据 timestep 将样本分为训练集(80%)、验证集(10%)和测试集(10% )。选择最近的 16 个behavior作为短期序列,选择最近的 256 个behavior作为长期序列。

    • 工业数据集:该数据集来自中国最大的生活服务电商平台美团 APP 的平台搜索系统。我们选取连续 14 天的样本进行训练,选取接下来两天的样本进行评估和测试,训练样本数量约为 10 Billion 。选取最近的 50 个behavior作为短期序列,选取最近的 1024 个behavior作为长期序列。如果user behavior数量未达到此长度,则使用默认值将序列填充到最大长度。除了user behavior特征外,我们还引入了约 20 个重要的 id 特征来丰富输入。

  2. 评估指标:对于离线实验,我们遵循以前的工作,采用广泛使用的 AUC 进行评估。我们还使用训练和推理速度 (Training & Inference Speed: T&I Speed) 作为补充指标来显示每个模型的效率。对于在线实验,我们使用点击率(Click-Through Rate: CTR ) 和访问购买率(Visited-Buy Rate: VBR)作为在线指标。

  3. baseline 方法:我们将 SDIM与以下建模长期用户行为的主流工业模型进行比较:

    • DIN :DIN 是工业系统中建模用户兴趣的最流行模型之一。然而,由于DIN 的时间复杂度高,它不适合用于建模长期用户行为。在这个 baseline 中,我们只使用短期用户行为特征,而不使用长期用户行为特征。

    • DIN (Long Seq.) :对于离线实验,为了测量长期用户行为序列的信息增益,我们为 DIN 配备了长行为序列。我们为 Taobao 数据集设置 L=256,为工业数据集设置 L=1024 。

    • DIN (Avg-Pooling Long Seq.) :该 baseline 由 《End-to-End User Behavior Retrieval in Click-Through Rate Prediction Model》 和 《Search-based User Interest Modeling with Lifelong Sequential Behavior Data for Click-Through Rate Prediction》 引入,其中 DIN 用于建模短期用户兴趣,而长期用户兴趣则通过对长期behavior进行均值池化操作获得。我们将此 baseline 表示为 DIN(Avg-Pooling) 。

    • SIM (《Search-based User Interest Modeling with Lifelong Sequential Behavior Data for Click-Through Rate Prediction》):SIM 首先通过 category ID 从整个序列中检索 top-k 相似的 items ,然后将 target attention 应用于 top-k items 从而获取用户兴趣。我们遵从以前的工作来比较 SIM(hard) ,因为性能几乎与他们在线部署 SIM(hard) 相同。

    • UBR4CTR (《User Behavior Retrieval for Click-Through Rate Prediction》):UBR4CTR 是一种两阶段方法。

      • 在第一阶段,他们设计了一个 feature selection 模块来选择特征来形成 query ,并以倒排索引的方式存储user behavior。

      • 在第二阶段,将检索到的behavior馈入到 target attention-based 的模块以获取用户兴趣。

    • ETA (《End-to-End User Behavior Retrieval in Click-Through Rate Prediction Model》): ETA 应用 LSH 将 target item 和用户行为序列编码为 binary codes ,然后计算 item-wise hamming distance 以选择 top-k 个相似的 items 用于后续的 target attention 。

    • MIMN (《Practice on Long Sequential User Behavior Modeling for Click-Through Rate Prediction》) :与 SIM 是由同一个团队提出的。由于作者声称 SIM 击败了MIMN 并且他们在线部署了 SIM,因此我们仅与 SIM进行比较,并省略了 MIMN 的 baseline 。

    对于所有 baseline 和 SDIM ,我们使用相同的特征(包括 timeinfo 特征)作为输入,并采用相同的模型结构,long-term user behavior modeling 除外。所有模型都使用相同长度的长期用户行为:Taobao 的 T=256 ,工业数据集的 T=1024 。

1.3.1 Taobao 数据集的结果

  1. Table 2 显示了不同模型在 Taobao 数据集上的总体结果。我们可以得出以下结论:

    • (1):SDIM 在建模长期用户行为方面的表现与 DIN(Long Seq.) 相当,但速度却是 DIN(Long Seq.) 的 5 倍。如上所述,SDIM 可以模拟与 target attention 非常相似的注意力模式,因此 SDIM 可以匹敌甚至超越 DIN(Long Seq.) 的性能。

    • (2):SDIM 的表现优于所有用于建模长期用户行为的 baseline 模型。具体而言,SDIM 比 SIM 高 1.62%、比 UBR4CTR 高 1.02% 、比 ETA 高 1.01% 。

      我们还注意到,与 DIN 相比,DIN(Long Seq.) 的 AUC 提高了 2.21% ,这表明建模长期用户行为对于 CTR prediction 的重要性。 SIM 、UBR4CTR 和 ETA的性能不如 DIN(Long Seq.),这是由于 retrieval of user behaviors 造成的信息丢失。这些 retrieval 操作可能有助于从序列中去除噪音,但当 top-k retrieval 没有足够的 informative behavior 时则是有害的。

    • (3):SDIM 比 DIN(Long Seq.) 、SIM 和 UBR4CTR 的效率高得多。效率的提高可以归因于将算法的时间复杂度降低到O(Lmlog⁡(d))。

      SDIM 也比 ETA 效率高得多。ETA 也使用 LSH 对 target item 和行为序列进行哈希,哈希操作的时间复杂度与 SDIM 相同。哈希之后,ETA 计算汉明距离并选择 top-k items 从而用于 target attention ,时间复杂度为 O(BL+Bkd)。而 SDIM 仅引入了一个 gather 算子,然后是 m/τ 个分组的均值池化,因此比 ETA 效率高得多。

    对于 T&I Speed指标,对比的基线为 DIN(Long Seq.),它的速度为 1.0 。

1.3.2 工业数据集的结果

  1. Table 3 显示了不同模型在工业数据集上的总体结果。

    • 与 Taobao 数据集的结果类似,在工业数据集上,SDIM 优于所有竞争基线,并且与 DIN(Long Seq.) 表现相当。我们的 SDIM 与 SIM 、UBR4CTR 和 ETA 相比,分别实现了1.92%、2.08%、1.38% 的改进,同时比这些方法快得多。

    • 由于工业数据集中的用户序列长度足够大,这对 retrieve-based 的方法很友好,因此它们似乎应该与 DIN(Long Seq.) 表现相当。然而,Table 3 中的结果表明它们的性能与DIN(Long Seq.) 存在一些差距。我们认为这是因为用户的兴趣通常是多样化的,人们经常想购买新 categories 的 item ,尤其是在我们的 food search 案例中。当面对新 category 中的 target item 时,这些检索算法很难从用户的历史行为中准确地挑选出最有价值的 item 。

    • 与 Taobao 数据集相比,工业数据集每次 request 包含的 target items 更多,因此 SDIM 在该数据集上可以获得更大的加速比。工业数据集的用户行为序列也更长(T=1024 ),因此 retrieve-based 的方法也可以获得更大的加速比。

    实验结果证明了 SDIM 的优越性。

1.3.3 超参数分析

  1. SDIM 中有两个重要的超参数:哈希函数的数量 m 、hash signatures 的宽度 τ。

  2. 对 m 的分析:哈希函数的数量 m 会影响所提出的 hashing-based attention 的估计误差。随着 sampled hash function 数量的增加,estimated user interest 将更接近公式 E[Atten(q→,S)]。

    为了评估 estimation error ,我们评估 m∈{24,36,48,60,72,90,120} 时的 SDIM 的性能。我们还实现了 SDIM 的变体,它直接使用公式中的期望碰撞概率 E[p~j] 计算注意力权重。该基线模拟了当 hash signatures 数量趋于无限时 SDIM 的behavior。结果如 Figure 4 所示。

    可以看出,当 m>48 时,模型的表现几乎相同。为了提高效率,我们在模型中使用 m=48。

    m 越大则复杂度越高,从而拖慢 inference 速度。但是这里没有不同 m 时的加速比数据,无法判断哪个 m 获得比较好的 trade-off 。

  3. 对 τ 的分析。如前所述,τ 控制模型对更相似 items 更加关注。我们通过改变 τ∈{1,2,3,5,10} 来研究 SDIM 的不同注意力模式。结果如 Table 4 所示。

    从Table 4 中我们可以看出:

    • 当 2≤τ≤5 时,SDIM 表现良好。为了平衡有效性和效率,我们在在线模型中使用 τ=3。

      τ 仅仅影响效果而不影响效率(根据 Table 1 的算法复杂度分析结果)。

    • 当 τ=1 时,模型表现不佳,因为它编码了太多噪音behavior。

    • 相反,当 τ=10时,模型表现不佳,因为只有非常相似的 items 才有机会用于用户兴趣,这对行为较少的用户不友好。

1.3.4 短期用户兴趣建模

  1. 我们还进行了额外的实验来测试 SDIM 在建模短期user behavior方面的表现。但请注意,SDIM 主要是为了解决工业推荐系统的长期用户兴趣建模的问题而提出的,人们可以直接插入 full target attention 或更复杂的模块来建模短序列。我们进行这个实验只是为了展示模型在特殊情况下的表现。

    我们在 Taobao 数据集上进行了这个实验,结果如 Table 5 所示。结果表明,SDIM 在建模短序列方面仍然可以达到与标准的 target attention 模型相当的结果,同时效率更高。

    是否可以把所有的 target attention (长期的、短期的)都换成 SDIM ?进一步地,是否可以把用户行为序列分成不同的区间,在每个区间都应用 SDIM ?

1.3.5 Online A/B Test

  1. 为验证 SDIM 的有效性,我们还进行了严格的 online A/B testing 。对于 online A/B testing , baseline 模型是美团搜索系统中之前的在线 CTR 模型,该模型仅使用短期用户行为序列。测试模型采用与 base 模型相同的结构和特征,但在此基础上加入了 long-term user interests modeling 模块,该模块包含用户最近 1024 或 2000 次behavior。我们使用所提出的 SDIM 来建模长期用户兴趣,并将该测试模型表示为 SDIM (T = 1024) 和 SDIM (T = 2000) 。测试持续 14 天,每个模型分别分配 10% 的美团搜索流量。 A/B testing 结果如 Table 6 所示。

    • SDIM (T=2000) 与 base 模型相比,CTR 提升 2.98% (p-value < 0.001 ),VBR 提升 2.69% (p-value < 0.005 ),考虑到美团 APP 的流量巨大,这可以大大提高线上利润。

    • SDIM (T=2000) 的推理时间与 Base(w/o long seq.) 相比增加了 1ms 。推理时间的增加主要是由于 BSE Server 和 CTR Server 之间的传输时间。

    我们还尝试部署模型,该模型直接使用 target attention 来建模 T = 1024 的长期用户行为序列。然而,它的推理时间大大增加了约 50% (25ms-30ms ),这对于我们的系统来说是不可接受的。因此我们不能让这个模型在线上进行 14 天的 A/B testing 。SDIM 的性能与这个模型相当,但节省了 95% 的在线推理时间。SDIM 目前已在线部署并服务于美团首页搜索系统的主要流量。