《Sampling Is All You Need on Modeling Long-Term User Behaviors for CTR Prediction》
丰富的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
的搜索系统中。
CTR prediction
是工业应用系统中的一项基本任务。用户兴趣建模(user interest modeling
)旨在从历史行为数据中学习用户的隐含兴趣,已被广泛引入现实世界系统,并有助于显著改善 ctr prediction
。
人们提出了各种模型来建模用户兴趣。其中,DIN
通过考虑给定的 target item
与历史行为的相关性来自适应地计算用户兴趣。DIN
引入了一种新的注意力模块,称为 target attention
,其中 target item
充当query
user behavior
充当 key
value
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
。
CTR prediction
是工业界的推荐、搜索和广告系统中的核心任务。CTR
任务的目标是估计用户点击 item
的概率,定义如下:
其中:CTR
模型中的可训练参数;label
。
给定输入特征 CTR
模型:
target attention
的概念最早由 DIN
提出,并广泛应用于CTR
任务中的用户兴趣建模。target attention
将 target item
作为 query
,将用户行为序列中的每个 item
作为 key
和 value
,并使用 attention
算子从用户行为序列中 soft-search
相关的部分。然后通过对用户行为序列进行加权和来获得用户兴趣。
具体而言,将 target item
指定为 representations
指定为
request
, CTR
模型要评分的 target items
数量。
hidden size
。
令 target item
的 representation
。target attention
计算 item
的点积相似度,然后以归一化相似度作为权重,得到用户兴趣的 representation
:
矩阵形式可以写成:
其中:
计算 target attention
是不可行的。
局部敏感哈希(Locality-sensitive hash: LSH
)是一种在高维空间中高效查找最近邻居的算法技术。LSH
满足局部保持性(locality-preserving property
):邻近的向量很可能获得相同的哈希值,而远处的向量则不会。得益于此特性,LSH-based
的signature
已广泛应用于互联网搜索系统等许多应用中。随机投影方案 (SimHash
)是 LSH
的一种有效实现。SimHash
的基本思想是:采样一个随机投影(由单位法向量 +1
或 -1
)。具体而言,给定一个输入
其中:hashed output
位于哪一侧。
对于两个向量 hash code
的取值时,我们才说它们发生冲突:
虽然单个哈希值可以用于估计相似度,但是我们可以使用多个哈希值,从而降低估计误差。在实践中,通常采用 SimHash
(即,多轮哈希)算法,其中
在第一步中,SimHash
随机采样
其中:
这些哈希码被分为
为了降低不相似的 items
具有相同哈希码的概率,该算法将每组 hash signatures
。有关更多详细信息,请参阅 《Mining of Massive Datasets》
。
对于第 hash signatures
相同时,
其中:“AND”
运算符,
最后,每个 hash signature
对应的分组可以被看作是一次 LSH
,从而用于期望的计算,从而降低 estimation
的方差。
注意:读者对这一段文字进行了重新润色。原始论文讲的不太清楚。
Figure 1
底部显示了 (4, 2)
参数化的 SimHash
算法的示例,其中我们使用 4
个哈希函数并将每 2
个哈希码聚合为hash signatures
(黄色和绿色)。
。
在本节中,我们介绍了我们的框架从而在系统中实现 SDIM
。Figure 1
中可以看到high-level
的概述。该框架由两个独立的 servers
组成:Behavior Sequence Encoding (BSE) server
和 CTR server
,稍后将详细介绍。
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
behavior items
都关联了同一个 target item
其中:
item
。
target item
hash signatures
,则
target item
l2
正则化,用于对兴趣分布进行正则化。
我们还尝试使用 l2
正则化模型的性能相当。但是, l2
正则化的实现效率更高,因此我们使用 l2
正则化。
Multi-Round Hashing
:总是有一个小概率使得不相似的 behavior items
与 target item
共享相同哈希码,从而给模型带来噪音。为了降低这种可能性,我们使用前面描述的多轮哈希算法。
具体来说,我们使用 SimHash
算法。我们并行采样并执行 hash signatures
。只有当 hash signature
时,我们才认为它们发生碰撞:
其中:
hash signatures
的输出被平均,从而作为对用户兴趣的低方差的估计。它可以表示为:
Hash Sampling-Based Attention
的期望:在我们的方法中,随着 《Similarity estimation techniques from rounding algorithms》
):
注意:在计算用户兴趣之前,我们对
因此,SDIM
产生的 user interest representation
的期望为:
注意:原始论文的公式有问题,漏掉了
。此外,这里用的是 sum
归一化而不是l2
正则化。
随着分组数量 estimation error
会非常小。在实践中,我们对在线模型使用 Figure2
中绘制了 SDIM
产生的注意力权重 target attention
产生的注意力权重 Figure2
中我们可以看出,SDIM
的注意力权重与 target attention
中的 softmax
函数很好地吻合,因此,从理论上讲,我们的方法可以获得非常接近 target attention
的输出。我们将提出的方法命名为 SDIM
,即 Sampling-based Deep Interest Modeling
。
SDIM
中的宽度参数 items
提供更多注意力方面所起的作用。
记 target item
item
随着 items
。
让我们考虑两种极端情况:
当 target item
完全相同的 items
。如果我们使用 category
属性进行哈希处理,则算法的behavior
类似于 SIM(hard)
。因此,我们的算法可以看作是 SIM(hard)
的扩展,它也会考虑 category ID
不同但非常相似的 behavior items
。
当 target item
和用 user behavior items
将始终具有相同的hash signatures
。
因此,SDIM
非常灵活,可以通过分配不同的
在本小节中,我们将详细说明 SDIM
比标准的 attention-based
的方法快很多倍。
让我们回顾一下 target attention
中计算用户兴趣的公式,即,target vector
与行为序列相乘来获得注意力权重,然后使用注意力权重对行为序列进行加权和。因此,在 target attention
中获取用户兴趣的 representation
需要两次矩阵乘法,该算法的时间复杂度为
SDIM
将用户兴趣的计算分解为两部分:behavior sequence hashing
、target vector hashing
。注意,用户行为序列是用户的固有特征,与 target item
无关,这意味着无论 target item
是什么,用户的 behavior sequence hashing
的结果都是固定的。因此,对于每个用户,我们只需要在每个 request
中计算一次用户行为序列的 hash transform
。因此,SDIM
将时间复杂度从 1
,比标准的 target attention
快了相当多倍。
经过哈希之后,与 target item
共享相同 hash signature
的sequence items
被选中,并被相加从而形成用户兴趣。在 Tensorflow
中,此步骤可以通过 tf.batch_gather
算子实现,该算子是 Tensorflow
的原子算子(atomic operator
),时间成本可以忽略不计。
SDIM
最耗时的部分是行为序列的多轮哈希(multi-round hashing
),即将 Approximating Random Projection
)算法降低到 SDIM
比标准的 attention-based
方法快得多。在我们的场景中,SDIM
在训练 user behavior modeling
部分时实现了 10
到 20
倍的速度提升。
本节将介绍如何成功在线部署 SDIM
。如前所述,整个算法分为两部分:behavior sequence hashing
、target vector hashing
。behavior sequence hashing
与 target item
无关,这促使我们构建一个专门的 server
来维护 user-wise behavioral sequence hashes
。
我们将系统分为两部分: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
的点击率。当收到 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
的哈希,其时间复杂度为 behavior
的用户兴趣建模。从 CTR Server
的角度来看,这个时间复杂度就像增加了一个 common feature
一样。在 Table 1
中,我们比较了不同方法的时间复杂度。
我们的 serving
系统与 MIMN
有些相似。最大的区别在于我们的系统可以建模用户的 deep interests
,而 MIMN
只能建模 shallow interests
。
关于 Servers
传输成本的注释:对于每个 request
,我们都需要将 bucket representations
从 BSE Server
传输到 CTR Server
。请注意,我们使用固定数量的哈希函数,因此无论用户的behavior
有多长,我们只需要将 bucket representations
的固定长度的向量传输到 CTR Server
。在我们的在线系统中,此向量的大小为 8KB
,传输成本约为 1ms
。
为了验证 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
相同的方式对数据进行预处理。具体来说,我们使用首次的 behavior
作为输入来预测第 behavior
。我们根据 timestep
将样本分为训练集(80%
)、验证集(10%
)和测试集(10%
)。选择最近的 16
个behavior
作为短期序列,选择最近的 256
个behavior
作为长期序列。
工业数据集:该数据集来自中国最大的生活服务电商平台美团 APP
的平台搜索系统。我们选取连续 14
天的样本进行训练,选取接下来两天的样本进行评估和测试,训练样本数量约为 10 Billion
。选取最近的 50
个behavior
作为短期序列,选取最近的 1024
个behavior
作为长期序列。如果user behavior
数量未达到此长度,则使用默认值将序列填充到最大长度。除了user behavior
特征外,我们还引入了约 20
个重要的 id
特征来丰富输入。
评估指标:对于离线实验,我们遵循以前的工作,采用广泛使用的 AUC
进行评估。我们还使用训练和推理速度 (Training & Inference Speed: T&I Speed
) 作为补充指标来显示每个模型的效率。对于在线实验,我们使用点击率(Click-Through Rate: CTR
) 和访问购买率(Visited-Buy Rate: VBR
)作为在线指标。
baseline
方法:我们将 SDIM
与以下建模长期用户行为的主流工业模型进行比较:
DIN
:DIN
是工业系统中建模用户兴趣的最流行模型之一。然而,由于DIN
的时间复杂度高,它不适合用于建模长期用户行为。在这个 baseline
中,我们只使用短期用户行为特征,而不使用长期用户行为特征。
DIN (Long Seq.)
:对于离线实验,为了测量长期用户行为序列的信息增益,我们为 DIN
配备了长行为序列。我们为 Taobao
数据集设置
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
的
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
的效率高得多。效率的提高可以归因于将算法的时间复杂度降低到
SDIM
也比 ETA
效率高得多。ETA
也使用 LSH
对 target item
和行为序列进行哈希,哈希操作的时间复杂度与 SDIM
相同。哈希之后,ETA
计算汉明距离并选择 top-k items
从而用于 target attention
,时间复杂度为 SDIM
仅引入了一个 gather
算子,然后是 ETA
效率高得多。
对于
T&I Speed
指标,对比的基线为DIN(Long Seq.)
,它的速度为1.0
。
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
在该数据集上可以获得更大的加速比。工业数据集的用户行为序列也更长(retrieve-based
的方法也可以获得更大的加速比。
实验结果证明了 SDIM
的优越性。
SDIM
中有两个重要的超参数:哈希函数的数量 hash signatures
的宽度
对 hashing-based attention
的估计误差。随着 sampled hash function
数量的增加,estimated user interest
将更接近公式
为了评估 estimation error
,我们评估 SDIM
的性能。我们还实现了 SDIM
的变体,它直接使用公式中的期望碰撞概率 hash signatures
数量趋于无限时 SDIM
的behavior
。结果如 Figure 4
所示。
可以看出,当
越大则复杂度越高,从而拖慢 inference
速度。但是这里没有不同时的加速比数据,无法判断哪个 获得比较好的 trade-off
。
对 items
更加关注。我们通过改变 SDIM
的不同注意力模式。结果如 Table 4
所示。
从Table 4
中我们可以看出:
当 SDIM
表现良好。为了平衡有效性和效率,我们在在线模型中使用
仅仅影响效果而不影响效率(根据 Table 1
的算法复杂度分析结果)。
当 behavior
。
相反,当 items
才有机会用于用户兴趣,这对行为较少的用户不友好。
我们还进行了额外的实验来测试 SDIM
在建模短期user behavior
方面的表现。但请注意,SDIM
主要是为了解决工业推荐系统的长期用户兴趣建模的问题而提出的,人们可以直接插入 full target attention
或更复杂的模块来建模短序列。我们进行这个实验只是为了展示模型在特殊情况下的表现。
我们在 Taobao
数据集上进行了这个实验,结果如 Table 5
所示。结果表明,SDIM
在建模短序列方面仍然可以达到与标准的 target attention
模型相当的结果,同时效率更高。
是否可以把所有的
target attention
(长期的、短期的)都换成SDIM
?进一步地,是否可以把用户行为序列分成不同的区间,在每个区间都应用SDIM
?
为验证 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
目前已在线部署并服务于美团首页搜索系统的主要流量。