长短期记忆网络正在消亡,什么将取而代之?

it2023-07-02  72

全文共4008字,预计学习时长11分钟

 

图源:unsplash

长短期记忆(LSTM)网络作为递归神经网络的一个更好的变体,已经成为深度学习的主力军。随着机器学习研究的加速,各种方法迭代得越来越快,LSTM似乎已经开始走出困境。让我们退一步来探索进化语言建模,看看它从初始阶段到复杂问题的现代化发展。

 

从根本上说,和其他监督机器学习问题一样,语言建模的目标是在给定文档d的情况下预测某些输出y。文档d必须以数字形式表示,这可以通过机器学习算法处理。

 

用数字表示文档的初始解决方案是词袋(BoW)。每个单词在向量中占据一个维度,每个值代表该词在文档中出现的次数。但是,这种方法没有考虑单词的排序,而这一点非常重要(例如I live to work, I work to live——我为工作而生活,为生活而工作)。

 

为了解决此问题,研究者使用了n-gram。这是n个单词的序列,其中每个元素表示存在一个单词组合。如果我们的数据集中有10000个单词,并且我们要存储二元语法,则需要存储10000²个唯一组合。对于任何一个合理的良好模型,我们可能都需要三元组甚至四元组,每一个都会将词汇量提高到另一个幂次。

 

显然,n-gram和BoW甚至无法处理稍显复杂的语言任务。他们的解决方案涉及矢量化程序。这些程序过于稀疏、庞大,无法捕捉语言本身的精神。这该如何解决呢?答案是循环神经网络。

 

循环神经网络不是试图使用高维、稀疏的矢量化解决方案,一次性将文档提供给模型,而是利用文本的顺序性。RNN可以表示为一个递归函数,其中A是在每个时间步应用的转换函数,h是隐藏层状态的集合,x表示数据的集合。

 

ht=A(ht−1,xt−1)

 

每个时间步都在了解前一个时间步的基础上创建,通过对前一个输出应用相同的功能来创建一个新的输出。当RNN被“展开”时,我们可以了解到模型在之前所见的知识下,如何将各个时间步输入到模型中。

 

“展开”RNN单元。摘自C.Olah(2015)的《理解LSTM网络》。

因为RNN对每个输入都应用相同的函数,所以它还有一个额外的好处:能够处理可变长度的输入。使用相同函数的原理可以被认为是将“通用语言/序列规则”应用于每个时间步。

 

RNN的递归特性使它变得强大,但这也是导致问题的原因。将RNN的递归定义简单地扩展到第四个隐藏状态,就会看到A函数被多次应用。

 

h3=(A(A(A(H0,x0),x1),x2)

 

A(x)实际上就是乘以一个权重矩阵,再加上一个偏置矩阵。当然,经过极大的简化和十个时间步后,初始输入x₀实际上乘以w¹⁰,其中w是权重矩阵。正如任何计算都会产生的结果一样,将数字取幂会得到极端结果:

 

· 0.3¹⁰ = 0.000005

· 0.5¹⁰ = 0.0009

· 1.5¹⁰ = 57.7

· 1.7¹⁰ = 201.6

 

这就会造成很多问题。权重矩阵将导致值向零(递减)或向无穷大或负无穷大(爆炸)增长。因此,RNN受梯度递减问题的影响。这不仅会导致权重更新时的计算问题,还意味着它们患有“痴呆症”:它们忘记了几步以前的步骤,因为它们已经通过递归乘法被模糊或放大到无法理解的程度。

 

因此,当使用RNN生成文本时,可能会看到无限循环:我走在大街上,走在大街上,走在大街上,走在大街上,走在大街上……

 

当网络产生第二轮“继续前进”时,它已经忘记了上一次输出的语言。它认为,通过其朴素的机制,在先前的输入为“街道和…”的情况下,下一个输出应为“继续走”。因为注意力范围太小,所以会持续循环。

 

解决方法:LSTM网络于1997年被首次提出(是的,令人惊讶),但直到最近,当计算资源使这一发现变得更加实用时,它才被广泛接受。它仍然是一个循环网络,但是对输入进行了复杂的转换。每个单元的输入都经过复杂的操作,从而产生两个输出,可以将其视为“长期记忆”(贯穿单元的顶行)和“短期记忆”(底部输出)。

 

图源:Chris Olah

通过长期记忆通道的向量可以不受干扰地通过整个链。只有门(粉红色的点)可以阻止或添加信息,所以如果网络选择这样做,它可以保留从任意数量的单元中发现有用的数据。

 

这种长期信息流的加入大大扩展了网络的注意力范围。它不仅能访问以前的单元状态,也可以访问不久前的有用学习信息,从而能够引用上下文——这是更多人际交流的关键属性。

 

LSTM运作良好——但仅限一段时间内。它可以在较短的文本长度上很好地完成字符生成,并且不受早期自然语言处理发展的许多问题的影响,尤其对单个单词及其整体含义更广泛深刻的理解。

 

然而,LSTM网络也有其缺点。它仍然是一个循环网络,所以如果输入序列有1000个字符,LSTM单元就会被调用1000次,而这是一个很长的梯度路径。虽然增加长期记忆通道会有所帮助,但它所能容纳的容量是有限的。

 

此外,由于LSTM本质上是递归的(如果想找到当前状态,就需要找到以前的状态),所以不能并行训练。

 

更为棘手的是,迁移学习在LSTM(或RNN)上并不十分有效。深卷积神经网络得以普及,部分原因是像Inception这样的预训练模型可以简单地下载和微调。使用已经知道其任务通用规则的模型开始训练的宝贵能力,使其更易于访问和可实现。

 

有时,经过预训练的LSTM可以成功地进行传输,但这不是一种常见的操作。这是有原因的——每一段文字都有自己独特的风格。图像的阴影和边缘总是遵循某种严格的通用规则,与之不同的是,文本的结构不那么明显且更加流畅。

 

的确有一些基本的语法规则来支持文本的框架,但是它远没有图像那么严格。除此之外,语法规则不尽相同——不同的诗歌形式、不同的方言(莎士比亚和古英语)、不同的使用情景(在Twitter上发短信、即兴演讲的书面版本)。从Wikipedia预先训练过的LSTM开始,可能比从头开始学习数据集要容易得多。

 

图源:unsplash

除了预训练的嵌入之外,LSTM在遇到要求更高的现代问题时也受到限制,例如跨多种语言的机器翻译或文本生成与人类写作文本完全不可区分。越来越多的人使用一种更新的架构来解决更具挑战性的任务:Transformer模型。

 

《注意力机制为你所需》一文最先提出了transformer模型以解决语言翻译问题,其架构非常复杂。不过,最重要的是“注意力”的概念。

 

图源:Hong Jing

前文中我们讨论了注意力跨度,即过去的递归神经网络有多少隐藏状态可以回顾。transformer具有无限的注意力跨度,这是它们优于LSTM的核心。其中的关键是什么?Transformer不使用递归。

 

Transformer通过使用全对全比较来实现无限注意力跨度。它无需按顺序处理每个单词,而是一次性处理整个序列,以创建“注意力矩阵”。其中每个输出都是输入的加权总和。例如,我们可以将法语单词‘accord’表达为“‘The’(0)+ ‘agreement’(1)+…. 网络会学习注意力矩阵的权重。

 

来源:《基于联合学习对齐和翻译的神经机器翻译》。

红色边框中的区域很有趣:虽然欧洲经济区(European Economic Area)翻译成单词européenneé economicque zone,但在法语中,单词的顺序实际上是zone économique européenne。注意力矩阵能够直接捕捉这些联系。注意力允许在输出值之间的直接访问,LSTM必须通过记忆通道间接和顺序地访问这些信息。

 

Transformer的运行成本非常高——在构建矩阵时无法避免O(n²)的运行时间。然而,由于种种原因,这并不像一些人想象的那么棘手。首先,由于transformer的非递归特性,可以使用并行性来训练模型,而LSTM或RNN无法实现这一点。

 

此外,GPU和其他硬件已经发展到了一个非常好的程度——10乘10矩阵的速度基本上与1000乘1000矩阵的速度一样快。

 

现代transformer模型的漫长计算时间并不是注意力机制造成的。相反,在其帮助下递归语言建模问题得以解决。transformer模型在使用迁移学习时也显示出了很好的效果,这对它们的普及做出了巨大贡献。

 

那么LSTM的未来是什么呢?

 

离它真正“消亡”还有很长一段路,但它确实是在走下坡路。首先,LSTM的变体在序列建模方面已显示出成功,例如生成音乐或预测股票价格。在这种情况下,考虑到额外的计算负担,回溯和保持无限长注意力跨度的能力并不那么重要。

 

图源:unsplash

总结:

 

· 循环神经网络的创建是为了解决传统n-grams和BoW方法的稀疏性、低效性和信息缺乏问题,通过将上一个输出传递到下一个输入,创建了一种更加有序的建模方法。

 

· 创建LSTM是为了解决RNN遗忘输入多个时间步的问题,即通过引入由门控制的长期和短期记忆通道。

 

· LSTM的一些缺点包括:对迁移学习不友好,不适用于并行计算,并且即使在扩展之后,注意力跨度也有限。

 

· Transformer放弃递归建模。相反,通过注意力矩阵,transformer能够直接访问输出的其他元素,这使得它们有无限的注意力跨度。此外,它们可以并行计算时运行。

 

· LSTM在序列建模方面仍有应用,例如生成音乐或预测股票。然而,随着transformer变得更易访问、更强大、更实用,关于LSTM语言建模的大肆炒作将烟消云散。

 

一起分享AI学习与发展的干货

欢迎关注全平台AI垂类自媒体 “读芯术”

(添加小编微信:dxsxbb,加入读者圈,一起讨论最新鲜的人工智能科技哦~)

最新回复(0)