长期行为序列建模技术演进:从SIM到TWIN-v2

news2025/4/24 0:39:14

背景

在推荐系统与广告投放领域,长期行为序列建模旨在从用户数月甚至数年的历史行为中捕捉稳定兴趣模式,是解决冷启动、提升推荐精度的关键。随着工业界需求激增,SIM、ETA、SDIM、TWIN及TWIN-v2等模型相继诞生,推动技术不断革新。以下将按序深入解析这些模型的原理、创新及实践意义。

一、SIM:两阶段检索的奠基者

在这里插入图片描述

SIM 由阿里团队提出,首次将两阶段范式引入长序列建模,解决传统模型无法处理超长序列的难题,论文参考: Search-based User Interest Modeling with Lifelong Sequential
Behavior Data for Click-Through Rate Prediction

  • 核心架构
    • GSU阶段(通用搜索单元):提出两种检索方案。
      • Hard-Search:基于类目ID规则筛选。若目标Item类目为 C a C_a Ca,则从用户行为 B = [ b 1 , b 2 , … , b T ] B = [b_1, b_2, \dots, b_T] B=[b1,b2,,bT] 中筛选出类目为 C a C_a Ca 的行为,相关性分数 r i = Sign ( C i = C a ) r_i = \text{Sign}(C_i = C_a) ri=Sign(Ci=Ca) C i C_i Ci 为行为 b i b_i bi 的类目)。
      • Soft-Search:通过向量内积检索。计算目标Item嵌入 e a \mathbf{e}_a ea 与行为Item嵌入 e i \mathbf{e}_i ei 的内积 r i = ( W b e i ) ⊙ ( W a e a ) T r_i = (W_b \mathbf{e}_i) \odot (W_a \mathbf{e}_a)^T ri=(Wbei)(Waea)T,选取相似度高的Top-K行为( W a , W b W_a, W_b Wa,Wb 为可学习参数)。
    • ESU阶段(精确搜索单元):对筛选后的短序列应用Transformer或DIEN模型。引入时间间隔分桶嵌入 e Δ t = E ⋅ one-hot ( bin ( Δ t ) ) \mathbf{e}_{\Delta t} = \mathbf{E} \cdot \text{one-hot}(\text{bin}(\Delta t)) eΔt=Eone-hot(bin(Δt)) E \mathbf{E} E 为嵌入矩阵),计算注意力权重:
      α i , j = softmax ( ( W q v q + e Δ t ) ⋅ ( W k v j ) d k ) \alpha_{i,j} = \text{softmax}\left( \frac{(\mathbf{W}_q \mathbf{v}_q + \mathbf{e}_{\Delta t}) \cdot (\mathbf{W}_k \mathbf{v}_j)}{\sqrt{d_k}} \right) αi,j=softmax(dk (Wqvq+eΔt)(Wkvj))
      W q , W k \mathbf{W}_q, \mathbf{W}_k Wq,Wk 为线性变换矩阵, d k d_k dk 为Key向量维度)。
  • 工程实践:通过两级索引存储(用户ID+类目ID),在线检索延迟控制在毫秒级。但两阶段目标不一致,可能过滤关键兴趣点。

二、ETA:LSH加速的端到端检索

在这里插入图片描述

ETA由阿里提出,在减小GSU复杂度上做文章,不同的是使用SimHash来代替self-attention,论文参考: End-to-End User Behavior Retrieval in Click-Through Rate Prediction Model

SimHash原理

在这里插入图片描述

SimHash是对一个embedding做hash编码的过程,假设有一个embedding e k ∈ R d e_k \in \mathbb{R}^d ekRd,给定一个随机矩阵 R ∈ R m × d R \in \mathbb{R}^{m \times d} RRm×d,矩阵 R R R 的每一行代表一个hash function。
SimHash ( e k , R ) = sign ( e k ⋅ R ) \text{SimHash}(e_k, R) = \text{sign}(e_k \cdot R) SimHash(ek,R)=sign(ekR)
公式表明,将 e k e_k ek R R R 做矩阵乘法后,得到一个 m × 1 m \times 1 m×1 的向量,对向量每个值做 sign ( ) \text{sign}() sign()(变量>0时取1,其他取0),将 d d d 维向量压缩到 m m m 维0/1向量。SimHash具有localty-preserving属性:向量 v 1 、 v 2 v1、v2 v1v2 经SimHash运算后得到 s 1 、 s 2 s1、s2 s1s2 s 1 s1 s1 s 2 s2 s2 重合位数越多, v 1 、 v 2 v1、v2 v1v2 在向量空间越接近。

SimHash是一种局部敏感哈希算法,感兴趣的读者可以读一下笔者之前梳理的文章,进行扩展阅读 😃:)

  1. 向量相似搜索绕不开的局部敏感哈希
  2. Faiss PQ 乘积量化
  3. 一文读懂 Faiss 乘积量化(PQ)索引技术
  4. 一文读懂局部敏感哈希:原理、应用与实践
  5. 局部敏感哈希实践:以四维空间中随机投影法为例
  6. 工业级向量检索核心技术:IVF-PQ原理与全流程解析

ETA模型流程

与SIM类似,区别在于对长期序列的特征提取,实现了long seq emb的端到端训练。ETA首先将target item和long seq分别经过函数 f ( ⋅ ) f(·) f() 计算相似度,先对emb进行SimHash得到二进制向量,再计算pair emb的海明距离,选topK个emb和target item做MHA,最后和其他特征concat执行ctr任务。

现有两阶段方法中,检索模型和CTR模型单独训练,信息有Gap,导致检索的TopK非CTR所需真实TopK,损害性能。而ETA-Net中ETA和BaseModel端到端训练更新,SimHash不涉及可训练参数,直接对Attention的Q和K进行Hash签名,随Attention训练更新,保障模型一致性。

预测阶段优化

预测阶段和训练阶段模型结构类似,由于SimHash函数固定,模型产出后,离线预计算Q和K的SimHash值,将HashQ和HashK的二进制向量存于embedding lookup table,预测时直接查表得item->SimHash映射,减少线上预测时间复杂度。GSU主要耗时在海明距离异或运算(时间复杂度 O ( 1 ) O(1) O(1)),GSU总时间复杂度压缩到 O ( L ) O(L) O(L) L L L 为序列长度)。

三、SDIM:哈希采样的轻量级方案

在这里插入图片描述

SDIM是在ETA基础上更进一步,ETA优化GSU模块,加速寻找用户长期序列中与target item相似度最高的k个item;SDIM借鉴此思想,通过计算SimHash后直接得到target item相似度最高的k个item pooling后的embedding。论文参考:Sampling Is All You Need on Modeling Long-Term User Behaviors for CTR Prediction
在这里插入图片描述

模型结构

假设有 m m m 个hashcode函数(如图例中4个),为每个item计算四个hash值,每 τ \tau τ(图例中2)个hash值为一组(下图中每隔2bits组成黄色和绿色的小方块),每个item有 m / τ m/\tau m/τ(图例中2)组hash签名。

  • 在user behaviour部分,以 s 1 s1 s1 为例,hash签名为 ( 1 , − 1 ) (1,-1) (1,1) ( 1 , − 1 ) (1,-1) (1,1),分别映射到两个hash值域,相同hash签名聚合(如黄色值域 ( 1 , − 1 ) (1,-1) (1,1) s 0 s0 s0 s 1 s1 s1 聚合,绿色值域 ( 1 , − 1 ) (1,-1) (1,1) s 1 s1 s1 s 3 s3 s3 聚合)。
    • 聚合方法就是先按位相加,再做L2-normalization。这样,就把user behavior sequence存储成若干buckets
  • 在target item部分,将target item hash成 m / τ m/\tau m/τ 组hash签名。以 q 1 q1 q1 为例,hash签名为 ( − 1 , 1 ) (-1, 1) (1,1) ( − 1 , 1 ) (-1, 1) (1,1),对应到两个hash值域分别是 norm ( s 2 ) \text{norm}(s2) norm(s2) norm ( s 2 ) \text{norm}(s2) norm(s2),则 q 1 q1 q1 计算attention后的兴趣表征为 [ norm ( s 2 ) + norm ( s 2 ) ] / 2 [\text{norm}(s2) + \text{norm}(s2)] / 2 [norm(s2)+norm(s2)]/2
    • 针对一个target item做target attention时,将target item也先SimHash再拆解成
      个hash signature,每个hash signature去上一步得到的buckets提取聚合好的向量。把每个hash signature提取出来的向量再简单pooling一下,就得到了针对这个target item的user interest embedding

在这里插入图片描述
在ETA相关处理流程中,传统方案采用的GSU先筛选出和 target-item 相似的historical items组成的Sub Behavior Sequence,后续还需将SBS传递给ESU(另一个处理单元)执行Attention机制,这一过程会额外产生 O ( B K d ) O(BKd) O(BKd) 的时间复杂度。

与之相比,美团SDIM实现了流程的优化升级。其CTR server直接从数据存储桶(buckets)中提取的结果,近乎等同于Attention机制的最终输出,跳过了GSU筛选SBS及后续ESU处理的中间环节。这种一步到位的设计显著简化了处理流程,大幅提升了数据处理效率,有效降低了整体耗时。

SDIM的所有耗时操作可离线完成,线上只需查表+pooling,进一步降低计算复杂度。在美团数据集上AUC与Transformer相当,推理速度提升10倍,但依赖哈希函数设计。

四、TWIN:一致性两阶段框架

在这里插入图片描述

针对SIM的问题,快手的TWIN模型引入Consistency-Preserved GSU (CP-GSU),通过与ESU的TA相同的目标行为相关性度量,将两阶段转化为端到端训练。实际上,hard-search的召回率只有40%,CP-GSU通过计算attention寻找相似item,而非简单筛选同category item,提升召回。论文参考 TWIN: TWo-stage Interest Network for Lifelong User Behavior Modeling in CTR Prediction at Kuaishou

在这里插入图片描述

Feature Split and Transform

模型将item特征分为两部分:

  • item的meta Feature(固有特征),表示item的固有属性(如视频ID、作者);
  • 用户与item的交互特征(如点击时间戳、播放时长),公式表示为:
    K ≜ [ K h K c ] ∈ R L × ( H + C ) K \triangleq \left[ K_h \quad K_c \right] \in \mathbb{R}^{L \times (H + C)} K[KhKc]RL×(H+C)
    L L L 表示序列长度, H H H 表示固定特征个数, C C C 表示交互特征个数)。在交互特征中,将特征映射成1维:
    K c W c ≜ [ K c , 1 w 1 c , … , K c , J w J c ] K_c W^c \triangleq \left[ K_{c,1} \mathbf{w}_1^c, \quad \dots \quad, K_{c,J} \mathbf{w}_J^c \right] KcWc[Kc,1w1c,,Kc,JwJc]
    K c , j K_{c,j} Kc,j 表示第 j j j 个交互特征, W j c W_j^c Wjc 表示第 j j j 个交互特征的转换矩阵,转换后矩阵维度是 L × C L \times C L×C)。

原本线上attention的时间复杂度是 L ∗ ( H + C ) ∗ d L*(H+C)*d L(H+C)d,由于固定特征 H H H 与用户无关,这部分attention计算可离线提前算好存起;交互特征维度压缩到1维( d = 1 d=1 d=1),优化后时间复杂度减少到 L ∗ C L*C LC

Efficient Target Attention

文章提出一种高效计算attention的方式:
α = ( K h W h ) ( q ⊤ W q ) ⊤ d k + ( K c W c ) β \alpha = \frac{(K_h W^h)(\mathbf{q}^{\top} W^q)^{\top}}{\sqrt{d_k}} + (K_c W^c) \boldsymbol{\beta} α=dk (KhWh)(qWq)+(KcWc)β

这个地方个人理解,其实是一种类似 EdgeRec 中 Reliable attention 的操作,其实本质上还是如何把信息融入到 QK中,既然可以乘(类Reliable attention操作),那也可以加!!!

其中 K h W h K_h W^h KhWh 直接从离线取结果,与query计算相似度; K c W c K_c W^c KcWc 作为bias,不与query计算。结合Feature Split and Transform思想,实现attention的低复杂度计算。在CP-GSU中,取出top100的 α \alpha α 对应的item,送给ESU进行多头self-attention的计算。在ESU中,与CP-GSU计算attention的方法相同。

TWIN通过降低attention的复杂度,实现了GSU到ESU的两阶段到端到端的转换,在快手460亿规模数据集上CTR提升了4.1%,且通过优化在线基础设施,计算瓶颈降低了99.3%,但冷启动适应性差。

五、TWIN-v2:层次聚类的超长效扩展

在这里插入图片描述

TWIN-v2针对用户终身行为序列(如 1 0 6 10^6 106 级长度)提出层次聚类压缩方案。论文参考:TWIN V2: Scaling Ultra-Long User Behavior Sequence Modeling for Enhanced CTR Prediction at Kuaishou

个人理解:非常类似于 ANN 检索中,倒排+PQ检索的办法,第一步先通过倒排缩小范围,第二步再进行 TWIN-v1 的操作,可以看看 工业级向量检索核心技术:IVF-PQ原理与全流程解析
的做法。

  • 离线聚类:将用户行为按完播率分组,递归对每组进行K-means聚类,生成虚拟Item代表聚类中心。数值特征取均值 v cluster num = 1 N ∑ i = 1 N v i num \mathbf{v}_{\text{cluster}}^{\text{num}} = \frac{1}{N} \sum_{i=1}^N \mathbf{v}_i^{\text{num}} vclusternum=N1i=1Nvinum,类别特征取最近邻Item的特征 v cluster cat = v nearest cat \mathbf{v}_{\text{cluster}}^{\text{cat}} = \mathbf{v}_{\text{nearest}}^{\text{cat}} vclustercat=vnearestcat,大幅压缩序列长度(如 1 0 5 → 1 0 3 10^5 \to 10^3 105103)。
  • 在线检索:使用聚类中心的特征进行GSU检索,ESU阶段通过聚类感知目标注意力聚合兴趣,计算目标Item与聚类的相关性得分时考虑聚类中的行为数量 n n n 作为权重:
    α cluster = n ⋅ cosine ( q , v cluster ) ∑ c n c ⋅ cosine ( q , v c ) \alpha_{\text{cluster}} = \frac{n \cdot \text{cosine}(\mathbf{q}, \mathbf{v}_{\text{cluster}})}{\sum_{c} n_c \cdot \text{cosine}(\mathbf{q}, \mathbf{v}_c)} αcluster=cnccosine(q,vc)ncosine(q,vcluster)
    实验表明,TWIN-v2在快手超长效序列上的CTR提升了7.6%,且通过分层聚类有效平衡了精度与效率,不过聚类参数调优较为复杂。

总结与展望

模型核心技术优势局限性
SIM两阶段检索(GSU+ESU)工程友好,低延迟两阶段目标不一致
ETASimHash+海明距离检索端到端高效,适合大规模数据依赖预训练Embedding质量
SDIM哈希采样+分桶聚合轻量级,线上计算极简单哈希函数设计影响性能
TWIN一致性GSU+特征解耦端到端一致性,精度显著提升冷启动适应性差
TWIN-v2层次聚类+虚拟Item超长效序列处理,精度效率平衡聚类参数调优复杂

这些模型的演进展现了长序列建模从两阶段割裂到端到端统一、从高耗时到高效计算的发展路径。未来,多模态融合、动态兴趣建模、更高效的检索算法(如HNSW)及冷启动优化将是重要方向,有望进一步推动推荐系统在复杂场景下的性能突破。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2341118.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux下 REEF3D及DIVEMesh 源码编译安装及使用

目录 软件介绍 基本依赖 一、源码下载 1、REEF3D 2、DIVEMesh 二、解压缩 三、编译安装 1、REEF3D 2、DIVEMesh 四、算例测试 软件介绍 REEF3D是一款开源流体动力学框架,提供计算流体力学及波浪模型。软件采用高效并行化设计,可以在大规模处理器…

嵌入式软件测试的革新:如何用深度集成工具破解效率与安全的双重困局?

在汽车电子、工业控制、航空航天等嵌入式开发领域,团队常面临一个看似无解的悖论:如何在保证代码安全性的前提下,大幅提升测试效率? 传统测试工具往往需要搭建独立环境、插入大量桩代码,甚至需要开发者手动编写测试用例…

Ubuntu24.04安装ROS2问题

1,根据官方指导安装,安装到步骤: sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg 时遇到问题。导致sudo apt update一直报错: 找了几天的资料…

【图问答】DeepSeek-VL 论文阅读笔记

《DeepSeek-VL: Towards Real-World Vision-Language Understanding》 1. 摘要/引言 基于图片问答(Visual Question Answering,VQA)的任务 2. 模型结构 和 三段式训练 1)使用 SigLIP 和 SAM 作为混合的vision encoder&#xf…

【专题刷题】滑动窗口(二):水果成篮,所有字母异位词,乘积小于 K 的子数组

📝前言说明: 本专栏主要记录本人的基础算法学习以及LeetCode刷题记录,按专题划分每题主要记录:(1)本人解法 本人屎山代码;(2)优质解法 优质代码;&#xff…

深入理解React中的Props与State:核心区别与最佳实践

在React开发中,props和state是构建交互式UI的两大基石。许多React初学者常常混淆这两者的概念,导致组件设计出现反模式。本文将全面剖析props与state的本质区别,通过实际场景说明它们的适用边界,并分享高效管理组件数据的实践经验…

STM32单片机入门学习——第46节: [14-1] WDG看门狗

写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难,但我还是想去做! 本文写于:2025.04.23 STM32开发板学习——第46节: [14-1] WDG看门狗 前言开发板说明引用解答和科普一、…

n8n 中文系列教程_05.如何在本机部署/安装 n8n(详细图文教程)

n8n 是一款强大的开源工作流自动化工具,可帮助你连接各类应用与服务,实现自动化任务。如果你想快速体验 n8n 的功能,本机部署是最简单的方式。本教程将手把手指导你在 Windows 或 MacOS 上通过 Docker 轻松安装和运行 n8n,无需服务…

2025第十六届蓝桥杯python B组满分题解(详细)

目录 前言 A: 攻击次数 解题思路: 代码: B: 最长字符串 解题思路: 代码: C: LQ图形 解题思路: 代码: D: 最多次数 解题思路: 代码: E: A * B Problem 解题思路&…

Kafka 面试,java实战贴

面试问题列表 Kafka的ISR机制是什么?如何保证数据一致性? 如何实现Kafka的Exactly-Once语义? Kafka的Rebalance机制可能引发什么问题?如何优化? Kafka的Topic分区数如何合理设置? 如何设计Kafka的高可用跨…

linux多线(进)程编程——(9)信号量(一)

前言 在找到了共享内存存在的问题后,进程君父子着手开始解决这些问题。他们发明了一个新的神通——信号量。 信号量 信号量是一个计数器,用于管理对共享资源的访问权限。主要特点包括: (1)是一个非负整数 &#xff…

PFLM: Privacy-preserving federated learning with membership proof证明阅读

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目…

图片转base64 - 加菲工具 - 在线转换

图片转base64 - 加菲工具 先进入“加菲工具” 网 打开 https://www.orcc.top, 选择 “图片转base64”功能 选择需要转换的图片 复制 点击“复制”按钮,即可复制转换好的base64编码数据,可以直接用于img标签。

opencv 对图片的操作

对图片的操作 1.图片镜像旋转(cv2.flip())2 图像的矫正 1.图片镜像旋转(cv2.flip()) 图像的旋转是围绕一个特定点进行的,而图像的镜像旋转则是围绕坐标轴进行的。图像的镜像旋转分为水平翻转、垂直翻转、水平垂直翻转…

LabVIEW数据采集与传感系统

开发了一个基于LabVIEW的智能数据采集系统,该系统主要通过单片机与LabVIEW软件协同工作,实现对多通道低频传感器信号的有效采集、处理与显示。系统的设计旨在提高数据采集的准确性和效率,适用于各种需要高精度和低成本解决方案的工业场合。 项…

【Easylive】​​Gateway模块 bootstrap.yml 解析

【Easylive】项目常见问题解答(自用&持续更新中…) 汇总版 Gateway模块 bootstrap.yml 常规解析 该配置文件定义了 Spring Cloud Gateway 的核心配置,包括 环境配置、服务注册、动态路由规则 等。以下是逐项解析: 1. 基础配…

matlab 环形单层柱状图

matlab 环形单层柱状图 matlab 环形单层柱状图 matlab 环形单层柱状图 图片 图片 【图片来源粉丝】 我给他的思路是:直接使用风玫瑰图可以画出。 rose_bar 本次我的更新和这个有些不同!是环形柱状图,可调节细节多; 只需要函数…

文献×汽车 | 基于 ANSYS 的多级抛物线板簧系统分析

板簧系统是用于减弱或吸收动态系统中发生的应力、应变、偏转和变形等破坏性因素的机械结构。板簧系统可能对外力产生不同的响应,具体取决于其几何结构和材料特性。板簧系统的计算机辅助分析对于高精度确定系统的变形特性和结构特性至关重要。 在这项工作中&#xff…

RHCE 练习二:通过 ssh 实现两台主机免密登录以及 nginx 服务通过多 IP 区分多网站

一、题目要求 1.配置ssh实现A,B主机互相免密登录 2.配置nginx服务,通过多ip区分多网站 二、实验 实验开始前需准备两台 linux 主机便于充当服务端以及客户端,两台主机 IP 如下图: 实验1:配置 ssh 实现 A&#xff0…

瑞吉外卖-分页功能开发中的两个问题

1.分页功能-前端页面展示显示500 原因:项目启动失败 解决:发现是Category实体类中,多定义了一个删除字段,但是我数据库里面没有is_deleted字段,导致查询数据库失败,所以会导致500错误。因为类是从网上其他帖…