Commit 2f9bdcc4 by xiaotong

wording (sec 17)

parent 9f3f79a6
......@@ -492,7 +492,7 @@
\parinterval 从对篇章信息建模的角度看,在统计机器翻译时代就已经有大量的研究工作。这些工作大多针对某一具体的上下文现象,比如,篇章结构\upcite{DBLP:conf/anlp/MarcuCW00,foster2010translating,DBLP:conf/eacl/LouisW14}、代词回指\upcite{DBLP:conf/iwslt/HardmeierF10,DBLP:conf/wmt/NagardK10,DBLP:conf/eamt/LuongP16,}、词汇衔接\upcite{tiedemann2010context,DBLP:conf/emnlp/GongZZ11,DBLP:conf/ijcai/XiongBZLL13,xiao2011document}和篇章连接词\upcite{DBLP:conf/sigdial/MeyerPZC11,DBLP:conf/hytra/MeyerP12,}等。但是由于统计机器翻译本身流程复杂,依赖于许多组件和针对上下文现象所精心构造的特征,其建模方法相对比较困难。到了神经机器翻译时代,端到端建模给篇章级翻译提供了新的视角,相关工作不断涌现并且取得了很好的进展\upcite{DBLP:journals/corr/abs-1912-08494}
\parinterval
\parinterval
区别于篇章级统计机器翻译,篇章级神经机器翻译不需要针对某一具体的上下文现象构造相应的特征,而是通过翻译模型本身从上下文句子中抽取和融合的上下文信息。通常情况下,篇章级机器翻译可以采用局部建模的手段将前一句或者周围几句作为上下文送入模型。针对需要长距离上下文的情况,也可以使用全局建模的手段直接从篇章中所有句子中提取上下文信息。近几年多数研究工作都在探索更有效的局部建模或全局建模方法,主要包括改进输入\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/naacl/MarufMH19,DBLP:conf/acl/HaffariM18,DBLP:conf/emnlp/YangZMGFZ19,DBLP:conf/ijcai/ZhengYHCB20}以及基于缓存的方法\upcite{DBLP:conf/coling/KuangXLZ18,DBLP:journals/tacl/TuLSZ18}四类。
\parinterval 此外,篇章级机器翻译面临的另外一个挑战是数据稀缺。篇章级机器翻译所需要的双语数据需要保留篇章边界,数量相比于句子级双语数据要少很多。除了在之前提到的端到端方法中采用预训练或者参数共享的手段(见{\chaptersixteen}),也可以采用新的建模手段来缓解数据稀缺问题。比如,在句子级翻译模型的推断过程中,通过篇章级语言模型在目标端引入上下文信息\upcite{DBLP:conf/discomt/GarciaCE19,DBLP:journals/tacl/YuSSLKBD20,DBLP:journals/corr/abs-2010-12827},或者对句子级的翻译结果进行修正\upcite{DBLP:conf/aaai/XiongH0W19,DBLP:conf/acl/VoitaST19,DBLP:conf/emnlp/VoitaST19}{\color{red} 如何修正?用什么修正?修正什么?感觉这句话没有信息量})。
......@@ -524,7 +524,7 @@
\end{eqnarray}
其中,$\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}等。此外,不同的上下文范围也对应着不同的建模方法,接下来将对一些典型的方法进行介绍,包括改进输入\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
......@@ -567,27 +567,27 @@
\end{figure}
%----------------------------------------------
\parinterval 区别于在输入上进行改进,另一种思路是对传统的编码器-解码器框架进行更改,引入额外的编码器来对上下文句子进行编码,该结构被称为多编码器结构\upcite{DBLP:conf/acl/LiLWJXZLL20,DBLP:conf/acl/LiLWJXZLL20,DBLP:conf/discomt/SugiyamaY19}。这种结构最早被应用在基于循环神经网络的篇章级翻译模型中\upcite{DBLP:journals/corr/JeanLFC17,DBLP:conf/coling/KuangX18,DBLP:conf/naacl/BawdenSBH18,DBLP:conf/pacling/YamagishiK19},后期证明在Transformer模型上同样适用\upcite{DBLP:journals/corr/abs-1805-10163,DBLP:conf/emnlp/ZhangLSZXZL18}。图\ref{fig:17-18}展示了一个基于Transformer模型的多编码器结构,基于源语言当前待翻译句子的编码表示$\mathbi{h}$和上下文句子的编码表示$\mathbi{h}^{\textrm pre}$,模型首先通过注意力机制提取上下文信息$\mathbi{d}$
\parinterval 另一种思路是对传统的编码器-解码器框架进行更改,引入额外的编码器来对上下文句子进行编码,该结构被称为多编码器结构\upcite{DBLP:conf/acl/LiLWJXZLL20,DBLP:conf/discomt/SugiyamaY19}。这种结构最早被应用在基于循环神经网络的篇章级翻译模型中\upcite{DBLP:journals/corr/JeanLFC17,DBLP:conf/coling/KuangX18,DBLP:conf/naacl/BawdenSBH18,DBLP:conf/pacling/YamagishiK19},后期证明在Transformer模型上同样适用\upcite{DBLP:journals/corr/abs-1805-10163,DBLP:conf/emnlp/ZhangLSZXZL18}。图\ref{fig:17-18}展示了一个基于Transformer模型的多编码器结构,基于源语言当前待翻译句子的编码表示$\mathbi{h}$和上下文句子的编码表示$\mathbi{h}^{\textrm pre}$,模型首先通过注意力机制提取上下文信息$\mathbi{d}$
\begin{eqnarray}
\mathbi{d}&=&\textrm{Attention}(\mathbi{h},\mathbi{h}^{\textrm pre},\mathbi{h}^{\textrm pre})
\label{eq:17-3-3}
\end{eqnarray}
其中,$\mathbi{h}$作为query(查询),$\mathbi{h}^{\textrm pre}$作为key(键)和value(值)。然后通过门控机制将待翻译句子中每个位置的编码表示和上下文中对应位置的信息进行融合,具体方式如下:
其中,$\mathbi{h}$作为Query(查询),$\mathbi{h}^{\textrm pre}$作为Key(键)和Value(值)。然后通过门控机制将待翻译句子中每个位置的编码表示和上下文中对应位置({\color{red} 什么叫上下文中对应位置?}的信息进行融合,具体方式如下:
\begin{eqnarray}
\widetilde{\mathbi{h}_{t}}&=&\lambda_{t}\mathbi{h}_{t}+(1-\lambda_{t})\mathbi{d}_{t}
\label{eq:17-3-4}\\
\lambda_{t}&=&\sigma(\mathbi{W}_{\lambda}[\mathbi{h}_{t};\mathbi{d}_{t}]+\mathbi{b}_{\lambda})
\label{eq:17-3-5}
\end{eqnarray}
其中$\widetilde{\mathbi{h}}$为融合了上下文信息的最终序列表示结果,$\widetilde{\mathbi{h}_{t}}$为其第$t$个位置的表示。$\mathbi{W}_{\lambda}$$\mathbi{b}_{\lambda}$为模型可学习的参数,$\sigma$为Sigmoid函数,用来获取门控权值$\lambda$。除了在解码端外部进行融合,也可以将$\mathbi{h}^{\textrm pre}$送入解码器,在解码器中采用类似的机制进行融合\upcite{DBLP:conf/emnlp/ZhangLSZXZL18}
其中$\widetilde{\mathbi{h}}$为融合了上下文信息的最终序列表示结果,$\widetilde{\mathbi{h}_{t}}$为其第$t$个位置的表示。$\mathbi{W}_{\lambda}$$\mathbi{b}_{\lambda}$为模型可学习的参数,$\sigma$为Sigmoid函数,用来获取门控权值$\lambda$。除了在编码端融合源语言上下文信息,也可以直接用类似机制在解码器内完成源语言上下文信息的融合\upcite{DBLP:conf/emnlp/ZhangLSZXZL18}
\parinterval 此外,由于多编码器结构引入了额外的模块,模型整体参数量大大增加,会导致其难以训练。为此一些研究人员提出使用句子级模型预训练的方式来初始化模型参数\upcite{DBLP:journals/corr/JeanLFC17,DBLP:conf/emnlp/ZhangLSZXZL18},或者将两个编码器的参数进行共享来减小模型复杂度\upcite{DBLP:conf/pacling/YamagishiK19,DBLP:conf/coling/KuangX18,DBLP:journals/corr/abs-1805-10163}
\parinterval 此外,由于多编码器结构引入了额外的模块,模型整体参数量大大增加,同时增加了模型训练的难度。为此,一些研究人员提出使用句子级模型预训练的方式来初始化模型参数\upcite{DBLP:journals/corr/JeanLFC17,DBLP:conf/emnlp/ZhangLSZXZL18},或者将两个编码器的参数进行共享来降低模型复杂度\upcite{DBLP:conf/pacling/YamagishiK19,DBLP:conf/coling/KuangX18,DBLP:journals/corr/abs-1805-10163}
%----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection{3. 层次结构}
\subsubsection{3. 层次结构模型}
%----------------------------------------------
\begin{figure}[htp]
......@@ -598,22 +598,32 @@
\end{figure}
%----------------------------------------------
\parinterval 多编码器结构通过额外的编码器对前一句进行编码,但是无法处理引入多个上下文句子的情况。为了捕捉到更充分的上下文信息,可以采用层次结构来对更多的上下文句子进行建模。层次结构可以有效地处理更长的上下文序列以及序列内不同单元之间的相互作用。类似的思想也成功的应用在基于树的翻译模型中({\chaptereight}{\chapterfifteen})。
\parinterval 多编码器结构通过额外的编码器对前一句进行编码,但是当处理更多上下文句子的时候仍然面临效率低下的问题。为了捕捉更大范围的上下文,可以采用层次结构来对更多的上下文句子进行建模。层次结构是一种有效的序列表示方法,而且人类语言中天然就具有层次性,比如,句法树、篇章结构树等。类似的思想也成功的应用在基于树的句子级翻译模型中({\chaptereight}{\chapterfifteen})。
\parinterval\ref{fig:17-19}描述了一个基于层次注意力的模型结构\upcite{DBLP:conf/emnlp/WerlenRPH18}。首先通过翻译模型的编码器获取前$k$个句子的词序列编码表示$(\mathbi{h}^{\textrm{pre}1},\mathbi{h}^{\textrm{pre}2},\dots,\mathbi{h}^{\textrm{pre}k})$,然后针对前文每个句子的词序列编码表示$\mathbi{h}^{\textrm{pre}j}$,使用词级注意力提取句子级的上下文信息$\mathbi{s}^{j}$,然后在这$k$个句子级上下文信息$\mathbi{s}=(\mathbi{s}^1,\mathbi{s}^2,\dots,\mathbi{s}^k)$的基础上,使用句子级注意力提取篇章上下文信息$\mathbi{d}$。最终上下文信息$\mathbi{d}$的获取涉及到词级和句子级两个不同层次的注意力操作,因此将该过程称为层次注意力。实际上,这种方法并没有使用语言学的篇章层次结构。但是,句子级注意力在归纳统计意义上的篇章结构,因此这种方法也可以很好地捕捉不同句子之间的关系。
\parinterval 为了增强模型表示能力,层次注意力中并未直接使用当前句子第$t$个位置的编码表示$\mathbi{h}_{t}$作为查询,而是通过$f_w$$f_s$两个线性变换分别获取词级注意力和句子级注意力的查询$\mathbi{q}_{w}$$\mathbi{q}_{s}$,定义如下:
\parinterval\ref{fig:17-19}描述了一个基于层次注意力的模型结构\upcite{DBLP:conf/emnlp/WerlenRPH18}。首先通过翻译模型的编码器获取前$k$个句子的词序列编码表示$(\mathbi{h}^{\textrm{pre}1},\mathbi{h}^{\textrm{pre}2},\dots,\mathbi{h}^{\textrm{pre}k})$,然后针对前文每个句子的词序列编码表示$\mathbi{h}^{\textrm{pre}j}$,使用词级注意力提取句子级的上下文信息$\mathbi{s}^{j}$,然后在这$k$个句子级上下文信息$\mathbi{s}=(\mathbi{s}^1,\mathbi{s}^2,\mathbi{s}^k)$的基础上,使用句子级注意力提取最终的篇章上下文信息$\mathbi{d}$。最终上下文信息$\mathbi{d}$的获取涉及到词级和句子级两个不同层次的注意力操作,因此将该过程称为层次注意力。为了增强模型表示能力,层次注意力中并未直接使用当前句子第$t$个位置的编码表示$\mathbi{h}_{t}$作为查询,而是通过$f_w$$f_s$两个线性变换分别获取词级注意力和句子级注意力的查询$\mathbi{q}_{w}$$\mathbi{q}_{s}$,另外在句子级注意力之后添加了一个前馈全连接网络子层FFN。其具体计算过程如下所示:
\begin{eqnarray}
\mathbi{q}_{w}&=&f_w(\mathbi{h}_t)
\label{eq:17-3-6}\\
\mathbi{q}_{s}&=&f_s(\mathbi{h}_t)
\label{eq:17-3-8}
\end{eqnarray}
\noindent 另外,之后分别计算词级和句子级注意力模型。需要注意的是句子级注意力添加了一个前馈全连接网络子层FFN。其具体计算方式如下公式所示:
\begin{eqnarray}
\mathbi{s}^j&=&\textrm{WordAttention}(\mathbi{q}_{w},\mathbi{h}^{j},\mathbi{h}^{j})
\label{eq:17-3-7}\\
\mathbi{q}_{s}&=&f_s(\mathbi{h}_t)
\label{eq:17-3-8}\\
\mathbi{d}_t&=&\textrm{FFN}(\textrm{SentAttention}(\mathbi{q}_{s},\mathbi{s},\mathbi{s}))
\label{eq:17-3-9}
\end{eqnarray}
在得到最终的上下文信息$\mathbi{d}$后,模型同样采用门控机制(如公式\eqref{eq:17-3-4}和公式\eqref{eq:17-3-5})与$\mathbi{h}$进行融合来得到一个上下文相关的当前句子表示$\widetilde{\mathbi{h}}$
\parinterval 通过层次注意力,模型可以在词级和句子级两个维度从多个句子中提取更充分的上下文信息,除了用于编码器端,也可以用于解码器端来获取目标端的上下文信息。基于层次注意力,为了进一步编码整个篇章的上下文信息,研究人员提出选择性注意力\upcite{DBLP:conf/naacl/MarufMH19}来对篇章中整体上下文进行有选择的信息提取。此外,也有研究人员使用循环神经网络\upcite{DBLP:conf/emnlp/WangTWL17}、记忆网络\upcite{DBLP:conf/acl/HaffariM18}、胶囊网络\upcite{DBLP:conf/emnlp/YangZMGFZ19}和片段级相对注意力\upcite{DBLP:conf/ijcai/ZhengYHCB20}等结构来对多个上下文句子进行上下文信息提取。
\noindent 其中,$\textrm{WordAttention}(\cdot)$$\textrm{SentAttention}(\cdot)$都是标准的自注意力模型。在得到最终的上下文信息$\mathbi{d}$后,模型同样采用门控机制(如公式\eqref{eq:17-3-4} 和公式\eqref{eq:17-3-5})与$\mathbi{h}$进行融合来得到一个上下文相关的当前句子表示$\widetilde{\mathbi{h}}$
\parinterval 通过层次注意力,模型可以在词级和句子级两个维度从多个句子中提取更充分的上下文信息,除了用于编码器端,也可以用于解码器端来获取目标端的上下文信息。基于层次注意力,为了进一步编码整个篇章的上下文信息,研究人员提出选择性注意力来对篇章中整体上下文进行有选择的信息提取\upcite{DBLP:conf/naacl/MarufMH19}。此外,也有研究人员使用循环神经网络\upcite{DBLP:conf/emnlp/WangTWL17}、记忆网络\upcite{DBLP:conf/acl/HaffariM18}、胶囊网络\upcite{DBLP:conf/emnlp/YangZMGFZ19}和片段级相对注意力\upcite{DBLP:conf/ijcai/ZhengYHCB20}等结构来对多个上下文句子进行上下文信息提取。
%----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
......@@ -621,19 +631,21 @@
\subsubsection{4. 基于缓存的方法}
\parinterval 除了以上提到的建模方法,还有一类基于缓存的方法\upcite{DBLP:journals/tacl/TuLSZ18,DBLP:conf/coling/KuangXLZ18}。这种方法最大的特点在于将篇章翻译看作一个连续的过程,然后在这个过程中通过一个额外的缓存来记录一些相关信息,最后在每个句子解码的过程中使用这个缓存来提供上下文信息。图\ref{fig:17-20}描述了一种基于缓存的篇章级翻译模型结构\upcite{DBLP:journals/tacl/TuLSZ18}。在这里,翻译模型基于循环神经网络(参考{\chapterten}),但是这种方法同样适用于包括Transformer在内的其他神经机器翻译模型。模型中篇章上下文的建模依赖于缓存的读和写操作。缓存的写操作指的是:按照一定规则将翻译历史中一些译文单词对应的上下文向量$\mathbi{C}_r$和其解码器端的隐藏状态$\mathbi{s}_r$分别作为一对键和值写入到缓存中。而缓存的读操作则是指将待翻译句子中第$t$个单词的上下文向量$\mathbi{C}_t$作为查询,与缓存中的所有键分别进行匹配,并根据其匹配概率进行带权相加得到当前待翻译句子的篇章上下文信息 $\mathbi{d}$。该方法中单词的解码器端隐藏状态$\mathbi{s}_t$与对应位置的上下文信息$\mathbi{d}_t$的融合也是基于门控机制的方法。事实上,由于该方法中缓存空间是有限的,其内容的更新也存在一定的规则:在当前句子的翻译结束后,如果单词$y_t$的对应信息未曾写入缓存,则写入其中的空槽或者替换最久未使用的键值对;如果$y_t$已作为翻译历史存在于缓存中,则将对应的键值对按照以下规则进行更新:
\parinterval 除了以上提到的建模方法,还有一类基于缓存的方法\upcite{DBLP:journals/tacl/TuLSZ18,DBLP:conf/coling/KuangXLZ18}。这类方法最大的特点在于将篇章翻译看作一个连续的过程({\color{red} 如何理解连续的过程?}),然后在这个过程中通过一个额外的缓存来记录一些相关信息,最后在每个句子解码的过程中使用这个缓存来提供上下文信息。图\ref{fig:17-20}描述了一种基于缓存的篇章级翻译模型结构\upcite{DBLP:journals/tacl/TuLSZ18}。 在这里,翻译模型基于循环神经网络(见{\chapterten}),但是这种方法同样适用于包括Transformer在内的其他神经机器翻译模型。
\parinterval 模型中篇章上下文的建模依赖于缓存的读和写操作。缓存的写操作指的是:按照一定规则将翻译历史中一些译文单词对应的上下文向量$\mathbi{C}_r$作为键,而将其解码器端的隐藏状态$\mathbi{s}_r$ 对应的值写入到缓存中({\color{red} 为啥变量下标用$r$})。而缓存的读操作是指将待翻译句子中第$t$个单词的上下文向量$\mathbi{C}_t$作为查询,与缓存中的所有键分别进行匹配,并根据其匹配程度进行带权相加,最后得到当前待翻译句子的篇章上下文信息 $\mathbi{d}$。该方法中单词的解码器端隐藏状态$\mathbi{s}_t$与对应位置的上下文信息$\mathbi{d}_t$的融合也是基于门控机制。事实上,由于该方法中缓存空间是有限的,其内容的更新也存在一定的规则:在当前句子的翻译结束后,如果单词$y_t$的对应信息未曾写入缓存,则写入其中的空槽或者替换最久未使用的键值对;如果$y_t$ 已作为翻译历史存在于缓存中,则将对应的键值对按照以下规则进行更新:
\begin{eqnarray}
\mathbi{k}_{i}&=&(\mathbi{k}_{i}+\mathbi{c}_{t})/2
\mathbi{k}_{i}&=&\frac{\mathbi{k}_{i}+\mathbi{c}_{t}}{2}
\label{eq:17-3-10}\\
\mathbi{v}_{i}&=&(\mathbi{v}_{i}+\mathbi{s}_{t})/2
\mathbi{v}_{i}&=&\frac{\mathbi{v}_{i}+\mathbi{s}_{t}}{2}
\label{eq:17-3-11}
\end{eqnarray}
其中$i$表示$y_t$在缓存中的位置,$\mathbi{k}_{i}$$\mathbi{v}_{i}$分别为缓存中对应的键和值。这种方法缓存的都是目标端历史的词级表示,因此能够解决一些词汇衔接的问题,比如词汇一致性和一些搭配问题,产生更连贯的翻译结果。
其中$i$表示$y_t$在缓存中的位置,$\mathbi{k}_{i}$$\mathbi{v}_{i}$分别为缓存中对应的键和值。这种方法缓存的都是目标语言端历史的词级表示,因此能够解决一些词汇衔接的问题,比如词汇一致性和一些搭配问题,产生更连贯的翻译结果。
%----------------------------------------------
\begin{figure}[htp]
\centering
\input{./Chapter17/Figures/figure-cache}
\caption{基于Cache的解码器结构\upcite{DBLP:journals/tacl/TuLSZ18}}
\caption{基于缓存的解码器结构\upcite{DBLP:journals/tacl/TuLSZ18}}
\label{fig:17-20}
\end{figure}
%----------------------------------------------
......@@ -644,11 +656,11 @@
\subsection{在推断阶段结合篇章上下文}
\parinterval 上一节介绍的建模方法主要是对篇章中待翻译句子的上下文句子进行建模,通过端到端的方式对上下文信息进行提取和融合。由于篇章级双语数据相对稀缺,这种复杂的篇章级翻译模型很难通过直接训练取得很好的效果,通常可以采用两阶段训练或参数共享的方式来缓解这个问题。此外,由于句子级双语数据更为丰富,因此句子级翻译模型的单句质量通常能够达到预期。因此,一个自然的想法是以高质量的句子级翻译模型为基础,通过在推断过程中结合上下文信息来构造篇章级翻译模型。
\parinterval 前面介绍的方法主要是对篇章中待翻译句子的上下文句子进行建模,通过端到端的方式对上下文信息进行提取和融合。由于篇章级双语数据相对稀缺,这种复杂的篇章级翻译模型很难得到充分训练,通常可以采用两阶段训练或参数共享的方式来缓解这个问题。此外,由于句子级双语数据更为丰富,一个自然的想法是以高质量的句子级翻译模型为基础,通过在推断过程中结合上下文信息来构造篇章级翻译模型。
\parinterval 在句子级翻译模型中引入目标语言端的篇章级语言模型\upcite{DBLP:conf/discomt/GarciaCE19,DBLP:journals/tacl/YuSSLKBD20,DBLP:journals/corr/abs-2010-12827}是一种结合上下文信息的常用手段。 相比于篇章级双语数据,篇章级单语数据更容易获取。在双语数据稀缺的情况下,通过引入目标语言端的篇章级语言模型可以更充分的利用这些单语数据。最简单的做法是在句子级翻译模型的分数基础上加上语言模型的分数\upcite{DBLP:conf/discomt/GarciaCE19,DBLP:journals/corr/abs-2010-12827},既可以在推断的搜索过程中作为模型最终打分,也可以将其作为重排序阶段的一种特征。
\parinterval 在句子级翻译模型中引入目标语言端的篇章级语言模型\upcite{DBLP:conf/discomt/GarciaCE19,DBLP:journals/tacl/YuSSLKBD20,DBLP:journals/corr/abs-2010-12827}是一种结合上下文信息的常用手段。 相比于篇章级双语数据,篇章级单语数据更容易获取。在双语数据稀缺的情况下,通过引入目标语言端的篇章级语言模型可以更充分的利用这些单语数据。最简单的做法是在句子级翻译模型基础上引入篇章级语言模型\upcite{DBLP:conf/discomt/GarciaCE19,DBLP:journals/corr/abs-2010-12827},既可以作为整个搜索过程中的模型得分,也可以作为重排序阶段的一种特征。
\parinterval 另一种在推断过程中引入上下文信息的方法是通过两阶段解码\upcite{DBLP:conf/aaai/XiongH0W19,DBLP:conf/acl/VoitaST19}和后编辑\upcite{DBLP:conf/emnlp/VoitaST19}在句子级翻译结果上进行修正。这种方法不影响句子级翻译模型的推断过程,而是在完成翻译后使用额外的模块进行第二阶段的解码,如图\ref{fig:17-21}所示,这种两阶段解码的做法相当于将篇章级翻译的问题进行了分离和简化,适用于篇章级双语数据稀缺的场景。基于类似的思想,有研究人员使用后编辑的做法对翻译结果进行修正。区别于两阶段解码的方法,后编辑的方法无需参考源语信息,只是基于目标语言端的连续翻译结果来提供上下文信息。通过这种方式,可以降低对篇章级双语数据的需求。
\parinterval 另一种方法是通过两阶段解码\upcite{DBLP:conf/aaai/XiongH0W19,DBLP:conf/acl/VoitaST19}和后编辑\upcite{DBLP:conf/emnlp/VoitaST19}在句子级翻译结果上进行修正。这种方法不影响句子级翻译模型的推断过程,而是在完成翻译后使用额外的模块进行第二阶段的翻译,如图\ref{fig:17-21}所示,这种两阶段解码的做法相当于将篇章级翻译的问题进行了分离和简化,适用于篇章级双语数据稀缺的场景。基于类似的思想,也可以使用后编辑的做法对翻译结果进行修正。区别于两阶段解码的方法,后编辑的方法无需参考源源语言信息,只是对译文结果进行修正。通过这种方式,可以降低对篇章级双语数据的需求。
%----------------------------------------------
\begin{figure}[htp]
......@@ -664,14 +676,24 @@
\section{小结及扩展阅读}
\parinterval 本章仅对音频处理和语音识别进行了简单的介绍,具体内容可以参考一些经典书籍,比如关于信号处理的基础知识\upcite{Oppenheim2001DiscretetimeSP,Quatieri2001DiscreteTimeSS},以及语音识别的传统方法\upcite{DBLP:books/daglib/0071550,Huang2001SpokenLP}和基于深度学习的最新方法\upcite{benesty2008automatic}。此外,语音翻译的一个重要应用是机器同声传译。
\parinterval 使用更大上下文进行机器翻译建模是极具潜力的研究方向,包括多模态翻译在内的多个领域也非常活跃。有许多问题值得进一步思考与讨论:
\begin{itemize}
\vspace{0.5em}
\item 本章仅对音频处理和语音识别进行了简单的介绍,具体内容可以参考一些经典书籍,比如关于信号处理的基础知识\upcite{Oppenheim2001DiscretetimeSP,Quatieri2001DiscreteTimeSS},以及语音识别的传统方法\upcite{DBLP:books/daglib/0071550,Huang2001SpokenLP}和基于深度学习的最新方法\upcite{benesty2008automatic}
\parinterval 同声传译是指在说话人陈述过程中,实时输出语音对应的文本翻译结果。在演讲、会议、聊天等场景,同声传译可以极大地提高交流效率。同声传译主要的难点在于不同语言的句法顺序不同。比如,“普京7月在赫尔辛基与特朗普会晤”这句话对应的翻译结果为“Putin meets Trump in Helsinki in July”,只有当最后一个词“会晤”说出来时,翻译结果中的第二个词“meets”才能够被正确翻译。这个问题导致了同声传译模型需要在翻译性能和实时性之间进行取舍。目前,同声传译的一种思路是基于目前已经说出的语音进行翻译\upcite{DBLP:conf/acl/MaHXZLZZHLLWW19},一种方式是设定固定等待源语K个词语,然后再进行翻译,同时改进束搜索方式来预测未来的词序列,从而提升准确度\upcite{DBLP:conf/emnlp/ZhengMZH19}。另一种方式是对当前语音进行翻译,但需要判断翻译的词是否能够作为最终结果。如果是则不需要重新解码,可以将确定的词作为之后解码端的输入,否则将会根据之后的语音重新进行解码\upcite{DBLP:conf/naacl/DalviDSV18,DBLP:journals/corr/ChoE16}。第二种思路是动态预测当前时刻是应该继续等待还是开始翻译,这种方式更符合人类进行同传的思路。但是这种策略的难点在于标注每一时刻的决策状态十分耗时且标准难以统一,目前主流的方式是利用强化学习方法\upcite{DBLP:conf/eacl/NeubigCGL17,DBLP:conf/emnlp/GrissomHBMD14},对句子进行不同决策方案采样,最终学到最优的决策方案。此外,还有一些工作设计不同的学习策略\upcite{DBLP:conf/acl/ZhengLZMLH20,DBLP:conf/emnlp/ZhengZMH19,DBLP:conf/acl/ZhengZMH19}或改进注意力机制\upcite{DBLP:conf/acl/ArivazhaganCMCY19}以提升同声传译的性能。
\vspace{0.5em}
\item 此外,语音翻译的一个重要应用是机器同声传译。机器同声传译的一个难点在于不同语言的文字顺序不同。这个问题导致了同声传译模型需要在翻译性能和实时性之间进行取舍。目前,同声传译的一种思路是基于目前已经说出的语音进行翻译\upcite{DBLP:conf/acl/MaHXZLZZHLLWW19},比如,等待源语$k$个词语,然后再进行翻译,同时改进束搜索方式来预测未来的词序列,从而提升准确度\upcite{DBLP:conf/emnlp/ZhengMZH19}。或者,对当前语音进行翻译,但需要判断翻译的词是否能够作为最终结果。如果是则不需要重新解码,否则将会根据之后的语音重新进行解码\upcite{DBLP:conf/naacl/DalviDSV18,DBLP:journals/corr/ChoE16}。第二种思路是动态预测当前时刻是应该继续等待还是开始翻译,这种方式更符合人类进行同传的思路。但是这种策略的难点在于标注每一时刻的决策状态十分耗时且标准难以统一,目前主流的方式是利用强化学习方法\upcite{DBLP:conf/eacl/NeubigCGL17,DBLP:conf/emnlp/GrissomHBMD14},对句子进行不同决策方案采样,最终学到最优的决策方案。此外,还有一些工作设计不同的学习策略\upcite{DBLP:conf/acl/ZhengLZMLH20,DBLP:conf/emnlp/ZhengZMH19,DBLP:conf/acl/ZhengZMH19}或改进注意力机制\upcite{DBLP:conf/acl/ArivazhaganCMCY19}以提升机器同声传译的性能。
\parinterval 在篇章级翻译方面,一些研究工作对这类模型的上下文建模能力进行了探索\upcite{DBLP:conf/discomt/KimTN19,DBLP:conf/acl/LiLWJXZLL20},发现模型性能在小数据集上的BLEU提升并不完全来自于上下文信息的利用。同时,受限于数据规模,篇章级翻译模型相对难以训练。一些研究人员通过调整训练策略来帮助模型更容易捕获上下文信息\upcite{DBLP:journals/corr/abs-1903-04715,DBLP:conf/acl/SaundersSB20,DBLP:conf/mtsummit/StojanovskiF19}。除了训练策略的调整,也可以使用数据增强\upcite{DBLP:conf/discomt/SugiyamaY19}和预训练\upcite{DBLP:journals/corr/abs-1911-03110,DBLP:journals/tacl/LiuGGLEGLZ20}的手段来缓解数据稀缺的问题。此外,区别于传统的篇章级翻译,一些对话翻译也需要使用长距离上下文信息\upcite{DBLP:conf/wmt/MarufMH18}
\vspace{0.5em}
\item 在篇章级翻译方面,一些研究工作对这类模型的上下文建模能力进行了探索\upcite{DBLP:conf/discomt/KimTN19,DBLP:conf/acl/LiLWJXZLL20},发现模型性能在小数据集上的BLEU提升并不完全来自于上下文信息的利用。同时,受限于数据规模,篇章级翻译模型相对难以训练。一些研究人员通过调整训练策略来帮助模型更容易捕获上下文信息\upcite{DBLP:journals/corr/abs-1903-04715,DBLP:conf/acl/SaundersSB20,DBLP:conf/mtsummit/StojanovskiF19}。除了训练策略的调整,也可以使用数据增强和预训练的手段来缓解数据稀缺的问题\upcite{DBLP:conf/discomt/SugiyamaY19,DBLP:journals/corr/abs-1911-03110,DBLP:journals/tacl/LiuGGLEGLZ20}。此外,区别于传统的篇章级翻译,一些对话翻译也需要使用长距离上下文信息\upcite{DBLP:conf/wmt/MarufMH18}
\parinterval 最近,多模态机器翻译、图像描述、视觉问答\upcite{DBLP:conf/iccv/AntolALMBZP15}(Visual Question Answering)等多模态任务受到人工智能领域的广泛关注。如何将多个模态的信息充分融合,是研究多模态任务的重要问题。在自然语言处理领域transformer\upcite{vaswani2017attention}框架的提出后,被应用到计算机视觉\upcite{DBLP:conf/eccv/CarionMSUKZ20}、多模态任务\upcite{DBLP:conf/acl/YaoW20,DBLP:journals/tcsv/YuLYH20,Huasong2020SelfAdaptiveNM}效果也有显著的提升。另外,数据稀缺是多模态任务受限之处,可以采取数据增强\upcite{DBLP:conf/emnlp/GokhaleBBY20,DBLP:conf/eccv/Tang0ZWY20}的方式缓解。但是,这时仍需要回答在:模型没有充分训练时,图像等模态信息究竟在翻译里发挥了多少作用?类似的问题在篇章级机器翻译中也存在,上下文模型在训练数据量很小的时候对翻译的作用十分微弱(引用李北ACL)。因此,也有必要探究究竟图像等上下文信息如何可以更有效地发挥作用。此外,受到预训练模型的启发,在多模态领域,图像和文本联合预训练\upcite{DBLP:conf/eccv/Li0LZHZWH0WCG20,DBLP:conf/aaai/ZhouPZHCG20,DBLP:conf/iclr/SuZCLLWD20}的工作也相继开展,利用transformer框架,通过自注意力机制捕捉图像和文本的隐藏对齐,提升模型性能,同时缓解数据稀缺问题。
\vspace{0.5em}
\item 此外,多模态机器翻译、图像描述、视觉问答等多模态任务受到广泛关注。如何将多个模态的信息充分融合,是研究多模态任务的重要问题。另外,数据稀缺是大多数多模态任务的瓶颈之一,可以采取数据增强\upcite{DBLP:conf/emnlp/GokhaleBBY20,DBLP:conf/eccv/Tang0ZWY20}的方式缓解。但是,这时仍需要回答在:模型没有充分训练时,图像等模态信息究竟在翻译里发挥了多少作用?类似的问题在篇章级机器翻译中也存在,上下文模型在训练数据量很小的时候对翻译的作用十分微弱\upcite{DBLP:conf/acl/LiLWJXZLL20}。此外,受到预训练模型的启发,在多模态领域,图像和文本联合预训练\upcite{DBLP:conf/eccv/Li0LZHZWH0WCG20,DBLP:conf/aaai/ZhouPZHCG20,DBLP:conf/iclr/SuZCLLWD20}的工作也相继开展。
\vspace{0.5em}
\end{itemize}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论