原文地址:快手终身序列建模方案–TWIN
论文地址:https://arxiv.org/pdf/2302.02352.pdf
介绍一篇快手的长序列建模论文,写得非常好,将终身序列建模由端到端建模提升到一致性建模。
TWIN首先提炼出一个框架,将现有的的长序列建模总结为两阶段建模:先用GSU选择出topK,再用ESU提取信息。
然后引出两阶段框架下的核心问题:两阶段目标(相似性度量标准)不一致,GSU很容易筛选出相关性不高的item,浪费了计算资源,偏离了用户的兴趣。SIM是明显的两阶段,ETA和SDIM是端到端的,两阶段的emb也是一样的,但是只是用GSU的LSH去近似ESU的Target Attention,因此仍然存在不一致性。
最后提出TWIN模型。整体上还是基于QKV框架,下面详细讲。问题已经定义得这么清晰了,方法已经不重要了。
强烈建议阅读原文。
终身用户行为建模,即从数月甚至数年的丰富历史行为中提取用户隐藏的兴趣,在现代 CTR 预测系统中起着核心作用。传统算法大多遵循两个级联阶段:一个简单的通用搜索单元 (GSU),用于对数万个长期行为进行快速粗略搜索,以及一个精确搜索单元 (ESU),用于对少量长期行为进行有效目标注意 (TA) GSU 的决赛入围者。尽管高效,但现有算法大多存在一个关键限制:GSU 和 ESU 之间不一致的目标行为相关性指标。因此,他们的 GSU 通常会错过高度相关的行为,但会检索被 ESU 认为不相关的行为。在这种情况下,ESU 中的 TA,无论注意力如何分配,大多都偏离了用户的真实兴趣,从而降低了整体 CTR 预测的准确性。为了解决这种不一致,我们提出了双阶段兴趣网络(TWIN),其中我们的一致性保持 GSU(CP-GSU)采用与 ESU 中的 TA 相同的目标行为相关性度量,使两个阶段成为双胞胎。具体来说,为了打破 TA 的计算瓶颈并将其从 ESU 扩展到 GSU,即从行为长度 10^2 扩展到长度 104-105,我们通过行为特征拆分构建了一种新颖的注意机制。对于行为的视频固有特征,我们通过高效的预计算和缓存策略来计算它们的线性投影。对于用户-项目交叉特征,我们将每个特征压缩为注意力得分中的一维偏差项以节省计算开销。两个阶段之间的一致性,以及 CP-GSU 中基于 TA 的有效相关性度量,有助于显着提高 CTR 预测的性能。来自快手的 460 亿规模真实生产数据集的离线实验和在线 A/B 测试表明,TWIN 优于所有比较的 SOTA 算法。通过优化的在线基础设施,我们将计算瓶颈降低了 99.3%,这有助于 TWIN 在快手上的成功部署,服务于每天数亿活跃用户的主要流量。
近年来出现了大量关于两阶段终生行为建模的新兴研究,而它们的主要区别在于粗略选择目标相关行为的 GSU 策略。例如,SIM Hard 简单地从与目标项目相同的类别中选择行为,而 SIM Soft 通过内积从预训练的项目嵌入中计算目标行为相关性得分,并选择相关性最高的行为 [19]。 ETA 使用局部敏感哈希 (LSH) 和汉明距离 [3] 来近似计算相关性分数。 SDIM 通过多轮哈希碰撞 [1] 等方法对与目标行为具有相同哈希签名的行为进行采样。
尽管得到了广泛的研究,现有的两阶段终身行为建模算法仍然存在一个关键的局限性:GSU 和 ESU 之间的不一致。
下图表示了GSU的潜力:SIM的GSU返回的前100个可能只有40个是真正的前100个,即召回率。
为了解决这种不一致,我们提出了 TWIN:用于终身用户行为建模的两阶段兴趣网络,其中 Consistency-Preserved GSU (CP-GSU) 采用与 ESU 中的 TA 相同的目标行为相关性度量,使两个阶段成为双胞胎.为了将昂贵的 TA 扩展到 CP-GSU,TWIN 通过有效的行为特征拆分、简化的 TA 架构和高度优化的在线基础设施,打破了 TA 的关键计算瓶颈,即 1 0 4 10^4 104 个行为的线性投影。
1).具体来说,对于在用户/行为序列之间共享的行为的视频固有特征(例如视频 ID、作者、持续时间、主题),我们通过高效的预计算和缓存策略来加速它们的投射。
2).对于行为的用户视频交叉特征(例如用户的点击时间戳、播放时间、评分),在缓存不适用的情况下,我们通过将它们的投影压缩为偏差项来简化 TA 架构。
通过优化的在线基础设施,我们成功地将 TA 的适用序列长度从 ESU 中的 1 0 2 10^2 102 扩展到 CP-GSU 中的 1 0 4 10^4 104 - 1 0 5 10^5 105。两个阶段之间的一致性,以及 CP-GSU 中基于 TA 的有效相关性度量,有助于显着提高 CTR 预测的性能。
在本文中,我们建议通过在 GSU 中同样使用 TA 来统一 GSU 和 ESU 中的相似度计算方式,并保持端到端训练方法,即 CP-GSU,其参数从 ESU 更新。理论上,GSU 和 ESU 共享相同的架构和参数。因此,与 ETA 和 SDIM 相比,我们的模型在两个阶段是一致的,在阶段 1 中错过“相似”项目的机会更少,并且显着提高了性能。我们在表中详细说明了我们模型与其他模型的差异。
一致性GSU和ESU结构如下
我们将所提出的算法命名为 TWIN,以强调 CP-GSU 遵循与 ESU 相同的相关性评估指标。请注意,这种一致性是重要的,因为:
• 有效的行为建模算法通常基于多头目标注意 (MHTA) [25],它通过强调目标相关行为来精确捕获用户兴趣。不幸的是,由于计算复杂度高,MHTA 适用的行为序列长度大多限制在几百个。
• 为了详尽地捕捉用户的长期兴趣,CP-GSU 应该涵盖过去几个月的用户行为,这很容易达到数万。考虑到在线系统严格的低延迟要求,这个序列长度远远超出了传统 MHTA 的容量。本节旨在回答这个关键问题:如何提高 MHTA 的效率,以便我们可以将其从 ESU 扩展到 CP-GSU,即从数百个序列长度扩展到至少数万个序列长度。
文章提到,对于MHTA,线性映射是性能瓶颈。因此本文主要在减少线上计算线性映射(即QKV矩阵的乘法)
将特征分为两部分:item固有特征H与user-item交互特征C。固有特征有:id、作者、主题、时长,交互特征有:用户点击时间戳、用户播放时间、点击页面位置、用户视频交互。
固有特征可以通过缓存策略减少计算。
对于用户项目交叉特征,缓存策略不适用,因为:1)。交叉特征描述了用户和视频之间的交互细节,因此不会在用户行为序列之间共享。 2).每个用户最多观看一次视频。即,在投影交叉特征时没有重复计算。因此,我们通过简化线性投影权重来降低计算成本。计算公式如下图所示,其实就是把每个交叉特征的emb映射到1维,最终输出一个L*J的向量,L:序列长度,J:交叉特征个数。
线性映射 L*(H+C)->Ld 的计算复杂度为:L(H+C)*d
固有特征H的计算可以缓存,交叉特征的d=1,因此复杂度为:L*C。
整体上是一个QKV的过程
alpha是一个序列长度的权重,query只与固有特征计算attention,交叉特征作为bias,不与query进行计算。
α = ( K h W h ) ( q T W q ) T d k + ( K c W c ) β ( 6 ) \alpha = \frac{ (K_hW^h) (q^TW^q)^T}{\sqrt{d_k} } + (K_cW^c) \beta \ \ \ \ \ \ (6) α=dk(KhWh)(qTWq)T+(KcWc)β (6)
上式中 α \alpha α 是一个L*1的向量,表示的是TA的attention结果。注意,公式(6)中, K h W h K_hW^h KhWh 通过离线缓存拿到,线上只计算其他部分。个人认为,将特征分为固有特征和交叉特征的原因在于:target没有交叉特征。
根据 α \alpha α 选择出top100,计算最终的attention:(该预测仅执行 100 多个行为,因此可以在线高效地进行,不需要再对特征K进行拆分。)从6式中取出top100个alpha聚合value。
A t t e n t i o n ( q T W q , K h W h , K c W c , K W v ) = S o f t m a x ( α ) T K W v ( 7 ) \mathrm{Attention} (q^TW^q, K_hW^h, K_cW^c, KW^v) =\mathrm{Softmax}(\alpha)^TKW^v \ \ \ (7) Attention(qTWq,KhWh,KcWc,KWv)=Softmax(α)TKWv (7)
T W I N = C o n c a t ( h e a d 1 , . . . , h e a d 4 ) W o \mathrm{TWIN} = \mathrm{Concat}(\mathrm{head_1},..., \mathrm{head_4} )W^o TWIN=Concat(head1,...,head4)Wo
h e a d α = A t t e n t i o n ( q T W α q , K h W α h , K W α v ) , α ∈ { 1 , 2 , 3 , 4 } ( 8 ) \mathrm{head_{\alpha}=\mathrm{Attention}(q^TW^q_{\alpha} , K_hW^h_{\alpha}, KW^v_{\alpha} )}, \alpha \in \{1,2,3,4\} \ \ \ \ \ \ \ \ (8) headα=Attention(qTWαq,KhWαh,KWαv),α∈{1,2,3,4} (8)
实验也是很完备的,首先是auc
TWIN的召回率达到94%!相比SIM只有40%
消融实验太棒了:
如图 6(左)所示,没有 Para-Con 的 TWIN 的性能明显优于 SIM Soft(结构和参数不一致),但略低于 TWIN。这表明结构一致性和参数一致性都是有益的,但网络结构一致性贡献更大。
如图 6(右)所示,TWIN 明显优于 TWIN w/o Bias,性能几乎与 TWIN w/ Raw MHTA 相同,验证了我们对 MHTA 提出的修改几乎不会影响性能。关于计算成本,当用户项目交叉特征用于线性投影时缓存不适用于 TWIN w/ Raw MHTA,TWIN w/ Raw MHTA 的推理时间显着增加。相比之下,删除用户-项目交叉特征(TWIN w/o Bias)不会节省太多计算量,但会损害性能