相似的外形,不同的聚合
标准 attention 对一行 scores 做 softmax,权重总和为 1。HSTU 的核心变化包含 pointwise activated aggregation,用 SiLU 等逐点函数处理带位置/时间偏置的 scores,然后聚合 V,再归一化与门控。它没有序列维度的 softmax,因此不能把矩阵直接解释为概率分布。
本章的单头教学式为 ,。N 在实验里是固定序列长度;真实实现的缩放、head layout、bias 和归一化请对照官方代码。
四个投影分别流向哪里?
输入 [B,T,D] 经过 norm 与投影产生 U/V/Q/K,Q/K 控制匹配,V 被聚合,U 负责输出门控。Q/K 的 head dimension 可以与 U/V 不同。融合投影可减少多个小算子的开销,但 shape 拆分必须与权重布局一致。
import torch
import torch.nn.functional as F
q, k, v = [torch.randn(1,4,8) for _ in range(3)]
mask = torch.ones(4,4,dtype=torch.bool).tril()
a = F.silu(q @ k.transpose(-2,-1)) / 4
a = a.masked_fill(~mask, 0)
y = a @ v
print(a.sum(-1)) # 不要求等于 1
因为 SiLU 在部分负输入上为负,聚合可能带负系数。不要计算“attention entropy”后把它当概率熵,除非先定义有意义的新度量。
时间偏置不等同于固定遗忘
相对位置与真实经过时间可以区分“连续三个动作”和“跨三个月的三个动作”。真实论文与实现中的 bias 可学习且有分桶等细节。下方的 只是可解释的教学偏置,不代表论文的完整参数化。
增加 α 后更早位置可能变负;结合 norm 与门控,最终影响不一定单调。要通过输出和 ablation 检查,而非仅凭热力图颜色猜推荐结果。
自测
问题: 把 softmax 换成 SiLU,就完整实现 HSTU 了吗?
展开答案
没有。还涉及数据组织、投影、输出门控、归一化、位置/时间偏置及系统优化。Notebook 标注为 HSTU-inspired 教学模型,不冒充完整复现。原始资料与继续阅读
资料核对:2026-09-10。教学示例不代表生产基准;框架 API 和模型支持请以所链接版本为准。
交互实验 · 实时数值计算
HSTU 式聚合不要求权重和为 1
固定二维 Q/K,因果遮罩,教学时间偏置 −α(i−j)。显示 SiLU(QKᵀ+bias)/4;完整 HSTU 还有 U/V 投影、归一化、门控和残差。
| Q / K | t0 | t1 | t2 | t3 |
|---|---|---|---|---|
| t0 | 0.183 | 0.000 | 0.000 | 0.000 |
| t1 | -0.047 | 0.183 | 0.000 | 0.000 |
| t2 | 0.000 | 0.078 | 0.440 | 0.000 |
| t3 | -0.047 | -0.047 | -0.067 | 0.243 |
每行的总和: 0.183 / 0.136 / 0.518 / 0.081
增大 α 后,过去位置可能得到负值而不是概率意义上的“较少关注”。不要把 softmax 的熵分析直接用于这张矩阵。
逐格检查张量、运行实验;环境要求与执行状态见首个单元。
在 Colab 打开 ↗下载 Notebook