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
0f0aa715
Commit
0f0aa715
authored
Nov 14, 2020
by
zengxin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
10 11 12
parent
01a786cf
显示空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
125 行增加
和
4 行删除
+125
-4
Chapter10/chapter10.tex
+1
-1
Chapter11/chapter11.tex
+10
-2
Chapter12/chapter12.tex
+1
-1
bibliography.bib
+113
-0
没有找到文件。
Chapter10/chapter10.tex
查看文件 @
0f0aa715
...
@@ -305,7 +305,7 @@ NMT & 21.7 & 18.7 & -13.7 \\
...
@@ -305,7 +305,7 @@ NMT & 21.7 & 18.7 & -13.7 \\
\end{figure}
\end{figure}
%----------------------------------------------
%----------------------------------------------
\parinterval
实际上,编码器-解码器模型也并不是表示学习实现的唯一途径。比如,在
{
\chapternine
}
提到的神经语言模型实际上也是一种有效的学习句子表示的方法,它所衍生出的预训练模型可以从大规模单语数据上学习句子的表示形式。这种学习会比使用少量的双语数据进行编码端和解码端的学习更加充分。相比机器翻译任务,语言模型相当于一个编码器的学习
\footnote
{
相比神经机器翻译的编码器,神经语言模型会多出一个输出层,这时可以直接把神经语言模型的中间层的输出作为编码器的输出。
}
,可以无缝嵌入到神经机器翻译模型中。不过,值得注意的是,机器翻译的目的是解决双语字符串之间的映射问题,因此它所使用的句子表示是为了更好地进行翻译。从这个角度说,机器翻译中的表示学习又和语言模型中的表示学习有不同。不过,这里不会深入讨论神经语言模型和预训练与神经机器翻译之间的异同,
再
后续章节会有相关讨论。
\parinterval
实际上,编码器-解码器模型也并不是表示学习实现的唯一途径。比如,在
{
\chapternine
}
提到的神经语言模型实际上也是一种有效的学习句子表示的方法,它所衍生出的预训练模型可以从大规模单语数据上学习句子的表示形式。这种学习会比使用少量的双语数据进行编码端和解码端的学习更加充分。相比机器翻译任务,语言模型相当于一个编码器的学习
\footnote
{
相比神经机器翻译的编码器,神经语言模型会多出一个输出层,这时可以直接把神经语言模型的中间层的输出作为编码器的输出。
}
,可以无缝嵌入到神经机器翻译模型中。不过,值得注意的是,机器翻译的目的是解决双语字符串之间的映射问题,因此它所使用的句子表示是为了更好地进行翻译。从这个角度说,机器翻译中的表示学习又和语言模型中的表示学习有不同。不过,这里不会深入讨论神经语言模型和预训练与神经机器翻译之间的异同,
在
后续章节会有相关讨论。
\parinterval
还有一点,在神经机器翻译中,句子的表示形式可以有很多选择。使用单个向量表示一个句子是一种最简单的方法。当然,也可以用矩阵、高阶张量完成表示。甚至,在解码时动态地生成源语言的表示结果。
\parinterval
还有一点,在神经机器翻译中,句子的表示形式可以有很多选择。使用单个向量表示一个句子是一种最简单的方法。当然,也可以用矩阵、高阶张量完成表示。甚至,在解码时动态地生成源语言的表示结果。
...
...
Chapter11/chapter11.tex
查看文件 @
0f0aa715
...
@@ -480,14 +480,14 @@
...
@@ -480,14 +480,14 @@
\noindent
其中dw是depth wise的缩写,
$
\mathbi
{
z
}_
i
^
\textrm
{
dw
}
\in
\mathbb
{
R
}^{
O
}$
,
$
\mathbi
{
W
}^
\textrm
{
dw
}
\in
\mathbb
{
R
}^{
K
\times
O
}$
,参数量只涉及卷积核大小及输入表示维度。
\noindent
其中dw是depth wise的缩写,
$
\mathbi
{
z
}_
i
^
\textrm
{
dw
}
\in
\mathbb
{
R
}^{
O
}$
,
$
\mathbi
{
W
}^
\textrm
{
dw
}
\in
\mathbb
{
R
}^{
K
\times
O
}$
,参数量只涉及卷积核大小及输入表示维度。
\parinterval
与深度卷积互为补充的是,逐点卷积只考虑不同通道之间的依赖性,而不考虑不同词之间的依赖。换句话说,逐点卷积对每个词表示做了一次线性变换,将输入表示
$
\mathbi
{
x
}_
i
$
从
$
\mathbb
{
R
}^{
O
}$
的空间映射到
$
\mathbb
{
R
}^{
N
}$
的空间,计算方式如下
(pw是position wise的缩写)
:
\parinterval
与深度卷积互为补充的是,逐点卷积只考虑不同通道之间的依赖性,而不考虑不同词之间的依赖。换句话说,逐点卷积对每个词表示做了一次线性变换,将输入表示
$
\mathbi
{
x
}_
i
$
从
$
\mathbb
{
R
}^{
O
}$
的空间映射到
$
\mathbb
{
R
}^{
N
}$
的空间,计算方式如下:
\begin{eqnarray}
\begin{eqnarray}
\mathbi
{
z
}_{
i,n
}^
\textrm
{
pw
}
&
=
&
\sum\nolimits
_{
o=1
}^{
O
}
\mathbi
{
x
}_{
i,o
}
\mathbi
{
W
}_{
o,n
}^
\textrm
{
pw
}
\nonumber
\\
\mathbi
{
z
}_{
i,n
}^
\textrm
{
pw
}
&
=
&
\sum\nolimits
_{
o=1
}^{
O
}
\mathbi
{
x
}_{
i,o
}
\mathbi
{
W
}_{
o,n
}^
\textrm
{
pw
}
\nonumber
\\
&
=
&
\mathbi
{
x
}_
i
\mathbi
{
W
}^
\textrm
{
pw
}
&
=
&
\mathbi
{
x
}_
i
\mathbi
{
W
}^
\textrm
{
pw
}
\label
{
eq:11-13
}
\label
{
eq:11-13
}
\end{eqnarray}
\end{eqnarray}
\noindent
其中
$
\mathbi
{
z
}_{
i
}^
\textrm
{
pw
}
\in
\mathbb
{
R
}^{
N
}$
,
$
\mathbi
{
W
}^
\textrm
{
pw
}
\in
\mathbb
{
R
}^{
O
\times
N
}$
。
\noindent
其中
pw是position wise的缩写,
$
\mathbi
{
z
}_{
i
}^
\textrm
{
pw
}
\in
\mathbb
{
R
}^{
N
}$
,
$
\mathbi
{
W
}^
\textrm
{
pw
}
\in
\mathbb
{
R
}^{
O
\times
N
}$
。
\parinterval
表
\ref
{
tab:11-1
}
展示了这几种不同类型卷积的参数量,深度可分离卷积通过将标准卷积进行分解,降低了整体模型的参数量。在相同参数量的情况下,深度可分离卷积可以采用更大的卷积窗口,考虑序列中更大范围的依赖关系。因此相比于标准卷积,深度可分离卷积具有更强的表示能力,在机器翻译任务中也能获得更好的性能。
\parinterval
表
\ref
{
tab:11-1
}
展示了这几种不同类型卷积的参数量,深度可分离卷积通过将标准卷积进行分解,降低了整体模型的参数量。在相同参数量的情况下,深度可分离卷积可以采用更大的卷积窗口,考虑序列中更大范围的依赖关系。因此相比于标准卷积,深度可分离卷积具有更强的表示能力,在机器翻译任务中也能获得更好的性能。
...
@@ -556,7 +556,15 @@
...
@@ -556,7 +556,15 @@
\parinterval
这里采用了最简单的线性变换,其中
$
\odot
$
表示矩阵的点乘(详见第九章介绍),
$
\mathbi
{
X
}$
是序列表示,
$
d
$
为通道数,
$
i
$
和
$
c
$
分别对应序列中不同的位置以及不同的通道,
$
\mathbi
{
W
}
\in
\mathbb
{
R
}^{
a
\times
k
\times
d
}$
为变换矩阵,
$
\mathbi
{
W
}_{
:,:,c
}$
表示其只在
$
d
$
这一维进行计算,最后生成的
$
\funp
{
f
}
(
\mathbi
{
X
}_
i
)
\in
\mathbb
{
R
}^{
a
\times
k
}$
就是与输入相关的卷积核参数。通过这种方式,模型可以根据不同位置的表示来确定如何关注其他位置信息的“权重”,更好地提取序列信息。同时,相比于注意力机制中两两位置确定出来的注意力权重,动态卷积线性复杂度的做法具有更高的计算效率。
\parinterval
这里采用了最简单的线性变换,其中
$
\odot
$
表示矩阵的点乘(详见第九章介绍),
$
\mathbi
{
X
}$
是序列表示,
$
d
$
为通道数,
$
i
$
和
$
c
$
分别对应序列中不同的位置以及不同的通道,
$
\mathbi
{
W
}
\in
\mathbb
{
R
}^{
a
\times
k
\times
d
}$
为变换矩阵,
$
\mathbi
{
W
}_{
:,:,c
}$
表示其只在
$
d
$
这一维进行计算,最后生成的
$
\funp
{
f
}
(
\mathbi
{
X
}_
i
)
\in
\mathbb
{
R
}^{
a
\times
k
}$
就是与输入相关的卷积核参数。通过这种方式,模型可以根据不同位置的表示来确定如何关注其他位置信息的“权重”,更好地提取序列信息。同时,相比于注意力机制中两两位置确定出来的注意力权重,动态卷积线性复杂度的做法具有更高的计算效率。
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection
{
小节及拓展阅读
}
\parinterval
卷积是一种高效处理网格数据的计算方式,在图像、语音等领域取得了令人瞩目的成绩。本章介绍了卷积的概念及其特性,并对池化、填充等操作进行了详细的讨论。前面介绍的基于循环神经网络的翻译模型在引入注意力机制后已经大幅度超越了基于统计的机器翻译模型,但由于循环神经网络的计算方式导致网络整体的并行能力差,训练耗时。本章介绍了具有高并行计算的能力的模型范式,即基于卷积神经网络的编码器-解码器框架。其在机器翻译任务上取得了与基于循环神经网络的GNMT模型相当的性能,并大幅度缩短了模型的训练周期。除了基础部分,本章还针对卷积计算进行了延伸,包括逐通道卷积、逐点卷积、轻量卷积和动态卷积等。除了上述提及的内容,卷积神经网络及其变种在文本分类、命名实体识别等其他自然语言处理任务上也有许多应用。
\parinterval
和机器翻译任务不同的是,文本分类任务侧重于对序列特征的提取,然后通过压缩后的特征表示做出类别预测。卷积神经网络可以对序列中一些
$
n
$
-gram特征进行提取,也可以用在文本分类任务中,其基本结构包括输入层、卷积层、池化层和全连接层。除了在本章介绍过的TextCNN模型
\upcite
{
Kim2014ConvolutionalNN
}
,不少研究工作在此基础上对其进行改进。比如,通过改变输入层来引入更多特征
\upcite
{
DBLP:conf/acl/NguyenG15,DBLP:conf/aaai/LaiXLZ15
}
,对卷积层的改进
\upcite
{
DBLP:conf/acl/ChenXLZ015,DBLP:conf/emnlp/LeiBJ15
}
以及对池化层的改进
\upcite
{
Kalchbrenner2014ACN,DBLP:conf/acl/ChenXLZ015
}
。在命名实体识别任务中,同样可以使用卷积神经网络来进行特征提取
\upcite
{
DBLP:journals/jmlr/CollobertWBKKK11,DBLP:conf/cncl/ZhouZXQBX17
}
,或者使用更高效的空洞卷积对更长的上下文进行建模
\upcite
{
DBLP:conf/emnlp/StrubellVBM17
}
。此外,也有一些研究工作尝试使用卷积神经网络来提取字符级特征
\upcite
{
DBLP:conf/acl/MaH16,DBLP:conf/emnlp/LiDWCM17,DBLP:conf/acl-codeswitch/WangCK18
}
。
...
...
Chapter12/chapter12.tex
查看文件 @
0f0aa715
...
@@ -563,7 +563,7 @@ Transformer Deep(48层) & 30.2 & 43.1 & 194$\times 10^
...
@@ -563,7 +563,7 @@ Transformer Deep(48层) & 30.2 & 43.1 & 194$\times 10^
\parinterval
Transformer解码器生成译文词序列的过程和其它神经机器翻译系统类似,都是从左往右生成,且下一个单词的预测依赖已经生成的单词。其具体推断过程如图
\ref
{
fig:12-56
}
所示,其中
$
\mathbi
{
C
}_
i
$
是编码-解码注意力的结果,解码器首先根据“<eos>”和
$
\mathbi
{
C
}_
1
$
生成第一个单词“how”,然后根据“how”和
$
\mathbi
{
C
}_
2
$
生成第二个单词“are”,以此类推,当解码器生成“<eos>”时结束推断。
\parinterval
Transformer解码器生成译文词序列的过程和其它神经机器翻译系统类似,都是从左往右生成,且下一个单词的预测依赖已经生成的单词。其具体推断过程如图
\ref
{
fig:12-56
}
所示,其中
$
\mathbi
{
C
}_
i
$
是编码-解码注意力的结果,解码器首先根据“<eos>”和
$
\mathbi
{
C
}_
1
$
生成第一个单词“how”,然后根据“how”和
$
\mathbi
{
C
}_
2
$
生成第二个单词“are”,以此类推,当解码器生成“<eos>”时结束推断。
\parinterval
但是,Transformer在推断阶段无法对所有位置进行并行化操作,因为对于每一个目标语单词都需要对前面所有单词进行注意力操作,因此它推断速度非常慢。可以采用的加速手段有:Cache(缓存需要重复计算的变量)
\upcite
{
Vaswani2018Tensor2TensorFN
}
、低精度计算
\upcite
{
DBLP:journals/corr/CourbariauxB16
}
、共享注意力网络等
\upcite
{
Xiao2019SharingAW
}
。关于Transformer模型的推断加速方法将会在
{
\chapterfourteen
}
进一步深入讨论。
\parinterval
但是,Transformer在推断阶段无法对所有位置进行并行化操作,因为对于每一个目标语单词都需要对前面所有单词进行注意力操作,因此它推断速度非常慢。可以采用的加速手段有:Cache(缓存需要重复计算的变量)
\upcite
{
Vaswani2018Tensor2TensorFN
}
、低精度计算
\upcite
{
DBLP:journals/corr/CourbariauxB16
,Lin2020TowardsF8
}
、共享注意力网络等
\upcite
{
Xiao2019SharingAW
}
。关于Transformer模型的推断加速方法将会在
{
\chapterfourteen
}
进一步深入讨论。
%----------------------------------------------
%----------------------------------------------
\begin{figure}
[htp]
\begin{figure}
[htp]
...
...
bibliography.bib
查看文件 @
0f0aa715
...
@@ -5050,6 +5050,119 @@ author = {Yoshua Bengio and
...
@@ -5050,6 +5050,119 @@ author = {Yoshua Bengio and
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%% chapter 11------------------------------------------------------
%%%%% chapter 11------------------------------------------------------
@inproceedings{DBLP:conf/acl-codeswitch/WangCK18,
author = {Changhan Wang and
Kyunghyun Cho and
Douwe Kiela},
title = {Code-Switched Named Entity Recognition with Embedding Attention},
pages = {154--158},
publisher = {Association for Computational Linguistics},
year = {2018}
}
@inproceedings{DBLP:conf/emnlp/LiDWCM17,
author = {Peng-Hsuan Li and
Ruo-Ping Dong and
Yu-Siang Wang and
Ju-Chieh Chou and
Wei-Yun Ma},
title = {Leveraging Linguistic Structures for Named Entity Recognition with
Bidirectional Recursive Neural Networks},
pages = {2664--2669},
publisher = {Association for Computational Linguistics},
year = {2017}
}
@inproceedings{DBLP:conf/acl/MaH16,
author = {Xuezhe Ma and
Eduard H. Hovy},
title = {End-to-end Sequence Labeling via Bi-directional LSTM-CNNs-CRF},
publisher = {The Association for Computer Linguistics},
year = {2016}
}
@inproceedings{DBLP:conf/emnlp/StrubellVBM17,
author = {Emma Strubell and
Patrick Verga and
David Belanger and
Andrew McCallum},
title = {Fast and Accurate Entity Recognition with Iterated Dilated Convolutions},
pages = {2670--2680},
publisher = {Association for Computational Linguistics},
year = {2017}
}
@inproceedings{DBLP:conf/cncl/ZhouZXQBX17,
author = {Peng Zhou and
Suncong Zheng and
Jiaming Xu and
Zhenyu Qi and
Hongyun Bao and
Bo Xu},
title = {Joint Extraction of Multiple Relations and Entities by Using a Hybrid
Neural Network},
volume = {10565},
pages = {135--146},
publisher = {Springer},
year = {2017}
}
@article{DBLP:journals/jmlr/CollobertWBKKK11,
author = {Ronan Collobert and
Jason Weston and
L{\'{e}}on Bottou and
Michael Karlen and
Koray Kavukcuoglu and
Pavel P. Kuksa},
title = {Natural Language Processing (Almost) from Scratch},
journal = {J. Mach. Learn. Res.},
volume = {12},
pages = {2493--2537},
year = {2011}
}
@inproceedings{DBLP:conf/acl/NguyenG15,
author = {Thien Huu Nguyen and
Ralph Grishman},
title = {Event Detection and Domain Adaptation with Convolutional Neural Networks},
pages = {365--371},
publisher = {The Association for Computer Linguistics},
year = {2015}
}
@inproceedings{DBLP:conf/aaai/LaiXLZ15,
author = {Siwei Lai and
Liheng Xu and
Kang Liu and
Jun Zhao},
title = {Recurrent Convolutional Neural Networks for Text Classification},
pages = {2267--2273},
publisher = {the Association for the Advance of Artificial Intelligence},
year = {2015}
}
@inproceedings{DBLP:conf/acl/ChenXLZ015,
author = {Yubo Chen and
Liheng Xu and
Kang Liu and
Daojian Zeng and
Jun Zhao},
title = {Event Extraction via Dynamic Multi-Pooling Convolutional Neural Networks},
pages = {167--176},
publisher = {The Association for Computer Linguistics},
year = {2015}
}
@inproceedings{DBLP:conf/emnlp/LeiBJ15,
author = {Tao Lei and
Regina Barzilay and
Tommi S. Jaakkola},
title = {Molding CNNs for text: non-linear, non-consecutive convolutions},
pages = {1565--1575},
publisher = {The Association for Computational Linguistics},
year = {2015}
}
@inproceedings{DBLP:conf/naacl/Johnson015,
@inproceedings{DBLP:conf/naacl/Johnson015,
author = {Rie Johnson and
author = {Rie Johnson and
Tong Zhang},
Tong Zhang},
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论