神经图灵机(Neural Turing Machines)

Alex Graves、Greg Wayne、Danihelka(DeepMind) · arXiv 2014 · 给神经网络外挂一块可读写的「内存条」

论文名片

i20 论文名片
英文题名Neural Turing Machines
中文常用名神经图灵机,简称 NTM
作者与年份Alex Graves、Greg Wayne、Danihelka(DeepMind),arXiv 2014
原文链接https://arxiv.org/abs/1410.5401
一句话概括给神经网络外挂一块可读写的内存,读写全用「软寻址」按权重混合,端到端可训练。
系列位置i20(第四板块:Transformer 与进阶架构);「给模型外挂记忆」思路的早期完整示范

Ilya 为什么选它

普通网络的记忆全都压缩在权重里,相当于把要记的事全刻在脑子里——这本「记账本」太小,遇到需要精确记住一长串内容的任务就吃力。这篇 DeepMind 的论文给网络配上外部记忆:一块可以随时读写、独立于权重之外的「内存条」,容量问题第一次被摆上台面正面解决。

它在书单里的位置也很有意味:2014 年的工作,比书单里多数注意力论文还早,却第一次把「网络如何操作一块外部存储」做成了端到端可训练的整体。后来各种「给模型外挂记忆、外挂工具」的想法,都能在这篇里找到早期的完整示范——外挂不难,难的是让外挂本身也学会自己动手,这正是 NTM 的贡献。

从生活说起

想象教室前面摆着一排储物柜,老师要在里面查资料。笨办法是老师硬性指定「开 3 号柜」——可一旦指定的柜子里没放东西,查询就卡死了。NTM 的办法温柔得多:老师不做任何指定,而是给每个柜子发一盏亮度不同的灯。要找的内容和 3 号柜最相关,3 号柜的灯就最亮;2 号、5 号柜沾点边,灯就暗一些;不相关的柜子,灯干脆不亮。

读的时候,不是只看最亮的那一个柜,而是按亮度「混合着看」:最亮的看七成,次亮的看两成,剩下的看一成。写的时候同样温柔:新内容不猛砸进一个柜子,而是按亮度比例分摊着写进几个柜子。柜子还是那些柜子,但每一格都被柔光笼罩、按需取用——这就是「软寻址」的画面:不给死命令,只给一排亮度不同的聚光灯。

核心思想拆解

NTM(Neural Turing Machines,神经图灵机)由三部分组成:控制器(Controller),负责思考的大脑;外部存储矩阵(External Memory),一格格排好的内存;读写头(Read/Write Heads),在内存上取放内容的手。普通网络的记忆压在权重里,本质是「把账刻在脑子上」;NTM 把账本搬到脑子外面,网络通过读写头随时翻账、记账,脑子和账本各自长大、互不挤占。

真正的妙处在读写的方式——软寻址(Soft Addressing)。读写头不「咔哒」一声只挑一个格子,而是给所有格子发不同权重的聚光灯:每个格子分到一个权重,全部权重加起来等于 1。读出时,按权重把所有格子的内容混合起来;写入时,按权重把新内容分散写进多个格子。没有任何一步是「硬选中」,整条链路从头到尾平滑连续。

为什么要追求平滑?因为这让整个系统端到端可训练(End-to-End Trainable):从输入,到读内存、算一算、写内存,全是可微操作(Differentiable,粗略地说就是「每一步都能顺着来路知道该怎么改」),训练信号能一路传到底。于是读写策略不是人写死的规则,而是网络自己学出来的本事。经典任务是学会复制一串序列:看一遍输入,再原样吐出来——这要求网络真把内容放进内存、记好位置、再按原序取出来;软寻址的读写策略正是在这类任务上练出来的。

动手算一算

看一次「按权重混合读出」。内存有 4 个格子,内容分别是 10、20、30、40;读写头发出的聚光灯权重是 0.6、0.3、0.1、0.0,加起来正好是 1。读出的内容 = 10×0.6 + 20×0.3 + 30×0.1 + 40×0.0 = 6 + 6 + 3 + 0 = 15。注意:没有任何一个格子的内容被原样读出,读出的是一份按权重调配的混合版;权重一变,混合版立刻跟着变——这就是「软」的含义。

再感受写入:新内容要写进内存,写头这次给的权重是 0.5、0.5、0、0,于是这份新内容的分量被摊到 1 号和 2 号格子各一半。权重收拢,就存得精确;权重摊开,就写得分散——收拢还是摊开,由网络在训练里自己学。你看,整套读写只有乘法和加法:把每个格子的内容按权重相乘、再全部加起来(读),或者把新内容按权重拆成几份分给各格子(写),全是小学算术。

它改变了什么

NTM 的影响不在「它赢了多少任务」,而在它立起了一个范式:记忆可以外置,读写策略可以学习。外部存储加可训练寻址的骨架,后来被反复重新发明和扩展;「按权重混合读取」的思路,与注意力家族「按分数取信息」一脉相通——书单把它放在 Transformer 板块旁边,正是让读者对照着看:聚光灯打在内存格子上是 NTM,打在词语上就是后来的注意力。

系列内相关阅读:按分数取信息的更早用例见 i15 注意力机器翻译;把「按权重取信息」推成通用结构的是 i16 Attention Is All You Need;在阅读顺序上,它紧挨着讨论「怎么读输入」的 i19 Order Matters 与讨论「结构化数据」的 i21 消息传递神经网络。

术语小词典

i20 术语小词典
术语白话解释
神经图灵机(NTM)带外部可读写内存的神经网络,名字致敬早期计算机的设计思路。
控制器(Controller)NTM 里负责思考的部分,决定何时读、何时写。
外部存储矩阵(External Memory)一格格排好的内存,独立于网络权重之外,是网络的外挂账本。
读写头(Read/Write Heads)在内存上取放内容的部件,靠发「聚光灯权重」来定位。
软寻址(Soft Addressing)不硬选一个格子,而是给所有格子发不同权重,按权重混合读出、分散写入。
端到端可训练(End-to-End Trainable)从输入到内存读写整条链路都能用同一种训练信号一起学。