《TWIN: TWo-stage Interest Network for Lifelong User Behavior Modeling in CTR Prediction at Kuaishou》
终身用户行为建模(life-long user behavior modeling
),即从数月甚至数年的丰富历史行为中提取用户的隐藏兴趣(hidden interests
),在现代 CTR prediction
系统中起着核心作用。传统算法大多遵循两个级联的阶段:
简单的通用搜索单元 (General Search Unit: GSU
),用于对数万个长期 behaviors
进行快速且粗略的搜索。
精确搜索单元 (Exact Search Unit: ESU
),用于对来自 GSU
的少数最终入围者进行有效的 Target Attention: TA
。
现有算法虽然高效,但大多存在一个关键限制:GSU
和 ESU
之间的 target-behavior
的相关性指标(relevance metrics
)不一致。因此,这些算法的 GSU
通常会错过高度相关的 behaviors
,但会检索出被 ESU
认为不相关的 behaviors
。在这种情况下,无论如何分配注意力,ESU
中的 Target Attention
大多会偏离真正的用户兴趣,从而降低整体的 CTR prediction
的准确率。
为了解决这种不一致性,我们提出了两阶段兴趣网络(TWo-stage Interest Network: TWIN
),其中我们的 Consistency-Preserved GSU: CP-GSU
采用与 ESU
中的 Target Attention
相同的 target-behavior relevance metric
,使两个阶段成为孪生。具体来说,为了突破 Target Attention
的计算瓶颈并将其从 ESU
扩展到 GSU
,即将 behavior
长度从 behavior feature splitting
构建了一种新颖的注意力机制。对于 behavior
的视频固有特征,我们通过高效的 pre-computing & caching
策略来计算它们的线性投影。对于 user-item
交叉特征,我们在注意得分计算中将每个特征压缩为一维的 bias
项从而节省计算成本。两个阶段之间的一致性,加上 CP-GSU
中有效的 Target Attention-based
相关性指标,有助于显著提高 CTR prediction
的性能。
在快手 46B
规模的真实生产数据集上的离线实验和在线 A/B test
表明,TWIN
的表现优于所有对比的 SOTA
算法。通过优化在线基础设施,我们降低了 99.3%
的计算瓶颈,这有助于 TWIN
在快手上的成功部署,服务于每天数亿活跃用户的主要流量。
作为中国最受欢迎的短视频分享应用(short video sharing apps
)之一,快手高度依赖其强大的推荐系统 (recommendation system: RS
)。每天,推荐系统帮助数亿活跃用户过滤掉数百万个不感兴趣的视频,找到他们感兴趣的视频,留下数百亿条点击日志。这些海量数据不仅为推荐系统的训练提供了数据,还推动了技术革命,不断提升该平台的用户体验和业务效率。
在现代推荐系统中,一项基本任务是 CTR prediction
,旨在预测用户点击某个 item / video
的概率。准确的 CTR prediction
指导推荐系统为每个用户提供他们最喜欢的内容,并将每个视频传递给其感兴趣的受众。为了实现这一点,CTR
模型应该高度个性化,并充分利用稀缺的用户信息。因此,终身用户行为建模(life-long user behavior modeling
),即从丰富的长期历史行为中提取用户的隐藏兴趣(hidden interests
),通常是 CTR
模型的关键组成部分。
工业级的 life-long behavior modeling
算法大多遵循两个级联的阶段(《Search-based user interest modeling with lifelong sequential behavior data for click-through rate prediction》
):
(1)
:一个通用搜索单元 (General Search Unit: GSU
)对数万个长期 behaviors
进行快速且粗略的搜索,并输出少量的 most target-relevant
的行为;
(2)
:一个精确搜索单元 (Exact Search Unit: ESU
)对来自 GSU
的少数最终入围者进行有效的 Target Attention: TA
。
这种两阶段设计背后的原因有两个方面:
一方面,为了精确捕获用户兴趣,Target Attention
是强调 target-relevant behaviors
和抑制 target-irrelevant behaviors
的适当选择。
另一方面,Target Attention
昂贵的计算成本将其适用的序列长度限制为最多几百。为此,一个简单快速的 GSU
作为 pre-filter
至关重要从而用于截断工业规模的用户行为序列,因为这些序列在短短几个月内很容易达到
近年来,出现了许多关于两阶段 life-long behavior modeling
的新兴研究,而它们的关键区别在于 GSU
策略,其中 GSU
策略粗略地选择 target-relevant behaviors
。例如:
SIM Hard
简单地从与 target item
相同的 category
中选择 behaviors
;而 SIM Soft
通过内积从 pre-trained item embeddings
中计算 target-behavior relevance score
,并选择相关性最高的 behaviors
。
ETA
使用局部敏感哈希(locality-sensitive hashing: LSH
)和汉明距离来近似 relevance score
的计算。
SDIM
通过多轮哈希碰撞(multi-round hash collision
)等方法对具有与 target-behavior
相同哈希签名(hash signature
)的 behaviors
进行采样。
尽管已被广泛研究,但现有的两阶段 life-long behavior modeling
算法仍然存在一个关键限制:GSU
和 ESU
之间的不一致(如 Figure 1
所示)。具体来说,GSU
中使用的 target-behavior relevance metric
既粗略又与 ESU
中使用的 Target Attention
不一致。因此,GSU
可能会错过 relevant behaviors
,而且可能会检索 ESU
认为不相关的 behaviors
从而浪费 ESU
宝贵的计算资源。在这种情况下,无论如何分配注意力,ESU
中的 Target Attention
会很大地偏离真实的用户兴趣,从而降低整体 CTR prediction
的准确率。
为了解决这种不一致(inconsistency
),我们提出了两阶段兴趣网络( TWo-stage Interest Network: TWIN
)从而用于 lifelong user behavior modeling
,其中 Consistency-Preserved GSU: CP-GSU
采用与 ESU
中的 Target Attention
相同的target-behavior relevance metric
,使两个阶段成为孪生(twins
)。为了将昂贵的 Target Attention
扩展到 CP-GSU
,TWIN
通过有效的 behavior feature split
、简化的 Target Attention
架构、以及高度优化的在线基础设施,突破了 Target Attention
的关键计算瓶颈,即所有 behaviors
的线性投影。
1)
:具体来说,对于跨 users / behavior sequences
共享的 video inherent features of a behavior
(例如 video id, author, duration, topic
),我们通过高效的 pre-computing & caching
策略加速它们的投影。
2)
:对于 behavior
的 user-video
交叉特征(例如用户的 click timestamp, play time, rating
),当 caching
不适用时,我们通过将它们的投影压缩为 bias
项来简化 Target Attention
架构。
通过优化后的在线基础设施,我们成功地将Target Attention
的适用序列长度从 ESU
中的 CP-GSU
中的 CP-GSU
中的 Target Attention-based relevance metric
,有助于显著提高 CTR prediction
的性能。
总体而言,我们做出了以下贡献:
在我们提出的 TWIN
中,CP-GSU
精确且一致地检索不仅 target-relevant
而且被 ESU
认为重要的 behaviors
,从而最大限度地提高了 behavior modeling
的 retrieval
效果。据我们所知,我们是第一个成功解决两阶 life-long behavior modeling
问题中不一致性的人。
我们通过对快手 46B
规模的工业级数据集进行大量的离线实验,以及在线 A/B test
,从而验证 TWIN
的有效性。我们通过消融研究验证了我们的有效性,并表明 TWIN
带来了显著的 online benefits
。
我们构建了高效的工业级的基础设施,将 TWIN
应用于真实的在线推荐系统。我们提出了有效的 pre-computing & caching
策略,将 TWIN
的计算瓶颈(即 CP-GSU
中 linear projection of behaviors
)减少了 99.3%
,并满足了 online serving system
的低延迟要求。目前 TWIN
已经部署在快手的推荐系统上,服务于每日 3.46
亿活跃用户的主要流量。
在本文中,我们建议将 Target Attention
结构扩展到 GSU
,并将 embeddings and attention parameters
从 ESU
同步到 GSU
,从而保持端到端训练。结果,我们同时实现了网络结构和模型参数的一致性,与 ETA
和 SDIM
相比,这有助于显著提高性能。我们在 Table 1
中详细说明了我们的模型与其他模型的不同之处。
ESU
和GSU
的网络结构和网络参数完全相同,所以称之为 “孪生”。
请注意,我们的工作不同于旨在加速 Transformer
的 indexing
算法(例如 LISA
)。它们通过将 behaviors
映射到 codebooks
并查找距离来近似 relevance score
的计算。然而我们的工作以及许多其他两阶段算法都使用精确的距离计算,但使用 GSU
作为pre-filter
从而减少了 behaviors
的数量。
TWIN
算法的核心是对attention score
计算中最耗时的linear projection
进行优化。但是这种优化仅适用于inference
阶段,而不适用于training
阶段。论文创新点一般,对算法层面优化较少,更多地是工程优化。
首先,我们回顾了 CTR prediction
问题的一般基础知识。然后,我们描述了快手 CTR prediction
系统的模型架构。接着,我们进一步深入探讨了我们提出的 consistency-preserved lifelong user behavior modeling module
,即 TWo-stage Interest Network: TWIN
。最后,我们介绍了确保 TWIN
在快手主流量上成功在线部署的基本 accelerating
的策略。
Table 2
总结了所使用的符号。
CTR prediction
的目的是预测用户在特定上下文中点击一个 item
的概率。准确的 CTR prediction
不仅可以通过提供 preferred contents
来提升用户体验,还可以通过触达 interested audiences
来提高内容生产者和平台的业务效率。因此,CTR prediction
已成为各种工业级推荐系统(尤其是快手等短视频推荐平台)的核心部分。
CTR prediction
通常被表述为一个二分类问题,其目标是在给定训练数据集 predictor
函数 feature vector
(即 user, item and contexts features
的拼接);ground truth label
,表示用户是否点击该 item
。predicted CTR
计算如下:
其中:sigmoid
函数,它将 prediction
(0, 1)
之间。
模型通过最小化 negative log-likelihood
来训练:
为简洁起见,我们在以下章节中省略了训练样本索引
现在我们来介绍快手的 CTR prediction
系统的架构。详细信息如 Figure 2
所示。
下图中,
ESU
和CP-GSU
的网络结构和网络参数一模一样,那为什么弄两个一模一样的东西?是否可以移除掉ESU
?根据论文的解释:在
ESU
的MHTA: multi-head target attention
中,对于使用原始的线性投影而不做拆分从而用于加权聚合。如果只有 CP-GSU
,那么包含所有行为的 embedding
,这个投影的代价非常高。那么:
是否可以仅仅使用
CP-GSU
,然后仅仅选择top-k
来做线性投影从而用于加权聚合?或者,在
ESU
中使用不同的网络参数,即,使用原始的线性投影而不做拆分,从而计算attention score
?
Embedding Layer
: 在最底层,我们的模型从 feature embedding layer
开始,该层将训练样本的原始特征转换为 embedding vectors
。
在不失一般性的情况下,我们假设所有特征在经过必要的预处理后都处于 categorical
的形式。对于 vocabulary size
为 categorical information
编码为 one-hot / multi-hot code
请注意,在大多数工业级系统中,vocabulary size
(尤其是 user / author / video ids
的 vocabulary size
)可以轻松扩展到数亿。因此,一种常见的策略是将极高维的 hot codes
转换为低维 embeddings
:
其中:embedding dictionary
,embedding
维度。在我们的系统中,我们将 vocabulary
大的 id
特征的 embedding
维度设置为 64
,将其他特征(如 video topic, video played timestamp
)的 embedding
维度设置为 8
。
在所有 upper layers
中,我们将 embedding vectors
作为输入,因此为了简洁起见省略了下标 “emb”
。
Deep Networks
:我们的 CTR prediction
的总体架构如 Figure 2
所示。upper module
由堆叠的神经网络和 ReLU
组成,充当mixer
,用于学习三个 intermediate modules
的输出之间的交互:
TWIN
:所提出的 consistency-preserved life-long user behavior modeling
模块,通过两个 cascading stages
的 behavior modeling
子模块提取用户兴趣:
1)
:Consistency-Preserved General Search Unit: CP-GSU
,从数万个长期历史行为中粗略搜索 100
个最相关的行为。
2)
:Exact Search Unit: ESU
,采用注意力机制对 CP-GSU
的 100
个最终入围者来捕获精确的用户兴趣。
传统算法通常由“轻量级”的 GSU
和“重量级”的 ESU
组成。与传统算法不同,我们提出的 CP-GSU
遵循与 ESU
相同的 relevance evaluation metric
,使两个 cascading stages
成为 TWINS
。因此,CP-GSU
始终检索出来 ESU
认为重要的 items
,从而最大限度地提高 behavior modeling
的有效性。
Short-term behavior modeling
:从最近的 50
个 behaviors
中提取用户兴趣。该模块关注用户最近几天的短期兴趣,是 TWIN
的有力补充。
其他任务建模:除了 behavior modeling
之外,我们还拼接了各种其他任务建模的输出,这些任务建模可以建模用户的性别、年龄、职业、位置、视频时长、主题、受欢迎程度、质量和上下文特征,上下文特征包括播放日期、时间戳、页面位置等。
我们将提出的算法命名为 TWIN
,以强调 CP-GSU
遵循与ESU
相同的 relevance evaluation metric
。请注意,这种一致性并非微不足道,因为:
有效的 behavior modeling
算法通常基于多头目标注意力 (Multi-Head Target Attention: MHTA
) ,它通过强调 target relevant behaviors
来精确地捕获用户兴趣。不幸的是,由于计算复杂度高,MHTA
适用的 behavior sequence
长度大多仅限于几百。
为了详尽地捕获用户的长期兴趣,CP-GSU
应该涵盖过去几个月的 user behaviors
,这些 user behaviors
很容易达到数万。考虑到在线系统严格的低延迟要求,这个序列长度远远超出了传统 MHTA
的容量。
本节旨在回答这个关键问题:如何提高 MHTA
的效率,以便我们可以将其从 ESU
扩展到 CP-GSU
?或者换句话讲,从数百的序列长度扩展到至少数万的序列长度?
Behavior Feature Splits and Linear Projection
:按照 MHTA
的标准符号,我们将长度为 behavior sequence
behavior
的特征。在实践中,MHTA
的注意力得分计算中,MHTA
在极长 user behavior sequences
上应用的关键计算瓶颈。因此,我们提出以下措施来降低其复杂性。
我们首先将 behavior features matrix
我们将 behavior items
的固有特征(例如 video id, author, topic, duration
),这些特征与特定的 user / behavior sequence
无关。
我们将 user-item
交叉特征(例如 user click timestamp, user play time, clicked page position, user-video interactions
)。
这种分割可以高效计算接下来的线性投影
对于固有特征 id
特征为 64
,field
数量),但线性投影实际上并不昂贵。特定 item
的固有特征在 users / behavior sequences
之间共享。通过必要的缓存策略,look up and gathering
过程有效地“计算”。在线部署的细节将在接下来章节中介绍。
但是,训练的时候没有
caching
,因此会非常消耗资源。然而,训练的时候没有inference latency
的限制,可以堆显卡来解决。
对于 user-item
交叉特征
1)
:交叉特征描述 a user and a video
之间的交互细节,因此不会跨 users behavior sequences
来共享。
2)
:对于一个视频,每个用户最多观看一次。也就是说,在投影 cross features
时没有重复计算。因此,我们通过简化 linear projection weight
来降低计算成本。
给定 embedding
维度为 vocabulary size
的 id
特征)。我们有 linear projection
简化如下:
其中:
使用这个简化的投影,我们将每个 cross feature
压缩到一个维度,即 diagonal block matrix
)。
复杂度分析:在传统的 MHTA
中,
通常
。
而在我们对 TWIN
的 MHTA
中:
item
固有特征 pre-computed
并有效地 gathered
,复杂度为
在训练阶段是没有
pre-computed
的的,因此在训练阶段的复杂度还是很高。
而 user-item
交叉特征
由于 MHTA
能够在 CP-GSU
和 ESU
中一致地实施。
这里仅仅优化了线性投影的计算复杂度,但是没有优化
attention
的计算复杂度。attention
的计算复杂度为:,这比线性投影低得多。而原始算法中, attention
的计算复杂度为。
Target Attention in TWIN
:基于 linear projection of behaviors
CP-GSU
和 ESU
中统一使用的 target-behavior relevance metric
。
不失一般性,我们假设用户和 target item
之间没有交互,并将 target item
的固有特征记作 target item
与历史行为之间的 relevance score
其中:projected query and key
的维度。
注意,这里
bias
项的计算与无关。是否可以考虑引入 ?
这个 relevance score
由 query
(即 target
的固有特征)与 key
(即 behaviors
的固有特征)之间的内积计算得出。此外,由于交叉特征被压缩为 1
维,因此可用作 bias
项。我们使用
在 CP-GSU
中,这个 relevance score
100
个最相关的 behaviors
。而在 ESU
中,我们对 100
个最终入围者执行加权平均池化:
其中:
我们通过设置 100
个 behaviors
执行,因此可以在线高效进行。我们不需要像为 behaviors
计算
注意:在
ESU
中,仍然使用了Behavior Feature Splits and Linear Projection
策略从而计算注意力权重。但是,对于,这里不进行拆分。
为了共同关注来自不同 representation
子空间的信息,我们在 MHTA
中采用 4
个头。因此,TWIN
的 final output
定义为:
其中 head
之间相对重要性。
我们在快手的 ranking system
上部署了 TWIN
,服务于 3.46
亿日活用户的主要流量。在本节中,我们介绍我们在部署中的实际经验。我们的系统架构细节如 Figure 3
所示。
训练系统:我们的 TWIN
模块与整个 CTR prediction
模型在快手的 large-scale distributed nearline learning system
上进行联合训练。
每天,有数亿用户访问快手,观看短视频以及与短视频互动,每天留下 46B
条观看和互动日志。在 8
分钟时间内,每条日志都被实时收集、实时预处理并用于模型训练。该 nearline training system
使用 8
分钟内发生的 user-video
互动中的最新知识增量地更新模型参数。
Figure 3
里给出的是46 million/day
,但是正文部分说的是46 billion/day
。
此外,我们的 message queue system
每 5
分钟一次将最新的参数值从 training system
持续同步到离线推理系统和在线服务系统。这种同步确保了 online CTR prediction service
始终基于最新模型。
离线推理:offline inferring system
旨在通过提供 lookup service
来加速 online serving
。当接收到 lookup keys
(即,一个 batch
的 video ids
)时,此 service
将返回 lookup values
,即相应的 projected inherent features
的拼接形式(即,所有 heads
offline inferring system
由两部分组成:
1)
:一个 inherent feature projector
,使用从 training system
同步的最新 embeddings
和 TWIN
参数 linear projection of inherent features
。通过适当的频率控制,该 projector
可以每 15
分钟刷新一次 8B
规模的 candidate video pool
的 projected inherent features
,从而最大限度地减少 caching
造成的准确率损失。
2)
:一个 embedding server
,将 inherent feature projector
的结果存储到 key-value
结构中,并提供上述 key lookup service
。通过截断尾部视频,8B keys
可以覆盖 97%
的 online request
,平衡了效率和效果。
Online Serving
:一旦收到一个 request
,online serving system
就会向 offline inferring system
查询从而得到 projected inherent features
user-item relevance score
100
个 behaviors
,并将这 100
个 behaviors
输入到 ESU
。这种设计在实践中将 TWIN
的计算瓶颈(即 99.3%
。
请注意,只有 100 behaviors
的 ESU
足够轻量,可以使用从 training system
同步的最新参数来实时进行所有计算。因此,ESU
计算出的 CP-GSU
中的略微更新,这进一步提升了我们的 Target Attention
机制的性能。
通过加速设计,TWIN
成功部署在快手的 ranking system
上,服务于 3.46
亿活跃用户的主要流量,峰值请求为每秒 30M
个视频。
在本节中,我们详细介绍了在真实工业数据上进行的离线和在线实验,以评估我们提出的方法,目的是回答以下五个研究问题(research question: RQ
)。
RQ1
:与 lifelong user behavior modeling
中的其他 SOTA
相比,TWIN
在离线评估中的表现如何?
RQ2
:与其他 SOTA
相比,TWIN
能实现多大的一致性?或者说,为什么 TWIN
有效?
RQ3
:随着用户行为序列长度的增长,TWIN
的有效性如何变化?
RQ4
:所提方法中的关键组件、以及不同实现方式的效果如何?
RQ5
:TWIN
在实际在线推荐系统中的表现如何?
数据集:为了在现实情况下评估 TWIN
在 lifelong user behavior modeling
中的作用,我们需要一个大型的 CTR prediction
数据集,该数据集应具有丰富的用户历史 behaviors
,理想情况下可以 scale up
到每个用户数万个 behaviors
。不幸的是,现有的公共数据集要么相对较小,要么缺乏足够的用户历史 behaviors
。例如,在广泛使用的 Amazon
数据集中,每个用户平均只有不到 10
个历史行为。在 Taobao
数据集中,用户行为的平均序列长度最多为 500
。因此,我们从快手(中国顶级短视频分享平台之一)收集了一个工业数据集。
我们从每日用户日志中构建样本,以用户的点击作为标签。如 Table 3
所示,快手的每日活跃用户规模约为 3.46
亿。每天发布 45M
条短视频,这些视频总共播放了 46B
次。平均而言,每位用户每天观看 133.7
个短视频。为了利用丰富的 behavior
信息,我们从数月前的旧日志中收集完整的用户历史行为。平均而言,每位用户在过去六个月内观看了 14,500
个视频,这为模型提供了一个试验台,这个试验台包含了可供学习的丰富的用户历史行为。我们将最大用户行为序列长度限制为 100,000
,这大约是重度用户一年的总观看次数。
baselines
:为了证明有效性,我们将 TWIN
与以下 SOTA
的 lifelong user behaviors modeling
算法进行了比较。
Avg-Pooling
:user lifelong behaviors
的均值池化。
DIN
:最广泛采用的 short-term behavior modeling
方法,它使用 Target Attention
从而用于 target-specific interests
。
SIM Hard
:GSU
从与 target item
相同的 category
中选择 behaviors
,ESU
遵循 DIN
中的 Target Attention
。在我们的场景中,video categories
总数为 37
。
ETA
:局部敏感哈希 (Locality-sensitive hash : LSH
) 用于为 target video and behaviors
生成哈希签名(hash signature
)。然后 GSU
使用汉明距离作为 target-behavior relevance metric
。
SDIM
:GSU
通过多轮哈希碰撞(multi-round hash collision
)选择具有与 target video
相同哈希签名的 behaviors
。在原始论文中,ESU
线性聚合了multi-round hash collision
所采样到的 behaviors
从而获得用户兴趣。在我们的实验中,为了公平比较,ESU
采用了更强大的 Target Attention
。
SIM Cluster
:由于 “category”
需要昂贵的人工标注,并且在短视频场景中通常不可靠,因此我们实现了 SIM Cluster
作为 SIM Hard
的改进版本。我们根据 pre-trained embeddings
将视频分组为 1,000 clusters
。GSU
从与 target item
相同的 clusters
中检索 behaviors
。
SIM Cluster+
:是 SIM Cluster
的改进版,其中 clusters
数量从 1,000
个扩展到 10,000
个。
SIM Soft
:GSU
使用视频的 pre-trained embeddings
的内积得分来检索 relevant behaviors
。内积是一种比汉明距离和哈希碰撞更精细的检索方法,但计算成本更高。
综上所述:
ETA
和 SDIM
采用端到端训练方法,但使用粗略的检索方法以避免高复杂度的计算。
SIM Cluster
、SIM Cluster +
、以及 SIM Soft
采用精细的检索方法,但代价是它们必须使用 pre-trained embeddings
并提前生成离线倒排索引(offline inverted index
)。
请注意,SIM Soft
尚未被后续工作 ETA
和 SDIM
击败。我们没有与 UBR4CTR
进行比较,因为它的迭代式训练(iterative training
)不适合我们的流式场景(streaming scenario
)。此外,UBR4CTR
被证实比 SIM Hard
和 ETA
的表现更差。
实验设置:
我们使用一天中连续 23
个小时的样本作为训练数据,并使用接下来一个小时的样本进行测试。我们连续 5
天评估所有算法并报告 5
天的平均性能。
相当于将算法重复
5
次并报告平均性能。
对于离线评估,我们使用两个广泛采用的指标:AUC
和 GAUC
。
AUC
表示正样本得分高于负样本得分的概率,反映了模型的排序能力。
GAUC
对所有用户的 AUC
进行加权平均,权重设置为该用户的样本数。GAUC
消除了用户之间的 bias
,以更精细和公平的粒度评估模型性能。
为了公平比较,在所有算法中,除了 long-term behavior modeling
模块外,我们使用相同的网络结构,包括 embedding layers
、upper deep networks
、short-term behavior modeling
和 other task modelings
。
对于两阶段模型,我们使用最近的 10,000 behaviors
为作为 GSU
的输入,并在 ESU
中检索 100 behaviors
用于 Target Attention
。
对于 DIN
,我们使用最近的 100 behaviors
,因为它在处理长序列方面存在瓶颈。
虽然 TWIN
的 CP-GSU
在 attention score computation
中使用了四个 head
,但我们通过四个 head
递归遍历 top ranked items
,直到收集到 100 unique behaviors
。
为什么要做这种简化?会不会影响性能?
对于所有模型,embedding layer
都使用 AdaGrad
优化器,学习率为0.05
。DNN
参数由Adam
更新,学习率为 batch size
设置为 8192
。
Table 4
显示了所有模型的性能。请注意,由于我们的数据集中有大量的用户和样本,因此离线评估中 AUC
和 GAUC
的 0.05%
的改进足以为业务带来 online gains
。
首先,TWIN
的表现明显优于所有基线,尤其是具有不一致 GSU
的两阶段 SOTA
。这验证了 TWIN
在 life-long behavior modeling
中的关键优势,即 CP-GSU
中强大而一致的 Target Attention
。具体而言,CP-GSU
精确地检索出了ESU
认为高度相关的 behaviors
,为最重要的 user information
节省了 ESU
宝贵的计算资源。而在其它基线中,无效且不一致的 GSU
可能会错过重要 behaviors
并引入 noisy behaviors
,从而降低 Target Attention
的性能。
此外,从 Avg-pooling
到 DIN
的增益显示了 Target Attention
在检索有效信息方面的能力。其他两阶段 SOTA
相对于DIN
的增益验证了 modeling long behaviors
的必要性。这两者共同支持了我们的动机:将 Target Attention
扩展到长序列。
其次,仅有端到端训练是不够的。我们观察到 TWIN
明显优于 ETA
和 SDIM
,而这两个强大的基线在 GSU
中的 embeddings
也以端到端的方式进行训练。具体来说,ETA
使用 LSH
和汉明距离,而 SDIM
使用多轮哈希碰撞。与 Target Attention
相比,这两种 GSU
策略都不太精确,并且与它们在 ESU
中使用的 target-behavior relevance metric
不一致。而 TWIN
中的 CP-GSU
不仅是端到端训练的,而且与ESU
中的 Target Attention
一致。这表明精确的relevance metric
对GSU
至关重要,验证了我们优于现有的端到端算法。
第三,以更细的粒度来建模 lifelong behaviors
是有效的。我们比较了 SIM
的变体:具有 37 categories
的 SIM Hard
、具有 1,000 / 10,000 clusters
的 SIM Cluster(+)
、以及针对每个 behavior
单独计算 target-behavior relevance score
的 SIM Soft
。
随着GSU
中使用更细粒度的检索方法,我们观察到性能持续改进。这是因为当 GSU
能够更精细地捕获视频之间的 relevance score
时,它会更准确地检索 behaviors
。从这个角度来看,我们进一步将我们优于 SIM Soft
的原因归功于 TWIN
采用更准确的 relevance metric
。
正如所声称的,我们卓越的 behavior modeling
能力来自 CP-GSU
和 ESU
中一致的 relevance metrics
。但我们真正实现了多大的一致性(Figure 4
)?
对于每个 well-trained
的两阶段模型,我们重用其 ESU
的参数作为其 Oracle
,从而从 10,000 behaviors
中检索 “the real top-100”
。换句话说,这些 real top-100
是 ESU
认为真正重要的 ground-truth
。然后,对于所有被比较算法,我们遍历 GSU output size
,从 outputs
命中 real top-100
。请注意,每个被比较算法都有自己的 Oracle
和 top-100
。但我们只绘制一条 Oracle
曲线,因为所有 Oracles
都完美地击中了 ground truth
。
SIM Soft
得益于 GSU
中更精确的 retrieval
策略,在 retrieval consistency
方面有所改进。
此外,TWIN
在返回 100 behaviors
时实现了 94
次命中,这验证了我们在保持两个阶段之间的一致性方面的优势。请注意,这是最值得注意的 value
,因为考虑到推理时间、以及 Target Attention
计算复杂度的限制,100
是 ESU input
的上限。由于 caching
中的刷新延迟(refresh delay
),我们在实践中没有达到理论上的 100%
的一致性,如正文章节所述。
基于以上结果,我们推测 CP-GSU
比传统 GSU
具有更强的 match user interests with the target video
的能力。这归因于一致性。通过与 ESU
共享相同的结构和参数,CP-GSU
能够准确判断和检索具有相似内容的 videos
。此外,由于 CP-GSU
参数是实时更新的,该模型可以捕获用户的动态变化的兴趣。
我们旨在测试 TWIN
在不同 behavior sequence
长度下的有效性,并进一步挖掘 TWIN
的潜力。请注意,仅更改了 GSU
的输入序列长度,输出长度保持为 100
。结果如 Figure 5
所示。
我们观察到:
1)
:TWIN
始终表现最佳,
2)
:随着序列长度的增加,TWIN
与其他方法之间的性能差距越来越大。这表明 TWIN
在建模极长序列方面具有更好的效果。
我们通过对 TWIN
应用不同的操作来进行消融研究,以评估我们的关键模型设计的贡献:1)
两个阶段之间的一致性; 2)
高效的 MHTA
。
TWIN
在两个方面保持了两个阶段之间的一致性:网络结构和参数。为了研究每个方面带来的好处,我们实现了一个名为 TWIN w/o Para-Con
的变体,它不保留参数一致性。具体来说,我们首先训练一个辅助模型 TWIN-aux
,它使用与 TWIN
相同的网络结构和训练数据,但单独进行训练。然后,我们将 GSU
参数从 TWIN-aux
同步到 TWIN w/o Para-Con
。这是为了确保 TWIN w/o Para-Con
仍然实时被更新,并且 TWIN
和 TWIN w/o Para-Con
之间的差距都是由参数不一致造成的。
如 Figure 6 (left)
所示,TWIN w/o Para-Con
的表现明显优于 SIM Soft
(结构和参数都不一致),但略逊于 TWIN
。这表明网络结构一致性和参数一致性都有好处,但网络结构一致性的贡献更大。
这个配置有点奇怪,为什么不训练这样的模型:
CP-GSU
和ESU
采用相同的网络结构,但是不共享网络参数,然后训练?这个实验不太靠谱。
为了高效地计算 MHTA
从而用于工业级部署,我们拆分 user behavior features
,并将每个 user-item cross feature
压缩为一维 bias
项。为了研究这种修改的影响以及在注意力计算中保留 user-item cross features
的好处,我们实现了两个变体并比较了它们的性能和推理时间:
具有原始 MHTA
的TWIN
,其中使用直接的线性投影 feature split
。缩写为 TWIN w/ Raw MHTA
。
MHTA
中不使用 user-item cross features
的 TWIN
,缩写为 TWIN w/o Bias
。
如 Figure 6 (right)
所示,TWIN
明显优于 TWIN w/o Bias
,并且性能几乎与 TWIN w/Raw MHTA
相同,验证了我们对 MHTA
提出的修改几乎不会影响性能。至于计算成本,由于当 user-item cross features
用于 caching
不适用于 TWIN w/ Raw MHTA
(详见正文章节),因此 TWIN w/ Raw MHTA
的推理时间显著增加。相反,删除 user-item cross features
(TWIN w/o Bias
)不会节省太多计算量,但会损害性能。
为了评估 TWIN
的在线性能,我们在快手的短视频推荐平台上进行了严格的在线 A/B test
。Table 5
比较了快手三个代表性业务场景(Featured-Video Tab, Discovery Tab, and Slide Tab
)下 TWIN
与 SIM Hard
和 SIM Soft
的性能。与电商常用的线上评价指标 CTR
和 GMV
不同,短视频推荐场景通常使用观看时长(Watch Time
),衡量用户观看视频的总时长。
如表所示,TWIN
在所有场景中的表现都明显优于 SIM Hard
和 SIM Soft
。在快手上,观看时长增加 0.1%
被认为是一个有效的改进,TWIN
实现了显著的商业收益。
《TWIN V2: Scaling Ultra-Long User Behavior Sequence Modeling for Enhanced CTR Prediction at Kuaishou》
在大型推荐系统中,建模长期用户兴趣对于 CTR prediction
任务的重要性正逐渐引起研究人员和从业者的关注。现有的研究工作,如 SIM
和 TWIN
,出于效率考虑,通常采用两阶段方法来建模长期用户行为序列:
第一阶段使用 search-based
的机制,即 General Search Unit: GSU
,从长序列中快速检索与 target item
相关的 a subset of sequences
。
而第二阶段使用 Exact Search Unit: ESU
对检索到的结果计算 interest scores
。
鉴于用户行为序列跨越整个生命周期,可能达到 TWIN-V2
,这是 TWIN
的增强版,其中采用分而治之的方法来压缩 life-cycle behaviors
并发现更准确更多样化的用户兴趣。
具体来说,离线阶段,我们通过 hierarchical clustering
方法将 life-cycle behaviors
中具有相似特性的 items
归为一个 cluster
。通过 clusters
的规模,我们可以将远远超过 GSU retrieval
的 online inference
。Cluster-aware target attention
可以提取用户的全面的、多方面的长期兴趣,从而使最终的推荐结果更加精准和多样化。
在数十亿规模的工业级数据集上的大量离线实验、以及线上 A/B test
,证明了 TWIN-V2
的有效性。在高效的部署框架下,TWIN-V2
已成功部署到快手主流量中,从而服务于数亿日活用户。
CTR prediction
对于互联网应用至关重要。例如,快手(中国最大的短视频分享平台之一)已将 CTR prediction
作为其 ranking system
的核心组件。最近,人们投入了大量精力来对 CTR prediction
中的用户长期历史行为进行建模。由于生命周期中的 behaviors
的长度很长,modeling life-cycle user behaviors
是一项具有挑战性的任务。尽管现有研究不断努力延长 historical behavior modeling
的长度,但尚未开发出可以对用户整个生命周期进行建模的方法,从而覆盖 application
中高达 1 million behaviors
。
现代工业系统采用了两阶段方法,以便在可控的推理时间内尽可能多地利用用户历史记录。具体来说:
在第一阶段,通用搜索单元 (General Search Unit: GSU
) 模块用于过滤长期历史行为,选择与 target item
相关的 items
。
在第二阶段,精确搜索单元 (Exact Search Unit: ESU
) 模块对 filtered items
进行进一步处理,通过 target attention
提取用户的长期兴趣。
GSU
的粗粒度的 pre-filtering
使系统能够在 online inference
过程中以更快的速度建模更长的历史行为。许多方法尝试了不同的 GSU
结构来提高 pre-filtering
的准确率,例如 ETA
、SDIM
和 TWIN
。
尽管现有的第一阶段的 GSU
很有效,但它们通常存在长度限制,无法对整个生命周期的 user behaviors
进行建模。例如:
SIM
、ETA
和 SDIM
可以过滤最大长度为
TWIN
将最大长度扩展到
在部署过程中,TWIN
使用最近的 10,000 behaviors
作为 GSU
的输入。不幸的是,这 10,000 behaviors
仅涵盖了用户在快手 App
中最近三到四个月的历史记录,无法涵盖 user behavior
的整个生命周期。如 Figure 1
所示,我们分析了快手 App
中过去三年的 user behavior
。medium and high user groups
在三年内可以观看 App
使用时长的大部分(60% + 35% = 95%
)。因此,modeling the full life-cycle behaviors
可能会增强用户体验并提高平台的商业收益。
为了解决这个问题,我们提出了 TWIN-V2
,这是 TWIN
的增强版,使其能够对 user behavior
的全生命周期进行建模。 TWIN-V2
采用分而治之的方法,将完整的生命周期历史(full life-cycle history
)分解为不同的 clusters
,并使用这些 clusters
来建模用户的长期兴趣。具体来说,我们将模型分为两个部分:离线和在线。
在离线部分,我们使用层次聚类(hierarchical clustering
)将 life-cycle behaviors
中的相似 items
聚合到 clusters
中,并从每个 cluster
中提取特征以形成一个虚拟的 item
。
在在线部分,我们利用 cluster-aware target attention
从而基于 clustered behaviors
来提取长期兴趣。在这里,attention scores
根据相应的 cluster size
被重新加权。
大量实验表明,TWIN-V2
在各种类型用户上提升了性能,从而带来更准确和多样化的推荐结果。
本文主要贡献总结如下:
我们提出 TWIN-V2
从极长的 user behavior
中捕获用户兴趣,成功地延长了 user modeling across the life cycle
的最大长度。
hierarchical clustering
和 cluster-aware target attention
提升了 long sequence modeling
的效率,建模了更准确、更多样化的用户兴趣。
大量离线实验和在线实验验证了 TWIN-V2
在超长用户行为序列的扩展方面的有效性。
我们分享了 TWIN-V2
的部署实践,包括离线处理和在线服务。TWIN-V2
已经服务于快手每日约 4
亿活跃用户的主要流量。
TWIN V2 vs TWIN V1
的在线指标提升,要比TWIN V1 vs SIM
低得多。这意味着TWIN V2
上线之后,系统的商业增益没有那么大。
本文旨在将 long-term history modeling
扩展到生命周期级别,同时保持效率。Table 1
总结了 TWIN-V2
与之前工作的比较。
TWIN V2
比TWIN
多了一步:先对用户行为序列进行聚类,并对每个cluster
构造一个virtual item
来代表这个cluster
。然后将这些virtual items
馈入TWIN
中。但是,
TWIN V2
的效果依赖于一个训练好的recommendation model
。我们需要从这个recommendation model
中获取item embedding
从而进行聚类、以及virtual item
的构造。然而,论文没有提到这个recommendation model
是如何创建和训练的,在实验部分也没有说这个recommendation model
的性能对于TWIN V2
效果的影响。从 “TWIN-V2 的部署” 这一章节来看,我们只需要提供一个初始的
recommendation model
,然后在训练过程中可以用上一轮的TWIN-V2
模型作为这个recommendation model
从而优化下一轮的TWIN-V2
。从这个角度来看,recommendation model
似乎不是特别重要?此外,读者猜测初始的
recommendation model
来自于训练好的TWIN-V1
模型。
本节详细阐述了所提出的模型,详细介绍了从整体工作流到 deployment framework
的整个过程。符号总结如下。
CTR prediction
的核心任务是预测用户点击某一个 item
的概率。令 feature representation
,令 label
。CTR prediction
的过程可以写成:
其中:
sigmoid
函数。
CTR
模型
predicted probability
。
模型
其中:
Figure 2
展示了 TWIN-V2
的整体框架,包括离线和在线部分。本文重点介绍 life-cycle behavior modeling
。因此我们强调这一部分并省略其他部分。
由于整个生命周期的 behavior
对于 online inferring
来说太长,我们首先在离线阶段对 behaviors
进行压缩。User behavior
通常包括许多相似的视频,因为用户经常浏览他们喜欢的主题。因此,我们使用 hierarchical clustering
将用户历史中具有相似兴趣的 items
聚合到 clusters
中。Online inferring
使用这些 clusters
及其 representation vectors
来捕获用户的长期兴趣。
在 online inferring
过程中,我们采用两阶段方法进行life-cycle modeling
:
首先,我们使用 GSU
从 clustered behaviors
中检索与 target item
相关的 top 100 clusters
。
然后,我们使用 ESU
从这些 clusters
中提取长期兴趣。
在 GSU
和 ESU
中,我们实现了 cluster-aware target attention
,并调整不同 clusters
的权重。
考虑到用户在生命周期中的历史行为具有超长序列,我们首先采用分而治之的方法压缩这些 behaviors
,然后从 compressed behaviors
中提取用户的长期兴趣。
对于用户 items
的一个序列 life-cycle behaviors
的数量,item
。用户可能在 similar items
。例如,一个喜欢 NBA
比赛的用户在其历史中可能拥有数百个与篮球相关的视频。因此,一个自然的想法是将 similar items
聚合成 clusters
,用一个 cluster
来表示许多 similar items
,从而减小
正式地,我们旨在使用压缩函数 behavior sequence
其中:clustered behaviors
clustered items
的第
具体而言,我们采用分层聚类(hierarchical clustering
)方法来实现 Algorithm 1
所示。
在第一步中,我们简单地将 historical behaviors
分成几组。我们首先根据用户 playing time ratio
将 historical items
分为 historical item
,这个 playing time ratio
记作
在第二步中,我们递归地对每组的 life-cycle historical behaviors
进行聚类,直到每个 cluster
中的 items
数量不超过 k-means
方法对 behaviors
embeddings
recommendation model
中获得。maximum cluster size
的超参数。
这意味着我们需要一个
pre-trained
模型从而获得。这个 pre-trained
模型的质量会影响TWIN-V2
的效果。
接下来,我们将详细说明 Algorithm 1
背后的原理:
Item Grouping
:在短视频场景中,视频的完播率(playing completion ratio
)可以看作是用户对视频感兴趣程度的指标。我们首先按完播率对 behaviors
进行分组,以确保 final clustering results
具有相对一致的 playing time ratio
。如果不这样做,将导致每个 cluster
内的分布不平衡,因为k-means
仅考虑 item embeddings
。函数 playing time ratio
的范围分成五个相等的部分。5
。
在电商场景下,我们可以按照
action type
对behaviors
进行分组,如click, add_cart, purchase
。
Recursively Adaptive Clustering
:我们选择 hierarchical clustering
而不是 single-step clustering
,因为用户历史是个性化的,因此设置通用的 clustering iterations
数量是不切实际的。
我们还动态设置 number of clusters
(items
数量的 0.3
次方),允许 clustering
适应不同规模的 behaviors
。
当 item size
低于 clustering
过程停止,其中 20
。
单次迭代逻辑:
首先从
中取一个 group
。注意, 被第一步 Item Grouping
所初始化,刚开始包含个 group
。如果
group
的 item
数量低于,则 group
直接作为一个 cluster
。当前迭代结束,进入下一轮迭代。如果
group
的 item
数量大于等于,则对 group
进行 Kmeans
聚类,cluster
数量为group
中 item
数量的0.3
次方。聚类后的每个cluster
都追加到中,从而便于将来迭代。 这种做法使得每个
cluster
的item size
都小于。
在我们的实践中,平均 cluster size
约为 cluster
的数量),大大缩短了 life-cycle behaviors
的长度。用于聚类的 item embeddings
recommendation model
中获得的,这意味着 clustering
是由协同过滤信号所指导的。
因此,我们通过将 similar items
聚合到 clusters
中,将原本很长的用户行为序列
获得 clusters
items of each cluster
中抽取特征。为了最大限度地减少计算和存储开销,我们使用一个 virtual item
来表示 features of each cluster
。
我们将 item features
分为两类(numerical and categorical
),并使用不同的方法抽取它们。
Numerical features
通常使用标量来表示,例如视频时长和用户播放视频的时间。
Categorical features
通常使用 one-hot (or multi-hot)
向量来表示,例如 video ID
和 author ID
。
正式地,给定一个任意 item
为简单起见,我们使用 categorical features
,numerical features
。对于 cluster
我们计算其包含的所有 items
的所有 numerical features
的平均值作为 numerical feature representation
:
对于 categorical features
,由于它们的平均值没有意义,我们采用距离 cluster
item
来表示 cluster
其中:item
embeddings
。这些 embeddings
可以从
注意:这是将距离质心最近的
item
的categorical feature
作为这个cluster
的categorical feature
。
因此,整个 cluster
aggregated, virtual item feature
embedding layers
之后,每个 cluster
的特征都被嵌入到一个向量中,例如,对于 embedding
向量为 GSU
和 ESU
模块根据这些 embedded vectors
估计每个 cluster
与 target item
之间的相关性。
就是一个 “虚拟” 的 item
(即,virtual item
),作为这个cluster
的代表。
遵从 TWIN
,我们同时在 ESU
和 GSU
中采用了相同的有效的注意力机制,将 clusters
representations
作为输入。
给定 clustered behaviors
embedding layer
得到由 representation vectors
组成的矩阵 cluster
的特征 embedding
向量。
对于
numerical feature
,需要先做 bucktize
,然后再做embedding
。
然后我们使用 target attention
机制来衡量 target item
与 historical behaviors
的相关性。我们首先应用 TWIN
中的 “Behavior Feature Splits and Linear Projection”
技术来提升 target attention
的效率,详细信息见论文附录 A.2
。该方法将 item embeddings
拆分为固有的部分和交叉的部分。target item
的固有特征的向量。clustered behaviors
的固有 embedding
和交叉 embedding
,其中 target item
与 clustered behaviors
之间的 relevance scores
其中:
由于 clusters
中的 item counts
千差万别,clusters
与 target item
之间的关系。假设两个 clusters
具有相同的相关性(与 target item
的相关性),则具有更多 items
的 cluster
应该更重要,因为 items
越多意味着用户偏好越强。因此,我们根据 cluster size
调整 relevance scores
:
其中:clusters
的大小,每个元素 cluster
cluster size
。
在 GSU
阶段,我们使用 clustered behaviors
(总长度为 relevance scores
最高的 top 100 clusters
。然后,将这 100 clusters
被输入到 ESU
,在那里根据 relevance scores
对它们进行聚合,从而得到用户长期兴趣的 representation
:
其中
为了简单起见,这个等式中的符号被稍微滥用:在 ESU
阶段设置