Transformer的潜在竞争对手QRNN论文解读,训练更快的RNN

简介: Transformer的潜在竞争对手QRNN论文解读,训练更快的RNN

使用递归神经网络(RNN)序列建模业务已有很长时间了。但是RNN很慢因为他们一次处理一个令牌无法并行化处理。此外,循环体系结构增加了完整序列的固定长度编码向量的限制。为了克服这些问题,诸如CNN-LSTM,Transformer,QRNNs之类的架构蓬勃发展。

在本文中,我们将讨论论文“拟递归神经网络”(https://arxiv.org/abs/1611.01576)中提出的QRNN模型。从本质上讲,这是一种将卷积添加到递归和将递归添加到卷积的方法。

LSTM

640.png

LSTM是RNN最著名的变体。红色块是线性函数或矩阵乘法,蓝色块是无参数元素级块。LSTM单元应用门控功能(输入,遗忘,输出)以获得输出和称为隐藏状态的存储元素。此隐藏状态包含整个序列的上下文信息。由于单个向量编码完整序列,因此LSTM无法记住长期依赖性。而且,每个时间步长的计算取决于前一个时间步长的隐藏状态,即LSTM一次计算一个时间步长。因此,计算不能并行进行。

CNN

640.png

CNN可以捕获空间特征(主要用于图像)。红色块是卷积运算,蓝色块是无参数池化运算。CNN使用内核(或过滤器)通过滑动窗口捕获要素之间的对应关系。这克服了固定长度的隐藏表示形式(以及由此带来的长期依赖问题)以及RNN缺乏并行性限制的问题。但是,CNN不显示序列的时间性质,即时间不变性。池化层只是在不考虑序列顺序信息的情况下降低了通道的维数。

Quasi-Recurrent Neural Networks (QRNN)

640.png

QRNN解决了两种标准架构的缺点。它允许并行处理并捕获长期依赖性,例如CNN,还允许输出依赖序列中令牌的顺序,例如RNN。

因此,首先,QRNN体系结构具有2个组件,分别对应于CNN中的卷积(红色)和池化(蓝色)组件。

卷积分量

卷积组件的操作如下:

  • 形状的输入序列:(batch_size,sequence_length,embed_dim)
  • 每个“ bank”的形状为“ hidden_dim”的内核:(batch_size,kernel_size,embed_dim)。
  • 输出是一个形状序列:(batch_size,sequence_length,hidden_dim)。这些是序列的隐藏状态。

卷积运算在序列以及小批量上并行应用。

为了保留模型的因果关系(即,只有过去的标记才可以预测未来),使用了一种称为遮罩卷积(masked-convolutions)的概念。也就是说,输入序列的左边是“ kernel_size-1”零。因此,只有'sequence_length-kernel_size + 1'过去的标记可以预测给定的标记。为了更好理解,请参考下图:

640.gif

接下来,我们基于池化功能(将在下一节中讨论)使用额外的内核库,以获取类似于LSTM的门控向量:

640.png

这里,*是卷积运算;Z是上面讨论的输出(称为“输入门”输出);F是使用额外的内核库W_f获得的“忘记门”输出;O是使用额外的内核库W_o获得的“输出门”输出。

如上所述,这些卷积仅应用于过去的“ sequence_length-kernel_size + 1”令牌。因此,如果我们使用kernel_size = 2,我们将得到类似LSTM的方程式:

640.png

池化组件

通常,合并是一种无参数的函数,可捕获卷积特征中的重要特征。对于图像,通常使用最大池化和平均池化。但是,在序列的情况下,我们不能简单地获取特征之间的平均值或最大值,它需要有一些循环。因此,QRNN论文提出了受传统LSTM单元中元素级门控体系结构启发的池化功能。本质上,它是一个无参数函数,它将跨时间步混合隐藏状态。

最简单的选项是“动态平均池化”,它仅使用了“忘记门”(因此称为f-pooling):

640.png

⊙是逐元素矩阵乘法。它以忘记门为参数,几乎等于输出的“移动平均值”。

另一种选择是使用忘记门以及输出门(所以被称作,fo-pooling):

640.png

除此以外,池化可能另外具有专用的输入门(ifo-pooling):

640.png

正则化

在检查了各种递归退出方案之后,QRNN使用了一种扩展方案,称为“区域退出”(‘zone out),它本质上是在每个时间步选择一个随机子集来退出,对于这些通道,它只是将当前通道值复制到下一次 步骤,无需任何修改。

这等效于将QRNN的“忘记门”通道的子集随机设置为1,或在1-F上进行dropout  -- QRNN Paper

640.png

来自DenseNet的想法

640.png

DenseNet体系结构建议在每一层与其前面的每一层之间都具有跳过连接,这与在后续层上具有跳过连接的惯例相反。因此,对于具有L个层的网络,将存在L(L-1)个跳过连接。这有助于梯度流动和收敛,但要考虑二次空间。

使用QRNN构建seq2seq

640.png

在基于RNN的常规seq2seq模型中,我们只需使用编码器的最后一个隐藏状态初始化解码器,然后针对解码器序列对其进行进一步修改。我们无法对循环池层执行此操作,因为在这里,编码器状态无法为解码器的隐藏状态做出很大贡献。因此,作者提出了一种改进的解码器架构。

将编码器的最后一个隐藏状态(最后一个令牌的隐藏状态)线性投影(线性层),并在应用任何激活之前,将其添加到解码器层每个时间步长的卷积输出中(广播,因为编码器矢量较小):

640.png

V是应用于最后一个编码器隐藏状态的线性权重。

注意力机制

注意力仅应用于解码器的最后隐藏状态。

640.png

其中s是编码器的序列长度,t是解码器的序列长度,L表示最后一层。

首先,将解码器的未选通的最后一层隐藏状态的点积与最后一层编码器隐藏状态相乘。这将导致形状矩阵(t,s)。将Softmax替代s,并使用该分数获得形状(t,hidden_dim)的注意总和k_t。然后,将k_t与c_t一起使用,以获取解码器的门控最后一层隐藏状态。

性能测试

640.png

与LSTM架构相比,QRNN可以达到相当的准确度,在某些情况下甚至比LSTM架构略胜一筹,并且运算速度提高了17倍。

最近,基于QRNN的模型pQRNN在序列分类上仅用1.3M参数就取得了与BERT相当的结果(与440M参数的BERT相对):

640.png

结论

我们深入讨论了新颖的QRNN架构。我们看到了它如何在基于卷积的模型中增加递归,从而加快了序列建模的速度。QRNN的速度和性能也许真的可以替代Transformer。


目录
相关文章
|
6月前
|
机器学习/深度学习 自然语言处理 异构计算
Python深度学习面试:CNN、RNN与Transformer详解
【4月更文挑战第16天】本文介绍了深度学习面试中关于CNN、RNN和Transformer的常见问题和易错点,并提供了Python代码示例。理解这三种模型的基本组成、工作原理及其在图像识别、文本处理等任务中的应用是评估技术实力的关键。注意点包括:模型结构的混淆、过拟合的防治、输入序列长度处理、并行化训练以及模型解释性。掌握这些知识和技巧,将有助于在面试中展现优秀的深度学习能力。
214 11
|
2月前
|
机器学习/深度学习 存储 算法
Transformer、RNN和SSM的相似性探究:揭示看似不相关的LLM架构之间的联系
通过探索大语言模型(LLM)架构之间的潜在联系,我们可能开辟新途径,促进不同模型间的知识交流并提高整体效率。尽管Transformer仍是主流,但Mamba等线性循环神经网络(RNN)和状态空间模型(SSM)展现出巨大潜力。近期研究揭示了Transformer、RNN、SSM和矩阵混合器之间的深层联系,为跨架构的思想迁移提供了可能。本文深入探讨了这些架构间的相似性和差异,包括Transformer与RNN的关系、状态空间模型在自注意力机制中的隐含作用以及Mamba在特定条件下的重写方式。
110 7
Transformer、RNN和SSM的相似性探究:揭示看似不相关的LLM架构之间的联系
|
4月前
|
机器学习/深度学习 自然语言处理
彻底改变语言模型:全新架构TTT超越Transformer,ML模型代替RNN隐藏状态
【7月更文挑战第25天】近年来,NLP领域取得显著进展但也面临挑战,如长上下文建模与计算效率的平衡。为此,研究人员提出Test-Time Training (TTT) 模型架构。TTT由多机构合作开发,旨在解决长上下文建模难题及提高计算效率。通过将隐藏状态视为可学习更新的模型,TTT能随输入增长提升表示能力;采用自监督学习更新规则确保线性计算复杂度的同时保持高性能。实验显示TTT在多种NLP任务中表现优秀,尤其在长上下文处理方面超越Transformer。尽管如此,TTT仍面临训练资源需求高及自监督学习鲁棒性等挑战。[论文](https://arxiv.org/abs/2407.04620)
120 5
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
算法金 | 秒懂 AI - 深度学习五大模型:RNN、CNN、Transformer、BERT、GPT 简介
**RNN**,1986年提出,用于序列数据,如语言模型和语音识别,但原始模型有梯度消失问题。**LSTM**和**GRU**通过门控解决了此问题。 **CNN**,1989年引入,擅长图像处理,卷积层和池化层提取特征,经典应用包括图像分类和物体检测,如LeNet-5。 **Transformer**,2017年由Google推出,自注意力机制实现并行计算,优化了NLP效率,如机器翻译。 **BERT**,2018年Google的双向预训练模型,通过掩码语言模型改进上下文理解,适用于问答和文本分类。
153 9
|
6月前
|
机器学习/深度学习 自然语言处理 测试技术
SUPRA:无须额外训练,将Transformer变为高效RNN,推理速度倍增
`Transformers`模型因其在多种任务上的优秀性能而广泛采用,但其内存需求和推理成本随词元数量指数增长。为解决这一问题,论文《Linearizing Large Language Models》提出`SUPRA`方法,将预训练的`Transformers`转换为递归神经网络(RNN),实现有效推理并降低训练成本至原来的5%。`SUPRA`通过将注意力机制线性化并用`GroupNorm`替代`softmax`,保持预训练模型的优势。经过微调,转换后的模型在标准语言理解和长上下文任务中保持高性能,展示了在长序列处理方面的潜力,但仍有改进空间。
143 2
|
5月前
|
机器学习/深度学习 自然语言处理 PyTorch
【从零开始学习深度学习】34. Pytorch-RNN项目实战:RNN创作歌词案例--使用周杰伦专辑歌词训练模型并创作歌曲【含数据集与源码】
【从零开始学习深度学习】34. Pytorch-RNN项目实战:RNN创作歌词案例--使用周杰伦专辑歌词训练模型并创作歌曲【含数据集与源码】
|
5月前
|
机器学习/深度学习 算法 存储
Bengio等人新作:注意力可被视为RNN,新模型媲美Transformer,但超级省内存
【6月更文挑战第3天】Bengio等人提出的新模型Aaren视注意力为特殊RNN,以解决Transformer在资源受限环境中的计算成本高和内存使用问题。Aaren模型通过并行前缀和算法实现高效计算和常数级内存使用,性能接近Transformer,同时在时间序列任务中表现优秀,尤其适合移动设备和嵌入式系统。尽管可能在某些复杂任务上不如Transformer,但其高效性为实时数据处理提供了潜力。论文链接:[https://arxiv.org/pdf/2405.13956](https://arxiv.org/pdf/2405.13956)
98 2
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
一文介绍CNN/RNN/GAN/Transformer等架构 !!
一文介绍CNN/RNN/GAN/Transformer等架构 !!
209 5
|
6月前
|
机器学习/深度学习 资源调度 数据可视化
Mamba详细介绍和RNN、Transformer的架构可视化对比
Transformer体系结构已经成为大型语言模型(llm)成功的主要组成部分。为了进一步改进llm,人们正在研发可能优于Transformer体系结构的新体系结构。其中一种方法是Mamba(一种状态空间模型)。
672 2
|
6月前
|
机器学习/深度学习 自然语言处理 并行计算
神经网络结构——CNN、RNN、LSTM、Transformer !!
神经网络结构——CNN、RNN、LSTM、Transformer !!
304 0

热门文章

最新文章