Commit 13d7b60f by 曹润柘

合并分支 'master' 到 'caorunzhe'

Master

查看合并请求 !583
parents 4bb00b68 8f93e4ce
......@@ -123,34 +123,26 @@
\centering
\input{./Chapter18/Figures/figure-translation-interfered}
%\setlength{\abovecaptionskip}{-0.2cm}
\caption{翻译结果可干预性}
\caption{翻译结果可干预性{\color{red} 这个图需要修改!有些乱,等回沈阳找我讨论!}}
\label{fig:18-2}
\end{figure}
%----------------------------------------------
\parinterval 在统计机器翻译中,翻译本质上是由短语和规则构成的推导,因此在修改某些词或者片段的翻译输出方面比较容易,比如,可以在一个源语言片段所对应的翻译候选集中添加希望得到的译文即可。而神经机器翻译是一个端到端模型,内部基于连续空间的实数向量表示,翻译过程本质上是连续空间中元素的一系列映射、组合和代数运算,因此我们无法像修改符号系统那样直接修改模型并加入离散化的约束来影响译文生成。目前主要有两种解决思路:
\parinterval 在统计机器翻译中,翻译本质上是由短语和规则构成的推导,因此修改译文比较容易,比如,可以在一个源语言片段所对应的翻译候选集中添加希望得到的译文即可。而神经机器翻译是一个端到端模型,内部基于连续空间的实数向量表示,翻译过程本质上是连续空间中元素的一系列映射、组合和代数运算,因此无法像修改符号系统那样直接修改模型并加入离散化的约束来影响译文生成。目前主要有两种解决思路:
\begin{itemize}
\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},例如,通过注意力机制获取词对齐,之后利用词对齐完成在译文中对指定部分译文的强制生成。或者,对包含正确术语翻译的翻译候选进行额外的加分,以确保这样的翻译候选的排名足够靠前。
\item 强制生成。这种方法并不改变模型,而是在解码过程中按照一定的策略来实施约束,一般是修改束搜索算法以确保输出必须包含指定的词或者短语\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 数据增强。这类方法通过修改机器翻译模型的数据和训练过程来实现约束。通常是根据术语词典对源语言句子进行一定的修改,例如,将术语的译文编辑到源语言句子中,之后将原始语料库和合成语料库进行混合训练,期望模型能够自动利用术语信息来指导解码,或者是利用占位符来替换源语中的术语,待翻译完成后再进行还原\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 基于硬约束的方式是在搜索策略上进行限制,与模型无关,这类方法能保证输出满足约束,但是会影响解码速度。基于软约束的方式是通过构造特定格式的数据让模型训练,从而让模型具有一定的泛化能力,这类方法需要进行译前译后编辑,通常不会影响解码速度,但并不能保证输出能满足约束。
\parinterval 此外,神经机器翻译在应用时通常还需要进行译前译后的处理,译前处理指的是在翻译前对源文进行修改和规范,使之适合机器翻译的特点,从而能生成比较顺畅的译文,提高译文的可读性和准确率。在实际应用时,由于用户输入的源文形式多样,可能会包含比如术语、缩写、数学公式等,有些甚至可能还包含网页标签,因此对源文进行预处理是很有必要的。常见的处理工作包括对原文进行格式转换、标点符号检査、术语编辑、标签识别等,待翻译完成后,则需要对机器译文进行进一步的编辑和修正,从而使其符合使用规范,比如进行标点、格式检查,术语、标签还原等,这些过程通常都是按照设定的处理策略自动完成的。
\parinterval 另外机器翻译中还有一些常见的干预(以上具体的内容可以参考{\chapterfourteen}),比如:
\begin{itemize}
\item 译文长度的控制,由于神经机器翻译模型使用单词概率的乘积表示整个句子的翻译概率,因此它天然倾向生成短译文,解决策略是在推断过程中引入译文长度控制机制,本质上是修改模型译文评分函数使其能够感知到长度信息,从而形成约束,比如引入长度惩罚因子、覆盖度等手段;
\item 译文的多样性,神经机器翻译通常会面临$n$-best 输出的译文十分相似的问题,即译文缺乏多样性,这会造成重排序的不准确,而且从人工翻译的角度看,同一个源文的译文应该是多样的,过于相似的译文也无法反映足够多的翻译现象,解决的方法可以从建模和解码出发,比如在引入隐变量来建模或者推断过程中引入额外的模型来惩罚相似的译文等手段。
\end{itemize}
\parinterval 强制生成的方法是在搜索策略上进行限制,与模型无关,这类方法能保证输出满足约束,但是会影响翻译速度。数据增强的方法是通过构造特定格式的数据让模型训练,从而让模型具有一定的泛化能力,这类方法需要进行译前译后编辑,通常不会影响翻译速度,但并不能保证输出能满足约束。
\parinterval 此外,机器翻译在应用时通常还需要进行译前译后的处理,译前处理指的是在翻译前对源语言句子进行修改和规范,从而能生成比较顺畅的译文,提高译文的可读性和准确率。在实际应用时,由于用户输入的形式多样,可能会包含比如术语、缩写、数学公式等,有些甚至可能还包含网页标签,因此对源文进行预处理是很有必要的。常见的处理工作包括格式转换、标点符号检査、术语编辑、标签识别等,待翻译完成后,则需要对机器译文进行进一步的编辑和修正,从而使其符合使用规范,比如进行标点、格式检查,术语、标签还原等,这些过程通常都是按照设定的处理策略自动完成的。另外,译文长度的控制、译文多样性的控制等也可以丰富机器翻译系统干预的手段(见{\chapterfourteen})。
%----------------------------------------------------------------------------------------
% NEW SECTION
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论