当前位置:   article > 正文

《深度学习进阶:自然语言处理(第8章)》-读书笔记

《深度学习进阶:自然语言处理(第8章)》-读书笔记

第8章 Attention

8.1 Attention的结构

  • seq2seq存在的问题

seq2seq 中使用编码器对时序数据进行编码,然后将编码信息传递给解码器。此时,编码器的输出是固定长度的向量。实际上,这个“固定长度”存在很大问题。

无论多长的文本,当前的编码器都会将其转换为固定长度的向量。但是,这样做早晚会遇到瓶颈。就像最终西服会从衣柜中掉出来一样,有用的信息也会从向量中溢出。

  • 编码器的改进

使用编码器各个时刻(各个单词)的LSTM层的隐藏状态(这里表示为hs)

上图,使用各个时刻(各个单词)的隐藏状态向量,可以获得和输入的单词数相同数量的向量。输入了 5 个单词,此时编码器输出 5 个向量。这样一来,编码器就摆脱了“一个固定长度的向量”的制约。

通过这个小改动,编码器可以根据输入语句的长度,成比例地编码信息。

  • 解码器的改进①

改进后的解码器的层结构

上图,我们新增一个进行“某种计算”的层。这个“某种计算”接收(解码器)各个时刻的 LSTM 层的隐藏状态和编码器的 hs。然后,从中选出必要的信息,并输出到 Affine 层。与之前一样,编码器的最后的隐藏状态向量传递给解码器最初的 LSTM 层。

这个“某种计算”所做的工作是提取单词对齐信息。具体来说,就是从 hs 中选出与各个时刻解码器输出的单词有对应关系的单词向量。比如,当解码器输出“I”时,从 hs 中选出“吾輩”的对应向量。

可否将“选择”这一操作换成可微分的运算呢?

通过计算加权和,可以得到上下文向量

我们另行计算表示各个单词重要度(贡献值)的权重。这里使用了表示各个单词重要度的权重(记为 a)。此时,a 像概率分布一样,各元素是 0.0 ~ 1.0 的标量,总和是 1。然后,计算这个表示各个单词重要度的权重和单词向量 hs 的加权和,可以获得目标向量。

  • 解码器的改进②

下面我们来看一下各个单词的权重 a 的求解方法。

解码器第1个LSTM层的隐藏状态向量

用 h 表示解码器的 LSTM 层的隐藏状态向量。此时,我们的目标是用数值表示这个 h 在多大程度上和 hs 的各个单词向量“相似”。有几种方法可以做到这一点,这里我们使用最简单的向量内积。其含义是两个向量在多大程度上指向同一方向。

基于内积计算hs的各行与h的相似度(内积用dot节点表示)

通过向量内积算出 h 和 hs 的各个单词向量之间的相似度,并将其结果表示为 s。经过Softmax函数后的到 a。

  • 解码器的改进③

计算上下文向量的计算图

解码器的改进①和②已经分为 Weight Sum 层和 Attention Weight 层进行了实现。这里进行的计算是:Attention Weight 层关注编码器输出的各个单词向量 hs,并计算各个单词的权重 a;然后,Weight Sum 层计算 a 和 hs 的加权和,并输出上下文向量 c。

我们将进行这一系列计算的层称为 Attention 层。

8.2 带Attention的 seq2seq 的实现

  • 编码器的实现
  • 解码器的实现
  • seq2seq的实现

8.3 Attention的评价

8.4 关于Attention的其他话题

  • 双向RNN

单词“猫”的对应向量编码了“吾輩”“は”“猫”这 3 个单词的信息。如果考虑整体的平衡性,我们希望向量能更均衡地包含单词“猫”周围的信息。为此,可以让 LSTM 从两个方向进行处理,这就是名为双向 LSTM 的技术。

基于LSTM层输出hs

双向 LSTM 在之前的 LSTM 层上添加了一个反方向处理的 LSTM 层。然后,拼接各个时刻的两个 LSTM 层的隐藏状态,将其作为最后的隐藏状态向量(除了拼接之外,也可以“求和”或者“取平均”等)。

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

继续阅读:
《深度学习进阶:自然语言处理(第1章)》-读书笔记
《深度学习进阶:自然语言处理(第2章)》-读书笔记
《深度学习进阶:自然语言处理(第3章)》-读书笔记
《深度学习进阶:自然语言处理(第4章)》-读书笔记
《深度学习进阶:自然语言处理(第5章)》-读书笔记
《深度学习进阶:自然语言处理(第6章)》-读书笔记
《深度学习进阶:自然语言处理(第7章)》-读书笔记
《深度学习进阶:自然语言处理(第8章)》-读书笔记

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/739729
推荐阅读
相关标签
  

闽ICP备14008679号