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
5e09fa91
Commit
5e09fa91
authored
Nov 30, 2020
by
曹润柘
Browse files
Options
Browse Files
Download
Plain Diff
合并分支 'caorunzhe' 到 'master'
Caorunzhe 查看合并请求
!518
parents
79d6f5e0
51936a11
显示空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
36 行增加
和
44 行删除
+36
-44
Chapter12/chapter12.tex
+7
-6
Chapter16/chapter16.tex
+6
-6
bibliography.bib
+23
-32
没有找到文件。
Chapter12/chapter12.tex
查看文件 @
5e09fa91
...
...
@@ -118,7 +118,7 @@
\end{table}
%----------------------------------------------
\parinterval
Transformer在被提出之后,很快就席卷了整个自然语言处理领域。实际上,也可以把Transformer当作一种表示模型,因此也被大量地使用在自然语言处理的其他领域,甚至图像处理
\upcite
{
DBLP:journals/corr/abs-1802-05751
}
和语音处理
\upcite
{
DBLP:conf/icassp/DongXX18,DBLP:conf/interspeech/GulatiQCPZYHWZW20
}
中也能看到它的影子。比如,目前非常流行的BERT等预训练模型就是基于Transformer。表
\ref
{
tab:12-2
}
展示了Transformer在WMT英德和英法机器翻译任务上的性能。它能用更少的计算量(FLOP
S)达到比其他模型更好的翻译品质
\footnote
{
FLOPS = floating-point operations per second,即每秒浮点运算次数。它是度量计算机运算规模
的常用单位
}
。
\parinterval
Transformer在被提出之后,很快就席卷了整个自然语言处理领域。实际上,也可以把Transformer当作一种表示模型,因此也被大量地使用在自然语言处理的其他领域,甚至图像处理
\upcite
{
DBLP:journals/corr/abs-1802-05751
}
和语音处理
\upcite
{
DBLP:conf/icassp/DongXX18,DBLP:conf/interspeech/GulatiQCPZYHWZW20
}
中也能看到它的影子。比如,目前非常流行的BERT等预训练模型就是基于Transformer。表
\ref
{
tab:12-2
}
展示了Transformer在WMT英德和英法机器翻译任务上的性能。它能用更少的计算量(FLOP
s)达到比其他模型更好的翻译品质
\footnote
{
FLOPs = Floating Point Operations,即浮点运算数。它是度量算法/模型复杂度
的常用单位
}
。
%----------------------------------------------
\begin{table}
[htp]
...
...
@@ -131,6 +131,7 @@
\multicolumn
{
1
}{
l|
}{
GNMT+RL
}
&
24.6
&
39.92
&
1.4
$
\times
10
^{
20
}$
\\
\multicolumn
{
1
}{
l|
}{
ConvS2S
}
&
25.16
&
40.46
&
1.5
$
\times
10
^{
20
}$
\\
\multicolumn
{
1
}{
l|
}{
MoE
}
&
26.03
&
40.56
&
1.2
$
\times
10
^{
20
}$
\\
\multicolumn
{
1
}{
l|
}{
Transformer(Base Model)
}
&
27.3
&
38.1
&
3.3
$
\times
10
^{
18
}$
\\
\multicolumn
{
1
}{
l|
}{
Transformer (Big)
}
&
{
\small\sffamily\bfseries
{
28.4
}}
&
{
\small\sffamily\bfseries
{
41.8
}}
&
2.3
$
\times
10
^{
19
}$
\\
\end{tabular}
\end{table}
...
...
@@ -157,9 +158,9 @@
\begin{itemize}
\vspace
{
0.5em
}
\item
{
\small\sffamily\bfseries
{
自注意力子层
}}
\index
{
自注意力子层
}
(Self-
attention Sub-layer)
\index
{
Self-a
ttention Sub-layer
}
:使用自注意力机制对输入的序列进行新的表示;
\item
{
\small\sffamily\bfseries
{
自注意力子层
}}
\index
{
自注意力子层
}
(Self-
Attention Sub-layer)
\index
{
Self-A
ttention Sub-layer
}
:使用自注意力机制对输入的序列进行新的表示;
\vspace
{
0.5em
}
\item
{
\small\sffamily\bfseries
{
前馈神经网络子层
}}
\index
{
前馈神经网络子层
}
(Feed-
forward Sub-layer)
\index
{
Feed-f
orward Sub-layer
}
:使用全连接的前馈神经网络对输入向量序列进行进一步变换;
\item
{
\small\sffamily\bfseries
{
前馈神经网络子层
}}
\index
{
前馈神经网络子层
}
(Feed-
Forward Sub-layer)
\index
{
Feed-F
orward Sub-layer
}
:使用全连接的前馈神经网络对输入向量序列进行进一步变换;
\vspace
{
0.5em
}
\item
{
\small\sffamily\bfseries
{
残差连接
}}
(标记为“Add”):对于自注意力子层和前馈神经网络子层,都有一个从输入直接到输出的额外连接,也就是一个跨子层的直连。残差连接可以使深层网络的信息传递更为有效;
\vspace
{
0.5em
}
...
...
@@ -274,7 +275,7 @@
\parinterval
在
\ref
{
sec:12.1
}
节中已经介绍,自注意力机制中至关重要的是获取相关性系数,也就是在融合不同位置的表示向量时各位置的权重。Transformer模型采用了一种基于点乘的方法来计算相关性系数。这种方法也称为
{
\small\bfnew
{
缩放的点乘注意力
}}
\index
{
缩放的点乘注意力
}
(Scaled Dot-product Attention)
\index
{
Scaled Dot-product Attention
}
机制。它的运算并行度高,同时并不消耗太多的存储空间。
\parinterval
具体来看,在注意力机制的计算过程中,包含三个重要的参数,分别是
Query,
\\
Key和Value。在下面的描述中,分别用
$
\mathbi
{
Q
}$
,
$
\mathbi
{
K
}$
,
$
\mathbi
{
V
}$
对它们进行表示,其中
$
\mathbi
{
Q
}$
和
$
\mathbi
{
K
}$
的维度为
$
L
\times
d
_
k
$
,
$
\mathbi
{
V
}$
的维度为
$
L
\times
d
_
v
$
。这里,
$
L
$
为序列的长度,
$
d
_
k
$
和
$
d
_
v
$
分别表示每个Key和V
alue的大小,通常设置为
$
d
_
k
=
d
_
v
=
d
_{
\textrm
{
model
}}$
。
\parinterval
具体来看,在注意力机制的计算过程中,包含三个重要的参数,分别是
query,
\\
key和value。在下面的描述中,分别用
$
\mathbi
{
Q
}$
,
$
\mathbi
{
K
}$
,
$
\mathbi
{
V
}$
对它们进行表示,其中
$
\mathbi
{
Q
}$
和
$
\mathbi
{
K
}$
的维度为
$
L
\times
d
_
k
$
,
$
\mathbi
{
V
}$
的维度为
$
L
\times
d
_
v
$
。这里,
$
L
$
为序列的长度,
$
d
_
k
$
和
$
d
_
v
$
分别表示每个key和v
alue的大小,通常设置为
$
d
_
k
=
d
_
v
=
d
_{
\textrm
{
model
}}$
。
\parinterval
在自注意力机制中,
$
\mathbi
{
Q
}$
、
$
\mathbi
{
K
}$
、
$
\mathbi
{
V
}$
都是相同的,对应着源语言或目标语言序列的表示。而在编码-解码注意力机制中,由于要对双语之间的信息进行建模,因此,将目标语每个位置的表示视为编码-解码注意力机制的
$
\mathbi
{
Q
}$
,源语言句子的表示视为
$
\mathbi
{
K
}$
和
$
\mathbi
{
V
}$
。
...
...
@@ -328,7 +329,7 @@
\vspace
{
0.5em
}
\item
其次,对每个头分别执行点乘注意力操作,并得到每个头的注意力操作的输出
$
\mathbi
{
head
}_
i
$
;
\vspace
{
0.5em
}
\item
最后,将
$
h
$
个头的注意力输出在最后一维
$
d
_
v
$
进行拼接(Concat)重新得到维度为
$
h
\times
d
_
v
$
的输出,并通过对其右乘一个权重矩阵
$
\mathbi
{
W
}^{
\,
o
}$
进行线性变换,从而对多头计算得到的信息进行融合,且将多头注意力输出的维度映射为模型的隐层大小(即
$
d
_{
model
}$
),这里参数矩阵
$
\mathbi
{
W
}^{
\,
o
}
\in
\mathbb
{
R
}^{
h d
_
v
\times
d
_{
model
}}$
。
\item
最后,将
$
h
$
个头的注意力输出在最后一维
$
d
_
v
$
进行拼接(Concat)重新得到维度为
$
hd
_
v
$
的输出,并通过对其右乘一个权重矩阵
$
\mathbi
{
W
}^{
\,
o
}$
进行线性变换,从而对多头计算得到的信息进行融合,且将多头注意力输出的维度映射为模型的隐层大小(即
$
d
_{
model
}$
),这里参数矩阵
$
\mathbi
{
W
}^{
\,
o
}
\in
\mathbb
{
R
}^{
h d
_
v
\times
d
_{
model
}}$
。
\vspace
{
0.5em
}
\end{itemize}
...
...
@@ -348,7 +349,7 @@
\label
{
eq:12-11
}
\end{eqnarray}
\parinterval
多头机制的好处是允许模型在不同的表示子空间里学习。在很多实验中发现,不同表示空间的头捕获的信息是不同的,比如,在使用Transformer处理自然语言时,有的头可以捕捉句法信息,有头可以捕捉词法信息。
\parinterval
多头机制的好处是允许模型在不同的表示子空间里学习。在很多实验中发现,不同表示空间的头捕获的信息是不同的,比如,在使用Transformer处理自然语言时,有的头可以捕捉句法信息,有
的
头可以捕捉词法信息。
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
...
...
Chapter16/chapter16.tex
查看文件 @
5e09fa91
...
...
@@ -840,7 +840,7 @@ P(\mathbi{y}|\mathbi{x}) & = & \frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\
\begin{figure}
[h]
\centering
\includegraphics
[scale=3]
{
Chapter16/Figures/figure-the-meaning-of-pitch-in-different-fields.jpg
}
\caption
{
单词pitch(图里标红)在不同领域的不同词义实例
(
{
\color
{
red
}
这个是我们自己找的例子?如果不是,可以改造一下,或者引用论文!
}
)
}
\caption
{
单词pitch(图里标红)在不同领域的不同词义实例
}
\label
{
fig:16-1-wbh
}
\end{figure}
...
...
@@ -851,7 +851,7 @@ P(\mathbi{y}|\mathbi{x}) & = & \frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\
\begin{itemize}
\vspace
{
0.5em
}
\item
基于数据的方法。利用
其它领域的双语数据或领域内单语数据进行数据选择或数据增强,来提升(
{
\color
{
red
}
目标领域双语?
}
)
数据量。
\item
基于数据的方法。利用
源领域的双语数据或目标领域单语数据进行数据选择或数据增强,来提升模型训练的
数据量。
\vspace
{
0.5em
}
\item
基于模型的方法。针对领域适应开发特定的模型结构或训练策略、推断方法。
...
...
@@ -901,7 +901,7 @@ P(\mathbi{y}|\mathbi{x}) & = & \frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\
\parinterval
在真实场景中,由于每个领域的数据量有限,同时领域数量较多,针对每个领域单独训练一个机器翻译模型是不现实的。所以,通常的策略是训练一个机器翻译模型来支持多领域的翻译。虽然混合多个领域的数据可以有效增加训练数据规模,但正如前面所说,由于各个领域样本的数据量不平衡,在训练数据稀缺的领域上,模型表现往往差强人意。一种观点认为,数据量较少的领域数据具有更大的学习价值,可以提供较为珍贵的知识和信息,应该在训练过程中获得更大的权重。数据加权方法使用规则或统计方法对每个实例或领域进行评分,作为它们的权重,然后赋予每个样本或领域不同的权重来训练统计机器翻译模型。一般来说,数据量较少的领域数据权重更高,从而使这些更有价值的数据发挥出更大的作用
\upcite
{
DBLP:conf/emnlp/MatsoukasRZ09,DBLP:conf/emnlp/FosterGK10
}
。
\parinterval
上述思想本质上在解决
{
\small\bfnew
{
类别不均衡问题
}}
\
index
{
类别不均衡问题
}
(Class Imbalance Problem
\index
{
Class Imbalance Problem
}
)(
{
\color
{
red
}
引用朱老师EMNLP的论文,应该是07 年
}
)。另一种方法是通过数据重新采样对语料库进行加权
\upcite
{
DBLP:conf/wmt/ShahBS10,rousseau2011lium
}
。语料库加权方法通过构建目标领域语言模型,比较各个语料库与目标领域的相似性,赋予相似的语料库更高的权重。
\parinterval
上述思想本质上在解决
{
\small\bfnew
{
类别不均衡问题
}}
\
upcite
{
DBLP:conf/emnlp/ZhuH07
}
\index
{
类别不均衡问题
}
(Class Imbalance Problem
\index
{
Class Imbalance Problem
}
)。另一种方法是通过数据重新采样对语料库进行加权
\upcite
{
DBLP:conf/wmt/ShahBS10,rousseau2011lium
}
。语料库加权方法通过构建目标领域语言模型,比较各个语料库与目标领域的相似性,赋予相似的语料库更高的权重。
%----------------------------------------------------------------------------------------
% NEW SUB-SUB-SECTION
...
...
@@ -937,7 +937,7 @@ P(\mathbi{y}|\mathbi{x}) & = & \frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\
\subsubsection
{
1. 基于多领域数据的方法
}
\parinterval
一种简单的思路是利用其他领域的数据来辅助低资源领域上的模型训练,即基于多领域数据的领域适应
\upcite
{
chu2017empirical
,DBLP:journals/corr/abs-1708-08712,DBLP:conf/acl/WangTNYCP20,DBLP:conf/acl/JiangLWZ20
}
。实际上,多领域建模也可以看作是一种多语言建模问题(
\ref
{
multilingual-translation-model
}
节)。通过借助其他相似领域的训练数据,可以缓解目标领域数据缺乏的问题。比如,想要训练网络小说领域的翻译系统,可以通过加入文学、字幕等领域的翻译数据来增加数据量。
\parinterval
一种简单的思路是利用其他领域的数据来辅助低资源领域上的模型训练,即基于多领域数据的领域适应
\upcite
{
DBLP:conf/acl/ChuDK17
,DBLP:journals/corr/abs-1708-08712,DBLP:conf/acl/WangTNYCP20,DBLP:conf/acl/JiangLWZ20
}
。实际上,多领域建模也可以看作是一种多语言建模问题(
\ref
{
multilingual-translation-model
}
节)。通过借助其他相似领域的训练数据,可以缓解目标领域数据缺乏的问题。比如,想要训练网络小说领域的翻译系统,可以通过加入文学、字幕等领域的翻译数据来增加数据量。
\parinterval
但在神经机器翻译中,多领域数据不平衡问题也会导致数据量较少的领域训练不充分,带来较低的翻译品质。目前比较常用的多领域数据方法是在数据中加入标签来提高神经机器翻译模型对不同领域的区分能力
\upcite
{
DBLP:conf/acl/ChuDK17
}
,该方法主要通过两种策略来缓解领域不平衡问题:
...
...
@@ -987,7 +987,7 @@ P(\mathbi{y}|\mathbi{x}) & = & \frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\
\item
基于模型结构的方法,设计一个更适用于领域适应问题的模型结构
\upcite
{
2015OnGulcehre,2019Non,britz2017effective,DBLP:conf/ranlp/KobusCS17
}
。
\vspace
{
0.5em
}
\item
基于训练策略的方法,制定能够更好利用多领域数据的训练方法
\upcite
{
DBLP:conf/emnlp/WangULCS17,DBLP:conf/
aclnmt/ChenCFL17,DBLP:journals/corr/abs-1906-03129,dakwale2017finetuning,chu2015integrated,DBLP:conf/emnlp/ZengLSGLYL19,barone2017regularization,DBLP:conf/acl/SaundersB20,DBLP:conf/acl/LewisLGGMLSZ20
}
。 (
{
\color
{
red
}
引用的文献太多了,因为后面还会说,这里引用经典的就行,控制在2-4个就行
}
)
\item
基于训练策略的方法,制定能够更好利用多领域数据的训练方法
\upcite
{
DBLP:conf/emnlp/WangULCS17,DBLP:conf/
emnlp/WeesBM17,DBLP:conf/acl/ChuDK17
}
。
\vspace
{
0.5em
}
\item
基于模型推断的方法,生成更符合目标适应领域的翻译结果
\upcite
{
DBLP:conf/emnlp/DouWHN19,khayrallah2017neural,DBLP:journals/corr/FreitagA16,DBLP:conf/acl/SaundersSGB19
}
。
...
...
@@ -1003,7 +1003,7 @@ P(\mathbi{y}|\mathbi{x}) & = & \frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\
\parinterval
统计机器翻译时代基于模型结构的方法集中在提升词对齐模型、语言模型等子模型的领域适应性,从而提升统计机器翻译模型在特定领域的表现。而神经机器翻译模型是一个端到端的框架,因此对模型的调整往往体现在整体结构上。
\parinterval
在使用多领域数据时,神经机器翻译的结构无法有效地利用多领域语料库的信息多样性,混合多个相差较大的领域数据进行训练会使单个领域的翻译性能下降
(
{
\color
{
red
}
参考文献!
}
)
。为了解决这一问题,一个比较典型的做法是在使用多领域数据训练时,如图
\ref
{
fig:16-2-wbh
}
所示,在神经机器翻译模型的编码器中添加一个判别器,使用判别器预测输入句子的领域
\upcite
{
DBLP:conf/wmt/BritzLP17
}
,具体的做法为:在编码器的顶部添加一个判别器网络,这个判别器使用源语言句子
$
x
$
的编码器表示
$
x'
$
作为输入,预测句子所属的领域标签
$
d
$
。为了使预测领域标签d的正确概率
$
\funp
{
P
(
d|H
)
}$
最大,模型在训练过程中最小化如下损失函数
$
\funp
{
L
}_{
\rm
{
disc
}}$
。
\parinterval
在使用多领域数据时,神经机器翻译的结构无法有效地利用多领域语料库的信息多样性,混合多个相差较大的领域数据进行训练会使单个领域的翻译性能下降
\upcite
{
DBLP:conf/eacl/NegriTFBF17
}
。为了解决这一问题,一个比较典型的做法是在使用多领域数据训练时,如图
\ref
{
fig:16-2-wbh
}
所示,在神经机器翻译模型的编码器中添加一个判别器,使用判别器预测输入句子的领域
\upcite
{
DBLP:conf/wmt/BritzLP17
}
,具体的做法为:在编码器的顶部添加一个判别器网络,这个判别器使用源语言句子
$
x
$
的编码器表示
$
x'
$
作为输入,预测句子所属的领域标签
$
d
$
。为了使预测领域标签d的正确概率
$
\funp
{
P
(
d|H
)
}$
最大,模型在训练过程中最小化如下损失函数
$
\funp
{
L
}_{
\rm
{
disc
}}$
。
\begin{figure}
[h]
\centering
...
...
bibliography.bib
查看文件 @
5e09fa91
...
...
@@ -8806,8 +8806,7 @@ author = {Zhuang Liu and
@inproceedings{DBLP:conf/emnlp/FadaeeM18,
author = {Marzieh Fadaee and
Christof Monz},
title = {Back-Translation Sampling by Targeting Difficult Words in Neural Machine
Translation},
title = {Back-Translation Sampling by Targeting Difficult Words in Neural Machine Translation},
pages = {436--446},
publisher = {Annual Meeting of the Association for Computational Linguistics},
year = {2018}
...
...
@@ -11197,13 +11196,6 @@ author = {Zhuang Liu and
publisher = {International Conference on Computational Linguistics},
year = {2018}
}
@inproceedings{chu2017empirical,
title={An empirical comparison of domain adaptation methods for neural machine translation},
author={Chu, Chenhui and Dabre, Raj and Kurohashi, Sadao},
publisher = {Annual Meeting of the Association for Computational Linguistics},
pages={385--391},
year={2017}
}
@article{DBLP:journals/corr/abs-1708-08712,
author = {Hassan Sajjad and
Nadir Durrani and
...
...
@@ -11238,16 +11230,6 @@ author = {Zhuang Liu and
publisher = {Annual Meeting of the Association for Computational Linguistics},
year = {2020}
}
@inproceedings{DBLP:conf/acl/ChuDK17,
author = {Chenhui Chu and
Raj Dabre and
Sadao Kurohashi},
title = {An Empirical Comparison of Domain Adaptation Methods for Neural Machine
Translation},
pages = {385--391},
publisher = {Annual Meeting of the Association for Computational Linguistics},
year = {2017}
}
@inproceedings{DBLP:conf/emnlp/AxelrodHG11,
author = {Amittai Axelrod and
Xiaodong He and
...
...
@@ -11446,17 +11428,6 @@ author = {Zhuang Liu and
publisher = {Annual Conference of the North American Chapter of the Association for Computational Linguistics},
year = {2019}
}
@inproceedings{DBLP:conf/emnlp/WangULCS17,
author = {Rui Wang and
Masao Utiyama and
Lemao Liu and
Kehai Chen and
Eiichiro Sumita},
title = {Instance Weighting for Neural Machine Translation Domain Adaptation},
pages = {1482--1488},
publisher = {Annual Meeting of the Association for Computational Linguistics},
year = {2017}
}
@article{DBLP:journals/corr/abs-1906-03129,
author = {Shen Yan and
Leonard Dahlmann and
...
...
@@ -11556,7 +11527,27 @@ author = {Zhuang Liu and
year = {2020}
}
@inproceedings{DBLP:conf/emnlp/ZhuH07,
author = {Jingbo Zhu and
Eduard H. Hovy},
editor = {Jason Eisner},
title = {Active Learning for Word Sense Disambiguation with Methods for Addressing
the Class Imbalance Problem},
pages = {783--790},
publisher = {Conference on Empirical Methods in Natural Language Processing},
year = {2007}
}
@inproceedings{DBLP:conf/eacl/NegriTFBF17,
author = {M. Amin Farajian and
Marco Turchi and
Matteo Negri and
Nicola Bertoldi and
Marcello Federico},
title = {Neural vs. Phrase-Based Machine Translation in a Multi-Domain Scenario},
pages = {280--284},
publisher = {European Association of Computational Linguistics},
year = {2017}
}
%%%%% chapter 16------------------------------------------------------
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
...
...
@@ -11991,7 +11982,7 @@ author = {Zhuang Liu and
Lo{\"{\i}}c Barrault},
title = {{NMTPY:} {A} Flexible Toolkit for Advanced Neural Machine Translation
Systems},
journal = {
Prague Bull. Math.
Linguistics},
journal = {
The Prague Bulletin of Mathematical
Linguistics},
volume = {109},
pages = {15--28},
year = {2017}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论