一、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 itemhash signatures、以及用户行为序列中每个behavior itemhash signatures,并通过直接收集 behavior items 来获取用户兴趣,这些 behavior itemstarget 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 Kvalue 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

    • SIMUBR4CTR 采用两阶段框架来处理长期用户行为。他们从序列中检索 top-k 相似的 items ,然后将这些 items 馈入后续的注意力模块。如 《 End-to-End User Behavior Retrieval in Click-Through RatePrediction Model》 所指出的,这些方法的 retrieve objectivesCTR 模型的目标不一致,并且离线倒排索引(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: LSHitems 转换成hash signatureshash signatures),然后根据它们到 target item 的汉明距离检索 top-k 相似的 itemsLSH 的使用大大降低了计算 items 之间相似度的代价,ETA 取得了比 SIMUBR4CTR 更好的结果。

    SIMUBR4CTRETA 都是 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 itemhash signatures、以及用户行为序列中每个 itemhash signatures

    • 然后,我们没有使用某种 metric 来检索 top-k 相似的 items ,而是直接从整个序列中收集与 target item 共享相同hash signaturesbehavior 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) serverCTR 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=1xi;θ)

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

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

    L=1Ni=1N[yilog(probi)+(1yi)log(1probi)]

1.1.2 Target Attention

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

    具体而言,将 target item 指定为 QRB×d ,将用户序列 representations 指定为 SRB×L×d,其中:

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

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

    • d :模型的 hidden size

    qi 为第 itarget itemrepresentationtarget attention 计算 qi 与行为序列 S 中每个 item 的点积相似度,然后以归一化相似度作为权重,得到用户兴趣的 representation

    TA(qi,S)=j=1L(exp(qisj/t)j=1Lexp(qisj/t)×sj)

    矩阵形式可以写成:

    TA(Q,S)=softmax(QSt)S

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

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

1.1.3 Locality-Sensitive Hash (LSH) and SimHash

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

    h(x,r)=sign(rx)

    其中:rRd,其中的元素 riN(0,1)1idh(x,r)=±1 取决于 hashed output 位于哪一侧。

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

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

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

      h(x,R)=sign(Rx)

      其中:RRm×dm 个哈希函数;h(x,R)Rmm 个哈希码。

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

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

      对于第 g 组,Rgr1+(g1)τ,,rgτ 组成的投影矩阵。对于第 g 组,只有当 x1x2的所有 hash signatures相同时, x1 才会与x2发生冲突:

      p~(Rg)=p(r1+(g1)τ)&p(r2+(g1)τ)&&p(rgτ)=&k=1+(g1)τgτp(rk)

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

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

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

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

    m=4,τ=2

1.2 方法

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

1.2.1 User Behavior Modeling via Hash-Based Sampling

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

    l2(P(r)S)=l2(j=1Lpj(r)sj)

    其中:

    • SRL×d 是用户行为序列,sjRd 是序列中的第 jitem

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

      pj(r)=Ih(q,r)=h(sj,r)

      P(r)R1×Ltarget item q 与每个 sj 的碰撞率组成。

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

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

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

    p~j(Rg)=&k=1τpj(rg,k),pj(rg,k)=Ih(q,rg,k)=h(sj,rg,k)

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

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

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

1.2.2 Analysis of Attention Patterns

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

    E[p~j]=(1arccos(qsj)π)τ

    注意:在计算用户兴趣之前,我们对 qsj 进行归一化。

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

    E[Atten(q,S)]=E[l2(j=1Lp~j(Rg)sj)]=j=1L(1arccos(qsj)π)τj=1L(1arccos(qsj)π)τsj

    注意:原始论文的公式有问题,漏掉了 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 产生的注意力权重 (1arccos(qsj)π)3 。为了进行比较,我们还在同一图中绘制了 target attention 产生的注意力权重 exp(qsj/0.5)。从 Figure2 中我们可以看出,SDIM 的注意力权重与 target attention 中的 softmax 函数很好地吻合,因此,从理论上讲,我们的方法可以获得非常接近 target attention 的输出。我们将提出的方法命名为 SDIM ,即 Sampling-based Deep Interest Modeling

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

    wj=(1arccos(qsj)π)τj=1L(1arccos(qsj)π)τ

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

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

    • τ=0m=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(QSt)S 。该算法首先通过将 target vector 与行为序列相乘来获得注意力权重,然后使用注意力权重对行为序列进行加权和。因此,在 target attention 中获取用户兴趣的 representation 需要两次矩阵乘法,该算法的时间复杂度为 O(BLd)

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

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

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

1.2.4 Deployment of the Whole System

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

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

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

    • CTR Server 负责预测 target items 的点击率。当收到 Btarget itemsbatch 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 modelingCTR 模型的其余部分联合训练,我们只在 online serving 阶段单独部署它们。 BSE ServerCTR 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 representationsBSE 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” 特征以丰富上下文特征。

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

    • 工业数据集:该数据集来自中国最大的生活服务电商平台美团 APP 的平台搜索系统。我们选取连续 14 天的样本进行训练,选取接下来两天的样本进行评估和测试,训练样本数量约为 10 Billion 。选取最近的 50behavior作为短期序列,选取最近的 1024behavior作为长期序列。如果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与以下建模长期用户行为的主流工业模型进行比较:

    • DINDIN 是工业系统中建模用户兴趣的最流行模型之一。然而,由于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 应用 LSHtarget 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进行比较,并省略了 MIMNbaseline

    对于所有 baselineSDIM ,我们使用相同的特征(包括 timeinfo 特征)作为输入,并采用相同的模型结构,long-term user behavior modeling 除外。所有模型都使用相同长度的长期用户行为:TaobaoT=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 模型。具体而言,SDIMSIM1.62%、比 UBR4CTR1.02% 、比 ETA1.01%

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

    • (3)SDIMDIN(Long Seq.)SIMUBR4CTR 的效率高得多。效率的提高可以归因于将算法的时间复杂度降低到O(Lmlog(d))

      SDIM 也比 ETA 效率高得多。ETA 也使用 LSHtarget 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.) 表现相当。我们的 SDIMSIMUBR4CTRETA 相比,分别实现了1.92%2.08%1.38% 的改进,同时比这些方法快得多。

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

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

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

1.3.3 超参数分析

  1. SDIM 中有两个重要的超参数:哈希函数的数量 mhash 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 数量趋于无限时 SDIMbehavior。结果如 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 testingbaseline 模型是美团搜索系统中之前的在线 CTR 模型,该模型仅使用短期用户行为序列。测试模型采用与 base 模型相同的结构和特征,但在此基础上加入了 long-term user interests modeling 模块,该模块包含用户最近 10242000behavior。我们使用所提出的 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 ServerCTR Server 之间的传输时间。

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