一、TWIN V2 [2024]

《TWIN V2: Scaling Ultra-Long User Behavior Sequence Modeling for Enhanced CTR Prediction at Kuaishou》

  1. 在大型推荐系统中,建模长期用户兴趣对于 CTR prediction 任务的重要性正逐渐引起研究人员和从业者的关注。现有的研究工作,如 SIMTWIN,出于效率考虑,通常采用两阶段方法来建模长期用户行为序列:

    • 第一阶段使用 search-based 的机制,即 General Search Unit: GSU ,从长序列中快速检索与 target item 相关的 a subset of sequences

    • 而第二阶段使用 Exact Search Unit: ESU 对检索到的结果计算 interest scores

    鉴于用户行为序列跨越整个生命周期,可能达到 106 的规模,目前尚无有效的解决方案来全面建模如此广泛的用户兴趣。为了解决这个问题,我们推出了 TWIN-V2 ,这是 TWIN 的增强版,其中采用分而治之的方法来压缩 life-cycle behaviors 并发现更准确更多样化的用户兴趣。

    具体来说,离线阶段,我们通过 hierarchical clustering 方法将 life-cycle behaviors 中具有相似特性的 items 归为一个 cluster 。通过 clusters 的规模,我们可以将远远超过 105 量级的行为序列压缩到可控的长度,从而用于 GSU retrievalonline inferenceCluster-aware target attention 可以提取用户的全面的、多方面的长期兴趣,从而使最终的推荐结果更加精准和多样化。

    在数十亿规模的工业级数据集上的大量离线实验、以及线上 A/B test ,证明了 TWIN-V2 的有效性。在高效的部署框架下,TWIN-V2 已成功部署到快手主流量中,从而服务于数亿日活用户。

  2. 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 的准确率,例如 ETASDIMTWIN 尽管现有的第一阶段的 GSU 很有效,但它们通常存在长度限制,无法对整个生命周期的 user behaviors 进行建模。例如:

    • SIMETASDIM 可以过滤最大长度为 103 的历史行为。

    • TWIN 将最大长度扩展到 104105 的水平。

    在部署过程中,TWIN 使用最近的 10,000 behaviors 作为 GSU 的输入。不幸的是,这 10,000 behaviors 仅涵盖了用户在快手 App 中最近三到四个月的历史记录,无法涵盖 user behavior 的整个生命周期。如 Figure 1 所示,我们分析了快手 App 中过去三年的 user behaviormedium and high user groups 在三年内可以观看 104106 个视频,占 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 clusteringcluster-aware target attention 提升了 long sequence modeling 的效率,建模了更准确、更多样化的用户兴趣。

    • 大量离线实验和在线实验验证了 TWIN-V2 在超长用户行为序列的扩展方面的有效性。

    • 我们分享了 TWIN-V2 的部署实践,包括离线处理和在线服务。TWIN-V2 已经服务于快手每日约 4 亿活跃用户的主要流量。

    TWIN V2 vs TWIN V1 的在线指标提升,要比 TWIN V1 vs SIM 低得多。这意味着 TWIN V2 上线之后,系统的商业增益没有那么大。

  3. 本文旨在将 long-term history modeling 扩展到生命周期级别,同时保持效率。Table 1 总结了 TWIN-V2 与之前工作的比较。

    TWIN V2TWIN 多了一步:先对用户行为序列进行聚类,并对每个 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 模型。

1.1 方法

  1. 本节详细阐述了所提出的模型,详细介绍了从整体工作流到 deployment framework 的整个过程。符号总结如下。

1.1.1 基础知识

  1. CTR prediction 的核心任务是预测用户点击某一个 item 的概率。令 xkRd0 表示第 k 个数据样本的 feature representation,令 yk{0,1} 表示第 k 个交互的 labelCTR prediction 的过程可以写成:

    y^k=σ(f(xk))

    其中:

    • σ()sigmoid 函数。

    • f 是映射函数,被实现为 CTR 模型 f:Rd0R

    • y^kpredicted probability

    模型 f 由二元交叉熵损伤函数来训练:

    L=1|D|k=1|D|[yklog(y^k)+(1yk)log(1y^k)]

    其中:D 为训练集。

1.1.2 整体工作流

  1. 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

    • 首先,我们使用 GSUclustered behaviors 中检索与 target item 相关的 top 100 clusters

    • 然后,我们使用 ESU 从这些 clusters 中提取长期兴趣。

    GSUESU 中,我们实现了 cluster-aware target attention ,并调整不同 clusters 的权重。

1.1.3 Life-Cycle User Modeling

  1. 考虑到用户在生命周期中的历史行为具有超长序列,我们首先采用分而治之的方法压缩这些 behaviors ,然后从 compressed behaviors 中提取用户的长期兴趣。

a. Hierarchical Clustering Over Life Cycle
  1. 对于用户 u ,我们将其所有历史行为表示为 items 的一个序列 S=[s1,s2,,sT] ,其中 Tlife-cycle behaviors 的数量,sj 是第 j 个交互的 item 。用户可能在 S 中观看许多 similar items 。例如,一个喜欢 NBA 比赛的用户在其历史中可能拥有数百个与篮球相关的视频。因此,一个自然的想法是将 S 中的 similar items 聚合成 clusters ,用一个 cluster 来表示许多 similar items ,从而减小 T 的大小。

    正式地,我们旨在使用压缩函数 hcomp 将长度为 Tbehavior sequence S 缩减为长度为 T^ 的序列 C

    C=hcomp(S)

    其中:T^TC 表示 clustered behaviors C=[c1,c2,,cT^],其中 ci 表示包含 clustered items 的第 i 个集合。

    具体而言,我们采用分层聚类(hierarchical clustering )方法来实现 hcomp ,如 Algorithm 1 所示。

    • 在第一步中,我们简单地将 historical behaviors 分成几组。我们首先根据用户 uplaying time ratiohistorical items 分为 M 个不同的组。对于第 jhistorical item ,这个 playing time ratio 记作 pj=playing timevideo duration

    • 在第二步中,我们递归地对每组的 life-cycle historical behaviors 进行聚类,直到每个 cluster 中的 items 数量不超过 γ。我们采用广泛使用的带自适应簇大小 γk-means 方法对 behaviors Sembeddings KS 进行聚类,其中 KSrecommendation model 中获得。γ 是控制 maximum cluster size 的超参数。

      这意味着我们需要一个 pre-trained 模型从而获得 KS 。这个 pre-trained 模型的质量会影响 TWIN-V2 的效果。

  2. 接下来,我们将详细说明 Algorithm 1 背后的原理:

    • Item Grouping:在短视频场景中,视频的完播率(playing completion ratio)可以看作是用户对视频感兴趣程度的指标。我们首先按完播率对 behaviors 进行分组,以确保 final clustering results 具有相对一致的 playing time ratio 。如果不这样做,将导致每个 cluster 内的分布不平衡,因为k-means 仅考虑 item embeddings 。函数 getGroup(pj) 特定于应用场景,例如,将 playing time ratio 的范围分成五个相等的部分。M 是一个常数,在我们的实践中设置为 5

      在电商场景下,我们可以按照 action typebehaviors 进行分组,如 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

      单次迭代逻辑:

      • 首先从 Q 中取一个 group m 。注意,Q 被第一步 Item Grouping 所初始化,刚开始包含 Mgroup

      • 如果 group mitem 数量低于 γ ,则 group m 直接作为一个 cluster。当前迭代结束,进入下一轮迭代。

      • 如果 group mitem 数量大于等于 γ ,则对 group m 进行 Kmeans 聚类,cluster 数量为 group mitem 数量的 0.3 次方。聚类后的每个 cluster 都追加到 Q 中,从而便于将来迭代。

      这种做法使得每个 clusteritem size 都小于 γ

      在我们的实践中,平均 cluster size 约为 γ/2 ,因此 T^ 约为 T/10 (即,cluster 的数量),大大缩短了 life-cycle behaviors 的长度。用于聚类的 item embeddings KS 是从 recommendation model 中获得的,这意味着 clustering 是由协同过滤信号所指导的。

      因此,我们通过将 similar items 聚合到 clusters 中,将原本很长的用户行为序列 S=[s1,s2,,sT] 压缩为更短的序列C=[c1,c2,,cT^]

b. Extracting Cluster Representation
  1. 获得 clusters C 后,我们需要从 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 IDauthor ID

    正式地,给定一个任意 item v ,其特征可以写成:

    xv=[xc,1(v);xc,2(v);;xc,N1(v)categorical (one-hot);xs,1(v);xs,2(v);;xs,N2(v)numerical (scaler)]

    为简单起见,我们使用 x1:N1(v) 表示 categorical featuresx1:N2(v) 表示 numerical features 。对于 C 中的 cluster ci

    • 我们计算其包含的所有 items 的所有 numerical features 的平均值作为 cinumerical feature representation

      c1:N2(i)=1|ci|vcix1:N2(v)
    • 对于 categorical features ,由于它们的平均值没有意义,我们采用距离 cluster ci 的质心最近的 item 来表示 cluster ci

      c1:N1(i)=x1:N1(i),v=argminvcikvkcentroid22

      其中:kv,kcentroidRd 分别为 item v 和质心的 embeddings 。这些 embeddings 可以从 KS 中查找。

      注意:这是将距离质心最近的 itemcategorical feature 作为这个 clustercategorical feature

    因此,整个 cluster ci 由一个 aggregated, virtual item feature ci=[c1:N1(i);c1:N2(i)] 来表示。经过 embedding layers 之后,每个 cluster 的特征都被嵌入到一个向量中,例如,对于 ci 它的 embedding 向量为 kiRdGSUESU 模块根据这些 embedded vectors 估计每个 clustertarget item 之间的相关性。

    ci=[c1:N1(i);c1:N2(i)] 就是一个 “虚拟” 的 item (即,virtual item),作为这个 cluster 的代表。

c. Cluster-aware Target Attention
  1. 遵从 TWIN ,我们同时在 ESUGSU 中采用了相同的有效的注意力机制,将 clusters Crepresentations 作为输入。

  2. 给定 clustered behaviors C=[c1,c2,,cT^],我们通过 embedding layer 得到由 representation vectors 组成的矩阵 KRT^×d,其中 kiRd是第 icluster 的特征 ciembedding 向量。

    对于 numerical feature c1:N2(i) ,需要先做 bucktize ,然后再做 embedding

    然后我们使用 target attention 机制来衡量 target itemhistorical behaviors 的相关性。我们首先应用 TWIN 中的 “Behavior Feature Splits and Linear Projection” 技术来提升 target attention 的效率,详细信息见论文附录 A.2 。该方法将 item embeddings 拆分为固有的部分和交叉的部分。qRH 表示 target item 的固有特征的向量。KhRT^×H,KcRT^×C 分别是 clustered behaviors 的固有 embedding 和交叉 embedding ,其中 K=[Kh,Kc]。我们可以计算 target itemclustered behaviors 之间的 relevance scores αRT^

    α=(KhWh)(qWq)dk+(KcWc)β

    其中:Wh,Wq,Wc 是线性投影,dk 是投影维度,β 是可学习的交叉特征权重。

    由于 clusters 中的 item counts 千差万别,α 无法充分表示 clusterstarget item 之间的关系。假设两个 clusters 具有相同的相关性(与 target item 的相关性),则具有更多 itemscluster 应该更重要,因为 items 越多意味着用户偏好越强。因此,我们根据 cluster size 调整 relevance scores

    α=α+lnn

    其中:nNT^ 表示 C 中每个 clusters 的大小,每个元素 ni 表示 cluster cicluster size

  3. GSU 阶段,我们使用 αclustered behaviors (总长度为 T^)中选择 relevance scores 最高的 top 100 clusters 。然后,将这 100 clusters 被输入到 ESU ,在那里根据 relevance scores 对它们进行聚合,从而得到用户长期兴趣的 representation

    Attention(qWq,KhWh,KcWc,KWv)=Softmax(α)(KWv)

    其中 Wv 是一个投影矩阵。

    为了简单起见,这个等式中的符号被稍微滥用:在 ESU 阶段设置 T^=100。请注意,Softmax(α)可以写成:

    Softmax(α)=[n1×expα1j=1T^nj×expαj,,nT^×expαT^j=1T^nj×expαj]

    其中每个 clusterrelevance score αicluster size ni 重新加权。

    我们使用具有 4 个头的多头注意力来获得最终的长期兴趣:

    Long-term Interests=Concat(head1,,head4)Woheada=Attention(qWaq,KhWah,KcWac,KWav),a{1,2,3,4}

    其中 Wo 为一个投影矩阵。

  4. 备注:利用从 GSU 中的 hierarchical clustering 中得出的 behaviors ,使模型能够容纳更长的历史行为,从而在我们的系统中实现 life-cycle level modeling 。与 TWIN 相比,GSUlife-cycle behaviorsinput 涵盖了更广泛的历史兴趣,从而提供了更全面、更准确的用户兴趣建模。

    此外,虽然现有的方法使用 top 100 retrieved behaviors 作为 ESU 的输入,但 TWIN-V2 使用 100 clusters 。这些 clusters 涵盖了超过 100 behaviors ,使ESU 能够对更广泛的 behaviors 进行建模。

    所有这些优势带来了更加准确和多样化的推荐结果,这在实验章节中得到了验证。

1.1.4 TWIN-V2 的部署

  1. 我们将部署 TWIN-V2 的实践分为两个部分:在线和离线,如 Figure 3 所示。

    Figure 3 中,我们以单个用户为例进行说明。当系统收到用户的 request 时:

    • 它首先从离线处理好的 user life-cycle behaviors 中提取 behavioral features

    • 然后,使用 GSUESU ,将 behavioral features 建模长期兴趣的 input 从而用于 CTR 模型以进行预测。

    我们使用一个 nearline trainer 来进行 real-time model training ,该 trainer 使用实时用户交互数据(数据在 8 分钟的时间窗口内)增量地更新模型参数。

    对于 life-cycle behaviors ,我们应用 hierarchical clusteringfeature extraction 来处理它们。这是通过周期性的 offline processingupdates 进行的。

  2. Offline Processing :离线处理旨在压缩用户的整个 life-cycle behaviors 。考虑到快手的用户数量是十亿级的,我们会定期压缩他们的 life-cycle behaviorshierarchical clustering runner2 周执行一次全面更新。

    我们将 hierarchical clustering 中的 maximum cluster size γ 设置为 20 ,导致平均 cluster size 约为 10 。通过 cluster representation extraction ,每个 cluster 被聚合为一个虚拟 item 。在我们的实践中,historical behavior 被压缩为原始长度的 10% ,从而将存储成本降低了 90%

    我们为 embedding server 采用了 TWIN 中提出的 inherent feature projector ,每 15 分钟从最新的 CTR 模型刷新一次 projector 的参数。

  3. Online Serving:用户向系统发送 request 后,离线系统将数据特征发送到 GSUGSU 计算 behavior-target relevance scores α。然后,ESU 选择并聚合 top 100 clustered behaviors 作为长期兴趣从而用于 CTR 模型的预测。为了确保 online inference 的效率,我们保留了 TWINprecomputing and caching 策略(即,预计算并缓存 KhWah )。 TWIN-V2TWIN 的增量部署:TWIN 对最近几个月的 behaviors 进行建模,而 TWIN-V2 对整个生命周期的 behaviors 进行建模,使得它们相互补充。

1.2 实验

  1. 在本节中,我们通过进行大量的离线实验和在线实验来验证 TWIN-V2 的有效性。

  2. 数据集:由于 TWIN-V2 是为极长的 user behaviors 而设计的,因此需要使用具有丰富用户历史的数据集。据我们所知,目前还没有平均历史长度超过 104 的公开数据集。因此,我们从快手 App 中提取了连续五天的用户交互数据作为训练集和测试集。样本由点击日志构成,并以 click 为标签。为了捕获用户的 life-cycle 历史,我们进一步追溯了每个用户的过去所有行为,每个用户的最大历史长度为 100,000Table 2 展示了该工业数据集的基本统计数据。每天的前 23 个小时用作训练集,而最后一个小时用作测试集。

    这种测试集会不会有偏?因为最后一个小时的交互数据的分布可能与前 23 个小时不同。

  3. baseline:遵循常见做法(《Sampling Is All You Need on Modeling Long-Term User Behaviors for CTR Prediction》《TWIN: TWo-Stage Interest Network for Lifelong User Behavior Modeling in CTR Prediction at Kuaishou》),鉴于我们的重点是建模极长的用户历史记录,我们将 TWIN-V2 与以下 SOTA baselines 进行比较:

    • (1) Avg-Pooling :一种利用均值池化的简单方法。

    • (2) DIN:它为推荐算法引入了 target attention

    • (3) SIM HardHard-search 是指 GSU 根据 category 过滤长期历史。

    • (4) SIM SoftSoft search 涉及通过计算 target item 和历史记录中的 items 之间的向量点积来选择 top-k items

    • (5) ETA:它采用局部敏感哈希(Locality Sensitive Hashing: LSH )来促进端到端的训练。

    • (6) SDIMGSU 通过收集与 target item 共享相同哈希签名(hashing signature)的 behaviors 来聚合长期历史。

    • (7) SIM Cluster:由于SIM Hard 依赖于 annotated categories ,我们通过 video embeddings 的聚类对其进行了改进。GSU 检索与 target item 位于相同 cluster 中的历史行为。在这里,我们将所有 items 聚类为 1,000 groups

    • (8) SIM Cluster+:这是 SIM Cluster 的高级变体,其 cluster 数量增加到 10,000 个。

    • (9) TWIN:它为 GSUESU 阶段提出了一种有效的 target attention

    为了确保公平比较,除了 long-term interest modeling 外,我们在模型的所有方面都保持一致。

  4. 评估指标和评估设置:

    • 我们使用一天中连续 23 个小时的样本作为训练数据,并使用接下来一个小时的样本进行测试。我们连续 5 天评估所有算法并报告 5 天的平均性能。

      相当于将算法重复 5 次并报告平均性能。

    • 至于评估指标,我们采用了广泛使用的 AUCGroup AUC: GAUC 。我们计算了连续 5 天这两个指标的均值和标准差。

      GAUC 对所有用户的 AUC 进行加权平均,权重设置为该用户的样本数。GAUC 消除了用户之间的 bias ,以更精细和公平的粒度评估模型性能。

  5. 实现细节:

    • 对于所有模型,我们都使用 industrial context 中相同的 item and user features ,包括 video ID, author ID and user ID 等大量属性。

    • TWIN-V2 将单个用户历史长度限制为最多 100,000 items ,从而对 life-cycle user behavior 进行聚类。如前文所述,TWIN-V2 经验性地将历史行为压缩为原始大小的约 10% ,从而导致 GSU 中的 maximum input length 约为 10,000

      对于其他两阶段模型,输入 GSU 的历史行为最大长度限制为 10,000 behaviors

      对于 DINAvg-Poolingrecent history 的最大长度为 100 ,因为它们不是为 long-term behaviors 而设计的。

      Avg-Pooling 事实上可以支持任意长度的用户行为序列。为什么这里截断为 100

    • 所有两阶段模型都利用 GSU 来检索 top 100 historical items 并将它们输入 ESU 从而用于 interest modeling

    • batch size 设置为 8192Adam 的学习率为 5e-6

1.2.1 整体性能

  1. Table 3 的结果中,我们得出以下观察结果:

    • TWIN-V2 的表现远超其他基线。现有文献(《Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate》《DCN V2: Improved Deep & Cross Network and Practical Lessons for Web-Scale Learning to Rank Systems》)表明,AUC 提高 0.001CTR prediction 具有重要意义,足以产生 online benefitsTWIN-V2 比表现第二好的 TWIN 模型有所改进,AUC 提高了 0.0013GAUC 提高了 0.0024 。这些改进验证了 TWIN-V2 的有效性。

    • TWIN-V2GAUC 上的相对改进高于 AUC 上的相对改进。GAUC 提供了更细粒度的模型指标。GAUC 的较大改进表明 TWIN-V2 在各种类型的用户中都实现了提升,而不仅仅是在整体样本上表现更好,而且它在特定子集上也表现出色。由于 TWIN-V2 包含更长的行为序列,我们相信它在高度活跃的用户群体中取得了更大的进步,这一假设在附录 A.3 中得到了验证(如 Figure 5 所示)。

1.2.2 消融研究

  1. 我们进行了一项消融研究,以调查核心模块在 TWIN-V2 中的作用以及我们设计背后的原理。

  2. 不同 Hierarchical Clustering 方法的比较:我们的 hierarchical clustering 方法有两个主要特点:

    • 1):它利用动态 clustering number δ 来适应各种各样的 sizes of behaviors

    • 2)k-means clustering 是非均匀的,最终导致不同大小的 clusters

    我们首先验证自适应的 δ 的有效性,创建一个变体:该变体在所有情况下都使用固定的 cluster number δ=2,记作 “Binary” 。此外,为了测试均匀 cluster sizes 的效果,我们创建了一个在 δ=2 时强制 balanced k-means clustering 结果的变体,记作 “Balanced&Binary” 。在这个变体中,每次 k-means iteration 之后,对于 larger cluster 中的一部分 item ,如果它们比另一部分 item 更靠近另一个 cluster 的质心,则这些 items 会被移动到另一个 cluster 中,以确保最终两个 cluster 的大小相等。 Table 4 报告了对 TWIN-V2 和这两个变体的统计分析。

    • 在这三种方法中,我们的方法实现了最高的 cluster accuracy 。这表明我们的方法创建的 clusters 中,items 具有更紧密匹配的 representation vectors ,从而导致每个 cluster 内的 items 具有更高的相似度。

      cluster accuracy:每个 item 和它所属的 cluster 的质心进行 cos 相似度计算,然后取平均。

    • 我们的方法还实现了最短的运行时间,证实了自适应 δ 的效率。

    • 此外,我们还报告了这些方法在测试集上的性能,如 Figure 4 (left)

    这些结果验证了自适应方法(adaptive method )可以在每个 cluster 内分配更相似的 items ,并与其他方法相比加快了 hierarchical clustering 的过程。

  3. Cluster-aware Target Attention 的有效性:在提出的 cluster-aware target attention 中,与 TWIN 相比,主要区别在于使用 clustered behavior 作为输入,并根据 cluster size 重新加权 attention scores 。我们分别从 GSUESU 中删除了 cluster size reweighting 部分,以评估其对性能的影响。具体来说,我们分别将 GSUESUα 替换为 αFigure 4 (right) 显示了实验结果。省略 reweighting 会导致性能下降,这验证了通过 cluster size 来调整 attention scores 的有效性。

1.2.3 在线实验

  1. 我们进行了在线 A/B test ,以验证 TWIN-V2 在我们工业级系统中的性能。Table 5 显示了 TWIN-V2 在快手三个代表性场景(Featured-Video Tab, Discovery Tab, and Slide Tab)中在观看时长(Watch Time )和推荐结果多样性方面的相对改进。

    • 观看时长衡量用户花费的总时间。

    • 多样性是指模型推荐结果的多样性,比如视频类型的丰富性。

      多样性指标公式s是什么?这里没给出来。

    从结果来看,TWIN-V2 可以更好地建模用户兴趣,从而提升观看时长。此外,通过建模更长的历史行为,TWIN-V2 可以发现更多样化的用户兴趣,从而带来更加多样化的推荐结果。