Commit 5207477a by 曹润柘

合并分支 'caorunzhe' 到 'master'

Caorunzhe

查看合并请求 !449
parents a85691e1 1d20a367
...@@ -669,7 +669,7 @@ Joint training for neural machine translation models with monolingual data ...@@ -669,7 +669,7 @@ Joint training for neural machine translation models with monolingual data
\noindent 其中, $\operatorname{SVD}(\cdot)$表示奇异值分解,$\mathbi{Y}'$$\mathbi{X}'$中的单词来自$D$且行对齐。利用上式可以获得新的$\mathbi{W}$,通过$\mathbi{W}$可以归纳出新的$D$,如此迭代进行微调最后即可以得到收敛的$D$ \noindent 其中, $\operatorname{SVD}(\cdot)$表示奇异值分解,$\mathbi{Y}'$$\mathbi{X}'$中的单词来自$D$且行对齐。利用上式可以获得新的$\mathbi{W}$,通过$\mathbi{W}$可以归纳出新的$D$,如此迭代进行微调最后即可以得到收敛的$D$
\parinterval 较早的无监督方法是基于GAN\upcite{DBLP:conf/acl/ZhangLLS17,DBLP:conf/emnlp/ZhangLLS17,DBLP:conf/iclr/LampleCRDJ18},这是一个很自然的想法,利用生成器产生映射然后用判别器来区别两个空间,尽管它取得了不错的效果,然而研究表明GAN缺乏稳定性,容易在低资源语言对上失败\upcite{hartmann2018empirical},因此有不少改进的工作,比如:利用变分自编码器(Variational Autoencoders,VAEs)来捕获更深层次的语义信息并结合对抗训练的方法\upcite{DBLP:conf/emnlp/DouZH18,DBLP:conf/naacl/MohiuddinJ19};通过改进最近邻点的度量函数来提升性能的方法\upcite{DBLP:conf/acl/HuangQC19,DBLP:conf/emnlp/JoulinBMJG18};利用多语言信号来提升性能的方法\upcite{DBLP:conf/emnlp/ChenC18,DBLP:conf/emnlp/TaitelbaumCG19,DBLP:journals/corr/abs-1811-01124,DBLP:conf/naacl/HeymanVVM19};也有一些工作舍弃GAN,通过直接优化度量空间距离来进行匹配的方法\upcite{DBLP:conf/emnlp/HoshenW18,DBLP:conf/emnlp/XuYOW18,DBLP:conf/emnlp/Alvarez-MelisJ18,DBLP:conf/emnlp/MukherjeeYH18}。此外,也有一些工作是旨在分析或提升无监督词典归纳的鲁棒性。比如通过大量实验来分析无监督词典归纳任务的局限性、难点以及挑战\upcite{DBLP:conf/acl/SogaardVR18,DBLP:conf/acl/OrmazabalALSA19,DBLP:conf/emnlp/VulicGRK19,DBLP:conf/emnlp/HartmannKS18};分析和对比目前各种无监督方法的性能\upcite{DBLP:conf/nips/HartmannKS19};通过实验分析指出目前所用的数据集存在的问题\upcite{DBLP:conf/emnlp/Kementchedjhieva19} \parinterval 较早的无监督方法是基于GAN\upcite{DBLP:conf/acl/ZhangLLS17,DBLP:conf/emnlp/ZhangLLS17,DBLP:conf/iclr/LampleCRDJ18},这是一个很自然的想法,利用生成器产生映射然后用判别器来区别两个空间,尽管它取得了不错的效果,然而研究表明GAN缺乏稳定性,容易在低资源语言对上失败\upcite{hartmann2018empirical},因此有不少改进的工作,比如:利用{\small\bfnew{变分自编码器}}(Variational Autoencoders,VAEs)来捕获更深层次的语义信息并结合对抗训练的方法\upcite{DBLP:conf/emnlp/DouZH18,DBLP:conf/naacl/MohiuddinJ19};通过改进最近邻点的度量函数来提升性能的方法\upcite{DBLP:conf/acl/HuangQC19,DBLP:conf/emnlp/JoulinBMJG18};利用多语言信号来提升性能的方法\upcite{DBLP:conf/emnlp/ChenC18,DBLP:conf/emnlp/TaitelbaumCG19,DBLP:journals/corr/abs-1811-01124,DBLP:conf/naacl/HeymanVVM19};也有一些工作舍弃GAN,通过直接优化度量空间距离来进行匹配的方法\upcite{DBLP:conf/emnlp/HoshenW18,DBLP:conf/emnlp/XuYOW18,DBLP:conf/emnlp/Alvarez-MelisJ18,DBLP:conf/emnlp/MukherjeeYH18}。此外,也有一些工作是旨在分析或提升无监督词典归纳的鲁棒性。比如通过大量实验来分析无监督词典归纳任务的局限性、难点以及挑战\upcite{DBLP:conf/acl/SogaardVR18,DBLP:conf/acl/OrmazabalALSA19,DBLP:conf/emnlp/VulicGRK19,DBLP:conf/emnlp/HartmannKS18};分析和对比目前各种无监督方法的性能\upcite{DBLP:conf/nips/HartmannKS19};通过实验分析指出目前所用的数据集存在的问题\upcite{DBLP:conf/emnlp/Kementchedjhieva19}
%---------------------------------------------------------------------------------------- %----------------------------------------------------------------------------------------
...@@ -701,15 +701,15 @@ Joint training for neural machine translation models with monolingual data ...@@ -701,15 +701,15 @@ Joint training for neural machine translation models with monolingual data
\subsection{无监督统计机器翻译} \subsection{无监督统计机器翻译}
\parinterval 在无监督词典归纳的基础上,可以进一步得到句子间的翻译,实现无监督机器翻译\upcite{DBLP:journals/talip/MarieF20}。统计机器翻译作为机器翻译的主流方法,对其进行无监督学习可以帮助我们构建初始的无监督机器翻译系统。这样,它可以进一步被用于训练更为先进的无监督神经机器翻译系统。以基于短语的统计机器翻译为例,系统主要包含短语表、语言模型、调序模型以及权重调优等模块(见{\chapterseven})。其中短语表和模型调优需要双语数据,而语言模型和调序模型只依赖于单语数据。因此,如果可以通过无监督的方法完成短语表和权重调优,那么就得到了无监督统计机器翻译系统{\color{red} 参考文献!} \parinterval 在无监督词典归纳的基础上,可以进一步得到句子间的翻译,实现无监督机器翻译\upcite{DBLP:journals/talip/MarieF20}。统计机器翻译作为机器翻译的主流方法,对其进行无监督学习可以帮助我们构建初始的无监督机器翻译系统。这样,它可以进一步被用于训练更为先进的无监督神经机器翻译系统。以基于短语的统计机器翻译为例,系统主要包含短语表、语言模型、调序模型以及权重调优等模块(见{\chapterseven})。其中短语表和模型调优需要双语数据,而语言模型和调序模型只依赖于单语数据。因此,如果可以通过无监督的方法完成短语表和权重调优,那么就得到了无监督统计机器翻译系统\upcite{DBLP:conf/emnlp/ArtetxeLA18}
%---------------------------------------------------------------------------------------- %----------------------------------------------------------------------------------------
% NEW SUB-SUB-SECTION % NEW SUB-SUB-SECTION
%---------------------------------------------------------------------------------------- %----------------------------------------------------------------------------------------
\subsubsection{1. 无监督短语归纳{\color{red} 参考文献!}} \subsubsection{1. 无监督短语归纳}
\parinterval 回顾统计机器翻译中的短语表,其实它类似于一个词典,对一个源语言短语给出相应的短语翻译{\color{red} 引用PBMT的论文,NAACL2003!}。只不过词典的基本单元是词,而短语表的基本单元是短语(或$n$-gram)。此外短语表还提供短语翻译的得分。既然短语表跟词典如此相似,那么很容易就可以把无监督词典归纳的方法移植到处理短语上,也就是把里面的词替换成短语,就可以无监督地得到短语表。 \parinterval 回顾统计机器翻译中的短语表,其实它类似于一个词典,对一个源语言短语给出相应的短语翻译\upcite{DBLP:conf/ki/ZensON02}。只不过词典的基本单元是词,而短语表的基本单元是短语(或$n$-gram)。此外短语表还提供短语翻译的得分。既然短语表跟词典如此相似,那么很容易就可以把无监督词典归纳的方法移植到处理短语上,也就是把里面的词替换成短语,就可以无监督地得到短语表。
\parinterval\ref{unsupervised-dictionary-induction}节所示,无监督词典归纳的方法依赖于词的分布式表达,也就是词嵌入。因此当把无监督词典归纳拓展到短语上时,首先需要获得短语的分布式表达。比较简单的方法是把词换成短语,然后借助无监督词典归纳相同的算法得到短语的分布式表达。最后直接应用无监督词典归纳方法,得到源语言短语与目标语言短语之间的对应。 \parinterval\ref{unsupervised-dictionary-induction}节所示,无监督词典归纳的方法依赖于词的分布式表达,也就是词嵌入。因此当把无监督词典归纳拓展到短语上时,首先需要获得短语的分布式表达。比较简单的方法是把词换成短语,然后借助无监督词典归纳相同的算法得到短语的分布式表达。最后直接应用无监督词典归纳方法,得到源语言短语与目标语言短语之间的对应。
...@@ -722,7 +722,7 @@ P(t|s)=\frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\sum_{\mathbi{y}^{'}}\mat ...@@ -722,7 +722,7 @@ P(t|s)=\frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\sum_{\mathbi{y}^{'}}\mat
\noindent 其中,$\mathrm{cos}$是余弦相似度,$\mathbi{x}$是经过无监督词典归纳里$\mathbi{W}$转换的源语言短语嵌入,$\mathbi{y}$是目标语言短语嵌入,$\mathbi{y}^{'}$是所有可能的目标语短语嵌入,$\tau$控制产生的分布$P$的尖锐程度的一个超参数。 \noindent 其中,$\mathrm{cos}$是余弦相似度,$\mathbi{x}$是经过无监督词典归纳里$\mathbi{W}$转换的源语言短语嵌入,$\mathbi{y}$是目标语言短语嵌入,$\mathbi{y}^{'}$是所有可能的目标语短语嵌入,$\tau$控制产生的分布$P$的尖锐程度的一个超参数。
\parinterval 一个问题是在无监督的情景下我们没有任何双语数据,那么如何得到最优的$\tau$?这里,可以寻找一个$\tau$使得所有$P(\mathbi{y}|\mathbi{x})$ 最大{\color{red} 参考文献!}。通常,取离一个给定的$\mathbi{y}$最接近的$\mathbi{x}$ 而不是给定$\mathbi{x}$ 选取最近的$\mathbi{y}$来计算$P(\mathbi{y}|\mathbi{x})$,因为给定$\mathbi{x}$得到的最近$\mathbi{y}$总是$P(\mathbi{y}|\mathbi{x})$里概率最大的元素,这时候$\tau$总是可以通过逼近0来使得所有$P$的取值都接近1。实际中为了选取最优$\tau$我们会为$P(\mathbi{y}|\mathbi{x})$$P(\mathbi{x}|\mathbi{y})$ 同时优化$\tau$ \parinterval 一个问题是在无监督的情景下我们没有任何双语数据,那么如何得到最优的$\tau$?这里,可以寻找一个$\tau$使得所有$P(\mathbi{y}|\mathbi{x})$ 最大\upcite{DBLP:conf/emnlp/ArtetxeLA18}。通常,取离一个给定的$\mathbi{y}$最接近的$\mathbi{x}$ 而不是给定$\mathbi{x}$ 选取最近的$\mathbi{y}$来计算$P(\mathbi{y}|\mathbi{x})$,因为给定$\mathbi{x}$得到的最近$\mathbi{y}$总是$P(\mathbi{y}|\mathbi{x})$里概率最大的元素,这时候$\tau$总是可以通过逼近0来使得所有$P$的取值都接近1。实际中为了选取最优$\tau$我们会为$P(\mathbi{y}|\mathbi{x})$$P(\mathbi{x}|\mathbi{y})$ 同时优化$\tau$
%---------------------------------------------------------------------------------------- %----------------------------------------------------------------------------------------
% NEW SUB-SUB-SECTION % NEW SUB-SUB-SECTION
...@@ -730,17 +730,17 @@ P(t|s)=\frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\sum_{\mathbi{y}^{'}}\mat ...@@ -730,17 +730,17 @@ P(t|s)=\frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\sum_{\mathbi{y}^{'}}\mat
\subsubsection{2. 无监督权重调优} \subsubsection{2. 无监督权重调优}
\parinterval 有了短语表之后,剩下的问题是如何在没有双语数据的情况下进行模型调优,从而把短语表、语言模型、调序模型等模块融合起来{\color{red} 引用MERT的论文!}。在统计机器翻译系统中,短语表可以提供短语的翻译,而语言模型可以保证从短语的翻译拼装得到的句子的流畅度,因此统计机器翻译模型即使在没有权重调优的基础上已经具备了一定的翻译能力。所以一个简单而有效的无监督方法就是使用未经过模型调优的统计机器翻译模型进行回译,也就是把目标语句子翻译成源语句子后把翻译得到的源语句子当成输入而目标语句子当成标准答案,完成权重调优。 \parinterval 有了短语表之后,剩下的问题是如何在没有双语数据的情况下进行模型调优,从而把短语表、语言模型、调序模型等模块融合起来\upcite{DBLP:conf/acl/Och03}。在统计机器翻译系统中,短语表可以提供短语的翻译,而语言模型可以保证从短语的翻译拼装得到的句子的流畅度,因此统计机器翻译模型即使在没有权重调优的基础上已经具备了一定的翻译能力。所以一个简单而有效的无监督方法就是使用未经过模型调优的统计机器翻译模型进行回译,也就是把目标语句子翻译成源语句子后把翻译得到的源语句子当成输入而目标语句子当成标准答案,完成权重调优。
\parinterval 经过上述的无监督模型调优后,就获得了一个比未经调优效果更好的翻译模型。这时候一个自然的想法就是可以使用这个更好更强的翻译模型去产生质量更高的数据,然后用这些数据来继续对翻译模型进行调优,如此反复迭代一定次数后停止。这个方法也被称为{\small\bfnew{迭代优化}}\index{迭代优化}(Iterative Refinement\index{Iterative Refinement}{\color{red} 参考文献!} \parinterval 经过上述的无监督模型调优后,就获得了一个比未经调优效果更好的翻译模型。这时候一个自然的想法就是可以使用这个更好更强的翻译模型去产生质量更高的数据,然后用这些数据来继续对翻译模型进行调优,如此反复迭代一定次数后停止。这个方法也被称为{\small\bfnew{迭代优化}}\index{迭代优化}(Iterative Refinement\index{Iterative Refinement}\upcite{DBLP:conf/emnlp/ArtetxeLA18}
\parinterval 迭代优化也会带来另外一个问题:在每一次迭代中都会产生新的模型,应该什么时候停止生成新模型,挑选哪一个模型?因为在无监督的场景当中,没有任何真实的双语数据可以使用,所以无法使用监督学习里的校验集来对每个模型进行检验并筛选。另外,即使有很少量的双语数据(比如数百条双语句对),直接在上面挑选模型和调整超参数会导致过拟合问题,使得最后结果越来越差。一个经验上非常高效的模型选择方法是:可以({\color{red} 从???里})挑选一些句子,然后使用当前的模型把这些句子翻译过去之后再翻译回来(源语言$\to $目标语言$\to$源语言,或者目标语言$\to$源语言$\to$目标语言),得到的结果跟原始的结果计算BLEU,得分越高则效果越好。这样一种无监督模型挑选标准经验上被证明是跟使用大的双语校验集的结果高度相关的\upcite{DBLP:conf/emnlp/LampleOCDR18} \parinterval 迭代优化也会带来另外一个问题:在每一次迭代中都会产生新的模型,应该什么时候停止生成新模型,挑选哪一个模型?因为在无监督的场景当中,没有任何真实的双语数据可以使用,所以无法使用监督学习里的校验集来对每个模型进行检验并筛选。另外,即使有很少量的双语数据(比如数百条双语句对),直接在上面挑选模型和调整超参数会导致过拟合问题,使得最后结果越来越差。一个经验上非常高效的模型选择方法是:事先从训练集里挑选一部分句子作为校验集不参与训练,然后使用当前的模型把这些句子翻译过去之后再翻译回来(源语言$\to $目标语言$\to$源语言,或者目标语言$\to$源语言$\to$目标语言),得到的结果跟原始的结果计算BLEU,得分越高则效果越好。这样一种无监督模型挑选标准经验上被证明是跟使用大的双语校验集的结果高度相关的\upcite{DBLP:conf/emnlp/LampleOCDR18}
%---------------------------------------------------------------------------------------- %----------------------------------------------------------------------------------------
% NEW SUB-SECTION % NEW SUB-SECTION
%---------------------------------------------------------------------------------------- %----------------------------------------------------------------------------------------
\subsection{无监督神经机器翻译{\color{red} 参考文献较少!或者加一个拓展阅读!}}\label{unsupervised-NMT} \subsection{无监督神经机器翻译}\label{unsupervised-NMT}
\parinterval 既然神经机器翻译已经在很多任务上优于统计机器翻译,为什么不直接做无监督神经机器翻译呢?实际上,由于神经网络的黑盒特性使得我们无法像统计机器翻译那样对其进行拆解,并定位问题。因此需要借用其它无监督翻译系统来训练神经机器翻译模型。 \parinterval 既然神经机器翻译已经在很多任务上优于统计机器翻译,为什么不直接做无监督神经机器翻译呢?实际上,由于神经网络的黑盒特性使得我们无法像统计机器翻译那样对其进行拆解,并定位问题。因此需要借用其它无监督翻译系统来训练神经机器翻译模型。
%---------------------------------------------------------------------------------------- %----------------------------------------------------------------------------------------
...@@ -749,7 +749,7 @@ P(t|s)=\frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\sum_{\mathbi{y}^{'}}\mat ...@@ -749,7 +749,7 @@ P(t|s)=\frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\sum_{\mathbi{y}^{'}}\mat
\subsubsection{1. 基于无监督统计机器翻译的方法} \subsubsection{1. 基于无监督统计机器翻译的方法}
一个简单的方法是,借助已经成功的无监督方法来为神经机器翻译模型提供少量双语监督信号,然后在这个基础上训练模型。由于初始的监督信号可能很少或者包含大量噪声,因此需要逐步优化数据来重新训练出更好的模型。这个方案最简单直接的实现就是借助已经成功的无监督统计机器翻译模型产生伪双语数据来训练神经机器翻译模型 ,然后模型进行迭代回译来进行数据优化,如图\ref{fig:16-1} 所示\upcite{DBLP:conf/acl/ArtetxeLA19}。这个方法的优点是直观,并且性能稳定,容易调试(所有模块都互相独立)。缺点是复杂繁琐,涉及许多超参数调整工作,而且训练代价较大({\color{red} 再来一些参考文献?} 一个简单的方法是,借助已经成功的无监督方法来为神经机器翻译模型提供少量双语监督信号,然后在这个基础上训练模型。由于初始的监督信号可能很少或者包含大量噪声,因此需要逐步优化数据来重新训练出更好的模型。这也是目前所有无监督神经机器翻译方法的核心思路。这个方案最简单直接的实现就是借助已经成功的无监督统计机器翻译模型产生伪双语数据来训练神经机器翻译模型 ,然后模型进行迭代回译来进行数据优化,如图\ref{fig:16-1} 所示\upcite{DBLP:conf/acl/ArtetxeLA19}。这个方法的优点是直观,并且性能稳定,容易调试(所有模块都互相独立)。缺点是复杂繁琐,涉及许多超参数调整工作,而且训练代价较大
\begin{figure}[h] \begin{figure}[h]
\centering \centering
...@@ -774,7 +774,7 @@ P(t|s)=\frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\sum_{\mathbi{y}^{'}}\mat ...@@ -774,7 +774,7 @@ P(t|s)=\frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\sum_{\mathbi{y}^{'}}\mat
\vspace{0.5em} \vspace{0.5em}
\end{itemize} \end{itemize}
而第二阶段的改写任务其实也是一个特殊的翻译任务,只不过现在的源语言和目标语言是使用不同的方式表达的同一种语言的句子。因此可以使用神经机器翻译模型来完成这个任务,而且由于这里不涉及双语数据而只需要单语数据,模型的训练也将是无监督的。这样的方法不再需要无监督统计机器翻译,并且适应能力很强。对于新语种,不需要重新训练神经机器翻译模型,只需要训练无监督词典归纳进行词的翻译,然后使用相同的模型进行改写。但是,目前训练数据需要使用其他语种对的双语数据来进行构造(把源语言句子里每个词使用双语词典进行翻译作为输入,输出的目标语言句子不变)。虽然可以通过把单语句子根据规则或者随机进行打乱来生成训练数据,但是这些句子不符合语言学的规律,并且跟真实句子所服从的数据分布不一致,导致训练测试不一致的问题。最后,可以进一步化简流程({\color{red} 和后面的但是逻辑关系没看懂!}),但是两个阶段的过程无法避免最终翻译模型继承来自无监督词典归纳的错误\upcite{DBLP:conf/acl/PourdamghaniAGK19}。一个相对更简洁一些的方法则是把无监督词典归纳得到的词典对单语数据进行逐词的翻译,然后在相应的伪数据上训练最初的翻译模型,最后不断地交替优化数据和模型,得到更好的翻译模型\upcite{DBLP:conf/iclr/LampleCDR18} 而第二阶段的改写任务其实也是一个特殊的翻译任务,只不过现在的源语言和目标语言是使用不同的方式表达的同一种语言的句子。因此可以使用神经机器翻译模型来完成这个任务,而且由于这里不涉及双语数据而只需要单语数据,模型的训练也将是无监督的。这样的方法不再需要无监督统计机器翻译,并且适应能力很强。对于新语种,不需要重新训练神经机器翻译模型,只需要训练无监督词典归纳进行词的翻译,然后使用相同的模型进行改写。但是,目前训练数据需要使用其他语种对的双语数据来进行构造(把源语言句子里每个词使用双语词典进行翻译作为输入,输出的目标语言句子不变)。虽然可以通过把单语句子根据规则或者随机进行打乱来生成训练数据,但是这些句子不符合语言学的规律,并且跟真实句子所服从的数据分布不一致,导致训练测试不一致的问题。而且这样一个两阶段的过程会产生错误传播的问题,比如无监督词典归纳对一些词进行了错误的翻译,那么这些错误的翻译会被送到神经机器翻译模型里进行改写,而因为翻译模型这时候已经无法看到源语言句子来进行修正,所以最终的结果将继承无监督词典归纳的错误\upcite{DBLP:conf/acl/PourdamghaniAGK19}
\begin{figure}[h] \begin{figure}[h]
\centering \centering
...@@ -789,7 +789,7 @@ P(t|s)=\frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\sum_{\mathbi{y}^{'}}\mat ...@@ -789,7 +789,7 @@ P(t|s)=\frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\sum_{\mathbi{y}^{'}}\mat
\subsubsection{3. 更深层的融合} \subsubsection{3. 更深层的融合}
\parinterval 为了获得更好的神经机器翻译模型,可以对训练流程和模型做更深度的整合。{\chapternine}已经介绍,神经机器翻译模型的训练包含两个阶段:初始化和优化,而无监督神经机器翻译的核心思路也是对应的两个阶段:无监督方法提供初始的监督信号和数据优化,因此可以考虑通过在模型的初始化阶段使用无监督方法提供初始的监督信号,然后优化过程不但优化模型的参数,还优化训练使用的数据,从而避免流水线带来的错误传播,如图\ref{fig:16-3}所示\upcite{DBLP:conf/nips/ConneauL19} \parinterval 为了获得更好的神经机器翻译模型,可以对训练流程和模型做更深度的整合。{\chapternine}已经介绍,神经机器翻译模型的训练包含两个阶段:初始化和优化,而无监督神经机器翻译的核心思路也是对应的两个阶段:无监督方法提供初始的监督信号和数据优化,因此可以考虑通过在模型的初始化阶段使用无监督方法提供初始的监督信号,然后优化过程不但优化模型的参数,还优化训练使用的数据,从而避免流水线带来的错误传播。其中初始的监督信号可以通过两种方法提供给模型,一种是直接使用无监督方法提供最初的伪双语数据来训练最初的翻译模型,另一种则是借助无监督方法来初始化模型,得到最初的翻译模型后直接使用初始化好的翻译模型产生伪双语数据来训练自己,如图\ref{fig:16-3}所示。图\ref{fig:16-3}a的一个简单实现是利用无监督词典归纳得到的词典对单语数据进行逐词的翻译,得到最初的伪双语数据,然后在这些数据上训练最初的翻译模型,最后不断地交替优化数据和模型,得到更好的翻译模型和质量更好的伪数据\upcite{DBLP:conf/iclr/LampleCDR18}。这样的做法通过不断优化训练用的双语数据,摆脱了无监督词典归纳在最初的伪双语数据中遗留下来的错误,同时也避免了使用无监督统计机器翻译模型的繁琐和代价。图\ref{fig:16-3}b的实现则依赖于具体的翻译模型初始化方法,我们将在下一节讨论翻译模型的不同初始化方法
\begin{figure}[h] \begin{figure}[h]
\centering \centering
...@@ -806,7 +806,7 @@ P(t|s)=\frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\sum_{\mathbi{y}^{'}}\mat ...@@ -806,7 +806,7 @@ P(t|s)=\frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\sum_{\mathbi{y}^{'}}\mat
\parinterval 实际中无监督神经机器翻译模型的训练并不简单。一般来说,可以相信在生成的伪数据上经过参数优化后模型会变得比生成伪数据的时候更好,这时候对这个更好的模型使用数据增强的手段(如回译等)就可以生成更好的训练数据。这样一个数据优化过程依赖于一个假设:模型经过参数优化后会生成比原始数据更好的数据。而在数据优化和参数优化共同影响下,模型非常容易拟合数据中的简单模式,使得在数据优化过程中模型倾向产生包含这种简单模式的数据,然后模型对这种类型数据过拟合,最后训练模型的损失可以下降到很低,然而模型生成的结果却非常差。一个常见的问题解就是模型对任何输入都输出相同的译文,这时候翻译模型无法产生任何有意义的结果,而它的训练过程则退化成普通的语言模型(数据优化产生的数据里无论什么目标语言对应的源语言都是同一个句子)。这种情况下翻译模型虽然能降低损失(训练语言模型),但是它不能学会任何源语言跟目标语言之间的对应关系,也就无法翻译。这个现象也反映出无监督机器翻译训练的脆弱性。 \parinterval 实际中无监督神经机器翻译模型的训练并不简单。一般来说,可以相信在生成的伪数据上经过参数优化后模型会变得比生成伪数据的时候更好,这时候对这个更好的模型使用数据增强的手段(如回译等)就可以生成更好的训练数据。这样一个数据优化过程依赖于一个假设:模型经过参数优化后会生成比原始数据更好的数据。而在数据优化和参数优化共同影响下,模型非常容易拟合数据中的简单模式,使得在数据优化过程中模型倾向产生包含这种简单模式的数据,然后模型对这种类型数据过拟合,最后训练模型的损失可以下降到很低,然而模型生成的结果却非常差。一个常见的问题解就是模型对任何输入都输出相同的译文,这时候翻译模型无法产生任何有意义的结果,而它的训练过程则退化成普通的语言模型(数据优化产生的数据里无论什么目标语言对应的源语言都是同一个句子)。这种情况下翻译模型虽然能降低损失(训练语言模型),但是它不能学会任何源语言跟目标语言之间的对应关系,也就无法翻译。这个现象也反映出无监督机器翻译训练的脆弱性。
\parinterval 比较常见的解决方案是在双语数据对应的目标函数外增加一个语言模型的目标函数。因为,在初始阶段,由于数据中存在大量不通顺的句子,额外的语言模型目标函数能把部分句子纠正过来,使得模型逐渐生成更好的数据{\color{red} 参考文献!}。这个方法在实际中非常有效,尽管目前还没有理论上的支持。 \parinterval 比较常见的解决方案是在双语数据对应的目标函数外增加一个语言模型的目标函数。因为,在初始阶段,由于数据中存在大量不通顺的句子,额外的语言模型目标函数能把部分句子纠正过来,使得模型逐渐生成更好的数据\upcite{DBLP:conf/emnlp/LampleOCDR18}。这个方法在实际中非常有效,尽管目前还没有理论上的支持。
\parinterval 无监督神经机器翻译还有两个关键的技巧: \parinterval 无监督神经机器翻译还有两个关键的技巧:
\begin{itemize} \begin{itemize}
...@@ -829,14 +829,14 @@ P(t|s)=\frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\sum_{\mathbi{y}^{'}}\mat ...@@ -829,14 +829,14 @@ P(t|s)=\frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\sum_{\mathbi{y}^{'}}\mat
\begin{itemize} \begin{itemize}
\vspace{0.5em} \vspace{0.5em}
\item {\small\bfnew{模型参数初始化}}。无监督神经机器翻译的关键在于如何提供最开始的监督信号,从而启动后续的迭代流程。无监督词典归纳已经可以提供一些可靠的监督信号,那么如何在模型初始化中融入这些信息?既然神经机器翻译模型都使用词嵌入层作为输入,而无监督词典归纳总是首先把两个语言各自的单语词嵌入映射到一个空间后才归纳双语词典,那么可以使用这些映射后的词嵌入来初始化模型的词嵌入层,然后在这个基础上训练模型,因为这些映射后的词嵌入天然就包含了大量的监督信号,比如,两个语言里意思相近的词对应的词嵌入会比其他词更靠近对方\upcite{DBLP:journals/ipm/FarhanTAJATT20}。 为了防止训练过程中模型参数的更新会破坏词嵌入当中的词对齐信息,通常初始化后会固定模型的词嵌入层不让其更新。 \item {\small\bfnew{模型参数初始化}}。无监督神经机器翻译的关键在于如何提供最开始的监督信号,从而启动后续的迭代流程。无监督词典归纳已经可以提供一些可靠的监督信号,那么如何在模型初始化中融入这些信息?既然神经机器翻译模型都使用词嵌入层作为输入,而无监督词典归纳总是首先把两个语言各自的单语词嵌入映射到一个空间后才归纳双语词典,那么可以使用这些映射后的词嵌入来初始化模型的词嵌入层,然后在这个基础上训练模型,因为这些映射后的词嵌入天然就包含了大量的监督信号,比如,两个语言里意思相近的词对应的词嵌入会比其他词更靠近对方\upcite{DBLP:journals/ipm/FarhanTAJATT20}。 为了防止训练过程中模型参数的更新会破坏词嵌入当中的词对齐信息,通常初始化后会固定模型的词嵌入层不让其更新\upcite{DBLP:conf/emnlp/ArtetxeLA18}
\parinterval 进一步的研究表明,无监督神经机器翻译能在提供更少监督信号的情况下启动,也就是可以去除无监督词典归纳这一步骤{\color{red} 参考文献!}。这时候模型的初始化直接使用共享词表的预训练模型的参数作为起始点。这个预训练模型直接使用前面提到的预训练方法(如MASS)进行训练,区别在于模型的大小如宽度和深度需要严格匹配翻译模型。此外,这个模型不仅仅只在一个语言的单语数据上进行训练,而是同时在两个语言的单语数据上进行训练,并且两个语言的词表进行共享。前面提到,在共享词表特别是共享子词词表的情况下,已经隐式的告诉模型源语言和目标语言里一样的(子)词互为翻译,相当于模型使用了少量的监督信号。在这基础上使用两个语言的单语数据进行预训练,则通过模型共享进一步挖掘了语言之间共通的部分。因此,使用预训练模型进行初始化后,无监督神经机器翻译模型已经得到大量的监督信号,从而得以不断通过优化来提升模型性能。 \parinterval 进一步的研究表明,无监督神经机器翻译能在提供更少监督信号的情况下启动,也就是可以去除无监督词典归纳这一步骤\upcite{DBLP:conf/nips/ConneauL19}。这时候模型的初始化直接使用共享词表的预训练模型的参数作为起始点。这个预训练模型直接使用前面提到的预训练方法(如MASS)进行训练,区别在于模型的大小如宽度和深度需要严格匹配翻译模型。此外,这个模型不仅仅只在一个语言的单语数据上进行训练,而是同时在两个语言的单语数据上进行训练,并且两个语言的词表进行共享。前面提到,在共享词表特别是共享子词词表的情况下,已经隐式的告诉模型源语言和目标语言里一样的(子)词互为翻译,相当于模型使用了少量的监督信号。在这基础上使用两个语言的单语数据进行预训练,则通过模型共享进一步挖掘了语言之间共通的部分。因此,使用预训练模型进行初始化后,无监督神经机器翻译模型已经得到大量的监督信号,从而得以不断通过优化来提升模型性能。
\vspace{0.5em} \vspace{0.5em}
\item {\small\bfnew{语言模型的使用}}。无监督神经机器翻译的一个重要部分就是来自语言模型的目标函数。因为翻译模型本质上是在完成文本生成任务,所以只有文本生成类型的语言模型建模方法才可以应用到无监督神经机器翻译里。比如,经典的给定前文预测下一词就是一个典型的自回归生成任务(见{\chaptertwo}),因此可以运用到无监督神经机器翻译里。但是,目前在预训练里流行的BERT等模型是自编码模型({\color{red} 参考文献!},就不能直接在无监督神经翻译里使用。 \item {\small\bfnew{语言模型的使用}}。无监督神经机器翻译的一个重要部分就是来自语言模型的目标函数。因为翻译模型本质上是在完成文本生成任务,所以只有文本生成类型的语言模型建模方法才可以应用到无监督神经机器翻译里。比如,经典的给定前文预测下一词就是一个典型的自回归生成任务(见{\chaptertwo}),因此可以运用到无监督神经机器翻译里。但是,目前在预训练里流行的BERT等模型是掩码语言模型\upcite{devlin2019bert},就不能直接在无监督神经翻译里使用。
\parinterval 另外一个在无监督神经机器翻译中比较常见的语言模型目标函数则是{\small\bfnew{降噪自编码器}}\index{降噪自编码器}(Denoising Autoencoder\index{降噪自编码器})。它也是文本生成类型的语言模型建模方法。对于一个句子$\mathbi{x}$,首先使用一个噪声函数$\mathbi{x}^{'}=\mathrm{noise}(\mathbi{x})$ 来对$x$注入噪声,产生一个质量较差的句子$\mathbi{x}^{'}$。然后,让模型学习如何从$\mathbi{x}^{'}$还原出$\mathbi{x}$。这样一个目标函数比预测下一词更贴近翻译任务的本质,因为它是一个序列到序列的映射,并且输入输出两个序列在语义上是等价的。通常来说,噪声函数$\mathrm{noise}$有三种形式,如表\ref{tab:16-1}所示。 \parinterval 另外一个在无监督神经机器翻译中比较常见的语言模型目标函数则是{\small\bfnew{降噪自编码器}}\index{降噪自编码器}(Denoising Autoencoder\index{降噪自编码器})。它也是文本生成类型的语言模型建模方法。对于一个句子$\mathbi{x}$,首先使用一个噪声函数$\mathbi{x}^{'}=\mathrm{noise}(\mathbi{x})$ 来对$x$注入噪声,产生一个质量较差的句子$\mathbi{x}^{'}$。然后,让模型学习如何从$\mathbi{x}^{'}$还原出$\mathbi{x}$。这样一个目标函数比预测下一词更贴近翻译任务的本质,因为它是一个序列到序列的映射,并且输入输出两个序列在语义上是等价的。我们之所以采用$\mathbi{x}^{'}$而不是$\mathbi{x}$自己来预测$\mathbi{x}^{'}$,是因为模型可以通过简单的复制输入作为输出来完成从$\mathbi{x}$预测$\mathbi{x}$的任务,并且在输入中注入噪声会让模型更加鲁棒,因为模型可以通过训练集数据学会如何利用句子中噪声以外的信息来处理其中噪声并得到正确的输出。通常来说,噪声函数$\mathrm{noise}$有三种形式,如表\ref{tab:16-1}所示。
\begin{table}[h] \begin{table}[h]
\centering \centering
...@@ -844,12 +844,12 @@ P(t|s)=\frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\sum_{\mathbi{y}^{'}}\mat ...@@ -844,12 +844,12 @@ P(t|s)=\frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\sum_{\mathbi{y}^{'}}\mat
\hline \hline
\multicolumn{1}{c|}{噪声函数} & \multicolumn{1}{c|}{描述} & \multicolumn{1}{c}{例子} \\ \multicolumn{1}{c|}{噪声函数} & \multicolumn{1}{c|}{描述} & \multicolumn{1}{c}{例子} \\
\hline \hline
交换 & 句子中任意两个词进行交换 & ``我\ 喜欢\ \underline{苹果}\ \underline{}\ 。'' \\ 交换 & 句子中任意两个词进行交换 & ``我\ 喜欢\ \underline{苹果}\ \underline{}\ 。'' \\
删除 & 句子中的词按一定概率被删除 & ``我\ 喜欢\ \ 。'' \\ 删除 & 句子中的词按一定概率被删除 & ``我\ 喜欢\ \ 。'' \\
空白 & 把句子中的词按一定概率替换成空白符 & ``我\ \underline{\ \ \ \ \ \ \ \ }\ \ 苹果\ 。'' \\ 空白 & 句子中的词按一定概率被替换成空白符 & ``我\ \underline{\ \ \ \ \ \ \ \ }\ \ 苹果\ 。'' \\
\hline \hline
\end{tabular} \end{tabular}
\caption{三种噪声函数(原句为``我 喜欢 吃 苹果 。'')。} \caption{三种噪声函数(原句为``我\ 喜欢\ \ 苹果\ 。'')。}
\label{tab:16-1} \label{tab:16-1}
\end{table} \end{table}
...@@ -857,7 +857,6 @@ P(t|s)=\frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\sum_{\mathbi{y}^{'}}\mat ...@@ -857,7 +857,6 @@ P(t|s)=\frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\sum_{\mathbi{y}^{'}}\mat
\vspace{0.5em} \vspace{0.5em}
\end{itemize} \end{itemize}
{\color{red} 降噪自编码器需要再多说一下,因为这部分还是挺新颖的。比如,它解决了什么问题?为什么要降噪?数学本质是什么?常用的结构?等等}
%---------------------------------------------------------------------------------------- %----------------------------------------------------------------------------------------
% NEW SECTION % NEW SECTION
...@@ -866,7 +865,34 @@ P(t|s)=\frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\sum_{\mathbi{y}^{'}}\mat ...@@ -866,7 +865,34 @@ P(t|s)=\frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\sum_{\mathbi{y}^{'}}\mat
\section{小结及深入阅读} \section{小结及深入阅读}
(扩展阅读) (扩展阅读)
\parinterval 除此之外,还有很多工作对数据增强方法进行了深入的研究与探讨。探索源语言单语数据在神经机器翻译中的使用方法\upcite{DBLP:conf/emnlp/ZhangZ16};选择何种单语数据来生成伪数据带来的收益更大\upcite{DBLP:conf/emnlp/FadaeeM18,DBLP:conf/nlpcc/XuLXLLXZ19};通过特别标识对真实双语和回译生成的伪双语数据进行区分\upcite{DBLP:conf/wmt/CaswellCG19};在回译过程中对训练数据进行动态选择与加权\upcite{DBLP:journals/corr/abs200403672};利用目标端单语数据和相关的富资源语言进行数据增强\upcite{DBLP:conf/acl/XiaKAN19};通过在源语言或目标语言中随机选择某些词,将这些词替换为词表中随机的一个词,可以得到伪双语数据\upcite{DBLP:conf/emnlp/WangPDN18};随机选择句子中的某个词,将这个词的词嵌入替换为多个语义相似词的加权表示融合\upcite{DBLP:conf/acl/GaoZWXQCZL19};基于模型的不确定性来量化预测结果的置信度,从而提升回译方法的性能\upcite{DBLP:conf/emnlp/WangLWLS19};探索如何利用大规模单语数据\upcite{DBLP:conf/emnlp/WuWXQLL19};还有一些工作对数据增强进行了理论分析\upcite{DBLP:conf/emnlp/LiLHZZ19}{\color{red},发现XXXX?}。({\color{red} 这部分写得不错} \parinterval 除此之外,还有很多工作对数据增强方法进行了深入的研究与探讨。探索源语言单语数据在神经机器翻译中的使用方法\upcite{DBLP:conf/emnlp/ZhangZ16};选择何种单语数据来生成伪数据带来的收益更大\upcite{DBLP:conf/emnlp/FadaeeM18,DBLP:conf/nlpcc/XuLXLLXZ19};通过特别标识对真实双语和回译生成的伪双语数据进行区分\upcite{DBLP:conf/wmt/CaswellCG19};在回译过程中对训练数据进行动态选择与加权\upcite{DBLP:journals/corr/abs200403672};利用目标端单语数据和相关的富资源语言进行数据增强\upcite{DBLP:conf/acl/XiaKAN19};通过在源语言或目标语言中随机选择某些词,将这些词替换为词表中随机的一个词,可以得到伪双语数据\upcite{DBLP:conf/emnlp/WangPDN18};随机选择句子中的某个词,将这个词的词嵌入替换为多个语义相似词的加权表示融合\upcite{DBLP:conf/acl/GaoZWXQCZL19};基于模型的不确定性来量化预测结果的置信度,从而提升回译方法的性能\upcite{DBLP:conf/emnlp/WangLWLS19};探索如何利用大规模单语数据\upcite{DBLP:conf/emnlp/WuWXQLL19};还有一些工作对数据增强进行了理论分析\upcite{DBLP:conf/emnlp/LiLHZZ19}{\color{red},发现XXXX?}。({\color{red} 这部分写得不错}
(多语言扩展阅读)
\parinterval 最早的多语言方向的工作开始于多任务学习,通过共享编码器模块或是注意力模块来进行一对多\upcite{DBLP:conf/acl/DongWHYW15}或多对一\upcite{DBLP:journals/tacl/LeeCH17}或多对多\upcite{DBLP:conf/naacl/FiratCB16}的学习,然而这些方法需要为每个翻译语言对设计单独的编码器和解码器,限制了其可扩展性。为了解决以上问题,研究人员进一步探索了用于多语言翻译的单个机器翻译模型的方法,也就是我们所说的多语言单模型系统\upcite{DBLP:journals/corr/HaNW16,DBLP:journals/tacl/JohnsonSLKWCTVW17}。为了弥补多语言单模型系统中缺乏语言表示多样性的问题,可以重新组织分享模块,设计特定任务相关模块\upcite{DBLP:conf/coling/BlackwoodBW18,DBLP:conf/wmt/SachanN18,DBLP:conf/wmt/LuKLBZS18,DBLP:conf/acl/WangZZZXZ19};可以将多语言单词编码与语言聚类分离,用一种多语言词典编码框架智能地共享词汇级别的信息,有助于语言间的泛化\upcite{DBLP:conf/iclr/WangPAN19};可以将语言聚类为不同的组,并为每个聚类单独训练一个多语言模型\upcite{DBLP:conf/emnlp/TanCHXQL19}。零资源翻译是多语言翻译领域一个非常重要的问题,近两年受到了广泛的关注,零资源翻译不仅可以解决低资源语种双语数据缺失的问题,还可以显著提高数据效率,在零资源翻译中,仅在$O(k)$并行语料库上进行训练之后,单个多语言翻译模型就能在任何$O(k^{2})$语言对之间进行概括和转换\upcite{2019Consistency}。但是,零资源翻译的性能通常很不稳定并且明显落后于有监督的翻译方向。为了改善零资源翻译,可以开发新的跨语言正则器,例如对齐正则器\upcite{DBLP:journals/corr/abs-1903-07091},一致性正则器\upcite{DBLP:conf/naacl/Al-ShedivatP19};可以通过反向翻译\upcite{DBLP:conf/acl/GuWCL19,DBLP:conf/emnlp/FiratSAYC16}或基于枢轴的翻译\upcite{DBLP:conf/emnlp/CurreyH19}生成人工并行数据;也可以尝试通过微调来改善零资源翻译性能\upcite{firat2016zero,DBLP:journals/corr/abs-1805-10338}
...@@ -78,7 +78,7 @@ ...@@ -78,7 +78,7 @@
\parinterval (2)分布式表示 \parinterval (2)分布式表示
\vspace{0.3em} \vspace{0.3em}
\parinterval 分布式表示的主要思想是“一个复杂系统的任何部分的输入都应该是多个特征共同表示的结果”,这种思想在自然语言处理领域的影响尤其深刻,它改变了刻画语言世界的角度,将语言文字从离散空间映射到多维连续空间。例如,在现实世界中,“张三”这个代号就代表着一个人。如果想要知道这个人亲属都有谁,因为有“A和B如果姓氏相同,在一个家谱中,那么A和B是本家”这个先验知识在,在知道代号“张三”的情况下,可以得知“张三”的亲属是谁。但是如果不依靠这个先验知识,就无法得知“张三”的亲属是谁。但在分布式表示中,可以用一个实数向量,如$ (0.1,0.3,0.4) $来表示“张三”这个人,这个人的所有特征信息都包含在这个实数向量中,通过在向量空间中的一些操作(如计算距离等),哪怕没有任何先验知识的存在,也完全可以找到这个人的所有亲属。在自然语言处理中,一个单词也用一个实数向量(词向量或词嵌入)表示,通过这种方式将语义空间重新刻画,将这个离散空间转化成了一个连续空间,这时单词就不再是一个简单的词条,而是由成百上千个特征共同描述出来的,其中每个特征分别代表这个词的某个“ 方面”。 \parinterval 分布式表示的主要思想是“一个复杂系统的任何部分的输入都应该是多个特征共同表示的结果”,这种思想在自然语言处理领域的影响尤其深刻,它改变了刻画语言世界的角度,将语言文字从离散空间映射到多维连续空间。例如,在现实世界中,“张三”这个代号就代表着一个人。如果想要知道这个人亲属都有谁,因为有“如果A和B姓氏相同且在同一个家谱中,那么A和B是本家”这个先验知识在,在知道代号“张三”的情况下,可以得知“张三”的亲属是谁。但是如果不依靠这个先验知识,就无法得知“张三”的亲属是谁。但在分布式表示中,可以用一个实数向量,如$ (0.1,0.3,0.4) $来表示“张三”这个人,这个人的所有特征信息都包含在这个实数向量中,通过在向量空间中的一些操作(如计算距离等),哪怕没有任何先验知识的存在,也完全可以找到这个人的所有亲属。在自然语言处理中,一个单词也用一个实数向量(词向量或词嵌入)表示,通过这种方式将语义空间重新刻画,将这个离散空间转化成了一个连续空间,这时单词就不再是一个简单的词条,而是由成百上千个特征共同描述出来的,其中每个特征分别代表这个词的某个“ 方面”。
\parinterval 随着第二代人工神经网络的“脱胎换骨”,学者们又对神经网络方法燃起了希望之火,这也导致有些时候过分夸大了神经网络的能力。20世纪90年代后期,由于在语音识别、自然语言处理等应用中,人们对神经网络方法期望过高,但是结果并没有达到预期,这也让很多人丧失了对神经网络方法的信任。相反,核方法、图模型等机器学习方法取得了很好的效果,这导致神经网络研究又一次进入低谷。 \parinterval 随着第二代人工神经网络的“脱胎换骨”,学者们又对神经网络方法燃起了希望之火,这也导致有些时候过分夸大了神经网络的能力。20世纪90年代后期,由于在语音识别、自然语言处理等应用中,人们对神经网络方法期望过高,但是结果并没有达到预期,这也让很多人丧失了对神经网络方法的信任。相反,核方法、图模型等机器学习方法取得了很好的效果,这导致神经网络研究又一次进入低谷。
...@@ -1080,7 +1080,7 @@ f(x)=\begin{cases} 0 & x\le 0 \\x & x>0\end{cases} ...@@ -1080,7 +1080,7 @@ f(x)=\begin{cases} 0 & x\le 0 \\x & x>0\end{cases}
\end{figure} \end{figure}
%------------------------------------------- %-------------------------------------------
\parinterval 它可以被描述为公式\eqref{eq:9-27},其中隐藏层的激活函数是Tanh函数,输出层的激活函数是Sigmoid函数,${\mathbi{W}}^{[1]}$${\mathbi{b}}^{[1]}$分别表示第一层的权重矩阵和偏置,${\mathbi{W}}^{[2]}$$b^{[2]}$分别表示第二层的权重矩阵和偏置且偏置$b^{[2]}$是标量 \parinterval 它可以被描述为公式\eqref{eq:9-27},其中隐藏层的激活函数是Tanh函数,输出层的激活函数是Sigmoid函数,${\mathbi{W}}^{[1]}$${\mathbi{b}}^{[1]}$分别表示第一层的权重矩阵和偏置,${\mathbi{W}}^{[2]}$$b^{[2]}$分别表示第二层的权重矩阵和偏置\footnote{注意这里${\mathbi{b}}^{[1]}$是向量而$b^{[2]}$是标量,因而前者加粗后者未加粗}
\begin{eqnarray} \begin{eqnarray}
y&=&{\textrm{Sigmoid}}({\textrm{Tanh}}({\mathbi{x}}\cdot {\mathbi{W}}^{[1]}+{\mathbi{b}}^{[1]})\cdot {\mathbi{W}}^{[2]}+ b^{[2]} ) y&=&{\textrm{Sigmoid}}({\textrm{Tanh}}({\mathbi{x}}\cdot {\mathbi{W}}^{[1]}+{\mathbi{b}}^{[1]})\cdot {\mathbi{W}}^{[2]}+ b^{[2]} )
\label{eq:9-27} \label{eq:9-27}
......
...@@ -7219,8 +7219,6 @@ author = {Yoshua Bengio and ...@@ -7219,8 +7219,6 @@ author = {Yoshua Bengio and
publisher = {Conference on Empirical Methods in Natural Language Processing}, publisher = {Conference on Empirical Methods in Natural Language Processing},
year = {2017} year = {2017}
} }
@inproceedings{DBLP:conf/naacl/MohiuddinJ19, @inproceedings{DBLP:conf/naacl/MohiuddinJ19,
author = {Tasnim Mohiuddin and author = {Tasnim Mohiuddin and
Shafiq R. Joty}, Shafiq R. Joty},
...@@ -7232,8 +7230,203 @@ author = {Yoshua Bengio and ...@@ -7232,8 +7230,203 @@ author = {Yoshua Bengio and
} }
@inproceedings{DBLP:conf/emnlp/ArtetxeLA18,
author = {Mikel Artetxe and
Gorka Labaka and
Eneko Agirre},
title = {Unsupervised Statistical Machine Translation},
pages = {3632--3642},
publisher = {Conference on Empirical Methods in Natural Language Processing},
year = {2018}
}
@article{DBLP:journals/tacl/LeeCH17,
author = {Jason Lee and
Kyunghyun Cho and
Thomas Hofmann},
title = {Fully Character-Level Neural Machine Translation without Explicit
Segmentation},
journal = {Transactions of the Association for Computational Linguistics},
volume = {5},
pages = {365--378},
year = {2017}
}
@inproceedings{DBLP:conf/naacl/FiratCB16,
author = {Orhan Firat and
Kyunghyun Cho and
Yoshua Bengio},
title = {Multi-Way, Multilingual Neural Machine Translation with a Shared Attention
Mechanism},
pages = {866--875},
publisher = {Annual Conference of the North American Chapter of the Association for Computational Linguistics},
year = {2016}
}
@article{DBLP:journals/corr/HaNW16,
author = {Thanh-Le Ha and
Jan Niehues and
Alexander H. Waibel},
title = {Toward Multilingual Neural Machine Translation with Universal Encoder
and Decoder},
journal = {CoRR},
volume = {abs/1611.04798},
year = {2016}
}
@article{DBLP:journals/tacl/JohnsonSLKWCTVW17,
author = {Melvin Johnson and
Mike Schuster and
Quoc V. Le and
Maxim Krikun and
Yonghui Wu and
Zhifeng Chen and
Nikhil Thorat and
Fernanda B. Vi{\'{e}}gas and
Martin Wattenberg and
Greg Corrado and
Macduff Hughes and
Jeffrey Dean},
title = {Google's Multilingual Neural Machine Translation System: Enabling
Zero-Shot Translation},
journal = {Transactions of the Association for Computational Linguistics},
volume = {5},
pages = {339--351},
year = {2017}
}
@inproceedings{DBLP:conf/coling/BlackwoodBW18,
author = {Graeme W. Blackwood and
Miguel Ballesteros and
Todd Ward},
title = {Multilingual Neural Machine Translation with Task-Specific Attention},
pages = {3112--3122},
publisher = {International Conference on Computational Linguistics},
year = {2018}
}
@inproceedings{DBLP:conf/wmt/SachanN18,
author = {Devendra Singh Sachan and
Graham Neubig},
title = {Parameter Sharing Methods for Multilingual Self-Attentional Translation
Models},
pages = {261--271},
publisher = {Association for Computational Linguistics},
year = {2018}
}
@inproceedings{DBLP:conf/wmt/LuKLBZS18,
author = {Yichao Lu and
Phillip Keung and
Faisal Ladhak and
Vikas Bhardwaj and
Shaonan Zhang and
Jason Sun},
title = {A neural interlingua for multilingual machine translation},
pages = {84--92},
publisher = {Association for Computational Linguistics},
year = {2018}
}
@inproceedings{DBLP:conf/acl/WangZZZXZ19,
author = {Yining Wang and
Long Zhou and
Jiajun Zhang and
Feifei Zhai and
Jingfang Xu and
Chengqing Zong},
title = {A Compact and Language-Sensitive Multilingual Translation Method},
pages = {1213--1223},
publisher = {Association for Computational Linguistics},
year = {2019}
}
@inproceedings{DBLP:conf/iclr/WangPAN19,
author = {Xinyi Wang and
Hieu Pham and
Philip Arthur and
Graham Neubig},
title = {Multilingual Neural Machine Translation With Soft Decoupled Encoding},
publisher = {International Conference on Learning Representations},
year = {2019}
}
@inproceedings{DBLP:conf/emnlp/TanCHXQL19,
author = {Xu Tan and
Jiale Chen and
Di He and
Yingce Xia and
Tao Qin and
Tie-Yan Liu},
title = {Multilingual Neural Machine Translation with Language Clustering},
pages = {963--973},
publisher = {Conference on Empirical Methods in Natural Language Processing},
year = {2019}
}
@inproceedings{2019Consistency,
title={Consistency by Agreement in Zero-Shot Neural Machine Translation},
author={Al-Shedivat, Maruan and Parikh, Ankur },
publisher={Proceedings of the 2019 Conference of the North},
year={2019},
}
@article{DBLP:journals/corr/abs-1903-07091,
author = {Naveen Arivazhagan and
Ankur Bapna and
Orhan Firat and
Roee Aharoni and
Melvin Johnson and
Wolfgang Macherey},
title = {The Missing Ingredient in Zero-Shot Neural Machine Translation},
journal = {CoRR},
volume = {abs/1903.07091},
year = {2019}
}
@inproceedings{DBLP:conf/naacl/Al-ShedivatP19,
author = {Maruan Al-Shedivat and
Ankur P. Parikh},
title = {Consistency by Agreement in Zero-Shot Neural Machine Translation},
pages = {1184--1197},
publisher = {Annual Conference of the North American Chapter of the Association for Computational Linguistics},
year = {2019}
}
@article{firat2016zero,
title={Zero-resource translation with multi-lingual neural machine translation},
author={Firat, Orhan and Sankaran, Baskaran and Al-Onaizan, Yaser and Vural, Fatos T Yarman and Cho, Kyunghyun},
journal={arXiv preprint arXiv:1606.04164},
year={2016}
}
@article{DBLP:journals/corr/abs-1805-10338,
author = {Lierni Sestorain and
Massimiliano Ciaramita and
Christian Buck and
Thomas Hofmann},
title = {Zero-Shot Dual Machine Translation},
journal = {CoRR},
volume = {abs/1805.10338},
year = {2018}
}
@inproceedings{DBLP:conf/acl/GuWCL19,
author = {Jiatao Gu and
Yong Wang and
Kyunghyun Cho and
Victor O. K. Li},
title = {Improved Zero-shot Neural Machine Translation via Ignoring Spurious
Correlations},
pages = {1258--1268},
publisher = {Association for Computational Linguistics},
year = {2019}
}
@inproceedings{DBLP:conf/emnlp/FiratSAYC16,
author = {Orhan Firat and
Baskaran Sankaran and
Yaser Al-Onaizan and
Fatos T. Yarman-Vural and
Kyunghyun Cho},
title = {Zero-Resource Translation with Multi-Lingual Neural Machine Translation},
pages = {268--277},
publisher = {Conference on Empirical Methods in Natural Language Processing},
year = {2016}
}
@inproceedings{DBLP:conf/emnlp/CurreyH19,
author = {Anna Currey and
Kenneth Heafield},
title = {Zero-Resource Neural Machine Translation with Monolingual Pivot Data},
pages = {99--107},
publisher = {Conference on Empirical Methods in Natural Language Processing},
year = {2019}
}
%%%%% chapter 16------------------------------------------------------ %%%%% chapter 16------------------------------------------------------
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论