Commit 9f3f79a6 by xiaotong

wording (sec 17)

parent 3b656680
...@@ -515,16 +515,16 @@ ...@@ -515,16 +515,16 @@
\subsection{篇章级翻译的建模} \subsection{篇章级翻译的建模}
\parinterval 篇章级神经机器翻译不再针对具体的上下文现象构造特征,而是对篇章中句子的上下文直接进行建模。在理想情况下,这种方法将以整个篇章为单位作为模型的输入和输出。然而由于现实中篇章对应的序列过长,因此直接建模整个篇章对应的序列难度很大,使得主流的序列到序列模型很难达到良好的效果甚至难以训练。一种思路是采用能够处理超长序列的模型对篇章序列建模,比如,使用{\chapterfifteen}中提到的处理长序列的Transformer模型就是针对该问题的一个有效的解决方法\upcite{DBLP:conf/iclr/KitaevKL20}。不过,这类模型并不针对篇章级翻译的具体翻译问题,因此并不是篇章级翻译中的主流方法。 \parinterval 在理想情况下,篇章级翻译应该以整个篇章为单位作为模型的输入和输出。然而由于现实中篇章对应的序列过长,因此直接建模整个篇章的词序列难度很大,这使得主流的序列到序列模型很难直接使用。一种思路是采用能够处理超长序列的模型对篇章序列建模,比如,使用{\chapterfifteen}中提到的处理长序列的Transformer模型就是一种的解决方法\upcite{DBLP:conf/iclr/KitaevKL20}。不过,这类模型并不针对篇章级翻译的具体问题,因此并不是篇章级翻译中的主流方法。
\parinterval 现在常见的端到端做法还是从句子级翻译出发,通过额外的模块来对篇章中的上下文句子进行抽象表示,然后提取相应的上下文信息并融入到当前句子的翻译过程中。形式上,篇章级翻译的建模方式如下: \parinterval 现在常见的端到端做法还是从句子级翻译出发,通过额外的模块来对篇章中的上下文句子进行表示,然后提取相应的上下文信息并融入到当前句子的翻译过程中。形式上,篇章级翻译的建模方式如下:
\begin{eqnarray} \begin{eqnarray}
\funp{P}(\seq{Y}|\seq{X})&=&\prod_{i=1}^{T}{\funp{P}(Y_i|X_i,D_i)} \funp{P}(\seq{Y}|\seq{X})&=&\prod_{i=1}^{T}{\funp{P}(Y_i|X_i,D_i)}
\label{eq:17-3-1} \label{eq:17-3-1}
\end{eqnarray} \end{eqnarray}
其中$\seq{X}$$\seq{Y}$分别为源语言篇章和目标语言篇章,$X_i$$Y_i$分别为源语言篇章和目标语言篇章中的某个句子,$T$表示篇章中句子的数目\footnote{为了简化问题,我们假设源语言端和目标语言段具有相同的句子数目$T$}$D_i$表示翻译第$i$个句子时所对应的上下文句子集合,理想情况下,$D_i$中包含源语言篇章和目标语言篇章中所有除第$i$句之外的句子,但考虑到不同的任务场景需求与模型的应用效率,篇章级神经机器翻译在建模的时候通常仅使用其中的一部分作为上下文句子输入。 其中$\seq{X}$$\seq{Y}$分别为源语言篇章和目标语言篇章,$X_i$$Y_i$分别为源语言篇章和目标语言篇章中的某个句子,$T$表示篇章中句子的数目\footnote{为了简化问题,为了假设源语言端和目标语言段具有相同的句子数目$T$}$D_i$表示翻译第$i$个句子时所对应的上下文句子集合,理想情况下,$D_i$中包含源语言篇章和目标语言篇章中所有除第$i$句之外的句子,但考虑到不同的任务场景需求与模型的应用效率,篇章级神经机器翻译在建模的时候通常仅使用其中的一部分作为上下文句子输入。
\parinterval 上下文范围的选取是篇章级神经机器翻译需要着重考虑的问题,比如上下文句子的多少\upcite{agrawal2018contextual,DBLP:conf/emnlp/WerlenRPH18,DBLP:conf/naacl/MarufMH19},是否考虑目标端上下文句子\upcite{DBLP:conf/discomt/TiedemannS17,agrawal2018contextual}等。此外,不同的上下文范围也对应着不同的建模方\footnote{即如何从上下文句子中提取上下文信息,并且融入到翻译模型中。},接下来将对一些典型的建模方法进行介绍,包括改进输入\upcite{DBLP:conf/discomt/TiedemannS17,DBLP:conf/naacl/BawdenSBH18,DBLP:conf/wmt/GonzalesMS17,DBLP:journals/corr/abs-1910-07481}、多编码器结构\upcite{DBLP:journals/corr/JeanLFC17,DBLP:conf/acl/TitovSSV18,DBLP:conf/emnlp/ZhangLSZXZL18}、层次结构\upcite{DBLP:conf/emnlp/WangTWL17,DBLP:conf/emnlp/TanZXZ19,Werlen2018DocumentLevelNM}以及基于缓存的方法\upcite{DBLP:conf/coling/KuangXLZ18,DBLP:journals/tacl/TuLSZ18} \parinterval 上下文范围的选取是篇章级神经机器翻译需要着重考虑的问题,比如上下文句子的多少\upcite{agrawal2018contextual,DBLP:conf/emnlp/WerlenRPH18,DBLP:conf/naacl/MarufMH19},是否考虑目标端上下文句子\upcite{DBLP:conf/discomt/TiedemannS17,agrawal2018contextual}等。此外,不同的上下文范围也对应着不同的建模方法,接下来将对一些典型的方法进行介绍,包括改进输入\upcite{DBLP:conf/discomt/TiedemannS17,DBLP:conf/naacl/BawdenSBH18,DBLP:conf/wmt/GonzalesMS17,DBLP:journals/corr/abs-1910-07481}、多编码器模型\upcite{DBLP:journals/corr/JeanLFC17,DBLP:conf/acl/TitovSSV18,DBLP:conf/emnlp/ZhangLSZXZL18}、篇章层次结构模型\upcite{DBLP:conf/emnlp/WangTWL17,DBLP:conf/emnlp/TanZXZ19,Werlen2018DocumentLevelNM}以及基于缓存的方法\upcite{DBLP:conf/coling/KuangXLZ18,DBLP:journals/tacl/TuLSZ18}
%---------------------------------------------------------------------------------------- %----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION % NEW SUBSUB-SECTION
...@@ -532,7 +532,7 @@ ...@@ -532,7 +532,7 @@
\subsubsection{1. 改进输入形式} \subsubsection{1. 改进输入形式}
\parinterval 一种简单的方法是直接复用传统的序列到序列模型,将篇章中待翻译句子与其上下文句子拼接后作为模型输入。如实例\ref{eg:17-3-1}所示,这种做法不需要改动模型结构,操作简单,适用于包括基于循环神经网络\upcite{DBLP:conf/discomt/TiedemannS17}和Transformer\upcite{agrawal2018contextual,DBLP:conf/discomt/ScherrerTL19}在内的神经机器翻译系统。但是由于过长的序列会导致模型难以训练,通常只会选取局部的上下文句子进行拼接,比如只拼接源语言端前一句或者周围几句\upcite{DBLP:conf/discomt/TiedemannS17}。此外,也可以引入目标语言端的上下文\upcite{DBLP:conf/naacl/BawdenSBH18,agrawal2018contextual,DBLP:conf/discomt/ScherrerTL19},在解码时拼接目标语言端上下文和当前句同样会带来一定的性能提升。但是过大的窗口在推断时会导致错误累计的问题\upcite{agrawal2018contextual},因此通常只考虑目标语端的前一句 \parinterval 一种简单的方法是直接复用传统的序列到序列模型,将篇章中待翻译句子与其上下文句子拼接后作为模型输入。如实例\ref{eg:17-3-1}所示,这种做法不需要改动模型结构,操作简单,适用于包括基于循环神经网络和Transformer在内的神经机器翻译系统\upcite{DBLP:conf/discomt/TiedemannS17,agrawal2018contextual,DBLP:conf/discomt/ScherrerTL19}。但是由于过长的序列会导致模型难以训练,通常只会选取局部的上下文句子进行拼接,比如只拼接源语言端前一句或者周围几句\upcite{DBLP:conf/discomt/TiedemannS17}。此外,也可以引入目标语言端的上下文\upcite{DBLP:conf/naacl/BawdenSBH18,agrawal2018contextual,DBLP:conf/discomt/ScherrerTL19},在解码时拼接目标语言端上下文和当前句同样会带来一定的性能提升。但是过大的窗口会造成推断速度的下降\upcite{agrawal2018contextual},因此通常只考虑前一个目标语言句子
\begin{example} \begin{example}
传统模型训练输入: 传统模型训练输入:
...@@ -551,7 +551,7 @@ ...@@ -551,7 +551,7 @@
\label{eg:17-3-1} \label{eg:17-3-1}
\end{example} \end{example}
\parinterval 其他改进输入的做法相比于拼接的方法要复杂一些,首先需要对篇章进行处理,得到词汇链\footnote{词汇链指篇章中语义相关的词所构成的序列}\upcite{DBLP:conf/wmt/GonzalesMS17}或者篇章嵌入\upcite{DBLP:journals/corr/abs-1910-07481}等信息,然后将融入这些信息的当前句子序列表示送入模型中。目前这种将预先提取的篇章表示作为上下文信息的方法是否适合机器翻译还有待论证。 \parinterval 其他改进输入的做法相比于拼接的方法要复杂一些,首先需要对篇章进行处理,得到词汇链\footnote{词汇链指篇章中语义相关的词所构成的序列}\upcite{DBLP:conf/wmt/GonzalesMS17}或者篇章嵌入\upcite{DBLP:journals/corr/abs-1910-07481}等信息,然后将融入这些信息的当前句子序列表示送入模型中。目前这种将预先提取的篇章表示作为上下文信息的方法是否适合机器翻译还有待论证。
%---------------------------------------------------------------------------------------- %----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION % NEW SUBSUB-SECTION
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论