Commit 899ee1b2 by 孟霞

合并分支 'caorunzhe' 到 'mengxia'

Caorunzhe

查看合并请求 !741
parents f0dd831a afebd90b
......@@ -92,7 +92,7 @@
}
{
\draw[double,->,thick,ublue] (e3.south)--([yshift=-1.2em]e3.south) node[pos=0.5,right,xshift=0.2em,yshift=0.2em] (step1) {\color{red}{\tiny{‘你’替换‘他’}}};
\draw[double,->,thick,ublue] (e3.south)--([yshift=-1.2em]e3.south) node[pos=0.5,right,xshift=0.2em,yshift=0.2em] (step1) {\color{red}{\tiny{“你”替换“他”}}};
\draw[->,dotted,thick,red] ([xshift=-0.1em]entry2.east)..controls +(east:4) and +(west:4)..([yshift=-0.6em,xshift=-0.5em]e3.south) ;
}
......@@ -122,7 +122,7 @@
}
{
\draw[double,->,thick,ublue] (e3.south)--([yshift=-1.2em]e3.south) node[pos=0.5,right,xshift=0.2em,yshift=0.2em] (step1) {\color{red}{\tiny{‘满意’替换‘高兴’}}};
\draw[double,->,thick,ublue] (e3.south)--([yshift=-1.2em]e3.south) node[pos=0.5,right,xshift=0.2em,yshift=0.2em] (step1) {\color{red}{\tiny{“满意”替换“高兴”}}};
\draw[->,dotted,thick,red] ([xshift=-1.2em,yshift=-0.6em]entry3.north east)..controls +(east:2) and +(west:3)..([yshift=-0.6em,xshift=-0.5em]e3.south) ;
}
......
......@@ -21,7 +21,7 @@
\node[node,font=\scriptsize,anchor = north,fill=ugreen!5,drop shadow] (dict) at ([xshift = 5em,yshift = -5em]node6.south){\begin{tabular}{llllll}
\multirow{3}{*}{符号合并表:} & ('e','s') & ('es','t') & ('est','$<$e$>$') & ('l','o') & ('lo','w') \\
& ('n','e') & ('ne','w') & ('new','est$<$e$>$') & ('low','$<$e$>$') & 'w','i') \\
& ('low','$<$e$>$') & ('n','e') & ('ne','w') & ('new','est$<$e$>$') & ('w','i') \\
& ('wi','d') & ('wid','est$<$e$>$') & ('low','e') & ('lowe','r') & ('lower','$<$e$>$')
\end{tabular}};
......
......@@ -60,12 +60,12 @@
%equ
\node [anchor=west,inner sep = 2pt] (line1) at (9*\nodespace,0) {未应用Dropout:};
\node [anchor=north west,inner sep = 2pt] (line2) at (line1.south west) {$z_{i}^{l+1}=\mathbf{w}_{i}^{l} \mathbf{x}+b_{i}^{l}$};
\node [anchor=north west,inner sep = 2pt] (line3) at (line2.south west) {$x_{i}^{l+1}=f\left(x_{i}^{l}\right)$};
\node [anchor=north west,inner sep = 2pt] (line2) at (line1.south west) {$z_{i}^{l+1}=\mathbf{w}^{l} \mathbf{x}^{l} + b_{i}^{l}$};
\node [anchor=north west,inner sep = 2pt] (line3) at (line2.south west) {$x_{i}^{l+1}=f\left(z_{i}^{l+1}\right)$};
\node [anchor=north west,inner sep = 2pt] (line4) at (line3.south west) {应用Dropout:};
\node [anchor=north west,inner sep = 2pt] (line5) at (line4.south west) {$r_{j}^{l} \sim$ Bernoulli $(1-p)$};
\node [anchor=north west,inner sep = 2pt] (line6) at (line5.south west) {$\tilde{\mathbf{x}}=\mathbf{r} * \mathbf{x}$};
\node [anchor=north west,inner sep = 2pt] (line7) at (line6.south west) {$z_{i}^{l+1}=\mathbf{w}_{i}^{l} \widetilde{\mathbf{x}}+b_{i}^{l}$};
\node [anchor=north west,inner sep = 2pt] (line8) at (line7.south west) {$x_{i}^{l+1}=f\left(z_{i}^{l}\right)$};
\node [anchor=north west,inner sep = 2pt] (line7) at (line6.south west) {$z_{i}^{l+1}=\mathbf{w}^{l} \widetilde{\mathbf{x}}^{l} + b_{i}^{l}$};
\node [anchor=north west,inner sep = 2pt] (line8) at (line7.south west) {$x_{i}^{l+1}=f\left(z_{i}^{l+1}\right)$};
\end{tikzpicture}
\ No newline at end of file
......@@ -2,12 +2,12 @@
\begin{tikzpicture}
\node[] (do) at (0,0) {{\red do}};
\node[anchor = west] (does) at ([xshift = 1em]do.east) {{\red do}es};
\node[anchor = west] (doing) at ([xshift = 0.7em]does.east) {{\red do}ing};
\node[anchor = west] (doing) at ([xshift = 0.7em,yshift = -0.1em]does.east) {{\red do}ing};
\node[anchor = north] (do_root) at ([yshift = -1.5em]does.south) {do};
\node[anchor = west] (new) at ([xshift = 2em]doing.east) {{\red new}};
\node[anchor = west] (newer) at ([xshift = 1em]new.east) {{\red new}er};
\node[anchor = west] (newest) at ([xshift = 0.7em]newer.east) {{\red new}est};
\node[anchor = west] (newest) at ([xshift = 0.7em,yshift = 0.08em]newer.east) {{\red new}est};
\node[anchor = north] (new_root) at ([yshift = -1.5em]newer.south) {new};
\draw [->] ([yshift=0.2em]do_root.north) .. controls +(north:0.4) and +(south:0.6) ..(do.south);
\draw [->] (do_root.north) -- (does.south);
......
......@@ -46,7 +46,7 @@
\sectionnewpage
\section{开放词表}
\parinterval 从模型训练的角度看,我们通常希望尽可能使用更多的单词。因为更大的词表可以覆盖更多的语言现象,同时使得系统对不同语言现象有更强的区分能力。但是,人类表达语言的方式是十分多样的,这也体现在单词的构成上,甚至我们都无法想象数据中存在的不同单词的数量。即便使用分词策略,在WMT、CCMT等评测数据上,英语词表大小都会在100万以上。当然,这里面也包括很多的数字和字母的混合,还有一些组合词。不过,如果不加限制,机器翻译所面对的词表将会很“大”。这也会导致模型变大,模型训练变得极为困难。更严重的问题是,测试数据中的一些单词根本就没有在训练数据中出现过,这时会出现集外词(Out-of-Vocabulary,OOV)翻译问题,即系统无法对未见单词进行翻译。在神经机器翻译中,通常会考虑使用更小的翻译单元来缓解以上问题,因为小颗粒度的单元不容易出现数据稀疏问题。
\parinterval 从模型训练的角度看,我们通常希望尽可能使用更多的单词。因为更大的词表可以覆盖更多的语言现象,同时使得系统对不同语言现象有更强的区分能力。但是,人类表达语言的方式是十分多样的,这也体现在单词的构成上,甚至我们都无法想象数据中存在的不同单词的数量。即便使用分词策略,在WMT、CCMT等评测数据上,英语词表大小都会在100万以上。当然,这里面也包括很多的数字和字母的混合,还有一些组合词。不过,如果不加限制,机器翻译所面对的词表将会很“大”。这也会导致模型参数量变大,模型训练变得极为困难。更严重的问题是,测试数据中的一些单词根本就没有在训练数据中出现过,这时会出现集外词(Out-of-Vocabulary,OOV)翻译问题,即系统无法对未见单词进行翻译。在神经机器翻译中,通常会考虑使用更小的翻译单元来缓解以上问题,因为小颗粒度的单元可以有效缓解数据稀疏问题。
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
......@@ -120,7 +120,7 @@
\subsection{双字节编码(BPE)}
\parinterval {\small\bfnew{字节对编码}}\index{字节对编码}{\small\bfnew{双字节编码}}\index{双字节编码}(Byte Pair Encoding\index{Byte Pair Encoding},BPE)是一种常用的子词词表构建方法\upcite{DBLP:conf/acl/SennrichHB16a}。BPE方法最早用于数据压缩,该方法将数据中常见的连续字符串替换为一个不存在的字符,之后通过构建一个替换关系的对应表,对压缩后的数据进行还原。机器翻译借用了这种思想,把子词切分看作是学习对自然语言句子进行压缩编码表示的问题\upcite{Gage1994ANA}。其目的是,保证编码后的结果(即子词切分)占用的字节尽可能少。这样,子词单元会尽可能被不同单词复用,同时又不会因为使用过小的单元造成子词切分序列过长。使用BPE算法构建符号合并表可以分为如下几个步骤:
\parinterval {\small\bfnew{字节对编码}}\index{字节对编码}{\small\bfnew{双字节编码}}\index{双字节编码}(Byte Pair Encoding\index{Byte Pair Encoding},BPE)是一种常用的子词词表构建方法。BPE方法最早用于数据压缩,该方法将数据中常见的连续字符串替换为一个不存在的字符,之后通过构建一个替换关系的对应表,对压缩后的数据进行还原\upcite{Gage1994ANA}。机器翻译借用了这种思想,把子词切分看作是学习对自然语言句子进行压缩编码表示的问题\upcite{DBLP:conf/acl/SennrichHB16a}。其目的是,保证编码后的结果(即子词切分)占用的字节尽可能少。这样,子词单元会尽可能被不同单词复用,同时又不会因为使用过小的单元造成子词切分序列过长。使用BPE算法构建符号合并表可以分为如下几个步骤:
\begin{itemize}
\vspace{0.5em}
......@@ -158,7 +158,7 @@
\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}{\red 而在T5等预训练模型中\upcite{DBLP:journals/jmlr/RaffelSRLNMZLL20},则使用了基于字符级别的BPE。此外,尽管BPE被命名为字节对编码,实际上一般处理的是Unicode编码,而不是字节。在预训练模型GPT2中,也探索了字节级别的BPE,在机器翻译、自动问答等任务中取得了很好的效果\upcite{radford2019language}}
\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}
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
......@@ -166,7 +166,7 @@
\subsection{其他方法}
\parinterval 与基于统计的BPE算法不同,基于Word Piece的子词切分方法则是利用语言模型进行子词词表的构造\upcite{DBLP:conf/icassp/SchusterN12}。本质上,基于语言模型的方法和基于BPE的方法的思路是一样的,即通过合并字符和子词不断生成新的子词。它们的区别仅在于合并子词的方式不同。{\red 基于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 与基于统计的BPE算法不同,基于Word Piece的子词切分方法则是利用语言模型进行子词词表的构造\upcite{DBLP:conf/icassp/SchusterN12}。本质上,基于语言模型的方法和基于BPE的方法的思路是一样的,即通过合并字符和子词不断生成新的子词。它们的区别仅在于合并子词的方式不同。基于BPE的方法选择出现频次最高的连续字符,并将该字符合并为新的子词,而基于语言模型的方法则是根据语言模型输出的概率选择要合并哪些子词。具体来说,基于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 目前比较主流的子词切分方法都是作用于分词后的序列,对一些没有明显词边界且资源稀缺的语种并不友好。相比之下,Sentence Piece可以作用于未经过分词处理的输入序列\upcite{kudo2018sentencepiece},同时囊括了双字节编码和语言模型的子词切分方法,更加灵活易用。
......@@ -174,7 +174,7 @@
\begin{itemize}
\vspace{0.5em}
\item 子词规范化方法\upcite{DBLP:conf/acl/Kudo18}。其思想是在训练过程中扰乱确定的子词边界,根据1-gram Language Model{\red (ULM)}采样出多种子词切分候选。通过最大化整个句子的概率为目标构建词表。在实现上,与上述基于Word Piece的方法略有不同,这里不做详细介绍。
\item 子词规范化方法\upcite{DBLP:conf/acl/Kudo18}。其思想是在训练过程中扰乱确定的子词边界,根据1-gram Language Model(ULM)采样出多种子词切分候选。通过最大化整个句子的概率为目标构建词表。在实现上,与上述基于Word Piece的方法略有不同,这里不做详细介绍。
\vspace{0.5em}
\item BPE-Dropout\upcite{provilkov2020bpe}。在训练时,通过在合并过程中按照一定概率$p$(介于0与1之间)随机丢弃一些可行的合并操作,从而产生不同的子词切分结果,进而增强模型健壮性。而在推断阶段,将$p$设置为0,等同于标准的BPE。总的来说,上述方法相当于在子词的粒度上对输入的序列进行扰动,进而达到增加训练健壮性的目的。
\vspace{0.5em}
......@@ -330,7 +330,7 @@ R(\mathbf{w}) & = & (\big| |\mathbf{w}| {\big|}_2)^2 \\
\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}展示了一个神经机器翻译系统的翻译结果,可以看到,把输入句子中的单词“他”换成“她”会得到完全不同的译文。这时神经机器翻译系统就存在健壮性问题。a
\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]
......@@ -373,9 +373,9 @@ R(\mathbf{w}) & = & (\big| |\mathbf{w}| {\big|}_2)^2 \\
\subsection{基于黑盒攻击的方法}
\parinterval 一个好的对抗样本应该具有这种性质:对文本做最少的修改,并最大程度地保留原文的语义。一种简单的实现方式是对文本加噪声。这里,噪声可以分为自然噪声和人工噪声\upcite{DBLP:conf/iclr/BelinkovB18}。自然噪声一般是指人为的在语料库中收集自然出现的错误,如输入错误、拼写错误等。人为噪声是通过多种方式来处理文本,例如,可以通过固定的规则或是使用噪声生成器,在干净的数据中以一定的概率引入不同类型的噪声,如:拼写、表情符号、语法错误等\upcite{DBLP:conf/naacl/VaibhavSSN19,DBLP:conf/naacl/AnastasopoulosL19,DBLP:conf/acl/SinghGR18};此外,也可以在文本中加入人为设计过的毫无意义的单词序列,以此来分散模型的注意({\color{red} 啥是分散模型的注意?}
\parinterval 一个好的对抗样本应该具有这种性质:对文本做最少的修改,并最大程度地保留原文的语义。一种简单的实现方式是对文本加噪声。这里,噪声可以分为自然噪声和人工噪声\upcite{DBLP:conf/iclr/BelinkovB18}。自然噪声一般是指人为的在语料库中收集自然出现的错误,如输入错误、拼写错误等。人为噪声是通过多种方式来处理文本,例如,可以通过固定的规则或是使用噪声生成器,在干净的数据中以一定的概率引入不同类型的噪声,如:拼写、表情符号、语法错误等\upcite{DBLP:conf/naacl/VaibhavSSN19,DBLP:conf/naacl/AnastasopoulosL19,DBLP:conf/acl/SinghGR18};此外,也可以在文本中加入人为设计过的毫无意义的单词序列。
\parinterval 除了单纯的在文本中引入各种扰动外,还可以通过文本编辑的方式构建对抗样本,在不改变语义的情况下尽可能修改文本\upcite{DBLP:journals/corr/SamantaM17,DBLP:conf/ijcai/0002LSBLS18},从而生成对抗样本。文本的编辑方式主要包括交换,插入,替换和删除操作。图\ref{fig:13-20}给出了一些通过上述方式生成的对抗样本
\parinterval 除了单纯的在文本中引入各种扰动外,还可以通过文本编辑的方式,在不改变语义的情况下尽可能修改文本,从而构建对抗样本\upcite{DBLP:journals/corr/SamantaM17,DBLP:conf/ijcai/0002LSBLS18}。文本的编辑方式主要包括交换,插入,替换和删除操作。表\ref{fig:13-20}给出了一些通过文本编辑的方式来生成对抗样本的例子
%----------------------------------------------
\begin{figure}[htp]
......@@ -386,7 +386,7 @@ R(\mathbf{w}) & = & (\big| |\mathbf{w}| {\big|}_2)^2 \\
\end{figure}
%----------------------------------------------
\parinterval {\red 形式上,可以利用FGSM\upcite{DBLP:journals/corr/GoodfellowSS14}等算法,验证文本中每一个单词对语义的贡献度,同时为每一个单词构建候选池,包括单词的近义词,拼写错误词,同音词等。对于贡献度较低的词,如语气词,副词等,可以使用插入、删除操作进行扰动。对于文本序列中其他的单词,可以在候选池中选择相应的单词进行替换。其中,交换操作可以是基于词级别的,比如交换序列中的单词,也可以是基于字符级别的,比如交换单词中的字符\upcite{DBLP:conf/coling/EbrahimiLD18}。重复的进行不同的编辑操作,直至误导模型做出错误的判断。}
\parinterval 形式上,可以利用如FGSM\upcite{DBLP:journals/corr/GoodfellowSS14}等算法,验证文本中每一个单词对语义的贡献度,同时为每一个单词构建一个候选池,包括该单词的近义词,拼写错误词,同音词等。对于贡献度较低的词,如语气词,副词等,可以使用插入、删除操作进行扰动。对于文本序列中其他的单词,可以在候选池中选择相应的单词并进行替换。其中,交换操作可以是基于词级别的,比如交换序列中的单词,也可以是基于字符级别的,比如交换单词中的字符\upcite{DBLP:conf/coling/EbrahimiLD18}。重复的进行上述的编辑操作,直至编辑出的文本可以误导模型做出错误的判断。
\parinterval 在基于语义的方法中,除了通过不同的算法修改输入以外,也可以通过神经网络模型增加扰动。例如,在机器翻译中常用的回译技术,也是生成对抗样本的一种有效方式。回译就是,通过反向模型将目标语言翻译成源语言,并将翻译得到的双语数据用于模型训练。除了翻译模型,语言模型也可以用于生成对抗样本。{\red 前面}已经介绍过,语言模型可以用于检测句子的流畅度,它根据上文预测当前位置可能出现的单词。因此,此时可以使用语言模型预测出当前位置最可能出现的多个单词,并用这些词替换序列中原本的单词。在机器翻译任务中,可以通过与神经机器翻译系统联合训练,共享词向量矩阵的方式得到语言模型。{\red (引用)}
......@@ -406,15 +406,15 @@ R(\mathbf{w}) & = & (\big| |\mathbf{w}| {\big|}_2)^2 \\
\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}
\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})
{\mathbi{x}'}_i &=& \arg\max_{\mathbi{x}\in V}\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)
\mathbi{g}_{\mathbi{x}_i} &=& \bigtriangledown_{\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}}$为源语的词表({\color{red} 词表一般用大V}。但是,由于对词表中所有单词进行枚举时,计算成本较大。因此利用语言模型选择最可能的$n$ 个词作为候选,进而缩减匹配范围,并从中采样出源语词进行替换是一种更有效地方式。同时,为了保护模型不受解码器预测误差的影响,此时需要对模型目标端的输入做出同样的调整。与在源语端操作不同的地方时,此时会将公式\eqref{eq:13-10}中的损失替换为$- \log \funp{P}(\mathbi{y}|\mathbi{x}')$。同时,在如何利用语言模型选择候选和采样方面,也做出了相应的调整。在进行对抗性训练时,在原有的训练损失上增加了三个额外的损失,最终的训练目标为:
\noindent 其中,$\mathbi{x}_i$为输入中第$i$个词,$\mathbi{g}_{\mathbi{x}_i}$为对应的梯度向量,$\funp{e}(\cdot)$用于获取词向量,$\textrm{sim}(\cdot,\cdot)$用于评估两个向量之间距离的函数{\red $\bigtriangledown_{\funp{e}(\mathbi{x}_i)}$是什么?}$V$为源语的词表。但是,由于对词表中所有单词进行枚举时,计算成本较大。因此利用语言模型选择最可能的$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}})
......@@ -429,7 +429,7 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{N}\sum_{(\mathbi{x},\
\end{itemize}
\parinterval 无论是黑盒方法还是白盒方法,本质上都是通过增加噪声使得模型训练更加健壮。类似的思想在很多机器学习方法中都有体现,比如,最大熵模型中使用高斯噪声就是常用的增加模型健壮性的手段之一\upcite{chen1999gaussian}{\red 这篇文章再找一下}。而在深度学习时代下,对抗训练将问题定义为:有意识地构造出系统容易出错的样本,并使用这种样本训练系统,以此增加系统的抗干扰能力。
\parinterval 无论是黑盒方法还是白盒方法,本质上都是通过增加噪声使得模型训练更加健壮。类似的思想在很多机器学习方法中都有体现,比如,最大熵模型中使用高斯噪声就是常用的增加模型健壮性的手段之一\upcite{chen1999gaussian}{\red 这篇文章的bib再找一下}。而在深度学习时代下,对抗训练将问题定义为:有意识地构造出系统容易出错的样本,并使用这种样本训练系统,以此增加系统的抗干扰能力。
%----------------------------------------------------------------------------------------
% NEW SECTION
......@@ -450,7 +450,7 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{N}\sum_{(\mathbi{x},\
\begin{itemize}
\vspace{0.5em}
\item 曝光偏置问题:{\red 在训练过程中,模型使用真实数据进行训练,因此模型在预测一个句子中的下一个单词时,解码器端的输入服从于真实数据的分布(改的对不对)}。但是在解码过程中,模型则会根据先前的预测结果来生成下一个词,此时模型输入所服从的分布在训练和解码中不一致,如图\ref{fig:13-21}所示。由于在训练过程中暴露于真实数据,模型可能会偏向于仅在具有真实数据的情况下才能表现良好,这就是曝光偏置问题\upcite{Bengio2015ScheduledSF,Ranzato2016SequenceLT}{\red(转录时,w改为y,并在图中补充:$y_1,y_2,y_3,…, y_V$表示词表里的V个词)}
\item 曝光偏置问题:在训练过程中,模型使用真实数据进行训练,因此模型在预测一个句子中的下一个单词时,解码器端的输入服从于真实数据的分布。但是在解码过程中,模型则会根据先前的预测结果来生成下一个词,此时模型输入所服从的分布在训练和解码中不一致,如图\ref{fig:13-21}所示。由于在训练过程中暴露于真实数据,模型可能会偏向于仅在具有真实数据的情况下才能表现良好,这就是曝光偏置问题\upcite{Bengio2015ScheduledSF,Ranzato2016SequenceLT}{\red(转录时,w改为y,并在图中补充:$y_1,y_2,y_3,…, y_V$表示目标语言词表里的V个词)}
\vspace{0.5em}
%----------------------------------------------
......@@ -462,7 +462,7 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{N}\sum_{(\mathbi{x},\
\end{figure}
%----------------------------------------------
\item 训练解码评价指标不一致问题:{\red 在训练过程中,使用极大似然估计最大化训练集数据的概率(感觉说的有点奇怪)},而在解码的时候,通常使用如BLEU等外部评价指标来评价模型的性能。理想的情况下,模型应该直接最大化模型性能评价指标而不是{\red 概率(什么概率)},但是因为这些指标通常不可导,这使得我们无法直接利用反向传播来优化神经网络,因此在训练时我们只能使用概率作为实际评价指标的替代,这样就会导致训练解码评价指标不一致问题。在机器翻译任务中,这个问题的一个后果就是,更低的困惑度不一定能提高BLEU。
\item 训练解码评价指标不一致问题:在训练过程中,使用极大似然估计最大化训练集数据出现的概率,而在解码的时候,通常使用如BLEU等外部评价指标来评价模型的性能。理想的情况下,模型应该直接最大化模型性能评价指标,而不是训练集数据出现的概率。但是通常情况下,模型性能评价指标不可导,这使得我们无法直接利用反向传播来优化神经网络,因此在训练时我们只能使用概率作为实际评价指标的替代,这样就会导致训练解码评价指标不一致问题。在机器翻译任务中,这个问题的一个后果就是,更低的困惑度不一定能提高BLEU。
\vspace{0.5em}
\end{itemize}
......@@ -482,7 +482,7 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{N}\sum_{(\mathbi{x},\
\parinterval 对于曝光偏置问题,一般可以使用束搜索等启发式搜索方法来进行缓解。但是即使使用束搜索,最终得到的有效序列数量仍然很小,仍然无法解决训练和解码不一致问题。
\parinterval 对于一个目标序列$\seq{y}=\{\mathbi{y}_1,\mathbi{y}_2,\ldots,\mathbi{y}_n\}$,在预测第$t$个单词$\mathbi{y}_t$时,训练过程与解码过程之间的主要区别在于:训练过程中使用真实的先前单词$\mathbi{y}_{t-1}$,而解码过程使用的是来自模型本身的估计$\hat{\mathbi{y}}_{t-1}$。此时可以采取一种调度采样机制,在训练期间随机决定使用$\mathbi{y}_{t-1}$还是$\hat{\mathbi{y}}_{t-1}$。假设训练时使用的是基于小批量{\red (批次?)}的随机梯度下降方法,对于每个预测训练算法的第$i$个小批量的$\mathbi{y}_t \in \textrm{Y}${\red (Y格式对不对,Y没解释)},随机以概率$\epsilon_i$使用先前真实答案或以概率${(1-\epsilon_i)}^2$使用来自模型本身的估计。该模型的估计可以根据由$\funp{P}(\mathbi{y}_{t-1}|\mathbi{h}_{t-1})$建模的概率分布对单词进行采样来获得,也可以作为$\arg\max_s \funp{P}(\mathbi{y}_{t-1} = s|\mathbi{h}_{t-1})$,此过程如图\ref{fig:13-22}所示。{\red(上句难理解,s没解释,s是向量?)}
\parinterval 对于一个目标序列$\seq{y}=\{\mathbi{y}_1,\mathbi{y}_2,\ldots,\mathbi{y}_n\}$,在预测第$t$个单词$\mathbi{y}_t$时,训练过程与解码过程之间的主要区别在于:训练过程中使用真实的先前单词$\mathbi{y}_{t-1}$,而解码过程使用的是来自模型本身的估计$\hat{\mathbi{y}}_{t-1}$。此时可以采取一种调度采样机制,在训练期间随机决定使用$\mathbi{y}_{t-1}$还是$\hat{\mathbi{y}}_{t-1}$。假设训练时使用的是基于小批量的随机梯度下降方法,对于每个预测训练算法的第$i$个小批量的$\mathbi{y}_t$,随机以概率$\epsilon_i$使用先前真实答案或以概率${(1-\epsilon_i)}^2$使用来自模型本身的估计。该模型的估计可以根据由$\funp{P}(\mathbi{y}_{t-1}|\mathbi{h}_{t-1})$建模的概率分布对单词进行采样来获得,也可以选择模型认为出现概率最大的词$s$,即$\arg\max_s \funp{P}(\mathbi{y}_{t-1} = s|\mathbi{h}_{t-1})$,此过程如图\ref{fig:13-22}所示。
%----------------------------------------------
\begin{figure}[htp]
......@@ -493,17 +493,17 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{N}\sum_{(\mathbi{x},\
\end{figure}
%----------------------------------------------
\parinterval$\epsilon_i=1$时,模型的训练与以前完全相同,而当$\epsilon_i=0$时,{\red 模型的训练与解码时使用的设置相同(改的对吗)}。在这里使用到了一种{\small\bfnew{课程学习}}\index{课程学习}(curriculum learning)\index{curriculum learning}策略,该策略认为应从一种学习策略过渡到另一种学习策略:{\red 在训练开始时,由于模型训练不足,因此从模型中会采样产生随机单词,这可能会导致收敛速度非常慢,因此,经常选择真正的先前单词$yt−1$通常会有所帮助;另一方面,在训练结束时,$\epsilon_i$应该更倾向于使用来自模型本身的估计$\hat{\mathbi{y}}_{t-1}$,因为这与真实的推理情况相对应。(看不懂)}
\parinterval$\epsilon_i=1$时,模型的训练与以前完全相同,而当$\epsilon_i=0$时,模型的训练与解码时使用的设置相同。在这里使用到了一种{\small\bfnew{课程学习}}\index{课程学习}(curriculum learning)\index{curriculum learning}策略,该策略认为应从一种学习策略过渡到另一种学习策略:在训练开始时,由于模型训练不充分,因此如果从模型中随机采样,会导致收敛速度非常慢。因此,在模型训练的前期,通常会选择使用真实的先前单词$\mathbi{y}_{t-1}$。在模型训练的后期,$\epsilon_i$应该更倾向于使用来自模型本身的估计$\hat{\mathbi{y}}_{t-1}$,这种训练方式也是与真实的推理情况相对应的。
\parinterval 在使用调度策略时,需要调整关于$i$的函数来降低$\epsilon_i$,与梯度下降方法中降低学习率的方式相似,调度策略可以采取如下几种方式:
\parinterval 在使用调度策略时,需要调整关于$i$的函数来降低$\epsilon_i$,与梯度下降方法中降低学习率的方式相似,调度策略可以采取如下几种方式{\red (调度策略、i、epslon什么关系?)}
{\red (下面最后一句重复,而且没明白想表达什么)}
\begin{itemize}
\vspace{0.5em}
\item 线性衰减:$\epsilon_i = \max(\epsilon,k-ci)${\red (ci中i是什么意思,c不是个常数?)},其中$0 \leqslant \epsilon < 1$,是要提供给模型的最小数值,而k和c提供衰减的偏移量和斜率,取决于预期的收敛速度。
\item 线性衰减:$\epsilon_i = \max(\epsilon,k-ci)$,其中$0 \leqslant \epsilon < 1$,是要提供给模型的最小数值,而k和c提供衰减的偏移量和斜率,取决于预期的收敛速度。
\vspace{0.5em}
\item 指数衰减:$\epsilon_i = k^i$,其中$k$是一个常数,一般为$k < 1$,取决于预期的收敛速度。
\vspace{0.5em}
\item 反向sigmoid 衰减:$ϵ_i=k/(k+exp⁡(i/k))$,其中$k≥1$,取决于预期的收敛速度。
\item 反向Sigmoid 衰减:$\epsilon_i = k/(k + \exp(i/k))$,其中$k \geqslant 1$,取决于预期的收敛速度。
\vspace{0.5em}
\end{itemize}
......@@ -513,9 +513,9 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{N}\sum_{(\mathbi{x},\
\subsubsection{2. 生成对抗网络}
\parinterval {\red(前面讲了一点GAN)}与人工翻译相比,{\red 极大似然估计的优化目标是假设能够最大化标准答案的可能性(这种描述有点绕)},但由于曝光偏置问题会导致训练和解码的不一致,因此这个{\red 假设}不一定成立。而{\small\bfnew{生成对抗网络}}\index{生成对抗网络}(Generative Adversarial Networks\index{Generative Adversarial Networks},GAN)的优化目标{\red 不是最大化标准答案的可能性,而是最大化标准答案和模型预测结果的相似性,因此可以解决曝光偏置问题。}
\parinterval 调度采样解决曝光偏置的方法是:把模型自己生成的结果当成正确答案用来训练。但是这样导致的问题就是模型会把错误的结果当成正确的来学习,影响了模型最终的效果。解决这个问题的关键就是如何对模型自己生成的结果进行评价。如果生成好的结果,那么我们使用它进行模型训练,否则就不使用。{\small\bfnew{生成对抗网络}}\index{生成对抗网络}(Generative Adversarial Networks\index{Generative Adversarial Networks},GAN)就是这样一种技术,它引入了一个额外的模型(判别器)来对原有模型(生成器)的生成结果进行评价,并根据评价结果同时训练两个模型。
\parinterval 生成对抗网络采用了对抗的训练架构并将其命名为{\small\bfnew{对抗神经机器翻译}}\index{对抗神经机器翻译}(Adversarial-NMT)\index{Adversarial-NMT},其总体框架如图\ref{fig:13-23}所示,{\red 其中“Ref”是“Reference”的缩写,表示标准答案,而“ Hyp”是“Hypothesis”的缩写,表示模型翻译句子结果(准备直接吧图中英文改为中文}。所有黄色部分表示神经机器翻译模型G{\red (看下15章的模型)},该模型将源语言句子$\seq{x}$映射为目标语言句子。红色部分是对抗网络D,该网络预测目标语言句子是否是源语言句子$\seq{x}$的真实翻译。G和D相互对抗,同时生成{\red 采样翻译}$\seq{y}'$来训练D,以及生成奖励信号来通过策略梯度训练G。
\parinterval 生成对抗网络采用了对抗的训练架构并将其命名为{\small\bfnew{对抗神经机器翻译}}\index{对抗神经机器翻译}(Adversarial-NMT)\index{Adversarial-NMT},其总体框架如图\ref{fig:13-23}所示,{\red 其中“Ref”是“Reference”的缩写,表示标准答案,而“ Hyp”是“Hypothesis”的缩写,表示模型翻译句子结果(准备直接吧图中英文改为中文,然后把这句话删掉)}。所有黄色部分表示神经机器翻译模型G,该模型将源语言句子$\seq{x}$映射为目标语言句子。红色部分是对抗网络D,该网络预测目标语言句子是否是源语言句子$\seq{x}$的真实翻译。G和D相互对抗,同时生成翻译结果$\seq{y}'$来训练D,以及生成奖励信号来通过策略梯度训练G。
%----------------------------------------------
\begin{figure}[htp]
......@@ -528,7 +528,7 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{N}\sum_{(\mathbi{x},\
\parinterval 对于用于训练的双语句对$(\seq{x}=\{\mathbi{x}_1,\mathbi{x}_2,\ldots,\mathbi{x}_m\},\seq{y}=\{\mathbi{y}_1,\mathbi{y}_2,\ldots,\mathbi{y}_n\})$,其中$\mathbi{x}_i$是源句子中的第$i$个单词,$\mathbi{y}_j$是目标句子中的第$j$个单词。令$\seq{y}'$表示神经机器翻译系统对源语言句子$\mathbi{x}$的解码结果。实际上,对抗神经机器翻译的训练目标就是强制$\seq{y}'$$\seq{y}$相似。在理想情况下,$\seq{y}'$与人类的翻译结果$\seq{y}$非常相似,以至于人类也无法分辨$\seq{y}'$是由机器还是人类产生的。为了实现这一目标,需要引入一个额外的对抗网络\upcite{DBLP:conf/nips/GoodfellowPMXWOCB14}。该对抗网络的目标是将人类翻译与机器翻译区分开来,神经机器翻译模型G试图产生类似于人类翻译的目标句子,以欺骗对抗网络。
\parinterval 在对抗神经机器翻译中,原始的神经机器翻译模型为生成网络,其训练由一个对抗网络协助。对抗网络的目的是将神经机器翻译模型生成的翻译结果与人的翻译结果区分开,而生成网络的目标是产生高质量的翻译,以欺骗对抗网络。生成网络和对抗网络作为对手,由策略梯度方法来共同训练。{\red 为了使得生成网络和对抗网络能够提高彼此性能,可以通过学习人为产生的正例和从神经机器翻译取得的负例来提高对手的辨别力,通过将对手的输出作为反馈来提高神经机器翻译模型欺骗对手的能力。通过这种方式,神经机器翻译的结果可以尽可能接近真实答案。(句子太长)}
\parinterval 在对抗神经机器翻译中,原始的神经机器翻译模型为生成网络,其训练由一个对抗网络协助。对抗网络的目的是将神经机器翻译模型生成的翻译结果与人的翻译结果区分开,而生成网络的目标是产生高质量的翻译,以欺骗对抗网络。生成网络和对抗网络作为对手,由策略梯度方法来共同训练。为了使得生成网络和对抗网络能够提高彼此性能,可以通过学习人为产生的正例和从神经机器翻译取得的负例来提高对手的辨别力。通过这种方式,神经机器翻译的结果可以尽可能接近真实答案。
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
......@@ -544,7 +544,7 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{N}\sum_{(\mathbi{x},\
\subsubsection{1. 基于策略的增强学习方法}
\parinterval 与传统的极大似然估计不同,{\small\bfnew{最小风险训练}}\index{最小风险训练}(Minimum Risk Training\index{Minimum Risk Training},MRT)方法引入了评价指标作为损失函数,{\red 目标是将训练数据在测试数据上的预期损失降至最低}\upcite{DBLP:conf/acl/ShenCHHWSL16}
\parinterval 与传统的极大似然估计不同,{\small\bfnew{最小风险训练}}\index{最小风险训练}(Minimum Risk Training\index{Minimum Risk Training},MRT)方法引入了评价指标作为损失函数,目标是将训练数据在测试数据上的预期风险降至最低\upcite{DBLP:conf/acl/ShenCHHWSL16}
\parinterval MRT的训练目标是最小化训练数据上的风险,风险定义为相对于后验分布的预期损失,其计算方式如公式\eqref{eq:13-13}所示:
\begin{eqnarray}
......@@ -576,9 +576,7 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{N}\sum_{(\mathbi{x},\
\parinterval MRT显著改善了机器翻译任务的性能\upcite{bahdanau2014neural},且已广泛用于常规SMT\upcite{koehn2003statistical,smith2006minimum,he2012maximum}和基于深度学习的MT\upcite{DBLP:conf/acl/GaoHYD14}
\parinterval {\red 图X}是最小风险训练计算的一个示例,$\mathbi{x}_i$是观测到的源语句子,$\widetilde{\mathbi{y}}_i$是对应的标准答案,$\mathbi{y}_1$$\mathbi{y}_2$$\mathbi{y}_3$是模型的预测结果。损失函数$\vartriangle(\mathbi{y}_i,\widetilde{\mathbi{y}})$用来衡量模型预测结果和标准答案间的差异,MRT的目标是找到一个分布(最右一列)来最小化期望的损失函数。假设$\chi(\mathbi{x}_i)$是包含$\mathbi{y}_1$$\mathbi{y}_2$$\mathbi{y}_3$三个候选的一个集合,整个搜索空间只有这三个候选。
\parinterval\ref{fig:13-24}的右半边展示了优化过程中的四个模型,顺序为从差到好。根据和标准答案$\widetilde{\mathbi{y}}_i$计算出的损失函数,从上到下的三个模型预测输出我们用$\mathbi{y}_1$$\mathbi{y}_2$$\mathbi{y}_3$表示($\mathbi{y}_1$:“今天 天气 很 好”,$\mathbi{y}_2$:“今天 天气 不错”,$\mathbi{y}_3$:“今天 天 很 晴朗”),显然$\mathbi{y}_1$是最好的候选,$\mathbi{y}_3$是次优的候选,$\mathbi{y}_2$是最差的候选,$\mathbi{y}_1>\mathbi{y}_3>\mathbi{y}_2$。第一列的模型以和标准答案相反的顺序排序所有候选结果,$\mathbi{y}_2>\mathbi{y}_3>\mathbi{y}_1$,因此他得到了最高的风险分数-0.50,第二列的模型相对于第一列的模型得到了一个更好的分数-0.61,第三列得到的分数最高,为-0.71。通过将概率质量集中在$\mathbi{y}_1$上,可以进一步降低风险。通过最大程度地减少训练数据的风险分数,我们期望获得一个与标准答案非常相关的模型。
\parinterval\ref{fig:13-24}的右半边展示了优化过程中的四个模型,顺序为从差到好。{\red 根据和标准答案$\widetilde{\mathbi{y}}_i$计算出的损失函数,}从上到下的三个模型预测输出我们用$\mathbi{y}_1$$\mathbi{y}_2$$\mathbi{y}_3$表示($\mathbi{y}_1$:“今天 天气 很 好”,$\mathbi{y}_2$:“今天 天气 不错”,$\mathbi{y}_3$:“今天 天 很 晴朗”),显然$\mathbi{y}_1$是最好的候选,$\mathbi{y}_3$是次优的候选,$\mathbi{y}_2$是最差的候选,$\mathbi{y}_1>\mathbi{y}_3>\mathbi{y}_2$。第一列的模型以和标准答案相反的顺序排序所有候选结果,$\mathbi{y}_2>\mathbi{y}_3>\mathbi{y}_1$,因此他得到了最高的风险分数-0.50,第二列的模型相对于第一列的模型得到了一个更好的分数-0.61,第三列得到的分数最高,为-0.71。通过将概率质量集中在$\mathbi{y}_1$上,可以进一步降低风险。通过最大程度地减少训练数据的风险分数,我们期望获得一个与标准答案非常相关的模型。
%----------------------------------------------
\begin{figure}[htp]
......@@ -595,13 +593,20 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{N}\sum_{(\mathbi{x},\
\subsubsection{2. 基于演员-评论家的增强学习方法}
\parinterval 对于基于策略的增强学习方法来说,它的目标是寻找一个策略$\funp{p}(\textrm{a}|\hat{\mathbi{y}}_{1 \ldots t},\mathbi{x})$,使得该策略选择的行动a未来可以获得的奖励期望{\red (后面期望下标中的a是不是加多了?另外原始word里面大小y混用,没有解释小y是什么。另外感觉这个公式太复杂了,没有解释的很清楚,要是解释不清楚的话建议删掉)}$\funp{Q}(\textrm{a};\hat{\mathbi{y}}_{1 \ldots t},\widetilde{\mathbi{y}}) = \mathbb{E}_{\hat{\mathbi{y}}_{1 \ldots T} \sim \funp{p}(\textrm{a}|\hat{\mathbi{y}}_{1 \ldots t} \textrm{a},\mathbi{x})}[\funp{r}_t(\textrm{a};\hat{\mathbi{y}}_{1 \ldots t-1},\widetilde{\mathbi{y}}) + \sum_{i=t+1}^T\funp{r}_i(\hat{\mathbi{y}}_i;\hat{\mathbi{y}}_{1 \ldots i-1}\textrm{a}\hat{\mathbi{y}}_{t+1 \ldots i},\widetilde{\mathbi{y}})]$(也被称为动作价值函数)最大化,其中$\funp{r}_t(\textrm{a};\hat{\mathbi{y}}_{1 \ldots t-1},\widetilde{\mathbi{y}})$$t$时刻做出行动a获得的奖励,$\mathbi{x}$是源语句子,$\widetilde{\mathbi{y}}$是正确答案,$\hat{\mathbi{y}}_{1 \ldots t}$是策略$\funp{p}$产生的译文的前$t$个词。其{\red (在一个源语句子X上的)}目标函数可以表示为公式\eqref{eq:13-15}{\red (下面A没解释)}
\parinterval 对于基于策略的增强学习方法来说,它的目标是寻找一个策略$\funp{p}(\textrm{a}|\hat{\mathbi{y}}_{1 \ldots t},\mathbi{x})$,使得该策略选择的行动a未来可以获得的奖励期望(也被称为动作价值函数)最大化:
\begin{eqnarray}
\funp{Q}(\textrm{a};\hat{\mathbi{y}}_{1 \ldots t},\widetilde{\mathbi{y}}) & = & \mathbb{E}_{\hat{\mathbi{y}}_{t+1 \ldots T} \sim \funp{p}(\textrm{a}|\hat{\mathbi{y}}_{1 \ldots t} \textrm{a},\mathbi{x})}[\funp{r}_t(\textrm{a};\hat{\mathbi{y}}_{1 \ldots t-1},\widetilde{\mathbi{y}}) \nonumber \\
& + & \sum_{i=t+1}^T\funp{r}_i(\hat{\mathbi{y}}_i;\hat{\mathbi{y}}_{1 \ldots i-1}\textrm{a}\hat{\mathbi{y}}_{t+1 \ldots i},\widetilde{\mathbi{y}})]
\label{eq:13-35}
\end{eqnarray}
\noindent 其中$\funp{r}_t(\textrm{a};\hat{\mathbi{y}}_{1 \ldots t-1},\widetilde{\mathbi{y}})$$t$时刻做出行动a获得的奖励,$\mathbi{x}$是源语句子,$\widetilde{\mathbi{y}}$是正确答案,$\hat{\mathbi{y}}_{1 \ldots t}$是策略$\funp{p}$产生的译文的前$t$个词,{\red $T$}。其(在一个源语句子X上的)定义的目标函数可以表示为:
\begin{eqnarray}
\max_{\funp{p}}\mathbb{E}_{\hat{\mathbi{y}} \sim \funp{p}(\hat{\mathbi{y}} | \mathbi{x})}\sum_{t=1}^T\sum_{\textrm{a} \in \textrm{A}}\funp{p}(\textrm{a}|\hat{\mathbi{y}}_{1 \ldots t},\mathbi{x})\funp{Q}(\textrm{a};\hat{\mathbi{y}}_{1 \ldots t},\widetilde{\mathbi{y}})
\label{eq:13-15}
\end{eqnarray}
\parinterval {\red (这段上面不好理解,这段开始是ok的)}计算动作价值函数$\funp{Q}$需要{\red 迭代}$t$时刻以后所有可能句子,而可能的句子数目是随着其长度指数级增长,因此我们只能估计$\funp{Q}$。基于策略的增强学习方法,如最小风险训练(风险$\vartriangle=-\funp{Q}$)等都使用了采样的方法来估计$\funp{Q}$。尽管采样估计的结果是$\funp{Q}$的无偏估计,但是它的缺点在于估计的方差比较大。而$\funp{Q}$直接关系到梯度更新的大小,不稳定的数值会导致网络更新不稳定,难以优化。
\parinterval 其中,\textrm{A}所有可能的行动组成的空间,也就是词表$V$。上式表示,计算动作价值函数$\funp{Q}$需要枚举$t$时刻以后所有可能句子,而可能的句子数目是随着其长度指数级增长,因此我们只能估计$\funp{Q}$。基于策略的增强学习方法,如最小风险训练(风险$\vartriangle=-\funp{Q}$)等都使用了采样的方法来估计$\funp{Q}$。尽管采样估计的结果是$\funp{Q}$的无偏估计,但是它的缺点在于估计的方差比较大。而$\funp{Q}$直接关系到梯度更新的大小,不稳定的数值会导致网络更新不稳定,难以优化。
\parinterval 为了避免采样的开销和随机性带来的不稳定,基于演员-评论家的增强学习方法\upcite{DBLP:conf/iclr/BahdanauBXGLPCB17}引入一个可学习的函数$\hat{\funp{Q}}$,通过函数$\hat{\funp{Q}}$来逼近动作价值函数$\funp{Q}$。但是由于$\hat{\funp{Q}}$是人工设计的一个函数,该函数有着自身的偏置,因此$\hat{\funp{Q}}$不是$\funp{Q}$的一个无偏估计,所以使用$\hat{\funp{Q}}$来指导$\funp{p}$的优化无法到达理论上的最优解。尽管如此,得益于神经网络强大的拟合能力,基于演员-评论家的增强学习方法仍更具优势。
......@@ -611,27 +616,28 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{N}\sum_{(\mathbi{x},\
\label{eq:13-16}
\end{eqnarray}
\parinterval 与公式\eqref{eq:13-15}相比可以发现,基于演员-评论家的增强学习方法与基于策略的增强学习方法类似,公式\eqref{eq:13-16}对动作价值函数$\funp{Q}$的估计从采样换成了$\hat{\funp{Q}}${\red 对于目标函数里的期望,我们通常使用采样来进行逼近。借助与最小风险训练类似的方法,我们可以计算对$\funp{p}$的梯度来进行优化。(感觉这段讲不讲都行,没有帮助理解上面公式)}
\parinterval 与公式\eqref{eq:13-15}相比可以发现,基于演员-评论家的增强学习方法与基于策略的增强学习方法类似,公式\eqref{eq:13-16}对动作价值函数$\funp{Q}$的估计从采样换成了$\hat{\funp{Q}}$对于目标函数里的期望,我们通常使用采样来进行逼近。借助与最小风险训练类似的方法,我们可以计算对$\funp{p}$的梯度来进行优化。
\parinterval 而对于评论家,它的优化目标则不是那么显而易见。尽管根据定义我们可以通过采样来估计$\funp{Q}$,然后使用该估计作为目标让$\hat{\funp{Q}}$进行拟合,但是这样会导致非常高的(采样)代价,同时可以想象,既然有了一个无偏估计,为什么还要用有偏估计$\hat{\funp{Q}}$呢?
\parinterval 回顾动作价值函数的定义,我们对它做适当的展开,可以得到如下等式:
\begin{eqnarray}
\funp{Q}(\hat{\mathbi{y}};\hat{\mathbi{y}}_{1 \ldots t-1},\mathbi{y}) & = & \funp{r}_t(\hat{\mathbi{y}}_t;\hat{\mathbi{y}}_{1 \ldots t-1},\mathbi{y}) + \sum_{\textrm{a} \in \textrm{A}}\funp{p}(\textrm{a}|\hat{\mathbi{y}}_{1 \ldots t},\mathbi{x})\funp{Q}(\textrm{a};\hat{\mathbi{y}}_{1 \ldots t},\widetilde{\mathbi{y}})
\funp{Q}(\hat{\mathbi{y}};\hat{\mathbi{y}}_{1 \ldots t-1},\widetilde{\mathbi{y}}) & = & \funp{r}_t(\hat{\mathbi{y}}_t;\hat{\mathbi{y}}_{1 \ldots t-1},\widetilde{\mathbi{y}}) \nonumber \\
& + & \sum_{\textrm{a} \in \textrm{A}}\funp{p}(\textrm{a}|\hat{\mathbi{y}}_{1 \ldots t},\mathbi{x})\funp{Q}(\textrm{a};\hat{\mathbi{y}}_{1 \ldots t},\widetilde{\mathbi{y}})
\label{eq:13-17}
\end{eqnarray}
\parinterval 这个等式也被称为贝尔曼方程\upcite{sutton2018reinforcement}。这个等式告诉我们$t-1$时刻的动作价值函数$\funp{Q}(\hat{\mathbi{y}};\hat{\mathbi{y}}_{1 \ldots t-1},\mathbi{y})$跟下一时刻$t$的动作价值函数$\funp{Q}(\textrm{a};\hat{\mathbi{y}}_{1 \ldots t},\widetilde{\mathbi{y}})$之间的关系。因此我们可以很自然的使用等式右部作为等式左部$\funp{Q}(\hat{\mathbi{y}};\hat{\mathbi{y}}_{1 \ldots t-1},\mathbi{y})$的目标。而由于动作价值函数的输出是数值,通常会选用均方误差来计算目标函数值。
\parinterval 这个等式也被称为贝尔曼方程\upcite{sutton2018reinforcement}。这个等式告诉我们$t-1$时刻的动作价值函数$\funp{Q}(\hat{\mathbi{y}};\hat{\mathbi{y}}_{1 \ldots t-1},\widetilde{\mathbi{y}})$跟下一时刻$t$的动作价值函数$\funp{Q}(\textrm{a};\hat{\mathbi{y}}_{1 \ldots t},\widetilde{\mathbi{y}})$之间的关系。因此我们可以很自然的使用等式右部作为等式左部$\funp{Q}(\hat{\mathbi{y}};\hat{\mathbi{y}}_{1 \ldots t-1},\widetilde{\mathbi{y}})$的目标。而由于动作价值函数的输出是数值,通常会选用均方误差来计算目标函数值。
\parinterval t时刻动作价值函数的目标如下:{\red (下面开始用q?)}
\begin{eqnarray}
\funp{q}_t & = & \funp{r}_t(\hat{\mathbi{y}}_t;\hat{\mathbi{y}}_{1 \ldots t-1},\mathbi{y}) + \sum_{\textrm{a} \in \textrm{A}}\funp{p}(\textrm{a}|\hat{\mathbi{y}}_{1 \ldots t},\mathbi{x})\hat{\funp{Q}}(\textrm{a};\hat{\mathbi{y}}_{1 \ldots t},\widetilde{\mathbi{y}})
\funp{q}_t & = & \funp{r}_t(\hat{\mathbi{y}}_t;\hat{\mathbi{y}}_{1 \ldots t-1},\widetilde{\mathbi{y}}) + \sum_{\textrm{a} \in \textrm{A}}\funp{p}(\textrm{a}|\hat{\mathbi{y}}_{1 \ldots t},\mathbi{x})\hat{\funp{Q}}(\textrm{a};\hat{\mathbi{y}}_{1 \ldots t},\widetilde{\mathbi{y}})
\label{eq:13-18}
\end{eqnarray}
\parinterval 而评论家对应的目标函数则如下:
\begin{eqnarray}
\min_{\hat{\funp{Q}}}\sum_{t=1}^T{(\hat{\funp{Q}}(\hat{\mathbi{y}};\hat{\mathbi{y}}_{1 \ldots t-1},\mathbi{y}) - \funp{q}_t)}^2
\min_{\hat{\funp{Q}}}\sum_{t=1}^T{(\hat{\funp{Q}}(\hat{\mathbi{y}};\hat{\mathbi{y}}_{1 \ldots t-1},\widetilde{\mathbi{y}}) - \funp{q}_t)}^2
\label{eq:13-19}
\end{eqnarray}
......@@ -650,7 +656,7 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{N}\sum_{(\mathbi{x},\
\begin{itemize}
\vspace{0.5em}
\item 多目标学习:演员的优化通常会引入额外的{\red MLE(好像之前没解释?)}目标函数,同时会使用MLE进行预训练。这样会简化训练,因为随机初始化的演员性能很差,很难获得有效的奖励。同时MLE作为一个额外的正则项也防止模型跑偏,加速收敛。
\item 多目标学习:演员的优化通常会引入额外的MLE目标函数,同时会使用MLE进行预训练。这样会简化训练,因为随机初始化的演员性能很差,很难获得有效的奖励。同时MLE作为一个额外的正则项也防止模型跑偏,加速收敛。
\vspace{0.5em}
\item 目标网络:评论家的优化目标是由自身输出所构造。当模型更新比较快的时候模型的输出变化也会很快,导致构造的优化目标不稳定,影响模型收敛。一个解决方案是在一定更新次数内固定构造优化目标使用的模型,然后再使用比较新的模型来构造后续一定更新次数内的优化目标,如此往复\upcite{DBLP:journals/nature/SilverHMGSDSAPL16}
\vspace{0.5em}
......@@ -783,7 +789,7 @@ L_{\textrm{seq}} = - \textrm{logP}_{\textrm{s}}(\hat{\mathbf{y}} | \mathbf{x})
\sectionnewpage
\section{基于样本价值的学习}
\parinterval 当人在学习知识时,通常会遵循序渐进、由易到难的原则,这是一种很自然的学习策略。但是,当训练机器翻译模型时,通常是将全部的样本以随机的方式输入模型中进行学习,换句话说,就是让模型来平等地对待所有的训练样本。这种方式忽略了样本对于模型训练的“价值”,显然,更加理想的方式是使用高价值的样本对模型进行训练。围绕训练样本的价值差异引发了诸如数据选择、主动学习、课程学习等一系列的学习策略,这些学习策略本质上是在不同任务、不同背景、不同假设下对如何高效的利用样本来进行学习这一问题的解决方法,本节即对这些相关技术进行介绍。
\parinterval 当人在学习知识时,通常会遵循序渐进、由易到难的原则,这是一种很自然的学习策略。但是,当训练机器翻译模型时,通常是将全部的样本以随机的方式输入模型中进行学习,换句话说,就是让模型来平等地对待所有的训练样本。这种方式忽略了样本对于模型训练的“价值”,显然,更加理想的方式是使用高价值的样本对模型进行训练。围绕训练样本的价值差异引发了诸如数据选择、主动学习、课程学习等一系列的学习策略,这些学习策略本质上是在不同任务、不同背景、不同假设下对如何高效的利用样本来进行学习这一问题的解决方法,本节即对这些相关技术进行介绍。
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
......@@ -815,7 +821,7 @@ L_{\textrm{seq}} = - \textrm{logP}_{\textrm{s}}(\hat{\mathbf{y}} | \mathbf{x})
\vspace{0.5em}
\item 基于文本分类的方法\upcite{DBLP:conf/conll/ChenH16,chen2016bilingual,DBLP:conf/aclnmt/ChenCFL17,DBLP:conf/wmt/DumaM17}。将该问题转化为文本分类问题,先构造一个领域分类器,之后利用该分类器对给定的句子进行领域分类,最后用输出的概率来打分,选择目标领域预测得分高的样本。
\vspace{0.5em}
\item 基于{\small\bfnew{特征衰减算法}}\index{特征衰减算法}(Feature Decay Algorithms\index{Feature Decay Algorithms},FDA)的方法\upcite{DBLP:conf/wmt/BiciciY11,poncelas2018feature,DBLP:conf/acl/SotoSPW20,DBLP:journals/corr/abs-1811-03039}。该算法基于特征匹配,试图从源领域中提取出一个句子集合,这些句子能够使目标领域语言特征的覆盖范围最大化
\item 基于{\small\bfnew{特征衰减算法}}\index{特征衰减算法}(Feature Decay Algorithms\index{Feature Decay Algorithms},FDA)的方法\upcite{DBLP:conf/wmt/BiciciY11,poncelas2018feature,DBLP:conf/acl/SotoSPW20,DBLP:journals/corr/abs-1811-03039}。该算法基于特征匹配,试图从源领域中提取出一个句子集合,这些句子能够最大化覆盖目标领域的语言特征
\vspace{0.5em}
\end{itemize}
......@@ -841,7 +847,7 @@ L_{\textrm{seq}} = - \textrm{logP}_{\textrm{s}}(\hat{\mathbf{y}} | \mathbf{x})
\parinterval 含有噪声的数据通常都具有较为明显的特征,因此可以用诸如句子长度比、词对齐率、最长连续未对齐序列长度等一些特征来对句子进行综合评分\upcite{rarrick2011mt,taghipour2011parallel,Xu2017ZipporahAF};也可以将该问题转化为分类任务来对句子进行筛选\upcite{DBLP:conf/aclnmt/CarpuatVN17,DBLP:conf/naacl/VyasNC18};此外,从某种意义上来说,数据降噪其实也可以算是一种领域数据选择,因为它的目标是选择可信度高的样本,因此也可以人工构建一个可信度高的小数据集,然后利用该数据集和通用数据集之间的差异性进行选择\upcite{DBLP:conf/wmt/WangWHNC18}
\parinterval 早期的工作大多在关注过滤噪声数据的方法,对于噪声数据中模型的健壮性训练和噪声样本的利用探讨较少。事实上,噪声是有强度的,有些噪声数据对于模型可能是有价值的,而且它们的价值可能会随着模型的状态而改变\upcite{DBLP:conf/wmt/WangWHNC18}。一个例子如图\ref{fig:13-51}所示(画图的时候zh-gloss那行不要了,zh翻译为汉语{\color{red} 例子是别人的,还是自己造的?})。
\parinterval 早期的工作大多在关注过滤噪声数据的方法,对于噪声数据中模型的健壮性训练和噪声样本的利用探讨较少。事实上,噪声是有强度的,有些噪声数据对于模型可能是有价值的,而且它们的价值可能会随着模型的状态而改变\upcite{DBLP:conf/wmt/WangWHNC18}。一个例子如图\ref{fig:13-51}所示{\red (画图的时候zh-gloss那行不要了,zh翻译为汉语,引用:Denoising Neural Machine Translation Training with Trusted Data and Online Data Selection})。
%----------------------------------------------
\begin{figure}[htp]
......@@ -852,7 +858,7 @@ L_{\textrm{seq}} = - \textrm{logP}_{\textrm{s}}(\hat{\mathbf{y}} | \mathbf{x})
\end{figure}
%-------------------------------------------
\parinterval 图中的汉语句子中缺少了一部分翻译,但这两个句子都很流畅,简单的基于长度或双语词典的方法可以很容易地对其进行过滤({\color{red} 过滤啥?})。但是,这个训练样本对于训练机器翻译模型仍然有用,特别是在数据稀缺的情况下,因为汉语句子和英语句子的前半部分仍然是正确的互译结果。这表明了噪声数据的微妙之处,它不是一个简单的二元分类问题:一些训练样本可能部分有用,而它们的有用性也可能随着训练的进展而改变。因此简单的过滤并不一种很好的办法,一种合理的学习策略应该是既可以合理的利用这些数据,又不让其对模型产生负面影响。直觉上,这是一个动态的过程,当模型能力较弱时(比如在训练初期),这些数据就能对模型起到正面作用,反之亦然。受课程学习、微调等方法的启发,研究人员也提出了类似的学习策略,它的主要思想是:在训练过程中对批量数据的噪声水平进{\small\bfnew{退火}}\index{退火}(Anneal)\index{Anneal},使得模型在越来越干净的数据上进行训练\upcite{DBLP:conf/wmt/WangWHNC18,DBLP:conf/acl/WangCC19}。从宏观上看,整个训练过程其实是一个持续微调的过程,这和微调的思想基本一致。这种学习策略一方面充分利用了训练数据,一方面又避免了噪声数据对模型的负面影响,因此取得了不错的效果。
\parinterval 一方面来说,虽然图中这两个句子都很流畅,但是由于汉语句子中缺少了一部分翻译,因此简单的基于长度或双语词典的方法可以很容易将其过滤掉。从另一方面来说,这个训练样本对于训练机器翻译模型仍然有用,特别是在数据稀缺的情况下,因为汉语句子和英语句子的前半部分仍然是正确的互译结果。这表明了噪声数据的微妙之处,它不是一个简单的二元分类问题:一些训练样本可能部分有用,而它们的有用性也可能随着训练的进展而改变。因此简单的过滤并不一种很好的办法,一种合理的学习策略应该是既可以合理的利用这些数据,又不让其对模型产生负面影响。直觉上,这是一个动态的过程,当模型能力较弱时(比如在训练初期),这些数据就能对模型起到正面作用,反之亦然。受课程学习、微调等方法的启发,研究人员也提出了类似的学习策略,它的主要思想是:在训练过程中对批量数据的噪声水平进{\small\bfnew{退火}}\index{退火}(Anneal)\index{Anneal},使得模型在越来越干净的数据上进行训练\upcite{DBLP:conf/wmt/WangWHNC18,DBLP:conf/acl/WangCC19}。从宏观上看,整个训练过程其实是一个持续微调的过程,这和微调的思想基本一致。这种学习策略一方面充分利用了训练数据,一方面又避免了噪声数据对模型的负面影响,因此取得了不错的效果。
%----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
......@@ -860,7 +866,7 @@ L_{\textrm{seq}} = - \textrm{logP}_{\textrm{s}}(\hat{\mathbf{y}} | \mathbf{x})
\subsubsection{3. 主动学习}
\parinterval {\small\bfnew{主动学习}}\index{主动学习}(Active Learning\index{Active Learning})也是一种数据选择策略。它最初的应用场景式是:标注大量的数据成本过高,因此希望优先标注对模型最有价值的数据,这样可以最大化模型学习的效率,同时整体降低标注的代价。主动学习主要由五个部分组成({\color{red} 再确定一下Active learning with sampling by uncertainty and density for word sense disambiguation and text classification还是Active learning with sampling by uncertainty and density for data annotations还是Active learning for word sense disambiguation with methods for addressing the class imbalance problem等等},包括:未标注样本池、筛选策略、标注者、标注样本集、目标模型。在主动学习过程中,会根据当前的模型状态找到未标注样本池中最优价值的样本,之后送给标注者。标注结束后,会把标注的样本加入到标注样本集中,之后用这些标注的样本更新模型。之后,重复这个过程,直到到达某种收敛状态。
\parinterval {\small\bfnew{主动学习}}\index{主动学习}(Active Learning\index{Active Learning})也是一种数据选择策略。它最初的应用场景式是:标注大量的数据成本过高,因此希望优先标注对模型最有价值的数据,这样可以最大化模型学习的效率,同时整体降低标注的代价\upcite{DBLP:conf/coling/ZhuWH08}。主动学习主要由五个部分组成,包括:未标注样本池、筛选策略、标注者、标注样本集、目标模型。在主动学习过程中,会根据当前的模型状态找到未标注样本池中最优价值的样本,之后送给标注者。标注结束后,会把标注的样本加入到标注样本集中,之后用这些标注的样本更新模型。之后,重复这个过程,直到到达某种收敛状态。
\parinterval 主动学习的一个核心问题是:如何选择出那些最有价值的未标注样本?通常会假设模型认为最“难”的样本是最有价值的。具体实现有很多思路,例如,基于置信度的方法、基于分类错误的方法等等\upcite{DBLP:journals/tslp/ZhuM12,DBLP:conf/coling/ZhuWYT08}
......@@ -890,7 +896,7 @@ L_{\textrm{seq}} = - \textrm{logP}_{\textrm{s}}(\hat{\mathbf{y}} | \mathbf{x})
\vspace{0.5em}
\item 如何评估每个样本的难度?即设计评估样本学习难易度的准则,简称{\small\bfnew{难度评估准则}}\index{难度评估准则}(Difficulty Criteria\index{Difficulty Criteria}
\vspace{0.5em}
\item 以何种策略来规划训练数据?即何时为训练提供更复杂的数据,以及提供多少数据等,{\small\bfnew{课程规划}}\index{课程规划}(Curriculum Schedule\index{Curriculum Schedule}
\item 以何种策略来规划训练数据?即何时为训练提供更复杂的数据,以及提供多少数据等,{\small\bfnew{课程规划}}\index{课程规划}(Curriculum Schedule\index{Curriculum Schedule}
\vspace{0.5em}
\end{itemize}
......@@ -926,13 +932,13 @@ L_{\textrm{seq}} = - \textrm{logP}_{\textrm{s}}(\hat{\mathbf{y}} | \mathbf{x})
\subsection{持续学习}
\parinterval 人类具有不断学习、调整和转移知识的能力,这种能力称之为{\small\bfnew{持续学习}}\index{持续学习}(Continual Learning\index{Continual Learning}),也叫{\small\bfnew{终生学习}}(Lifelong Learning\index{Lifelong Learning})、{\small\bfnew{增量式学习}}\index{增量式学习}(Incremental Learning\index{Incremental Learning})。人类学习的新任务时,会很自然的利用以前的知识并将新学习的知识整合到以前的知识中。然而对于机器学习系统来说,尤其在连接主义的范式下(如深度神经网络模型),这是一个很大的挑战,这是由神经网络的特性所决定的。当前的神经网络模型依赖于标注的训练样本,通过反向传播算法对模型参数进行训练更新,最终达到拟合数据分布的目的。当把模型切换到新的任务时,本质上是数据的分布发生了变化,从这种非平稳数据({\color{red} 如何理解非平衡?})分布中不断增量获取可用信息很容易导致{\small\bfnew{灾难性遗忘}}\index{灾难性遗忘}(Catastrophic Forgetting\index{Catastrophic Forgetting})问题,即用新数据训练模型的时候会干扰先前学习的知识。这是因为模型在学习新任务时,为了最大程度地减少新任务的损失,会用新训练数据对整个网络权重进行更新,这很容易造成模型过分拟合新的数据,忘记旧数据中的知识。甚至,这在最坏的情况下会导致旧知识被新知识完全重写。在机器翻译,类似的问题经常发生不断增加数据的场景中,因为当用户使用少量数据对模型进行更新之后,发现在旧的数据上的性能下降了(见{\chaptereighteen})。
\parinterval 人类具有不断学习、调整和转移知识的能力,这种能力称之为{\small\bfnew{持续学习}}\index{持续学习}(Continual Learning\index{Continual Learning}),也叫{\small\bfnew{终生学习}}(Lifelong Learning\index{Lifelong Learning})、{\small\bfnew{增量式学习}}\index{增量式学习}(Incremental Learning\index{Incremental Learning})。人类学习的新任务时,会很自然的利用以前的知识并将新学习的知识整合到以前的知识中。然而对于机器学习系统来说,尤其在连接主义的范式下(如深度神经网络模型),这是一个很大的挑战,这是由神经网络的特性所决定的。当前的神经网络模型依赖于标注的训练样本,通过反向传播算法对模型参数进行训练更新,最终达到拟合数据分布的目的。当把模型切换到新的任务时,本质上是数据的分布发生了变化,从这种分布差异过大的数据中不断增量获取可用信息很容易导致{\small\bfnew{灾难性遗忘}}\index{灾难性遗忘}(Catastrophic Forgetting\index{Catastrophic Forgetting})问题,即用新数据训练模型的时候会干扰先前学习的知识。这是因为模型在学习新任务时,为了最大程度地减少新任务的损失,会用新训练数据对整个网络权重进行更新,这很容易造成模型过分拟合新的数据,忘记旧数据中的知识。甚至,这在最坏的情况下会导致旧知识被新知识完全重写。在机器翻译,类似的问题经常发生不断增加数据的场景中,因为当用户使用少量数据对模型进行更新之后,发现在旧的数据上的性能下降了(见{\chaptereighteen})。
\parinterval 为克服灾难性遗忘问题,学习系统一方面必须能连续获取新知识和完善现有知识,另一方面,还应防止新数据输入明显干扰现有的知识,这个问题称作{\small\bfnew{稳定性-可塑性}}\index{稳定性- 可塑性}(Stability-Plasticity\index{Stability-Plasticity})问题。可塑性指整合新知识的能力,稳定性指在编码时会保留先前的知识不至于遗忘。要解决这些问题,就需要模型在保留先前任务的知识与学习当前任务的新知识之间取得平衡。目前的解决方法可以分为以下几类:
\begin{itemize}
\vspace{0.5em}
\item 基于正则化的方法。通过对神经权重的更新施加约束来减轻灾难性的遗忘,通常是在损失函数中引入了一个额外的正则化项,使得模型在学习新数据时巩固先前的知识\upcite{DBLP:journals/pami/LiH18a}{\red Elastic Weight Consolidation}
\item 基于正则化的方法。通过对神经权重的更新施加约束来减轻灾难性的遗忘,通常是在损失函数中引入了一个额外的正则化项,使得模型在学习新数据时巩固先前的知识\upcite{DBLP:journals/pami/LiH18a,DBLP:conf/iccv/TrikiABT17}
\vspace{0.5em}
\item 基于实例的方法。以原始格式存储样本,或使用生成模型生成伪样本,在学习新任务的同时重放先前的任务样本以减轻遗忘\upcite{DBLP:conf/cvpr/RebuffiKSL17,DBLP:conf/eccv/CastroMGSA18}
\vspace{0.5em}
......@@ -959,7 +965,7 @@ L_{\textrm{seq}} = - \textrm{logP}_{\textrm{s}}(\hat{\mathbf{y}} | \mathbf{x})
\item 强化学习在MT的应用?
\vspace{0.5em}
\item 从广义上说,大多数课程学习方法都是遵循由易到难的原则,然而在实践过程中人们逐渐赋予了课程学习更多的内涵,课程学习的含义早已超越了最原始的定义。一方面,课程学习可以与许多任务相结合,此时,评估准则并不一定总是样本的困难度,这取决于具体的任务,比如在{\small\bfnew{多任务学习}}\index{多任务学习}(multi-task learning)\index{multi-task learning}\upcite{DBLP:conf/cvpr/PentinaSL15,DBLP:conf/iccvw/SarafianosGNK17},指的任务的难易程度或相关性;在领域适应任务中\upcite{DBLP:conf/naacl/ZhangSKMCD19},指的是数据与领域的相似性;在噪声数据场景中,指的是样本的可信度\upcite{DBLP:conf/acl/WangCC19}。另一方面,在一些任务或数据中,由易到难并不总是有效,有时困难优先反而会取得更好的效果\upcite{DBLP:conf/medprai/SurendranathJ18,zhang2018empirical},实际上这和我们的直觉不太符合,一种合理的解释是课程学习更适合标签噪声、离群值较多或者是目标任务困难的场景,能提高模型的健壮性和收敛速度,而困难优先则更适合数据集干净的场景,能使随机梯度下降更快更稳定\upcite{DBLP:conf/nips/ChangLM17}{\color{red} 这段写得不错!}
\item 从广义上说,大多数课程学习方法都是遵循由易到难的原则,然而在实践过程中人们逐渐赋予了课程学习更多的内涵,课程学习的含义早已超越了最原始的定义。一方面,课程学习可以与许多任务相结合,此时,评估准则并不一定总是样本的困难度,这取决于具体的任务,比如在{\small\bfnew{多任务学习}}\index{多任务学习}(multi-task learning)\index{multi-task learning}\upcite{DBLP:conf/cvpr/PentinaSL15,DBLP:conf/iccvw/SarafianosGNK17},指的任务的难易程度或相关性;在领域适应任务中\upcite{DBLP:conf/naacl/ZhangSKMCD19},指的是数据与领域的相似性;在噪声数据场景中,指的是样本的可信度\upcite{DBLP:conf/acl/WangCC19}。另一方面,在一些任务或数据中,由易到难并不总是有效,有时困难优先反而会取得更好的效果\upcite{DBLP:conf/medprai/SurendranathJ18,zhang2018empirical},实际上这和我们的直觉不太符合,一种合理的解释是课程学习更适合标签噪声、离群值较多或者是目标任务困难的场景,能提高模型的健壮性和收敛速度,而困难优先则更适合数据集干净的场景,能使随机梯度下降更快更稳定\upcite{DBLP:conf/nips/ChangLM17}
\vspace{0.5em}
\end{itemize}
This source diff could not be displayed because it is too large. You can view the blob instead.
\begin{tikzpicture}
\tikzstyle{word} = [font=\scriptsize,minimum height=1.4em]
\tikzstyle{model} = [rectangle,line width=0.7pt,draw,minimum height=3em,minimum width=13em,rounded corners=4pt,fill=red!20]
\tikzstyle{model} = [rectangle,line width=0.7pt,draw,minimum height=2.2em,minimum width=13em,rounded corners=4pt,fill=red!20]
\node [anchor=center] (ate) at (0,0) {};
%decoder
\node [anchor=center,model,fill=blue!20] (decoder) at ([xshift=7.5em]ate.east) {解码器};
\node [anchor=center,model,fill=blue!20] (decoder) at ([xshift=7.5em]ate.east) {\small{解码器}};
\node [anchor=north,word] (w1) at ([yshift=-1.5em,xshift=0em]decoder.south) {\small{$x_3$}};
\node [anchor=west,word] (w2) at ([xshift=0em]w1.east) {\small{$x_4$}};
\node [anchor=west,word] (w3) at ([xshift=0em]w2.east) {[M]};
......@@ -31,7 +31,7 @@
\draw [->,thick] ([yshift=-1.4em]w10.south) -- (w10.south);
%encoder
\node [model] (encoder) at ([xshift=-7.5em]ate.west) {编码器};
\node [model] (encoder) at ([xshift=-7.5em]ate.west) {\small{编码器}};
\node [anchor=north,word] (we1) at ([yshift=-1.5em,xshift=0em]encoder.south) {[M]};
\node [anchor=west,word] (we2) at ([xshift=0em]we1.east) {[M]};
......
......@@ -632,16 +632,7 @@
\parinterval\ref{unsupervised-dictionary-induction}节所述,无监督词典归纳的方法依赖于词的分布式表示,也就是词嵌入。因此当把无监督词典归纳拓展到短语上时,首先需要获得短语的分布式表示。比较简单的方法是把词换成短语,然后借助与无监督词典归纳相同的算法得到短语的分布式表示。最后直接应用无监督词典归纳方法,得到源语言短语与目标语言短语之间的对应。
\parinterval 尽管已经得到了短语的翻译,短语表的另外一个重要的组成部分,也就是短语对的得分(概率)无法由词典归纳方法直接给出,而这些得分在统计机器翻译模型中非常重要。在无监督词典归纳中,在推断词典的时候会为一对源语言单词和目标语言单词打分(词嵌入之间的相似度),再根据打分来决定哪一个目标语言单词更有可能是当前源语言单词的翻译。在无监督短语归纳中,这样一个打分已经提供了对短语对质量的度量,因此经过适当的归一化处理后就可以得到短语对的得分:
\begin{eqnarray}
P(\mathbi{y}|\mathbi{x}) & = & \frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\sum_{\mathbi{y}^{'}}\mathrm{cos}(\mathbi{x},\mathbi{y}^{'})/\tau}
\label{eq:16-11}
\end{eqnarray}
\noindent 其中,$\mathrm{cos}$是余弦相似度,$\mathbi{x}$是经过无监督词典归纳里$\mathbi{W}$转换的源语言短语嵌入,$\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$使得所有$P$的取值都接近1。实际中为了选取最优$\tau$会为$P(\mathbi{y}|\mathbi{x})$$P(\mathbi{x}|\mathbi{y})$ 同时优化$\tau$
\parinterval 尽管已经得到了短语的翻译,短语表的另外一个重要的组成部分,也就是短语对的得分(概率)无法由词典归纳方法直接给出,而这些得分在统计机器翻译模型中非常重要。在无监督词典归纳中,在推断词典的时候会为一对源语言单词和目标语言单词打分(词嵌入之间的相似度),再根据打分来决定哪一个目标语言单词更有可能是当前源语言单词的翻译。在无监督短语归纳中,这样一个打分已经提供了对短语对质量的度量,因此经过适当的归一化处理后就可以得到短语对的得分。
%----------------------------------------------------------------------------------------
% NEW SUB-SUB-SECTION
......
......@@ -24,7 +24,7 @@
\draw[-, very thick,fill=black] ([xshift=-0.6em,yshift=-1.2em]B\x) -- ([xshift=-0.3em,yshift=-1em]B\x) -- ([yshift=-1.2em]B\x) --([xshift=0.3em,yshift=-1em]B\x) -- ([xshift=0.6em,yshift=-1.2em]B\x) -- (D\x) -- (C\x) -- ([xshift=-0.6em,yshift=-1.2em]B\x);
\draw[-, very thick,fill=black] (E\x) -- ([xshift=0.2em,yshift=0.3em]E\x) -- ([xshift=0.33em]F\x) -- (F\x) -- (E\x);
\node[circle,inner sep=0pt,minimum size=0.4em,fill=black] at ([xshift=-0.7em,yshift=-0.2em]B\x){};
\node[draw,rounded corners=2pt,fill=yellow!20,minimum width=2.3cm,minimum height=2.2em](cnn\x) at ([xshift=1.8em,yshift=3.6em]A\x){CNN};
\node[draw,rounded corners=2pt,fill=yellow!20,minimum width=4.3em,minimum height=2.2em](cnn\x) at ([xshift=1.8em,yshift=3.6em]A\x){CNN};
}
\node[draw,anchor=south,rounded corners=2pt,minimum width=4.0cm,minimum height=2.2em,fill=red!20](encoder) at ([yshift=2.6em,xshift=2.2em]cnn1.north){编码器};
\node[anchor=north,font=\Large](x) at ([xshift=2.5em,yshift=-3.4em]encoder.south){$\seq{x}$};
......
......@@ -26,7 +26,7 @@
{\color{white}}
\vspace{1em}
\begin{center}
{\Huge \bfnew{后记}}
{\Huge \bfnew{\ \ \ }}
\end{center}
\vspace{2em}
......
......@@ -159,18 +159,6 @@
& & & 据规模较小 & \\
\rule{0pt}{15pt}NIST & Zh-En等 & 新闻翻译 & 评测集包括4句参 & {https://www.ldc.upenn.edu/coll} \\
& Cs Zh等 & & 考译文,质量较高 & aborations/evaluations/nist \\
\end{tabular}
\end{center}
}\end{table}
%----------------------------------------------
%----------------------------------------------
\begin{table}[htp]{
\footnotesize
\begin{center}
\begin{tabular}{p{1.6cm} | p{1.2cm} p{1.6cm} p{2.6cm} p{3.9cm}}
\rule{0pt}{15pt}{任务} & {语种} &{领域} &{描述} &{数据集地址} \\
\hline
\rule{0pt}{15pt}TVsub & Zh-En & 字幕翻译 & 数据抽取自电视剧 & {https://github.com/longyuewan} \\
& & & 字幕,用于对话中 & gdcu/tvsub \\
& & & 长距离上下文研究 & \\
......@@ -189,6 +177,7 @@
}\end{table}
%----------------------------------------------
%----------------------------------------------------------------------------------------
% NEW SECTION
%----------------------------------------------------------------------------------------
......
......@@ -26,7 +26,7 @@
{\color{white}}
\vspace{1em}
\begin{center}
{\Huge \bfnew{随笔}}
{\Huge \bfnew{\ \ \ }}
\end{center}
\vspace{2em}
......@@ -34,9 +34,9 @@
%\section{随笔}
\parinterval 自从计算机诞生开始,机器翻译即利用计算机软件技术实现不同语言自动翻译,就是人们首先想到的计算机主要应用之一。很多人说现在处于人工智能时代,是得语言者的天下,因此机器翻译也是认知智能的终极梦想之一,本节将分享我们对机器翻译技术和应用的一些思考,有些想法不一定正确,也许需要十年之后才能验证。
\parinterval 自从计算机诞生开始,机器翻译即利用计算机软件技术实现不同语言自动翻译,就是人们首先想到的计算机主要应用之一。很多人说现在处于人工智能时代,是得语言者的天下,因此机器翻译也是认知智能的终极梦想之一。本书已经讨论了机器翻译的模型、方法和实现技术,这里将分享一些我们对机器翻译应用和未来的一些思考,有些想法不一定正确,也许需要十年之后才能验证。
\parinterval 简单来说,机器翻译技术应用至少可以满足三个用户需求。一是实现外文资料辅助阅读和帮助不同母语的人们进行无障碍交流;二是计算机辅助翻译,帮助人工翻译降本增效;三是大数据分析和处理应用领域实现对多语言文字资料(也可以图像和语音资料)进行加工处理,海量数据翻译对于人工翻译来说是无法完成的,机器翻译是大数据翻译的唯一有效解决方案。从上述三个需求可以看出,机器翻译和人工翻译本质上不存在严格冲突,属于两个平行轨道,两者可以和谐共存、相互帮助。对于机器翻译来说,至少有两个应用场景是其无法胜任的。第一个是要求高质量翻译结果,比如诗歌小说翻译出版;第二个是比如国家领导人讲话,轻易不允许出现低级翻译错误,否则有可能导致严重后果甚至国际纠纷。严格上来说,对译文准确性要求很高的应用 场景不可能简单采用机器翻译,必须由高水平的人工翻译参与来完成。
\parinterval 简单来说,机器翻译技术应用至少可以满足三个用户需求。一是实现外文资料辅助阅读和帮助不同母语的人们进行无障碍交流;二是计算机辅助翻译,帮助人工翻译降本增效;三是大数据分析和处理应用领域实现对多语言文字资料(也可以图像和语音资料)进行加工处理,海量数据翻译对于人工翻译来说是无法完成的,机器翻译是大数据翻译的唯一有效解决方案。从上述三个需求可以看出,机器翻译和人工翻译本质上不存在严格冲突,属于两个平行轨道,两者可以和谐共存、相互帮助。对于机器翻译来说,至少有两个应用场景是其无法胜任的。第一个是要求高质量翻译结果,比如诗歌小说翻译出版;第二个是比如重要领导人讲话,轻易不允许出现低级翻译错误,否则有可能导致严重后果甚至国际纠纷。严格上来说,对译文准确性要求很高的应用 场景不可能简单采用机器翻译,必须由高水平的人工翻译参与来完成。
% \parinterval 机器翻译技术发展至今经历了三个主要阶段,基于规则的方法、统计机器翻译和神经机器翻译。基于规则的方法大家都比较熟悉,专家人工书写一些转换翻译规则,将源语言句子转换翻译成为目标语言译文句子,最大的瓶颈问题是人工书写翻译规则代价非常高,规则较多很难写全,并且规则写多了容易产生冲突,造成跷跷板现象。为了解决人工书写翻译规则代价过高的问题,后两个发展阶段主要采用机器学习的方法,事先准备好较大规模的双语句子作为训练语料,采用机器学习方法来构建机器翻译系统。这种方法原则上不需要人工干预或者太多干预,并且机器翻译系统构建的代价低、速度快,其主要瓶颈问题就是需要事先收集好大规模双语句对集合,这对于很多语言对来说难度比较大,特别是小语种语言对。
%\vspace{0.5em}
......@@ -46,10 +46,10 @@
%\parinterval 据了解全世界至少有五六千种不同语言,能够电子化的语种至少也有两三千种,我们真正熟悉的主流语种不会太多,很多语种人才在国内也是稀缺资源。为了缓解这个问题,机器翻译成为了一个有效解决方案(毕竟培养小语种翻译人才代价奇高)。目前主流的机器翻译技术是神经机器翻译,基于深度学习技术,翻译品质依赖于双语句子训练数据规模。我们都知道,只有主流语种比如英语和中文有能力收集较大规模的双语句对集合,目前大多商用英汉机器翻译系统由几个亿的中英双语句对训练而成,但这对于99\%以上的语言对来说是遥不可及的。甚至大部分语言对的电子化双语句对集合规模非常小,过百万算多的,很多只有几万个句对,甚至没有,最多有一个小规模双语词典而已。
%\vspace{0.5em}
\parinterval 大部分语言对的电子化双语句对集合规模非常小,有的甚至只有一个小规模双语词典。因此资源稀缺语种机器翻译技术研究也成为学术界的研究热点,相信这个课题的突破能大大推动机器翻译技术落地应用。在2017年以前机器翻译市场规模一直很小,主要原因就是机器翻译品质不够好,就算采用最先进的神经机器翻译技术,缺乏足够大规模的双语句对集合作为训练数据,我们也是巧妇难为无米之炊。从技术研究和应用可行性角度来说,解决资源稀缺语种机器翻译问题非常有价值。我们通常可以从两个维度来思考,一是如何想办法获取更多双语句对,甚至包括质量低一点的伪双语数据;二是如何利用更少样本实现高效学习,或者如何充分利用单语数据资源或者可比较数据资源来提升模型学习效果。
\parinterval 不过,大部分语言对的电子化双语句对集合规模非常小,有的甚至只有一个小规模双语词典。因此资源稀缺语种机器翻译技术研究也成为学术界的研究热点,相信这个课题的突破能大大推动机器翻译技术落地应用。在2017年以前机器翻译市场规模一直很小,主要原因就是机器翻译品质不够好,就算采用最先进的神经机器翻译技术,缺乏足够大规模的双语句对集合作为训练数据,我们也是巧妇难为无米之炊。从技术研究和应用可行性角度来说,解决资源稀缺语种机器翻译问题非常有价值。我们通常可以从两个维度来思考,一是如何想办法获取更多双语句对,甚至包括质量低一点的伪双语数据;二是如何利用更少样本实现高效学习,或者如何充分利用单语数据资源或者可比较数据资源来提升模型学习效果。
\parinterval 业内不少研究人员提出采用知识图谱来改善机器翻译,并希望用于解决稀缺资源语种机器翻译问题;还有一些研究工作引入语言分析技术来改善机器翻译,多种不同机器翻译技术融合也是一个思路,比如将基于规则的方法、统计机器翻译技术与神经机器翻译技术互补性融合;另外还可以引入预训练技术来改善机器翻译品质,特别是针对稀缺资源语种机器翻译等等。不仅仅限于上述这些,总体来说,这些思路都具有良好的研究价值,但是从应用角度构建可实用机器翻译系统,我们还需要更多考虑技术落地可行性才行。比如大规模知识图谱构建的代价和语言分析技术的精度如何;实验结果显示大规模双语句对训练条件下,预训练技术对机器翻译的帮助能力有限;双语句对训练数据规模较小的时候,神经机器翻译品质可能不如统计机器翻译,说明两者具有一定互补性。做研究可以搞单点突破,但从可实用机器翻译系统构建来说,需要多技术互补融合,以解决实际问题和改善翻译品质。
%\parinterval 业内不少研究人员提出采用知识图谱来改善机器翻译,并希望用于解决稀缺资源语种机器翻译问题;还有一些研究工作引入语言分析技术来改善机器翻译,多种不同机器翻译技术融合也是一个思路,比如将基于规则的方法、统计机器翻译技术与神经机器翻译技术互补性融合;另外还可以引入预训练技术来改善机器翻译品质,特别是针对稀缺资源语种机器翻译等等。不仅仅限于上述这些,总体来说,这些思路都具有良好的研究价值,但是从应用角度构建可实用机器翻译系统,我们还需要更多考虑技术落地可行性才行。比如大规模知识图谱构建的代价和语言分析技术的精度如何;实验结果显示大规模双语句对训练条件下,预训练技术对机器翻译的帮助能力有限;双语句对训练数据规模较小的时候,神经机器翻译品质可能不如统计机器翻译,说明两者具有一定互补性。做研究可以搞单点突破,但从可实用机器翻译系统构建来说,需要多技术互补融合,以解决实际问题和改善翻译品质。
%\vspace{0.5em}
\parinterval 通常我们把基于规则的方法、统计机器翻译和神经机器翻译称之为第一、第二和第三代机器翻译技术,很自然会问第四代机器翻译会如何发展?有人说是基于知识的机器翻译技术,也有人说是无监督机器翻译技术或者新的机器翻译范式等。在讨论第四代的问题前,我们能否先回答一个问题?所谓新一代机器翻译技术是否应该比目前机器翻译技术的翻译品质更好?现在的问题是实验结果显示,比如拿商用的英汉汉英新闻机器翻译系统举例,经过几个亿双语句对的训练学习后,翻译品质人工评价可以达到80-90\%之间,那我们需要回答的一个简单问题是所谓的第四代机器翻译技术准备在新闻领域翻译达到怎样的准确率呢?92\%或者93\%的数字估计无法支撑起新一代机器翻译技术的碾压性。
......@@ -57,17 +57,17 @@
\parinterval 近几年神经机器翻译技术大大提升了翻译品质,推动了机器翻译产业化的快速发展。与其它深度学习技术应用一样,缺乏可解释性成为了神经机器翻译一个被攻击点。我们先举个简单例子来说明一下,法庭上法官判决犯罪嫌疑人罪名成立,我们不可能简单说有罪或者无罪,同时会说明根据哪条法律法规作为依据,从判决过程来看,这些依据就是判决结果的解释。如果采用深度学习技术,只是一个有罪或无罪的结果,不提供任何依据细节,不能解释,估计犯罪嫌疑人肯定不服。回头来说,我们希望研究神经机器翻译技术的可解释性,目的是为了“纠错”,也可以有利于人工干预机制等。只有通过可解释性研究,搞清楚翻译错误的原因,最终找到解决方案来实现纠错,才是我们研究神经机器翻译技术可解释性的目的所在。
%\parinterval 从上述例子我们可以得出一个分析,我们所需要的可解释性的内涵到底是结论推理的计算过程还是结论推理的以理服人呢?对可解释性的两种理解可能是不一样的,前者面向结论推理过程(how),后者面向结论可理解性(why)。回头来说,对神经机器翻译可解释性研究的目标,到底是前者还是后者呢?目前学术界有一些相关研究,比如对神经机器翻译模型中注意力机制的可视化分析软对齐结果等。但有一点是肯定的,我们希望研究神经机器翻译技术的可解释性,目的是为了“纠错”,也可以有利于人工干预机制等。只有通过可解释性研究,搞清楚翻译错误的原因,最终找到解决方案来实现纠错,才是我们研究神经机器翻译技术可解释性的目的所在。
\parinterval 从上述例子我们可以得出一个分析,我们所需要的可解释性的内涵到底是结论推理的计算过程还是结论推理的以理服人呢?对可解释性的两种理解可能是不一样的,前者面向结论推理过程(how),后者面向结论可理解性(why)。回头来说,对神经机器翻译可解释性研究的目标,到底是前者还是后者呢?目前学术界有一些相关研究,比如对神经机器翻译模型中注意力机制的可视化分析软对齐结果等。但有一点是肯定的,我们希望研究神经机器翻译技术的可解释性,目的是为了“纠错”,也可以有利于人工干预机制等。只有通过可解释性研究,搞清楚翻译错误的原因,最终找到解决方案来实现纠错,才是我们研究神经机器翻译技术可解释性的目的所在。
%\vspace{0.5em}
%\parinterval 除了翻译品质维度以外,机器翻译技术应用可以从三个维度来讨论,包括语种维度、领域维度和应用模式维度。机器翻译技术应该为全球用户服务,提供支持所有国家至少一种官方语言的翻译能力,实现任意两种语言的自动互译。面临的最大问题就是双语数据稀缺,上述已经讨论了这个问题。关于领域维度,通用领域翻译系统对于垂直领域应用来说是不够充分的,最典型的问题在于垂直领域术语翻译的问题,计算机不能无中生有。比较直接可行的解决方案至少有两个,一是引入垂直领域术语双语词典用于改善机器翻译效果;二是收集加工一定规模的垂直领域双语句对来优化训练翻译模型。这两种工程方法虽然简单,但效果不错,相对来说,两者结合才能更加有效,但问题是垂直领域双语句对的收集很多时候代价太高,不太可行,本质上就转换成为垂直领域资源稀缺问题和领域自适应学习问题,另外也可以引入小样本学习、迁移学习和联合学习等机器学习技术来改善这个问题。
\parinterval 除了翻译品质维度以外,机器翻译技术应用可以从三个维度来讨论,包括语种维度、领域维度和应用模式维度。机器翻译技术应该为全球用户服务,提供支持所有国家至少一种官方语言的翻译能力,实现任意两种语言的自动互译。面临的最大问题就是双语数据稀缺,上述已经讨论了这个问题。关于领域维度,通用领域翻译系统对于垂直领域应用来说是不够充分的,最典型的问题在于垂直领域术语翻译的问题,计算机不能无中生有。比较直接可行的解决方案至少有两个,一是引入垂直领域术语双语词典用于改善机器翻译效果;二是收集加工一定规模的垂直领域双语句对来优化训练翻译模型。这两种工程方法虽然简单,但效果不错,相对来说,两者结合才能更加有效,但问题是垂直领域双语句对的收集很多时候代价太高,不太可行,本质上就转换成为垂直领域资源稀缺问题和领域自适应学习问题,另外也可以引入小样本学习、迁移学习和联合学习等机器学习技术来改善这个问题。
%\vspace{0.5em}
\parinterval 接下来主要讨论一下机器翻译应用模式的软硬件环境。通常机器翻译典型应用属于在线翻译公有云服务,用户接入非常简单,只需要联网使用浏览器就可以自由免费使用。在某些具体行业应用中,用户对数据翻译安全性和保密性要求非常高,其中可能还会涉及到个性化订制要求,这一点在线翻译公有云服务就无法满足用户需求,本地部署机器翻译私有云和离线机器翻译技术和服务成为了新的应用模式。本地部署私有云的问题在于用户需要自己购买GPU服务器和建机房,硬件投入和代价不低,也许将来会出现一种新的应用模式:在线私有云或专有云,有点像服务托管模式。除此之外还有混合云服务,简单来说就是公有云、私有云和专有云的混合体。
\parinterval 离线机器翻译技术可以为更小型的智能翻译终端设备提供服务,比如大家熟悉的翻译机、翻译笔、翻译耳机等智能翻译设备,在不联网的情况下能够实现高品质机器翻译功能,这个应用模式具有很大的潜力。但需要解决的问题很多,首先是模型大小、翻译速度和翻译品质三大问题,之后还需要考虑不同操作系统(Linux、Android Q和iOS)和不同架构(比如x86、MIPS、ARM等)的CPU芯片的智能适配兼容问题。将来离线翻译系统还可以安装到办公设备上,比如传真机、打印机和复印机等,实现支持多语言的智能办公。目前人工智能芯片发展速度非常快,机器翻译芯片的研发面临的最大问题应该是缺少应用场景和上下游的应用支撑,一旦这个时机成熟,机器翻译芯片研发和应用也有可能会爆发。
%\parinterval 机器翻译可以与文档解析、语音识别、OCR和视频字幕提取等技术相结合,我们称之为多模态机器翻译,大大丰富了机器翻译的应用模式。文档解析技术可以帮助实现Word文档翻译、PDF文档翻译、WPS文档翻译、邮件翻译等更多格式文档自动翻译的目标,也可以作为插件嵌入到各种办公平台中,成为智能办公好助手。语音识别与机器翻译是绝配,语音翻译用途广泛,比如翻译机、语音翻译APP和会议AI同传应用。但目前最大的问题主要体现在两个方面,一是很多实际应用场景中语音识别结果欠佳,造成错误蔓延,导致机器翻译结果不够理想;二是就算小语种的语音识别效果很好,但资源稀缺型小语种翻译性能不够好。OCR技术可以帮助实现扫描笔和翻译笔的应用、出国旅游的拍照翻译功能,将来还可以与穿戴式设备相结合,比如智能眼镜等等。视频字幕翻译能够帮助我们欣赏没有中文字幕的国外电影和电视节目,比如我们到达任何一个国家,打开电视都能够看到中文字幕,也是非常酷的应用。
\parinterval 机器翻译可以与文档解析、语音识别、OCR和视频字幕提取等技术相结合,丰富机器翻译的应用模式。文档解析技术可以帮助实现Word文档翻译、PDF文档翻译、WPS 文档翻译、邮件翻译等更多格式文档自动翻译的目标,也可以作为插件嵌入到各种办公平台中,成为智能办公好助手。语音识别与机器翻译是绝配,语音翻译用途广泛,比如翻译机、语音翻译APP和会议AI同传应用。但目前最大的问题主要体现在两个方面,一是很多实际应用场景中语音识别结果欠佳,造成错误蔓延,导致机器翻译结果不够理想;二是就算小语种的语音识别效果很好,但资源稀缺型小语种翻译性能不够好。OCR技术可以帮助实现扫描笔和翻译笔的应用、出国旅游的拍照翻译功能,将来还可以与穿戴式设备相结合,比如智能眼镜等等。视频字幕翻译能够帮助我们欣赏没有中文字幕的国外电影和电视节目,比如我们到达任何一个国家,打开电视都能够看到中文字幕,也是非常酷的应用。
%\vspace{0.5em}
\parinterval 机器翻译可以与文档解析、语音识别、OCR和视频字幕提取等技术相结合,我们称之为多模态机器翻译。但目前多模块机器翻译技术框架大多采用串行流水线,只是简单将两个或者多个不同的技术连接在一起,比如语音翻译过程分两步:语音识别和机器翻译,也可以增加一个语音合成发音功能。其它多模态机器翻译技术也大同小异,这个简单的串行流水线技术框架最大的问题就是错误蔓延,一旦某个技术环节准确率不够好,最后的结果就不会太好,比如90\%$\times$90\%=81\%。并且后续的技术环节不一定有能力纠正前面技术环节引入的错误,最终导致用户体验不够好。很多人说会议英中AI同传用户体验不够好,很自然以为是机器翻译出了问题,其实目前问题主要出在语音识别环节。学术界开始研究端到端的多模态机器翻译技术,不是采用串行流水线技术架构,而是采用一步到位的方式,这理论上能够缓解错误蔓延的问题,但目前实际效果还不够理想,期待学术界取得新的突破。
......@@ -84,7 +84,7 @@
%\parinterval 做研究实验的时候我们可以事先准备好测试集合,问题是在很多实际应用场景中,比如译后编辑过程中,我们希望机器翻译系统能够对每个输入句子的自动译文提供一个质量评价分数,分数越高表示译文正确性越好,具有更高的译后编辑价值,系统自动推荐高质量的译文给人工翻译后编辑。这种情况下我们不可能实现构建好包含多个参考译文的测试集合,即没有参考译文的自动译文质量评价技术。这个技术非常有趣,用途非常广泛,除了上述推荐高质量译文以外,将来也可以用于数据质量检测,甚至可以用于改善优化机器翻译系统本身。学术界也开展了不少相关研究工作,但离实际应用还远远不够,如何利用解码知识和外部语言学知识优化没有参考答案的译文质量评价,是值得深入研究的一个方向。
%\vspace{0.5em}
\parinterval 回头讨论一下上述提到的第二个问题,机器翻译一直存在一个诟病就是用户不知道如何有效干预纠错,帮助机器翻译系统越来越好,并且我们也不希望它屡教不改。基于规则的方法和统计机器翻译方法相对容易实现人工干预纠错,实现手段比较丰富,而神经机器翻译方法存在不可解释性,难以有效实现人工干预纠错。目前有的研究人员深入研究引入外部知识库(用户双语术语库)来实现对OOV翻译的干预纠错;有的提出使用增量式训练方法不断迭代优化模型,也取得了一些进展;有的融合不同技术来实现更好的机器翻译效果,比如引入基于规则的翻译前处理和后处理,或者引入统计机器翻译技术优化译文选择等等。但这些方法代价不低甚至很高,并且性能提升的效果无法得到保障,有时候可能降低翻译品质,有点像跷跷板现象。总体来说,这个方向的研究工作成果还不够丰富,但对用户来说非常重要,如果能够采用隐性反馈学习方法,在用户不知不觉中不断改善优化机器翻译品质,就非常酷了,这也许会成为将来的一个研究热点。
\parinterval 回头讨论一下上述提到的第二个问题,机器翻译一直存在一个诟病就是用户不知道如何有效干预纠错,帮助机器翻译系统越来越好,并且我们也不希望它屡教不改。基于规则的方法和统计机器翻译方法相对容易实现人工干预纠错,实现手段比较丰富,而神经机器翻译方法存在不可解释性,难以有效实现人工干预纠错。目前有的研究人员深入研究引入外部知识库(用户双语术语库)来实现对集外词翻译的干预纠错;有的提出使用增量式训练方法不断迭代优化模型,也取得了一些进展;有的融合不同技术来实现更好的机器翻译效果,比如引入基于规则的翻译前处理和后处理,或者引入统计机器翻译技术优化译文选择等等。但这些方法代价不低甚至很高,并且性能提升的效果无法得到保障,有时候可能降低翻译品质,有点像跷跷板现象。总体来说,这个方向的研究工作成果还不够丰富,但对用户来说非常重要,如果能够采用隐性反馈学习方法,在用户不知不觉中不断改善优化机器翻译品质,就非常酷了,这也许会成为将来的一个研究热点。
%\parinterval 对于人工翻译无法完成的任务,比如大规模数据翻译,机器翻译肯定是唯一有效的选择。为了更好帮助人工翻译,交互式机器翻译技术是非常有价值的,但需要解决一个实际问题是用户体验的问题,简单来说就是人机交互的方式。之前比较传统的人机交互方式属于机器翻译尊重人工干预的结果,一旦人工确定译文的部分片段结果后,机器翻译会保证最终输出译文中一定会出现该部分译文片段。举个简单交互例子,比如从左到右的翻译方向,人工指定第一个译文单词,机器翻译就选择输入一个“最佳”译文,首部单词为该单词。这种人机交互模式存在两个问题,一是将人工干预结果作为机器翻译解码过程的硬约束,可能对译文生成造成负面影响;二是该人机交互方式改变了人工翻译的习惯,用户体验可能不太好。探索更加丰富的人机交互方式,改善用户体验,同时发挥机器翻译的优势,是人机交互值得深入研究的课题,本质上人机交互式机器翻译体现了人工干预纠错的思想,不同的一点是这种干预纠错可能是针对当前句子的,不一定针对整个机器翻译系统的,如果能够做到后者,将人机交互与错误驱动反馈学习结合,就具有非常高的应用价值。
......@@ -101,7 +101,7 @@
\hfill 朱靖波
\hfill 2020.12.10-16 随笔
\hfill 2020.12.16
\end{spacing}
\ No newline at end of file
\end{spacing}
......@@ -6929,6 +6929,25 @@ year={2012}
publisher={Conference on Empirical Methods in Natural Language Processing},
year={2020}
}
@inproceedings{DBLP:conf/coling/ZhuWH08,
author = {Jingbo Zhu and
Huizhen Wang and
Eduard H. Hovy},
title = {Multi-Criteria-Based Strategy to Stop Active Learning for Data Annotation},
publisher = {International Conference on Computational Linguistics},
pages = {1129--1136},
year = {2008}
}
@inproceedings{DBLP:conf/iccv/TrikiABT17,
author = {Amal Rannen Triki and
Rahaf Aljundi and
Matthew B. Blaschko and
Tinne Tuytelaars},
title = {Encoder Based Lifelong Learning},
pages = {1329--1337},
publisher = {{IEEE} International Conference on Computer Vision},
year = {2017}
}
%%%%% chapter 13------------------------------------------------------
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
......@@ -10262,6 +10281,37 @@ author = {Zhuang Liu and
publisher = {Annual Meeting of the Association for Computational Linguistics},
year = {2018}
}
@inproceedings{DBLP:conf/naacl/GuoQLSXZ19,
author = {Qipeng Guo and
Xipeng Qiu and
Pengfei Liu and
Yunfan Shao and
Xiangyang Xue and
Zheng Zhang},
title = {Star-Transformer},
publisher = {Annual Conference of the North American Chapter of the Association for Computational Linguistics},
pages = {1315--1325},
year = {2019}
}
@inproceedings{DBLP:conf/nips/VeitWB16,
author = {Andreas Veit and
Michael J. Wilber and
Serge J. Belongie},
title = {Residual Networks Behave Like Ensembles of Relatively Shallow Networks},
publisher = {Annual Conference on Neural Information Processing Systems},
pages = {550--558},
year = {2016}
}
@inproceedings{DBLP:conf/iclr/ChangMHTB18,
author = {Bo Chang and
Lili Meng and
Eldad Haber and
Frederick Tung and
David Begert},
title = {Multi-level Residual Networks from Dynamical Systems View},
publisher = {International Conference on Learning Representations},
year = {2018}
}
%%%%% chapter 15------------------------------------------------------
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论