当前位置: 首页 > news >正文

自然语言处理(28:(终章Attention 4.)关于Attention的其他话题)

系列文章目录

终章 1:Attention的结构

终章 2:带Attention的seq2seq的实现

终章 3:Attention的评价

终章 4:关于Attention的其他话题

终章 5:Attention的应用


目录

系列文章目录

前言

一、双向RNN

二、Attention层的使用方法

三、seq2seq的深层化和skip connection


前言

到目前为止,我们研究了Attention(正确地说,是带Attention的 seq2seq),本节我们介绍几个之前未涉及的话题


一、双向RNN

这里我们关注seq2seq的编码器。首先复习一下,上一节之前的编码器如下图所示。

如上图所示,LSTM中各个时刻的隐藏状态向量被整合为hs。这里, 编码器输出的hs的各行中含有许多对应单词的成分。 需要注意的是,我们是从左向右阅读句子的。因此,在上图中,单词“猫”的对应向量编码了“吾輩”“は”“猫”这3个单词的信息。如果考虑整体的平衡性,我们希望向量能更均衡地包含单词“猫”周围的信息。为此,可以让LSTM从两个方向进行处理,这就是名为双向LSTM的 技术,如下图所示。

如上图所示,双向LSTM在之前的LSTM层上添加了一个反方向处理的LSTM层。然后,拼接各个时刻的两个LSTM层的隐藏状态,将其作为最后的隐藏状态向量(除了拼接之外,也可以“求和”或者“取平均”等)。通过这样的双向处理,各个单词对应的隐藏状态向量可以从左右两个方向聚集信息。这样一来,这些向量就编码了更均衡的信息。

双向LSTM的实现非常简单。一种实现方式是准备两个LSTM层(本章中是Time LSTM层),并调整输入各个层的单词的排列。具体而言,其中一个层的输入语句与之前相同,这相当于从左向右处理输入语句的常规的LSTM层。而另一个LSTM层的输入语句则按照从右到左的顺序输入。如果原文是“A B C D”,就改为“D C B A”。通过输入改变了顺序的输入语句,另一个LSTM层从右向左处理输入语句。之后,只需要拼接这两个LSTM层的输出,就可以创建双向LSTM层。

二、Attention层的使用方法

接下来,我们思考Attention层的使用方法。截止到目前,我们使用的 Attention 层的层结构如图所示

如上图所示,我们将Attention层插入了LSTM层和Affine层之间, 不过使用Attention层的方式并不一定非得像上图那样。实际上,使用 Attention 的模型还有其他好几种方式。比如,还有以下图的结构使用了Attention。

在上图中,Attention层的输出(上下文向量)被连接到了下一时刻的LSTM层的输入处。通过这种结构,LSTM层得以使用上下文向量的信息。相对地,我们实现的模型则是Affine层使用了上下文向量。 那么,Attention 层的位置的不同对最终精度有何影响呢?答案要试一下才知道。实际上,这只能使用真实数据来验证。不过,在上面的两个模型中,上下文向量都得到了很好的应用。因此,在这两个模型之间,我们可能看不到太大的精度差异。 从实现的角度来看,前者的结构(在LSTM层和Affine层之间插入Attention层)更加简单。这是因为在前者的结构中,解码器中的数据是从下往上单向流动的,所以Attention层的模块化会更加简单。实际上,我们轻松地将其模块化为了Time Attention层。

三、seq2seq的深层化和skip connection

在诸如翻译这样的实际应用中,需要解决的问题更加复杂。在这种情况下,我们希望带Attention的seq2seq具有更强的表现力。此时,首先 可以考虑到的是加深RNN层(LSTM层)。通过加深层,可以创建表现力 更强的模型,带Attention的seq2seq也是如此。那么,如果我们加深带 Attention 的 seq2seq,结果会怎样呢?下图给出了一个例子。

在上图的模型中,编码器和解码器使用了3层LSTM层。如本例所示,编码器和解码器中通常使用层数相同的LSTM层。另外,Attention层 的使用方法有许多变体。这里将解码器LSTM层的隐藏状态输入Attention 层,然后将上下文向量(Attention层的输出)传给解码器的多个层(LSTM 层和Affine 层 )。

另外,在加深层时使用到的另一个重要技巧是残差连接(skip connection,也称为residual connection 或 shortcut)这是一种“跨层 连接”的简单技巧,如下图所示

如上图所示,所谓残差连接,就是指“跨层连接”。此时,在残差连接的连接处,有两个输出被相加。请注意这个加法(确切地说,是对应元素 的加法)非常重要。因为加法在反向传播时“按原样”传播梯度,所以残差连接中的梯度可以不受任何影响地传播到前一个层。这样一来,即便加深了 层,梯度也能正常传播,而不会发生梯度消失(或者梯度爆炸),学习可以顺利进行。

相关文章:

  • 1KHZ的带通滤波器设计与仿真
  • 动态规划入门:从记忆化搜索到递推
  • 华为IP(3)
  • 去中心化借贷机制解析
  • MySQL 进阶 面经级
  • Oracle 数据库中优化 INSERT INTO 操作的性能
  • 量子计算与人工智能融合的未来趋势
  • 预训练(Pre-training) 和 微调(Fine-tuning)
  • 机器学习(总节环节)
  • 迈向云原生:理想汽车 OLAP 引擎变革之路
  • 【家政平台开发(6)】筑牢家政平台安全防线:全方位隐私与安全需求解析
  • 根据模板将 Excel 明细数据生成 Txt 文档|邮件合并
  • java的引用理解
  • 【行测】判断推理:逻辑判断
  • 4.1-python操作wrod/pdf 文件
  • Pytorch实现之基于GAN+序列后向选择的情绪识别增强方法
  • PyInstaller打包实战:如何智能切换本地调试与EXE模式,资源打包全攻略
  • MySQL数据库学习笔记1.SQL(1)
  • aarch64-none-elf-gcc与aarch64-linux-gnu-gcc
  • 源码分析之Leaflet中control模块Zoom类实现原理
  • 多地举办演唱会等吸引游客刺激消费,经济日报:引导粉丝经济理性健康发展
  • “三个集中”之后:图说浦东新区28次撤乡并镇
  • 株洲一重病妇女被要求本人到银行取款时去世?当地警方:正在处理
  • 国际奥委会举办研讨会,聚焦如何杜绝操纵比赛
  • 文化润疆|为新疆青少年提供科普大餐,“小小博物家(喀什版)”启动
  • 上海国际电影节纪录片单元,还世界真实色彩