Commit 5ce55d6b by 曹润柘

合并分支 'caorunzhe' 到 'master'

Caorunzhe

查看合并请求 !637
parents fb3ffad9 e552711b
......@@ -83,7 +83,7 @@
\subsection{子词}
\parinterval 一种解决开放词表翻译问题的方法是改造输出层结构\upcite{garcia-martinez2016factored,DBLP:conf/acl/JeanCMB15},比如,替换原始的Softmax层,用更加高效的神经网络结构进行超大规模词表上的预测。不过这类方法往往需要对系统进行修改,由于模型结构和训练方法的调整使得系统开发与调试的工作量增加。而且这类方法仍然无法解决OOV问题。因此在实用系统中并不常用。
\parinterval 一种解决开放词表翻译问题的方法是改造输出层结构\upcite{garcia-martinez2016factored,DBLP:conf/acl/JeanCMB15},比如,替换原始的Softmax层,用更加高效的神经网络结构进行超大规模词表上的预测。不过这类方法往往需要对系统进行修改,由于模型结构和训练方法的调整使得系统开发与调试的工作量增加。但是这类方法仍然无法解决OOV问题。因此在实用系统中并不常用。
\parinterval 另一种思路是不改变机器翻译系统,而是从数据处理的角度来缓解OOV问题。既然使用单词会带来数据稀疏问题,那么自然会想到使用更小的单元。比如,把字符作为最小的翻译单元 \footnote{中文中字符可以被看作是汉字。} \ \dash \ 也就是基于字符的翻译模型\upcite{DBLP:journals/tacl/LeeCH17}。以英文为例,只需要构造一个包含26个英文字母、数字和一些特殊符号的字符表,便可以表示所有的单词。
......@@ -106,13 +106,13 @@
\vspace{0.5em}
\item 对原始数据进行分词操作;
\vspace{0.5em}
\item 构建子词词表;
\item 构建符号合并表;
\vspace{0.5em}
\item 通过子词词表重新对数据中的单词进行切分
\item 通过合并表,将按字符切分的单词合并为字词组合
\vspace{0.5em}
\end{itemize}
\parinterval 这里面的核心是如何构建子词词表,下面对一些典型方法进行介绍。
\parinterval 这里面的核心是如何构建符号合并表,下面对一些典型方法进行介绍。
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
......@@ -120,7 +120,7 @@
\subsection{双字节编码(BPE)}
\parinterval {\small\bfnew{字节对编码}}\index{字节对编码}{\small\bfnew{双字节编码}}\index{双字节编码}(Byte Pair Encoding,BPE)\index{Byte Pair Encoding,BPE}是一种常用的子词词表构建方法\upcite{DBLP:conf/acl/SennrichHB16a}。BPE方法最早用于数据压缩,该方法将数据中常见的连续字符串替换为一个不存在的字符,之后通过构建一个替换关系的对应表,对压缩后的数据进行还原。机器翻译借用了这种思想,把子词切分看作是学习对自然语言句子进行压缩编码表示的问题\upcite{Gage1994ANA}。其目的是,保证编码后的结果(即子词切分)占用的字节尽可能少。这样,子词单元会尽可能被不同单词复用,同时又不会因为使用过小的单元造成子词切分序列过长。使用BPE算法构建子词词表可以分为如下几个步骤:
\parinterval {\small\bfnew{字节对编码}}\index{字节对编码}{\small\bfnew{双字节编码}}\index{双字节编码}(Byte Pair Encoding,BPE)\index{Byte Pair Encoding,BPE}是一种常用的子词词表构建方法\upcite{DBLP:conf/acl/SennrichHB16a}。BPE方法最早用于数据压缩,该方法将数据中常见的连续字符串替换为一个不存在的字符,之后通过构建一个替换关系的对应表,对压缩后的数据进行还原。机器翻译借用了这种思想,把子词切分看作是学习对自然语言句子进行压缩编码表示的问题\upcite{Gage1994ANA}。其目的是,保证编码后的结果(即子词切分)占用的字节尽可能少。这样,子词单元会尽可能被不同单词复用,同时又不会因为使用过小的单元造成子词切分序列过长。使用BPE算法构建符号合并表可以分为如下几个步骤:
\begin{itemize}
\vspace{0.5em}
......@@ -143,19 +143,9 @@
%----------------------------------------------
\end{itemize}
\parinterval\ref{fig:7-9}给出了BPE算法执行的实例。在执行合并操作时,需要考虑不同的情况。假设词表中存在子词``ab''和``cd'',此时要加入子词``abcd''。可能会出现如下的情况:
\parinterval\ref{fig:7-9}给出了BPE算法执行的实例。其中预先设定的合并表的大小为10
\begin{itemize}
\vspace{0.5em}
\item 若``ab''、``cd''、``abcd''完全独立,彼此的出现互不影响,将``abcd''加入词表,词表数目$+1$
\vspace{0.5em}
\item 若``ab''和``cd''必同时出现则词表中加入``abcd'',去除``ab''和``cd'',词表数目$-1$。这个操作是为了较少词表中的冗余;
\vspace{0.5em}
\item 若出现``ab'',其后必出现``cd'',但是``cd''却可以作为独立的子词出现,则将``abcd''加入词表,去除``ab'',反之亦然,词表数目不变。
\vspace{0.5em}
\end{itemize}
\parinterval 在得到了子词词表后,便需要对单词进行切分。BPE要求从较长的子词开始替换。首先,对子词词表按照字符长度从大到小进行排序。然后,对于每个单词,遍历子词词表,判断每个子词是不是当前词的子串,若是则进行替换切分。将单词中所有的子串替换为子词后,如果仍有子串未被替换,则将其用<UNK>代替,如图\ref{fig:7-10}
\parinterval 在得到了符号合并表后,便需要对用字符表示的单词进行合并,得到以子词形式表示的文本。首先,将单词切分为以字符表示的符号序列,并在尾部加上终结符。然后按照符号合并表的顺序依次遍历,如果存在相同的2-gram符号组合,则对其进行合并,直至遍历结束。图1.4给出了一个使用字符合并表对单词进行子词切分的实例。红色单元为每次合并后得到的新符号,直至无法合并,或遍历结束,得到最终的合并结果。其中每一个单元为一个子词,如图\ref{fig:7-10}{\red{图有问题}}
%----------------------------------------------
\begin{figure}[htp]
......@@ -168,7 +158,7 @@
\parinterval 由于模型的输出也是子词序列,因此需要对最终得到的翻译结果进行子词还原,即将子词形式表达的单元重新组合为原本的单词。这一步操作也十分简单,只需要不断的将每个子词向后合并,直至遇到表示单词边界的结束符<e>,便得到了一个完整的单词。
\parinterval 使用BPE方法的策略有很多。不仅可以单独对源语言和目标语言进行子词的切分,也可以联合源语言和目标语言,共同进行子词切分,被称作Joint-BPE\upcite{DBLP:conf/acl/SennrichHB16a}。单语BPE比较简单直接,而Joint-BPE则可以增加两种语言子词切分的一致性。对于相似语系中的语言,如英语和德语,常使用Joint-BPE的方法联合构建词表。而对于中英这些差异比较大的语种,则需要独立的进行子词切分。
\parinterval 使用BPE方法的策略有很多。不仅可以单独对源语言和目标语言进行子词的切分,也可以联合源语言和目标语言,共同进行子词切分,被称作Joint-BPE\upcite{DBLP:conf/acl/SennrichHB16a}。单语BPE比较简单直接,而Joint-BPE则可以增加两种语言子词切分的一致性。对于相似语系中的语言,如英语和德语,常使用Joint-BPE的方法联合构建词表。而对于中英这些差异比较大的语种,则需要独立的进行子词切分。使用子词表示句子的方法可以有效的平衡词汇量,增大对未见单词的覆盖度。像英译德、汉译英任务,使用16k或者32k的子词词表大小便能取得很好的效果。
\parinterval BPE还有很多变种方法。在进行子词切分时,BPE从最长的子词开始进行切分。这个启发性规则可以保证切分结果的唯一性,实际上,在对一个单词用同一个子词词表切分时,可能存在多种切分方式,如hello,我们可以分割为``hell''和``o'',也可以分割为``h''和``ello''。这种切分的多样性可以来提高神经机器翻译系统的健壮性\upcite{DBLP:conf/acl/Kudo18}。而在T5等预训练模型中\upcite{DBLP:journals/jmlr/RaffelSRLNMZLL20}则使用了基于字符级别的BPE。此外,尽管BPE被命名为字节对编码,实际上一般处理的是Unicode编码,而不是字节。在预训练模型GPT2中,也探索了字节级别的BPE,在机器翻译、问答等任务中取得了很好的效果\upcite{radford2019language}
......@@ -178,11 +168,21 @@
\subsection{其他方法}
\parinterval 与基于统计的BPE算法不同,基于Word Piece和1-gram Language Model(ULM)的方法则是利用语言模型进行子词词表的构造\upcite{DBLP:conf/acl/Kudo18}。本质上,基于语言模型的方法和基于BPE的方法的思路是一样的,即通过合并字符和子词不断生成新的子词。它们的区别仅在于合并子词的方式不同。基于BPE的方法选择出现频次最高的连续字符2-gram合并为新的子词,而基于语言模型的方法则是根据语言模型输出的概率选择要合并哪些子词
\parinterval 与基于统计的BPE算法不同,基于Word Piece的子词切分方法则是利用语言模型进行子词词表的构造{\red(Word piece 论文找一下)}。本质上,基于语言模型的方法和基于BPE的方法的思路是一样的,即通过合并字符和子词不断生成新的子词。它们的区别仅在于合并子词的方式不同。基于BPE的方法选择出现频次最高的连续字符2-gram合并为新的子词,而基于语言模型的方法则是根据语言模型输出的概率选择要合并哪些子词。具体来说,基于Word Piece的方法首先将句子切割为字符表示的形式\upcite{DBLP:conf/icassp/SchusterN12},并利用该数据训练一个1-gram语言模型,记为$\textrm{log}\funp{P}(\cdot)$。假设两个相邻的子词单元$a$$b$被合并为新的子词$c$,则整个句子的语言模型得分的变化为$\triangle=\textrm{log}\funp{P}(c)-\textrm{log}\funp{P}(a)-\textrm{log}\funp{P}(b)$。这样,可以不断的选择使$\triangle$最大的两个子词单元进行合并,直到达到预设的词表大小或者句子概率的增量低于某个阈值
\parinterval 具体来说,基于Word Piece的方法首先将句子切割为字符表示的形式\upcite{DBLP:conf/icassp/SchusterN12},并利用该数据训练一个1-gram语言模型,记为$\textrm{logP}(\cdot)$。假设两个相邻的子词单元$a$$b$被合并为新的子词$c$,则整个句子的语言模型得分的变化为$\triangle=\textrm{logP}(c)-\textrm{logP}(a)-\textrm{logP}(b)$。这样,可以不断的选择使$\triangle$最大的两个子词单元进行合并,直到达到预设的词表大小或者句子概率的增量低于某个阈值。而ULM方法以最大化整个句子的概率为目标构建词表\upcite{DBLP:conf/acl/Kudo18},具体实现上也不同于基于Word Piece的方法,这里不做详细介绍
\parinterval 目前比较主流的子词切分方法都是作用于分词后的序列,对一些没有明显词边界且资源稀缺的语种并不友好。相比之下,SentencePiece可以作用于未经过分词处理的输入序列{\red (SentencePiece: A simple and language independent subword tokenizer and detokenizer for Neural Text Processing)},同时囊括了双字节编码和语言模型的子词切分方法,更加灵活易用
\parinterval 使用子词表示句子的方法可以有效的平衡词汇量,增大对未见单词的覆盖度。像英译德、汉译英任务,使用16k或者32k的子词词表大小便能取得很好的效果。
\parinterval 通过上述子词切分方法,可以缓解OOV的问题,允许模型利用到一些词法上的信息。然而主流的BPE子词切分方法中,每个单词都对应唯一的子词切分方式,因此输入的数据经过子词切分后的序列表示也是唯一的。在给定词表的情况下,每句话仍然存在多种切分方式。而经过现有BPE处理后的序列,模型只能接收到单一的表示,可能会阻止模型更好地学习词的组成,不能充分利用单词中的形态学特征。此外,针对切分错误的输入数据表现不够鲁棒,常常会导致整句话的翻译效果极差。为此,研究人员提出一些正则化方法{\red (Subword regularization: Improving neural network translation models with multiple subword candidates;BPE-Dropout: Simple and Effective Subword Regularization)}
\begin{itemize}
\vspace{0.5em}
\item 子词正则化方法\upcite{DBLP:conf/acl/Kudo18}。其思想是在训练过程中扰乱确定的子词边界,根据1-gram Language Model{\red (ULM)}采样出多种子词切分候选。通过最大化整个句子的概率为目标构建词表,具体实现上与上述基于Word Piece的方法略有不同,这里不做详细介绍。
\vspace{0.5em}
\item BPE-Dropout{\red (BPE-Dropout:Simple and Effective Subword Regularization)}。在训练时,通过在合并过程中按照一定概率$p${\red(这个p能不能改成P)}(介于0与1之间)随机丢弃一些可行的合并操作,从而产生不同的子词切分结果,进而增强模型健壮性。而在推断阶段,将p设置为0,等同于标准的BPE。总的来说,上述方法相当于在子词的粒度上对输入的序列进行扰动,进而达到鲁棒性训练的目的。在之后的小节中同样会针对鲁棒性训练进行详细介绍。
\vspace{0.5em}
\item DPE{\red (Dynamic Programming Encoding for Subword Segmentation in Neural Machine Translation )}。引入了混合字符-子词的切分方式,将句子的子词分割方式看作一种潜变量,该结构能够利用{\small\bfnew{动态规划}}\index{动态规划}(Dynamic Programming)\index{Dynamic Programming}思想精确地将潜在的子字片段边缘化。解码端的输入是基于字符表示的目标语序列,推断时将每个时间步的输出映射到预先设定好的子词词表之上,得到当前最可能得子词结果。若当前子词长度为$m$,则接下来的$m$个时间步的输入为该子词,并在$m$个时间步后得到下一个切分的子词。
\vspace{0.5em}
\end{itemize}
%----------------------------------------------------------------------------------------
% NEW SECTION
......@@ -193,7 +193,7 @@
\parinterval {\small\bfnew{正则化}}\index{正则化}(Regularization)\index{Regularization}是机器学习中的经典技术,通常用于缓解{\small\bfnew{过拟合问题}}\index{过拟合问题}(The Overfitting Problem)\index{Overfitting Problem}。正则化的概念源自线性代数和代数几何。在实践中,它更多的是指对{\small\bfnew{反问题}}\index{反问题}(The Inverse Problem)\index{Inverse Problem}的一种求解方式。假设输入$x$和输出$y$之间存在一种映射$f$
\begin{eqnarray}
y = f(x)
y &=& f(x)
\label{eq:13-1}
\end{eqnarray}
......@@ -224,7 +224,7 @@ y = f(x)
\parinterval 正则化的一种实现是在训练目标中引入一个正则项。在神经机器翻译中,引入正则项的训练目标为:
\begin{eqnarray}
\widehat{\mathbf{w}}=\argmax_{\mathbf{w}}L(\mathbf{w}) + \lambda R(\mathbf{w})
\widehat{\mathbf{w}} &=& \argmax_{\mathbf{w}}L(\mathbf{w}) + \lambda R(\mathbf{w})
\label{eq:13-2}
\end{eqnarray}
......@@ -268,7 +268,7 @@ R(\mathbf{w}) & = & (\big| |\mathbf{w}| {\big|}_2)^2 \\
\parinterval {\small\bfnew{标签平滑}}\index{标签平滑}(Label Smoothing)\index{Label Smoothing}的思想很简单\upcite{Szegedy_2016_CVPR}:答案所对应的单词不应该``独享''所有的概率,其它单词应该有机会作为答案。这个观点与第二章中语言模型的平滑非常类似。在复杂模型的参数估计中,往往需要给未见或者低频事件分配一些概率,以保证模型具有更好的泛化能力。具体实现时,标签平滑使用了一个额外的分布$q$,它是在词汇表$V$ 上的一个均匀分布,即$q(k)=\frac{1}{|V|}$,其中$q(k)$表示分布的第$k$维。然后,答案分布被重新定义为$\tilde{y}_j$$q$的线性插值:
\begin{eqnarray}
y_{j}^{ls}=(1-\alpha) \cdot \tilde{y}_j + \alpha \cdot q
y_{j}^{ls} &=& (1-\alpha) \cdot \tilde{y}_j + \alpha \cdot q
\label{eq:13-5}
\end{eqnarray}
......@@ -535,24 +535,133 @@ y_{j}^{ls}=(1-\alpha) \cdot \tilde{y}_j + \alpha \cdot q
\sectionnewpage
\section{对抗样本训练}
\parinterval 同其它基于神经网络的方法一样,提高{\small\bfnew{鲁棒性}}\index{鲁棒性}(Robustness)\index{Robustness}也是神经机器翻译研发中需要关注的。比如,大容量模型可以很好的拟合训练数据,但是当测试样本与训练样本差异较大时,会导致很糟糕的翻译结果\upcite{JMLR:v15:srivastava14a,DBLP:conf/amta/MullerRS20}。另一方面,实践中也发现,有些情况下即使输入中有微小的扰动,神经网络模型的输出也会产生巨大变化。或者说,神经网络模型在输入样本上容易受到{\small\bfnew{攻击}}\index{攻击}(Attack)\index{Attack}\upcite{DBLP:conf/sp/Carlini017,DBLP:conf/cvpr/Moosavi-Dezfooli16,DBLP:conf/acl/ChengJM19}。图\ref{fig:13-19}展示了一个神经机器翻译系统的结果,可以看到,输入中把单词“他”换成“她”会造成完全不同的译文。这时神经机器翻译系统就存在鲁棒性问题。
%----------------------------------------------
\begin{figure}[htp]
\centering
\includegraphics[scale=0.5]{./Chapter13/Figures/figure-example-of-neural-machine-translation.png}
\caption{神经机器翻译实例}
\label{fig:13-19}
\end{figure}
%----------------------------------------------
\parinterval 决定神经网络模型鲁棒性的因素主要包括训练数据、网络结构、正则化方法等。仅仅从网络结构设计和训练算法优化的角度来改善鲁棒性一般是较为困难的,因为如果输入数据是“干净”的,模型就会学习在这样的数据上进行预测。无论模型的能力是强还是弱,当推断时输入数据出现扰动的时候,模型可能无法适应,因为它从未见过这种新的数据。因此,一种简单直接的方法是从训练样本出发,让模型在学习的过程中能对样本中的扰动进行处理,进而在推断时具有更强的鲁棒性。具体来说,可以在训练过程中构造有噪声的样本,即基于{\small\bfnew{对抗样本}}\index{对抗样本}(Adversarial Examples)\index{Adversarial Examples}进行{\small\bfnew{对抗训练}}\index{对抗训练}(Adversarial Training)\index{Adversarial Training}
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{对抗样本及对抗攻击}
\parinterval 在图像识别领域,研究人员就发现,对于输入图像的细小扰动,如像素变化等,会使模型以高置信度给出错误的预测\upcite{DBLP:conf/cvpr/NguyenYC15,DBLP:journals/corr/SzegedyZSBEGF13,DBLP:journals/corr/GoodfellowSS14},但是这种扰动并不会影响人类的判断。也就是说,样本中的微小变化“欺骗”了图像识别系统,但是“欺骗”不了人类。这种现象背后的原因有很多,例如,一种可能的原因是:系统并没有理解图像,而是在拟合数据,因此拟合能力越强,反而对数据中的微小变化更加敏感。从统计学习的角度看,既然新的数据中可能会有扰动,那更好的学习方式就是在训练中显性地把这种扰动建模出来,让模型对输入的细微变化更加鲁棒。
\parinterval 这种对原样本上增加一些难以察觉的扰动从而使模型的到错误判断的样本,被称为对抗样本。对于输入$\mathbi{x}$和输出$\mathbi{y}$,对抗样本形式上可以被描述为:{\red s.t.的形式再确认一下}
\begin{eqnarray}
\funp{C}(\mathbi{x}) &=& \mathbi{y}
\label{eq:13-6}\\
\funp{C}(\mathbi{x}) &\neq& \mathbi{y}
\label{eq:13-7}\\
\textrm{s.t.} \quad \funp{R}(\mathbi{x},\mathbi{x}') &<& \varepsilon
\label{eq:13-8}
\end{eqnarray}
\noindent 其中,$(\mathbi{x},\mathbi{y})$为原样本,$(\mathbi{x}',\mathbi{y})$为输入中含有扰动的对抗样本,函数$\funp{C}(\cdot)$为模型。公式\eqref{eq:13-8}$\funp{R}(\mathbi{x},\mathbi{x}')$表示扰动后的输入$\mathbi{x}'$和原输入$\mathbi{x}$之间的距离,$\varepsilon$表示扰动的受限范围当模型对包含噪声的数据容易给出较差的结果时,往往意味着模型的抗干扰能力差,因此可以利用对抗样本检测现有模型的鲁棒性\upcite{DBLP:conf/emnlp/JiaL17}。同时,采用类似数据增强的方式将对抗样本混合至训练数据中,能够帮助模型学习到更普适的特征使模型的到稳定的输出,这种方式也被称为对抗训练\upcite{DBLP:journals/corr/GoodfellowSS14,DBLP:conf/emnlp/BekoulisDDD18,DBLP:conf/naacl/YasunagaKR18}
\parinterval 通过对抗样本训练提升模型鲁棒性的首要问题是如何生成对抗样本。通过当前模型$\funp{C}$,和样本$(\mathbi{x},\mathbi{y})$,生成对抗样本的过程,被称为{\small\bfnew{对抗攻击}}\index{对抗攻击}(Adversarial Attack)\index{Adversarial Attack}。对抗攻击可以被分为两种,分别是黑盒攻击和白盒攻击。在白盒攻击中,攻击算法可以访问模型的完整信息,包括模型结构、网络参数、损失函数、激活函数、输入和输出数据等。而黑盒攻击不需要知道神经网络的详细信息,仅仅通过访问模型的输入和输出达到攻击目的,因此 通常依赖启发式方法来生成对抗样本。由于神经网络本身便是一个黑盒模型,研究人员对模型内部的参数干预度有限,因此黑盒攻击在许多实际应用中更加实用。
\parinterval 在神经机器翻译中,输入中细小的扰动经常会使模型变得脆弱\upcite{DBLP:conf/iclr/BelinkovB18}。但是图像和文本之间存在着一定的差异,图像中的对抗攻击方法难以直接应用于自然语言处理领域,这是由于以像素值等表示的图像数据是连续的\upcite{DBLP:conf/naacl/MichelLNP19}{\red (如何理解连续?)},而文本中的一个个单词本身离散的。因此简单替换这些离散的单词,可能会生成语法错误或者语义错误的句子。这时的扰动过大,模型很容易判别,因此无法涵盖原始问题。即使对词嵌入等连续表示部分进行扰动,也会产生无法与词嵌入空间中的任何词匹配的问题\upcite{Gong2018AdversarialTW}。针对这些问题,下面着重介绍神经机器翻译任务中有效的生成和利用对抗样本的方法。
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{基于黑盒攻击的方法}
\parinterval 一个好的对抗样本应该具有一些性质,如:对文本做最少的修改,并最大程度地保留原文的语义。这些可以通过对文本加噪声的方式来来实现,分为自然噪声和人工噪声\upcite{DBLP:conf/iclr/BelinkovB18}。自然噪声一般是指人为的在语料库中收集自然出现的错误,如输入错误,拼写错误等,构建可用的词汇替换表,在文本中加入噪声。人为噪声则可以通过多种方式来处理文本。如可以通过在干净的数据中通过固定的规则或是使用噪声生成器以一定的概率引入不同类型的噪声,如:拼写、表情符号、语法错误等\upcite{DBLP:conf/naacl/VaibhavSSN19,DBLP:conf/naacl/AnastasopoulosL19,DBLP:conf/acl/SinghGR18};此外,也可以在文本中加入精心设计,或毫无意义的单词序列,以此来分散模型的注意,通过不同的算法来确定插入的位置和内容,这种方式常用于阅读理解任务中\upcite{DBLP:conf/emnlp/JiaL17}
\parinterval 除了单纯的在文本中引入各种扰动外,还可以通过文本编辑的方式构建对抗样本,在不改变语义的情况下尽可能的修改文本\upcite{DBLP:journals/corr/SamantaM17,DBLP:conf/ijcai/0002LSBLS18},从而生成对抗样本。文本的编辑方式主要包括交换,插入,替换和删除操作。图\ref{fig:13-20}给出了一些通过上述方式生成的对抗样本。
%----------------------------------------------
\begin{figure}[htp]
\centering
\includegraphics[scale=0.5]{./Chapter13/Figures/figure-true-case-of-adversarial-examples.jpg}
\caption{对抗样本实例{\red(需要让读者真实的感受一下)}}
\label{fig:13-20}
\end{figure}
%----------------------------------------------
\parinterval 形式上可以利用FGSM\upcite{DBLP:journals/corr/GoodfellowSS14}等算法验证文本中每一个单词对语义的贡献度,同时为每一个单词构建其候选池,包括单词的近义词,拼写错误词,同音词等。对于贡献度较低的词如语气词,副词等,可以通过插入,删除操作进行扰动。对于文本序列中其他的单词可以进行在候选池中选择相应的单词进行替换。对于交换操作可以基于词级别交换序列中的单词,也可以是基于字符级的交换单词中的字符\upcite{DBLP:conf/coling/EbrahimiLD18}。重复的进行不同的编辑操作,直至误导模型做出错误的判断。
\parinterval 基于语义的方法除了通过不同的算法进行修改输入生成对抗样本外,也可以通过神经网络模型增加扰动,例如在机器翻译中常用的回译技术也是生成对抗样本的一种有效方式,通过反向模型将目标语言翻译成源语言,并再次应用于神经机器翻译系统的训练。除了翻译模型,语言模型也可以用于生成对抗样本。前面也已经介绍过语言模型可以用于检测句子流畅度,根据上文预测当前位置可能出现的单词,因此可以通过语言模型根据上文预测出当前位置最可能出现的多个单词,与序列中的原本的单词进行替换。在机器翻译任务中,可以通过与神经机器翻译系统联合训练,共享词向量矩阵的方式得到语言模型。{\red (引用)}
\parinterval 此外,生成{\small\bfnew{对抗网络}}\index{对抗网络}(Generative Adversarial Networks\index{Generative Adversarial Networks}, GANs)也可以被用来生成对抗样本\upcite{DBLP:conf/iclr/ZhaoDS18}。与回译方法类似,GAN的方法将原始的输入映射为潜在分布$\funp{P}$,并在其中搜索出服从相同分布的文本构成对抗样本。一些研究正也对这种方法进行了优化\upcite{DBLP:conf/iclr/ZhaoDS18},在稠密的向量空间$z$中进行搜索,也就是说在定义$\funp{P}$的基础稠密向量空间中找到对抗性表示$\mathbi{z}'$,然后利用生成模型将其映射回$\mathbi{x}'$,使最终生成的对抗样本在语义上接近原始输入。{\red(既然GAN不是主流,可以考虑把这部分放到拓展阅读中)}
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{基于白盒攻击的方法}
\parinterval 除了在离散的词汇级别的增加扰动,还可以在模型内部增加扰动。这里简单介绍一下利用白盒攻击方法增加模型鲁棒性的方法:
\begin{itemize}
\vspace{0.5em}
\item 与利用词向量的余弦相似度选择近义词对当前词进行替换类似,可以对于每一个词都在其词嵌入表示的基础上累加了一个从正太分布,之后将其作为模型的最终输入。同时,可以在训练目标中增加额外的训练目标,比如,迫使模型在接收到被扰动的输入后,编码端生成与正常输入类似的表示,解码端输出正确的翻译结果\upcite{DBLP:conf/acl/LiuTMCZ18}
\vspace{0.5em}
\item 除了引入标准的噪声外,还可以根据模型所存在的具体问题, 构建不同的扰动。例如,针对输入中包含同音字错误导致模型输出误差较大的问题,可以将单词的发音转换为一个包含$n$个发音单元,如音素,音节等的发音序列,并训练相应的嵌入矩阵将每一个发音单元转换为对应的向量表示。对发音序列中的发音单元的嵌入表示进行平均后,得到当前单词的发音表示。最后将词嵌入与单词的发音表示,加权求和后的结果作为模型的输入\upcite{DBLP:conf/acl/LiuMHXH19}。通过这种方式可以提高模型对同音异形词的鲁棒性,得到更准确的翻译结果。此外除了在词嵌入层增加扰动,同样有研究人员证明了,在端到端模型的中的编码端输出中引入额外的噪声,能起到与在层输入中增加扰动生成对抗样本进行对抗训练类似的效果,增强了模型训练的鲁棒性\upcite{DBLP:conf/acl/LiLWJXZLL20}
\vspace{0.5em}
\item 此外还有一类基于梯度的方法来生成对抗样本进行对抗性训练。例如,可以通过最大化替换词与原始单词词向量之间的差值和候选词的梯度向量之间的相似度来生成对抗样本\upcite{DBLP:conf/acl/ChengJM19},具体的计算方式如下:{\red 下面的是sin还是sim,而且文字中是正弦把?下面三角是不是delta}
\begin{eqnarray}
{\mathbi{x}'}_i &=& \arg\max_{\mathbi{x}\in \nu_{\mathbi{x}}}\textrm{sim}(\funp{e}(\mathbi{x})-\funp{e}(\mathbi{x}_i),\mathbi{g}_{\mathbi{x}_i})
\label{eq:13-9} \\
\mathbi{g}_{\mathbi{x}_i} &=& \Delta_{\funp{e}(\mathbi{x}_i)} - \log \funp{P}(\mathbi{y}|\mathbi{x};\theta)
\label{eq:13-10}
\end{eqnarray}
\noindent 其中,$\mathbi{x}_i$为输入中第$i$个词,$\mathbi{g}_{\mathbi{x}_i}$为对应的梯度向量,$\funp{e}(\cdot)$用于获取词向量,$\textrm{sim}(\cdot,\cdot)$用于评估两个向量之间的余弦距离{\red(很多符号没有解释,$_(e(x_i))$是什么?等等)}$\nu_{\mathbi{x}}$为源语的词表,但是由于对词表中所有单词进行枚举,计算成本较大,因此利用语言模型选择最可能的$n$个词作为候选,进而缩减匹配范围,通过此方式对采样出的源语词进行替换。同时为了保护模型不受解码器预测误差的影响,对模型目标端的输入同样做了调整,方法与源语端类似,不同的地方在于将公式\eqref{eq:13-10}中的损失替换为$- \log \funp{P}(\mathbi{y}|\mathbi{x}')$,利用语言模型选择候选和采样的方式也做出了相应的调整。在进行对抗性训练时,在原有的训练损失上增加了三个额外的损失,最终的训练目标为:
\begin{eqnarray}
Loss(\theta_{\textrm{mt}},\theta_{\textrm{lm}}^{\mathbi{x}},\theta_{\textrm{lm}}^{\mathbi{y}}) &=& Loss_{\textrm{clean}}(\theta_{\textrm{mt}}) + Loss_{\textrm{lm}}(\theta_{\textrm{lm}}^{\mathbi{x}}) + \nonumber \\
& & Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) + Loss_{\textrm{lm}}(\theta_{\textrm{lm}}^{\mathbi{y}})
\label{eq:13-11}
\end{eqnarray}
\noindent 其中分别$Loss_{\textrm{clean}}(\theta_{\textrm{mt}})$为正常情况下的损失,$Loss_{\textrm{lm}}(\theta_{\textrm{lm}}^{\mathbi{x}})$$Loss_{\textrm{lm}}(\theta_{\textrm{lm}}^{\mathbi{y}})$生成对抗样本所用到的源语言与目标语言语言模型的损失,$Loss_{\textrm{robust}}(\theta_{\textrm{mt}})$是以对源语言和目标端做出修改后得到的对抗样本作为输入,原始的目标语作为答案计算得到的损失,其具体形式如下:
\begin{eqnarray}
Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{\textrm{S}}\sum_{(\mathbi{x},\mathbi{y}\in \textrm{S})}-\log \funp{P}(\mathbi{y}|\mathbi{x}',\mathbi{z}';\theta_{\textrm{mt}})
\label{eq:13-11}
\end{eqnarray}
\noindent 这里$\textrm{S}$代表整体的语料库。通过上述方式达到对抗训练的目的。
\vspace{0.5em}
\end{itemize}
\parinterval 不论是黑盒方法还是白盒方法,本质上都是通过增加噪声使得模型训练更加健壮。类似的思想在很多机器学习方法都有体现,比如,最大熵模型中使用高斯噪声就是常用的增加模型健壮性的手段之一\upcite{chen1999gaussian}{\red 这篇文章再找一下}。而在深度学习时代下,对抗训练将问题定义为:有意识地构造系统容易出错的样本,进而更加有效的增加系统抗干扰的能力。
%----------------------------------------------------------------------------------------
% NEW SECTION
%----------------------------------------------------------------------------------------
\sectionnewpage
\section{最小风险训练}
\section{高级模型训练技术}
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{增强学习方法}
\subsection{极大似然估计的问题}
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{非teacher-forcing方法}
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{曝光偏置问题}
\subsection{增强学习方法}
%----------------------------------------------------------------------------------------
% NEW SECTION
......@@ -683,3 +792,7 @@ L_{\textrm{seq}} = - \textrm{logP}_{\textrm{s}}(\hat{\mathbf{y}} | \mathbf{x})
\sectionnewpage
\section{小结及深入阅读}
\parinterval 对抗样本除了用于提高模型的鲁棒性之外,还有很多其他的应用场景。其中最主要的便是用于评估模型。通过构建由对抗样本构造的数据集,可以验证模型对于不同类型噪声鲁棒性\upcite{DBLP:conf/emnlp/MichelN18}。正是由于对抗样本在检测和提高模型鲁棒性具有明显的效果,因此很多的研究人员在针对不同的任务提出了很多有效的方法。但是在生成对抗样本时常常要注意或考虑很多问题,比如扰动是否足够细微,在人类难以察觉的同时做到欺骗模型的目的,对抗样本在不同的模型结构或数据集上是否具有足够的泛化能力。生成的方法是否足够高效等等。
......@@ -744,14 +744,16 @@ P(\mathbi{y}|\mathbi{x}) & = & \frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\
\label{fig:16-19}
\end{figure}
%----------------------------------------------
\begin{itemize}
\vspace{0.5em}
\item {\small\bfnew{模型参数初始化}}。无监督神经机器翻译的关键在于如何提供最开始的监督信号,从而启动后续的迭代流程。无监督词典归纳已经可以提供一些可靠的监督信号,那么如何在模型初始化中融入这些信息?既然神经机器翻译模型都使用词嵌入层作为输入,而无监督词典归纳总是先把两个语言各自的单语词嵌入映射到一个空间后才归纳双语词典,那么可以使用这些映射后的词嵌入来初始化模型的词嵌入层,然后在这个基础上训练模型,因为这些映射后的词嵌入天然就包含了大量的监督信号,比如,两个语言里意思相近的词对应的词嵌入会比其他词更靠近对方\upcite{DBLP:journals/ipm/FarhanTAJATT20}。 为了防止训练过程中模型参数的更新会破坏词嵌入当中的词对齐信息,通常初始化后会固定模型的词嵌入层不让其更新\upcite{DBLP:conf/emnlp/ArtetxeLA18}
\noindent{\small\bfnew{1)模型参数初始化}}
\parinterval 无监督神经机器翻译的关键在于如何提供最开始的监督信号,从而启动后续的迭代流程。无监督词典归纳已经可以提供一些可靠的监督信号,那么如何在模型初始化中融入这些信息?既然神经机器翻译模型都使用词嵌入层作为输入,而无监督词典归纳总是先把两个语言各自的单语词嵌入映射到一个空间后才归纳双语词典,那么可以使用这些映射后的词嵌入来初始化模型的词嵌入层,然后在这个基础上训练模型,因为这些映射后的词嵌入天然就包含了大量的监督信号,比如,两个语言里意思相近的词对应的词嵌入会比其他词更靠近对方\upcite{DBLP:journals/ipm/FarhanTAJATT20}。 为了防止训练过程中模型参数的更新会破坏词嵌入当中的词对齐信息,通常初始化后会固定模型的词嵌入层不让其更新\upcite{DBLP:conf/emnlp/ArtetxeLA18}
\parinterval 进一步,无监督神经机器翻译能在提供更少监督信号的情况下启动,也就是可以去除无监督词典归纳这一步骤\upcite{DBLP:conf/nips/ConneauL19}。这时候模型的初始化直接使用共享词表的预训练模型的参数作为起始点。这个预训练模型直接使用前面提到的预训练方法(如MASS)进行训练,区别在于模型的大小如宽度和深度需要严格匹配翻译模型。此外,这个模型不仅仅只在一个语言的单语数据上进行训练,而是同时在两个语言的单语数据上进行训练,并且两个语言的词表进行共享。前面提到,在共享词表特别是共享子词词表的情况下,已经隐式地告诉模型源语言和目标语言里一样的(子)词互为翻译,相当于模型使用了少量的监督信号。在这基础上使用两个语言的单语数据进行预训练,则通过模型共享进一步挖掘了语言之间共通的部分。因此,使用预训练模型进行初始化后,无监督神经机器翻译模型已经得到大量的监督信号,从而得以不断通过优化来提升模型性能。
\vspace{0.5em}
\item {\small\bfnew{语言模型的使用}}。无监督神经机器翻译的一个重要部分就是来自语言模型的目标函数。因为翻译模型本质上是在完成文本生成任务,所以只有文本生成类型的语言模型建模方法才可以应用到无监督神经机器翻译里。比如,经典的给定前文预测下一词就是一个典型的自回归生成任务(见{\chaptertwo}),因此可以运用到无监督神经机器翻译里。但是,目前在预训练里流行的BERT等模型是掩码语言模型\upcite{devlin2019bert},就不能直接在无监督神经翻译里使用。
\noindent{\small\bfnew{2)语言模型的使用}}
\parinterval 无监督神经机器翻译的一个重要部分就是来自语言模型的目标函数。因为翻译模型本质上是在完成文本生成任务,所以只有文本生成类型的语言模型建模方法才可以应用到无监督神经机器翻译里。比如,经典的给定前文预测下一词就是一个典型的自回归生成任务(见{\chaptertwo}),因此可以运用到无监督神经机器翻译里。但是,目前在预训练里流行的BERT等模型是掩码语言模型\upcite{devlin2019bert},就不能直接在无监督神经翻译里使用。
\parinterval 另外一个在无监督神经机器翻译中比较常见的语言模型目标函数则是降噪自编码器。它也是文本生成类型的语言模型建模方法。对于一个句子$\seq{x}$,首先使用一个噪声函数$\seq{x}^{'}=\mathrm{noise}(\seq{x})$ 来对$\seq{x}$注入噪声,产生一个质量较差的句子$\seq{x}^{'}$。然后,让模型学习如何从$\seq{x}^{'}$还原出$\seq{x}$。这样一个目标函数比预测下一词更贴近翻译任务,因为它是一个序列到序列的映射,并且输入、输出两个序列在语义上是等价的。这里之所以采用$\seq{x}^{'}$而不是$\seq{x}$自己来预测$\seq{x}$,是因为模型可以通过简单的复制输入作为输出来完成从$\seq{x}$预测$\seq{x}$的任务,并且在输入中注入噪声会让模型更加健壮,因此模型可以通过训练集数据学会如何利用句子中噪声以外的信息来忽略其中噪声并得到正确的输出。通常来说,噪声函数$\mathrm{noise}$有三种形式,如表\ref{tab:16-1}所示。
%----------------------------------------------
......@@ -770,8 +772,7 @@ P(\mathbi{y}|\mathbi{x}) & = & \frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\
%----------------------------------------------
\parinterval 实际当中三种形式的噪声函数都会被使用到,其中在交换方法中越相近的词越容易被交换,并且保证被交换的词的对数有限,而删除和空白方法里词的删除和替换概率通常都非常低,如$0.1$等。
\vspace{0.5em}
\end{itemize}
%----------------------------------------------------------------------------------------
% NEW SECTION 16.5
%----------------------------------------------------------------------------------------
......
......@@ -230,27 +230,187 @@
\parinterval 此外,研究人员们还探索了很多其他方法来提高语音翻译模型的性能。利用在海量的无标注语音数据上预训练的{\small\bfnew{自监督}}\index{自监督}(Self-supervised)\index{Self-supervised}模型作为一个特征提取器,将从语音中提取的特征作为语音翻译模型的输入,可以有效提高模型的性能\upcite{DBLP:conf/interspeech/WuWPG20}。相比语音翻译模型,文本翻译模型任务更加简单,因此一种思想是利用文本翻译模型来指导语音翻译模型,比如通过知识蒸馏\upcite{DBLP:conf/interspeech/LiuXZHWWZ19}、正则化\upcite{DBLP:conf/emnlp/AlinejadS20}等方法。为了简化语音翻译模型的学习,可以通过课程学习的策略,使模型从语音识别任务,逐渐过渡到语音翻译任务,这种由易到难的训练策略可以使模型训练更加充分\upcite{DBLP:journals/corr/abs-1802-06003,DBLP:conf/acl/WangWLZY20}
%----------------------------------------------------------------------------------------
% NEW SECTION
%----------------------------------------------------------------------------------------
\section{图像翻译}
\parinterval 人类所接受的信息中视觉信息的比重往往不亚于语言信息,甚至更多。视觉信息通常以图像的形式存在,近几年,结合图像的多模态机器翻译任务受到了广泛的研究。多模态机器翻译(图a)简单来说就是结合源语言和其他模态(例如图像等)的信息生成目标语言的过程。这种结合图像的机器翻译还是一种狭义上的“翻译”,它本质上还是从源语言到目标语言或者说从文本到文本的翻译。那么从图像到文本上(图b)的转换,例如,{\small\bfnew{图片描述生成}}\index{图片描述生成}(Image Captioning)\index{Image Captioning},即给定图像生成与图像内容相关的描述,也可以被称为广义上的“翻译”,当然,这种广义上的翻译形式不仅仅包括图像到文本,还应该包括从图像到图像(图c),甚至是从文本到图像(图d)等等。这里将这些与图像相关的翻译任务统称为图像翻译。
%----------------------------------------------------------------------------------------------------
\begin{table}[htp]
\centering
\caption{图像翻译任务}
\label{tab:17-2-1-c}
\end{table}
%----------------------------------------------------------------------------------------------------
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{基于图像增强的文本翻译}
\parinterval 在文本翻译中引入图像信息是最典型的多模态机器翻译任务。虽然多模态机器翻译还是一种从源语言文字到目标语言文字的转换,但是在转换的过程中,融入了其他模态的信息减少了歧义的产生。例如前文提到的通过与源语言相关的图像信息,将“A medium sized child jumps off of a dusty bank”中“bank”译为“河岸”而不是“银行”,通过给定一张相关的图片,机器翻译模型就可以利用视觉信息更好的理解歧义词,避免产生歧义。换句话说,对于同一图像或者视觉场景的描述,源语言和目标语言描述的本质意义是一致的,只不过,体现在语言上会有表达方法上的差异。那么,图像就会存在一些源语言和目标语言的隐含对齐“约束”,将这种“约束”融入到机器翻译系统,会让模型加深对某些歧义词语上下文的理解,从而进一步提高机器翻译质量。
\parinterval WMT机器翻译评测在2016年首次将融合图像和文本的多模态机器翻译作为机器翻译和跨语言图像描述的共享任务[2],这项任务也受到了广泛的研究[5-6]。如何融入视觉信息,更好的理解多模态上下文语义是多模态机器翻译研究的热点,大体的研究方向包括基于特征融合的方法[7,15, 17]、基于多任务学习的方法[18,21]。接下来将从这两个方向,对多模态机器翻译的研究展开介绍。
%----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection{1. 基于特征融合的方法}
\parinterval 较为早期的研究工作通常将图像信息作为输入句子的一部分[7-8],或者用其对编码器、解码器的状态进行初始化[7, 9-10]。如图2所示,对图像特征的提取通常是基于卷积神经网络,有关卷积神经网络的内容,请参考{\chaptereleven}内容。通过卷积神经网络得到全局视觉特征,在进行维度变换后,将其作为源语言输入的一部分或者初始化状态引入到模型当中。但是,这种图像信息的引入方式有以下两个缺点:
\begin{itemize}
\vspace{0.5em}
\item 图像信息不全都是有用的,往往存在一些与源语言或目标语言无关的信息,作为全局特征会引入噪音
\vspace{0.5em}
\item 图像信息作为源语言的一部分或者初始化状态,间接参与目标语言单词的生成,在循环神经网络信息传递的过程中,图像信息会有一定的损失。
\vspace{0.5em}
\end{itemize}
%----------------------------------------------------------------------------------------------------
\begin{table}[htp]
\centering
\caption{建模全局的视觉特征方法}
\label{tab:17-2-2-c}
\end{table}
%----------------------------------------------------------------------------------------------------
\parinterval 说到噪音问题就不得不提到注意力机制的引入,前面章节中提到过这样的一个例子:
\vspace{0.8em}
\centerline{中午\ \ 吃饭\ \ \ \ \ \ \ 下午\ 篮球\ \ \ 现在\ \ 饿\ \ \ \underline{\quad \quad \quad}}
\vspace{0.8em}
\parinterval 想在横线处填写“吃饭”,“吃东西”的原因是我们在读句子的过程中,关注到了“没/吃饭”,“很/饿”等关键息。这是在自然语言处理中注意力机制解决的问题,即对于要生成的目标语言单词时,相关性更高的源语言片段应该在源语言句子的表示中体现出来,而不是将所有的源语言单词一视同仁。同样的,注意力机制也用在多模态机器翻译中,即在生成目标单词时,对于图像而言,更应该关注与目标单词相关的图像部分,而弱化对其他部分的关注,这样就达到了降噪的目的,另外,注意力机制的引入,也使图像信息直接参与目标语言的生成,解决了在编码器中,图像信息传递损失的问题。
%----------------------------------------------------------------------------------------------------
\begin{table}[htp]
\centering
\caption{目标词“bank”注意力机制前后对比}
\label{tab:17-2-3-c}
\end{table}
%----------------------------------------------------------------------------------------------------
\parinterval 那么,多模态机器翻译是如何计算上下文向量的呢?这里仿照第十章的内容给出具体解释(参考图10.19):
\parinterval 编码器输出的状态序列${\mathbi{h}_1,\mathbi{h}_2,...\mathbi{h}_m}$,m为状态序列的长度,需要注意的是,这里的状态序列不是源语言的状态序列,而是通过基于卷积循环网络提取到的图像的状态序列。假设图像的特征维度16×16×512,其中前两个维度分别表示图像的高和宽,这里会将图像的维度映射为256×512的状态序列,512为每个状态的维度,对于目标语位置$j$,上下文向量$\mathbi{C}_{j}$被定义为对序列的编码器输出进行加权求和,如下:
\begin{eqnarray}
\mathbi{C}_{j}&=& \sum_{i}{{\alpha}_{i,j}{\mathbi{h}}_{i}}
\label{eq:17-2-1}
\end{eqnarray}
\noindent 其中,${\alpha}_{i,j}$是注意力权重,它表示目标语言第j个位置与图片编码状态序列第i个位置的相关性大小,计算方式与{\chapterten}描述的注意力函数一致。
\parinterval 这里,将每个时间步编码器的输出$\mathbi{h}_{i}$看作源图像序列位置$i$的表示结果。图3说明了模型在生成目标词“man”时,图像经过注意力机制对图像区域关注度的可视化效果,可以看到,经过注意力机制后,模型更注重的是与目标词相关的图像部分。当然,多模态机器翻译的输入还包括源语言文字序列。通常,源语言文字对于翻译的作用比图像更大[23]。从这个角度说,图像信息更多的是作为文字信息的补充,而不是替代。除此之外,注意力机制在多模态机器翻译中也有很多研究,不仅仅在解码器端将经过注意力机制的文本特征和视觉特征作为解码输入的一部分,还有的工作在编码端将源语言与图像信息进行注意力建模[22,23],得到更好的源语言特征表示。
%----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection{2. 基于多任务学习的方法}
\parinterval 基于多任务学习的方法通常是把翻译任务与其他视觉任务结合,进行联合训练。在{\chapterfifteen}{\chaptersixteen}已经提到过多任务学习。一种常见的多任务学习框架是针对多个相关的任务,共享模型的部分参数来学习不同任务之间相似的部分,并通过特定的模块来学习每个任务特有的部分。在多模态机器翻译中,应用多任务学习的主要策略就是将翻译作为主任务,同时设置一些与其他模态相关的子任务,通过这些子任务来辅助源语言理解自身的语言知识。
\parinterval 如图4所示,可以将多模态机器翻译任务分解为两个子任务:机器翻译和图片生成[18]。其中机器翻译作为主任务,图片生成作为子任务,图片生成这里指的是从一个图片描述生成对应图片,对于图片生成任务在后面叙述。通过单个编码器对源语言数据进行建模,然后通过两个解码器(翻译解码器和图像解码器)来学习翻译任务和图像生成任务。顶层任务学习每个任务的独立特征,底层共享参数层能够学习到更丰富的文本特征表示。另外在视觉问答领域有研究表明[24],在多模态任务中,不宜引入多层的注意力,因为多层注意力会导致模型严重的过拟合,从另一角度来说,利用多任务学习的方式,提高模型的泛化能力,也是一种有效防止过拟合现象的方式。类似的思想,也大量使用在多模态自然语言处理中,例如图像描述生成、视觉问答[42]等。
%----------------------------------------------------------------------------------------------------
\begin{table}[htp]
\centering
\caption{多模态机器翻译多任务学习的应用}
\label{tab:17-2-4-c}
\end{table}
%----------------------------------------------------------------------------------------------------
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{图像到文本的翻译}
\parinterval 图像到文本的转换也可以看作是广义上的翻译,简单来说,就是把源语言的形式替换成了图像。其中,图像描述生成是最典型的任务。虽然,这部分内容并不是本书的重点,不过为了保证多模态翻译内容的完整性,这里对相关技术进行简要介绍。图像描述生成是指给定图像生成文字描述,有时也被称作图说话、图像字幕生成。如何理解图像信息、在理解图像信息基础上生成描述是图像描述任务要解决的问题,可以发现,该任务涉及到自然语言处理和计算机视觉两个领域,是一项很有挑战的任务。同时,图像描述在图像检索、智能导盲、人机交互等领域有着广泛的应用场景,有很大的研究价值。
%----------------------------------------------------------------------------------------------------
\begin{table}[htp]
\centering
\caption{图像描述传统方法}
\label{tab:17-2-5-c}
\end{table}
%----------------------------------------------------------------------------------------------------
\parinterval 传统图像描述生成有两种范式:基于检索的方法和基于模板的方法。其中基于检索的方法(图5左)是指在指定的图像描述候选句子中选择其中的句子作为图像的描述,这种方法的弊端是所选择的句子可能会和图像很大程度上不相符。而基于模板的方法(图5右)是指在图像上检测视觉特征,然后把内容填在实现设计好的模板当中,这种方法的缺点是生成的图像描述过于呆板,‘像是在一个模子中刻出来的’说的就是这个意思。近几年来 ,由于卷积神经网络在计算机视觉领域效果显著,而循环神经网络在自然语言处理领域卓有成效,受到机器翻译领域编码器-解码器框架的启发,逐渐的,这种基于卷积神经网络作为编码器编码图像,循环神经网络作为解码器解码描述的编码器-解码器框架成了图像描述任务的基础范式。本章节,从基础的图像描述范式编码器-解码器框架展开[25,26],从编码器的改进、解码器的改进展开介绍。
%----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection{1. 基础框架}
\parinterval 受到神经机器翻译的启发,编码器-解码器框架也应用到图像描述任务当中。其中,编码器将输入的图像转换为一种新的“表示”形式,这种表示包含了输入图像的所有信息。之后解码器把这种“表示”重新转换为输出的描述。图XX中(上)是编码器-解码器框架在图像描述生成的应用[25]。首先,通过卷积神经网络提取图像特征到一个合适的长度向量表示。然后,利用长短时记忆网络(LSTM)解码生成文字描述,这个过程中与机器翻译解码过程类似。这种建模方式存在一定的短板:生成的描述单词不一定需要所有的图像信息,将全局的图像信息送入模型中,可能会引入噪音,使这种“表示”形式不准确。针对这个问题,图XX(下)[26]为了弥补这种建模的局限性,引入了注意力机制。利用注意力机制在生成不同单词时,使模型不再只关注图像的全局特征,而是关注“应该”关注的图像特征。
%----------------------------------------------------------------------------------------------------
\begin{table}[htp]
\centering
\caption{图像描述的编码器-解码器框架}
\label{tab:17-2-6-c}
\end{table}
%----------------------------------------------------------------------------------------------------
\parinterval 图像描述生成基本上沿用了编码器-解码器框架。接下来,分别从编码器端的改进和解码器端的改进展开介绍。这些改进总体来说是在解决以下两个问题:
\begin{itemize}
\vspace{0.5em}
\item 在编码器端,如何更丰富、更全面的编码图像信息?
\vspace{0.5em}
\item 在解码器端,如何更好的利用编码器端的特征表示?
\vspace{0.5em}
\end{itemize}
%----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection{2. 编码器的改进}
\parinterval 要想使编码器-解码器框架在图像描述中充分发挥作用,编码器也要更好的表示图像信息。对于编码器的改进,大多也是从这个方向出发。通常,体现在向编码器中添加图像的语义信息[27,28,29]和位置信息[28,31]。
\parinterval 图像的语义信息一般是指图像中存在的实体、属性、场景等等。如图XX所示,从图像中利用属性或实体检测器提取出“child”、“river”、“bank”等等的属性词和实体词作为图像的语义信息,提取全局的图像特征初始化循环神经网络,再利用注意力机制计算目标词与属性词或实体词之间的注意力权重,根据该权重计算上下文向量,从而将编码语义信息送入解码端[27],在解码‘bank’单词时,会更关注图像语义信息中的‘bank’。当然,除了图像中的实体和属性作为语义信息外,也可以将图片的场景信息也加入到编码器当中[29]。有关如何做属性、实体和场景的检测,涉及到目标检测任务的工作,例如Faster-RCNN[32]、YOLO[33,34]等等,这里不过多赘述。
%----------------------------------------------------------------------------------------------------
\begin{table}[htp]
\centering
\caption{编码器“显式”融入语义信息}
\label{tab:17-2-6-c}
\end{table}
%----------------------------------------------------------------------------------------------------
\parinterval 以上的方法大都是将图像中的实体、属性、场景等映射到文字上,并把这些信息显式地添加到编码器端。令一种方式,把图像中的语义特征隐式地作用到编码器端[28]。例如,可以图像数据可以分解为三个通道(红、绿、蓝),简单来说,就是将图像的每一个像素点按照红色、绿色、蓝色分成三个部分,这样就将图像分成了三个通道。在很多图像中,不同通道随伴随的特征是不一样的,可以将其作用于编码器端。另一种方法是基于位置信息的编码器增强。位置信息指的是图像中对象(物体)的位置。利用目标检测技术检测系统获得图中的对象和对应的特征,这样就确定了图中的对象位置。显然,这些信息也可以加入到编码端,以加强编码器的表示能力[30]。
%----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection{3. 解码器的改进}
\parinterval 由于解码器输出的是语言文字序列,因此需要考虑语言的特点对其进行改进。 例如,解码过程中, “the”,“on”,“at”这种介词或者冠词与图像的相关性较低,这时图像信息的引入就会产生负面影响[35]。因此,可以通过门等结构,控制视觉信号作用于文字生成的程度。另外,在解码过程中,生成的每个单词对应着图像的区域可能是不同的。因此也可以设计更为有效的注意力机制来捕捉解码端对不同图像局部信息的关注程度[36]。
\parinterval 除了在解码端更好的使生成文本与图像特征相互作用以外,还有一些其他的解码器端改进的方向。例如:用其它结构(如卷积神经网络或者Transformer)代替解码器端循环神经网络[39]。或者使用更深层的神经网络学习动词或者名词等视觉中不易表现出来的单词[38](这个参考文献层次有些低,我怕引用了有些问题。不过这个观点还是很有意思的,可以先确定文献的正规性,或者有没有顶会做类似事情的),其思想与深层神经机器翻译模型有相通之处({\chapterfifteen})。
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{图像、文本到图像的翻译}
\parinterval 当生成的目标对象是图像时,问题就变为了图像生成问题。虽然,这个领域本身并不属于机器翻译,但是其使用的基本方法与机器翻译有类似之处。二者也可以相互借鉴。因此,这里对图像生成问题也进行简要描述。
\parinterval 计算机视觉领域,图像风格转移、图像语义分割、图像超分辨率等任务,都可以被视为{\small\bfnew{图像到图像的翻译}}\index{图像到图像的翻译}(Image-to-Image Translation)\index{Image-to-Image Translation}问题。与机器翻译类似,这些问题的共同目标是学习从一个对象到另一个对象的映射,只不过这里的对象是指图像,而非机器翻译中的文字。例如,给定物体的轮廓生成真实物体照片或者给定白天照片生成夜晚的照片等。图像到图像的翻译有广阔的应用场景,如图片补全、风格迁移等。
\parinterval 对抗神经网络被广泛地应用再图像到图像的翻译任务当中[53,54,55]。实际上,这类方法非常适合图像生成类的任务。简单来说,对抗生成网络包括两个部分分别是:生成器和判别器。基于输入生成器生成一个结果,而判别器要判别生成的结果和真实结果是否是相同的,对抗的思想是,通过强化生成器的生成能力和判别器的判别能力,当生成器生成的结果可以“骗”过判别器时,即判别器无法分清真实结果和生成结果,认为模型学到了这种映射关系。在图像到图像的翻译中,根据输入图像,生成器生成预测图像,判别器判别是否为目标图像,多次迭代后,生成图像被判别为目标图像时,则模型学习到了“翻译能力”。以上的工作都是有监督的,即基于对齐的图像对数据集,但是,这种数据的标注是极为费时费力的,所以有很多的工作也基于无监督的方法展开[57,58,59],这里不过多赘述。
\parinterval {\small\bfnew{文本到图像的翻译}}\index{文本到图像的翻译}(Text-to-Image Translation)\index{Text-to-Image Translation}是指给定描述物体颜色和形状等细节的一自然语言文字,生成对应的图像。该任务也可以看作是图像描述任务的逆任务。目前方法上大部分基于对抗神经网络[61,62,63]。基本流程为:首先利用自然语言处理技术提取出文本信息,然后再用文本特征作为后面生成图像的约束,在对抗神经网络中生成器(Generator)中根据文本特征生成图像的约束,从而别鉴别器(Discriminator)鉴定其生成效果。
%----------------------------------------------------------------------------------------
% NEW SECTION
......@@ -482,7 +642,7 @@ D_i&\subseteq&\{X_{-i},Y_{-i}\} \label{eq:17-3-2}
\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}
\parinterval 最近,多模态机器翻译、图像描述、视觉问答[42](Visual Question Answering)等多模态任务受到人工智能领域的广泛关注。如何将多个模态的信息充分融合,是研究多模态任务的重要问题。在自然语言处理领域transformer[43]框架的提出后,被应用到计算机视觉[44]、多模态任务[45,46,47]效果也有显著的提升。另外,数据稀缺是多模态任务受限之处,可以采取数据增强[48,49]的方式缓解。但是,这时仍需要回答在:模型没有充分训练时,图像等模态信息究竟在翻译里发挥了多少作用?类似的问题在篇章级机器翻译中也存在,上下文模型在训练数据量很小的时候对翻译的作用十分微弱(引用李北ACL)。因此,也有必要探究究竟图像等上下文信息如何可以更有效地发挥作用。此外,受到预训练模型的启发,在多模态领域,图像和文本联合预训练[50,51,52]的工作也相继开展,利用transformer框架,通过自注意力机制捕捉图像和文本的隐藏对齐,提升模型性能,同时缓解数据稀缺问题。
......
......@@ -25,58 +25,83 @@
\parinterval 朱靖波 2020.12.10-16随笔\\
\parinterval 自从计算机诞生开始,机器翻译即利用计算机软件技术实现不同语言自动翻译,就是人们首先想到的计算机主要应用之一。很多人说现在处于人工智能时代,是得语言者的天下,而机器翻译也是认知智能的终极梦想之一,本节将分享我们对机器翻译技术和应用的一些思考,有些想法不一定正确,也许需要十年之后才能确定其对错
\parinterval 自从计算机诞生开始,机器翻译即利用计算机软件技术实现不同语言自动翻译,就是人们首先想到的计算机主要应用之一。很多人说现在处于人工智能时代,是得语言者的天下,因此机器翻译也是认知智能的终极梦想之一,本节将分享我们对机器翻译技术和应用的一些思考,有些想法不一定正确,也许需要十年之后才能验证
\parinterval 简单来说,机器翻译技术应用至少可以满足三个用户需求。一是实现外文资料辅助阅读和帮助不同母语的人们进行无障碍交流;二是计算机辅助翻译,帮助人工翻译降本增效;三是大数据分析和处理应用领域实现对多语言文字资料(也可以图像和语音资料)进行加工处理,海量数据翻译对于人工翻译来说是无法完成的,机器翻译是大数据翻译的唯一有效解决方案。从上述三个需求可以看出,机器翻译和人工翻译本质上不存在严格冲突,属于两个平行轨道,两者可以和谐共存、相互帮助。对于机器翻译来说,至少有两个应用场景是无法胜任的。第一个是要求高质量翻译结果,比如诗歌小说翻译出版;第二个是比如国家领导人讲话,轻易不允许出现低级翻译错误,否则有可能导致严重后果甚至国际纠纷。严格上来说,对译文准确性要求很高的应用 场景不可能简单采用机器翻译,必须由高水平的人工翻译参与来完成。
\vspace{0.5em}
\parinterval 简单来说,机器翻译技术应用至少可以满足三个用户需求。一是实现外文资料辅助阅读和帮助不同母语的人们进行无障碍交流;二是计算机辅助翻译,帮助人工翻译降本增效;三是大数据分析和处理应用领域实现对多语言文字资料(也可以图像和语音资料)进行加工处理,海量数据翻译对于人工翻译来说是无法完成的,机器翻译是大数据翻译的唯一有效解决方案。从上述三个需求可以看出,机器翻译和人工翻译本质上不存在严格冲突,属于两个平行轨道,两者可以和谐共存、相互帮助。对于机器翻译来说,至少有两个应用场景是其无法胜任的。第一个是要求高质量翻译结果,比如诗歌小说翻译出版;第二个是比如国家领导人讲话,轻易不允许出现低级翻译错误,否则有可能导致严重后果甚至国际纠纷。严格上来说,对译文准确性要求很高的应用 场景不可能简单采用机器翻译,必须由高水平的人工翻译参与来完成。
\vspace{0.5em}
\parinterval 机器翻译技术发展至今经历了三个主要阶段,基于规则的方法、统计机器翻译和神经机器翻译。基于规则的方法大家都比较熟悉,专家人工书写一些转换翻译规则,将源语言句子转换翻译成为目标语言译文句子,最大的瓶颈问题是人工书写翻译规则代价非常高,规则较多很难写全,并且规则写多了容易产生冲突,造成跷跷板现象。为了解决这个人工书写翻译规则代价过高的问题,后两个发展阶段主要采用机器学习的方法,事先准备好较大规模的双语句子作为训练语料,采用机器学习方法来构建机器翻译系统。这种方法原则上不需要人工干预或者太多干预,并且机器翻译系统构建的代价低、速度快,其主要瓶颈问题就是需要事先收集好大规模双语句对集合,这对于很多语言对来说难度比较大,特别是小语种语言对。
\vspace{0.5em}
\parinterval 如何构建一套好的机器翻译系统呢?假设我们需要给用户提供一套翻译品质不错的机器翻译系统,至少需要考虑三个方面:足够大规模的双语句对集合用于训练学习、强大的机器翻译技术和错误驱动的打磨过程。前两者大家比较好理解,第三点也非常关键,通过总结翻译错误分析原因,比如属于数据问题还是技术问题,找到一个解决方案,不断迭代优化翻译使其品质越来越好。从技术应用和产业化角度来看,简单靠提出一个新的机器翻译技术,对于构建一套好的机器翻译系统来说,只能说必要条件,不是充要条件,上述三者缺一不可。
\vspace{0.5em}
\parinterval 据了解全世界至少有五六千种不同语言,能够电子化的语种至少也有两三千种,我们真正熟悉的主流语种不会太多,很多语种人才在国内也是稀缺资源。为了缓解这个问题,毕竟培养小语种翻译人才代价奇高,机器翻译成为了一个有效解决方案。目前主流的机器翻译技术是神经机器翻译,基于深度学习技术,翻译品质依赖于双语句子训练数据规模。我们都知道,只有主流语种比如英语和中文有能力收集较大规模的双语句对集合,目前大多商用英汉机器翻译系统由几个亿的中英双语句对训练而成,但这对于99\%以上的语言对来说是遥不可及的。甚至大部分语言对的电子化双语句对集合规模非常小,过百万算多的,很多只有几万个句对,甚至没有,最多有一个小规模双语词典而已。
\vspace{0.5em}
\parinterval 资源稀缺语种机器翻译技术研究也成为学术界的研究热点,相信这个课题的突破能大大推动机器翻译技术落地应用。机器翻译本身是一个刚需,在很多大数据翻译应用场景,机器翻译是唯一有效的解决方案,非人工翻译所为。在2017年以前机器翻译市场规模一直很小,主要原因就是受制于机器翻译品质不够好,就算采用最先进的神经机器翻译技术,缺乏足够大规模的双语句对集合作为训练数据,我们也是巧妇难为无米之炊。从技术研究和应用可行性角度来说,解决资源稀缺语种机器翻译问题非常有价值。我们通常可以从两个维度来思考,一是如何想办法获取更多双语句对,甚至包括质量低一点的伪双语数据;二是如何从更少样本来实现高效学习,或者充分利用丰富的单语数据资源或者可比较数据资源来提升模型学习效果。
\vspace{0.5em}
\parinterval 业内不少研究人员提出采用知识图谱来改善机器翻译,并希望用于解决稀缺资源语种机器翻译问题;一些研究工作引入语言分析技术来改善机器翻译,多种不同机器翻译技术融合也是一个思路,比如将基于规则的方法、统计机器翻译技术与神经机器翻译技术互补性融合;引入预训练技术来改善机器翻译品质,特别是针对稀缺资源语种机器翻译等等。不仅仅限于上述这些,总体来说,这些思路都具有良好的研究价值,但是从应用角度构建可实用机器翻译系统,我们还需要更多考虑技术落地可行性才行。比如大规模知识图谱构建的代价和语言分析技术的精度如何;实验结果显示大规模双语句对训练条件下,预训练技术对机器翻译的帮助能力有限;双语句对训练数据规模较小的时候,神经机器翻译品质可能不如统计机器翻译,说明两者具有一定互补性。做研究可以搞单点突破,但从可实用机器翻译系统构建来说,需要多技术互补融合,以解决实际问题和改善翻译品质作为目标函数才行。
\parinterval 业内不少研究人员提出采用知识图谱来改善机器翻译,并希望用于解决稀缺资源语种机器翻译问题;还有一些研究工作引入语言分析技术来改善机器翻译,多种不同机器翻译技术融合也是一个思路,比如将基于规则的方法、统计机器翻译技术与神经机器翻译技术互补性融合;另外还可以引入预训练技术来改善机器翻译品质,特别是针对稀缺资源语种机器翻译等等。不仅仅限于上述这些,总体来说,这些思路都具有良好的研究价值,但是从应用角度构建可实用机器翻译系统,我们还需要更多考虑技术落地可行性才行。比如大规模知识图谱构建的代价和语言分析技术的精度如何;实验结果显示大规模双语句对训练条件下,预训练技术对机器翻译的帮助能力有限;双语句对训练数据规模较小的时候,神经机器翻译品质可能不如统计机器翻译,说明两者具有一定互补性。做研究可以搞单点突破,但从可实用机器翻译系统构建来说,需要多技术互补融合,以解决实际问题和改善翻译品质。
\vspace{0.5em}
\parinterval 通常我们把规则方法、统计机器翻译和神经机器翻译称之为第一、第二和第三代机器翻译技术,很自然会问第四代机器翻译会如何发展?有人说是基于知识的机器翻译技术,也有人说是无监督机器翻译技术或者新的机器翻译范式等等。这个第四代的问题现在肯定没有答案,在讨论这个问题之前,我们能否先解释一个问题呢?所谓新一代机器翻译技术是否应该比目前机器翻译技术的翻译品质更好呢?如果同意的话,第二代机器翻译技术碾压了第一代,第三代也毫无争议地碾压了第二代,现在的问题是实验结果显示,比如拿商用的英汉汉英机器翻译系统举例子,经过几个亿双语句对的训练学习后,翻译品质人工评价可以达到80-90\%之间,也许再过三五年会更好,新闻翻译准确率也许有能力超过90\%以上,那我们需要回答的一个简单问题是所谓的第四代机器翻译技术准备在新闻领域翻译达到啥样的准确率呢?92\%或者93\%的数字估计无法支撑起新一代机器翻译技术的碾压性,我们可能会得出一个猜测:是否将来不存在第四代机器翻译技术?
\parinterval 通常我们把基于规则的方法、统计机器翻译和神经机器翻译称之为第一、第二和第三代机器翻译技术,很自然会问第四代机器翻译会如何发展?有人说是基于知识的机器翻译技术,也有人说是无监督机器翻译技术或者新的机器翻译范式等等。这个第四代的问题现在肯定没有答案,在讨论这个问题之前,我们能否先回答一个问题呢?所谓新一代机器翻译技术是否应该比目前机器翻译技术的翻译品质更好呢?如果同意的话,第二代机器翻译技术碾压了第一代,第三代也毫无争议地碾压了第二代,现在的问题是实验结果显示,比如拿商用的英汉汉英机器翻译系统举例子,经过几个亿双语句对的训练学习后,翻译品质人工评价可以达到80-90\%之间,也许再过三五年会更好,新闻翻译准确率也许有能力超过90\%,那我们需要回答的一个简单问题是所谓的第四代机器翻译技术准备在新闻领域翻译达到怎样的准确率呢?92\%或者93\%的数字估计无法支撑起新一代机器翻译技术的碾压性,我们可能会得出一个猜测:是否将来不存在第四代机器翻译技术?
\vspace{0.5em}
\parinterval 大家可能会说我论述的角度不对,我也认可这一点,从历史发展观上来看,新一代的技术必然是存在,换句话说,第四代机器翻译技术一定会出现,只是不知道在啥时候而已。我们可以换个角度来讨论这个问题,神经机器翻译的红利还没有被挖尽,还存在很好的发展空间,在可预期的将来,神经机器翻译技术估计还是属于主流技术,但会产生大量变种。在训练双语数据充分的前提下,要想碾杀神经机器翻译技术,我的确有点质疑这一点。但有一个发展方向是有道理的,前文提到99\%以上语言对属于稀缺资源,目前神经机器翻译技术对于稀缺资源语言对来说表现不好,甚至很差几乎不可用。从这一点来说,无监督机器翻译和更少样本的训练学习机制值得关注,由此产生的新机器翻译技术成为了可能。我们愿意把新一代机器翻译技术称之为面向具体应用场景的第四代机器翻译技术,本质上是针对不同应用条件、不同应用场景提出新一代更强能力的机器翻译技术,不是简单一个技术,而是一个技术集合,这是完全可能的。
\vspace{0.5em}
\parinterval 这几年神经机器翻译技术大大提升了翻译品质,推动了机器翻译产业化的快速发展。跟其它深度学习技术应用一样,缺乏可解释性成为了神经机器翻译一个被攻击点。有些研究人员持有不同观点,认为神经机器翻译具有良好可解释性,每一步计算过程非常清楚。这就涉及到如何定义可解释性,具有可解释性的深度学习技术也是一个研究热点。我们先举个简单例子来说明一下,法庭上法官判决犯罪嫌疑人罪名成立,我们不可能简单说有罪或者无罪,同时会说明根据哪条法律法规作为依据,从判决过程来看,这些依据就是判决结果的解释。如果采用深度学习技术,只是一个有罪和无罪的结果,不可能解释,不提供任何依据细节,估计犯罪嫌疑人肯定不服。
\parinterval 这几年神经机器翻译技术大大提升了翻译品质,推动了机器翻译产业化的快速发展。跟其它深度学习技术应用一样,缺乏可解释性成为了神经机器翻译一个被攻击点。有些研究人员持有不同观点,认为神经机器翻译具有良好可解释性,每一步计算过程非常清楚。这就涉及到如何定义可解释性,具有可解释性的深度学习技术也是一个研究热点。我们先举个简单例子来说明一下,法庭上法官判决犯罪嫌疑人罪名成立,我们不可能简单说有罪或者无罪,同时会说明根据哪条法律法规作为依据,从判决过程来看,这些依据就是判决结果的解释。如果采用深度学习技术,只是一个有罪或无罪的结果,不可能解释,不提供任何依据细节,估计犯罪嫌疑人肯定不服。
\vspace{0.5em}
\parinterval 从上述例子我们可以得出一个分析,我们所需要的可解释性的内涵到底是结论推理的计算过程还是结论推理的以理服人呢?对可解释性的两种理解可能是不一样的,前者面向结论推理过程(how),后者面向结论可理解性(why)。回头来说,对神经机器翻译可解释性研究的目标,到底是前者还是后者呢?目前学术界有一些相关研究,比如对神经机器翻译模型中注意力机制的可视化分析软对齐结果等。但有一点是肯定的,我们希望研究神经机器翻译技术的可解释性,目的是为了“纠错”,也可以有利于人工干预机制等。只有通过可解释性研究,搞清楚翻译错误的原因,最终找到解决方案来实现纠错,才是我们研究神经机器翻译技术可解释性的目的所在。
\vspace{0.5em}
\parinterval 除了翻译品质维度以外,机器翻译技术应用可以从三个维度来讨论,包括语种维度、领域维度和应用模式维度。机器翻译技术应该为全球用户服务,提供支持所有国家至少一种官方语言的翻译能力,实现任意两种语言的自动互译,当然语种数量越多越好。面临的最大问题就是双语数据稀缺的问题,上述已经讨论了这个问题。关于领域维度,通用领域翻译系统对于垂直领域应用来说是不够充分的,最典型的问题在于垂直领域术语翻译的问题,计算机不能无中生有,虽然存在瞎猫碰死耗子,但没有办法充分解决垂直领域术语OOV翻译问题。比较直接可行的解决方案至少有两个,一是引入垂直领域术语双语词典用于改善机器翻译效果;二是收集加工一定规模的垂直领域双语句对来优化训练翻译模型。这两种工程方法虽然简单,但效果不错,相对来说,两者结合才能更加有效,但问题是垂直领域双语句对的收集很多时候代价太高,不太可行,本质上就转换成为垂直领域资源稀缺问题和领域自适应学习问题,另外也可以引入小样本学习、迁移学习和联合学习等机器学习技术来改善这个问题。
\parinterval 除了翻译品质维度以外,机器翻译技术应用可以从三个维度来讨论,包括语种维度、领域维度和应用模式维度。机器翻译技术应该为全球用户服务,提供支持所有国家至少一种官方语言的翻译能力,实现任意两种语言的自动互译,当然语种数量越多越好。面临的最大问题就是双语数据稀缺,上述已经讨论了这个问题。关于领域维度,通用领域翻译系统对于垂直领域应用来说是不够充分的,最典型的问题在于垂直领域术语翻译的问题,计算机不能无中生有,虽然存在瞎猫碰死耗子,但没有办法充分解决垂直领域术语OOV翻译问题。比较直接可行的解决方案至少有两个,一是引入垂直领域术语双语词典用于改善机器翻译效果;二是收集加工一定规模的垂直领域双语句对来优化训练翻译模型。这两种工程方法虽然简单,但效果不错,相对来说,两者结合才能更加有效,但问题是垂直领域双语句对的收集很多时候代价太高,不太可行,本质上就转换成为垂直领域资源稀缺问题和领域自适应学习问题,另外也可以引入小样本学习、迁移学习和联合学习等机器学习技术来改善这个问题。
\parinterval 应用模式维度能够体现丰富多彩的机器翻译应用和服务,还可以细分到具体应用场景,这个我们就不一一列举,后面可能会讨论到一些具体应用。这里主要讨论一下应用模式的软硬件环境。通常机器翻译典型应用属于在线翻译公有云服务,用户接入非常简单,只需要联网使用浏览器就可以自由免费使用。在某些具体行业应用中,用户对数据翻译安全性和保密性要求非常高,其中可能还会涉及到个性化订制要求,这一点在线翻译公有云服务就无法满足用户需求,本地部署机器翻译私有云和离线机器翻译技术和服务成为了新的应用模式。本地部署私有云的问题在于用户需要自己购买GPU服务器和建机房,硬件投入和代价也不低,也许将来会出来一种新的应用模式:在线私有云—专有云,有点像服务托管模式。最后一种云服务就是混合云,简单来说就是公有云、私有云和专有云混合体而已。
\vspace{0.5em}
\parinterval 应用模式维度能够体现丰富多彩的机器翻译应用和服务,还可以细分到具体应用场景,这个我们就不一一列举,后面可能会讨论到一些具体应用。这里主要讨论一下应用模式的软硬件环境。通常机器翻译典型应用属于在线翻译公有云服务,用户接入非常简单,只需要联网使用浏览器就可以自由免费使用。在某些具体行业应用中,用户对数据翻译安全性和保密性要求非常高,其中可能还会涉及到个性化订制要求,这一点在线翻译公有云服务就无法满足用户需求,本地部署机器翻译私有云和离线机器翻译技术和服务成为了新的应用模式。本地部署私有云的问题在于用户需要自己购买GPU服务器和建机房,硬件投入和代价也不低,也许将来会出来一种新的应用模式:在线私有云或专有云,有点像服务托管模式。最后一种云服务就是混合云,简单来说就是公有云、私有云和专有云混合体而已。
\vspace{0.5em}
\parinterval 离线机器翻译技术可以为更小型的智能翻译终端设备提供服务,比如大家熟悉的翻译机、翻译笔、翻译耳机等智能翻译设备,在不联网的情况下能够实现高品质机器翻译功能,相当于将机器翻译系统安装在智能翻译终端设备上,这个应用模式具有很大的潜力。但需要解决的问题很多,首先是模型大小、翻译速度和翻译品质三大问题,之后是需要考虑不同操作系统问题(Linux、Android Q和iOS),最后还需要考虑不同架构的CPU芯片,比如x86、MIPS、ARM架构等,都需要进行智能适配兼容,特别是国产化机器翻译解决方案需求也在不断上升,本质上需要有能力兼容国产化操作系统和芯片。将来离线翻译系统还可以安装到办公设备上,比如传真机、打印机和复印机等,实现支持多语言的智能办公。目前人工智能芯片发展速度非常快,其实机器翻译和语音处理雷同,目前市面上语音技术芯片已近广泛使用,机器翻译芯片的研发估计不是技术问题,最大的问题的应用场景和上下游的应用支撑,一旦这个时机成熟,机器翻译芯片研发和应用也有可能会爆发。
\parinterval 离线机器翻译技术可以为更小型的智能翻译终端设备提供服务,比如大家熟悉的翻译机、翻译笔、翻译耳机等智能翻译设备,在不联网的情况下能够实现高品质机器翻译功能,相当于将机器翻译系统安装在智能翻译终端设备上,这个应用模式具有很大的潜力。但需要解决的问题很多,首先是模型大小、翻译速度和翻译品质三大问题,之后需要考虑不同操作系统(Linux、Android Q和iOS)和不同架构的CPU芯片,比如x86、MIPS、ARM架构等的智能适配兼容问题,特别是国产化机器翻译解决方案需求也在不断上升,机器翻译本质上需要有能力兼容国产化操作系统和芯片。将来离线翻译系统还可以安装到办公设备上,比如传真机、打印机和复印机等,实现支持多语言的智能办公。目前人工智能芯片发展速度非常快,其实机器翻译和语音处理雷同,目前市面上语音技术芯片已经被广泛使用,机器翻译芯片的研发缺的估计不是技术,其最大的问题应该是缺少应用场景和上下游的应用支撑,一旦这个时机成熟,机器翻译芯片研发和应用也有可能会爆发。
\vspace{0.5em}
\parinterval 机器翻译可以与文档解析、语音识别、OCR和视频字幕提取等技术相结合,我们称之为多模态机器翻译,大大丰富了机器翻译的应用模式。文档解析技术可以帮助实现Word文档翻译、PDF文档翻译、WPS文档翻译、邮件翻译等更多格式文档自动翻译能力,也可以作为插件嵌入到各种办公平台中,成为智能办公好助手。语音识别与机器翻译是绝配,语音语言是人与人交流的最自然方式,语音翻译用途就非常丰富了,比如翻译机和语音翻译app,还有目前大家比较期待的会议AI同传应用,参加国际会议可以通过该技术听懂讲不同母语的报告,该技术也可以成为会议室的标配,支持不同母语的参会人员进行自由交流。但目前最大的问题主要体现在两个方面,一是很多实际应用场景中语音识别结果欠佳,造成错误蔓延,导致机器翻译结果不够理想;二是就算小语种的语音识别效果很好,但资源稀缺型小语种翻译性能不够好。OCR技术可以帮助实现扫描笔和翻译笔的应用,还有出国旅游的拍照翻译功能,将来可以与穿戴式设备相结合,比如智能眼镜等等。视频字幕翻译能够帮助我们欣赏没有中文字幕的国外电影和电视节目,比如我们到达任何一个国家,打开电视都能够看到中文字幕,也是非常酷的应用。
\parinterval 机器翻译可以与文档解析、语音识别、OCR和视频字幕提取等技术相结合,我们称之为多模态机器翻译,大大丰富了机器翻译的应用模式。文档解析技术可以帮助实现Word文档翻译、PDF文档翻译、WPS文档翻译、邮件翻译等更多格式文档自动翻译能力,也可以作为插件嵌入到各种办公平台中,成为智能办公好助手。语音识别与机器翻译是绝配,语音语言是人与人交流的最自然方式,语音翻译用途就非常丰富了,比如翻译机和语音翻译APP,还有目前大家比较期待的会议AI同传应用,参加国际会议可以通过该技术听懂讲不同母语研究人员的报告,该技术也可以成为会议室的标配,帮助不同母语的参会人员进行自由交流。但目前最大的问题主要体现在两个方面,一是很多实际应用场景中语音识别结果欠佳,造成错误蔓延,导致机器翻译结果不够理想;二是就算小语种的语音识别效果很好,但资源稀缺型小语种翻译性能不够好。OCR技术可以帮助实现扫描笔和翻译笔的应用、出国旅游的拍照翻译功能,将来还可以与穿戴式设备相结合,比如智能眼镜等等。视频字幕翻译能够帮助我们欣赏没有中文字幕的国外电影和电视节目,比如我们到达任何一个国家,打开电视都能够看到中文字幕,也是非常酷的应用。
\vspace{0.5em}
\parinterval 但目前多模块机器翻译技术框架大多采用串行流水线,只是简单将两个或者多个不同的技术连接在一起,比如语音翻译过程分两步:语音识别和机器翻译,也可以增加一个语音合成发音功能。其它多模态机器翻译技术也大同小异,这个简单的串行流水线技术框架最大的问题就是错误蔓延问题,一旦某个技术环节准确率不够好,比90\%$\times$90\%=81\%,因为后续的技术环节不一定有能力纠正前面技术环节引入的错误,导致用户体验不够好。很多人说会议英中AI同传用户体验不够好,很自然以为是机器翻译出了问题,其实目前问题主要出在语音识别环节。学术界开始研究端到端的多模态机器翻译技术,不是采用串行流水线技术架构,而是采用一步到位的方式,这理论上能够缓解错误蔓延的问题,但目前实际效果还不够理想,期待学术界取得新的突破。
\parinterval 但目前多模块机器翻译技术框架大多采用串行流水线,只是简单将两个或者多个不同的技术连接在一起,比如语音翻译过程分两步:语音识别和机器翻译,也可以增加一个语音合成发音功能。其它多模态机器翻译技术也大同小异,这个简单的串行流水线技术框架最大的问题就是错误蔓延,一旦某个技术环节准确率不够好,最后的结果就不会太好,比如90\%$\times$90\%=81\%。并且后续的技术环节不一定有能力纠正前面技术环节引入的错误,最终导致用户体验不够好。很多人说会议英中AI同传用户体验不够好,很自然以为是机器翻译出了问题,其实目前问题主要出在语音识别环节。学术界开始研究端到端的多模态机器翻译技术,不是采用串行流水线技术架构,而是采用一步到位的方式,这理论上能够缓解错误蔓延的问题,但目前实际效果还不够理想,期待学术界取得新的突破。
\vspace{0.5em}
\parinterval 即使训练双语句对集合规模非常大,机器翻译技术不断优化,我们都知道机器翻译结果不可能完美,出现一些译文错误是难免的。如果我们想利用机器翻译技术来帮助人工翻译过程,比较常见的方式是译后编辑,即对自动译文进行人工修正错误。这就很自然产生两个实际问题,一是自动译文是否具有编辑价值?一个简单的计算方法就是编辑距离,即人工需要通过多少次增删改动作可以完成译后编辑过程。其次数越少,说明机器翻译对人工翻译的帮助越大。编辑距离本质上是一种译文质量评价的方法,可以考虑推荐具有较高译后编辑价值的自动译文给人工译员。第二个问题就是机器翻译出现错误,人工译后编辑之后能否通过一种有效的错误反馈机制帮助提高机器翻译系统性能。学术界也很多人研究这个问题,目前还没有取得大家满意的结果。其实还有另外一些问题,比如人机交互的用户体验问题,该需求很自然带起了交互式机器翻译技术研究,希望最大程度发挥人机协同合作效果,这个也是值得研究的课题。
\parinterval 即使训练双语句对集合规模非常大,并且机器翻译技术在不断优化,但我们都知道机器翻译结果不可能完美,出现一些译文错误是难免的。如果我们想利用机器翻译技术来帮助人工翻译过程,比较常见的方式是译后编辑,即对自动译文进行人工修正错误。这就很自然产生两个实际问题,一是自动译文是否具有编辑价值?一个简单的计算方法就是编辑距离,即人工需要通过多少次增删改动作可以完成译后编辑过程。其次数越少,说明机器翻译对人工翻译的帮助越大。编辑距离本质上是一种译文质量评价的方法,可以考虑推荐具有较高译后编辑价值的自动译文给人工译员。第二个问题就是机器翻译出现错误,人工译后编辑之后能否通过一种有效的错误反馈机制帮助机器翻译系统提高性能。学术界也有很多人研究这个问题,目前还没有取得大家满意的结果。除此之外还有另外一些问题:比如人机交互的用户体验问题,该需求很自然带起了交互式机器翻译技术研究,希望最大程度发挥人机协同合作效果,这个也是值得研究的课题。
\vspace{0.5em}
\parinterval 传统机器翻译译文评价方法分成自动方法和人工评价方法,自动方法用得最多的是BLEU值,被广泛应用机器翻译系统研发调优过程中和机器翻译评测中。人工评价就不用过多解释了,从该理论上来说,两者具有正相关,但实验结果显示不是绝对正相关。换句话说,理论上BLEU值越大,机器翻译系统性能越好,但如果两套机器翻译系统的BLEU值差异性不太大的话(比如<0.5),从人工评价角度来看,可能没有差异性,甚至分数高的翻译品质不如分数低的,这个也是可能的。后来不少研究人员对机器翻译自动评价方法开展了大量的研究,甚至对评价方法的评价也成为了一个研究方向。如何对机器翻译译文进行更加有效的自动评价,这个研究非常有价值,因为基于机器学习的训练方法调优完全基于评价方法作为目标函数,可以这么说,评价方法就是指挥棒,直接影响该领域的发展,所以将来我们还应该更加重视机器翻译评价方法的研究工作。
\parinterval 传统机器翻译译文评价方法分成自动方法和人工评价方法,自动方法用得最多的是BLEU值,被广泛应用在机器翻译系统研发调优过程中和机器翻译评测中。人工评价就不用过多解释了,从理论上来说,两者具有正相关,但实验结果显示不是绝对正相关。换句话说,理论上BLEU值越大,机器翻译系统性能越好,但如果两套机器翻译系统的BLEU值差异性不太大的话(比如$<$0.5),从人工评价角度来看,可能没有差异性,甚至分数高的翻译品质不如分数低的情况也可能发生。后来不少研究人员对机器翻译自动评价方法开展了大量的研究,甚至对评价方法的评价也成为了一个研究方向。如何对机器翻译译文进行更加有效的自动评价,这个研究非常有价值,因为基于机器学习的训练方法调优完全基于评价方法,可以这么说,评价方法就是指挥棒,直接影响该领域的发展,所以将来我们还应该更加重视机器翻译评价方法的研究工作。
\vspace{0.5em}
\parinterval 机器翻译评价方法除了自动和人工分类以外,还有另外的分类方法:基于参考答案和没有参考答案两类。基于参考答案的自动评价方法比较简单,拿BLEU方法举例子,人工事先构建一个包含几百个甚至上千个句子的测试集合,通常每个源语言句子提供多个(四个)不同的正确译文,然后计算每个源语言句子的自动译文与人工给定的多个参考译文之间的相似度,相似度越大,说明自动译文越接近正确翻译结果。如果人工事先提供多个正确译文有难度的话,偶尔我们也会快速构建只包含一个参考译文的测试集。多个不同参考译文有助于自动评价结果的可靠性,因为一个源语言句子理论上拥有多个不同正确译文。
\vspace{0.5em}
\parinterval 做研究实验的时候我们可以实现准备好测试集合,问题是在很多实际应用场景中,比如译后编辑过程中,我们希望机器翻译系统能够对每个输入句子的自动译文提供一个质量评价分数,分数越高表示译文正确性越好,具有更高的译后编辑价值,系统自动推荐高质量的译文给人工翻译后编辑。这种情况下我们不可能实现构建好包含多个参考译文的测试集合,即没有参考译文的自动译文质量评价技术。这个技术非常有趣,用途非常广泛,除了上述推荐高质量译文以外,将来也可以用于数据质量检测,甚至可以用于改善优化机器翻译系统本身。学术界也开展不少相关研究工作,但离实际应用还远远不够,如何利用解码知识和外部语言学知识优化没有参考答案的译文质量评价,是值得深入研究的一个方向。
\parinterval 做研究实验的时候我们可以提前准备好测试集合,问题是在很多实际应用场景中,比如译后编辑过程中,我们希望机器翻译系统能够对每个输入句子的自动译文提供一个质量评价分数,分数越高表示译文正确性越好,具有更高的译后编辑价值,系统自动推荐高质量的译文给人工翻译后编辑。这种情况下我们不可能实现构建好包含多个参考译文的测试集合,即没有参考译文的自动译文质量评价技术。这个技术非常有趣,用途非常广泛,除了上述推荐高质量译文以外,将来也可以用于数据质量检测,甚至可以用于改善优化机器翻译系统本身。学术界也开展了不少相关研究工作,但离实际应用还远远不够,如何利用解码知识和外部语言学知识优化没有参考答案的译文质量评价,是值得深入研究的一个方向。
\vspace{0.5em}
\parinterval 回头讨论一下上述提到的第二个问题,机器翻译一直存在一个诟病就是用户不知道如何有效干预纠错,帮助机器翻译系统越来越好,不能屡教不改。基于规则的方法和统计机器翻译方法相对容易实现人工干预纠错,实现手段比较丰富,神经机器翻译方法存在不可解释性,难以有效实现人工干预纠错。目前不少研究人员也深入研究引入外部知识库(用户双语术语库)来实现对OOV翻译的干预纠错,还有提出增量式训练方法不断迭代优化模型等等,也取得了一些进展。当然还有一个是融合不同技术来实现更好机器翻译效果,甚至引入基于规则的翻译前处理和后处理,引入统计机器翻译技术优化译文选择等等。但这些方法代价不低甚至很高,并且性能提升的效果无法得到保障,有时候可能降低翻译品质,有点像跷跷板现象。总体来说,这个方向的研究工作成果还不够丰富,但对用户来说非常重要,如果能够采用隐性反馈学习方法,在用户不知不觉不断改善优化机器翻译品质,这就非常酷了,也许会成为将来的一个研究热点。
\parinterval 回头讨论一下上述提到的第二个问题,机器翻译一直存在一个诟病就是用户不知道如何有效干预纠错,帮助机器翻译系统越来越好,并且我们也不希望它屡教不改。基于规则的方法和统计机器翻译方法相对容易实现人工干预纠错,实现手段比较丰富,而神经机器翻译方法存在不可解释性,难以有效实现人工干预纠错。目前有的研究人员深入研究引入外部知识库(用户双语术语库)来实现对OOV翻译的干预纠错;有的提出使用增量式训练方法不断迭代优化模型,也取得了一些进展;有的融合不同技术来实现更好机器翻译效果,比如引入基于规则的翻译前处理和后处理,或者引入统计机器翻译技术优化译文选择等等。但这些方法代价不低甚至很高,并且性能提升的效果无法得到保障,有时候可能降低翻译品质,有点像跷跷板现象。总体来说,这个方向的研究工作成果还不够丰富,但对用户来说非常重要,如果能够采用隐性反馈学习方法,在用户不知不觉中不断改善优化机器翻译品质,就非常酷了,这也许会成为将来的一个研究热点。
\vspace{0.5em}
\parinterval 如果人工翻译无法完成的任务,比如大规模数据翻译,机器翻译肯定是唯一有效的选择。为了更好帮助人工翻译,交互式机器翻译技术是非常有价值的,但需要解决一个实际问题是用户体验的问题,简单来说就是人工交互的方式。之前比较传统的人机交互方式属于机器翻译尊重人工干预的结果,一旦人工确定译文的部分片段结果后,机器翻译会保证最终输出译文中一定会出现该部分译文片段。举个简单交互例子,比如从左到右的翻译方向,人工指定第一个译文单词,机器翻译就选择输入一个“最佳”译文,首部单词为该单词。这个人机交互模式存在两个问题,一是将人工干预结果作为机器翻译解码过程硬约束,可能对译文生成造成负面影响;二是该人机交互方式改变的人工翻译的习惯,用户体验可能不太好。探索更加丰富的人机交互方式,改善用户体验,同时发挥机器翻译的优势,这是人机交互值得深入研究的课题,本质上人机交互式机器翻译体现了人工干预纠错的思想,不同的一点是这种干预纠错可能是针对当前句子的,不一定针对整个机器翻译系统的,如果能够做到后者,人机交互与错误驱动反馈学习的结合,这就具有非常高的应用价值。
\parinterval 对于人工翻译无法完成的任务,比如大规模数据翻译,机器翻译肯定是唯一有效的选择。为了更好帮助人工翻译,交互式机器翻译技术是非常有价值的,但需要解决一个实际问题是用户体验的问题,简单来说就是人工交互的方式。之前比较传统的人机交互方式属于机器翻译尊重人工干预的结果,一旦人工确定译文的部分片段结果后,机器翻译会保证最终输出译文中一定会出现该部分译文片段。举个简单交互例子,比如从左到右的翻译方向,人工指定第一个译文单词,机器翻译就选择输入一个“最佳”译文,首部单词为该单词。这个人机交互模式存在两个问题,一是将人工干预结果作为机器翻译解码过程的硬约束,可能对译文生成造成负面影响;二是该人机交互方式改变了人工翻译的习惯,用户体验可能不太好。探索更加丰富的人机交互方式,改善用户体验,同时发挥机器翻译的优势,是人机交互值得深入研究的课题,本质上人机交互式机器翻译体现了人工干预纠错的思想,不同的一点是这种干预纠错可能是针对当前句子的,不一定针对整个机器翻译系统的,如果能够做到后者,将人机交互与错误驱动反馈学习结合,就具有非常高的应用价值。
\vspace{0.5em}
\parinterval 传统机器翻译训练学习过程是按照不同语言对进行的,比如中英翻译和中日翻译等。一带一路周边国家就有近百种官方语言,联合国所有成员国的官方语言总数至少两三百个,如果想实现任意两个国家官方语言的互译,这种组合至少有几万个语言对。再加上上千种非官方语言的小语种,任意两个语种的组合就爆炸了,可以达到几百万个不同语言对,每个语言对独立进行训练学习机器翻译系统,代价投入是难以想象的。上文也提到了,99\%以上语言对可能属于资源稀缺型,无法收集足够规模的双语句对完成有效的翻译模型训练学习。为了缓解这个资源稀缺语言翻译的问题,学术界已经开展的很多相关研究工作。我们认为资源稀缺语言翻译和多语言翻译两个不同问题可以考虑相互结合来考虑,基本思想是相同或者相似语系的不同语言之间共享翻译知识,简单来说,能否训练学习一个强大的通用翻译模型,不是简单仅仅支持一个语言对翻译,而是有能力同时支持多个不同语言的互译能力。这个方案的好处是不言而喻的,不仅仅大大降低训练学习的代价,同时大大降低系统部署的硬件投入和维护代价。一旦多语言共享翻译模型取得突破,能够大大缓解小语种翻译的问题,具有良好的理论研究和应用价值。
\parinterval 传统机器翻译训练学习过程是按照不同语言对进行的,比如中英翻译和中日翻译等。一带一路周边国家就有近百种官方语言,联合国所有成员国的官方语言总数至少两三百个,如果想实现任意两个国家官方语言的互译,这种组合至少有几万个语言对。再加上上千种非官方语言的小语种,任意两个语种的组合就爆炸了,可以达到几百万个不同语言对,每个语言对独立进行训练学习机器翻译系统,代价投入是难以想象的。上文也提到了,可能有99\%以上语言对属于资源稀缺型,无法收集足够规模的双语句对完成有效的翻译模型训练学习。为了缓解这个资源稀缺语言翻译的问题,学术界已经开展了很多相关研究工作。我们认为资源稀缺语言翻译和多语言翻译两个不同问题可以相互结合来考虑,基本思想是相同或者相似语系的不同语言之间共享翻译知识,简单来说,能否训练学习一个强大的通用翻译模型,不是简单仅仅支持一个语言对翻译,而是有能力同时支持多个不同语言的互译能力。这个方案的好处是不言而喻的,不仅仅大大降低训练学习的代价,同时大大降低系统部署的硬件投入和维护代价。一旦多语言共享翻译模型取得突破,就能够大大缓解小语种翻译的问题,具有良好的理论研究和应用价值。
\vspace{0.5em}
\parinterval 目前神经机器翻译技术被工业界已经广泛使用,我们可以拿Transformer模型来简单讨论一下,在很多其它图像和语音应用领域已经证明网络结构越深,层数越多,有助于提高表示学习能力,提高应用系统的性能。我们同样在机器翻译领域也得到类似结论,如何利用更多层的深层网络来优化机器翻译建模是值得探讨的方向。更深的网络结构也会带来很多麻烦,比如训练代价和有效性问题。训练代价与网络结构深度成正比,这个容易理解,关键是后者训练有效性的问题,比如能否在有限时间内快速收敛,能够收敛到预期结果。传统Transformer模型一旦扩展到10多层,训练学习过程好像就容易出问题,为此我们团队曾提出了deep Transformer模型,有效解决了这个问题,实现有能力训练40层以上的Transformer模型,目的改善机器翻译品质。
\parinterval 目前神经机器翻译技术已经被工业界广泛使用,我们可以拿Transformer模型来简单讨论一下,在很多其它图像和语音应用领域已经证明网络结构越深,层数越多,越有助于提高表示学习能力和应用系统的性能。我们同样在机器翻译领域也得到类似结论,如何利用更多层的网络来优化机器翻译建模是值得探讨的方向。更深的网络结构也会带来很多麻烦,比如训练代价和有效性问题。训练代价与网络结构深度成正比,这个容易理解,关键是后者训练有效性的问题,比如能否在有限时间内快速收敛到预期结果。传统Transformer模型一旦扩展到10多层,训练学习过程好像就容易出问题,为此我们团队曾提出Transformer-DLCL模型,有效缓解了这个问题,实现有能力训练40层以上的Transformer模型,目的是改善机器翻译品质。
\vspace{0.5em}
\parinterval 通常用于构建机器翻译系统的神经网络结构是人为事先确定,包括预定义层数(深度)和每层宽度等,其实人为事先给定的网络结构对于当前任务来说是否最佳,这个问题没有结论,学术界目前也无法很好回答这个问题。但我们的常识性知识可以得知,过于依赖于专家经验来设计网络结构肯定不是最佳方案,后来学术界就产生的网络结构搜索研究工作,如何根据训练数据本身来自动优化模型深层网络结构,争取达到最佳的训练学习效果,这个一个非常有趣的研究方向。目前神经机器翻译技术主要依赖于编码器-解码器两层技术框架,把编码和解码阶段分开,类似于传统的分析和生成阶段分开,两者又相互依赖,好处就是技术架构简单一点,但可能存在表示学习不够充分和错误蔓延可能性等。为了解决这个问题,我们团队做了一个有趣尝试,提出一个新的神经机器翻译技术框架—基于联合分布的注意力模型Reformer,不依赖于传统编码器-解码器技术框架,类似于端到端一步到位的技术框架,直接采用一个统一技术框架完成翻译过程,这项工作目前还比较初级,有待于进一步深入研究。
\parinterval 最后简单评价一下机器翻译市场发展的趋势。机器翻译本身是个强刚需,解决全球用户多语言交流障碍问题。机器翻译产业真正热起来,应该归功于神经机器翻译技术应用,之前基于规则的方法和统计机器翻译技术虽然也在工业界得到了应用,由于翻译品质没有达到用户预期,用户付费欲望比较差,没有良好的商业变现能力,导致机器翻译产业在2017年以前类似于“鸡肋”产业。严格上来说,2016年下半年开始,神经机器翻译技术工业界应用快速激活了用户需求,用户对机器翻译的认可度急剧上升,越来越丰富的应用模式和需求被挖掘出来,除了传统计算机辅助翻译CAT以外,语音和OCR与机器翻译技术结合,大家比较熟悉的语音翻译APP、翻译机、翻译笔、会议AI同传等,还有垂直行业(专利、医药、旅游等)的机器翻译解决方案也逐渐得到了广泛应用。总体来说,机器翻译产学研正在处于快速上升期,每年市场规模至少100\%以上增长,随着多模态机器翻译和大数据翻译技术应用,应用场景会越来越丰富,随着5G甚至6G技术发展,视频翻译和电话通讯翻译等应用会进一步爆发。另外,随着人工智能芯片领域的发展,很自然想到机器翻译芯片也会逐渐得到应用,比如嵌入到手机电话、打印机、复印机、传真机和电视机等智能终端设备,所有内容皆可翻译,任何场景皆可运行,机器翻译服务将进入人们的日常生活中,无所不在,让生活更加美好!
\parinterval 通常用于构建机器翻译系统的神经网络结构是人为事先确定的,包括预定义层数(深度)和每层宽度等,其实人为事先给定的网络结构对于当前任务来说是否最佳,这个问题没有结论,学术界目前也无法很好回答这个问题。但根据我们的常识性知识可以得知,过于依赖专家经验来设计网络结构肯定不是最佳方案,后来学术界就产生了网络结构搜索研究工作,即如何根据训练数据本身来自动优化模型深层网络结构,争取达到最佳的训练学习效果,是一个非常有趣的研究方向。目前神经机器翻译技术主要依赖于编码器-解码器两层技术框架,把编码和解码阶段分开,类似于将传统的分析和生成阶段分开,但两者又相互依赖,这样做的好处是技术架构简单,不过可能存在表示学习不够充分和错误蔓延等问题的可能性。为了解决这个问题,我们团队做了一个有趣尝试,提出一个新的神经机器翻译技术框架\ \dash \ 基于联合分布的注意力模型Reformer,不依赖于传统编码器-解码器技术框架,而是直接采用一个统一技术框架完成翻译过程,这项工作目前还比较初级,有待于进一步深入研究。
\vspace{0.5em}
\parinterval 最后简单评价一下机器翻译市场发展的趋势。机器翻译本身是个强刚需,用于解决全球用户多语言交流障碍问题。机器翻译产业真正热起来,应该归功于神经机器翻译技术应用,之前基于规则的方法和统计机器翻译技术虽然也在工业界得到了应用,但由于翻译品质没有达到用户预期,用户付费欲望比较差,没有良好的商业变现能力,导致机器翻译产业在2017年以前类似于“鸡肋”产业。严格上来说,2016年下半年开始,神经机器翻译技术工业界应用快速激活了用户需求,用户对机器翻译的认可度急剧上升,越来越丰富的应用模式和需求被挖掘出来,除了传统计算机辅助翻译CAT以外,语音和OCR与机器翻译技术结合,使得大家比较熟悉的语音翻译APP、翻译机、翻译笔、会议AI同传和垂直行业(专利、医药、旅游等)等的机器翻译解决方案也逐渐得到了广泛应用。总体来说,机器翻译产学研正处于快速上升期,每年市场规模达到至少100\%以上增长,随着多模态机器翻译和大数据翻译技术应用,应用场景会越来越丰富,随着5G甚至6G技术发展,视频翻译和电话通讯翻译等应用会进一步爆发。另外,随着人工智能芯片领域的发展,很自然地机器翻译芯片也会逐渐得到应用,比如嵌入到手机、打印机、复印机、传真机和电视机等智能终端设备,实现所有内容皆可翻译,任何场景皆可运行的目标,机器翻译服务将进入人们的日常生活中,无所不在,让生活更加美好!
\vspace{0.5em}
%----------------------------------------------
\begin{figure}[htp]
\centering
......
......@@ -5936,6 +5936,275 @@ author = {Yoshua Bengio and
year = {2012}
}
@article{JMLR:v15:srivastava14a,
author = {Nitish Srivastava and Geoffrey Hinton and Alex Krizhevsky and Ilya Sutskever and Ruslan Salakhutdinov},
title = {Dropout: A Simple Way to Prevent Neural Networks from Overfitting},
journal = {Journal of Machine Learning Research},
year = {2014},
volume = {15},
pages = {1929-1958},
}
@inproceedings{DBLP:conf/amta/MullerRS20,
author = {Mathias M{\"{u}}ller and
Annette Rios and
Rico Sennrich},
title = {Domain Robustness in Neural Machine Translation},
pages = {151--164},
publisher = {Association for Machine Translation in the Americas},
year = {2020}
}
@inproceedings{DBLP:conf/sp/Carlini017,
author = {Nicholas Carlini and
David A. Wagner},
title = {Towards Evaluating the Robustness of Neural Networks},
pages = {39--57},
publisher = {IEEE Symposium on Security and Privacy},
year = {2017}
}
@inproceedings{DBLP:conf/cvpr/Moosavi-Dezfooli16,
author = {Seyed-Mohsen Moosavi-Dezfooli and
Alhussein Fawzi and
Pascal Frossard},
title = {DeepFool: {A} Simple and Accurate Method to Fool Deep Neural Networks},
pages = {2574--2582},
publisher = {IEEE Conference on Computer Vision and Pattern Recognition},
year = {2016}
}
@inproceedings{DBLP:conf/acl/ChengJM19,
author = {Yong Cheng and
Lu Jiang and
Wolfgang Macherey},
title = {Robust Neural Machine Translation with Doubly Adversarial Inputs},
pages = {4324--4333},
publisher = {Annual Meeting of the Association for Computational Linguistics},
year = {2019}
}
@inproceedings{DBLP:conf/cvpr/NguyenYC15,
author = {Anh Mai Nguyen and
Jason Yosinski and
Jeff Clune},
title = {Deep neural networks are easily fooled: High confidence predictions
for unrecognizable images},
pages = {427--436},
publisher = {IEEE Conference on Computer Vision and Pattern Recognition},
year = {2015}
}
@inproceedings{DBLP:journals/corr/SzegedyZSBEGF13,
author = {Christian Szegedy and
Wojciech Zaremba and
Ilya Sutskever and
Joan Bruna and
Dumitru Erhan and
Ian J. Goodfellow and
Rob Fergus},
title = {Intriguing properties of neural networks},
publisher = {International Conference on Learning Representations},
year = {2014}
}
@inproceedings{DBLP:journals/corr/GoodfellowSS14,
author = {Ian J. Goodfellow and
Jonathon Shlens and
Christian Szegedy},
title = {Explaining and Harnessing Adversarial Examples},
publisher = {International Conference on Learning Representations},
year = {2015}
}
@inproceedings{DBLP:conf/emnlp/JiaL17,
author = {Robin Jia and
Percy Liang},
title = {Adversarial Examples for Evaluating Reading Comprehension Systems},
pages = {2021--2031},
publisher = {Conference on Empirical Methods in Natural Language Processing},
year = {2017}
}
@inproceedings{DBLP:conf/emnlp/BekoulisDDD18,
author = {Giannis Bekoulis and
Johannes Deleu and
Thomas Demeester and
Chris Develder},
title = {Adversarial training for multi-context joint entity and relation extraction},
pages = {2830--2836},
publisher = {Conference on Empirical Methods in Natural Language Processing},
year = {2018}
}
@inproceedings{DBLP:conf/naacl/YasunagaKR18,
author = {Michihiro Yasunaga and
Jungo Kasai and
Dragomir R. Radev},
title = {Robust Multilingual Part-of-Speech Tagging via Adversarial Training},
pages = {976--986},
publisher = {Annual Conference of the North American Chapter of the Association for Computational Linguistics},
year = {2018}
}
@inproceedings{DBLP:conf/iclr/BelinkovB18,
author = {Yonatan Belinkov and
Yonatan Bisk},
title = {Synthetic and Natural Noise Both Break Neural Machine Translation},
publisher = {International Conference on Learning Representations},
year = {2018}
}
@inproceedings{DBLP:conf/naacl/MichelLNP19,
author = {Paul Michel and
Xian Li and
Graham Neubig and
Juan Miguel Pino},
title = {On Evaluation of Adversarial Perturbations for Sequence-to-Sequence
Models},
pages = {3103--3114},
publisher = {Annual Conference of the North American Chapter of the Association for Computational Linguistics},
year = {2019}
}
@article{Gong2018AdversarialTW,
title={Adversarial Texts with Gradient Methods},
author={Zhitao Gong and Wenlu Wang and B. Li and D. Song and W. Ku},
journal={ArXiv},
year={2018},
volume={abs/1801.07175}
}
@inproceedings{DBLP:conf/naacl/VaibhavSSN19,
author = {Vaibhav and
Sumeet Singh and
Craig Stewart and
Graham Neubig},
title = {Improving Robustness of Machine Translation with Synthetic Noise},
pages = {1916--1920},
publisher = {Annual Conference of the North American Chapter of the Association for Computational Linguistics},
year = {2019}
}
@inproceedings{DBLP:conf/naacl/AnastasopoulosL19,
author = {Antonios Anastasopoulos and
Alison Lui and
Toan Q. Nguyen and
David Chiang},
title = {Neural Machine Translation of Text from Non-Native Speakers},
pages = {3070--3080},
publisher = {Annual Conference of the North American Chapter of the Association for Computational Linguistics},
year = {2019}
}
@inproceedings{DBLP:conf/acl/SinghGR18,
author = {Marco T{\'{u}}lio Ribeiro and
Sameer Singh and
Carlos Guestrin},
title = {Semantically Equivalent Adversarial Rules for Debugging {NLP} models},
pages = {856--865},
publisher = {Annual Meeting of the Association for Computational Linguistics},
year = {2018}
}
@article{DBLP:journals/corr/SamantaM17,
author = {Suranjana Samanta and
Sameep Mehta},
title = {Towards Crafting Text Adversarial Samples},
journal = {CoRR},
volume = {abs/1707.02812},
year = {2017}
}
@inproceedings{DBLP:conf/ijcai/0002LSBLS18,
author = {Bin Liang and
Hongcheng Li and
Miaoqiang Su and
Pan Bian and
Xirong Li and
Wenchang Shi},
title = {Deep Text Classification Can be Fooled},
pages = {4208--4215},
publisher = {International Joint Conference on Artificial Intelligence},
year = {2018}
}
@inproceedings{DBLP:conf/coling/EbrahimiLD18,
author = {Javid Ebrahimi and
Daniel Lowd and
Dejing Dou},
title = {On Adversarial Examples for Character-Level Neural Machine Translation},
pages = {653--663},
publisher = {International Conference on Computational Linguistics},
year = {2018}
}
@inproceedings{DBLP:conf/iclr/ZhaoDS18,
author = {Zhengli Zhao and
Dheeru Dua and
Sameer Singh},
title = {Generating Natural Adversarial Examples},
publisher = {International Conference on Learning Representations},
year = {2018}
}
@inproceedings{DBLP:conf/acl/LiuTMCZ18,
author = {Yong Cheng and
Zhaopeng Tu and
Fandong Meng and
Junjie Zhai and
Yang Liu},
title = {Towards Robust Neural Machine Translation},
pages = {1756--1766},
publisher = {Annual Meeting of the Association for Computational Linguistics},
year = {2018}
}
@inproceedings{DBLP:conf/acl/LiuMHXH19,
author = {Hairong Liu and
Mingbo Ma and
Liang Huang and
Hao Xiong and
Zhongjun He},
title = {Robust Neural Machine Translation with Joint Textual and Phonetic
Embedding},
pages = {3044--3049},
publisher = {Annual Meeting of the Association for Computational Linguistics},
year = {2019}
}
@inproceedings{DBLP:conf/acl/LiLWJXZLL20,
author = {Bei Li and
Hui Liu and
Ziyang Wang and
Yufan Jiang and
Tong Xiao and
Jingbo Zhu and
Tongran Liu and
Changliang Li},
title = {Does Multi-Encoder Help? {A} Case Study on Context-Aware Neural Machine
Translation},
pages = {3512--3518},
publisher = {Annual Meeting of the Association for Computational Linguistics},
year = {2020}
}
@techreport{chen1999gaussian,
title={A Gaussian prior for smoothing maximum entropy models},
author={Chen, Stanley F and Rosenfeld, Ronald},
year={1999},
institution={CARNEGIE-MELLON UNIV PITTSBURGH PA SCHOOL OF COMPUTER SCIENCE}
}
@inproceedings{DBLP:conf/emnlp/MichelN18,
author = {Paul Michel and
Graham Neubig},
title = {{MTNT:} {A} Testbed for Machine Translation of Noisy Text},
pages = {543--553},
publisher = {Conference on Empirical Methods in Natural Language Processing},
year = {2018}
}
%%%%% chapter 13------------------------------------------------------
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论