记忆增强神经网络:外部记忆读写机制

FreeGuideOnline 最新 2026-06-23

记忆增强神经网络:外部记忆读写机制

为什么需要外部记忆?

传统神经网络(如 RNN、LSTM)虽然拥有内部状态来存储时序信息,但它们都面临以下局限:

  • 记忆容量受参数规模限制:内部状态是固定长度的向量,难以存储大量精确的事实或长序列信息。
  • 梯度消失/爆炸:长距离依赖问题依旧存在,即使 LSTM 也无法完美捕捉数十步以上的规律。
  • 无法显式读写结构化知识:神经网络将一切都编码为隐式权重,缺乏可解释性和显式检索能力。

记忆增强神经网络(Memory-Augmented Neural Networks,MANN)引入了一个外部记忆矩阵,让网络像计算机访问内存一样,学会。这使得网络能存储更多信息,并通过内容寻址或位置寻址来精确取值,极大提升了处理算法任务、推理和长序列建模的能力。

核心思想:可微分的外部记忆

一个记忆增强网络通常由三个核心组件构成:

  1. 控制器(Controller):通常是一个 RNN 或前馈网络,负责接收输入、产生读写操作,并更新自身状态。
  2. 外部记忆矩阵(Memory Matrix):一个可变的二维矩阵 ( M \in \mathbb{R}^{N \times W} ),其中 ( N ) 是记忆槽数量,( W ) 是每个槽的维度。
  3. 可微分读/写机制:为了让整个系统可以端到端训练,读写操作必须是平滑可微的,通常通过注意力机制对记忆槽进行软寻址。

下面我们详细拆解两种最具代表性的模型:神经图灵机(NTM)和可微分神经计算机(DNC)。

神经图灵机(Neural Turing Machine)

架构概览

NTM 由一个控制器和一块记忆矩阵构成。控制器在每个时间步接收输入和上一时刻的读向量,输出控制信号来执行读写。记忆矩阵通过一个读写头进行访问,读写头使用注意力权重来定位要操作的记忆槽。

读写头的注意力机制

读写头通过两种寻址模式组合来产生槽位权重 ( w_t \in \mathbb{R}^N ):

  • 基于内容的寻址:计算查询向量与每个记忆槽的相似度,经过 softmax 得到权重。
  • 基于位置的寻址:允许读写头像传统图灵机一样顺序移动,具体包括:
    • 插值(Interpolation):混合内容权重和上一时刻位置权重。
    • 卷积移位(Convolutional Shift):用一个移位向量对权重做循环卷积,实现左移、右移或居中。
    • 锐化(Sharpening):使用指数温度系数让权重分布更尖锐,接近硬选择。

最终的 ( w_t ) 是一个归一化的概率分布,表示对每个记忆槽的注意力强度。

读操作

读向量 ( r_t ) 是记忆矩阵的加权和: [ r_t = \sum_{i=1}^{N} w_t(i) M_t(i, :) ] 由于 ( w_t ) 是软的,这一操作完全可微。

写操作

写操作分为**擦除(erase)和添加(add)**两步:

  1. 控制器输出一个擦除向量 ( e_t \in [0,1]^W ) 和一个写权重 ( w_t )。
  2. 擦除:( M_t = M_{t-1} \odot (1 - w_t e_t^T) )(此处 ( w_t ) 扩展为列向量,( e_t^T ) 为行向量,外积得到与 M 同形的矩阵)。
  3. 添加:控制器输出一个加向量 ( a_t ),然后 ( M_t = M_t + w_t a_t^T )(实际实现中可能先擦除后添加)。

通过这种机制,记忆可以被有选择地覆盖和更新,而网络通过梯度学习如何优化擦除和添加的内容。

训练与误差反向传播

整个 NTM 是端到端可微的,因此可以通过标准的 BPTT(时间反向传播)进行训练。记忆矩阵在时间上展开,所有读写操作都作为计算图的一部分,梯度可以跨越多个时间步流动,从而学习到如何使用记忆。

可微分神经计算机(DNC)

DNC 是 NTM 的扩展,旨在处理更复杂的记忆读写模式,特别是能够动态分配记忆记录时序链接

动态记忆分配

DNC 维持一个“已使用”向量(usage vector),跟踪每个记忆槽是否被占用。当需要写新信息时,控制器优先写入最空闲的槽位,并相应地更新使用情况。这种机制让 DNC 可以灵活地分配和释放记忆,而不必像 NTM 那样受固定寻址策略的限制。

时序链接

DNC 在写入时会自动记录先后顺序,形成一个链表结构。具体来说,它维护一个时间链接矩阵,记录哪个记忆槽是在哪个槽之后写入的。这使得 DNC 可以根据写入的先后顺序来读取记忆,非常适合需要遍历序列或图的任务。

头结构

DNC 的读写头与 NTM 不同,它包含:

  • 写头:使用动态分配和内容查找来决定写入位置,并更新时序链接。
  • 读头:可以通过内容查找,或者通过正向/反向时序链接(重温之前写入的记忆)来读取,使得网络可以像遍历链表一样回忆历史。
  • 空闲头:专门用于标记和释放不再需要的记忆槽。

所有这些操作仍然使用软注意力,确保可微性。

应用场景与优势

记忆增强神经网络因其显式记忆读写,在以下任务中表现出色:

  • 算法任务:如复制、重复、排序、遍历图等,NTM/DNC 可以学会通用算法步骤。
  • 长程推理:阅读理解、逻辑推理,需要从长文本中提取并组合事实。
  • 小样本学习:利用外部记忆存储先前样本的信息,快速适应新类(例如 MANN 在 one-shot learning 中的应用)。
  • 程序合成与符号操作:因为记忆可以存储键值对并进行符号式检索,适合学出简单的程序行为。

总结

记忆增强神经网络通过引入可微分的外部记忆,打破了传统网络通过固定维度向量存储信息的瓶颈。核心在于:

  • 采用软注意力实现可微的寻址和读写。
  • NTM 提供了内容寻址 + 位置寻址的基础范式。
  • DNC 进一步加入动态分配和时序链接,让记忆组织更灵活。

掌握这些机制不仅有助于理解现代记忆模型,也是深入探索神经符号系统、检索增强生成(RAG)等技术的重要基石。初学者可以通过实现简单的复制或重复任务来亲手体验记忆如何被写入和读出,从而建立直观理解。