Bengio等提出稀疏注意力回溯:长期依赖关系建模的更一般化机制
选自 arXiv,作者:Nan Rosemary Ke 等,机器之心编译,参与:Geek AI、王淑婷。
训练循环神经网络的常规做法是利用基于时间的反向传播算法,该算法在处理长序列时计算开销十分昂贵,甚至不可行。针对这一问题,本文提出了一种新的算法SAB,通过提醒机制实现时序信用分配。在稀疏性限制最大的条件下(不利用过去的经验),SAB 将退化为使用常规的静态神经网络。在稀疏性限制最小的条件下(利用过去所有的经验),SAB 将退化为完全使用自注意力机制。该方法在涉及长期依赖关系的任务中比 BPTT 和截断的 BPTT 相当甚至更优。人类对与当前心理状态相关的很久之前的事件有很强的记忆能力(Ciaramelli et al., 2008)。大多数关于记忆的实验和理论分析都集中在理解形成记忆和回忆的精细路径上。然而,自动化的提醒机制(当记忆涌入脑海),会对认知有很大的影响。提醒机制通常是由检索时出现的上下文特征触发的,这些特征与被记忆的显著特征相匹配(Berntsen et al., 2013; Wharton et al., 1996),它通常更容易在意料之外的事件之后被触发(Read & Cesa, 1991)。因此,一个人当前的理解状态可以触发对过去状态的回忆。提醒机制有时可能会提供一些无关的信息导致注意力被分散(Forbus et al., 1995; Novick, 1988),但是它也可以通过提供决策所必需的信息,在持续的认知过程中发挥有效的计算作用(Benjamin & Ross, 2010)。
在本文中,我们对提醒机制的另一个可能的作用进行了研究:长时间跨度的信用分配。我们不妨思考一下下面的场景:当你在高速公路上开车时,你听到了一种异常的爆炸声。但是仍然不以为意,直到你停下来加油时发现轮胎瘪了。然后你突然想起了在开车时听到的爆炸声。这样的回想能够帮助你确定爆胎的原因,并可能导致突触变化。而由于这种变化,在以后开车时听到这种爆炸声,你的处理方式可能会不一样。信用分配是机器学习领域的关键问题。反向传播算法实质上执行了信用分配机制。尽管在功能上等同于反向传播的信用分配机制已经取得了一些进展(Lee et al., 2014; Scellier & Bengio, 2016; Whittington & Bogacz, 2017),但对于大脑如何实现与用于训练循环神经网络(RNN)的反向传播相类似的机制,人们尚不清楚。在本文中,我们对以下假设进行了探究:相关联的提醒过程可以在长时间跨度上的信用传播中发挥重要作用。这也就是在 RNN 中学习长期依赖的问题,即学会利用在时间上跨度很大的事件和变量之间的统计依赖关系。
论文:Sparse Attentive Backtracking: Temporal Credit Assignment Through Reminding
论文地址:https://arxiv.org/pdf/1809.03702v1.pdf
摘要:在扩展的时间序列中学习长期依赖需要对过去很久的事件进行信用分配。训练循环神经网络最常见的做法是基于时间的反向传播算法(BPTT),它要求信用信息在前向计算的每一步中能够被反向传播,这可能需要花费数千甚至数百万个时间步。当 BPTT 被用于处理长序列时,这个过程的计算开销会变得十分高昂,甚至根本不可行。重要的是,生物大脑并不太可能在很长的内部状态序列(比如几天、几个月、甚至好几年)中执行如此详细具体的反向回放过程。然而,人类经常被提醒想起过去的记忆或与当前精神状态相关的精神状态。我们假设过去和现在之间的这种记忆关联可以通过任意长的序列被用于信用分配,并将分配给当前状态的信用传播给相关的过去的状态。基于这一原理,我们研究出了一种新的算法,它只通过少数几个时序跳跃链接进行反向传播,通过一种学习到的注意力机制实现,该注意力机制将当前状态与相关的过去状态关联起来。我们通过实验证明,该方法在涉及长期依赖关系的任务中与常规的 BPTT 和截断的 BPTT 性能相当甚至更优,但我们的方法并不需要对整个状态历史进行生物学上不太可能的反向回放过程。此外,我们还证明该方法对于较长序列的迁移明显优于使用 BPTT 训练的 LSTM 和使用完全自注意力机制训练的 LSTM。
稀疏注意力回溯
请注意,人类使用的是过去信用分配经验中一个非常稀疏的子集,它可以直接随机利用过去的经验及其与当前状态的相关性,我们提出了稀疏注意力回溯(SAB)机制:它是针对神经网络模型(如 RNN)中信用分配问题相关过去状态的学习、动态、稀疏的访问方式及回放原理。
在稀疏性限制最大的条件下(不利用过去的经验),SAB 将退化为使用常规的静态神经网络。在稀疏性限制最小的条件下(利用过去所有的经验),SAB 将退化为完全使用自注意力机制。在本文中,为了达到目的,我们通过特定种类的增强 LSTM 模型探究前面二者之间的差距。但是 SAB 机制并不局限于任何特定的架构,在这里介绍的增强 LSTM 纯粹被用来探究和验证我们在第 1 节中作出的假设。
一般来说,一个 SAB 神经网络需要做到以下两件事:
- 在前馈传播过程中,管理一个内存单元,并在每个时间步中最多选择过去记忆中的一个稀疏子集。我们将这个过程称之为稀疏检索。
- 在反向传播过程中,将梯度仅仅传播到记忆的稀疏子集及其局部环境中。我们称之为稀疏回放。
图 1: 此图展示了在 ktop = 3, katt = 2, ktrunc = 2 的情况下 SAB 中的前馈传播过程。该过程将稀疏检索(第 3.1 节)和对记忆的总结引入了下一个 RNN 隐藏状态。灰色箭头显示了注意力权重 a(t)是如何被估计出来的,首先通过广播和连接所有记忆的集合 M 当前的临时隐藏状态 hˆ(t),并且通过多层感知机计算出原始注意力权重。稀疏处理器会选择出最大的 ktop 个原始注意力权重,并进行归一化处理,而其它的注意力权值则表示为 0。红色箭头显示了对应非零稀疏化注意力权值被加权求和的过程,然后将其添加到临时隐藏状态 hˆ(t) 中去计算最终的隐藏状态 h (t)。
实验设置和实验结果
图 2: 此图展示了在 ktop = 3, katt = 2, ktrunc = 2 的情况下 SAB 中的反向传播过程。梯度被传递给从前向传播选择出来的微观状态,同时在这些微观状态周围执行一个局部被截断的反向传播过程。蓝色的箭头表示反向传播中的提督传播流。红色叉叉表示 TBPTT(时间截断的反向传播)的截断点,梯度在这些点停止被反向传播。
表 1: 在序列长度为 T=100,200,300 的任务中的测试准确率和交叉熵(CE)的损失性能。最后 10 个字符的准确率用以百分比表示。CE10 对应于最后 10 个字符的交叉熵损失。这些结果与心理状态的更新有关,而表 3 则是与其无关的结果。
表 5:在 T=100 的复制记忆任务中训练的模型的迁移性能(最后 10 位数的准确率)。该表将使用基于时间的反向传播算法(BPTT)训练的 LSTM 以及带完全的自注意力机制的 LSTM 结果相对比。
表 4: 置换 MNIST 和 CIFAR 10 分类任务的测试准确率。