Lecture07
\makecscover
来源审计与课程地图:同一个 attention,两种计算轴
本讲由两个相互咬合的部分组成。Aidan Gomez 先用约十五分钟回顾 Transformer 的起源与训练直觉;随后 Jannik Kossen 与 Neil Band 介绍 Non-Parametric Transformer(NPT)。若只按演讲顺序做摘要,二者像是“基础复习加一篇论文”;真正的教学主线却更统一:Transformer 首先把 attention 放到同一序列的 tokens 之间,NPT 再把 attention 的作用轴提升到同一数据集的 datapoints 之间。
本次重写以 Stanford Online 官方上传 zejXBg-2Vpk 为时间基准。视频提供 1,476 条可解析的官方手动英文字幕,但没有公开独立 slide PDF,因此从 1080p 录像中恢复并人工筛选 28 张教学页。渐进动画只保留最终完整状态或真正有独立教学作用的中间状态;Q&A 中反复跳回的旧页、空白转场与片尾被省略,口头解释则进入 teacher-voice ledger 与正文。
\lecturefigure{slide-01-transformers-title.jpg}{第一部分标题:Transformer 的简史与直觉。}{Stanford Online 官方视频 00:00:46--00:01:07。}
这张标题页提醒我们,Gomez 的任务不是重新讲完一门 Transformer 课,而是抽出三个决定后续故事的机制:self-attention、multi-head attention,以及可以并行训练的 autoregressive decoder。理解这三个机制后,读者才容易看出 NPT 的关键创新并不是“又发明一种 attention”,而是重新定义 attention 的对象。
\lecturefigure{slide-02-transformer-overview.jpg}{Transformer 概览:multi-head attention、self-attention 与 fast autoregressive decoding。}{Stanford Online 官方视频 00:01:08--00:01:41。}
整讲的一个压缩问题
当模型预测一个样本时,它只能依赖“该样本的特征 + 已经压入参数的训练经验”,还是可以在推理时直接读取其他训练样本?标准 supervised neural network 通常采用前者;NPT 尝试学习后者,而且让“读哪些样本、如何组合它们”由 attention 端到端决定。
\teachervoice{Gomez 把 Transformer 的贡献概括为三个组合件,而不是某个孤立公式。这个视角很重要:后来成为标准配置的 LayerNorm、learning-rate warmup、初始化和 residual 细节,当时都还是会显著影响成败的实验变量。}
阅读路线
接下来先建立 token-level attention 与 autoregressive training 的最小数学框架,再转向 NPT 的 dataset-level input contract。实验部分不会只复述“排名很好”,而会依次回答四个更强的问题:NPT 是否竞争力足够、是否能表示跨样本算法、是否真的使用其他样本、以及这种依赖具有怎样的结构。
两条轴不要混淆
| 机制 | 被 attention 比较的对象 | 主要问题 |
|---|---|---|
| 序列 self-attention | 一个样本内部的 tokens / attributes | 句内或样本内有哪些元素相关? |
| NPT 的 ABD | 同一批次中的 datapoints / rows | 当前样本应从哪些其他样本读取信息? |
| NPT 的 ABA | 一个 datapoint 内部的 attributes | 一行内部的字段应怎样变换与交互? |
本章小结
本讲不是两个无关主题的拼接,而是 attention 作用域的逐级扩展。第一部分解释并行训练和序列关系;第二部分把数据集本身变成模型输入,使预测可以显式依赖其他 datapoints。
Self-Attention:从两条序列对齐到序列内部关系
传统 encoder--decoder attention 通常让 target-side query 去读取 source-side keys 与 values;self-attention 则令 query、key、value 来自同一个表示集合。这个变化看似只是在函数调用里把三个输入设成相同张量,统计含义却发生了改变:模型不再只做跨序列对齐,而开始学习一个样本内部的关系图。
\lecturefigure{slide-03-self-attention.jpg}{Self-attention 把 source 与 target 设为同一序列,学习 intra-sequence relations。}{Stanford Online 官方视频 00:01:42--00:02:39。}
设输入表示为 \(X\in\mathbb{R}^{m\times d_{\mathrm{model}}}\),scaled dot-product attention 写为
- \(m\):序列长度,也就是参与关系建模的 token 数量;
- \(W_Q,W_K,W_V\):把输入投影为 query、key、value 的可学习矩阵;
- \(d_k\):每个 key/query 的维度,\(\sqrt{d_k}\) 用于控制 dot product 的尺度;
- \(A_{ij}\):第 \(i\) 个 token 从第 \(j\) 个 token 读取信息的归一化权重;
- \(Z_i\):第 \(i\) 个 token 聚合所有 value 后得到的新表示。
\teachervoice{讲者用 “blue ball” 说明 self-attention 的语义:模型应学会把形容词 blue 与它修饰的名词 ball 关联起来。这个例子不是在宣称某个 head 必然对应语法树,而是在强调 attention weight 可以承载输入内部的关系假设。}
Attention weight 不是自动获得的解释
\(A_{ij}\) 是一次前向计算中的信息混合权重。它能提示模型正在读取哪里,但不能单独证明某条语言学关系、因果关系或决策理由。解释时还需结合 value 内容、后续层、ablation 或 intervention。
Multi-Head Attention:并行学习不同关系子空间
单个 attention map 只能在一个投影空间里比较 query 与 key。Multi-head attention 将表示投影到多个较低维子空间,让不同 heads 可以形成不同相似度度量,再把结果拼接并重新混合。读图时应先看“拆分--独立 attention--拼接”这条数据流,而不是把 head 数量理解为简单复制模型。
\lecturefigure{slide-04-multi-head-attention.jpg}{Multi-head attention:多个关系子空间独立计算后再拼接。}{Stanford Online 官方视频 00:02:40--00:03:27。}
- \(H\):attention head 数量;
- \(W_r^Q,W_r^K,W_r^V\):第 \(r\) 个 head 的独立投影;
- \(W^O\):把所有 heads 的输出重新混合回 model dimension;
- 每个 head 可以学习不同关系,但没有机制保证人工可命名的完美分工。
\teachervoice{Gomez 的直觉是:一个 head 可以偏向形容词--名词关系,另一个 head 学别的模式。应把它读成“容量允许关系分工”,而不是“训练后每个 head 都会自动变成清晰的人类概念”。}
为什么除以 \(√d_k\)
若 query 与 key 的各维近似独立且方差为常数,dot product 的方差随 \(d_k\) 增大。过大的 logits 会让 softmax 过早饱和、梯度变小;缩放因子把数值范围拉回更稳定的区域。
Transformer 不是单一 trick
Self-attention 和 multi-head attention 是容易被记住的标题,但 Gomez 特别强调原始系统还依赖一组当时并不显然的训练选择:LayerNorm、residual path、learning-rate warmup、初始化与 Tensor2Tensor 的工程默认值。论文发表后它们逐渐成为常识,容易让后来的读者误以为这些组件天然就该这样组合。
\teachervoice{团队曾反复做 ablation,发现移除 warmup、LayerNorm 或改动看似细小的配置会真实破坏优化。工程结论是:一个架构的成功往往来自彼此配合的机制集合,不能把所有贡献压缩为一张 attention 公式。}
\teachervoice{Gomez 回忆原始工作在约三个月内快速汇聚,并在截止日前冲刺完成;他当时并未预见影响。这段历史更有价值的读法不是制造“天才瞬间”,而是看到成熟工具、多人迭代、实验反馈与时机共同促成新范式。}
本章小结
Self-attention 把关系建模从两条序列之间移到同一输入内部;multi-head attention 提供多个关系子空间。Transformer 的实际可训练性还依赖一套优化与残差工程,不能只由 \(QK^{\top}V\) 一式解释。
Fast Autoregressive Training:为什么 decoder 能并行训练
生成模型在推理时必须逐 token 展开,但训练不必照搬这一串行过程。Transformer decoder 的关键是把真实 target sequence 整体右移后送入模型,并通过 causal mask 保证每个位置只能看到过去。于是所有位置的 next-token loss 可以在一次并行前向中计算。
\lecturefigure{slide-05-decoder-transition.jpg}{Transformer decoder 与 fast autoregressive decoding 的转场。}{Stanford Online 官方视频 00:03:28--00:04:07。}
给定输入 \(x\) 与输出序列 \(y_{1:T}\),autoregressive factorization 为
- \(T\):输出长度;
- \(y_{<t}\):位置 \(t\) 之前的 prefix;
- 推理时必须先得到 \(y_{t-1}\),才能构造下一步条件;
- 训练时已有完整 gold sequence,可以同时构造所有正确 prefixes。
\lecturefigure{slide-06-sequence-generation.jpg}{序列生成:训练目标是学习从输入序列到输出序列的条件映射。}{Stanford Online 官方视频 00:04:08--00:05:19。}
Teacher Forcing:用 gold prefix 训练每一个位置
Teacher forcing(教师强制)指训练时把真实历史 tokens 而非模型自己的采样结果作为 decoder 输入。设右移后的输入为 \(\tilde y=(\langle\mathrm{BOS}\rangle,y_1,\ldots,y_{T-1})\),则一次 forward 可以产生全部位置的 logits,并计算
- \(\theta\):模型参数;
- \(p_{\theta}(y_t\mid y_{<t},x)\):在正确 prefix 下对第 \(t\) 个 target 的概率;
- 每个 \(t\) 的 hidden state 可并行计算,但序列维度仍有 attention 与 memory 成本;
- 训练条件与自由生成条件不同,会形成 exposure bias,但不改变并行训练的正确性。
\lecturefigure{slide-07-autoregressive-decoding.jpg}{推理逐步生成,训练则可以一次喂入完整的正确 target sequence。}{Stanford Online 官方视频 00:05:20--00:06:03。}
\teachervoice{Gomez 称这个细节“有点 subtle,但对训练速度影响巨大”。模型在训练早期即使自己会生成垃圾 token,也仍在正确 prefix 上学习每个 next-token conditional;正是这种并行监督让大规模 Transformer 训练成为可能。}
\lecturefigure{slide-08-teacher-forcing.jpg}{Teacher forcing 的核心问题:如何在一次 decoder 调用中预测所有位置而不泄露答案?}{Stanford Online 官方视频 00:06:04--00:06:33。}
def autoregressive_training(source, target, model):
decoder_input = shift_right(target, bos_token=True)
causal_mask = upper_triangle_is_blocked(len(target))
logits = model(source, decoder_input, causal_mask=causal_mask)
return cross_entropy(logits, target)
Causal Mask:并行不等于允许看未来
上一小节已经说明 gold sequence 为什么能换来并行监督,本小节补上这个技巧成立的必要条件:每个位置的计算图仍必须与 autoregressive factorization 一致。若把完整 target 直接交给 self-attention,位置 \(t\) 可以读取 \(y_t\) 或未来 token,训练任务会退化为抄答案;因此读下面公式时应同时检查“哪些位置可见”和“并行矩阵乘法是否仍被保留”。Causal mask 把 attention logits 的严格上三角设为负无穷:
- \(i\):当前 query 位置;
- \(j\):被读取的 key/value 位置;
- \(j>i\) 的未来位置在 softmax 后权重为零;
- mask 保留并行矩阵计算,同时维护 autoregressive conditional 的信息边界。
\lecturefigure{slide-09-causal-mask.jpg}{完整 causal mask:每个位置只能读取自身与左侧 prefix。}{Stanford Online 官方视频 00:12:36--00:13:04。}
读图:黑白矩阵代表什么
横轴可理解为 key/value 位置,纵轴为 query 位置。允许区域形成下三角;被遮挡的未来区域不会参与归一化。图中 mask 的价值不是节省计算,而是阻止 target leakage,使并行训练仍等价于正确的 next-token likelihood。
训练并行与推理解码不要混为一谈
Teacher forcing 让训练中的所有位置并行,但普通 autoregressive inference 仍需逐步采样,因为下一步输入取决于模型刚生成的 token。KV cache、speculative decoding 等技术优化推理成本,却不是 teacher forcing 本身。
\teachervoice{讲者反复强调“不能向前偷看”:我们已经把正确答案放进 decoder input,如果没有 causal mask,零误差并不意味着模型学会生成,只意味着它发现了数据泄漏。}
本章小结
Autoregressive likelihood 仍按时间分解;teacher forcing 只是利用已知 targets 并行构造所有正确 prefixes。Causal mask 是维持信息边界的必要条件,它把“并行训练”和“未来不可见”同时实现。
NPT 的范式转换:预测时显式读取训练数据
现在把 attention 的对象从 tokens 换成 datapoints。标准 parametric model 在训练后把经验压进参数 \(\theta\),推理一条样本时通常只读取该样本;NPT 则让训练点与测试点共同进入模型,使预测对当前可见数据集保持显式依赖。
\lecturefigure{slide-10-npt-overview.jpg}{NPT 一页概览:dataset-as-input、datapoint self-attention 与 stochastic masking。}{Stanford Online 官方视频 00:17:00--00:17:21。}
这张图给出三个不可删减的组成部分:第一,输入不是单行而是数据集;第二,模型在 rows 之间做 self-attention;第三,masking objective 决定哪些值可见、哪些值需要重建。只保留其中任意两项都不能得到论文所称的 NPT predictive mechanism。
\lecturefigure{slide-11-npt-motivation.jpg}{Parametric prediction 与 NPT:后者让目标行显式读取其他 datapoints。}{Stanford Online 官方视频 00:17:22--00:18:17。}
本讲中“non-parametric”的精确定义
Non-parametric 不等于“没有参数”。NPT 仍有大量可学习的 attention、embedding 与 feed-forward 参数。这里强调的是:预测函数在 inference 时显式依赖 supplied training data,写作 \(p(y_*\mid x_*,\mathcal{D}_{\mathrm{train}})\),而不是只依赖 \(x_*\) 与固定参数 \(\theta\)。
\teachervoice{有人在社交媒体上把 NPT 称作 “k-NN 2.0”。这个说法适合建立直觉:模型会从其他 rows 查找信息;但 NPT 不只按固定距离找邻居,它可以学习多层、任务相关、非线性的 match--transform--aggregate 过程。}
传统 non-parametric models 在哪里
NPT 并未发明 non-parametric prediction。Gaussian process、kernel method 与 k-nearest neighbors 都让预测显式依赖训练数据;deep kernel learning 与 neural process 等工作也尝试结合 representation learning。NPT 的主张更窄:Transformer 可以作为一个通用关系学习器,把检索、比较与聚合共同端到端训练。
\lecturefigure{slide-12-traditional-nonparametric.jpg}{传统 non-parametric models 与深度扩展:NPT 的历史位置。}{Stanford Online 官方视频 00:22:00--00:23:39。}
术语消化:几类 explicit-data prediction
| 方法 | 如何使用训练数据 | 与 NPT 的关系 |
|---|---|---|
| k-NN | 按预设距离检索邻居并投票/平均 | NPT 可学习相似度、聚合与后续变换,不局限于固定距离。 |
| Kernel method | 通过 kernel similarity 加权训练点 | Attention 同样形成数据依赖权重,但具有深层表示和多层组合。 |
| Gaussian process | kernel 定义函数分布,并给出预测不确定性 | NPT 不是标准 GP,也不自动具有一致的 Bayesian uncertainty。 |
| Deep kernel / neural process | 用神经网络学习表示或条件聚合 | 与 NPT 共享“参数化关系学习 + 显式 context”的动机。 |
\teachervoice{Kossen 强调他们想要的是易用、plug-and-play、能适应多种场景的 non-parametric mechanism,而不是依赖复杂专用 inference scheme。这个目标是设计动机,不应被误读成已经证明 NPT 在所有场景都优于经典方法。}
NPT 不是本讲已经完成的 meta-learning 系统
论文实验主要为一个固定数据集训练一个模型,并假设 train/test 来自同一任务分布。Meta-learning 通常要求跨多个任务或数据集迁移。NPT 可以被扩展为把新 dataset 当 context 的系统,但那是讲者讨论的未来方向,不是本讲实验已经证明的能力。
\teachervoice{Q&A 中三位讲者把边界说得很清楚:当前工作仍是标准 supervised learning;多数据集、zero-shot 或少量 gradient step 的 meta-learning 只是值得探索的 framing。}
本章小结
NPT 的新意不是“无参数”,而是把训练 datapoints 保留在预测计算图里,并让 attention 学习如何读取它们。它继承经典 non-parametric intuition,同时以深度表示与多层关系计算扩大可学习机制的范围。
Dataset-as-Input:数据矩阵、mask 与预测契约
要让整个数据集进入模型,首先必须把 supervised-learning notation 改写为一个统一矩阵。NPT 将 rows 视为 datapoints、columns 视为具有共享语义的 attributes;label 也占据某个 attribute column。Mask matrix 决定哪些 entries 被观察,哪些 entries 是模型应预测的未知量。
\lecturefigure{slide-13-entire-dataset-input.jpg}{第一要素:把 entire dataset,即全部 datapoints,作为模型输入。}{Stanford Online 官方视频 00:24:00--00:24:13。}
设
- \(n\):当前 forward 中的 datapoint 数;小数据可为全数据集,大数据通常为 mini-batch;
- \(d\):attributes 数,既包含 input features,也可包含 target columns;
- \(X_{ij}\):第 \(i\) 个 datapoint 的第 \(j\) 个 attribute;
- \(M_{ij}=1\):该 entry 被 mask,需要预测;\(M_{ij}=0\):该 entry 可见。
\lecturefigure{slide-14-datapoint-attention.jpg}{第二要素:在 datapoints 之间应用 self-attention。}{Stanford Online 官方视频 00:24:14--00:24:27。}
在 test-time batch 中,attention 可以同时连接 train--train、test--test 与 train--test rows。这里的“train/test”是由 target visibility 决定的角色:训练 rows 可以暴露部分 labels,测试 rows 的 labels 必须全部遮挡。模型看到同一个矩阵,却通过 mask 知道哪些 entries 可以作为 context。
\lecturefigure{slide-15-masking-objective-overview.jpg}{第三要素:用 masking-based objective 联合学习 target 与 feature reconstruction。}{Stanford Online 官方视频 00:24:28--00:24:41。}
定义 masked 与 observed entries:
NPT 学习
并输出 \(\widehat X\in\mathbb{R}^{n\times d}\)。这种表示把分类、回归、imputation、self-supervision 与 semi-supervision 都转化为“改变 mask 的位置”。
Mask 是任务接口
同一 architecture 可以通过 \(M\) 表达不同问题:遮住测试 rows 的 label column 得到 supervised prediction;随机遮住 feature entries 得到 imputation/self-supervision;遮住多个 target columns 得到 multi-target prediction。模型接口统一,不代表不同任务的数据分布与 loss 已自动统一。
完整 notation:为什么必须把 mask 也输入模型
前面的三张图给出了 dataset、datapoint attention 与 masking objective,本小节把它们收束成一个不会产生歧义的输入接口。读完整 notation 图时应先分清“数值是什么”和“数值是否可见”:同一个零既可能是合法观测,也可能是缺失占位符,仅看 \(X\) 无法分辨。把 \(M\) 与 \(X\) 一同嵌入,相当于显式告诉模型每个值的 epistemic status:它是已知 evidence,还是待预测 query;这也决定 loss 应落在哪些 entries 上。
\lecturefigure{slide-16-full-dataset-mask-notation.jpg}{完整输入契约:dataset \(X\)、mask \(M\)、目标 \(p(X^{\mathcal{M}}\mid X^{\mathcal{O}})\)。}{Stanford Online 官方视频 00:25:06--00:27:15。}
读图:三种颜色与问号
每一行是 datapoint,每一列是语义固定的 attribute。问号不是“值为零”,而是 \(M_{ij}=1\) 的未知 entry。模型需要同时利用同一行其他 features、其他行 features,以及允许暴露的其他行 targets,来重建问号位置。
Test-label leakage 的底线
Stochastic target masking 可以在训练 rows 上保留部分 labels,帮助模型学习跨行 lookup;测试 rows 的真实 labels 永远不能作为输入。若构造 batch 或 mask 时把 test label 暴露,漂亮结果只说明 pipeline 泄漏答案。
\teachervoice{讲者把三要素先整体说出,再逐个展开:数据集作为输入、datapoint attention、masking objective。这个顺序提醒我们,不应只盯 architecture block;真正定义 NPT 的还有 input semantics 与 training task。}
本章小结
NPT 用 \((X,M)\) 统一表示 evidence 与 query。Rows 是 datapoints,columns 是共享语义 attributes,mask 决定预测任务。这个契约使 train/test points 可以共同进入 attention,同时要求严格保护 test targets。
NPT Architecture:在 datapoints 与 attributes 之间交替 attention
输入契约建立后,下一步是决定 attention 沿哪个维度运行。NPT 先对每个 attribute 做类型感知 embedding,得到三维张量;随后在“整行表示”与“行内 attributes”之间反复 reshape,交替执行 Attention Between Datapoints(ABD)和 Attention Between Attributes(ABA)。
Per-Attribute Embedding
不同 columns 可能是 continuous、categorical、position/index 或 target。NPT 不把它们粗暴拼成同一种 token,而为每个 attribute 采用相应 linear/typed embedding,并把 mask information 一起编码。
\lecturefigure{slide-17-per-attribute-embedding.jpg}{每个 attribute 独立嵌入,形成 \(n\times d\times e\) 的表示张量。}{Stanford Online 官方视频 00:27:16--00:27:43。}
记初始表示为
其中 \(e\) 是每个 attribute embedding 的维度。对 categorical value 可使用 learned lookup,对 continuous value 可使用带 column-specific 参数的线性映射;position/type embedding 帮助模型保留 column identity。
为什么 rows 可交换、columns 不可随意交换
Datapoint order 通常没有语义,所以模型应对 row permutation equivariant。Columns 却表示年龄、收入、标签等不同变量;交换 columns 会改变任务,除非连同 column-specific embeddings、mask 与输出语义一起变换。
ABD:把一整行压成 attention token
ABD 需要比较 datapoints,因此先把每一行的 \(d\) 个 attribute embeddings flatten 成长度 \(h=d\cdot e\) 的向量。Self-attention 随后沿 \(n\) 维运行,每个 row 可以从其他 rows 聚合信息。
\lecturefigure{slide-18-flatten-datapoint-attention.jpg}{ABD:将 attributes flatten 后,在 \(n\) 个 datapoints 之间做 self-attention。}{Stanford Online 官方视频 00:27:44--00:29:35。}
- \(R_{\mathrm{row}}\):把每个 datapoint 的 attributes 串成一个 row representation;
- MHSA 的 sequence length 此时是 \(n\),不是 \(d\);
- 一个 ABD layer 学 pairwise row interactions,多层可组合为 higher-order interactions;
- 计算与 memory 的主要项随 \(n^2\) 增长。
ABA:在每一行内部重新组织 attributes
只做 ABD 会把整行当作一个不可分的 token,难以重新编码具体 columns。ABA 把张量恢复为 \(n\times d\times e\),并对每一行独立地沿 \(d\) 个 attributes 做 self-attention,使模型学习 per-datapoint transformation。
- \(H_{i,:,:}\):第 \(i\) 行的 attribute sequence;
- ABA 在各 rows 之间共享参数,但每行独立计算;
- 它学习 attribute interactions,不直接读取其他 datapoints;
- ABD 与 ABA 交替,使“找相关行”和“变换当前行”互相促进。
\lecturefigure{slide-19-abd-aba-architecture.jpg}{完整交替架构:ABD 学跨 datapoint 关系,ABA 学单行变换,并保持 row permutation equivariance。}{Stanford Online 官方视频 00:29:36--00:31:03。}
Permutation equivariance
令 \(P\in\{0,1\}^{n\times n}\) 为 row permutation matrix,NPT 满足
也就是说,打乱输入 rows 只会以同样方式打乱输出 rows,不应改变每个 datapoint 的预测内容。Equivariance 与 invariance 不同:输出不是保持完全不变,而是跟随输入置换。
\teachervoice{讲者强调 ABD 与 ABA 的职责不同:前者捕捉 higher-order relationships between datapoints,后者处理 individual datapoint transformations。把二者都叫“attention block”会丢掉最关键的 tensor axis。}
\teachervoice{Q&A 中作者承认 ABA 不是不可替代的教条:ablation 显示它有益,但若 attribute 数极大,可以考虑用 compact MLP 替代,以降低 attribute dimension 的扩展成本。}
三阶段系统与 masking objective
前两阶段解决“输入如何表示、关系如何传播”,第三阶段决定模型为什么会学会 lookup。NPT 不是先训练普通 classifier 再在推理时临时加入 neighbors;它从训练开始就反复面对被遮住的 features 与 targets,并必须利用可见 entries 重建它们。
\lecturefigure{slide-20-three-stage-overview.jpg}{NPT 三阶段:dataset input、datapoint attention、masking-based objective。}{Stanford Online 官方视频 00:31:04--00:33:33。}
\lecturefigure{slide-21-stochastic-masking-objective.jpg}{Feature masking 与 target masking 的联合目标。}{Stanford Online 官方视频 00:33:34--00:33:52。}
设 \(\mathcal{L}_{\mathrm{Targets}}\) 是被 mask targets 的 negative log-likelihood 或回归 loss,\(\mathcal{L}_{\mathrm{Features}}\) 是随机被 mask feature entries 的辅助重建 loss:
- \(p_{\mathrm{feature}}\):训练时随机遮住 feature values 的概率;
- \(p_{\mathrm{target}}\):训练时随机遮住 training targets 的概率;
- \(\lambda\):target loss 与 auxiliary feature loss 的权衡;
- test time 只对 test targets 做 mask 与评估,不能暴露其真值。
两个 masking term 各自做什么
Feature masking 让模型学习整个数据矩阵的结构,增加 supervision 并提供 regularization;论文 ablation 中它帮助了十个 tabular datasets 中的八个。Target masking 则让部分 training labels 保持可见,使另一些被遮住的 rows 可以学习读取、匹配与变换这些 labels。
\teachervoice{Neil Band 的关键解释是:模型不必把每条 training input--output mapping 全部记进 parameters;它可以把容量用于学习“如何利用其他 training features 与 targets”。这正是 learned k-NN intuition 从比喻变成 objective-level mechanism 的地方。}
def npt_step(dataset, train_rows, test_rows, model):
mask = sample_feature_masks(dataset)
mask |= sample_training_target_masks(train_rows)
mask |= all_test_targets(test_rows)
hidden = per_attribute_embed(dataset, mask)
for _ in range(num_blocks):
hidden = attention_between_datapoints(hidden) # ABD
hidden = attention_between_attributes(hidden) # ABA
prediction = project_all_attributes(hidden)
return masked_entry_loss(prediction, dataset, mask)
Mini-batch approximation改变了 retrieval set
对大数据使用随机 mini-batch 时,某个 query 只能读取同 batch 的 datapoints,而不是全体训练集。增大 batch 提高候选覆盖,却带来 \(O(b^2)\) attention 成本;因此 mini-batching 是统计与系统折中,不是严格等价的全数据计算。
\teachervoice{作者给出具体尺度:不做 mini-batching 时可容纳约 8,000 points;11 million points 的数据集必须依赖 mini-batches。他们也观察到无需“荒谬地大”的 batch 才能学到跨 datapoint 关系,但这仍是经验结论。}
本章小结
NPT 将 \((X,M)\) 嵌入为 \(n\times d\times e\) 张量,交替用 ABD 处理 rows、ABA 处理 columns,并以 masking objective 训练关系性 lookup。Row equivariance、test-label protection 与 quadratic datapoint attention 是理解实现的三条硬约束。
Benchmark Evidence:为什么选择 tabular data,表格应该怎样读
如果只在容易被深度网络统治的 benchmark 上测试,很难判断 dataset-level attention 是否真的有价值。作者选择 tabular data,是因为它覆盖分类与回归、连续与离散字段、数百到千万样本,同时 tree-based boosting 长期强势;这迫使 NPT 与真正有竞争力的非神经 baseline 比较。
\lecturefigure{slide-22-tabular-domain.jpg}{Tabular benchmark:规模、字段类型、任务与强基线都高度多样。}{Stanford Online 官方视频 00:37:16--00:38:07。}
基线与指标速查
| 名称 | 解决机制 | 为什么必须比较 |
|---|---|---|
| XGBoost / LightGBM | 高效 gradient-boosted decision trees | Tabular data 的工业强基线,善于非线性分裂与缺失/稀疏特征。 |
| CatBoost | 针对 categorical features 的 ordered boosting | 防止 NPT 只因类别字段处理更好而获得虚假优势。 |
| Random Forest / GBDT | bagging 或 boosting 的树模型 | 覆盖经典 ensemble family。 |
| MLP | 每行独立的 parametric neural baseline | 检验提升是否来自跨 datapoint mechanism。 |
| TabNet | 面向 tabular data 的 attentive neural model | 比较 domain-specific neural architecture。 |
| k-NN | 固定距离的 local lookup | 对照“learned non-parametric lookup”是否优于简单邻居。 |
| AUROC / Accuracy / RMSE | 二分类排序、多分类正确率、回归误差 | 三类任务指标方向不同,论文统一转为 method rank。 |
\teachervoice{作者选择 tabular domain 不只是因为数据方便,而是因为 general-purpose deep nets 在这里经常输给 boosting;若 NPT 只胜过一个弱 MLP,并不足以支持其通用性主张。}
\teachervoice{团队对 NPT 在 small datasets 上的 robustness 感到意外,而且没有进行极端数量的 hyperparameter 调整。这个口头观察值得记录,但它不替代严格的 tuning-budget 比较。}
Average rank 不是 pooled accuracy
结果页将十个 UCI datasets 按任务分组:四个 binary classification 使用 AUROC,两个 multi-class classification 使用 accuracy,四个 regression 使用 RMSE。对每个 dataset 先给 methods 排名,再在同任务组内取平均;因此数值越小越好,且不能把不同列直接当作同一物理量比较。
\lecturefigure{slide-23-tabular-benchmarks.jpg}{UCI benchmark 的平均排名与 CIFAR-10 早期结果。}{Stanford Online 官方视频 00:38:08--00:40:44。}
| 方法 | Binary AUROC rank | Multi-class accuracy rank | Regression RMSE rank |
|---|---|---|---|
| NPT | \(2.50±0.87\) | \(2.50±0.50\) | \(3.25±1.31\) |
| CatBoost | \(2.75±0.85\) | \(3.50±0.50\) | \(3.00±0.91\) |
| XGBoost | \(4.75±1.25\) | \(2.50±1.50\) | \(3.25±0.63\) |
| MLP | \(5.75±1.49\) | \(3.00±2.00\) | \(5.00±1.22\) |
| k-NN | \(8.25±0.48\) | \(8.50±0.50\) | \(8.75±0.25\) |
读图:先看竞争区间,再看冠军数量
NPT 在 binary 与 multi-class 平均 rank 位于第一梯队,在 regression 与 CatBoost/XGBoost 接近;论文还报告 NPT 在十个 tabular datasets 中四个为 top performer。更稳妥的结论是“跨多种任务具有竞争力”,而不是“统一击败所有 tree methods”。
平均排名隐藏了什么
十个 datasets 数量有限,不同任务组只有二到四个数据集;rank 会丢失绝对 performance gap,也受 tuning protocol 与 dataset selection 影响。标准误差来自 datasets 上的 rank variation,不是一次大样本 accuracy 的置信区间。
\teachervoice{Q&A 花了不少时间澄清 “4 of 10”“2 of 10” 与 standard error。讲义因此必须明确:这些数字首先描述 dataset/task 分组,其次才是 methods 的平均排名,不能从表面小数推出普遍显著优势。}
Image result 的正确边界
论文也在 CIFAR-10 与 MNIST 上测试 NPT。讲座展示的 CIFAR-10 结果使用 CNN encoder 加 NPT,并报告 93.7% accuracy;这说明跨-image datapoint interaction 可以嵌入视觉 pipeline,但不能证明 NPT 取代了视觉 backbone。论文附录中的 linear patching 结果更弱,也反映 input embedding 仍会影响表现。
“通用输入格式”不等于“前端无关紧要”
任何 modality 可 reshape 成 matrix,只说明接口能接收;是否保留局部结构、是否有合适 encoder、数据量与 augmentation 如何设置,仍决定 optimization 与 sample efficiency。NPT 的贡献是新增跨 datapoint mechanism,不是抹去全部 modality knowledge。
本章小结
NPT 在多种 tabular tasks 上进入强基线竞争区,并展示 image extension 的可行性。证据支持“具有竞争力”,但平均 rank、有限 datasets 与不同前端不允许我们宣称它在所有场景普遍最优。
Corruption Experiment:模型是否真的使用其他 datapoints
Benchmark performance 不能直接证明跨 datapoint attention 发挥了作用:一个高容量 NPT 可能学会忽略其他 rows,退化成普通 per-row parametric model。作者因此设计 intervention-like test,在保持当前 target row 不变的同时,破坏所有其他 rows 的关系信息,再观察预测是否恶化。
\lecturefigure{slide-24-corruption-goal.jpg}{Corruption experiment 的目标:禁止模型从其他 datapoints 获得有用关系。}{Stanford Online 官方视频 00:51:16--00:51:31。}
对每个被评估的 target entry \((i,d)\),方法保留第 \(i\) 行,并对其他 rows 的每个 attribute column 独立随机 permutation。可写成
其中每个 column \(j\) 使用独立 permutation \(\pi_j\)。
- 当前 query row \(i\) 不变;
- 单个 column 的 marginal values 大致保留;
- 同一 row 内原有 feature--feature 与 feature--target correspondence 被打散;
- 若预测依赖其他 rows 的结构,corruption 后 performance 应下降。
\lecturefigure{slide-25-corruption-method.jpg}{Corruption method:逐 attribute 打乱其他 rows,保留 query row。}{Stanford Online 官方视频 00:51:32--00:53:01。}
\teachervoice{讲者特别说明不想用简单噪声把输入“弄坏”,因为模型可能只检测到 distribution shift。逐 column permutation 尽量保留 marginal statistics,却摧毁跨字段、跨样本的可用对应关系。}
结果:有些任务强依赖,有些任务主动忽略
若 NPT 在所有数据集都同样依赖其他 rows,corruption 应普遍造成巨大损失;实际结果更细致:Protein 等任务显著恶化,Forest、Kick、Breast Cancer 等几乎不变。这说明 architecture 提供了 relation channel,但 optimization 可以按数据决定是否使用。
\lecturefigure{slide-26-corruption-results.jpg}{破坏其他 datapoints 信息后的 performance change。}{Stanford Online 官方视频 00:53:02--00:54:43。}
| 分类数据集 | CIFAR-10 | Poker | Income | Higgs |
|---|---|---|---|---|
| Accuracy | \(-1.2\) | \(-1.1\) | \(-1.1\) | \(-0.5\) |
| 分类数据集 | MNIST | Forest | Kick | Breast Cancer |
|---|---|---|---|---|
| Accuracy | \(-0.4\) | \(-0.1\) | \(-0.1\) | \(0.0\) |
| 回归数据集 | Yacht | Protein | Boston | Concrete |
|---|---|---|---|---|
| \(/RMSE\) | \(-52%\) | \(-21%\) | \(-20%\) | \(-7%\) |
更有意思的不是“全部下降”
在某些 datasets 上,NPT 发现其他 rows 没有足够价值,于是可以学会忽略它们并退化为近似 parametric predictor;在另一些 datasets 上,corruption 使 performance 严重崩溃。可学习的关键不是固定采用 non-parametric rule,而是选择依赖程度。
Corruption 支持机制依赖,但不是完整因果证明
Performance drop 表明预测利用了被破坏的跨-row structure;它不能单独告诉我们某个 attention head 的唯一因果路径,也不能推出“non-parametric 普遍优于 parametric”。Corruption 同时改变了高阶联合分布,仍可能引入模型敏感的 out-of-distribution pattern。
\teachervoice{论文与讲座都谨慎指出:Forest、Kick、Breast Cancer 几乎不受影响,并非实验失败,而是模型可能判断跨 datapoint lookup 没有优势。这种可退化性恰好支持“依赖程度由数据学习”的主张。}
本章小结
Corruption test 从“模型有跨行 attention”推进到“模型在若干真实任务中实际依赖跨行信息”。证据来自反事实式的 performance change,但实验不能识别唯一机制,也不能泛化成 parametric 与 non-parametric 的普遍优劣结论。
Duplicate 与 Intervention:把 learned lookup 拆成可观察步骤
真实数据上的 corruption 说明关系通道被使用,却仍不清楚模型学到了什么算法。Semi-synthetic duplicate task 构造一个更透明的机制:复制若干 rows,把 originals 的 target 遮住、duplicates 的 target 暴露;正确预测必须匹配对应 row、读取 target、再复制回 query。
\lecturefigure{slide-27-duplicate-intervention.jpg}{Semi-synthetic duplicate task、attention、预测与 target intervention 的完整证据链。}{Stanford Online 官方视频 00:54:44--01:00:41。}
读图:五个 panel 的推理顺序
- (a) 构造 original/duplicate rows,并遮住 originals 的 targets;
- (b) 检查 ABD attention 是否集中到对应 duplicates;
- (c) 验证 predictions 与 duplicate targets 高度相关;
- (d) 在 test time 主动改变某个 duplicate target,不重新训练;
- (e) 观察 original prediction 是否沿 intervention 变化。
这个任务要求模型学会一个组合程序:
- \(j(i)\):与 original row \(i\) 对应的 duplicate index;
- match 由 learned attention representation 完成,而不是预写 row ID;
- intervention 改变 \(y_{j(i)}^{\mathrm{dup}}\),其他机制保持不变;
- 若 \(\widehat y_i\) 随 intervention 稳定移动,说明模型使用了可泛化的 lookup path。
\teachervoice{讲者报告 intervention 后 prediction 与 duplicate value 的相关性仍约为 99.6%。关键是模型未重新训练,却跟随一个训练分布之外的 target value 改变;这比只看普通 test error 更接近机制检验。}
为什么它不只是 nearest neighbor
Plain k-NN 也能找到 duplicate 并复制 target,因此基础任务还不足以展示 NPT 的可学习关系变换。作者进一步把 duplicate target 加一;固定 copy rule 会系统性出错,而 NPT 可以学习先 lookup 再减一。更一般地,NPT 可以学习 joint feature--target relation,而非只在固定 metric 下做局部平均。
NPT 学到的不是一个静态邻居表
最强证据不是“attention 看向相似 row”,而是模型在 match 之后还能执行 task-dependent transformation。多层 ABD/ABA 使 lookup、attribute reasoning 与 value transformation 可以组成一段 learned algorithm。
\teachervoice{Kossen 主动承认基础 duplicate task 可被 nearest neighbor 解决,然后提出加一变换来提高难度。这种论证方式值得学习:不要回避简单 baseline,而要构造能区分机制能力的最小实验。}
Semi-synthetic success 的外推边界
任务被刻意设计为存在清晰 duplicate 与可验证 intervention,因此适合证明 representational capability。现实数据通常没有完美匹配、干净单一机制或可操控 labels;成功不等价于 NPT 已掌握一般 causal reasoning。
本章小结
Duplicate/intervention experiment 将跨 datapoint reasoning 拆成 match、read、transform、write 四步,并用 test-time intervention 验证 prediction 随 context 改变。它是强机制证据,但仍局限于透明的 semi-synthetic construction。
限制、连接与未来:dataset attention 的代价是什么
NPT 的表达力来自让 datapoints 彼此可见,同一设计也制造最大系统瓶颈。若 batch 中有 \(b\) 个 datapoints、每行 flatten 后 hidden dimension 为 \(h=de\),ABD attention map 大小为 \(b\times b\),主要计算可近似写为
- \(b\):实际参与一次 relational lookup 的 datapoint 数;
- \(h\):每个 row 的 hidden width;
- 增大 \(b\) 提升候选 context 覆盖,却以 quadratic cost 增长;
- 随机 mini-batch 降低成本,但会遗漏 batch 外的潜在关键 neighbors。
\lecturefigure{slide-28-summary-future-work.jpg}{NPT 总结:实验、quadratic scaling 限制与 future work。}{Stanford Online 官方视频 01:00:42--01:05:36。}
读图:结论与开放问题分开看
左侧是本讲已经展示的结果:dataset-as-input、datapoint self-attention、tabular/image benchmarks 与 intervention evidence。右侧是尚未解决的限制:scaling,以及 multi-task、few-shot、semi-supervised、domain adaptation 等新任务。Future work 不是当前能力清单。
与 GNN 的连接
把每个 datapoint 看作 node,ABD 相当于在 fully connected graph 上做 learned message passing。区别在于许多 GNN 预先给定 sparse edges,而 NPT 从 attention score 中软学习关系;但现代 graph models 也可以学习 edges,因此二者不是绝对分界。
\teachervoice{Q&A 中讲者接受 fully connected graph 的类比,并指出 NPT 可以被理解为 discovering relational structure。Neil Band 提到 Neural Relational Inference:当 edges 未知时,attention/message passing 都在学习潜在交互。}
Fully connected graph 不等于关系已被正确发现
允许任意两点通信只是 hypothesis space。模型仍可能学到 shortcut、spurious similarity 或近似 uniform attention;需要 corruption、intervention、OOD evaluation 与可扩展 sparse retrieval 才能判断关系是否有用。
Small data 与 large data 的不同价值
Small data 的优势是能把全数据集放进一次 forward,模型获得近乎完整 context;large data 则迫使我们引入 retrieval、sparsity、kernel approximation 或 learned representatives。后者虽然损失精确全连接 attention,却可能把 NPT 连接到现代 retrieval-augmented learning:参数负责学习检索与变换规则,外部 datapoints 负责保存可更新事实。
\teachervoice{讲者在最后提出一个尖锐问题:大型 parametric models 有多少参数其实在“存数据”?若显式 lookup 能承担部分记忆,参数或许可以更专注于学习怎样检索、组合与推理。这个问题后来在 retrieval-augmented systems 中变得更加重要。}
Scaling 路线图
| 方向 | 收益 | 新风险 |
|---|---|---|
| Random mini-batch | 实现简单、训练稳定 | 关键 datapoint 可能不在 batch,context 随机。 |
| Sparse / local attention | 将 \(b^2\) 降为少量 edges | 需要定义或学习 candidate graph。 |
| ANN / learned retrieval | 先检索 top-\(k\) rows,再做 NPT reasoning | Retriever recall 成为上游瓶颈。 |
| Representative points | 用 prototypes / inducing points 压缩数据集 | 压缩可能丢失罕见样本与局部细节。 |
| Kernel / low-rank approximation | 近似全局 attention | 近似误差与硬件效率需共同评估。 |
从固定数据集走向 meta-learning
本讲实验为 fixed-dataset supervised learning,但 input contract 天然适合 context-based extension:把 support set、unlabeled set 与 query set 放入统一矩阵,通过 masks 指定任务。如果跨 datasets 训练,NPT 可能学习通用的 within-dataset algorithm;这与 in-context learning、few-shot learning、semi-supervised learning 和 domain adaptation 形成直接连接。
\teachervoice{讲者把这些方向明确列为 future work,包括去除 mini-batch approximation、few-shot generalization、domain adaptation、semi-supervised 与 multi-task learning。讲义只把它们作为研究路线,不把尚未完成的实验写成既成能力。}
本章小结
Dataset attention 的表达力与 \(O(b^2)\) 代价来自同一设计。GNN、retrieval、sparse attention 与 meta-learning 提供自然扩展,但每种近似都会改变可见 context 与 statistical contract,需要新的机制验证。
总结与延伸
从 token relation 到 datapoint relation
本讲最值得保留的统一图景是:attention 并不天然属于语言 token,它是“让一个对象依据一组其他对象更新表示”的计算模板。Transformer 在 tokens 之间学习关系;NPT 将每个 datapoint 变成对象,再通过 reshape 在 datapoints 与 attributes 两条轴之间交替推理。
十二条核心结论
- Self-attention 令 query、key、value 来自同一集合,学习输入内部关系。
- Multi-head attention 提供多个投影子空间,但不保证每个 head 都可被人类命名。
- Teacher forcing 用 gold prefixes 并行训练所有 next-token positions。
- Causal mask 防止模型读取未来 targets,是 likelihood 正确性的边界。
- NPT 仍是 parametric neural network;“non-parametric”指 inference 显式依赖训练 datapoints。
- \((X,M)\) 把 observed evidence 与 masked queries 放进统一 dataset representation。
- ABD 在 rows 之间 attention,ABA 在每行 attributes 之间 attention。
- Row permutation equivariance 保证 datapoint 顺序不携带虚假语义。
- Feature masking 提供 regularization,target masking 训练 relational lookup。
- UCI average-rank evidence支持竞争力,不支持所有任务普遍胜出。
- Corruption 与 duplicate intervention 证明若干任务中跨 datapoint mechanism 确实被使用。
- Quadratic datapoint attention 是核心限制,未来需要 retrieval、sparsity 或 representative points。
一个工程化判断框架
若要在新任务中判断 NPT-style mechanism 是否值得采用,可以依次问五个问题:第一,其他 examples 在 inference 时是否真的提供额外信息;第二,是否能合法、安全、低延迟地访问这些 examples;第三,batch/retrieval set 是否覆盖关键 neighbors;第四,普通 tree、k-NN、retrieval baseline 是否已足够;第五,corruption 与 intervention 能否证明模型没有只靠自身 features 或 shortcut。
实践清单
先实现强 per-row baseline;再加入 explicit retrieval;随后比较固定 k-NN、learned retriever 与 full datapoint attention;最后做 row corruption、neighbor removal、label intervention、batch-composition sensitivity 和 OOD evaluation。只有性能与机制证据同时改善,才应把收益归因于跨 datapoint reasoning。
拓展阅读
建议按“机制--架构--验证”顺序阅读:先回到 Attention Is All You Need 理解 causal training;再读 Kossen 等人的 NPT 论文第 2 节与附录掌握 tensor shapes 和 masking;随后对照 Deep Sets、Set Transformer、Neural Relational Inference 与 Neural Processes,比较 permutation symmetry、message passing、context conditioning 和 uncertainty assumptions。工程上还应继续追踪 sparse attention 与 retrieval-augmented modeling,因为它们直接面对 NPT 的全数据 quadratic bottleneck。
\teachervoice{讲者的收尾并未宣称问题已经解决,而是把 scaling 与更丰富任务留作开放方向。最稳妥的总结是:NPT 证明了“训练一个会读取数据集的预测算法”可以工作,并提供了少见的 mechanism-level experiments;它同时把检索覆盖、计算复杂度与数据泄漏变成不可回避的系统问题。}