Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
M
mtbookv2
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
NiuTrans
mtbookv2
Commits
0abaea5a
Commit
0abaea5a
authored
Dec 31, 2020
by
xiaotong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wording (sec 15)
parent
6da10900
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
14 行增加
和
10 行删除
+14
-10
Chapter15/chapter15.tex
+14
-10
没有找到文件。
Chapter15/chapter15.tex
查看文件 @
0abaea5a
...
...
@@ -23,7 +23,7 @@
\chapter
{
神经机器翻译结构优化
}
\parinterval
模型结构的设计是机器翻译系统研发中最重要的
部分。在神经机器翻译中,虽然系统研发人员脱离了繁琐的特征工程,但是神经网络结构的设计仍然非常重要。无论是像循环神经网络、Transformer
这样的整体架构的设计,还是注意力机制等局部结构的设计,都对机器翻译性能有着很大的影响。
\parinterval
模型结构的设计是机器翻译系统研发中最重要的
工作之一。在神经机器翻译时代,虽然系统研发人员脱离了繁琐的特征工程,但是神经网络结构的设计仍然耗时耗力。无论是像循环神经网络、Transformer
这样的整体架构的设计,还是注意力机制等局部结构的设计,都对机器翻译性能有着很大的影响。
\parinterval
本章主要讨论神经机器翻译中结构优化的若干研究方向,包括:注意力机制的改进、网络连接优化及深层网络建模、基于树结构的模型、神经网络结构自动搜索等。这些内容可以指导神经机器翻译系统的深入优化,其中涉及的一些模型和方法也可以应用于其他自然语言处理任务。
...
...
@@ -34,7 +34,7 @@
\sectionnewpage
\section
{
注意力机制的改进
}
\parinterval
注意力机制是神经机器翻译成功的关键
,因此对相关模型的结构进行优化是十分重要的研究方向。以Transformer为例,由于使用自注意力机制,该模型展现出高并行计算与全局建模的能力,这也使得该模型目前在机器翻译、语言建模等自然语言处理任务上表现十分突出。后续研究人员在Transformer的基础上衍生出许多改进工作。例如,在处理长文本序列时(假设文本长度为
$
N
$
),由于自注意力模型的时间复杂度为
$
O
(
N
^
2
)
$
,在
$
N
$
过大时翻译速度很低。同时在机器翻译领域,尽管在Transformer模型的输入中引入了绝对位置编码表示,现有的自注意力机制仍然无法显著捕获局部窗口下不同位置之间的关系。此外一部分研究人员将多头-自注意力网络机制中的多头思想进一步扩展,采用多分支结构对不同空间特征进行提取,之后对特征进行融合。针对以上问题,本节将介绍注意力机制的优化策略,并重点讨论了
自注意力模型的若干改进方法。
\parinterval
注意力机制是神经机器翻译成功的关键
。以Transformer为例,由于使用自注意力机制,该模型展现出高并行计算与全局建模的能力,这也使得Transformer在机器翻译、语言建模等任务上表现十分突出。在Transformer的基础上衍生出许多改进工作。例如,在处理长文本序列时(假设文本长度为
$
N
$
),由于自注意力模型的时间复杂度为
$
O
(
N
^
2
)
$
,在
$
N
$
过大时翻译速度很低。此外,尽管Transformer模型的输入中包含了绝对位置编码表示,现有自注意力机制仍然无法显性捕获局部窗口下不同位置之间的关系。而且注意力机制需要更多样的手段进行特征提取,例如,采用多头或者多分支结构对不同空间特征进行提取。针对以上问题,本节将介绍注意力机制的优化策略,并重点讨论Transformer模型中
自注意力模型的若干改进方法。
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
...
...
@@ -42,7 +42,9 @@
\subsection
{
局部信息建模
}
\label
{
subsec-15.1.1
}
\parinterval
使用循环神经网络进行序列建模时,每一个时刻的计算都依赖于上一时刻的隐层状态。这种模式天然具有一定的时序性,且具有
{
\small\bfnew
{
归纳偏置
}}
\index
{
归纳偏置
}
(Inductive Bias)
\index
{
Inductive Bias
}
的特性
\upcite
{
DBLP:journals/corr/abs-1806-01261
}
。但是在使用Transformer模型对词序列进行建模时,由于自注意力网络直接对当前单词与序列中全部单词进行建模,因此忽略了单词之间的位置关系,缺少了类似于循环或卷积神经网络中局部窗口内的依赖关系。虽然,为了区分单词之间的位置关系,Transformer中引入了正余弦函数作为绝对位置编码(见
{
\chaptertwelve
}
),但是该方法仍然无法显著区分局部依赖与长距离依赖。这里,局部依赖指代当前位置的词与局部的相邻词之间的联系。
\parinterval
使用循环神经网络进行序列建模时,每一个时刻的计算都依赖于上一时刻的隐层状态。这种模式天然具有一定的时序性,且具有
{
\small\bfnew
{
归纳偏置
}}
\index
{
归纳偏置
}
(Inductive Bias)
\index
{
Inductive Bias
}
的特性
\upcite
{
DBLP:journals/corr/abs-1806-01261
}
,即我们使用了一个假设:每一时刻的状态仅仅基于当前时刻的输入和前一时刻状态。这种归纳偏置的好处在于,模型可以很容易处理任意长序列,即使测试样本显著长于训练样本,因为模型并不需要对绝对位置建模。
\parinterval
但是,Transformer模型中的自注意力机制本身并不具有这种性质。由于自注意力机制直接对当前单词与序列中全部单词进行建模,因此忽略了单词之间的位置关系,缺少了类似于循环或卷积神经网络中局部窗口内的依赖关系。虽然,为了区分单词之间的位置关系,Transformer中引入了正余弦函数作为绝对位置编码(见
{
\chaptertwelve
}
),但是该方法仍然无法显性区分局部依赖与长距离依赖。这里,局部依赖指代当前位置的词与局部的相邻词之间的联系。
\parinterval
针对上述问题,研究人员设计了“相对位置”编码,对原有的“绝对位置”编码进行补充,强化了局部依赖
\upcite
{
Dai2019TransformerXLAL,Shaw2018SelfAttentionWR
}
。此外,由于模型中每一层均存在自注意力机制计算,因此模型捕获位置信息的能力也逐渐减弱,这种现象在深层网络建模中尤为明显。而利用相对位置编码也有效地强化了深层神经网络中局部位置的表示,并显著地提升模型性能
\upcite
{
li2020shallow
}
。
...
...
@@ -52,20 +54,22 @@
\subsubsection
{
1. 位置编码
}
\label
{
subsubsec-15.1.1
}
\parinterval
对于一个序列,位置编码描述了不同位置的偏置信息。常见的技术手段为:在初始的输入中加入统计的偏置信息,如正余弦函数
\upcite
{
vaswani2017attention
}
, 或在计算每层的注意力权重时加入偏置信息。在介绍相对位置编码之前,首先简要回顾一下自注意力机制的计算流程(见
{
\chaptertwelve
}
)。首先,可以定义:
\parinterval
对于一个序列,位置编码描述了不同位置的偏置信息。常见的技术手段为:在模型的输入中显性加入统计偏置信息,如正余弦函数
\upcite
{
vaswani2017attention
}
, 或在模型每层神经网络中加入偏置信息。在介绍相对位置编码之前,首先简要回顾一下自注意力机制的计算流程(见
{
\chaptertwelve
}
)。对于Transformer模型中的某一层神经网络,可以定义:
\begin{eqnarray}
\mathbi
{
Q
}
&
=
&
\mathbi
{
x
}
\mathbi
{
W
}_
Q
\\
\mathbi
{
K
}
&
=
&
\mathbi
{
x
}
\mathbi
{
W
}_
K
\\
\mathbi
{
V
}
&
=
&
\mathbi
{
x
}
\mathbi
{
W
}_
V
\end{eqnarray}
\noindent
其中,
$
\mathbi
{
x
}$
为模型上一层的输出
\footnote
[1]
{
这里,
$
\mathbi
{
K
}$
、
$
\mathbi
{
Q
}$
、
$
\mathbi
{
V
}$
的定义与
{
\chaptertwelve
}
略有不同,因为在这里的
$
\mathbi
{
K
}$
、
$
\mathbi
{
Q
}$
、
$
\mathbi
{
V
}$
是指对注意力模型输入进行线性变换后的结果,而
{
\chaptertwelve
}
中
$
\mathbi
{
K
}$
、
$
\mathbi
{
Q
}$
、
$
\mathbi
{
V
}$
直接表示输入。但是,这两种描述方式本质上是一样的,区别仅仅在于对输入的线性变化是放在输入自身中描述,还是作为输入之后的一个额外操作。
}
。此时,对于一个给定的输入向量序列
$
\seq
{
x
}
=
\{\mathbi
{
x
}_
1
,
\mathbi
{
x
}_
2
,
\ldots
,
\mathbi
{
x
}_
m
\}
$
,通过点乘计算,可以得到当前位置单词
$
i
$
和序列中所有单词间的关系:
\noindent
其中,
$
\mathbi
{
x
}$
为上一层的输出
\footnote
[1]
{
这里,
$
\mathbi
{
K
}$
、
$
\mathbi
{
Q
}$
、
$
\mathbi
{
V
}$
的定义与
{
\chaptertwelve
}
略有不同,因为在这里的
$
\mathbi
{
K
}$
、
$
\mathbi
{
Q
}$
、
$
\mathbi
{
V
}$
是指对注意力模型输入进行线性变换后的结果,而
{
\chaptertwelve
}
中
$
\mathbi
{
K
}$
、
$
\mathbi
{
Q
}$
、
$
\mathbi
{
V
}$
直接表示输入。但是,这两种描述方式本质上是一样的,区别仅仅在于对输入的线性变化是放在输入自身中描述,还是作为输入之后的一个额外操作。
}
。此时,对于整个模型输入的向量序列
$
\seq
{
x
}
=
\{\mathbi
{
x
}_
1
,
\mathbi
{
x
}_
2
,
\ldots
,
\mathbi
{
x
}_
m
\}
$
,通过点乘计算,可以得到当前位置
$
i
$
和序列中所有位置间的关系:
\begin{eqnarray}
\mathbi
{
z
}_{
i
}
&
=
&
\sum
_{
j=1
}^
m
\alpha
_{
ij
}
(
\mathbi
{
x
}_
j
\mathbi
{
W
}_
V)
\label
{
eq:15-1
}
\end{eqnarray}
\noindent
其中,
自注意
权重
$
\alpha
_{
ij
}$
通过Softmax函数得到:
\noindent
其中,
$
\mathbi
{
z
}_{
i
}$
可以被看做是输入序列的线性加权表示结果。
权重
$
\alpha
_{
ij
}$
通过Softmax函数得到:
\begin{eqnarray}
\alpha
_{
ij
}
&
=
&
\frac
{
\exp
\mathbi
{
e
}_{
ij
}}{
\sum
_{
k=1
}^{
m
}
\mathbi
{
e
}_{
ik
}}
\label
{
eq:15-2
}
...
...
@@ -77,20 +81,20 @@
\label
{
eq:15-3
}
\end{eqnarray}
\noindent
其中,
$
d
_
k
$
为模型中隐层的维度
\footnote
[2]
{
在多头注意力中,
$
d
_
k
$
为经过多头分割后每个头的维度。
}
。
$
\mathbi
{
e
}_{
ij
}$
实际上就是
$
\mathbi
{
Q
}$
和
$
\mathbi
{
K
}$
向量积缩放后的一个结果。
\noindent
其中,
$
d
_
k
$
为模型中隐层的维度
\footnote
[2]
{
在多头注意力中,
$
d
_
k
$
为经过多头分割后每个头的维度。
}
。
$
\mathbi
{
e
}_{
ij
}$
实际上就是
$
\mathbi
{
Q
}$
和
$
\mathbi
{
K
}$
的
向量积缩放后的一个结果。
\parinterval
基于上述
的注意力机制的计算方式,相对位置建模
可以按如下方式实现:
\parinterval
基于上述
描述,相对位置模型
可以按如下方式实现:
\begin{itemize}
\vspace
{
0.5em
}
\item
{
\small\bfnew
{
相对位置编码
}}
\index
{
相对位置编码
}
(Relative Positional Representation)
\index
{
Relative Positional Representation
}
\upcite
{
Shaw2018SelfAttentionWR
}
。核心思想是在能够捕获全局依赖的自注意力机制中引入相对位置信息。该方法可以有效补充绝对位置编码
信息的不足之处,甚至完全取代位置编码。对于输入元素
$
\mathbi
{
x
}_
i
$
和
$
\mathbi
{
x
}_
j
$
之间的联系,可以通过向量
$
\mathbi
{
a
}_{
ij
}^
V
$
和
$
\mathbi
{
a
}_{
ij
}^
K
$
来表示,如公式
\ref
{
eq:15-7
}
所示。
\item
{
\small\bfnew
{
相对位置编码
}}
\index
{
相对位置编码
}
(Relative Positional Representation)
\index
{
Relative Positional Representation
}
\upcite
{
Shaw2018SelfAttentionWR
}
。核心思想是在能够捕获全局依赖的自注意力机制中引入相对位置信息。该方法可以有效补充绝对位置编码
的不足,甚至完全取代绝对位置编码。假设,
$
\mathbi
{
x
}_
i
$
和
$
\mathbi
{
x
}_
j
$
是输入序列中位置
$
i
$
和
$
j
$
的向量,二者的联系可以通过向量
$
\mathbi
{
a
}_{
ij
}^
V
$
和
$
\mathbi
{
a
}_{
ij
}^
K
$
来表示,定义如下:
\begin{eqnarray}
\mathbi
{
a
}_{
ij
}^
K
&
=
&
\mathbi
{
w
}^
K
_{
\textrm
{
clip
}
(j-i,k)
}
\label
{
eq:15-7
}
\\
\mathbi
{
a
}_{
ij
}^
V
&
=
&
\mathbi
{
w
}^
V
_{
\textrm
{
clip
}
(j-i,k)
}
\label
{
eq:15-8
}
\\
\textrm
{
clip
}
(x,k)
&
=
&
\max
(-k,
\min
(k,x))
\label
{
eq:15-9
}
\end{eqnarray}
\noindent
其中
$
\mathbi
{
w
}^
K
$
和
$
\mathbi
{
w
}^
V
$
是模型中可学习的参数矩阵,
$
\mathbi
{
w
}^{
K
}_{
i
}
,
\mathbi
{
w
}^{
V
}_{
i
}
\in
\mathbb
{
R
}^{
d
_
k
}$
,
$
\textrm
{
clip
}$
表示截断操作。可以发现
$
\mathbi
{
a
}^
K
$
与
$
\mathbi
{
a
}^
V
$
是根据输入数据对
\mathbi
{
w
}
进行查找得到的相对位置表示,这里通过预先设定的最大相对位置
$
k
$
,强化模型对当前词为中心的左右各
$
k
$
个词的注意力计算。因此,最终的窗口大小为
$
2
k
+
1
$
。 对于边缘位置窗口大小不足
$
2
k
$
的单词,采用了裁剪的机制,即只对有效的临近词进行建模。此时,注意力模型的计算可以调整为公式
\ref
{
eq:15-4
}
:
\noindent
其中
,
$
\mathbi
{
w
}^
K
\in
\mathbb
{
R
}^{
d
_
k
}$
和
$
\mathbi
{
w
}^
V
\in
\mathbb
{
R
}^{
d
_
k
}$
是模型中可学习的参数矩阵;
$
\textrm
{
clip
}
(
\cdot
,
\cdot
)
$
表示截断操作,由公式
\eqref
{
eq:15-9
}
定义。可以发现
$
\mathbi
{
a
}^
K
$
与
$
\mathbi
{
a
}^
V
$
是根据输入数据对
$
\mathbi
{
w
}^
K
$
和
$
\mathbi
{
w
}^
V
$
进行查表得到的向量,即相对位置表示。这里通过预先设定的最大相对位置
$
k
$
,强化模型对当前词为中心的左右各
$
k
$
个词的注意力计算。因此,最终的窗口大小为
$
2
k
+
1
$
。 对于边缘位置窗口大小不足
$
2
k
$
的单词,采用了裁剪的机制,即只对有效的临近词进行建模。此时,注意力模型的计算可以调整为公式
\ref
{
eq:15-4
}
:
\begin{eqnarray}
\mathbi
{
z
}_{
i
}
&
=
&
\sum
_{
j=1
}^
m
\alpha
_{
ij
}
(
\mathbi
{
x
}_
j
\mathbi
{
W
}_
V +
\mathbi
{
a
}_{
ij
}^
V)
\label
{
eq:15-4
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论