Commit e897b51b by 曹润柘

合并分支 'master' 到 'caorunzhe'

Master

查看合并请求 !580
parents 992880e9 46c442a0
......@@ -4,7 +4,7 @@
\node [anchor=west,rec,fill=red!20](node2) at ([xshift=2.0em]node1.east){\small{编码器}};
\node [anchor=west,rec](node3) at ([xshift=3.0em,yshift=2.0em]node2.east){\small{解码器}};
\node [anchor=west,rec,fill=yellow!20](node4) at ([xshift=3.0em,yshift=-2.0em]node2.east){\small{别器}};
\node [anchor=west,rec,fill=yellow!20](node4) at ([xshift=3.0em,yshift=-2.0em]node2.east){\small{别器}};
\draw [->,thick](node1.east)--(node2.west);
\draw [->,thick](node2.east)--([xshift=1.5em]node2.east)--([xshift=1.5em,yshift=2.0em]node2.east)--(node3.west);
......
......@@ -112,12 +112,12 @@
\section{翻译结果可干预性}
\parinterval 机器翻译的结果往往是不完美的。因此,在出现错误时,人们总是希望用一种直接有效的方式“改变”译文,到达改善翻译质量的目的。比如,如果机器翻译系统可以输出多个候选译文,人可以在其中挑选最好的译文进行输出。也就是,人干预了译文候选的重排序。另一个例子是使用{\small\bfnew{翻译记忆}}\index{翻译记忆}(Translation Memory\index{Translation Memory})改善机器翻译系统的性能。翻译记忆记录了高质量的源语言-目标语言句对,有时也可以被看作是一种先验知识。因此,当进行机器翻译(包括统计机器翻译和神经机器翻译)时,使用翻译记忆指导翻译过程也可以被看作是一种干预手段({\color{red} 参考文献!SMT和NMT都有,SMT中CL上有个长文,自动化所的,NMT的我记得腾讯应该有,找到后和我确认一下!})。
\parinterval 交互式机器翻译体现了一种用户的行为“干预”机器翻译结果的思想。实际上,在机器翻译出现错误时,人们总是希望用一种直接有效的方式“改变”译文,到达改善翻译质量的目的。比如,如果机器翻译系统可以输出多个候选译文,用户可以在其中挑选最好的译文进行输出。也就是,人干预了译文候选的排序过程。另一个例子是使用{\small\bfnew{翻译记忆}}\index{翻译记忆}(Translation Memory\index{Translation Memory})改善机器翻译系统的性能。翻译记忆记录了高质量的源语言-目标语言句对,有时也可以被看作是一种先验知识或“记忆”。因此,当进行机器翻译(包括统计机器翻译和神经机器翻译)时,使用翻译记忆指导翻译过程也可以被看作是一种干预手段({\color{red} 参考文献!SMT和NMT都有,SMT中CL上有个长文,自动化所的,NMT的我记得腾讯应该有,找到后和我确认一下!})。
\parinterval 虽然干预机器翻译系统的方式很多,人们最经常使用的还是对源语言特定片段指定一些翻译行为,以期望最终句子的译文中满足这种片段翻译的约束。这个问题也被称作{\small\bfnew{基于约束的翻译}}\index{基于约束的翻译} (Constraint-based Translation\index{Constraint-based Translation})。比如,在网页翻译时,是要保持译文中网页标签与源文是一致的。另一个典型应用是指定句子中术语的翻译。在实际应用中,经常会遇到公司名称、品牌名称、产品名称等专有名词和行业术语,以及不同含义的缩写,比如对于“小牛翻译”这个专有术语,不同的机器翻译系统给出的结果不一样:“Maverick translation”、“Calf translation”、“The mavericks translation”…… 而它正确的翻译应该为“NiuTrans”。 对于这些类似的特殊词汇,大多数机器翻译引擎很难翻译得准确,一方面,因为模型大多是在通用数据集上训练出来的,并不能保证数据集能涵盖所有的语言现象,另一方面,即使是这些术语在训练数据中出现,它们通常也是低频的,模型比较难学到。为了保证翻译的准确性,对模型的翻译结果进行干预是十分有必要的,这些干预措施在比如交互式机器翻译、领域适应等一系列环境中也是很有用的。
\parinterval 虽然干预机器翻译系统的方式很多,最常用的还是对源语言特定片段翻译的干预,以期望最终句子的译文中满足某些对片段翻译的约束。这个问题也被称作{\small\bfnew{基于约束的翻译}}\index{基于约束的翻译} (Constraint-based Translation\index{Constraint-based Translation})。比如,在翻译网页时,需要保持译文中的网页标签与源文一致。另一个典型例子是术语翻译。在实际应用中,经常会遇到公司名称、品牌名称、产品名称等专有名词和行业术语,以及不同含义的缩写,比如,对于“小牛翻译”这个专有术语,不同的机器翻译系统给出的结果不一样:“Maverick translation”、“Calf translation”、“The mavericks translation”…… 而它正确的翻译应该为“NiuTrans”。 对于这些类似的特殊词汇,大多数机器翻译引擎很难翻译得准确。一方面,因为模型大多是在通用数据集上训练出来的,并不能保证数据集能涵盖所有的语言现象。另一方面,即使是这些术语在训练数据中出现,它们通常也是低频的,模型比较难学到。为了保证翻译的准确性,对术语翻译进行干预是十分有必要的,这对领域适应等问题的求解也是非常有意义的。
\parinterval{\small\bfnew 术语翻译}\index{术语翻译}(Lexically Constrained Translation)\index{Lexically Constrained Translation}而言,在不干预的情况下让模型直接翻译出正确术语是很难的,因为目标术语翻译词很可能是未登录词,因此必须人为提供额外的术语词典,那么我们的目标就是让模型的翻译输出遵守用户提供的术语约束。一个例子如下图所示:
\parinterval{\small\bfnew 术语翻译}\index{术语翻译}(Lexically Constrained Translation)\index{Lexically Constrained Translation}而言,在不干预的情况下让模型直接翻译出正确术语是很难的,因为目标术语翻译词很可能是未登录词,因此必须人为提供额外的术语词典,那么我们的目标就是让模型的翻译输出遵守用户提供的术语约束。这个过程如图\ref{fig:18-2}所示。
%----------------------------------------------
\begin{figure}[htp]
\centering
......@@ -128,12 +128,16 @@
\end{figure}
%----------------------------------------------
\parinterval 在统计机器翻译中,翻译过程是基于符号匹配的概率计算和推导,因此在强制某些词的翻译输出方面比较容易,而神经机器翻译是一个端到端训练的模型,内部基于连续空间的实数向量表示,翻译过程本质上是连续空间元素的一系列映射、组合和计算,因此这种干预存在一定的困难。目前主要有两种解决思路:
\parinterval 在统计机器翻译中,翻译本质上是由短语和规则构成的推导,因此在修改某些词或者片段的翻译输出方面比较容易,比如,可以在一个源语言片段所对应的翻译候选集中添加希望得到的译文即可。而神经机器翻译是一个端到端模型,内部基于连续空间的实数向量表示,翻译过程本质上是连续空间中元素的一系列映射、组合和代数运算,因此我们无法像修改符号系统那样直接修改模型并加入离散化的约束来影响译文生成。目前主要有两种解决思路:
\begin{itemize}
\item {\small\bfnew 基于硬约束}。在模型解码过程中按照一定的策略来实施约束,这类方法大部分是在修改束搜索算法以强迫输出必须包含指定的词或者短语\upcite{DBLP:conf/acl/HokampL17,DBLP:conf/naacl/PostV18,DBLP:conf/wmt/ChatterjeeNTFSB17,DBLP:conf/naacl/HaslerGIB18}
\vspace{0.5em}
\item {\small\bfnew 基于硬约束的方法}\index{基于硬约束的方法}(Hard Constraint-based Method\index{Hard Constraint-based Method})。这种方法并不改变模型,而是在解码过程中按照一定的策略来实施约束,这类方法大部分是在修改束搜索算法以确保输出必须包含指定的词或者短语\upcite{DBLP:conf/acl/HokampL17,DBLP:conf/naacl/PostV18,DBLP:conf/wmt/ChatterjeeNTFSB17,DBLP:conf/naacl/HaslerGIB18},例如,通过注意力机制获取词对齐,之后利用词对齐完成在译文中对指定部分译文的强制生成。或者,对包含正确术语翻译的翻译候选进行额外的加分,以确保这样的翻译候选的排名足够靠前。
\vspace{0.5em}
\item {\small\bfnew 基于软约束的方法}\index{基于软约束的方法}(Soft Constraint-based Method\index{Soft Constraint-based Method})。这类方法本质上属于数据增强类的方法,是通过修改神经机器翻译模型的数据和训练过程来实现约束。通常是根据术语词典对源语句进行一定的修改,比如将目标术语编辑到源语中,之后将原始语料库和合成语料库进行混合训练,期望模型能够自动利用术语信息来指导解码,或者是利用占位符来替换源语中的术语,待翻译完成后再进行还原\upcite{DBLP:conf/naacl/SongZYLWZ19,DBLP:conf/acl/DinuMFA19,DBLP:journals/corr/abs-1912-00567,DBLP:conf/ijcai/ChenCWL20}
\item {\small\bfnew 基于软约束}。这类方法本质上属于数据增强类的方法,是通过修改神经机器翻译模型的数据和训练过程来实现约束。通常是根据术语词典对源语句进行一定的修改,比如将目标术语编辑到源语中,之后将原始语料库和合成语料库进行混合训练,期望模型能够自动利用术语信息来指导解码,或者是利用占位符来替换源语中的术语,待翻译完成后再进行还原\upcite{DBLP:conf/naacl/SongZYLWZ19,DBLP:conf/acl/DinuMFA19,DBLP:journals/corr/abs-1912-00567,DBLP:conf/ijcai/ChenCWL20}
\vspace{0.5em}
\end{itemize}
\parinterval 基于硬约束的方式是在搜索策略上进行限制,与模型无关,这类方法能保证输出满足约束,但是会影响解码速度。基于软约束的方式是通过构造特定格式的数据让模型训练,从而让模型具有一定的泛化能力,这类方法需要进行译前译后编辑,通常不会影响解码速度,但并不能保证输出能满足约束。
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论