一、标准Transformer的完整网络结构
1. 整体架构
Transformer由编码器(Encoder)和解码器(Decoder)堆叠而成,主要用于序列到序列任务(如机器翻译)。其核心是多头自注意力机制和前馈神经网络。
2. 计算公式
(1)输入表示
- 词嵌入:
X = E(W) ∈ ℝ^(L×d_model),其中W是词索引序列,E是嵌入矩阵。 - 位置编码(正弦/余弦函数或可学习):
P(pos,2i) = sin(pos/10000^(2i/d_model))
P(pos,2i+1) = cos(pos/10000^(2i/d_model)) - 输入向量:
H⁰ = X + P
(2)编码器层(共N层)
每层包含两个子层:
H^(l) = LayerNorm( MHAttention(H^(l-1)) + H^(l-1) ) # 子层1:多头注意力 + 残差 & 层归一化
H^(l) = LayerNorm( FFN(H^(l)) + H^(l) ) # 子层2:前馈网络 + 残差 & 层归一化
a. 多头自注意力(Multi-Head Self-Attention)
- 将输入投影到
h个头:
Q_i = H W_i^Q, K_i = H W_i^K, V_i = H W_i^V,其中W_i^Q, W_i^K, W_i^V ∈ ℝ^(d_model×d_k) - 每个头的缩放点积注意力:
Attention(Q_i, K_i, V_i) = softmax( (Q_i K_i^T) / √d_k ) V_i - 多头拼接与输出投影:
MultiHead(H) = Concat(head₁, ..., head_h) W^O
b. 前馈神经网络(FFN)
FFN(x) = max(0, x W₁ + b₁) W₂ + b₂
其中W₁ ∈ ℝ^(d_model×d_ff), W₂ ∈ ℝ^(d_ff×d_model),d_ff通常为4×d_model。
(3)解码器层(共N层)
每层包含三个子层:
- 掩码多头自注意力(防止看到未来信息)
- 编码器-解码器注意力(以编码器输出为K、V)
- 前馈网络
3. 输出层
- 线性投影:
y = H^(N) W_y - Softmax:
p = softmax(y)
二、HSTU(Hierarchical Sequential Transduction Unit)网络结构
1. 整体设计理念
HSTU是纯编码器架构,专为推荐任务设计。其核心创新是用门控注意力完全替代FFN,并采用点式聚合注意力以适应超长用户行为序列。
2. 计算公式
(1)输入表示
- 行为序列编码:将用户历史行为(物品ID、行为类型、时间戳)编码为交错序列:
X = [e(item₁)⊕e(action₁), e(item₂)⊕e(action₂), ...] ∈ ℝ^(L×d) - 相对注意力偏置:引入位置
p和时间t的相对偏置rab^(p,t)。
(2)HSTU单元(单层)
每个单元包含三个连续操作:
a. 逐点投影(Pointwise Projection)
U, V, Q, K = Split( ϕ₁( X W_proj + b_proj ) )
其中:
W_proj ∈ ℝ^(d×4d),将输入投影到4倍维度。ϕ₁是SiLU激活函数:SiLU(x) = x · σ(x)。- 输出分割为四个矩阵:
U, V, Q, K ∈ ℝ^(L×d),分别作为门控、值、查询、键。
b. 空间聚合(Spatial Aggregation)
A = ϕ₂( (Q K^T) / √d_k + rab^(p,t) )
Context = A V
其中:
ϕ₂是点式聚合函数(通常为SiLU),替代Softmax,保持注意力分数的绝对值强度。rab^(p,t)是位置与时间的相对偏置项。
c. 逐点变换(Pointwise Transformation)
Y = f₂( LayerNorm( Context ⊙ U ) )
其中:
⊙是逐元素乘法(Hadamard积),U作为动态门控调制聚合信息。f₂是线性输出层:f₂(z) = z W_out + b_out,W_out ∈ ℝ^(d×d)。- 注意:此处没有FFN,门控乘法
Context ⊙ U承担了非线性变换功能。
(3)堆叠与输出
- 多个HSTU单元堆叠:
H^(l) = HSTU_Unit(H^(l-1)) - 最终序列表示用于推荐任务:
- 召回:预测下一个物品的概率
p(item_{L+1} | H^(N)) - 排序:对候选物品打分
p(action | H^(N), e(candidate))
- 召回:预测下一个物品的概率
三、Transformer与HSTU的关键对比
| 组件 | Transformer | HSTU |
|---|---|---|
| 核心架构 | 编码器-解码器(或纯编码器) | 纯编码器,针对推荐序列优化 |
| 注意力归一化 | Softmax(概率分布,权重和为1) | 点式聚合(如SiLU),保留绝对值强度 |
| FFN | 两层MLP:FFN(x)=max(0,xW₁+b₁)W₂+b₂ | 完全删除,由门控注意力替代 |
| 门控机制 | 无专门门控 | 引入门控矩阵U,动态调制注意力输出 |
| 投影输出 | Q、K、V三组 | U、V、Q、K四组,并行计算 |
| 位置编码 | 绝对位置(正弦/可学习) | 相对注意力偏置rab^(p,t)(含时间信息) |
| 非线性激活 | FFN中使用ReLU/GELU | 投影使用SiLU,聚合使用SiLU |
| 计算复杂度 | O(L²·d)(注意力)+ O(L·d·d_ff)(FFN) | O(L²·d)(注意力),但通过SLA降至O(L·d) |
| 内存占用 | 较高(FFN产生大量激活) | 降低约2.3倍(无FFN,激活量少) |
| 设计目标 | 通用序列建模(NLP等) | 超长用户行为序列推荐(万级以上长度) |
四、结构差异图示
Transformer编码器层:
输入 → 多头注意力 → Add & Norm → FFN → Add & Norm → 输出
HSTU单元:
输入 → 投影为(U,V,Q,K) → 空间聚合(A V) → 门控调制(⊙U) → LayerNorm → 线性输出 → 输出
↓ ↓
SiLU激活 点式聚合(SiLU)
五、公式对比总结
| 操作 | Transformer | HSTU |
|---|---|---|
| 注意力输出 | softmax(QK^T/√d_k)V | ϕ₂(QK^T/√d_k + rab)V |
| FFN/替代 | FFN(x)=GELU(xW₁)W₂ | 无FFN,用(A V) ⊙ U实现非线性 |
| 门控 | 无 | U = SiLU(X W_proj[:, d:2d]) |
| 残差连接 | 每个子层后:LayerNorm(x+Sublayer(x)) | 保留,但仅用于整个单元输出 |
六、设计动机差异
- Transformer:为通用序列设计,FFN提供强大的特征变换能力,Softmax确保注意力权重归一化。
- HSTU:为推荐任务特化:
- 删除FFN:减少内存/计算,适合工业级大规模训练。
- 点式聚合:保留用户对物品的“兴趣强度”绝对值(如点击时长、频率)。
- 门控注意力:动态过滤信息,适应非平稳的推荐数据流。
- 相对偏置:更好捕捉序列中的时序模式。
通过以上对比可见,HSTU在保留Transformer核心注意力机制的同时,针对推荐系统的数据特性(超长序列、强度信号、流式更新)和工程约束(内存、吞吐)进行了深度定制,实现了从通用架构到领域特化架构的演进。
8681

被折叠的 条评论
为什么被折叠?



