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
9e17f1ea
Commit
9e17f1ea
authored
Jan 17, 2021
by
曹润柘
Browse files
Options
Browse Files
Download
Plain Diff
合并分支 'caorunzhe' 到 'master'
Caorunzhe 查看合并请求
!931
parents
21290ba3
28a3d822
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
19 行增加
和
19 行删除
+19
-19
Chapter16/chapter16.tex
+5
-5
Chapter17/chapter17.tex
+14
-14
没有找到文件。
Chapter16/chapter16.tex
查看文件 @
9e17f1ea
...
...
@@ -746,7 +746,7 @@
\end{example}
%----------------------------------------------
\parinterval
在机器翻译任务中,新闻等领域的双语数据相对容易获取,所以机器翻译在这些领域上表现较佳。然而,即使在富资源语种上,化学、医学等专业领域的双语数据
依然
十分有限。如果直接使用这些低资源领域的数据来训练机器翻译模型,由于数据稀缺问题,会导致模型的性能较差
\upcite
{
DBLP:conf/iccv/SunSSG17
}
。如果混合多个领域的数据增大训练数据规模,不同领域数据量之间的不平衡会导致数据较少的领域训练不充分,使得在低资源领域上的翻译结果不尽人意
\upcite
{
DBLP:conf/acl/DuhNST13
}
。
\parinterval
在机器翻译任务中,新闻等领域的双语数据相对容易获取,所以机器翻译在这些领域上表现较佳。然而,即使在富资源语种上,化学、医学等专业领域的双语数据
也
十分有限。如果直接使用这些低资源领域的数据来训练机器翻译模型,由于数据稀缺问题,会导致模型的性能较差
\upcite
{
DBLP:conf/iccv/SunSSG17
}
。如果混合多个领域的数据增大训练数据规模,不同领域数据量之间的不平衡会导致数据较少的领域训练不充分,使得在低资源领域上的翻译结果不尽人意
\upcite
{
DBLP:conf/acl/DuhNST13
}
。
\parinterval
领域适应方法是利用源领域的知识来改进目标领域模型效果的方法,该方法可以有效地减少模型对目标领域数据的依赖。领域适应主要有两类方法:
...
...
@@ -783,7 +783,7 @@
\parinterval
一种观点认为,数据量较少的领域数据应该在训练过程中获得更大的权重,从而使这些更有价值的数据发挥出更大的作用
\upcite
{
DBLP:conf/emnlp/MatsoukasRZ09,DBLP:conf/emnlp/FosterGK10
}
。实际上,基于数据加权的方法与
{
\chapterthirteen
}
中基于样本价值的学习方法是一致的,只是描述的场景略有不同。这类方法本质上在解决
{
\small\bfnew
{
类别不均衡问题
}}
\index
{
类别不均衡问题
}
(Class Imbalance Problem
\index
{
Class Imbalance Problem
}
)
\upcite
{
DBLP:conf/emnlp/ZhuH07
}
。数据加权可以通过修改损失函数,将其缩放
$
\alpha
$
倍来实现(
$
\alpha
$
是样本的权重)。在具体实践中,也可以直接将低资源的领域数据进行复制
\footnote
{
相当于对数据进行重采样
}
达到与其相同的效果
\upcite
{
DBLP:conf/wmt/ShahBS10
}
。
\parinterval
数据选择是数据加权的一种特殊情况,它可以被看做是样本权重非零即一的情况。具体来说,可以直接选择与领域相关的数据参与训练
\upcite
{
DBLP:conf/acl/DuhNST13
}
。
由于这种方法并不需要使用全量
数据进行训练,因此模型的训练成本较低。由于
{
\chapterthirteen
}
已经对数据加权和数据选择方法进行了详细介绍,这里不再赘述。
\parinterval
数据选择是数据加权的一种特殊情况,它可以被看做是样本权重非零即一的情况。具体来说,可以直接选择与领域相关的数据参与训练
\upcite
{
DBLP:conf/acl/DuhNST13
}
。
这种方法并不需要使用全部
数据进行训练,因此模型的训练成本较低。由于
{
\chapterthirteen
}
已经对数据加权和数据选择方法进行了详细介绍,这里不再赘述。
%----------------------------------------------------------------------------------------
% NEW SUB-SUB-SECTION
...
...
@@ -797,7 +797,7 @@
%----------------------------------------------------------------------------------------
\subsubsection
{
3. 多领域数据的使用
}
\parinterval
领域适应中的目标领域往往不止一个,想要同时提升多个目标领域的效果,一种简单的思路是使用前文所述的单领域适应方法对每一个目标领域进行领域适应。不过,与多语言翻译一样,多领域适应也往往伴随着严重的数据稀缺问题,
由于
大多数领域的数据量很小,因此无法保证单个领域的领域适应效果。
\parinterval
领域适应中的目标领域往往不止一个,想要同时提升多个目标领域的效果,一种简单的思路是使用前文所述的单领域适应方法对每一个目标领域进行领域适应。不过,与多语言翻译一样,多领域适应也往往伴随着严重的数据稀缺问题,大多数领域的数据量很小,因此无法保证单个领域的领域适应效果。
\parinterval
解决该问题的一种思路是将所有数据混合使用,并训练一个能够同时适应所有领域的模型。同时,为了区分不同领域的数据,可以在样本上增加领域标签
\upcite
{
DBLP:conf/acl/ChuDK17
}
。事实上,这种方法与
\ref
{
sec:multi-lang-single-model
}
节所描述的方法是一样的。它也是一种典型的小样本学习策略,旨在让模型自己从不同类型的样本中寻找联系,进而更加充分地利用数据,改善模型在低资源任务上的表现。
...
...
@@ -862,7 +862,7 @@
\parinterval
另一种方法是不从随机状态开始训练网络,而是使用翻译性能较好的源领域模型作为初始状态,因为源领域模型中包含着一些通用知识可以被目标领域借鉴。比如,想获得口语的翻译模型,可以使用新闻的翻译模型作为初始状态进行训练。这也可以被看作是一种预训练-微调方法。
\parinterval
不过这种方法经常会带来灾难性遗忘问题,即在目标领域上过拟合,导致在源领域上的翻译性能大幅度下降(见
{
\chapterthirteen
}
)。如果想要保证模型在目标领域和源领域上都有较好的性能,一个比较常用的方法是进行混合微调
\upcite
{
DBLP:conf/acl/ChuDK17
}
。具体做法是先在源领域数据上训练一个神经机器翻译模型,然后将目标领域数据复制数倍和源领域数据量相等,之后将数据混合
后对神经机器翻译模型进行微调。混合微调方法既降低了目标领域数据量小导致的过拟合问题
,又带来了更好的微调性能。除了混合微调外,也可以使用知识蒸馏方法缓解灾难性遗忘问题(见
\ref
{
multilingual-translation-model
}
节),即对源领域和目标领域进行多次循环知识蒸馏,迭代学习对方领域的知识,可以保证在源领域和目标领域上的翻译性能共同逐步上升
\upcite
{
DBLP:conf/emnlp/ZengLSGLYL19
}
。此外,还可以使用L2正则化和Dropout方法来缓解这个问题
\upcite
{
barone2017regularization
}
。
\parinterval
不过这种方法经常会带来灾难性遗忘问题,即在目标领域上过拟合,导致在源领域上的翻译性能大幅度下降(见
{
\chapterthirteen
}
)。如果想要保证模型在目标领域和源领域上都有较好的性能,一个比较常用的方法是进行混合微调
\upcite
{
DBLP:conf/acl/ChuDK17
}
。具体做法是先在源领域数据上训练一个神经机器翻译模型,然后将目标领域数据复制数倍和源领域数据量相等,之后将数据混合
对神经机器翻译模型进行微调。混合微调方法既降低了目标领域数据量小导致的过拟合问题的影响
,又带来了更好的微调性能。除了混合微调外,也可以使用知识蒸馏方法缓解灾难性遗忘问题(见
\ref
{
multilingual-translation-model
}
节),即对源领域和目标领域进行多次循环知识蒸馏,迭代学习对方领域的知识,可以保证在源领域和目标领域上的翻译性能共同逐步上升
\upcite
{
DBLP:conf/emnlp/ZengLSGLYL19
}
。此外,还可以使用L2正则化和Dropout方法来缓解这个问题
\upcite
{
barone2017regularization
}
。
%----------------------------------------------------------------------------------------
% NEW SUB-SUB-SECTION
...
...
@@ -882,7 +882,7 @@
\begin{itemize}
\vspace
{
0.5em
}
\item
如何更高效地利用已有双语数据或单语数据进行数据增强始终是一个热点问题。研究人员分别探索了源语言单语数据和目标语言单语数据的使用方法
\upcite
{
DBLP:conf/emnlp/ZhangZ16,DBLP:conf/emnlp/WuWXQLL19,DBLP:conf/acl/XiaKAN19
}
,以及如何对已有双语数据进行修改
\upcite
{
DBLP:conf/emnlp/WangPDN18,DBLP:conf/acl/GaoZWXQCZL19
}
。经过数据增强得到的伪数据的质量时好时坏,如何提高伪数据的质量,以及更好地利用伪数据进行训练也是十分重要的问题
\upcite
{
DBLP:conf/emnlp/FadaeeM18,DBLP:conf/nlpcc/XuLXLLXZ19,DBLP:conf/wmt/CaswellCG19,DBLP:journals/corr/abs200403672,DBLP:conf/emnlp/WangLWLS19
}
。此外,还有一些工作对数据增强技术进行了理论分析
\upcite
{
DBLP:conf/emnlp/LiLHZZ19,DBLP:conf/acl/MarieRF20
}
。
\item
如何更高效地利用已有双语数据或单语数据进行数据增强始终是一个热点问题。研究人员分别探索了源语言单语数据和目标语言单语数据的使用方法
\upcite
{
DBLP:conf/emnlp/ZhangZ16,DBLP:conf/emnlp/WuWXQLL19,DBLP:conf/acl/XiaKAN19
}
,以及如何对已有双语数据进行修改
的问题
\upcite
{
DBLP:conf/emnlp/WangPDN18,DBLP:conf/acl/GaoZWXQCZL19
}
。经过数据增强得到的伪数据的质量时好时坏,如何提高伪数据的质量,以及更好地利用伪数据进行训练也是十分重要的问题
\upcite
{
DBLP:conf/emnlp/FadaeeM18,DBLP:conf/nlpcc/XuLXLLXZ19,DBLP:conf/wmt/CaswellCG19,DBLP:journals/corr/abs200403672,DBLP:conf/emnlp/WangLWLS19
}
。此外,还有一些工作对数据增强技术进行了理论分析
\upcite
{
DBLP:conf/emnlp/LiLHZZ19,DBLP:conf/acl/MarieRF20
}
。
\vspace
{
0.5em
}
\item
预训练模型也是自然语言处理的重要突破之一,也给低资源机器翻译提供了新的思路。除了基于语言模型或掩码语言模型的方法,也有很多新的架构和模型被提出,如排列语言模型、降噪自编码器等
\upcite
{
DBLP:conf/nips/YangDYCSL19,DBLP:conf/acl/LewisLGGMLSZ20,DBLP:conf/iclr/LanCGGSS20,DBLP:conf/acl/ZhangHLJSL19
}
。预训练技术也逐渐向多语言领域扩展
\upcite
{
DBLP:conf/nips/ConneauL19,DBLP:conf/emnlp/HuangLDGSJZ19,song2019mass
}
,甚至不再只局限于文本任务
\upcite
{
DBLP:conf/iccv/SunMV0S19,DBLP:conf/nips/LuBPL19,DBLP:conf/interspeech/ChuangLLL20
}
。对于如何将预训练模型高效地应用到下游任务中,也进行了很多的经验性对比与分析
\upcite
{
Peters2018DeepCW,DBLP:conf/rep4nlp/PetersRS19,DBLP:conf/cncl/SunQXH19
}
。
...
...
Chapter17/chapter17.tex
查看文件 @
9e17f1ea
...
...
@@ -108,18 +108,19 @@
\parinterval
由于声学特征提取在上一节中已经进行了描述,而且文本翻译可以直接使用本书介绍的统计机器翻译或者神经机器翻译方法。因此下面简要介绍一下语音识别模型,以便读者对级联式语音翻译系统有一个完整的认识。其中的部分概念在后续介绍的端到端语言翻译中也会有所涉及。
\parinterval
传统的语音识别模型和统计机器翻译相似,需要利用声学模型、语言模型和发音词典联合进行识别,系统较为复杂
\upcite
{
DBLP:journals/ftsig/GalesY07,DBLP:journals/taslp/MohamedDH12,DBLP:journals/spm/X12a
}
。而近些年来,随着神经网络的发展,基于神经网络的端到端语音识别模型逐渐受到关注,训练流程也大大被简化
\upcite
{
DBLP:conf/nips/ChorowskiBSCB15,DBLP:conf/icassp/ChanJLV16
}
。目前的端到端语音识别模型主要基于序列到序列结构,编码器根据输入的声学特征进一步提取高级特征,解码器根据编码器提取的特征识别对应的文本。在后文中即将介绍的端到端语音翻译模型也是基于十分相似的结构。因此,从某种意义上说,语音识别和翻译所使用的端到端方法与神经机器翻译是一致的。
\parinterval
语音识别目前广泛使用基于Transformer的模型结构(见
{
\chaptertwelve
}
),如图
\ref
{
fig:17-5
}
所示。可以看出,相比文本翻译,模型结构上唯一的区别在于编码器的输入为声学特征,以及编码器底层会使用额外的卷积层来减小输入序列的长度。这是由于语音对应的特征序列过长,在计算注意力模型的时候,会占用大量的内存/显存,并增加训练时间。因此,一个常用的做法是在语音特征上进行两层步长为2的卷积操作,从而将输入序列的长度缩小为之前的1/4。通过使用大量的语音-标注平行数据对模型进行训练,可以得到高质量的语音识别模型。
%----------------------------------------------------------------------------------------------------
\begin{figure}
[htp]
\centering
\input
{
./Chapter17/Figures/figure-speech-recognition-model-based-on-transformer
}
\setlength
{
\abovecaptionskip
}{
-0.2em
}
\caption
{
基于Transformer的语音识别模型
}
\label
{
fig:17-5
}
\end{figure}
%----------------------------------------------------------------------------------------------------
\vspace
{
-1em
}
\parinterval
语音识别目前广泛使用基于Transformer的模型结构(见
{
\chaptertwelve
}
),如图
\ref
{
fig:17-5
}
所示。可以看出,相比文本翻译,模型结构上唯一的区别在于编码器的输入为声学特征,以及编码器底层会使用额外的卷积层来减小输入序列的长度。这是由于语音对应的特征序列过长,在计算注意力模型的时候,会占用大量的内存/显存,并增加训练时间。因此,一个常用的做法是在语音特征上进行两层步长为2的卷积操作,从而将输入序列的长度缩小为之前的1/4。通过使用大量的语音-标注平行数据对模型进行训练,可以得到高质量的语音识别模型。
\parinterval
为了降低语音识别的错误对下游系统的影响,通常也会用词格来取代One-best语音识别结果。另一种思路是通过一个后处理模型修正识别结果中的错误,再送给文本翻译模型进行翻译。也可以进一步对文本做
{
\small\bfnew
{
顺滑
}}
\index
{
顺滑
}
(Disfluency Detection
\index
{
Disfluency Detection
}
)处理,使得送给翻译系统的文本更加干净、流畅,比如除去一些导致停顿的语气词。这一做法在工业界得到了广泛应用,但由于每个模型只能串行地计算,也会带来额外的计算代价以及运算时间。另外一种思路是训练更加健壮的文本翻译模型,使其可以处理输入中存在的噪声或误差
\upcite
{
DBLP:conf/acl/LiuTMCZ18
}
。
%----------------------------------------------------------------------------------------
...
...
@@ -132,16 +133,24 @@
%----------------------------------------------------------------------------------------------------
\begin{itemize}
\vspace
{
0.5em
}
\item
{
\small\bfnew
{
错误传播问题
}}
。级联模型导致的一个很严重的问题在于,语音识别模型得到的文本如果存在错误,这些错误很可能在翻译过程中被放大,从而使最后翻译结果出现比较大的偏差。比如识别时在句尾少生成了个“吗”,会导致翻译模型将疑问句翻译为陈述句。
\vspace
{
0.5em
}
\item
{
\small\bfnew
{
翻译效率问题
}}
。由于语音识别模型和文本标注模型只能串行地计算,翻译效率相对较低,而实际很多场景中都需要实现低延时的翻译。
\vspace
{
0.5em
}
\item
{
\small\bfnew
{
语音中的副语言信息丢失
}}
。将语音识别为文本的过程中,语音中包含的语气、情感、音调等信息会丢失,而同一句话在不同的语气中表达的意思很可能是不同的。尤其是在实际应用中,由于语音识别结果通常并不包含标点,还需要额外的后处理模型将标点还原,也会带来额外的计算代价。
\vspace
{
0.5em
}
\end{itemize}
%----------------------------------------------------------------------------------------------------
%----------------------------------------------------------------------------------------------------
\begin{figure}
[htp]
\centering
\input
{
./Chapter17/Figures/figure-an-end-to-end-voice-translation-model-based-on-transformer
}
\setlength
{
\abovecaptionskip
}{
-0.2em
}
\caption
{
基于Transformer的端到端语音翻译模型
}
\label
{
fig:17-7
}
\end{figure}
%----------------------------------------------------------------------------------------------------
\parinterval
针对级联语音翻译模型存在的缺陷,研究人员提出了
{
\small\bfnew
{
端到端的语音翻译模型
}}
\index
{
端到端的语音翻译模型
}
(End-to-End Speech Translation, E2E-ST)
\index
{
End-to-End Speech Translation
}
\upcite
{
DBLP:conf/naacl/DuongACBC16,DBLP:conf/interspeech/WeissCJWC17,DBLP:journals/corr/BerardPSB16
}
,也就是模型的输入是源语言语音,输出是对应的目标语言文本。相比级联模型,端到端模型有如下优点:
%----------------------------------------------------------------------------------------------------
...
...
@@ -158,15 +167,6 @@
\parinterval
以Transformer模型为例,图
\ref
{
fig:17-7
}
展示了端到端语音翻译的架构(下文中语音翻译模型均指端到端的模型)。该模型采用的也是序列到序列架构,编码器的输入是从语音中提取的特征(比如FBank特征)。编码器底层采用和语音识别模型相同的卷积结构来降低序列的长度(见
\ref
{
sec:cascaded-speech-translation
}
节)。之后的流程和标准的神经机器翻译是完全一致的,编码器对语音特征进行编码,解码器根据编码结果生成目标语言的翻译结果。
%----------------------------------------------------------------------------------------------------
\begin{figure}
[htp]
\centering
\input
{
./Chapter17/Figures/figure-an-end-to-end-voice-translation-model-based-on-transformer
}
\caption
{
基于Transformer的端到端语音翻译模型
}
\label
{
fig:17-7
}
\end{figure}
%----------------------------------------------------------------------------------------------------
\parinterval
虽然端到端语音翻译模型解决了级联模型存在的问题,但同时也面临着两个严峻的问题:
%----------------------------------------------------------------------------------------------------
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论