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
5304c338
Commit
5304c338
authored
Oct 19, 2020
by
xiaotong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
updates of the reading list
parent
9716de05
全部展开
显示空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
6 行增加
和
6 行删除
+6
-6
Chapter10/chapter10.tex
+0
-0
Chapter12/chapter12.tex
+6
-6
没有找到文件。
Chapter10/chapter10.tex
查看文件 @
5304c338
差异被折叠。
点击展开。
Chapter12/chapter12.tex
查看文件 @
5304c338
...
@@ -163,7 +163,7 @@
...
@@ -163,7 +163,7 @@
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
{
\small\sffamily\bfseries
{
残差连接
}}
\index
{
残差连接
}
(Residual Connection,标记为“Add”)
\index
{
Residual Connection
}
:对于自注意力子层和前馈神经网络子层,都有一个从输入直接到输出的额外连接,也就是一个跨子层的直连。残差连接可以使深层网络的信息传递更为有效;
\item
{
\small\sffamily\bfseries
{
残差连接
}}
\index
{
残差连接
}
(Residual Connection,标记为“Add”)
\index
{
Residual Connection
}
:对于自注意力子层和前馈神经网络子层,都有一个从输入直接到输出的额外连接,也就是一个跨子层的直连。残差连接可以使深层网络的信息传递更为有效;
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
{
\small\sffamily\bfseries
{
层正则化
}}
\index
{
层正则化
}
(Layer Normalization):自注意力子层和前馈神经网络子层进行最终输出之前,会对输出的向量进行层正则化,规范结果向量取值范围,这样易于后面进一步的处理。
\item
{
\small\sffamily\bfseries
{
层正则化
}}
\index
{
层正则化
}
(Layer Normalization)
\index
{
Layer Normalization
}
:自注意力子层和前馈神经网络子层进行最终输出之前,会对输出的向量进行层正则化,规范结果向量取值范围,这样易于后面进一步的处理。
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\end{itemize}
\end{itemize}
...
@@ -356,7 +356,7 @@
...
@@ -356,7 +356,7 @@
\subsection
{
掩码操作
}
\subsection
{
掩码操作
}
\parinterval
在公式
\
eq
ref
{
eq:12-47
}
中提到了掩码(Mask),它的目的是对向量中某些值进行掩盖,避免无关位置的数值对运算造成影响。Transformer中的掩码主要应用在注意力机制中的相关性系数计算,具体方式是在相关性系数矩阵上累加一个掩码矩阵。该矩阵在需要掩码的位置的值为负无穷
$
-
$
inf(具体实现时是一个非常小的数,比如
$
-
$
1e-9),其余位置为0,这样在进行了Softmax归一化操作之后,被掩码掉的位置计算得到的权重便近似为0,也就是说对无用信息分配的权重为0,从而避免了其对结果产生影响。Transformer包含两种掩码:
\parinterval
在公式
\ref
{
eq:12-47
}
中提到了掩码(Mask),它的目的是对向量中某些值进行掩盖,避免无关位置的数值对运算造成影响。Transformer中的掩码主要应用在注意力机制中的相关性系数计算,具体方式是在相关性系数矩阵上累加一个掩码矩阵。该矩阵在需要掩码的位置的值为负无穷
$
-
$
inf(具体实现时是一个非常小的数,比如
$
-
$
1e-9),其余位置为0,这样在进行了Softmax归一化操作之后,被掩码掉的位置计算得到的权重便近似为0,也就是说对无用信息分配的权重为0,从而避免了其对结果产生影响。Transformer包含两种掩码:
\begin{itemize}
\begin{itemize}
\vspace
{
0.5em
}
\vspace
{
0.5em
}
...
@@ -402,7 +402,7 @@ x_{l+1} = x_l + \mathcal{F} (x_l)
...
@@ -402,7 +402,7 @@ x_{l+1} = x_l + \mathcal{F} (x_l)
\label
{
eq:12-50
}
\label
{
eq:12-50
}
\end{eqnarray}
\end{eqnarray}
\noindent
其中,
$
x
_
l
$
表示
$
l
$
层网络的输入向量,
$
\mathcal
{
F
}
(
x
_
l
)
$
是子层运算。如果
$
l
=
2
$
,那么公式
\
eq
ref
{
eq:12-50
}
可以解释为,第3层的输入(
$
x
_
3
$
)等于第2层的输出(
$
\mathcal
{
F
}
(
x
_
2
)
$
)加上第二层的输入(
$
x
_
2
$
)。图
\ref
{
fig:12-50
}
中的红色方框展示了Transformer 中残差连接的位置。
\noindent
其中,
$
x
_
l
$
表示
$
l
$
层网络的输入向量,
$
\mathcal
{
F
}
(
x
_
l
)
$
是子层运算。如果
$
l
=
2
$
,那么公式
\ref
{
eq:12-50
}
可以解释为,第3层的输入(
$
x
_
3
$
)等于第2层的输出(
$
\mathcal
{
F
}
(
x
_
2
)
$
)加上第二层的输入(
$
x
_
2
$
)。图
\ref
{
fig:12-50
}
中的红色方框展示了Transformer 中残差连接的位置。
%----------------------------------------------
%----------------------------------------------
\begin{figure}
[htp]
\begin{figure}
[htp]
...
@@ -581,11 +581,11 @@ Transformer Deep(48层) & 30.2 & 43.1 & 194$\times 10^
...
@@ -581,11 +581,11 @@ Transformer Deep(48层) & 30.2 & 43.1 & 194$\times 10^
\begin{itemize}
\begin{itemize}
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
近两年,有研究已经发现注意力机制可以捕捉一些语言现象
\upcite
{
DBLP:journals/corr/abs-1905-09418
}
,比如,在Transformer 的多头注意力中,不同头往往会捕捉到不同的信息,比如,有些头对低频词更加敏感,有些头更适合词意消歧,甚至有些头可以捕捉句法信息。此外,由于注意力机制增加了模型的复杂性,而且随着网络层数的增多,神经机器翻译中也存在大量的冗余,因此研发轻量的注意力模型也是具有实践意义的方向
\upcite
{
Xiao2019SharingAW,
DBLP:journals/corr/abs-1805-00631
,Lin2020WeightDT
}
。
\item
近两年,有研究已经发现注意力机制可以捕捉一些语言现象
\upcite
{
DBLP:journals/corr/abs-1905-09418
}
,比如,在Transformer 的多头注意力中,不同头往往会捕捉到不同的信息,比如,有些头对低频词更加敏感,有些头更适合词意消歧,甚至有些头可以捕捉句法信息。此外,由于注意力机制增加了模型的复杂性,而且随着网络层数的增多,神经机器翻译中也存在大量的冗余,因此研发轻量的注意力模型也是具有实践意义的方向
\upcite
{
Xiao2019SharingAW,
zhang-etal-2018-accelerating
,Lin2020WeightDT
}
。
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
神经机器翻译依赖成本较高的GPU设备,因此对模型的裁剪和加速也是很多系统研发人员所感兴趣的方向。比如,从工程上,可以考虑减少运算强度,比如使用低精度浮点数
\upcite
{
Ott2018ScalingNM
}
或者整数
\upcite
{
DBLP:journals/corr/abs-1906-00532,Lin2020TowardsF8
}
进行计算,或者引入缓存机制来加速模型的推断
\upcite
{
Vaswani2018Tensor2TensorFN
}
;也可以通过对模型参数矩阵的剪枝来减小整个模型的体积
\upcite
{
DBLP:journals/corr/SeeLM16
}
;另一种方法是知识精炼
\upcite
{
Hinton2015Distilling,kim-rush-2016-sequence
}
。 利用大模型训练小模型,这样往往可以得到比单独训练小模型更好的效果
\upcite
{
DBLP:journals/corr/ChenLCL17
}
。
\item
神经机器翻译依赖成本较高的GPU设备,因此对模型的裁剪和加速也是很多系统研发人员所感兴趣的方向。比如,从工程上,可以考虑减少运算强度,比如使用低精度浮点数
\upcite
{
Ott2018ScalingNM
}
或者整数
\upcite
{
DBLP:journals/corr/abs-1906-00532,Lin2020TowardsF8
}
进行计算,或者引入缓存机制来加速模型的推断
\upcite
{
Vaswani2018Tensor2TensorFN
}
;也可以通过对模型参数矩阵的剪枝来减小整个模型的体积
\upcite
{
DBLP:journals/corr/SeeLM16
}
;另一种方法是知识精炼
\upcite
{
Hinton2015Distilling,kim-rush-2016-sequence
}
。 利用大模型训练小模型,这样往往可以得到比单独训练小模型更好的效果
\upcite
{
DBLP:journals/corr/ChenLCL17
}
。
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
自注意力网络作为Transformer模型中重要组成部分,近年来受到研究人员的广泛关注,尝试设计更高效地操作来替代它。比如,利用动态卷积网络来替换编码端与解码端的自注意力网络,在保证推断效率的同时取得了和Transformer相当甚至略好的翻译性能
\upcite
{
Wu2019PayLA
}
;为了加速Transformer处理较长输入文本的效率,利用局部敏感哈希替换自注意力机制的Reformer模型也吸引了广泛的关注
\upcite
{
Kitaev2020ReformerTE
}
。此外,在自注意力网络引入额外的编码信息能够进一步提高模型的表示能力。比如,引入固定窗口大小的相对位置编码信息
\upcite
{
Shaw2018SelfAttentionWR,dai-etal-2019-transformer
}
,或利用动态系统的思想从数据中学习特定的位置编码表示,具有更好的泛化能力
\upcite
{
Liu2020LearningTE
}
。通过对Transformer模型中各层输出进行可视化分析,研究人员发现Transformer自底向上各层网络依次聚焦于词级-语法级-语义级的表示
\upcite
{
Jawahar2019WhatDB
,li2020shallow
}
,因此在底层的自注意力网络中引入局部编码信息有助于模型对局部特征的抽象
\upcite
{
Yang2018ModelingLF,DBLP:journals/corr/abs-1904-03107
}
。
\item
自注意力网络作为Transformer模型中重要组成部分,近年来受到研究人员的广泛关注,尝试设计更高效地操作来替代它。比如,利用动态卷积网络来替换编码端与解码端的自注意力网络,在保证推断效率的同时取得了和Transformer相当甚至略好的翻译性能
\upcite
{
Wu2019PayLA
}
;为了加速Transformer处理较长输入文本的效率,利用局部敏感哈希替换自注意力机制的Reformer模型也吸引了广泛的关注
\upcite
{
Kitaev2020ReformerTE
}
。此外,在自注意力网络引入额外的编码信息能够进一步提高模型的表示能力。比如,引入固定窗口大小的相对位置编码信息
\upcite
{
Shaw2018SelfAttentionWR,dai-etal-2019-transformer
}
,或利用动态系统的思想从数据中学习特定的位置编码表示,具有更好的泛化能力
\upcite
{
Liu2020LearningTE
}
。通过对Transformer模型中各层输出进行可视化分析,研究人员发现Transformer自底向上各层网络依次聚焦于词级-语法级-语义级的表示
\upcite
{
Jawahar2019WhatDB
}
(Shallow-to-Deep Training for Neural Machine Translation(我的EMNLP,过两天挂arXiv)),因此在底层的自注意力网络中引入局部编码信息有助于模型对局部特征的抽象
\upcite
{
Yang2018ModelingLF,DBLP:journals/corr/abs-1904-03107
}
。还有很多Transformer结构的变种也值得关注,如(
{
\color
{
red
}
这部分可以再列举一些变种结构,比如efficient Transformer Survey里的,还有big bird啥的
}
)
。
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
除了针对Transformer中子层的优化,网络各层之间的连接方式在一定程度上也能影响模型的表示能力。近年来针对网络连接优化的工作如下:在编码端顶部利用平均池化或权重累加等融合手段得到编码端各层的全局表示
\upcite
{
Wang2018MultilayerRF,Bapna2018TrainingDN,Dou2018ExploitingDR,Wang2019ExploitingSC
}
,利用之前各层表示来生成当前层的输入表示
\upcite
{
Wang
Learning
,Dou2019DynamicLA,Wei2020MultiscaleCD
}
。
\item
除了针对Transformer中子层的优化,网络各层之间的连接方式在一定程度上也能影响模型的表示能力。近年来针对网络连接优化的工作如下:在编码端顶部利用平均池化或权重累加等融合手段得到编码端各层的全局表示
\upcite
{
Wang2018MultilayerRF,Bapna2018TrainingDN,Dou2018ExploitingDR,Wang2019ExploitingSC
}
,利用之前各层表示来生成当前层的输入表示
\upcite
{
Wang
2019LearningDT
,Dou2019DynamicLA,Wei2020MultiscaleCD
}
。
\end{itemize}
\end{itemize}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论