Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
T
Toy-MT-Introduction
概览
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
Toy-MT-Introduction
Commits
a3fca34e
Commit
a3fca34e
authored
May 12, 2020
by
曹润柘
Browse files
Options
Browse Files
Download
Plain Diff
合并分支 'master' 到 'caorunzhe'
Master 查看合并请求
!150
parents
e3834607
6d19008f
显示空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
7 行增加
和
9 行删除
+7
-9
Book/Chapter6/Chapter6.tex
+4
-4
Book/Chapter7/Chapter7.tex
+2
-4
Book/Chapter7/Figures/figure-increase-the-encoder.tex
+1
-1
没有找到文件。
Book/Chapter6/Chapter6.tex
查看文件 @
a3fca34e
...
@@ -1513,10 +1513,10 @@ L(\mathbf{Y},\widehat{\mathbf{Y}}) = \sum_{j=1}^n L_{\textrm{ce}}(\mathbf{y}_j,\
...
@@ -1513,10 +1513,10 @@ L(\mathbf{Y},\widehat{\mathbf{Y}}) = \sum_{j=1}^n L_{\textrm{ce}}(\mathbf{y}_j,\
\parinterval
可以得到``
$
pos
+
k
$
''的位置编码为:
\parinterval
可以得到``
$
pos
+
k
$
''的位置编码为:
\begin{eqnarray}
\begin{eqnarray}
\textrm
{
PE
}
(pos+k,2i)
&
=
&
\textrm
{
PE
}
(pos,2i)
\times
\textrm
{
PE
}
(k,2i+1)
\textrm
{
PE
}
(pos+k,2i)
&
=
&
\textrm
{
PE
}
(pos,2i)
\times
\textrm
{
PE
}
(k,2i+1)
+
\nonumber
\\
+
\textrm
{
PE
}
(pos,2i+1)
\times
\textrm
{
PE
}
(k,2i)
\nonumber
\\
&
&
\textrm
{
PE
}
(pos,2i+1)
\times
\textrm
{
PE
}
(k,2i)
\\
\textrm
{
PE
}
(pos+k ,2i+1)
&
=
&
\textrm
{
PE
}
(pos,2i+1)
\times
\textrm
{
PE
}
(k,2i+1)
\textrm
{
PE
}
(pos+k ,2i+1)
&
=
&
\textrm
{
PE
}
(pos,2i+1)
\times
\textrm
{
PE
}
(k,2i+1)
-
\nonumber
\\
-
\textrm
{
PE
}
(pos,2i)
\times
\textrm
{
PE
}
(k,2i)
\nonumber
\\
&
&
\textrm
{
PE
}
(pos,2i)
\times
\textrm
{
PE
}
(k,2i)
\label
{
eq:6-46
}
\label
{
eq:6-46
}
\end{eqnarray}
\end{eqnarray}
...
...
Book/Chapter7/Chapter7.tex
查看文件 @
a3fca34e
...
@@ -1853,11 +1853,9 @@ L_{\textrm{seq}} = - \textrm{logP}_{\textrm{s}}(\hat{\mathbf{y}} | \mathbf{x})
...
@@ -1853,11 +1853,9 @@ L_{\textrm{seq}} = - \textrm{logP}_{\textrm{s}}(\hat{\mathbf{y}} | \mathbf{x})
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
语音翻译。在日常生活中,语音翻译也是有很大的需求。针对语音到文本翻译的特点,最简单的做法是使用自动语音识别(ASR)将语音转换成文本,然后送入文本翻译模型进行翻译
\cite
{
DBLP:conf/icassp/Ney99,DBLP:conf/interspeech/MatusovKN05
}
。然而为了避免流水线中的错误传播和高延迟问题,现在通常采用端到端的建模做法
\cite
{
DBLP:conf/naacl/DuongACBC16,DBLP:journals/corr/BerardPSB16
}
。同时,针对语音翻译数据稀缺的问题,一些研究工作采用各种方法来进行缓解,包括预训练
\cite
{
DBLP:conf/naacl/BansalKLLG19
}
、多任务学习
\cite
{
Weiss2017SequencetoSequenceMC,DBLP:conf/icassp/BerardBKP18
}
、课程学习
\cite
{
DBLP:conf/interspeech/KanoS017
}
、注意力传递
\cite
{
DBLP:journals/tacl/SperberNNW19
}
和知识精炼
\cite
{
DBLP:conf/interspeech/LiuXZHWWZ19,DBLP:conf/icassp/JiaJMWCCALW19
}
。
\item
语音翻译。在日常生活中,语音翻译也是有很大的需求。针对语音到文本翻译的特点,最简单的做法是使用自动语音识别(ASR)将语音转换成文本,然后送入文本翻译模型进行翻译
\cite
{
DBLP:conf/icassp/Ney99,DBLP:conf/interspeech/MatusovKN05
}
。然而为了避免流水线中的错误传播和高延迟问题,现在通常采用端到端的建模做法
\cite
{
DBLP:conf/naacl/DuongACBC16,DBLP:journals/corr/BerardPSB16
}
。同时,针对语音翻译数据稀缺的问题,一些研究工作采用各种方法来进行缓解,包括预训练
\cite
{
DBLP:conf/naacl/BansalKLLG19
}
、多任务学习
\cite
{
Weiss2017SequencetoSequenceMC,DBLP:conf/icassp/BerardBKP18
}
、课程学习
\cite
{
DBLP:conf/interspeech/KanoS017
}
、注意力传递
\cite
{
DBLP:journals/tacl/SperberNNW19
}
和知识精炼
\cite
{
DBLP:conf/interspeech/LiuXZHWWZ19,DBLP:conf/icassp/JiaJMWCCALW19
}
。
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
多语言翻译。神经机器翻译模型经过训练,通常可以将一种固定的源语言翻译成另一种固定的目标语言,但考虑到世界上有成千上万种语言,为每种语言对训练一个单独的模型非常耗资源。相比于单一语言对的神经机器翻译,多语言神经机器翻译具有开发跨语言对相似性的潜力,而且可以节约大量的训练成本
\cite
{
DBLP:journals/tacl/JohnsonSLKWCTVW17
}
。
\item
多语言翻译。神经机器翻译模型经过训练,通常可以将一种固定的源语言翻译成另一种固定的目标语言,但考虑到世界上有成千上万种语言,为每种语言对训练一个单独的模型非常耗资源
\cite
{
DBLP:journals/tacl/JohnsonSLKWCTVW17
}
。多语言神经机器翻译旨在训练涵盖多种语言翻译的单一模型。多语言神经机器翻译系统可以根据它们在不同翻译语言对之间共享的组件进行分类。一种常见的做法是通过语言标签指定源语言和目标语言的同时,共享整个神经网络结构(编码器和解码器)
\cite
{
DBLP:journals/corr/HaNW16,DBLP:journals/tacl/JohnsonSLKWCTVW17
}
。除此之外,还可以共享部分网络结构。比如共享编码器的一对多模型
\cite
{
dong-etal-2015-multi
}
,共享解码器的多对一模型
\cite
{
firat-etal-2016-zero,Zoph2016MultiSourceNT
}
,以及共享注意力机制的多对多模型
\cite
{
DBLP:journals/corr/LuongLSVK15,DBLP:conf/naacl/FiratCB16
}
。多语言神经机器翻译不仅可以减少训练单一语言对神经机器翻译的训练代价,还可以有效的解决零资源神经机器翻译
\cite
{
DBLP:journals/tacl/JohnsonSLKWCTVW17
}
以及多源神经机器翻译问题
\cite
{
Och01statisticalmulti-source
}
。
\parinterval
多语言神经机器翻译旨在训练涵盖多种语言翻译的单一模型。多语言神经机器翻译系统可以根据它们在不同翻译语言对之间共享的组件进行分类。一种常见的做法是通过语言标签指定源语言和目标语言的同时,共享整个神经网络结构(编码器和解码器)
\cite
{
DBLP:journals/corr/HaNW16,DBLP:journals/tacl/JohnsonSLKWCTVW17
}
。除此之外,还可以共享部分网络结构。比如共享编码器的一对多模型
\cite
{
dong-etal-2015-multi
}
,共享解码器的多对一模型
\cite
{
firat-etal-2016-zero,Zoph2016MultiSourceNT
}
,以及共享注意力机制的多对多模型
\cite
{
DBLP:journals/corr/LuongLSVK15,DBLP:conf/naacl/FiratCB16
}
。多语言神经机器翻译不仅可以减少训练单一语言对神经机器翻译的训练代价,还可以有效的解决零资源神经机器翻译
\cite
{
DBLP:journals/tacl/JohnsonSLKWCTVW17
}
以及多源神经机器翻译问题
\cite
{
Och01statisticalmulti-source
}
。
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
结构搜索。除了由研究人员手工设计神经网络结构之外,近些年
{
\small\bfnew
{
网络结构搜索技术
}}
\index
{
网络结构搜索技术
}
(Neural Architecture Search;NAS)
\index
{
Neural Architecture Search;NAS
}
也逐渐在包括机器翻译在内的自然语言处理任务中得到广泛关注
\cite
{
elsken2019neural
}
。不同于前文提到的基于循环神经网络、Transformer结构的机器翻译模型,网络结构搜索旨在通过自动的方式根据提供的训练数据自动学习到最适合于当前任务的神经网络模型结构
,这种方式能够有效将研究人员从模型结构设计者的位置上“解救”出来,让计算机能够像学网络参数一样学习神经网络模型的结构
。目前而言,网络结构搜索的方法已经在自然语言处理的各项任务中崭露头角,在语言模型、命名实体识别等任务中获得优异的成绩
\cite
{
DBLP:conf/iclr/ZophL17,DBLP:conf/emnlp/JiangHXZZ19,liyinqiaoESS
}
,但对于机器翻译任务而言,由于其任务的复杂性,网络结构的搜索空间往往比较大,很难直接对其空间进行搜索,因此研究人员更倾向于对基于现有经验设计的模型结构进行改良。谷歌大脑团队在The Evolved Transformer文章中提出使用进化算法,在Transformer结构基础上对模型结构进行演化,得到更加高效且建模能力更强的机器翻译模型。微软团队也在Neural Architecture Optimization
\cite
{
DBLP:conf/nips/LuoTQCL18
}
论文中提出NAO的方法,通过将神经网络结构映射到连续空间上进行优化来获得优于初始结构的模型,NAO方法在WMT19机器翻译评测任务中也进行了使用,在英语-芬兰语以及芬兰语-英语的任务上均取得了优异的成绩。
\item
结构搜索。除了由研究人员手工设计神经网络结构之外,近些年
{
\small\bfnew
{
网络结构搜索技术
}}
\index
{
网络结构搜索技术
}
(Neural Architecture Search;NAS)
\index
{
Neural Architecture Search;NAS
}
也逐渐在包括机器翻译在内的自然语言处理任务中得到广泛关注
\cite
{
elsken2019neural
}
。不同于前文提到的基于循环神经网络、Transformer结构的机器翻译模型,网络结构搜索旨在通过自动的方式根据提供的训练数据自动学习到最适合于当前任务的神经网络模型结构。目前而言,网络结构搜索的方法已经在自然语言处理的各项任务中崭露头角,在语言模型、命名实体识别等任务中获得优异的成绩
\cite
{
DBLP:conf/iclr/ZophL17,DBLP:conf/emnlp/JiangHXZZ19,liyinqiaoESS
}
,但对于机器翻译任务而言,由于其任务的复杂性,网络结构的搜索空间往往比较大,很难直接对其空间进行搜索,因此研究人员更倾向于对基于现有经验设计的模型结构进行改良。谷歌大脑团队在The Evolved Transformer文章中提出使用进化算法,在Transformer结构基础上对模型结构进行演化,得到更加高效且建模能力更强的机器翻译模型。微软团队也在Neural Architecture Optimization
\cite
{
DBLP:conf/nips/LuoTQCL18
}
论文中提出NAO的方法,通过将神经网络结构映射到连续空间上进行优化来获得优于初始结构的模型,NAO方法在WMT19机器翻译评测任务中也进行了使用,在英语-芬兰语以及芬兰语-英语的任务上均取得了优异的成绩。
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
与统计机器翻译的结合。尽管神经机器翻译在自动评价和人工评价上都取得比统计机器翻译优异的结果,神经机器翻译仍然面临一些统计机器翻译没有的问题
\cite
{
DBLP:conf/aclnmt/KoehnK17
}
,如神经机器翻译系统会产生漏译的现象,也就是源语句子的一些短语甚至从句没有被翻译,而统计机器翻译因为是把源语里所有短语都翻译出来后进行拼装,因此不会产生这种译文对原文的忠实度低的问题。一个解决的思路就是把统计机器翻译系统和神经机器翻译系统进行结合。目前的方法主要分为两种,一种是模型的改进,比如在神经机器翻译里建模统计机器翻译的概念或者使用统计机器翻译系统的模块,如词对齐,覆盖度等等
\cite
{
DBLP:conf/aaai/HeHWW16
}
,或者是把神经机器翻译系统结合到统计机器翻译系统中,如作为一个特征
\cite
{
DBLP:conf/aclwat/NeubigMN15
}
;第二种是系统融合,在不改变模型的情况下,把来自神经机器翻译系统的输出和统计机器翻译系统的输出进行融合,得到更好的结果,如使用重排序
\cite
{
DBLP:conf/ijcnlp/KhayrallahKDPK17,DBLP:conf/aclwat/NeubigMN15
}
,后处理
\cite
{
niehues-etal-2016-pre
}
,或者把统计机器翻译系统的输出作为神经机器翻译系统解码的约束条件等等
\cite
{
DBLP:conf/eacl/GispertBHS17
}
。除此之外,也可以把神经机器翻译与翻译记忆相融合
\cite
{
DBLP:conf/aaai/XiaHLS19,DBLP:conf/nlpcc/HeHLL19
}
,这在机器翻译应用中也是非常有趣的方向。
\item
与统计机器翻译的结合。尽管神经机器翻译在自动评价和人工评价上都取得比统计机器翻译优异的结果,神经机器翻译仍然面临一些统计机器翻译没有的问题
\cite
{
DBLP:conf/aclnmt/KoehnK17
}
,如神经机器翻译系统会产生漏译的现象,也就是源语句子的一些短语甚至从句没有被翻译,而统计机器翻译因为是把源语里所有短语都翻译出来后进行拼装,因此不会产生这种译文对原文的忠实度低的问题。一个解决的思路就是把统计机器翻译系统和神经机器翻译系统进行结合。目前的方法主要分为两种,一种是模型的改进,比如在神经机器翻译里建模统计机器翻译的概念或者使用统计机器翻译系统的模块,如词对齐,覆盖度等等
\cite
{
DBLP:conf/aaai/HeHWW16
}
,或者是把神经机器翻译系统结合到统计机器翻译系统中,如作为一个特征
\cite
{
DBLP:conf/aclwat/NeubigMN15
}
;第二种是系统融合,在不改变模型的情况下,把来自神经机器翻译系统的输出和统计机器翻译系统的输出进行融合,得到更好的结果,如使用重排序
\cite
{
DBLP:conf/ijcnlp/KhayrallahKDPK17,DBLP:conf/aclwat/NeubigMN15
}
,后处理
\cite
{
niehues-etal-2016-pre
}
,或者把统计机器翻译系统的输出作为神经机器翻译系统解码的约束条件等等
\cite
{
DBLP:conf/eacl/GispertBHS17
}
。除此之外,也可以把神经机器翻译与翻译记忆相融合
\cite
{
DBLP:conf/aaai/XiaHLS19,DBLP:conf/nlpcc/HeHLL19
}
,这在机器翻译应用中也是非常有趣的方向。
\end{itemize}
\end{itemize}
...
...
Book/Chapter7/Figures/figure-increase-the-encoder.tex
查看文件 @
a3fca34e
...
@@ -15,7 +15,7 @@
...
@@ -15,7 +15,7 @@
\node
[node]
(enc10) at ([xshift =
\base
]enc9.east)
{}
;
\node
[node]
(enc10) at ([xshift =
\base
]enc9.east)
{}
;
\node
[font=\scriptsize,rotate=270]
(src) at ([xshift = -
\base
]enc1.west)
{
src
}
;
\node
[font=\scriptsize,rotate=270]
(src) at ([xshift = -
\base
]enc1.west)
{
src
}
;
\draw
[->] ([xshift=-0.75em]enc1.west) -- (enc1.west);
\draw
[->] ([xshift=-0.75em]enc1.west) -- (enc1.west);
\draw
[decorate,decoration=
{
brace
}
] ([yshift=0.3em]enc1.north west) to node [auto,anchor=south,font=
\scriptsize
]
{
N
x
}
([yshift=0.3em]enc10.north east);
\draw
[decorate,decoration=
{
brace
}
] ([yshift=0.3em]enc1.north west) to node [auto,anchor=south,font=
\scriptsize
]
{
$
N
$
x
}
([yshift=0.3em]enc10.north east);
\draw
[->] (enc1.east) -- (enc2.west);
\draw
[->] (enc1.east) -- (enc2.west);
\draw
[->] (enc2.east) -- (enc3.west);
\draw
[->] (enc2.east) -- (enc3.west);
\draw
[->] (enc3.east) -- (enc4.west);
\draw
[->] (enc3.east) -- (enc4.west);
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论