\parinterval 早期的工作大多在关注过滤噪声样本,但对如何利用噪声样本探讨较少。事实上,噪声是有强度的,有些噪声样本对于模型可能是有价值的,而且它们的价值可能会随着模型的状态而改变\upcite{DBLP:conf/wmt/WangWHNC18}。对于一个双语句对“我/喜欢/那个/地方/。 $\leftrightarrow$ I love that place. It's very beautiful”。一方面来说,虽然这两个句子都很流畅,但是由于汉语句子中缺少了一部分翻译,因此简单的基于长度或双语词典的方法可以很容易将其过滤掉。从另一方面来说,这个样本对于训练机器翻译模型仍然有用,特别是在数据稀缺的情况下,因为汉语句子和英语句子的前半部分仍然是正确的互译结果。这表明了噪声数据的微妙之处,它不是对应着简单的二元分类问题:一些训练样本可能部分有用。因此简单的过滤并不一种很好的办法,一种更加理想的学习策略应该是既可以合理的利用这些数据,又不让其对模型产生负面影响。例如,在训练过程中对批量数据的噪声水平进行{\small\bfnew{退火}}\index{退火}(Anneal)\index{Anneal},使得模型在越来越干净的数据上进行训练\upcite{DBLP:conf/wmt/WangWHNC18,DBLP:conf/acl/WangCC19}。从宏观上看,整个训练过程其实是一个持续微调的过程,这和微调的思想基本一致。这种学习策略一方面充分利用了训练数据,一方面又避免了噪声数据对模型的负面影响,因此取得了不错的效果。
\parinterval 早期的工作大多在关注过滤噪声样本,但对如何利用噪声样本探讨较少。事实上,噪声是有强度的,有些噪声样本对于模型可能是有价值的,而且它们的价值可能会随着模型的状态而改变\upcite{DBLP:conf/wmt/WangWHNC18}。对于一个双语句对“我/喜欢/那个/地方/。 $\leftrightarrow$ I love that place. It's very beautiful”。一方面来说,虽然这两个句子都很流畅,但是由于汉语句子中缺少了一部分翻译,因此简单的基于长度或双语词典的方法可以很容易将其过滤掉。从另一方面来说,这个样本对于训练机器翻译模型仍然有用,特别是在数据稀缺的情况下,因为汉语句子和英语句子的前半部分仍然是正确的互译结果。这表明了噪声数据的微妙之处,它不是对应着简单的二元分类问题(一个训练样本有用或没有用):一些训练样本可能部分有用。因此简单的过滤并不一种很好的办法,一种更加理想的学习策略应该是既可以合理的利用这些数据,又不让其对模型产生负面影响。例如,在训练过程中对批量数据的噪声水平进行{\small\bfnew{退火}}\index{退火}(Anneal)\index{Anneal},使得模型在越来越干净的数据上进行训练\upcite{DBLP:conf/wmt/WangWHNC18,DBLP:conf/acl/WangCC19}。从宏观上看,整个训练过程其实是一个持续微调的过程,这和微调的思想基本一致。这种学习策略一方面充分利用了训练数据,一方面又避免了噪声数据对模型的负面影响,因此取得了不错的效果。
\node[anchor=south,cnode,fill=white] (cl1) at ([xshift=-4em,yshift=1.5em]m1.south){};
\node[anchor=north,cnode,fill=white] (cl2) at ([xshift=0em,yshift=-1em]m1.north){};
\node[anchor=south west,wnode,align=left,font=\tiny] (wl7) at ([xshift=0.5em,yshift=0em]cl1.east){使用{\color{ugreen}\bfnew{特征}}对{\color{blue}\bfnew{数据}}\\中信息进行提取};
\node[anchor=south west,wnode,align=right,font=\tiny] (wl7) at ([xshift=0.5em,yshift=-1em]cl1.east){使用{\color{ugreen}\bfnew{特征}}对{\color{blue}\bfnew{数据}}\\中的信息进行\\提取};
\node[anchor=west,wnode,align=right,font=\tiny] (wl8) at ([xshift=0.5em,yshift=0em]cl2.east){使用提取的信息对\\{\color{red!50}\bfnew{模型}}中的参数\\进行训练};
\node[anchor=south,cnode,fill=white] (cc1) at ([xshift=-4em,yshift=1.5em]m2.south){};
\node[anchor=north,cnode,fill=white] (cc2) at ([xshift=0em,yshift=-1em]m2.north){};
\node[anchor=south west,wnode,align=left,font=\tiny] (wl7) at ([xshift=0.5em,yshift=0em]cc1.east){使用{\color{red!50}\bfnew{模型}}对{\color{blue}\bfnew{数据}}\\中信息进行提取};
\node[anchor=south west,wnode,align=right,font=\tiny] (wl7) at ([xshift=0.5em,yshift=-0.5em]cc1.east){使用{\color{red!50}\bfnew{模型}}对{\color{blue}\bfnew{数据}}\\中的信息进行\\提取};
\node[anchor=west,wnode,align=right,font=\tiny] (wl8) at ([xshift=0.5em,yshift=0em]cc2.east){使用提取的信息对\\{\color{red!50}\bfnew{模型}}中的参数\\进行训练};
\item{\small\bfnew{结构化位置编码}}\index{基于结构化位置编码}(Structural Position Representations)\index{Structural Position Representations}\upcite{DBLP:conf/emnlp/WangTWS19a}。 例如,可以通过对输入句子进行依存句法分析得到句法树,根据叶子结点在句法树中的深度来表示其绝对位置,并在此基础上利用相对位置编码的思想计算节点之间的相对位置信息。
\item{\small\bfnew{结构化位置编码}}\index{基于结构化位置编码}(Structural Position Representations)\index{Structural Position Representations}\upcite{DBLP:conf/emnlp/WangTWS19a}。 通过对输入句子进行依存句法分析得到句法树,根据叶子结点在句法树中的深度来表示其绝对位置,并在此基础上利用相对位置编码的思想计算节点之间的相对位置信息。
\parinterval 为了使上层的神经网络可以更加方便地访问下层神经网络的信息,最简单的方法是引入更多的跨层连接。一种方法是直接将所有层的输出都连接到最上层,达到聚合多层信息的目的\upcite{Bapna2018TrainingDN,Wang2018MultilayerRF,Dou2018ExploitingDR}。另一种更加有效的方式是在网络前向计算的过程中建立当前层表示与之前层表示之间的关系,例如{\small\bfnew{动态线性聚合网络}}\upcite{WangLearning}\index{动态线性聚合网络}(Dynamic Linear Combination of Layers,DLCL)\index{Dynamic Linear Combination of Layers}和动态层聚合方法\upcite{Dou2019DynamicLA}。这些方法的共性在于,在每一层的输入中不仅考虑前一层的输出,同时将前面所有层的中间结果(包括词嵌入表示)进行聚合,本质上利用稠密的层间连接提高了网络中信息传递的效率(前向计算和反向梯度计算)。而DLCL利用线性的层融合手段来保证计算的时效性,主要应用于深层神经网络的训练,理论上等价于常微分方程中的高阶求解方法\upcite{WangLearning}。此外,为了进一步增强上层神经网络对底层表示的利用,研究人员从多尺度的角度对深层的编码器进行分块,并使用GRU来捕获不同块之间的联系,得到更高层次的表示。该方法可以看作是对动态线性聚合网络的延伸。接下来分别对上述几种改进方法展开讨论。
\parinterval 为了使上层的神经网络可以更加方便地访问下层神经网络的信息,最简单的方法是引入更多的跨层连接。其中,引入跨层连接的一种方式是直接将所有层的输出都连接到最上层,达到聚合多层信息的目的\upcite{Bapna2018TrainingDN,Wang2018MultilayerRF,Dou2018ExploitingDR}。另一种更加有效的方式是在网络前向计算的过程中建立当前层表示与之前层表示之间的关系,例如{\small\bfnew{动态线性聚合方法}}\upcite{WangLearning}\index{动态线性聚合方法}(Dynamic Linear Combination of Layers,DLCL)\index{Dynamic Linear Combination of Layers}和动态层聚合方法\upcite{Dou2019DynamicLA}。这些方法的共性在于,在每一层的输入中不仅考虑前一层的输出,同时将前面所有层的中间结果(包括词嵌入表示)进行聚合,本质上利用稠密的层间连接提高了网络中信息传递的效率(前向计算和反向梯度计算)。而DLCL利用线性的层融合手段来保证计算的时效性,主要应用于深层神经网络的训练,理论上等价于常微分方程中的高阶求解方法\upcite{WangLearning}。此外,为了进一步增强上层神经网络对底层表示的利用,研究人员从多尺度的角度对深层的编码器进行分块,并使用GRU来捕获不同块之间的联系,得到更高层次的表示。该方法可以看作是对动态线性聚合网络的延伸。接下来分别对上述几种改进方法展开讨论。