CS224n | Natural Language Processing with Deep Learning Stanford University
Lecture Notes: Part VI - Neural Machine Translation, Seq2seq and Attention
1
Lecture Notes: Part VI
Neural Machine Translation, Seq2seq and Attention
CS224n 学习
RNN LSTM CNN
transformerbert问答要、成、模型
理解等前沿内容。
笔记核心词
Seq2Seq and Attention Mechanisms, Neural Machine
Translation, Speech Processing
课程全部料和布,扫描
获取!!
微信公众号·全套资料
回复 CS224n
底部菜单栏
Bilibili·课程视频
视频简介
置顶评论
GitHub·项目代码
阅读 ReadMe
点击超链接
CS224n | Natural Language Processing with Deep Learning Stanford University
Lecture Notes: Part VI - Neural Machine Translation, Seq2seq and Attention
2
1. Neural Machine Translation with Seq2Seq
到目前为止,我们已经处理了预测单个输出的问题:一个单词的
NER 标签
的单,等 NLP
者输出是长度变化的序列。例如:
Translation :将种语一个后输
是另外一种语言的相同的意思的句子
Conversation :以陈述或问题作为输入并作出回应。
Summarization :将大量文本作为输入并输出其摘要
在下面的部分,我们将介 Seq2Seq 型,一个用来处理上述
问题的深度学习框架。这个框架被证明了是非常有效的,在不到
三年的时间里成为了机器翻译的标准方法。
1.1 Brief Note on Historical Approaches
在过去,翻译系统是基于概率模型构建的
一个 ,告
的句子/短语。
一个 语言模型 ,告诉我们给定句/短语的整体可能性。
这些组成部分用于构建基于单词或短语的翻译系统。正如你所想
到的,一个简单的的基于单词的翻译系统将完全不能捕获语言之
间的排序差异(例如,否定词移动,句子中的主语和动词的位置
等)。
基于短语的翻译系统在 Seq2Seq 之前是非常常见的。基于短
的翻译系统可以根据短语序列考虑输入和输出,相比比基于词的
系统可以处理更复杂的语法。然而,在基于短语的翻译系统仍然
难以捕获长距离的信息。
Seq2Seq 来很的优势,其是使用 LSTM代翻译系
可以在观测到整个输入后生成任意的输出序列。他们甚至可以自
动地专注于输入的特定部分,以帮助生成有用的翻译。
1.2 Sequence-to-sequence Basics
Seq2Seq 2014
-Seq2Seq
个有两个 RNN 组成的端到端模型
1 Notes info.
课件/Slides
视频/Video
GitHub·代码
Bilibili·视频
Stanford University X ShowMeAI
1.1 Notes info.
课件/Slides
视频/Video
GitHub·代码
Bilibili·视频
Stanford University X ShowMeAI
1.2 Notes info.
课件/Slides
视频/Video
GitHub·代码
Bilibili·视频
Stanford University X ShowMeAI
CS224n | Natural Language Processing with Deep Learning Stanford University
Lecture Notes: Part VI - Neural Machine Translation, Seq2seq and Attention
3
encoder 器,输入
编码固定大小上下文向
decoder 使下文向量
作为从其生成输出序列的种子
因此Seq2Seq 型通被称码器-
来我们将分别讨论这两个网络的细节
1.3 Seq2Seq architecture - encoder
编码器网络的作用是读取输入序列到我们的 Seq2Seq 模型中,
C
使——使 LSTM——
C
因为将一个任意长度序列压缩到一个单一固定大小的向量是很困
LSTM LSTM“每层的输出是层的
输入序列。LSTM 最后一层的最终隐藏状态就是
C
Seq2Seq 码器常会些奇的事它们向处
入序列。实际上这么处理是有目的的。通过这样做,编码器看到
的最后的信息(粗略地)对应于模型输出的开始信息;这使得解
地产
的输出句子。在翻译的环境中,我们允许网络在看到输入的前几
个单词时就进行翻译;一旦前几个单词被正确地翻译,构建一个
正确的句子比从头开始更加容易。
右图是一个展示编码器的例子,这个例子是翻译英语句子“what
is your name?
展开的,每一列是一个时间步和每一行是单一层,所以水平箭头
是对应隐藏状态和垂直箭头 LSTM 的输入/输出
1.4 Seq2Seq architecture - decoder
LSTM ,但使用比络略
复杂本质上讲们希能作个语言模可以
LSTM ,但将使码器上下
量来初始化第一层的隐藏层;然后编码器将使用输入的上下文向
量来逐词地生成输出。
Figure 1: Example of a
Seq2Seq encoder network. This
model may be used to translate the
English sentence "what is your
name?" Note that the input tokens
are read in reverse. Note that the
network is unrolled; each column is a
timestep and each row is a single
layer, so that horizontal arrows
correspond to hidden states and
vertical arrows are LSTM
inputs/outputs. 1:Seq2Seq
what is your
name
LSTM /
出。】
1.4 Notes info.
课件/Slides
视频/Video
GitHub·代码
Bilibili·视频
Stanford University X ShowMeAI
CS224n | Natural Language Processing with Deep Learning Stanford University
Lecture Notes: Part VI - Neural Machine Translation, Seq2seq and Attention
4
一旦编码器使用其上下文向量设置好,我们将传入一个特殊的字
符来表示生成输出的开始。在文献中,一般是附加到输入结尾的
<EOS>
标记(在出的结尾,表输出
LSTM softmax
单词。然后我们把这个词传递到下一个时间步的第一层,重复上
单词我们使 LSTM 言模
一样起作用。
what is
your name?使
殊的符“GO”,而且解码的生成是按照正常的句子顺序,而不
是反向读取的输入。注意输入和输出长度不需要相同。
使
略。我们对预测序列定义一个交叉熵损失函数,然后用梯度下降
算法和反向传播算法来最小化损失函数。同时对编码器和解码器
进行训练,使得它们都学习到相同的上下文向量表示。
1.5 Recap & Basic NMT Example
注意输入和输出的长度之间是没有任何联系的;模型的输入句子
可以是任意长度的,模型的输出句子可以是任意长度的。然而,
已经知道 Seq2Seq 模型在输入句子很长的情况下效果会变得很
差,LSTM 在实际使用中有一系列的限制。
Seq2Seq “what is your
name?”译为法语“comment t’appelles tu”的例子。先,
one-hot 输入
(对翻译任务,一般需要)用一个稠密的词向量表示。然后,一
LSTM
量。上下文向一个空间,表问某他们
的名输入句子的意。我运行络的每一
softmax
算,并生成我们第一个输出单词。这个单词作为网络下一个时间
“comment t’appelles
tu”的剩余部分。在反向传播期间,编码器的 LSTM 的权值被
使
LSTM 使
子。
Figure 2: Example of a
Seq2Seq decoder network. This
decoder is decoding the context
vector for "what is your name" (see
Fig. 1 into its French translation,
"comment t appeles tu?" Note the
special "GO" token used at the start
of generation, and that generation is
in the forward direction as opposed
to the input which is read in reverse.
Note also that the input and output
do not need to be the same length.
2:Seq2Seq
what is
your name 1
comment
t'appelles tu
使GO
不需要是相同的长度。】
CS224n | Natural Language Processing with Deep Learning Stanford University
Lecture Notes: Part VI - Neural Machine Translation, Seq2seq and Attention
5
Encoder:逐层运行,每一层的输出是下一层的输
Decoder
出是下一个时间步的第一层的输入
1.6 Bidirectional RNNs
之前讨论过句子的依赖不仅仅在一个方向的传播起作用;一个单
词可以依赖它前面或者后面的单词。到目前为止,我们已经讨论
过的 Seq2Seq 模型并没有考虑到这一点;在每个时间步,我们
步的面单(通 LSTM
隐藏 NMT任意
编码,而不管与输入之间的依赖关系的方向,因此这才能够让获
得的信息不会减少。
RNN
经元输出和最终隐藏状态都进行连接)来解决这个问题。对于每
RNN 经元们简加另神经,但以相
t
o
t
o
t
(f)
 o
t
(b)
o
t
(f)
t 正向 RNN 输出
o
t
(b)
t RNN
(f)
(b)
,其
(f)
是正 RNN
(b)
RNN LSTM
的例子。
2. Attention Mechanism
2.1 Motivation
“the ball is on the eld” 6
“ball” “on”
eld”
Bahdanau 使 RNN 终状作为 Seq2Seq
点:
有不同的重要程度。再者,此外,输出的不同部分甚至可以考虑
翻译
一个单词是一般是基于输入的前几个词,输出的最后几个词可能
基于输入的几个词。
注意机制利用这一观察结果,为解码器网络提供了在每个解码步
骤查看整个输入序列的功能;然后解码器可以在任何时间点决定
哪些输入单词是重要的。有很多类型的编码器机制,但是我们将
讨论由 Bahdanau 提出的机制。
Figure 3: Example of a single-
layer bidirectional LSTM encoder
network. Note that the input is fed
into two different LSTM layers,
but in different directions, and the
hidden states are concatenated to
get the final context vector. 3
LSTM
LSTM
上下文向量。】
2 Notes info.
课件/Slides
视频/Video
GitHub·代码
Bilibili·视频
Stanford University X ShowMeA
I
2.1 Notes info.
课件/Slides
视频/Video
GitHub·代码
Bilibili·视频
Stanford University X ShowMeAI
CS224n | Natural Language Processing with Deep Learning Stanford University
Lecture Notes: Part VI - Neural Machine Translation, Seq2seq and Attention
6
2.2 Bahdanau et al. NMT model
再回顾一下我们 Seq2Seq 型是由两部分组成,一个编码器
将一个输入句子编码,以及利用解码器所提取的信息生成翻译句
子的解码器。基本上,我们的输入句子是一个我们想要翻译的词
x
1
,…,
x
n
y
1
,…,
y
m
1) Encoder
1
,…,
n
藏向示。这些向量是例 bi-
LSTM 的输出,并且捕获句子中每个单词的上下文表示。
2) Decoder
我们想使用以下形式的递归公式计算解码器的隐藏状态
s
i
s
i
=f s
i−1
,
y
i−1
,
c
i
s
i−1
的隐
y
i−1
时间
c
i
是从原始句子捕获与解码器的时间 i相关的上下文的上下
文向量。
上下文向
c
i
捕获对第
i
个解码时间步的相关信息(与标准的的
Seq2Seq 型只一个文向不同对每始句
隐藏向量
j
,计算分数
e
i,j
=a s
i−1
,
j
a
单层
神经。然列标
e
i,1
,…,e
i,n
。然使
softmax 层对这些分数进行归一化,得到向量
α
i
=
,…,
α
i,n
α
i,j
=
exp e
i,j
k=1
n
exp
e
i,k
然后,计算原始句子的隐藏向量与注意力向量的加权平均值作为
上下向量
c
i
c
i
=
j=1
n
α
i,j
j
直观上,该向量从原始句子解码器的第
i
个时间中捕获相
关的上下文信息。
2.2 Notes info.
课件/Slides
视频/Video
GitHub·代码
Bilibili·视频
Stanford University X ShowMeAI
向量
α
i
称为注意力向量
利用取上
并捕获相关上下文
CS224n | Natural Language Processing with Deep Learning Stanford University
Lecture Notes: Part VI - Neural Machine Translation, Seq2seq and Attention
7
2.3 Connection with translation alignment
基于注意力的模型为输出的每个时间步分配对输入的不同部分的
Bahdanau 认为在解的时间步 i注意力分 α
ij
表示词对单词 i点,
我们可以使用注意力分数来构建一个对齐表——这个表是将源句
——
Seq2Seq NMT
对齐表的例子
2.4 Performance on long sentences
基于注意力模型的主要优点是能够有效地翻译长句。当句子的输
入长度变大时,模型如果只使用最终隐藏状态表示而不使用注意
机制,这会丢失信息和降低准确度。注意力机制是一个聪明的方
式来解决这个问题,并且现在很多实验也证实了确实如此。右图
是长句子在不同的 NMT 模型中的表现
3. Other Models
3.1 Luong et al. NMT model
Luong Effective Approaches to Attention-
based Neural Machine Translation
模型的变体,是由两个不同的注意力机制组成。
Global attention Seq2Seq NMT
编码器的隐藏状
1
,…,
n
,解码器的隐藏状态
1
,…,
n
。现在
i
编码向量
以使用下面其中一个得分函数:
score
i
,
j
=
i
T
j
i
T
Wℎ
j
W
i
,
j
Bahdanau
softmax
α
i
=
α
i,1
,…,
α
i,n
α
i,j
=
exp score
j
,
i
k=1
n
exp
score
k
,
i
Figure 4: Example of an
alignment table 4
例】
Figure 5: Performance on long
sentence of different NMT models -
image taken from Luong et al.
5 NMT
-图片来自 Luong 等人。】
CS224n | Natural Language Processing with Deep Learning Stanford University
Lecture Notes: Part VI - Neural Machine Translation, Seq2seq and Attention
8
c
i
=
j=1
n
α
i,j
j
然后再计算上下文向量,我们可以使用上下文向量和隐藏状
态对解码器的 i个时间步计算一个新的向量
i
=f
i
,c
i
使
i
Luong 使 input-feeding
i
Bahdanau 使
文向量来计算解码器的隐藏向量。
Local attention
它使用以此位置为中心的窗口来计算上下文向量。这个计算耗费
的计算资源是恒定的,不会随着句子的长度而暴增
有很多方法来使用注意力机制。
3.2 Google’s new NMT
Google NMT
了重大突破。不是为他们支持翻译的每一种语言维护一个完整的
Seq2Seq ——语言单独练,构建
单独系统可以翻译任意两种语言,这在数据和计算时间方面都是
一个巨大的成就。这是一 Seq2Seq 型,它接受一个单词序
列和一个指定要翻译的语言的符号作为输入。该模型使用共享参
数来翻译为任何目标语言。
这个的多语言不仅了他翻译表现能够
数据即使没有的训数据。我以在
语言翻译们如日语-译数
和韩语-语的翻译数据,Google 团队发现多语言 NMT 统对
这些训练可以理的-翻译
输入/输出句子的内部表
Figure 6: Example of Google’s
system【图 6:谷歌系统示例
CS224n | Natural Language Processing with Deep Learning Stanford University
Lecture Notes: Part VI - Neural Machine Translation, Seq2seq and Attention
9
3.3 More advanced papers using attention
Show, Attend and Tell: Neural Image Caption
Generation with Visual Attention
这篇论文是提出单词/图像对齐的方法
Modeling Coverage for Neural Machine Translation
使虑到使
帮助计算将来的注意力。
Incorporating Structural Alignment Biases into an
Attentional Neural Translation Model
言学
表现。
4. Sequence model decoders
机器翻译的另一种方法来自统计机器翻译。考虑一个计算给定原
始句子
s
的翻译
s
的概率模
P(s|s)
。我们想从这个概率模型中
选择概率最高的翻译 s。换而言之,我们希望
s∗=argmax
s
P(s|s)
因为搜索的空间可能会非常的大,所以我们需要缩小它的大小。
以下是序列模型解码器的列表(包含好的和不好的)。
Exhaustive search 这是单的思路每个能的列计
算其概率,然后我们从中选择概率最高的序列。但是,搜索空间
对输入的大小是呈指数级增长的,所以这个方法在很难扩展到大
规模输出的情况。在这个情况的解码过程是 NP 难度的问题。
Ancestral sampling :在时间 t,我们计算基于时间步 t
的单词的条件概率分布,并从该分布中进行抽样得 x
t
x
t
x
l
|x
1
,…,
x
n
理论上这个技术是有效的渐进精确的。然而在实际中,这个方法
的表现很差和会出现高方差
Greedy Search
而言之
x
l
=
argmax
x
l
x
t
|x
1
,…,x
n
CS224n | Natural Language Processing with Deep Learning Stanford University
Lecture Notes: Part VI - Neural Machine Translation, Seq2seq and Attention
10
这种技术是有效的,但是它探索了一小部分的搜索空间,如果我
们在一个时间步中出现一个错误,那么剩下的句子生成可能会受
到很大的影响
Beam search :这个方法是在每个时间步保持着 K 个候选单词
t
= x
1
1
,…,x
t
1
,…, x
1
K
,…,x
t
K
通过
t
并保 K 最好单词
t+1
。换
之,我们在下面的集合中选择最好的 K 个序列
t+1
=
k=1
K
t+1
k
t+1
k
= x
1
1
,…,x
t
1
,v
1
,…, x
1
K
,…,x
t
K
,v
|V|
K
提高并不具有单调性,所以我们要设置一个 K既要考虑合理性
beam search NMT
中最常见的方法。
5. Evaluation of Machine Translation Systems
现在我们知道有关机器翻译系统的基础知识,我们将讨论一些评
务。在现实生活中,如果您给十个不同的翻译者提供一段相同的
文字,您将获得十个不同的翻译结果。翻译在实践中是不完美和
有噪声的。他们关注不同的信息,强调不同的含义。一种翻译可
以保存隐喻和长期思想的完整性,而而另一种翻译可以更忠实地
担;这证明了语言的复杂性和我们解码和解释意思的能力,也是
我们交流能力的一个奇妙方面。
在这一点上,应该注意的是,模型的目标损失函数与我们将要讨
论的评估方法之间存在差异。由于损失函数本质上是对模型预测
的一个评估,所以很容易混淆这两个概念。前面的评估指标针对
一些度量标准为模型提供了一个最终的、总结性的评价,没有一
个度量方法优于所有其他方法,虽然有些具有明显的优势和多数
偏好。
评估机器学习翻译的质量已经自成体系为一个研究领域,已经提
出了多评估的 TER, METEOR, MaxSim, SEPIA RTE-
MT 。我们将重点关注两个基准评估方法 BLEU
5 Notes info.
课件/Slides
Lecture 8, P49
视频/Video
Lecture 8, 47:30
GitHub·代
实时在线查阅文档
Bilibili·视频
中英字幕课程视频
Stanford University X ShowMeAI
CS224n | Natural Language Processing with Deep Learning Stanford University
Lecture Notes: Part VI - Neural Machine Translation, Seq2seq and Attention
11
5.1 Human Evaluation
人,让他无法区分人工翻译和系统翻译,那么你的模型就通过了
看起来像真实句子的测试!这种方法的一个明显问题是成本高且
效率低,尽管它仍然是机器翻译的黄金标准。
5.2 Evaluation against another task
评估机器学习模型的一种常见方法是输出有用的表示数据(表示
为翻译或摘要),如果您的预测对解决某些具有挑战性的任务很
帮助,那么模型必须在预测中编码相关信息。例如,您可能会考
虑在翻译语言的问答
任务中训练翻译预测。也就是说,您使用系统的输出作为其他任
(问答)的输入。果您的第个任务的预测在翻
译语言的格式良好的数据上一样出色,这意味着您的输入具有满
足任务需求的相关信息或模式。
这种方法的问题在于,第二个任务可能不会受到许多翻译细节的
影响。例如,如果您在查询检索任务中衡量翻译质量(例如,提
取搜索查询的正确网页),你会发现一个翻译有助于保护文档的
,语法这并
味着翻译质量是准确可靠的。因此,确定翻译模型的质量只是为
了确定任务本身的质量,这可能是也可能不是一个好的标准。
5.3 Bilingual Evaluation Understudy (BLEU)
2002 IBM Bilingual Evaluation
UnderstudyBELU
器翻译中最可靠的评估方法之一。
BELU 算法通过参考人工翻译来评估机器翻译的精确度分数。参
为是一个翻译使 n-
gram 配候译与人工译之的相似程为度量标
考虑一个参考句子 A 和候选翻译 B
A there are many ways to evaluate the quality of a
translation, like comparing the number of n-grams between
a candidate translation and reference.
CS224n | Natural Language Processing with Deep Learning Stanford University
Lecture Notes: Part VI - Neural Machine Translation, Seq2seq and Attention
12
B the quality of a translation is evaluate of n-grams in a
reference and with translation.
BELU 是否 n-grams
翻译中。以下彩色的翻译是参考翻译和候选翻译之间共享的不同
大小的 n-grams 的一些示例。
A there are many ways to evaluate the quality of a
translation, like comparing the number of n-grams between
a candidate translation and reference.
B the quality of a translation is evaluate of n-grams in a
reference and with translation.
BELU n-grams unigram
度分数来评估 n-
grams 既出现在参考翻译中也出现在机器翻译中的百分比。
这个他的 n-grams 的大
gram unigram “a”
B A
子之间匹配一次的的次数。另外,我们强加一个简单的惩罚,使
1.0
there
分数为 1.0 的匹配,但是很明显这不是一个好的匹配。
BELU k
要评估的分数的最大 n-gram 即如果 k=4BELU 数仅计
大小
4
n-grams ,并忽略大于 4 n-grams 。令
=#matched n-grams/# n-grams in candidate translation
为对 n grams 最后
w
n
=1/2
n
n gram 的几何加权。我们简单惩罚的定义为
β=
e
min
0,1−
len
ref
len
MT
其中
len
ref
是参子长
len
MT
是机子长
度。
BELU 分数然后定义为:
BELU=β
i=1
k
p
n
w
n
CS224n | Natural Language Processing with Deep Learning Stanford University
Lecture Notes: Part VI - Neural Machine Translation, Seq2seq and Attention
13
BLEU 评分与人类对优秀翻译的判断密切相关,因此仍然是所有
评估指标的基准。然而,它还是有许多限制的。它只能在语料库
使
BLEU BLEU
n-grams
示。BLEU 的变体已经将这个算法修改为可以将候选机器翻译与
BLEU
的,但并不足以通过一个良好的机器翻译系统的基准。许多研究
BLEU
BLEU
文。
6. Dealing with the large output vocabulary
尽管现 NMT 系统取得了成,但是们很难处理大量的
Seq2Seq 使 softmax
个词汇表上的目标概率分布来预测序列中的下一个单词。事实证
使 softmax
而且时间复杂度也会与词汇大小成正比。我们现在将研究一些解
决这个问题的方法。
6.1 Scaling softmax
一个自然的想们能更有方法计算
概率吗?可以!实上,们已了两
“softmax”
多细节请看 lecture one 中的相关方法的介绍)。
1) Noise Contrastive Estimation
NCE K
“softmax”
|V|
K
|V|
word2vec
Zoph LSTM
使 mini batch
技巧,使 GPU 的训练效率更高。
CS224n | Natural Language Processing with Deep Learning Stanford University
Lecture Notes: Part VI - Neural Machine Translation, Seq2seq and Attention
14
2) Hierarchical Softmax
Morin
“softmax”路径 O(log|V|)
Hierarchical Softmax
GPU 上并行运算。
这两种方法的一个限制是它们仅在训练阶段中节省计算量(当目
标词已知时)。在测试阶段,我们还需要计算词汇表中的所有单
词的概率,然后做出预测。
6.2 Reducing vocabulary
“softmax”
将加快训练和测试过程。一种简单的方法是将词汇量限制在一个
很小的数量上,用一个标签
<UNK>
替换限制后的词汇表外的单
词。现在,无论是训练和测试时间可以显着地降低了,但这显然
是不理想的,因为我们可能会产生很
<UNK>
的输出。
Jean 等人了一种保固定词汇
V
'
的方法, 将训
练数据分具有
τ
个唯一目单词子集,其
τ= V
'
。可
通过依次扫描原始数据集直到检测 τ唯一的目标单词,从而形
成一个子集(如右图所示
mini-batch
|V|=500K
现了 10 倍以上的节省(
V
'
=30K,50K)。
这个 NCE 常类对任定的词,出的
含目单词
V
'
1个负噪声样例而,两个方法
要的不同,对每个
V
'
,是从偏分布
|Q|
中采样这
样例,其中
=
1
'
,if
'
0,otherwise
也可以从个词汇表(选列
)预测目标单词挑战在于,正
必须猜测目标词可能是什么。
Figure 7: Training data partition
【图 7:训练数据分区】
Figure 8: Candidate list
8:候选名单
Figure 9: Pointer network
Architecture 9体系
结构】
CS224n | Natural Language Processing with Deep Learning Stanford University
Lecture Notes: Part VI - Neural Machine Translation, Seq2seq and Attention
15
出使
K
基于 unigram
K'
为每句构建一个候选列
K
'
=3
K=
15k,30k,50k,
K
'
=10,20
6.3 Handling unknown words
NMT 统使上面提的方法来以降有效词量,不可避
免地某些单词映射
<UNK>
。例,当预测通常
时,可能会发生这种情况。我们需要新的机制来解决罕见和未知
的单词问题。
Gulcehre 等人提出了一个想来处问题习从文本
复制模型应用意力分布
l
t
来决定源文本中的指向
位置使用的隐 S
t
来预分类 Z
t
,从
决定何时从源文本中复制。
Z
t
绍的
使 softmax
y
t
w
y
t
l
在论文中的结果表明,该方法提高了机器翻译和文本摘要等任务
的表现。
然而可以想到的是,这种方法也是有局限性的。这是要重点指出
Google NMT
法在规模很大时是不可靠的——当网络是很深的时候,注意力机
制是不稳定的——而复制机制可能不是最适合处理罕见单词的策
——有时音译更合适
7. Word and character-based models
见或
sub-word
行操作。一个趋势是使用相同 Seq2Seq 架构,但是在更小的
单元上操作——基于字符的分词模型。另一个趋势是对单词和字
符采用混合架构。
7.1 Word segmentation
Sennrich
subword units 的序列来实现开放词汇翻译的方法。
CS224n | Natural Language Processing with Deep Learning Stanford University
Lecture Notes: Part VI - Neural Machine Translation, Seq2seq and Attention
16
Byte Pair Encoding
表开始,并且 n-
gram 对。例,在右图中,们的数据集 4 单词,图
词频例如“low” 5 (p,q,f)
表示一 n-gram
p,q
和出现的频 f如图中所示,我们已
n-gram
(e,s,9)
当前频率最高的 n-gram (es,t,9)。重复此过程,直到所
n-gram 对被选择过或词汇大小达到某个阈值
我们可以选择为训练集和测试集构建单独的词汇表,或者共同构
建一个词汇表。在构建词汇表之后,一个带有 Seq2Seq 体系结
构的 NMT 统(Bahdanau 等人在论文使用的),可以直接
训练词段,这法赢 WMT 2016
第一名。
7.2 Character-based model
Ling
m w
c
1
,c
2
…c
m
e
1
,e
2
…e
m
biLSTM
后向最终藏状
f
,
b
。最的词量是个隐态的
仿射变换来计算而得:
e
w
=
W
f
H
f
+W
b
H
b
+b
7.3 Hybrid NMT
Luong
开放 NMT主要阅罕
示,并在需要时重新获得未知目标单词。这种混合方法的双重优
点在于,它的训练比基于字符的方法要快得多,而且更容易进行
训练;同时,它不会像基于单词的模型,产生未知的单词。
NMT
译的深 LSTM 编码码器。我们对每种语言维大小
|V|
的词汇表和使
<UNK>
来表示 OOV 词汇。
基于字表示 :在常规的基于单词的 NMT,是使用一个通用
<UNK>
词向量来示全 OOV 的,
丢弃了关于源单词的有价值的信息。相反,我们学习了一个关于
Figure 10: Byte Pair Encoding
【图 10:字节对编码】
CS224n | Natural Language Processing with Deep Learning Stanford University
Lecture Notes: Part VI - Neural Machine Translation, Seq2seq and Attention
17
罕见的字深层 LSTM 型,使 LSTM 隐藏
状态作为罕见单词的表示(如右图所示)。
NMT
<UNK>
。相反,这里的目标是创建一个处理无限输出词汇
的连贯框架。解决方案是,在给定当前单词级别的状态下,使用
一个的深 LSTM 进行级别翻译注意
单词上下文用于初始化字符级编码器。该系统的训练方法是,每
当单词级 NMT 产生 <UNK>,字符级码器
就被要求重新未知目标单词的正确的 surface form
Figure 11: Hybrid NMT
11:混 NMT
CS224n | Natural Language Processing with Deep Learning Stanford University
Lecture Notes: Part VI - Neural Machine Translation, Seq2seq and Attention
18
机器学习
深度学习
自然语言处
计算机视觉
知识图谱
Machine Learning
Deep Learning
Natural Language Processing
Computer Vision
Knowledge Graphs
Stanford · CS229
Stanford · CS230
Stanford · CS224n
Stanford · CS231n
Stanford · CS520
# 系列内容 Awesome AI Courses Notes Cheatsheets
图机器学习
深度强化学
自动驾驶
Machine Learning with Graphs
Deep Reinforcement Learning
Deep Learning for Self-Driving Cars
Stanford · CS224W
UCBerkeley · CS285
MIT · 6.S094
...
...
...
ShowMeAI 的分覆盖知名TOP20+ AI 课程在为习者
高品质中文学习笔记和速查表。
斯坦(Stanford University) Natural Language Processing with Deep Learning (CS224n)
系列的第三门产出。
课程版本 2019 Winter,核心深(transformerbert问答摘要、文生成)在当(2021 )
业界和研究界依旧是前沿的方法。最新版课程的笔记生产已在规划中,也敬请期待。
笔记内容经由深度加工整合,以 5 个部分构建起完整的CS224n 内容世界”,并依GitHub 建了汇
页。快扫描二维码,跳转进入吧!有任何建议和反馈,也欢迎通过下方渠道和我们联络 (*3)~