Sutskever 30 #15:把注意力当记忆用,可惜很娇气

#14 结尾留了个尾巴:RN 把每一对对象等权求和,差一步就是 self-attention——把等权换成 softmax 加权。Santoro 那帮人 2018 年的 Relational Recurrent Neural Networks(模型叫 Relational Memory Core,简称 RMC)就把这一步迈了出去,还顺手做了件事:把这套加权的 all-pairs 塞进一块循环记忆里。不是对输入对象两两算一次,而是养一组「记忆槽」,每来一个输入就让这些槽互相 attend、互相更新一遍。 拆到底,RMC 就是拿一个 Transformer block 当记忆的更新规则用。想法很漂亮。但我训下来最大的收获,是它在最小版里出乎意料地难伺候。 它长什么样 记忆是 S 个槽、每个宽 D 的一块矩阵 M。每来一个输入,嵌成一行 e,拼到记忆后面,然后对这 S+1 行做一个标准的 Transformer encoder block: $$\tilde M = \mathrm{LN}\big(M + \mathrm{Attn}(M,\ [M; e])\big), \qquad M' = \mathrm{LN}\big(\tilde M + \mathrm{MLP}(\tilde M)\big)$$attention 的 query 来自记忆槽,key 和 value 来自「槽加上这一步的输入」,所以一个槽既能读别的槽,也能读新来的输入。M' 就是下一步的记忆。整段序列走完,把最后的记忆拍平读出答案。跟 #12 NTM 那套手工设计的读写头比,这里没有专门的读写机制,记忆的更新规则就是 self-attention 本身——这也正是它跟 #05 Transformer 的关系:同一个 block,Transformer 拿它当整个模型的主干,RMC 拿它当循环记忆的更新规则。 ...

June 7, 2026

Sutskever 30 #05:把 RNN 全部扔掉

上一篇留下的线索 上一篇结尾说了一句话:attention 这个配角,后来变成了主角。 Seq2seq + attention 的架构里,LSTM 负责处理序列,attention 负责让 decoder 回头看。两者各司其职。但有一个问题一直没解决——LSTM 是顺序处理的。第 1 个词处理完才能处理第 2 个,第 2 个处理完才能处理第 3 个。 100 个词的句子,要跑 100 步。前一步没算完,后一步就不能开始,所以很难把 GPU 并行用满。 Attention 本身没有这个限制。它一次看所有位置,一次算完所有权重。 2017 年,Vaswani 等人把这个观察推到了极致:把 LSTM 全部去掉,只留 attention。 论文标题:“Attention Is All You Need”。 Self-Attention:自己看自己 上一篇的 attention,是 decoder 回头看 encoder。Query 来自 decoder,Key 和 Value 来自 encoder——两个不同的序列之间在交互。 Transformer 引入了一个新操作:self-attention——一个序列看自己。Query、Key、Value 全部来自同一个输入。每个位置都问所有位置:“你跟我有关系吗?” 为什么要自己看自己?因为理解一个词,需要知道它在句子里的角色。“bank” 是银行还是河岸,取决于周围的词。Self-attention 让每个词都能直接看到句子里所有其他词,一步到位。 核心公式: $$\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V$$跟上一篇的 Bahdanau attention 本质一样——query 和 key 算匹配度,softmax 变成权重,加权求和 value。但有两个变化: ...

April 17, 2026