Commit 98bf9ea2 by 曹润柘

合并分支 'caorunzhe' 到 'master'

Caorunzhe

查看合并请求 !573
parents 639db462 60771a57
......@@ -40,7 +40,7 @@
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{局部信息建模}
\subsection{局部信息建模}\label{subsec-15.1.1}
\parinterval 使用循环神经网络进行序列建模时,每一个时刻的计算都依赖于上一时刻的隐层状态。这种模式天然具有一定的时序性,且具有{\small\bfnew{归纳偏置}}\index{归纳偏置}(Inductive Bias)\index{Inductive Bias}的特性\upcite{DBLP:journals/corr/abs-1806-01261}。但是在使用Transformer模型对词序列进行建模时,由于自注意力网络能够直接对当前单词与序列中所有位置的单词进行建模,从而忽略了单词之间的位置关系,缺少了类似于循环或卷积机制中局部窗口内的依赖关系。在Transformer中通过引入正余弦函数作为绝对位置编码与输入的特征表示进行累加来区分单词之间的位置关系(见{\chaptertwelve}),仍然无法显著区分局部依赖与长距离依赖。局部依赖指代当前位置的词与周围局部窗口内词之间的内在联系,比较符合人类理解文字的习惯。
......@@ -52,15 +52,15 @@
\subsubsection{1. 位置编码}
\parinterval 对于一个序列,位置编码是为模型提供了置位线索或者说是用于收集信息对于不同位置的偏置。常见的技术手段除了可以在初始的输入特征中加入统计的偏置信息,如正余弦函数\upcite{vaswani2017attention}, 也可以在计算每层的注意力权重时加入偏置信息。在介绍相对位置编码之前,首先简要回顾一下自注意力机制的计算流程:
\parinterval 对于一个序列,位置编码是为模型提供了置位线索或者说是用于收集信息对于不同位置的偏置。常见的技术手段除了可以在初始的输入特征中加入统计的偏置信息,如正余弦函数\upcite{vaswani2017attention}, 也可以在计算每层的注意力权重时加入偏置信息。在介绍相对位置编码之前,首先简要回顾一下自注意力机制的计算流程,由于实现方式的不同,这里与{\chaptertwelve}提到的注意力机制的计算略有区别
\parinterval 在传统的自注意力机制中,给定输入序列$\seq{x}={\mathbi{x}_1,\mathbi{x}_2,\cdots,\mathbi{x}_m}$,通过点乘计算得到当前位置单词$i$和序列中$j$单词之间的关系:
\parinterval 在传统的自注意力机制中,给定输入序列$\seq{x}={\mathbi{x}_1,\mathbi{x}_2,\cdots,\mathbi{x}_m}$,通过点乘计算得到当前位置单词$i$和序列中所有单词之间的关系:
\begin{equation}
\mathbi{z}_{i}=\sum_{j=1}^m \alpha_{ij}(\mathbi{x}_j \mathbi{W}^V)
\mathbi{z}_{i}=\sum_{j=1}^m \alpha_{ij}(\mathbi{x}_j \mathbi{W}_V)
\label{eq:15-1}
\end{equation}
\noindent 其中,$\mathbi{W}^V$是线性变换矩阵,可以自动学习得到。自注意权重$\alpha_{ij}$通过Softmax函数得到:
\noindent 其中,$\mathbi{W}_V$是线性变换矩阵,可以自动学习得到。自注意权重$\alpha_{ij}$通过Softmax函数得到:
\begin{equation}
\alpha_{ij}=\frac{\exp \mathbi{e}_{ij}}{\sum_{k=1}^{m} \mathbi{e}_{ik}}
\label{eq:15-2}
......@@ -68,73 +68,66 @@
\noindent 这里$\mathbi{e}_{ij}$指经过缩放后的$\mathbi{Q}$$\mathbi{K}$向量积:
\begin{equation}
\mathbi{e}_{ij} = \frac{(\mathbi{x}_i \mathbi{W}^Q){(\mathbi{x}_j \mathbi{W}^K)}^{T}}{\sqrt{d_k}}
\mathbi{e}_{ij} = \frac{(\mathbi{x}_i \mathbi{W}_Q){(\mathbi{x}_j \mathbi{W}_K)}^{T}}{\sqrt{d_k}}
\label{eq:15-3}
\end{equation}
\noindent 其中$\mathbi{W}^Q$$\mathbi{W}^K$为网络中的可学习参数,$d_k$\footnote[1]{在多头注意力中,$d_k$为经过多头分割后每个头的维度。}为模型中隐层的维度 。这里$\mathbi{Q}$$\mathbi{K}$$\mathbi{V}$分别指对输入进行线性变换后得到的向量。相对位置建模可以按如下方式实现:
\noindent 其中$\mathbi{W}_Q$$\mathbi{W}_K$为网络中的可学习参数,$d_k$\footnote[1]{在多头注意力中,$d_k$为经过多头分割后每个头的维度。}为模型中隐层的维度 。与{\chaptertwelve}的注意力计算不同,这里$\mathbi{Q}=\mathbi{x} \mathbi{W}_Q$$\mathbi{K}=\mathbi{x} \mathbi{W}_K$$\mathbi{V}=\mathbi{x} \mathbi{W}_V$$\mathbi{x}$为上一层的输出。而{\chaptertwelve}$\mathbi{Q}$$\mathbi{K}$$\mathbi{V}$同为上一层的输出向量。虽然此处自注意力计算的方式不同,但是其结果均代表了句子中单词之间的关系。
\parinterval 基于上述的注意力计算方式,相对位置建模可以按如下方式实现:
\begin{itemize}
\vspace{0.5em}
\item {\small\bfnew{相对位置编码}}\index{相对位置编码}(Relative Positional Representation)\index{Relative Positional Representation}\upcite{Shaw2018SelfAttentionWR}。核心思想是在能够捕获全局依赖的自注意力机制中引入相对位置信息。该方法可以有效弥补绝对位置编码信息,甚至完全取代位置编码。对于输入元素$\mathbi{x}_i$$\mathbi{x}_j$之间的边,通过向量$\mathbi{a}_{ij}^V$$\mathbi{a}_{ij}^K$来表示,其中$\mathbi{a}_{ij}^V$表示计算注意力输出时引入的相对位置向量,$\mathbi{a}_{ij}^K$表示计算注意力分布时引入的相对位置向量,注意力模型的计算调整如下:
\begin{equation}
\mathbi{z}_{i}=\sum_{j=1}^m \alpha_{ij}(\mathbi{x}_j \mathbi{W}^V + \mathbi{a}_{ij}^V)
\mathbi{z}_{i}=\sum_{j=1}^m \alpha_{ij}(\mathbi{x}_j \mathbi{W}_V + \mathbi{a}_{ij}^V)
\label{eq:15-4}
\end{equation}
\noindent 对比公式\eqref{eq:15-1},在计算$\mathbi{z}_i$时引入了额外的$\mathbi{a}_{ij}^V$向量来表示位置i与位置j之间的相对位置。同时在计算注意力权重时对Key进行修改,同样引入了$\mathbi{a}_{ij}^K$向量表示位置$i$与位置$j$之间的相对位置。在公式\eqref{eq:15-3}的基础上,注意力权重的计算方式调整为:
\begin{equation}
\mathbi{e}_{ij} = \frac{\mathbi{x}_i \mathbi{W}^Q{(\mathbi{x}_j \mathbi{W}^K + \mathbi{a}_{ij}^K )}^{T}}{\sqrt{d_k}} = \frac{\mathbi{x}_i \mathbi{W}^Q{(\mathbi{x}_j \mathbi{W}^K)}^{T} + \mathbi{x}_i \mathbi{W}^Q{(\mathbi{a}_{ij}^K )}^{T}}{\sqrt{d_k}}
\mathbi{e}_{ij} = \frac{\mathbi{x}_i \mathbi{W}_Q{(\mathbi{x}_j \mathbi{W}_K + \mathbi{a}_{ij}^K )}^{T}}{\sqrt{d_k}} = \frac{\mathbi{x}_i \mathbi{W}_Q{(\mathbi{x}_j \mathbi{W}_K)}^{T} + \mathbi{x}_i \mathbi{W}_Q{(\mathbi{a}_{ij}^K )}^{T}}{\sqrt{d_k}}
\label{eq:15-5}
\end{equation}
\noindent 这里通过预先设定的最大相对位置$k$,强化模型对当前词为中心的左右各k个词的注意力计算。因此,最终的窗口大小为$2k + 1$。对于边缘位置窗口大小不足$2k$的单词,采用了裁剪的机制,即只对有效的临近词进行建模。举个简单的例子,假设对序列中的第一个单词进行建模,则只需考虑其右侧的$k$个词,因此$\mathbi{a}_{ij}^V$$\mathbi{a}_{ij}^K$的获取方式为:
\noindent 这里通过预先设定的最大相对位置$k$,强化模型对当前词为中心的左右各k个词的注意力计算。因此,最终的窗口大小为$2k + 1$。对于边缘位置窗口大小不足$2k$的单词,采用了裁剪的机制,即只对有效的临近词进行建模。举个简单的例子,假设对序列中的第一个单词进行建模,则只需考虑其右侧的$k$个词,因此$\mathbi{a}_{ij}^V$$\mathbi{a}_{ij}^K$的获取方式为:{\red{下面这个w再解释一下}}
\begin{eqnarray}
\mathbi{a}_{ij}^K =
\mathbi{a}_{ij}^K &=& \mathbi{w}^K_{\textrm{clip}(j-i,k)} \nonumber \\
\mathbi{a}_{ij}^V &=& \mathbi{w}^V_{\textrm{clip}(j-i,k)} \nonumber \\
\textrm{clip}(x,k) &=& \max(-k,\min(k,x))
\label{eq:15-6}
\end{eqnarray}
\noindent 最终模型所需学习相对位置的表示为$w^K=(w_(-k)^K,…,w_k^K)$$w^V=(w_(-k)^V,…,w_k^V )$$w_i^K,w_i^V∈R^(d_k )$
\noindent 最终模型所需学习相对位置的表示为$\mathbi{w}^K = (\mathbi{w}^{K}_{-k},\cdots,\mathbi{w}^K_{k})$$\mathbi{w}^{V} = (\mathbi{w}^{V}_{-k},\cdots,\mathbi{w}^{V}_{k})$$\mathbi{w}^{K}_{i},\mathbi{w}^{V}_{i}\in \mathbb{R}^{d_k}$
\vspace{0.5em}
\item 之后研究人员在相对位置编码基础上进一步探索,采用更符合人直觉的相对位置信息(Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context)。由于输入特征是由词嵌入表示与绝对位置编码组成,例如$x_i=E_(x_i )+U_i$$x_j=E_(x_j )+U_j$,将其代入将公式15.3中可以得到:
\item 之后研究人员在相对位置编码的基础上进一步探索,采用更符合人直觉的相对位置信息\upcite{Dai2019TransformerXLAL}。由于输入特征是由词嵌入表示与绝对位置编码组成,例如$x_i = \mathbi{E}_{x_i} + \mathbi{U}_i$$x_j=\mathbi{E}_{x_j} + \mathbi{U}_j$,将其代入将公式\eqref{eq:15-3}中可以得到:
\begin{equation}
\mathbi{x}_{l+1}=\mathbi{x}_l+F(\textrm{LN}(\mathbi{x}_l);{\bm \theta_l})
\mathbi{e}_{ij} = \frac{(\mathbi{E}_{x_i} + \mathbi{U}_i)\mathbi{W}_Q{((\mathbi{E}_{x_j} + \mathbi{U}_j)\mathbi{W}_K)}^{T}}{\sqrt{d_k}}
\label{eq:15-7}
\end{equation}
\noindent 在计算$e_ij$时将其进行展开得到:
\begin{equation}
\mathbi{x}_{l+1}=\mathbi{x}_l+F(\textrm{LN}(\mathbi{x}_l);{\bm \theta_l})
\noindent 在计算$\mathbi{e}_{ij}$时将其进行展开得到:{\red{A好像不是矩阵,R之前没提到}}
\begin{eqnarray}
A_{ij}^{abs} &=& \underbrace{\mathbi{E}_{x_i}\mathbi{W}_Q\mathbi{W}_{K}^{T}\mathbi{E}_{x_j}^{T}}_{\textrm{(a)}} + \underbrace{\mathbi{E}_{x_i}\mathbi{W}_Q\mathbi{W}_{K}^{T}\mathbi{U}_{j}^{T}}_{\textrm{(b)}} \nonumber \\
&+& \underbrace{\mathbi{U}_i\mathbi{W}_Q\mathbi{W}_{K}^{T}\mathbi{E}_{x_j}^{T}}_{\textrm{(c)}} + \underbrace{\mathbi{U}_i\mathbi{W}_Q\mathbi{W}_{K}^{T}\mathbi{U}_{j}^{T}}_{\textrm{(d)}}
\label{eq:15-8}
\end{equation}
\end{eqnarray}
\noindent 这里用$A_(i,j)^abs$表示使用绝对位置编码时$e_ij$的分子,$E_(x_i )$$E_(x_j )$表示位置$i$$j$的词嵌入,$W_q$$W_k$表示线性变换的权重矩阵,$U_i$$U_j$表示正余弦函数矩阵。为了引入相对位置信息,可以将公式15.8修改为如下形式:
\begin{equation}
\mathbi{x}_{l+1}=\mathbi{x}_l+F(\textrm{LN}(\mathbi{x}_l);{\bm \theta_l})
\noindent 这里用$A_{ij}^{abs}$表示使用绝对位置编码时$\mathbi{e}_{ij}$的分子,$\mathbi{E}_{x_i}$$\mathbi{E}_{x_j}$表示位置$i$$j$的词嵌入,$\mathbi{W}_Q$$\mathbi{W}_K$表示线性变换的权重矩阵,$\mathbi{U}_{i}$$\mathbi{U}_{j}$表示正余弦函数矩阵。为了引入相对位置信息,可以将公式\eqref{eq:15-8}修改为如下形式:
\begin{eqnarray}
A_{ij}^{rel} &=& \underbrace{\mathbi{E}_{x_i}\mathbi{W}_Q\mathbi{W}_{K}^{T}\mathbi{E}_{x_j}^{T}}_{\textrm{(a)}} + \underbrace{\mathbi{E}_{x_i}\mathbi{W}_Q\mathbi{W}_{K}^{T}\mathbi{R}_{i-j}^{T}}_{\textrm{(b)}} \nonumber \\
&+& \underbrace{\mathbi{u}\mathbi{W}_{K,E}^{T}\mathbi{E}_{x_j}^{T}}_{\textrm{(c)}} + \underbrace{\mathbi{v}\mathbi{W}_{K,R}^{T}\mathbi{R}_{i-j}^{T}}_{\textrm{(d)}}
\label{eq:15-9}
\end{equation}
\end{eqnarray}
\noindent 其中$A_(i,j)^rel$表示使用相对位置编码后的表示。首先将(b)和(d)两项中Query的正余弦编码修改为相对位置编码$R_(i-j)$;之后将(c)和(d)两项中Key中的$U_i$分别替换成可学习的u与v;最后将$W_k$矩阵分割为$W_(k,E)$$W_(k,R)$矩阵,分别作为Key中词嵌入与相对位置编码的线性映射矩阵。通过该参数化定以后每一项具备了直观上的表征含义:(a)表示基于内容的表征,(b)表示基于内容的位置偏置,(c)表示全局的内容的偏置,(d)表示全局的位置偏置。公式15.8中的(a)、(b)两项与前面介绍的相对位置编码一致(Self-Attention with Relative Position Representations),并针对相对位置编码引入了额外的线性映射矩阵。同时兼顾了全局内容偏置和全局位置偏置,可以更好的利用正余弦函数的归纳偏置特性。
\noindent 其中$A_{ij}^{rel}$表示使用相对位置编码后的表示。首先将(b)和(d)两项中Query的正余弦编码修改为相对位置编码$\mathbi{R}_{i-j}$;之后将(c)和(d)两项中Key中的$\mathbi{U}_i$分别替换成可学习的$\mathbi{u}$$\mathbi{v}$;最后将$\mathbi{W}_{K}$矩阵分割为$\mathbi{W}_{K,E}$$\mathbi{W}_{K,R}$矩阵,分别作为Key中词嵌入与相对位置编码的线性映射矩阵。通过该参数化定以后每一项具备了直观上的表征含义:(a)表示基于内容的表征,(b)表示基于内容的位置偏置,(c)表示全局的内容的偏置,(d)表示全局的位置偏置。公式\eqref{eq:15-8}中的(a)、(b)两项与前面介绍的相对位置编码一致\upcite{Shaw2018SelfAttentionWR},并针对相对位置编码引入了额外的线性映射矩阵。同时兼顾了全局内容偏置和全局位置偏置,可以更好的利用正余弦函数的归纳偏置特性。
\vspace{0.5em}
\item 基于结构化位置编码(Structural Position Representations)(Self-Attention with Structural Position Representations)。对比序列化的位置编码手段,引入结构化位置表示。通过对输入句子进行依存句法分析得到句法树,根据叶子结点在句法树中的深度来表示其绝对位置。并在此基础上利用相对位置编码的思想计算节点之间的相对位置信息。
\item {\small\bfnew{基于结构化位置编码}}\index{基于结构化位置编码}(Structural Position Representations)\index{Structural Position Representations}\upcite{DBLP:conf/emnlp/WangTWS19a}。对比序列化的位置编码手段,引入结构化位置表示。通过对输入句子进行依存句法分析得到句法树,根据叶子结点在句法树中的深度来表示其绝对位置。并在此基础上利用相对位置编码的思想计算节点之间的相对位置信息。
\vspace{0.5em}
\item 基于连续动态系统(Continuous Dynamic Model)的位置编码(Learning to Encode Position for Transformer with Continuous Dynamical Model)。相比于正余弦位置编码本身不具备可学习的参数,表示能力受限的同时不够灵活,在超出训练样本中句长的样例表现不佳。使用神经常微分方程(Neural Ordinary Differential Equation)求解器(Solver)来建模位置信息,模型具有更好的归纳偏置能力,可以处理变长的输入样本,同时能够从不同的数据中进行自适应学习。
\item {\small\bfnew{基于连续动态系统}}\index{基于连续动态系统}(Continuous Dynamic Model)\index{Continuous Dynamic Model}的位置编码\upcite{Liu2020LearningTE}。相比于正余弦位置编码本身不具备可学习的参数,表示能力受限的同时不够灵活,在超出训练样本中句长的样例表现不佳。使用神经常微分方程\upcite{DBLP:conf/nips/ChenRBD18}{\small\bfnew{求解器}}\index{求解器}(Solver)\index{Solver}来建模位置信息,模型具有更好的归纳偏置能力,可以处理变长的输入样本,同时能够从不同的数据中进行自适应学习。
\vspace{0.5em}
\end{itemize}
......@@ -144,70 +137,71 @@
\subsubsection{2. 注意力分布约束}
\parinterval 局部注意力的概念早在基于循环神经网络的机器翻译模型中广受讨论(Effective Approaches to Attention-based Neural Machine Translation)。通过对自注意力网络中的注意力权重可视化,可以观测到不同位置的词受关注的程度相对平滑。这样建模方式利于全局建模,但一定程度上分散了注意力分布导致忽略了邻近单词之间的关系。为了提高模型对局部信息的感知,类似于相对位置编码,修正注意力的权重同样可以达到加强模型关注局部信息的目的:
\parinterval 局部注意力的概念早在基于循环神经网络的机器翻译模型中广受讨论\upcite{DBLP:journals/corr/LuongPM15}。通过对自注意力网络中的注意力权重可视化,可以观测到不同位置的词受关注的程度相对平滑。这样建模方式利于全局建模,但一定程度上分散了注意力分布导致忽略了邻近单词之间的关系。为了提高模型对局部信息的感知,类似于相对位置编码,修正注意力的权重同样可以达到加强模型关注局部信息的目的:
\begin{itemize}
\vspace{0.5em}
\item 高斯约束(Modeling Localness for Self-Attention Networks)。这类方法的核心思想是引入可学习的高斯分布进行局部建模,之后与自注意力机制中计算得到的注意力分布进行融合,如下图:形式上,可以用自注意力机制中计算得到的中间表示来预测高斯分布的中心和偏差,得到高斯分布G后累加在模型计算得到的相关性系数之上在进行归一化计算,具体的形式如下:
\item 高斯约束\upcite{Yang2018ModelingLF}。这类方法的核心思想是引入可学习的高斯分布进行局部建模,之后与自注意力机制中计算得到的注意力分布进行融合,如下图:形式上,可以用自注意力机制中计算得到的中间表示来预测高斯分布的中心和偏差,得到高斯分布$\mathbi{G}$后累加在模型计算得到的相关性系数之上在进行归一化计算,具体的形式如下:
\begin{equation}
\mathbi{x}_{l+1}=\textrm{LN}(\mathbi{x}_l+F(\mathbi{x}_l;{\bm \theta_l}))
\mathbi{e}_{ij} = \frac{(\mathbi{x}_i \mathbi{W}_Q){(\mathbi{x}_j \mathbi{W}_K)}^{T}}{\sqrt{d_k}} + \mathbi{G}
\label{eq:15-10}
\end{equation}
\noindent 其中,$G∈R^(m×m)$$m$是源语句的句子长度。G中的每个元素$G_ij$表示当前单词$x_j$和预测的中心位置$P_i$之间的关联程度,计算公式如下:
\noindent 其中,$\mathbi{G} \in \mathbb{R}^{m\times m}$$m$是源语句的句子长度。$\mathbi{G}$中的每个元素$G_{ij}$表示当前单词$\mathbi{x}_j$和预测的中心位置$P_i$之间的关联程度,计算公式如下:
\begin{equation}
\mathbi{x}_{l+1}=\textrm{LN}(\mathbi{x}_l+F(\mathbi{x}_l;{\bm \theta_l}))
G_{ij} = - \frac{{(j - P_i)}^2}{2\sigma_i^2}
\label{eq:15-11}
\end{equation}
\noindent 其中,$σ_i(σ_i=D_i/2$表示偏差,通过预测局部建模的窗口大小$D_i$得到。中心位置和窗口大小的计算方式计算为:
\noindent 其中,$\sigma_i$$\sigma_i = \frac{D_i}{2}$表示偏差,通过预测局部建模的窗口大小$D_i$得到。中心位置和窗口大小的计算方式计算为:
\begin{equation}
\mathbi{x}_{l+1}=\textrm{LN}(\mathbi{x}_l+F(\mathbi{x}_l;{\bm \theta_l}))
\begin{pmatrix} P_i \\ D_i \end{pmatrix} = m \cdot \textrm{Sigmoid}(\begin{pmatrix} P_i \\ z_i \end{pmatrix})
\label{eq:15-12}
\end{equation}
%----------------------------------------------
\begin{figure}[htp]
\centering
\input{./Chapter15/Figures/figure-post-norm-vs-pre-norm}
\includegraphics[scale=0.3]{./Chapter15/Figures/figure-attention-distribution-based-on gaussian-distribution.png}
\caption{融合高斯分布的注意力分布}
\label{fig:15-1}
\end{figure}
%-------------------------------------------
\noindent 通过标量$m$控制得到的中心位置和偏差的数值为0和序列长度之间的实数值,$p_i$$z_i$为网络计算的中间结果,分别用于预测中心位置和窗口大小。用如下方式计算:
\begin{equation}
\mathbi{x}_{l+1}=\textrm{LN}(\mathbi{x}_l+F(\mathbi{x}_l;{\bm \theta_l}))
\noindent 通过标量$m$控制得到的中心位置和偏差的数值为0和序列长度之间的实数值,$p_i$$z_i$为网络计算的中间结果,分别用于预测中心位置和窗口大小。用如下方式计算:{\red{U可能与上面的U不是一个东西,UW没解释,tanh形式}}
\begin{eqnarray}
p_i &=& \mathbi{W}_p^T\textrm{tanh}(\mathbi{W}_p\mathbi{Q}_i) \\
z_i &=& \mathbi{U}_d^T\textrm{tanh}(\mathbi{W}_d\mathbi{Q}_i)
\label{eq:15-13}
\end{equation}
\end{eqnarray}
\vspace{0.5em}
\item 多尺度局部建模(Multi-Scale Self-Attention for Text Classification)。不同于上述方法直接作用于注意力分布,这里通过赋予多头不一样的局部感受野,如图15.2所示,进而间接地引入局部约束。
\item 多尺度局部建模\upcite{DBLP:conf/aaai/GuoQLXZ20}。不同于上述方法直接作用于注意力分布,这里通过赋予多头不一样的局部感受野,如图\ref{fig:15-2}所示,进而间接地引入局部约束。
%----------------------------------------------
\begin{figure}[htp]
\centering
\input{./Chapter15/Figures/figure-post-norm-vs-pre-norm}
\caption{融合高斯分布的注意力分布}
\includegraphics[scale=0.4]{./Chapter15/Figures/figure-multi-scale-local-modeling.png}
\caption{多尺度局部建模}
\label{fig:15-2}
\end{figure}
%-------------------------------------------
\noindent 这种受限制的多头注意力计算过程如公式15.15所示:
\noindent 这种受限制的多头注意力计算过程如公式\eqref{eq:15-14}所示:
\begin{equation}
\mathbi{x}_{l+1}=\textrm{LN}(\mathbi{x}_l+F(\mathbi{x}_l;{\bm \theta_l}))
\mathbi{e}_{ij} = \frac{(\mathbi{x}_i \mathbi{W}_Q){(C(\mathbi{x}_j \mathbi{W}_K,\omega))}^{T}}{\sqrt{d_k}}
\label{eq:15-14}
\end{equation}
\noindent 其中$C(x_j W^K,ω)$表示根据超参数$ω$自适应的Key:
\noindent 其中$C(\mathbi{x}_j \mathbi{W}_K,\omega)$表示根据超参数$\omega$自适应的Key:{\red{C中[]是向量吗,如果是那就需要改成(),和前面的向量表示保持一致,此外下面的w是omega吗}}
\begin{equation}
\mathbi{x}_{l+1}=\textrm{LN}(\mathbi{x}_l+F(\mathbi{x}_l;{\bm \theta_l}))
C(\mathbi{x}_j \mathbi{W}_K,\omega) = [\mathbi{x}_{j-w},\cdots,\mathbi{x}_{j+w}]
\label{eq:15-15}
\end{equation}
\noindent 之后在计算注意力输出时同样利用上述思想进行局部约束:
\noindent 之后在计算注意力输出时同样利用上述思想进行局部约束:{\red{下面的有没有向量,符号和上面有没有重复}}
\begin{equation}
\mathbi{x}_{l+1}=\textrm{LN}(\mathbi{x}_l+F(\mathbi{x}_l;{\bm \theta_l}))
z_i = \sum_{j=1}^m \alpha_{ij}C(\mathbi{x}_j \mathbi{W}_V,\omega)
\label{eq:15-16}
\end{equation}
......@@ -226,22 +220,20 @@
\begin{itemize}
\vspace{0.5em}
\item 使用轻量卷积和动态卷积神经网络(pay less attention with lightweight and dynamic convolutions)。卷积神经网络天然更适用于捕获输入序列不同位置间的局部依赖。这里,分别在编码端和解码端利用轻量卷积或动态卷积神经网络(见第九章)替换自注意力机制,同时保留目标端的编码-解码注意力机制,一定程度上加强了模型对局部信息的感知,同时提高了网络的计算效率。此外,在此基础上提出的Conformer模型(Conformer: Convolution-augmented Transformer for Speech Recognition)本质上也利用到动态卷积神经网络能够有效局部依赖的特性,不同点在于其并不是直接替换自注意力机制,而是在自注意力机制和前馈神经网络中间引入了动态卷积神经网络。这种方式保证了模型能够同时兼顾序列中的各位置之间的全局依赖与局部依赖。
\item 使用轻量卷积和动态卷积神经网络\upcite{Wu2019PayLA}。卷积神经网络天然更适用于捕获输入序列不同位置间的局部依赖。这里,分别在编码端和解码端利用轻量卷积或动态卷积神经网络(见{\chapternine})替换自注意力机制,同时保留目标端的编码-解码注意力机制,一定程度上加强了模型对局部信息的感知,同时提高了网络的计算效率。此外,在此基础上提出的Conformer模型\upcite{DBLP:conf/interspeech/GulatiQCPZYHWZW20}本质上也利用到动态卷积神经网络能够有效局部依赖的特性,不同点在于其并不是直接替换自注意力机制,而是在自注意力机制和前馈神经网络中间引入了动态卷积神经网络。这种方式保证了模型能够同时兼顾序列中的各位置之间的全局依赖与局部依赖。
\vspace{0.5em}
\item 使用1维卷积注意力网络(图15.3 b)。为了捕捉短距离依赖,则可以使用一维的卷积自注意力网络(1D-CSAN)将关注的范围限制在相近的元素窗口中。其形式上十分简单,只需预先设定好局部建模的窗口大小范围D,并在进行注意力权重计算和对Value值进行加权求和时,将其限制在设定好的窗口范围内即可。
\item 使用1维卷积注意力网络(图\ref{fig:15-3}(b))。为了捕捉短距离依赖,则可以使用一维的卷积自注意力网络(1D-CSAN)将关注的范围限制在相近的元素窗口中。其形式上十分简单,只需预先设定好局部建模的窗口大小范围D,并在进行注意力权重计算和对Value值进行加权求和时,将其限制在设定好的窗口范围内即可。
\vspace{0.5em}
\item 使用2维卷积注意力网络(图15.3 c)。在1维卷积注意力网络的基础上对多个注意力头之间的信息进行了交互建模,打破了注意力头之间的界限。 1D-CDAN的关注区域为1×D,当将其扩展为2维矩形$(N×D)$,长和宽分别为局部窗口的大小和参与建模的自注意力头的个数。在这种形势下,允许模型计算某个头中的第$i$个元素和第$s$个头中的第$j$个元素之间的相关性系数。实现了对不同子空间之间关系的建模,所得到的注意力分布表示了头之间的依赖关系。
\item 使用2维卷积注意力网络(图\ref{fig:15-3}(c))。在1维卷积注意力网络的基础上对多个注意力头之间的信息进行了交互建模,打破了注意力头之间的界限。 1D-CDAN的关注区域为$1\times D$,当将其扩展为2维矩形$(N×D)$,长和宽分别为局部窗口的大小和参与建模的自注意力头的个数。在这种形势下,允许模型计算某个头中的第$i$个元素和第$s$个头中的第$j$个元素之间的相关性系数。实现了对不同子空间之间关系的建模,所得到的注意力分布表示了头之间的依赖关系。
%----------------------------------------------
\begin{figure}[htp]
\centering
\input{./Chapter15/Figures/figure-post-norm-vs-pre-norm}
\includegraphics[scale=0.3]{./Chapter15/Figures/figure-convolutional-attention-network.png}
\caption{卷积注意力网络}
\label{fig:15-3}
\end{figure}
%-------------------------------------------
\vspace{0.5em}
\end{itemize}
%----------------------------------------------------------------------------------------
......@@ -250,12 +242,13 @@
\subsection{多分支结构}
\parinterval 在神经网络模型中,有的模块包含多个平行的组件用来捕捉输入表示的多种不同特征,这种结构被称为多分支(Multi-branch)结构。多分支结构在图像领域被广泛应用(Aggregated Residual Transformations for Deep Neural Networks),在许多人工设计或者自动搜索获得的网络结构中都有它的身影(文献)。而在自然语言处理领域,多分支结构同样也有很多应用。比如前面章节介绍过的基于循环神经网络的翻译模型中,为了更好地对源语言进行表示,编码端通常采用双向循环神经网络(图15.4(a))。这里双向循环神经网络就可以看作一个两分支的结构,分别用来捕捉正向序列和反向序列的表示,将这两种表示进行拼接得到更丰富的语义表示。另一个典型的例子是多头注意力机制(图15.4(b))。在Transformer模型中,多头注意力将输入空间表示分割成多个独立的表示,然后分别进行点积注意力的计算,最后再将多个输出表示拼接后通过线性变化进行不同子空间信息的融合。在这个过程中,多个不同的头对应着不同的特征空间,可以捕捉到不同的特征信息。
\parinterval 在神经网络模型中,有的模块包含多个平行的组件用来捕捉输入表示的多种不同特征,这种结构被称为{\small\bfnew{多分支}}\index{多分支}(Multi-branch)\index{Multi-branch}结构。多分支结构在图像领域被广泛应用\upcite{DBLP:conf/cvpr/XieGDTH17},在许多人工设计或者自动搜索获得的网络结构中都有它的身影{\red{(文献)}}。而在自然语言处理领域,多分支结构同样也有很多应用。比如前面章节介绍过的基于循环神经网络的翻译模型中,为了更好地对源语言进行表示,编码端通常采用双向循环神经网络(图\ref{fig:15-4}(a))。这里双向循环神经网络就可以看作一个两分支的结构,分别用来捕捉正向序列和反向序列的表示,将这两种表示进行拼接得到更丰富的语义表示。另一个典型的例子是多头注意力机制(图\ref{fig:15-4}(b))。在Transformer模型中,多头注意力将输入空间表示分割成多个独立的表示,然后分别进行点积注意力的计算,最后再将多个输出表示拼接后通过线性变化进行不同子空间信息的融合。在这个过程中,多个不同的头对应着不同的特征空间,可以捕捉到不同的特征信息。
%----------------------------------------------
\begin{figure}[htp]
\centering
\input{./Chapter15/Figures/figure-post-norm-vs-pre-norm}
\includegraphics[scale=0.4]{./Chapter15/Figures/figure-common-multi-branch-structure-1.png}
\includegraphics[scale=0.4]{./Chapter15/Figures/figure-common-multi-branch-structure-2.png}
\caption{常见的多分支结构}
\label{fig:15-4}
\end{figure}
......@@ -265,49 +258,49 @@
\begin{itemize}
\vspace{0.5em}
\item 早期在Transformer模型中使用多分支思想的模型是Weighted Transformer(Weighted Transformer Network for Machine Translation)。其主要思想是在多头自注意力机制的基础上保留不同表示空间的特征。在完成多头自注意力机制中不同头的计算后,相比于使用级联操作并通过线性映射矩阵来融合不同头之间的信息,这里直接利用线性映射矩阵$W∈R^(d_k×d_model )$将维度为$d_k$的向量表示映射到$d_model$,并赋予适当的权重。之后分别送入每个分支中的前馈神经网络,对得到的不同分支输出进行线性加权。因此,整个网络的计算复杂度要大于标准的Transformer模型。
\item 早期在Transformer模型中使用多分支思想的模型是Weighted Transformer\upcite{DBLP:journals/corr/abs-1711-02132}。其主要思想是在多头自注意力机制的基础上保留不同表示空间的特征。在完成多头自注意力机制中不同头的计算后,相比于使用级联操作并通过线性映射矩阵来融合不同头之间的信息,这里直接利用线性映射矩阵$\mathbi{W} \in \mathbb{R}^{d_k \times d_{model}}$将维度为$d_k$的向量表示映射到$d_{model}$,并赋予适当的权重。之后分别送入每个分支中的前馈神经网络,对得到的不同分支输出进行线性加权。因此,整个网络的计算复杂度要大于标准的Transformer模型。
%----------------------------------------------
\begin{figure}[htp]
\centering
\input{./Chapter15/Figures/figure-post-norm-vs-pre-norm}
\caption{多分支注意力模型}
\includegraphics[scale=0.4]{./Chapter15/Figures/figure-weighted-transformer-network-structure.png}
\caption{Weighted Transformer网络结构}
\label{fig:15-5}
\end{figure}
%-------------------------------------------
\vspace{0.5em}
\item 多分支注意力模型(图15.6)(Multi-branch Attentive Transformer)。相比于Weighted Transformer模型,多分支注意力模型直接利用每个分支独立地进行自注意力网络的计算。同时为了避免结构相同的多个多头注意力机制之间的协同适应,使用Branch Dropout在训练过程中随机的丢弃一些分支。
\item 多分支注意力模型(图\ref{fig:15-6}\upcite{DBLP:journals/corr/abs-2006-10270}。相比于Weighted Transformer模型,多分支注意力模型直接利用每个分支独立地进行自注意力网络的计算。同时为了避免结构相同的多个多头注意力机制之间的协同适应,使用Branch Dropout在训练过程中随机的丢弃一些分支。
%----------------------------------------------
\begin{figure}[htp]
\centering
\input{./Chapter15/Figures/figure-post-norm-vs-pre-norm}
\includegraphics[scale=0.4]{./Chapter15/Figures/figure-multi-branch-attention-model.png}
\caption{多分支注意力模型}
\label{fig:15-6}
\end{figure}
%-------------------------------------------
\vspace{0.5em}
\item 除了在多头注意力子层或前馈神经网络子层上使用多分支结构,同样可以基于Transformer中层的基础上进行尝试。例如基于多单元Transformer模型(Multi-Unit Transformers for Neural Machine Translation),其模型结构如图15.7所示。为了进一步加强不同分支的作用,可以使用恒等映射、序列不同位置表示的交换、子区间打乱以及不同的掩码策略对不同分支的输入进行扰动,保证分支间的多样性与互补性。本质上,所谓的多单元思想与集成学习十分相似,类似于在训练过程中同时训练多个编码器。此外,通过增大子单元之间的结构差异性也能够进一步增大分支之间的多样性(面向神经机器翻译集成学习方法分析)
\item 除了在多头注意力子层或前馈神经网络子层上使用多分支结构,同样可以基于Transformer中层的基础上进行尝试。例如基于多单元Transformer模型\upcite{DBLP:conf/emnlp/YanMZ20},其模型结构如图15.7所示。为了进一步加强不同分支的作用,可以使用恒等映射、序列不同位置表示的交换、子区间打乱以及不同的掩码策略对不同分支的输入进行扰动,保证分支间的多样性与互补性。本质上,所谓的多单元思想与集成学习十分相似,类似于在训练过程中同时训练多个编码器。此外,通过增大子单元之间的结构差异性也能够进一步增大分支之间的多样性\upcite{李北2019面向神经机器翻译的集成学习方法分析}
\vspace{0.5em}
\end{itemize}
%----------------------------------------------
\begin{figure}[htp]
\centering
\input{./Chapter15/Figures/figure-post-norm-vs-pre-norm}
\includegraphics[scale=0.4]{./Chapter15/Figures/figure-multi-cell-transformer.png}
\caption{多单元Transformer}
\label{fig:15-7}
\end{figure}
%-------------------------------------------
\parinterval 此外,在15.1.1节中提到局部建模手段能够进一步强化Transformer,其中利用卷积的思想可以与自注意力机制形成互补。这里,通过更高效的多分支结构来分别提取全局和局部两种依赖关系同样可以达到类似的目的(图15.8)(LITE TRANSFORMER WITH LONG-SHORT RANGE ATTENTION)。具体的做法是将输入的特征向量切分成等同维度的两部分,之后分别送入两个分支进行计算。其中,全局信息由注意力机制进行提取,局部信息使用轻量卷积(pay less attention with lightweight and dynamic convolutions)提取。由于每个分支的维度只有原始的一半,采用并行计算方式可以显著缩短模型的运行时间。
\parinterval 此外,在\ref{subsec-15.1.1}节中提到局部建模手段能够进一步强化Transformer,其中利用卷积的思想可以与自注意力机制形成互补。这里,通过更高效的多分支结构来分别提取全局和局部两种依赖关系同样可以达到类似的目的(图\ref{fig:15-8}\upcite{DBLP:conf/iclr/WuLLLH20}。具体的做法是将输入的特征向量切分成等同维度的两部分,之后分别送入两个分支进行计算。其中,全局信息由注意力机制进行提取,局部信息使用轻量卷积\upcite{Wu2019PayLA}提取。由于每个分支的维度只有原始的一半,采用并行计算方式可以显著缩短模型的运行时间。
%----------------------------------------------
\begin{figure}[htp]
\centering
\input{./Chapter15/Figures/figure-post-norm-vs-pre-norm}
\includegraphics[scale=0.6]{./Chapter15/Figures/figure-light-weight-transformer-module.png}
\caption{轻量Transformer模块}
\label{fig:15-8}
\end{figure}
......@@ -319,13 +312,13 @@
\subsection{引入循环机制}
\parinterval 前面提到Transformer模型完全摒弃了循环单元与卷积单元,仅通过绝对位置编码来区分不同位置的表示。在15.1.1节也提到了可以在注意力机制中引入相对位置编码或局部约束等手段进一步提高模型的表示能力。此外,由于循环神经网络也非常适用于处理序列结构,且其结构成熟、易于优化,如何有效地将循环引入到Transformer模型中受到了广泛的关注。其中比较有代表性的方法为:
\parinterval 前面提到Transformer模型完全摒弃了循环单元与卷积单元,仅通过绝对位置编码来区分不同位置的表示。在\ref{subsec-15.1.1}节也提到了可以在注意力机制中引入相对位置编码或局部约束等手段进一步提高模型的表示能力。此外,由于循环神经网络也非常适用于处理序列结构,且其结构成熟、易于优化,如何有效地将循环引入到Transformer模型中受到了广泛的关注。其中比较有代表性的方法为:
\begin{itemize}
\vspace{0.5em}
\item 从网络深度的角度建模循环机制。早在残差网络提出时,图像处理领域的研究人员尝试揭示残差网络背后的成功原因。本质上,在卷积神经网络中引入残差连接后,网络从深度上隐性地利用循环的特性。区别在于不同层的参数独立,而非共享。Transformer网络的编码端与解码端分别由$N$个相同结构但参数独立的块堆叠而成,其中编码块与解码块中分别包含2/3个子层。同时,子层之间引入了残差连接保证了网络信息传递的高效性。因此,一个自然的想法是通过共享不同块之间的参数,引入循环神经网络中的归纳偏置(Universal Transformer,)。其中每层的权重是共享的,并引入了基于时序的编码向量用于显著区分不同深度下的时序信息。之后,在训练大容量预训练模型时同样也采取了共享层间参数的方式(ALBERT)
\item 从网络深度的角度建模循环机制。早在残差网络提出时,图像处理领域的研究人员尝试揭示残差网络背后的成功原因。本质上,在卷积神经网络中引入残差连接后,网络从深度上隐性地利用循环的特性。区别在于不同层的参数独立,而非共享。Transformer网络的编码端与解码端分别由$N$个相同结构但参数独立的块堆叠而成,其中编码块与解码块中分别包含2/3个子层。同时,子层之间引入了残差连接保证了网络信息传递的高效性。因此,一个自然的想法是通过共享不同块之间的参数,引入循环神经网络中的归纳偏置\upcite{DBLP:conf/iclr/DehghaniGVUK19}。其中每层的权重是共享的,并引入了基于时序的编码向量用于显著区分不同深度下的时序信息。之后,在训练大容量预训练模型时同样也采取了共享层间参数的方式\upcite{Lan2020ALBERTAL}
\vspace{0.5em}
\item 利用循环神经网络对输入序列进行编码,之后通过门控机制将得到的表示与Transformer进行融合(Modeling Recurrence for Transformer)。融合机制可以采用顺序计算或并行计算。
\item 利用循环神经网络对输入序列进行编码,之后通过门控机制将得到的表示与Transformer进行融合\upcite{DBLP:conf/naacl/HaoWYWZT19}。融合机制可以采用顺序计算或并行计算。
\vspace{0.5em}
\end{itemize}
......@@ -341,11 +334,11 @@
\begin{itemize}
\vspace{0.5em}
\item 分块注意力:顾名思义,就是将序列划分为固定大小的片段,在进行注意力机制的计算时,执行注意力计算每个词的表示时只在对应的片段内执行。这样,每一个片段内的注意力计算成本是固定,可以大大降低处理长序列时的总体计算时间。(Block wise self-attention for long document understanding,Generating wikipedia by summarizing long sequences)
\item 分块注意力:顾名思义,就是将序列划分为固定大小的片段,在进行注意力机制的计算时,执行注意力计算每个词的表示时只在对应的片段内执行。这样,每一个片段内的注意力计算成本是固定,可以大大降低处理长序列时的总体计算时间。\upcite{DBLP:conf/emnlp/QiuMLYW020,DBLP:conf/iclr/LiuSPGSKS18}
\vspace{0.5em}
\item 跨步注意力:该模式是一种稀疏的注意力机制,通常会设置一个固定的间隔,也就是说在计算注意力表示时,每隔固定数量的词后将下一个词纳入所需考虑的范围内,参与注意力的计算(The long-document transformer)。和分片段进行注意力类似,假设最终参与注意力计算的单词个数为B,共需要执行$N/B$次注意力计算,可以将计算复杂度缩减为$O(N/B * B2)$,即$O(NB)$
\item 跨步注意力:该模式是一种稀疏的注意力机制,通常会设置一个固定的间隔,也就是说在计算注意力表示时,每隔固定数量的词后将下一个词纳入所需考虑的范围内,参与注意力的计算\upcite{DBLP:journals/corr/abs-2004-05150}。和分片段进行注意力类似,假设最终参与注意力计算的单词个数为$B$,共需要执行$N/B$次注意力计算,可以将计算复杂度缩减为$O(NB)${\red{(看下O(NB)的格式)}}
\vspace{0.5em}
\item 内存压缩注意力:这种方式的主要的思想是使用一些合并操作,如卷积,池化等对序列进行下采样,来缩短序列长度。例如,使用跨步卷积(Stride Convolution)来减少Key和Value的数量,即减少表示序列长度的维度的大小,Query的数量保持不变,从而减少了注意力矩阵计算时的复杂度。(Generating wikipedia by summarizing long sequences),其具体的计算复杂度取决跨步卷积时步幅的大小K,形式上可以理解为每K个词做一次特征融合后,将关注的目标缩减为N/K,整体的计算复杂度为$O(N*N/K$,相比于前两种方式的对局部进行注意力计算,该方式仍是对全局的建模。
\item 内存压缩注意力:这种方式的主要的思想是使用一些合并操作,如卷积,池化等对序列进行下采样,来缩短序列长度。例如,使用{\small\bfnew{跨步卷积}}\index{跨步卷积}(Stride Convolution)\index{Stride Convolution}来减少Key和Value的数量,即减少表示序列长度的维度的大小,Query的数量保持不变,从而减少了注意力矩阵计算时的复杂度\upcite{DBLP:conf/iclr/LiuSPGSKS18}。其具体的计算复杂度取决跨步卷积时步幅的大小$K$,形式上可以理解为每$K$个词做一次特征融合后,将关注的目标缩减为$\frac{N}{K}$,整体的计算复杂度为$O(\frac{N^2}{K}$,相比于前两种方式的对局部进行注意力计算,该方式仍是对全局的建模。
\vspace{0.5em}
\end{itemize}
......@@ -355,32 +348,33 @@
\begin{itemize}
\vspace{0.5em}
\item Reformer(Reformer: The efficient transformer):首先,在计算Key和Value时使用相同的线性映射,共享Key和Value的值。在实际实验中发现,这种模式并不会影响Transformer模型的性能。其次,Reformer中为了降低自注意力机制的复杂度,引入了一种局部哈希敏感注意力机制(LSH Attention),其提高效率的方式和固定模式中的局部建模一致,减少注意力机制的计算范围。对于每一个Query,通过局部哈希敏感机制找出和其较为相关的Key,并进行注意力的计算。其基本思路就是距离相近的向量以很大的概率被哈希分配到一个桶内,距离较远的向量被分配到一个桶内的概率则较低。哈希的散列函数为:
\item Reformer\upcite{Kitaev2020ReformerTE}:首先,在计算Key和Value时使用相同的线性映射,共享Key和Value的值。在实际实验中发现,这种模式并不会影响Transformer模型的性能。其次,Reformer中为了降低自注意力机制的复杂度,引入了一种{\small\bfnew{局部哈希敏感注意力机制}}\index{局部哈希敏感注意力机制}(LSH Attention)\index{LSH Attention},其提高效率的方式和固定模式中的局部建模一致,减少注意力机制的计算范围。对于每一个Query,通过局部哈希敏感机制找出和其较为相关的Key,并进行注意力的计算。其基本思路就是距离相近的向量以很大的概率被哈希分配到一个桶内,距离较远的向量被分配到一个桶内的概率则较低。哈希的散列函数为:
\begin{equation}
\mathbi{x}_{l+1}=\textrm{LN}(\mathbi{x}_l+F(\mathbi{x}_l;{\bm \theta_l}))
\mathbi{h}(\mathbi{x}) = \arg\max([\mathbi{x}\mathbi{R};-\mathbi{x}\mathbi{R}])
\label{eq:15-17}
\end{equation}
\noindent R为随机的矩阵,$[;]$代表拼接操作。当$h(〖Query〗_i )=h(〖Key〗_j )$$i$$j$为序列中不同位置单词的下标,也就是说,也就是说当两个词的Query和Key落在同一个散列桶时,对其进行注意力的计算。此外,Reformer中还采用了一种可逆残差网络结构(The Reversible Residual Network)和分块计算前馈神经网络层机制,即将前馈层的隐层维度拆分多个块后独立计算,最后进行拼接操作,得到前馈层的输出,大幅度减少了内存/显存占用,但由于在反向过程中需要重复计算某些节点,牺牲了一定的计算效率。
\noindent $\mathbi{R}$为随机的矩阵,$[;]$代表拼接操作。当$\mathbi{h}({Query}_i) = \mathbi{h}({Key}_j )$$i$$j$为序列中不同位置单词的下标,也就是说,也就是说当两个词的Query和Key落在同一个散列桶时,对其进行注意力的计算。此外,Reformer中还采用了一种{\small\bfnew{可逆残差网络结构}}\index{可逆残差网络结构}(The Reversible Residual Network)\index{The Reversible Residual Network}和分块计算前馈神经网络层机制,即将前馈层的隐层维度拆分多个块后独立计算,最后进行拼接操作,得到前馈层的输出,大幅度减少了内存/显存占用,但由于在反向过程中需要重复计算某些节点,牺牲了一定的计算效率。
\vspace{0.5em}
\item Routing Transformer(Efficient content based sparse attention with routing transformers)中采用了通过K-means算法对单词来进行分组聚类后,分别在组内进行自注意力机制的计算来提高效率。首先是将Query和Key映射到聚类矩阵R:
\item Routing Transformer\upcite{DBLP:journals/corr/abs-2003-05997}中采用了通过K-means算法对单词来进行分组聚类后,分别在组内进行自注意力机制的计算来提高效率。首先是将Query和Key映射到聚类矩阵$\mathbi{R}${\red{qkv要不要斜体,公式和正文中的形式要统一,而且下面的$\ast$要不要换成乘号}}
\begin{equation}
\mathbi{x}_{l+1}=\textrm{LN}(\mathbi{x}_l+F(\mathbi{x}_l;{\bm \theta_l}))
\mathbi{R} = {Query} \ast \mathbi{W} + {Key} \ast \mathbi{W}
\label{eq:15-18}
\end{equation}
\noindent W为映射矩阵,其后,为了保证每个簇内的单词数量一致,利用K-means算法将R中的向量分配到$√N$个簇中,其中N为序列长度,即分别计算R中每个向量与质心的距离,并对每个质心取距离最近的top-k,其中质心通过模型学习得到
\noindent $\mathbi{W}$为映射矩阵,其后,为了保证每个簇内的单词数量一致,利用K-means算法将$\mathbi{R}$中的向量分配到$\sqrt{N}$个簇中,其中$N$为序列长度,即分别计算$\mathbi{R}$中每个向量与质心的距离,{\red{并对每个质心取距离最近的top-k,其中质心通过模型学习得到}}
\noindent 在上述介绍的工作中,无论是通过研究人员设定好的局部模式或是模型通过数据驱动的方式自主选择注意力机制的作用范围,都有效的降低了计算复杂度。但实际上在注意力机制中对计算效率影响最大的因素是Softmax。前面已经介绍过自注意力机制的计算公式为:
\begin{equation}
\mathbi{x}_{l+1}=\textrm{LN}(\mathbi{x}_l+F(\mathbi{x}_l;{\bm \theta_l}))
\textrm{Attention}(\mathbi{Q},\mathbi{K},\mathbi{V}) = \textrm{Softmax}
( \frac{\mathbi{Q}\mathbi{K}^{\textrm{T}}} {\sqrt{d_k}}) \mathbi{V}
\label{eq:15-19}
\end{equation}
\vspace{0.5em}
\item 由于Softmax机制的存在,首先要进行$QK^T$的计算得到$N×N$的矩阵,其中N是序列长度,在对维度为$N×d_k$的Value进行加权求和时,其时间复杂度便是$O(N2$
。假设能够取消Softmax操作,便可以将注意力机制的计算调整为$QK^T V$,由于矩阵的运算满足结合律,可以先进行$K^T V$的运算,得到$d_k×d_k$的矩阵,再左乘Q。在长文本处理中,由于多头机制的存在,$dk << N$,所以最终的计算复杂度便可以近似为$O(n)$,从而将注意力机制简化为线性计算。因此可以尝试对注意力机制内核化,使用核函数改写注意力机制,同时保证取消Softmax后$QK^T$内积的非负性,避免显示的计算$N x N$的矩阵(Transformers are RNNs: Fast Autoregressive Transformers with Linear Attention,Rethinking attention with performers.)
\item 由于Softmax机制的存在,首先要进行$\mathbi{Q}\mathbi{K}^{\textrm{T}}$的计算得到$N \times N$的矩阵,其中$N$是序列长度,在对维度为$N \times d_k$的Value进行加权求和时,其时间复杂度便是$O(N^2$
。假设能够取消Softmax操作,便可以将注意力机制的计算调整为$\mathbi{Q}\mathbi{K}^{\textrm{T}}\mathbi{V}$,由于矩阵的运算满足结合律,可以先进行$\mathbi{K}^{\textrm{T}}\mathbi{V}$的运算,得到$d_k \times d_k$的矩阵,再左乘$\mathbi{Q}$。在长文本处理中,由于多头机制的存在,$dk \ll N$,所以最终的计算复杂度便可以近似为$O(n)${\red{(突然来的n是什么)}},从而将注意力机制简化为线性计算。因此可以尝试对注意力机制内核化,使用核函数改写注意力机制,同时保证取消Softmax后$\mathbi{Q}\mathbi{K}^{\textrm{T}}$内积的非负性,避免显示的计算$N \times N$的矩阵\upcite{Katharopoulos2020TransformersAR,DBLP:journals/corr/abs-2009-14794}
\vspace{0.5em}
\end{itemize}
......@@ -1385,8 +1379,10 @@ f(x) &=& x \cdot \delta(\beta x) \\
\sectionnewpage
\section{小结及深入阅读}
\parinterval 除了上述介绍的多分支网络,还可以通过多尺度的思想来对输入的特征表示进行分级表示,引入短语的信息(Multi-Granularity Self-Attention for Neural Machine Translation)。此外,在对自注意力网络中的注意力权重分布进行修改时,同样可以根据不同的缩放比例对序列中的实词与虚词进行区分。(Learning When to Concentrate or Divert Attention: Self-Adaptive Attention Temperature for Neural Machine Translation)
\parinterval 除了上述介绍的多分支网络,还可以通过多尺度的思想来对输入的特征表示进行分级表示,引入短语的信息\upcite{DBLP:conf/emnlp/HaoWSZT19}。此外,在对自注意力网络中的注意力权重分布进行修改时,同样可以根据不同的缩放比例对序列中的实词与虚词进行区分\upcite{DBLP:conf/emnlp/Lin0RLS18}
\parinterval 高效地Transformer:针对处理长文本数据时面临庞大的时间复杂度问题,除了上述章节介绍的方法,研究人员通过简化网络的结构来构建更高效地Transformer结构。(Longformer: The Long-Document Transformer;Linformer: Self-Attention with Linear Complexity;RETHINKING ATTENTION WITH PERFORMERS)
\parinterval 高效地Transformer:针对处理长文本数据时面临庞大的时间复杂度问题,除了上述章节介绍的方法,研究人员通过简化网络的结构来构建更高效地Transformer结构\upcite{DBLP:journals/corr/abs-2004-05150,DBLP:journals/corr/abs-2006-04768,DBLP:journals/corr/abs-2009-14794}
\parinterval ODE工作(图像)
\parinterval 结构搜索技术是模型结构优化的一种方法,在近些年愈加得到广泛的关注。其中搜索策略作为衔接搜索空间和评价方法的关键步骤,在整个结构搜索方法中扮演着非常重要的角色,不同类型的搜索策略也决定了搜索过程能够在怎样的搜索空间中进行、性能评估如何帮助完成搜索等。除前文详细介绍的基于进化算法、强化学习以及梯度的方法外,基于贝叶斯优化以及随机搜索的方式同样能够有效对搜索空间进行探索。贝叶斯优化的方式已经在超参数优化领域中取得一定成绩,而对于结构搜索任务来说,也有相关研究人员尝试使用基于树的模型来对模型结构以及超参数进行协同优化\upcite{DBLP:conf/nips/BergstraBBK11,DBLP:conf/lion/HutterHL11,DBLP:conf/icml/BergstraYC13,DBLP:conf/ijcai/DomhanSH15,DBLP:conf/icml/MendozaKFSH16,DBLP:journals/corr/abs-1807-06906}。随机搜索的方法在很多工作中被作为基线,这种方式在搜索空间中随机对搜索单元进行选择及操作,最终通过组合或进化等方式找到适用于于当前任务的模型结构\upcite{li2020automated,DBLP:conf/cvpr/BenderLCCCKL20,DBLP:conf/uai/LiT19}。对于结构搜索任务来说如何提升目前搜索策略的稳定性\upcite{DBLP:conf/iccv/ChenXW019,DBLP:conf/icml/ChenH20,DBLP:conf/iclr/XuX0CQ0X20},如何在更大的搜索空间\upcite{DBLP:conf/iclr/XieZLL19,DBLP:conf/acl/LiHZXJXZLL20,DBLP:conf/iclr/CaiZH19}、更多的任务中进行搜索\upcite{DBLP:conf/emnlp/JiangHXZZ19,DBLP:conf/icml/SoLL19}等问题成为结构搜索方法中亟待解决的重要问题。
......@@ -713,7 +713,7 @@ P(\mathbi{y}|\mathbi{x}) & = & \frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\
%----------------------------------------------------------------------------------------
\subsubsection{3. 更深层的融合}
\parinterval 为了获得更好的神经机器翻译模型,可以对训练流程和模型做更深度的整合。{\chapternine}已经介绍,神经机器翻译模型的训练包含两个阶段:初始化和优化,而无监督神经机器翻译的核心思路也是对应的两个阶段:无监督方法提供初始的监督信号和数据优化,因此可以考虑通过在模型的初始化阶段使用无监督方法提供初始的监督信号,然后优化过程不但优化模型的参数,还优化训练使用的数据,从而避免流水线带来的错误传播。其中初始的监督信号可以通过两种方法提供给模型,一种是直接使用无监督方法提供最初的伪双语数据来训练最初的翻译模型,另一种则是借助无监督方法来初始化模型,得到最初的翻译模型后直接使用初始化好的翻译模型产生伪双语数据来训练自己,如图\ref{fig:16-19}所示。图\ref{fig:16-19}(a)的一个简单实现是利用无监督词典归纳得到的词典对单语数据进行逐词的翻译,得到最初的伪双语数据,然后在这些数据上训练最初的翻译模型,最后不断地交替优化数据和模型,得到更好的翻译模型和质量更好的伪数据\upcite{DBLP:conf/iclr/LampleCDR18}。这样的做法通过不断优化训练用的双语数据,摆脱了无监督词典归纳在最初的伪双语数据中遗留下来的错误,同时也避免了使用无监督统计机器翻译模型的繁琐和代价。图\ref{fig:16-19}(b)的实现则依赖于具体的翻译模型初始化方法,我们将在下一节讨论翻译模型的不同初始化方法。
\parinterval 为了获得更好的神经机器翻译模型,可以对训练流程和模型做更深度的整合。{\chapternine}已经介绍,神经机器翻译模型的训练包含两个阶段:初始化和优化,而无监督神经机器翻译的核心思路也是对应的两个阶段:无监督方法提供初始的监督信号和数据优化,因此可以考虑在模型的初始化阶段使用无监督方法提供初始的监督信号,然后优化过程不但优化模型的参数,还优化训练使用的数据,从而避免流水线带来的错误传播。其中初始的监督信号可以通过两种方法提供给模型,一种是直接使用无监督方法提供最初的伪双语数据来训练最初的翻译模型,另一种则是借助无监督方法来初始化模型,得到最初的翻译模型后直接使用初始化好的翻译模型产生伪双语数据来训练自己,如图\ref{fig:16-19}所示。图\ref{fig:16-19}(a)的一个简单实现是利用无监督词典归纳得到的词典对单语数据进行逐词的翻译,得到最初的伪双语数据,然后在这些数据上训练最初的翻译模型,最后不断地交替优化数据和模型,得到更好的翻译模型和质量更好的伪数据\upcite{DBLP:conf/iclr/LampleCDR18}。这样的做法通过不断优化训练用的双语数据,摆脱了无监督词典归纳在最初的伪双语数据中遗留下来的错误,同时也避免了使用无监督统计机器翻译模型的繁琐和代价。图\ref{fig:16-19}(b)的实现则依赖于具体的翻译模型初始化方法,我们将在下一节讨论翻译模型的不同初始化方法。
%----------------------------------------------
\begin{figure}[h]
\centering
......@@ -728,7 +728,7 @@ P(\mathbi{y}|\mathbi{x}) & = & \frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\
%----------------------------------------------------------------------------------------
\subsubsection{4. 其它问题}
\parinterval 实际中无监督神经机器翻译模型的训练并不简单。一般来说,可以相信在生成的伪数据上经过参数优化后模型会变得比生成伪数据的时候更好,这时候对这个更好的模型使用数据增强的手段(如回译等)就可以生成更好的训练数据。这样一个数据优化过程依赖于一个假设:模型经过参数优化后会生成比原始数据更好的数据。而在数据优化和参数优化共同影响下,模型非常容易拟合数据中的简单模式,使得在数据优化过程中模型倾向产生包含这种简单模式的数据,然后模型对这种类型数据过拟合,最后训练模型的损失可以下降到很低,然而模型生成的结果却非常差。一个常见的问题解就是模型对任何输入都输出相同的译文,这时候翻译模型无法产生任何有意义的结果,而它的训练过程则退化成普通的语言模型(数据优化产生的数据里无论什么目标语言对应的源语言都是同一个句子)。这种情况下翻译模型虽然能降低损失(训练语言模型),但是它不能学会任何源语言跟目标语言之间的对应关系,也就无法翻译。这个现象也反映出无监督机器翻译训练的脆弱性。
\parinterval 实际上无监督神经机器翻译模型的训练并不简单。一般来说,可以相信在生成的伪数据上经过参数优化后模型会变得比生成伪数据的时候更好,这时候对这个更好的模型使用数据增强的手段(如回译等)就可以生成更好的训练数据。这样的一个数据优化过程依赖于一个假设:模型经过参数优化后会生成比原始数据更好的数据。而在数据优化和参数优化的共同影响下,模型非常容易拟合数据中的简单模式,使得在数据优化过程中模型倾向产生包含这种简单模式的数据,然后模型对这种类型数据过拟合,最后训练模型的损失可以下降到很低,然而模型生成的结果却非常差。一个常见的问题解就是模型对任何输入都输出相同的译文,这时候翻译模型无法产生任何有意义的结果,而它的训练过程则退化成普通的语言模型(数据优化产生的数据里无论什么目标语言对应的源语言都是同一个句子)。这种情况下翻译模型虽然能降低损失(训练语言模型),但是它不能学会任何源语言跟目标语言之间的对应关系,也就无法翻译。这个现象也反映出无监督机器翻译训练的脆弱性。
\parinterval 比较常见的解决方案是在双语数据对应的目标函数外增加一个语言模型的目标函数。因为,在初始阶段,由于数据中存在大量不通顺的句子,额外的语言模型目标函数能把部分句子纠正过来,使得模型逐渐生成更好的数据\upcite{DBLP:conf/emnlp/LampleOCDR18}。这个方法在实际中非常有效,尽管目前还没有理论上的支持。
......@@ -738,7 +738,7 @@ P(\mathbi{y}|\mathbi{x}) & = & \frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\
\item 词表共享:对于源语言和目标语言里都一样的词使用同一个词嵌入,而不是源语言和目标语言各自对应一个词嵌入,比如,阿拉伯数字或者一些实体名字。这样相当于在模型设计上告诉模型这个词在源语言和目标语言里面表达同一个意思,隐式地引入了单词翻译的监督信号。在无监督神经机器翻译里词表共享搭配子词切分会更加有效,因为子词的覆盖范围广,比如,多个不同的词可以包含同一个子词。
\vspace{0.5em}
\item 模型共享:与多语言翻译系统类似,使用同一个翻译模型来进行向翻译(源语言$\to$目标语言)和反向翻译(目标语言$\to$源语言)。这样做降低了模型的参数量,减少了过拟合的风险。
\item 模型共享:与多语言翻译系统类似,使用同一个翻译模型来进行向翻译(源语言$\to$目标语言)和反向翻译(目标语言$\to$源语言)。这样做降低了模型的参数量,减少了过拟合的风险。
\vspace{0.5em}
\end{itemize}
......@@ -753,26 +753,24 @@ P(\mathbi{y}|\mathbi{x}) & = & \frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\
%----------------------------------------------
\begin{itemize}
\vspace{0.5em}
\item {\small\bfnew{模型参数初始化}}。无监督神经机器翻译的关键在于如何提供最开始的监督信号,从而启动后续的迭代流程。无监督词典归纳已经可以提供一些可靠的监督信号,那么如何在模型初始化中融入这些信息?既然神经机器翻译模型都使用词嵌入层作为输入,而无监督词典归纳总是先把两个语言各自的单语词嵌入映射到一个空间后才归纳双语词典,那么可以使用这些映射后的词嵌入来初始化模型的词嵌入层,然后在这个基础上训练模型,因为这些映射后的词嵌入天然就包含了大量的监督信号,比如,两个语言里意思相近的词对应的词嵌入会比其他词更靠近对方\upcite{DBLP:journals/ipm/FarhanTAJATT20}。 为了防止训练过程中模型参数的更新会破坏词嵌入当中的词对齐信息,通常初始化后会固定模型的词嵌入层不让其更新\upcite{DBLP:conf/emnlp/ArtetxeLA18}
\item {\small\bfnew{模型参数初始化}}。无监督神经机器翻译的关键在于如何提供最开始的监督信号,从而启动后续的迭代流程。无监督词典归纳已经可以提供一些可靠的监督信号,那么如何在模型初始化中融入这些信息?既然神经机器翻译模型都使用词嵌入层作为输入,而无监督词典归纳总是先把两个语言各自的单语词嵌入映射到一个空间后才归纳双语词典,那么可以使用这些映射后的词嵌入来初始化模型的词嵌入层,然后在这个基础上训练模型,因为这些映射后的词嵌入天然就包含了大量的监督信号,比如,两个语言里意思相近的词对应的词嵌入会比其他词更靠近对方\upcite{DBLP:journals/ipm/FarhanTAJATT20}。 为了防止训练过程中模型参数的更新会破坏词嵌入当中的词对齐信息,通常初始化后会固定模型的词嵌入层不让其更新\upcite{DBLP:conf/emnlp/ArtetxeLA18}
\parinterval 进一步的研究表明,无监督神经机器翻译能在提供更少监督信号的情况下启动,也就是可以去除无监督词典归纳这一步骤\upcite{DBLP:conf/nips/ConneauL19}。这时候模型的初始化直接使用共享词表的预训练模型的参数作为起始点。这个预训练模型直接使用前面提到的预训练方法(如MASS)进行训练,区别在于模型的大小如宽度和深度需要严格匹配翻译模型。此外,这个模型不仅仅只在一个语言的单语数据上进行训练,而是同时在两个语言的单语数据上进行训练,并且两个语言的词表进行共享。前面提到,在共享词表特别是共享子词词表的情况下,已经隐式告诉模型源语言和目标语言里一样的(子)词互为翻译,相当于模型使用了少量的监督信号。在这基础上使用两个语言的单语数据进行预训练,则通过模型共享进一步挖掘了语言之间共通的部分。因此,使用预训练模型进行初始化后,无监督神经机器翻译模型已经得到大量的监督信号,从而得以不断通过优化来提升模型性能。
\parinterval 进一步的研究表明,无监督神经机器翻译能在提供更少监督信号的情况下启动,也就是可以去除无监督词典归纳这一步骤\upcite{DBLP:conf/nips/ConneauL19}。这时候模型的初始化直接使用共享词表的预训练模型的参数作为起始点。这个预训练模型直接使用前面提到的预训练方法(如MASS)进行训练,区别在于模型的大小如宽度和深度需要严格匹配翻译模型。此外,这个模型不仅仅只在一个语言的单语数据上进行训练,而是同时在两个语言的单语数据上进行训练,并且两个语言的词表进行共享。前面提到,在共享词表特别是共享子词词表的情况下,已经隐式告诉模型源语言和目标语言里一样的(子)词互为翻译,相当于模型使用了少量的监督信号。在这基础上使用两个语言的单语数据进行预训练,则通过模型共享进一步挖掘了语言之间共通的部分。因此,使用预训练模型进行初始化后,无监督神经机器翻译模型已经得到大量的监督信号,从而得以不断通过优化来提升模型性能。
\vspace{0.5em}
\item {\small\bfnew{语言模型的使用}}。无监督神经机器翻译的一个重要部分就是来自语言模型的目标函数。因为翻译模型本质上是在完成文本生成任务,所以只有文本生成类型的语言模型建模方法才可以应用到无监督神经机器翻译里。比如,经典的给定前文预测下一词就是一个典型的自回归生成任务(见{\chaptertwo}),因此可以运用到无监督神经机器翻译里。但是,目前在预训练里流行的BERT等模型是掩码语言模型\upcite{devlin2019bert},就不能直接在无监督神经翻译里使用。
\parinterval 另外一个在无监督神经机器翻译中比较常见的语言模型目标函数则是降噪自编码器。它也是文本生成类型的语言模型建模方法。对于一个句子$\seq{x}$,首先使用一个噪声函数$\seq{x}^{'}=\mathrm{noise}(\seq{x})$ 来对$\seq{x}$注入噪声,产生一个质量较差的句子$\seq{x}^{'}$。然后,让模型学习如何从$\seq{x}^{'}$还原出$\seq{x}$。这样一个目标函数比预测下一词更贴近翻译任务的本质,因为它是一个序列到序列的映射,并且输入输出两个序列在语义上是等价的。我们之所以采用$\seq{x}^{'}$而不是$\seq{x}$自己来预测$\seq{x}^{'}$,是因为模型可以通过简单的复制输入作为输出来完成从$\seq{x}$预测$\seq{x}$的任务,并且在输入中注入噪声会让模型更加鲁棒,因模型可以通过训练集数据学会如何利用句子中噪声以外的信息来处理其中噪声并得到正确的输出。通常来说,噪声函数$\mathrm{noise}$有三种形式,如表\ref{tab:16-1}所示。
\parinterval 另外一个在无监督神经机器翻译中比较常见的语言模型目标函数则是降噪自编码器。它也是文本生成类型的语言模型建模方法。对于一个句子$\seq{x}$,首先使用一个噪声函数$\seq{x}^{'}=\mathrm{noise}(\seq{x})$ 来对$\seq{x}$注入噪声,产生一个质量较差的句子$\seq{x}^{'}$。然后,让模型学习如何从$\seq{x}^{'}$还原出$\seq{x}$。这样一个目标函数比预测下一词更贴近翻译任务的本质,因为它是一个序列到序列的映射,并且输入输出两个序列在语义上是等价的。我们之所以采用$\seq{x}^{'}$而不是$\seq{x}$自己来预测$\seq{x}^{'}$,是因为模型可以通过简单的复制输入作为输出来完成从$\seq{x}$预测$\seq{x}$的任务,并且在输入中注入噪声会让模型更加鲁棒,因模型可以通过训练集数据学会如何利用句子中噪声以外的信息来处理其中噪声并得到正确的输出。通常来说,噪声函数$\mathrm{noise}$有三种形式,如表\ref{tab:16-1}所示。
%----------------------------------------------
\begin{table}[h]
\centering
\caption{三种噪声函数(原句为``我\ 喜欢\ \ 苹果\ 。'')}
\begin{tabular}{l|l|l}
\hline
\multicolumn{1}{c|}{噪声函数} & \multicolumn{1}{c|}{描述} & \multicolumn{1}{c}{例子} \\
\hline
交换 & 句子中任意两个词进行交换 & ``我\ 喜欢\ \underline{苹果}\ \underline{}\ 。'' \\
删除 & 句子中的词按一定概率被删除 & ``我\ 喜欢\ \ 。'' \\
空白 & 句子中的词按一定概率被替换成空白符 & ``我\ \underline{\ \ \ \ \ \ \ \ }\ \ 苹果\ 。'' \\
\hline
\rule{0pt}{15pt}交换 & 句子中任意两个词进行交换 & ``我\ 喜欢\ \underline{苹果}\ \underline{}\ 。'' \\
\rule{0pt}{15pt}删除 & 句子中的词按一定概率被删除 & ``我\ 喜欢\ \ 。'' \\
\rule{0pt}{15pt}空白 & 句子中的词按一定概率被替换成空白符 & ``我\ \underline{\ \ \ \ \ \ \ \ }\ \ 苹果\ 。'' \\
\end{tabular}
\label{tab:16-1}
\end{table}
......@@ -787,7 +785,7 @@ P(\mathbi{y}|\mathbi{x}) & = & \frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\
\section{领域适应}
\parinterval 机器翻译常常面临训练时与应用时所处领域不一致的问题,比如,在一个新闻类数据上训练的系统应用在翻译医学文献上。不同领域的句子通常存在着很大的区别,比如,日常用语的结构较为简单,而化学领域论文的单词和句子结构较为复杂。此外,不同领域之间存在着较为严重的一词多义问题,即同一个词在不同领域中经常会有不同的含义,实例\ref{eg:16-1}展示了单词pitch在不同领域的不同词义。
\parinterval 机器翻译常常面临训练时与应用时所处领域不一致的问题,比如,一个在新闻类数据上训练的系统应用在医学文献翻译任务上。不同领域的句子通常存在着很大的区别,比如,日常用语的结构较为简单,而化学领域中论文的单词和句子结构较为复杂。此外,不同领域之间存在着较为严重的一词多义问题,即同一个词在不同领域中经常会有不同的含义,实例\ref{eg:16-1}展示了英语单词pitch在不同领域的不同词义。
%----------------------------------------------
\begin{example}
单词pitch在不同领域的不同词义
......@@ -807,9 +805,9 @@ P(\mathbi{y}|\mathbi{x}) & = & \frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\
\end{example}
%----------------------------------------------
\parinterval 在机器翻译任务中,某些领域的双语数据相对容易获取,如新闻等领域,所以机器翻译在这些领域上表现较佳。然而,即使在富资源语种上,化学、医学等专业领域的双语数据却十分有限。如果直接使用低资源领域的数据训练一个机器翻译模型,由于数据稀缺问题,会导致模型的性能较差\upcite{DBLP:conf/iccv/SunSSG17}混合多个领域的数据进行训练,不同领域的数据量不平衡会导致数据较少的领域训练不充分,模型容易忽略低资源领域的知识,使得在低资源领域上的翻译结果差强人意\upcite{DBLP:conf/acl/DuhNST13}
\parinterval 在机器翻译任务中,像新闻等领域的双语数据相对容易获取,所以机器翻译在这些领域上表现较佳。然而,即使在富资源语种上,化学、医学等专业领域的双语数据依然十分有限。如果直接使用低资源领域的数据来训练机器翻译模型,由于数据稀缺问题,会导致模型的性能较差\upcite{DBLP:conf/iccv/SunSSG17}。而混合多个领域的数据进行训练,不同领域的数据量不平衡会导致数据较少的领域训练不充分,模型容易忽略低资源领域的知识,使得在低资源领域上的翻译结果差强人意\upcite{DBLP:conf/acl/DuhNST13}
\parinterval {\small\bfnew{领域适应}}(Domain Adaptation)方法是利用其他领域(Source Domain\index{Source Domain}, 又称{\small\bfnew{源领域}}\index{源领域}知识来改进特定领域(Target Domain\index{Target Domain}, 又称{\small\bfnew{目标领域}}\index{目标领域})翻译效果的方法,可以有效地减少模型对目标领域数据的依赖。领域适应主要从两个方向出发
\parinterval {\small\bfnew{领域适应}}(Domain Adaptation)方法是利用其他领域(Source Domain\index{Source Domain}, 又称{\small\bfnew{源领域}}\index{源领域}的知识来改进特定领域(Target Domain\index{Target Domain}, 又称{\small\bfnew{目标领域}}\index{目标领域})翻译效果的方法,该方法可以有效地减少模型对目标领域数据的依赖。领域适应的研究方向主要有以下两点
\begin{itemize}
\vspace{0.5em}
......@@ -819,65 +817,65 @@ P(\mathbi{y}|\mathbi{x}) & = & \frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\
\vspace{0.5em}
\end{itemize}
\parinterval 在统计机器翻译时代,从数据或模型角度提升机器翻译模型在特定领域上的翻译性能就已经备受关注,这些技术和思想也为神经机器翻译中的领域适应技术提供了参考。
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{统计机器翻译中的领域适应}
\parinterval 在统计机器翻译中,领域适应可以分为基于混合模型的方法\upcite{DBLP:conf/wmt/FosterK07,DBLP:conf/iwslt/BisazzaRF11,niehues2012detailed,DBLP:conf/acl/SennrichSA13,joty2015using,imamura2016multi}、基于数据加权的方法\upcite{DBLP:conf/emnlp/MatsoukasRZ09,DBLP:conf/emnlp/FosterGK10,shah2012general,DBLP:conf/iwslt/MansourN12,DBLP:conf/cncl/ZhouCZ15}、基于数据选择的方法\upcite{DBLP:conf/lrec/EckVW04,DBLP:conf/coling/ZhaoEV04,DBLP:conf/acl/MooreL10,DBLP:conf/acl/DuhNST13,DBLP:conf/coling/HoangS14,joty2015using,chen2016bilingual}和基于伪数据的方法\upcite{DBLP:conf/iwslt/Ueffing06,DBLP:conf/coling/WuWZ08,DBLP:conf/iwslt/Schwenk08,DBLP:conf/wmt/BertoldiF09,DBLP:conf/wmt/LambertSSA11}
\parinterval 在统计机器翻译时代,使用基于数据或模型的方法来提升机器翻译模型在特定领域上的翻译性能就已经备受关注,而这些技术和思想也为神经机器翻译中的领域适应技术提供了参考。
\parinterval 统计机器翻译中,领域适应可以分为基于混合模型的方法\upcite{DBLP:conf/wmt/FosterK07,DBLP:conf/iwslt/BisazzaRF11,niehues2012detailed,DBLP:conf/acl/SennrichSA13,joty2015using,imamura2016multi}、基于数据加权的方法\upcite{DBLP:conf/emnlp/MatsoukasRZ09,DBLP:conf/emnlp/FosterGK10,shah2012general,DBLP:conf/iwslt/MansourN12,DBLP:conf/cncl/ZhouCZ15}、基于数据选择的方法\upcite{DBLP:conf/lrec/EckVW04,DBLP:conf/coling/ZhaoEV04,DBLP:conf/acl/MooreL10,DBLP:conf/acl/DuhNST13,DBLP:conf/coling/HoangS14,joty2015using,chen2016bilingual}和基于伪数据的方法\upcite{DBLP:conf/iwslt/Ueffing06,DBLP:conf/coling/WuWZ08,DBLP:conf/iwslt/Schwenk08,DBLP:conf/wmt/BertoldiF09,DBLP:conf/wmt/LambertSSA11},本小节将对这四种方法进行简单介绍。
%----------------------------------------------------------------------------------------
% NEW SUB-SUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection{1. 基于混合模型的方法}
\parinterval 不同领域的数据存在着共性,但是又有各自的风格,使用多领域数据训练出不同的模型,分情况处理问题可能会带来更好的效果,例如对疑问句和陈述句分别使用两个模型进行推断效果更好\upcite{DBLP:conf/eacl/Sennrich12}。混合模型是统计机器学习理论中的传统实现技术之一,通过训练与每个语料库分别对应的多个统计机器翻译子模型,如语言模型、翻译模型和重排序模型,然后将它们进行组合以实现最佳性能\upcite{DBLP:conf/wmt/FosterK07}。混合模型方法的步骤如下:
\parinterval 不同领域的数据存在着共性,但是又有各自的风格,因此使用多领域数据训练出不同的模型,分情况处理问题可能会带来更好的效果,例如对疑问句和陈述句分别使用两个模型进行推断
可以使翻译效果更好\upcite{DBLP:conf/eacl/Sennrich12}。混合模型是统计机器学习理论中的传统实现技术之一,通过训练与每个语料库分别对应的多个统计机器翻译子模型,如语言模型、翻译模型和重排序模型,然后将它们进行组合以实现最佳性能\upcite{DBLP:conf/wmt/FosterK07}。该方法的主要步骤如下:
\begin{itemize}
\vspace{0.5em}
\item 将训练数据根据所在的领域分为几个不同的部分。
\vspace{0.5em}
\item 利用每一部分数据训练一个子模型。
\item 利用每一部分数据训练对应的子模型。
\vspace{0.5em}
\item 根据测试数据的上下文信息适当为每个子模型调整权重。
\item 根据测试数据的上下文信息为每个子模型调整权重。
\vspace{0.5em}
\item 对不同的领域使用调整出的最佳权重,加权整合多个子模型的输出。
\item 针对不同领域,使用调整后的最佳权重,并加权整合多个子模型的输出。
\vspace{0.5em}
\end{itemize}
\parinterval 混合模型方法把统计机器翻译的每个模块分为多个模型同时解决问题,有权重地组合多个模型的结果。这个想法对后来出现的神经机器翻译中的模型融合、加权推断等方法有一定的启发(见{\chapterfourteen})。
\parinterval 混合模型方法把统计机器翻译的每个模块分为多个模型同时解决问题,有权重地组合多个模型的结果。这个想法对后来出现的神经机器翻译中的模型融合、加权推断等方法有一定的启发(见{\chapterfourteen})。
%----------------------------------------------------------------------------------------
% NEW SUB-SUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection{2. 基于数据加权的方法}
\parinterval 在真实场景中,由于每个领域的数据量有限,同时领域数量较多,针对每个领域单独训练一个机器翻译模型是不现实的。所以,通常的策略是训练一个机器翻译模型来支持多领域的翻译。虽然混合多个领域的数据可以有效增加训练数据规模,但正如前面所说,由于各个领域样本的数据量不平衡,在训练数据稀缺的领域上,模型表现往往差强人意。一种观点认为,数据量较少的领域数据具有更大的学习价值,可以提供较为珍贵的知识和信息,应该在训练过程中获得更大的权重。数据加权方法使用规则或统计方法对每个实例或领域进行评分,作为它们的权重,然后赋予每个样本或领域不同的权重来训练统计机器翻译模型。一般来说,数据量较少的领域数据权重更高,从而使这些更有价值的数据发挥出更大的作用\upcite{DBLP:conf/emnlp/MatsoukasRZ09,DBLP:conf/emnlp/FosterGK10}
\parinterval 在真实场景中,由于每个领域的数据量有限,同时领域数量较多,针对每个领域单独训练一个机器翻译模型是不现实的。所以,通常的策略是训练一个机器翻译模型来支持多领域的翻译。虽然混合多个领域的数据可以有效增加训练数据规模,但正如前面所说,由于各个领域样本的数据量不平衡,在训练数据稀缺的领域上,模型表现往往差强人意。一种观点认为,数据量较少的领域数据具有更大的学习价值,可以提供较为珍贵的知识和信息,应该在训练过程中获得更大的权重,从而使这些更有价值的数据发挥出更大的作用\upcite{DBLP:conf/emnlp/MatsoukasRZ09,DBLP:conf/emnlp/FosterGK10}。数据加权方法使用规则或统计方法对每个实例或领域进行评分,作为它们的权重,然后赋予每个样本或领域不同的权重来训练统计机器翻译模型
\parinterval 上述思想本质上在解决{\small\bfnew{类别不均衡问题}}\upcite{DBLP:conf/emnlp/ZhuH07}\index{类别不均衡问题}(Class Imbalance Problem\index{Class Imbalance Problem})。另一种方法是通过数据重新采样对语料库进行加权\upcite{DBLP:conf/wmt/ShahBS10,rousseau2011lium}。语料库加权方法通过构建目标领域语言模型,比较各个语料库与目标领域的相似性,赋予相似的语料库更高的权重。
\parinterval 上述思想本质上在解决{\small\bfnew{类别不均衡问题}}\upcite{DBLP:conf/emnlp/ZhuH07}\index{类别不均衡问题}(Class Imbalance Problem\index{Class Imbalance Problem})。另一种方法是通过数据重新采样对语料库进行加权\upcite{DBLP:conf/wmt/ShahBS10,rousseau2011lium}。语料库加权方法通过构建目标领域语言模型,比较各个语料库与目标领域的相似性,赋予相似的语料库更高的权重。
%----------------------------------------------------------------------------------------
% NEW SUB-SUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection{3. 基于数据选择的方法}
\parinterval 源领域大规模的双语数据中通常会包含一些和目标领域相似的句子,基于数据选择的方法通过相似度函数选择出与目标领域相似的源领域数据,再把选择出的源领域数据与原始目标领域数据混合训练模型,增加目标领域的双语数据规模,从而提高模型在目标领域的性能。相似度可以通过语言模型\upcite{DBLP:conf/lrec/EckVW04,DBLP:conf/coling/ZhaoEV04,moore2010intelligent,DBLP:conf/acl/DuhNST13}、 多模型联合\upcite{DBLP:conf/coling/HoangS14,joty2015using}、卷积神经网络\upcite{chen2016bilingual}等方法进行计算。
\parinterval 源领域大规模的双语数据中通常会包含一些和目标领域相似的句子,基于数据选择的方法通过相似度函数选择出与目标领域相似的源领域数据,再把选择出的源领域数据与原始目标领域数据进行混合,之后训练模型,增加目标领域的双语数据规模,从而提高模型在目标领域的性能。相似度可以通过语言模型\upcite{DBLP:conf/lrec/EckVW04,DBLP:conf/coling/ZhaoEV04,moore2010intelligent,DBLP:conf/acl/DuhNST13}、 多模型联合\upcite{DBLP:conf/coling/HoangS14,joty2015using}、卷积神经网络\upcite{chen2016bilingual}等方法进行计算。
%----------------------------------------------------------------------------------------
% NEW SUB-SUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection{4. 基于伪数据的方法}
\parinterval 数据选择方法可以从源领域中选择出和目标领域相似的训练数据,但可用的数据量是较为有限的。因此,另外一种思路是对现有的双语数据进行修改或通过单语数据生成伪数据来增加数据量。常用方法包括通过信息检索\upcite{DBLP:conf/acl/UtiyamaI03}、平行词嵌入\upcite{DBLP:conf/acl/MarieF17}等方法生成一些伪平行句对或平行短语对\upcite{DBLP:conf/coling/WangZLUS16,chu2015integrated}来增加可使用的伪双语数据。统计机器翻译可以有效地利用平行短语对来提高模型性能
\parinterval 数据选择方法可以从源领域中选择出和目标领域相似的训练数据,但可用的数据量是较为有限的。因此,另外一种思路是对现有的双语数据进行修改或通过单语数据生成伪数据来增加数据量。常用方法包括信息检索\upcite{DBLP:conf/acl/UtiyamaI03}、平行词嵌入\upcite{DBLP:conf/acl/MarieF17}等,通过生成一些伪平行句对或平行短语对\upcite{DBLP:conf/coling/WangZLUS16,chu2015integrated}来增加可使用的伪双语数据
\parinterval 其中,{\small\bfnew{自学习}}(Self-training)是一种具有代表性的生成伪数据的方法\upcite{DBLP:journals/tit/Scudder65a}。自学习通过源领域的双语训练数据训练一个基准翻译系统,然后对目标领域的单语数据进行翻译,再从翻译候选集合中选择高质量的译文和源语言句子组合成为双语句对,之后将其加入到训练数据中重新训练翻译系统,该过程将一直迭代到翻译性能稳定为止\upcite{DBLP:conf/iwslt/Ueffing06}。基于自学习的统计机器翻译可以从一个性能较好的源领域机器翻译模型出发,逐步引入目标领域的知识,可以显著提高目标领域的翻译性能。
\parinterval 其中,{\small\bfnew{自学习}}\index{自学习}(Self-training)\index{Self-training}是一种具有代表性的生成伪数据的方法\upcite{DBLP:journals/tit/Scudder65a}。自学习利用源领域的双语训练数据训练一个基准翻译系统,然后对目标领域的单语数据进行翻译,再从翻译候选集合中选择高质量的译文和源语言句子组合成为双语句对,之后将其加入到训练数据中重新训练翻译系统,该过程将一直迭代到翻译性能稳定为止\upcite{DBLP:conf/iwslt/Ueffing06}。基于自学习的统计机器翻译可以从一个性能较好的源领域机器翻译模型出发,逐步引入目标领域的知识,可以显著提高目标领域的翻译性能。
\parinterval 随着神经机器翻译的不断发展,许多基于神经网络的领域适应方法也被提出\upcite{DBLP:conf/coling/ChuW18}其核心思想仍和统计机器翻译时期相似,也是从数据角度和模型角度两方面进行改进。不同之处在于,统计机器翻译模型是多个独立模型的组合,而神经机器翻译是一个整体的模型,因此统计机器翻译中基于模型的方法不能直接应用于神经机器翻译。
\parinterval 随着神经机器翻译的不断发展,许多基于神经网络的领域适应方法也被提出\upcite{DBLP:conf/coling/ChuW18}但其核心思想仍和统计机器翻译时期相似,也是从数据角度和模型角度两方面进行改进。不同之处在于,统计机器翻译模型是多个独立模型的组合,而神经机器翻译是一个整体的模型,因此统计机器翻译中基于模型的方法并不能直接应用于神经机器翻译。
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
......@@ -893,20 +891,20 @@ P(\mathbi{y}|\mathbi{x}) & = & \frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\
\subsubsection{1. 基于多领域数据的方法}
\parinterval 一种简单的思路是利用其他领域的数据来辅助低资源领域上的模型训练,即基于多领域数据的领域适应\upcite{DBLP:conf/acl/ChuDK17,DBLP:journals/corr/abs-1708-08712,DBLP:conf/acl/WangTNYCP20,DBLP:conf/acl/JiangLWZ20}。实际上,多领域建模也可以看作是一种多语言建模问题(\ref{multilingual-translation-model}节)。通过借助其他相似领域的训练数据,可以缓解目标领域数据缺乏的问题。比如,想要训练网络小说领域的翻译系统,可以通过加入文学、字幕等领域的翻译数据来增加数据量。
\parinterval 一种简单的思路是利用其他领域的数据来辅助低资源领域上的模型训练,即基于多领域数据的领域适应\upcite{DBLP:conf/acl/ChuDK17,DBLP:journals/corr/abs-1708-08712,DBLP:conf/acl/WangTNYCP20,DBLP:conf/acl/JiangLWZ20}。实际上,多领域建模也可以看作是一种多语言建模问题(相关内容见本章\ref{multilingual-translation-model}节)。通过借助其他相似领域的训练数据,可以缓解目标领域数据缺乏的问题。比如,想要训练网络小说领域的翻译系统,可以通过加入文学、字幕等领域的翻译数据来增加数据量。
\parinterval 但在神经机器翻译中,多领域数据不平衡问题也会导致数据量较少的领域训练不充分,带来较低的翻译品质。目前比较常用的多领域数据方法是在数据中加入标签来提高神经机器翻译模型对不同领域的区分能力\upcite{DBLP:conf/acl/ChuDK17},该方法主要通过两种策略来缓解领域不平衡问题:
\begin{itemize}
\vspace{0.5em}
\item 在不同领域的源语句子句首加上不同的标签来指定该句子对应的领域,让神经机器翻译模型在预测过程中可以生成更符合领域特性的句子。
\item 在不同领域的源语言句子句首加上不同的标签来指定该句子所对应的领域,让神经机器翻译模型在预测过程中可以生成更符合领域特性的句子。
\item 把数据量较小的领域数据复制数倍,来对各个领域的数据量进行平衡,使模型对各个领域给与平等的关注。
\vspace{0.5em}
\end{itemize}
\parinterval 这种方法的优点在于思路简单、易于实现,可以大大提高可用的数据量,但不同领域的数据不可避免地会产生一些干扰,在实际使用中可能会产生词汇预测错误的问题。
\parinterval 基于多领域数据的方法优点在于思路简单、易于实现,可以大大提高可用的数据量,但不同领域的数据不可避免地会产生一些干扰,在实际使用中可能会产生词汇预测错误的问题。
%----------------------------------------------------------------------------------------
% NEW SUB-SUB-SECTION
......@@ -924,9 +922,9 @@ P(\mathbi{y}|\mathbi{x}) & = & \frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\
%----------------------------------------------------------------------------------------
\subsubsection{3. 基于单语数据的方法}
\parinterval 尽管目标领域的双语数据是十分有限的,但通常存在大量可用的单语数据。例如在网络小说翻译任务中,只有少量的双语数据可用,而网络上有丰富的单语小说数据可用。\ref{effective-use-of-data}节中提到了很多在低资源场景下利用单语数据的模型方法,比如进行数据增强或利用语言模型等。这些方法均可以直接应用在领域适应任务上,有效地利用领域内的单语数据可以显著提高机器翻译性能。
\parinterval 虽然目标领域的双语数据十分有限,但通常存在大量可用的单语数据。例如在网络小说翻译任务中,只有少量的双语数据可用,但是网络上有丰富的小说单语数据可以使用。本章\ref{effective-use-of-data}节中提到了很多在低资源场景下利用单语数据的模型方法,比如进行数据增强或利用语言模型等,这些方法均可以直接应用在领域适应任务上,有效地利用领域内的单语数据可以显著提高机器翻译性能。
\parinterval 此外,如果目标领域的双语数据极度稀缺,甚至完全没有任何双语数据,这时可以使用\ref{unsupervised-dictionary-induction}节中提到的无监督词典归纳方法从目标领域中归纳出双语词典,然后将目标领域的目标端单语数据通过逐词翻译的方法生成伪数据\upcite{DBLP:conf/acl/HuXNC19},即对每个单词根据双语词典进行对应翻译,构建伪平行语料,用来训练目标领域的神经机器翻译模型。
\parinterval 此外,如果目标领域的双语数据极度稀缺,甚至没有任何双语数据,这时可以使用\ref{unsupervised-dictionary-induction}节中提到的无监督词典归纳方法从目标领域中归纳出双语词典,然后将目标领域的目标端单语数据通过逐词翻译的方法生成伪数据\upcite{DBLP:conf/acl/HuXNC19},即对每个单词根据双语词典进行对应翻译,构建伪平行语料,用来训练目标领域的神经机器翻译模型。
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
......@@ -934,7 +932,7 @@ P(\mathbi{y}|\mathbi{x}) & = & \frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\
\subsection{基于模型的神经机器翻译领域适应}\label{modeling-methods-in neural-machine-translation}
\parinterval 一个神经机器翻译模型的实现分为三个组成部分:设计神经网络模型结构、制定训练策略训练模型、模型推断生成翻译结果。因此,领域适应也可以体现在这三个步骤中:
\parinterval 一个神经机器翻译模型的实现主要分为三个部分:设计神经网络模型结构、制定训练策略训练模型、模型推断生成翻译结果。因此,领域适应也可以体现在这三个步骤中:
\begin{itemize}
\vspace{0.5em}
......@@ -954,7 +952,7 @@ P(\mathbi{y}|\mathbi{x}) & = & \frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\
\parinterval 统计机器翻译时代基于模型结构的方法集中在提升词对齐模型、语言模型等子模型的领域适应性,从而提升统计机器翻译模型在特定领域的表现。而神经机器翻译模型是一个端到端的框架,因此对模型的调整往往体现在整体结构上。
\parinterval 在使用多领域数据时,神经机器翻译的结构无法有效地利用多领域语料库的信息多样性,混合多个相差较大的领域数据进行训练会使单个领域的翻译性能下降\upcite{DBLP:conf/eacl/NegriTFBF17}。为了解决这一问题,一个比较典型的做法是在使用多领域数据训练时,如图\ref{fig:16-21}所示,在神经机器翻译模型的编码器中添加一个判别器,使用判别器预测输入句子的领域\upcite{DBLP:conf/wmt/BritzLP17},具体的做法为:在编码器的顶部添加一个判别器网络,这个判别器使用源语言句子$x$的编码器表示$\mathbi{x'}$作为输入,预测句子所属的领域标签$d$。为了使预测领域标签d的正确概率$\funp{P(d|H)}$最大,模型在训练过程中最小化如下损失函数$\funp{L}_{\rm{disc}}$
\parinterval 在使用多领域数据时,神经机器翻译的结构无法有效地利用多领域语料库的信息多样性,混合多个相差较大的领域数据进行训练会使单个领域的翻译性能下降\upcite{DBLP:conf/eacl/NegriTFBF17}。为了解决这一问题,一个比较典型的做法是在使用多领域数据训练时,如图\ref{fig:16-21}所示,在神经机器翻译模型的编码器中添加一个判别器,使用判别器预测输入句子的领域\upcite{DBLP:conf/wmt/BritzLP17},具体的做法为:在编码器的顶部添加一个判别器网络,这个判别器使用源语言句子$x$的编码器表示$\mathbi{x}'$作为输入,预测句子所属的领域标签$d$。为了使预测领域标签d的正确概率$\funp{P(d|H)}$最大,模型在训练过程中最小化如下损失函数$\funp{L}_{\rm{disc}}$
%----------------------------------------------
\begin{figure}[h]
\centering
......@@ -980,7 +978,7 @@ P(\mathbi{y}|\mathbi{x}) & = & \frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\
\funp{L} & = & \funp{L}_{\rm{disc}}+\funp{L}_{\rm{gen}}\label{eq:16-14}
\end{eqnarray}
\parinterval 这种方法使模型具备了识别不同领域数据的能力,从而可以针对不同领域进行特定的建模,生成符合领域特征的翻译结果。此外,还可以利用词频-逆文档频率方法\upcite{DBLP:journals/ibmrd/Luhn58}预测输入句子的领域标签,在词嵌入层加上领域特定的嵌入表示。还有一些对模型结构进行更改的工作在于融合语言模型到神经机器翻译模型中\upcite{2015OnGulcehre,DBLP:conf/emnlp/DomhanH17}
\parinterval 这种方法使模型具备了识别不同领域数据的能力,从而可以针对不同领域进行特定的建模,生成符合领域特征的翻译结果。此外,还可以利用词频-逆文档频率方法\upcite{DBLP:journals/ibmrd/Luhn58}预测输入句子的领域标签,在词嵌入层加上领域特定的嵌入表示。还有一些对模型结构进行更改的工作比如融合语言模型到神经机器翻译模型中\upcite{2015OnGulcehre,DBLP:conf/emnlp/DomhanH17}
%----------------------------------------------------------------------------------------
% NEW SUB-SUB-SECTION
......@@ -989,25 +987,23 @@ P(\mathbi{y}|\mathbi{x}) & = & \frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\
\parinterval 因为特定领域的训练数据通常十分稀缺,所以如何更充分地利用数据是一个重要问题。基于训练策略的领域适应方法是神经机器翻译中较为广泛使用的方法,具有易于实现、作用显著的优点\upcite{DBLP:conf/naacl/SimianerWD19}。基于训练策略的领域适应方法是指在模型的训练阶段改变获得训练目标的过程,通过加权或者微调等方法更加高效地利用数据。
\parinterval 受到统计机器翻译中数据加权方法的启发,一个简单的思路是给神经机器翻译的训练数据分配不同的训练权重,从而使和目标领域更相似数据发挥更大的作用,并减少不相似数据的干扰。一种常用的做法是通过目标领域内和领域外语言模型计算样本的权重\upcite{DBLP:conf/emnlp/WangULCS17}。领域内语言模型对句子的打分越高,表示该句子与目标领域越相似,反之,领域外语言模型对句子的打分越高,表示该句子可能与目标领域无关,会对训练过程造成一些干扰。
\parinterval 受到统计机器翻译中数据加权方法的启发,一个简单的思路是给神经机器翻译的训练数据分配不同的训练权重,从而使和目标领域更相似的数据发挥更大的作用,并减少不相似数据的干扰。一种常用的做法是使用目标领域内和领域外语言模型来计算样本的权重\upcite{DBLP:conf/emnlp/WangULCS17}。领域内语言模型对句子的打分越高,表示该句子与目标领域越相似,反之,领域外语言模型对句子的打分越高,表示该句子可能与目标领域无关,会对训练过程造成一些干扰。
\parinterval 与句子级别进行加权方法相似,加权思想还可以应用在词级别,即对每个词进行权重评分,对目标领域中的词赋予更高的权重,以使模型倾向于生成更多目标领域的词\upcite{DBLP:journals/corr/abs-1906-03129}
\parinterval 数据选择方法会降低训练数据的数据量,而在数据量较少的时候模型表现可能较差,针对这个问题,一种方法是在不同的训练轮次动态地改变训练数据子集。动态数据选择使得每轮的训练数据均小于全部数据量,但是在每轮中的训练数据均不同,可能前一轮没有训练的数据在当前轮被包括进来,由此可以缓解训练数据减小的问题。一种做法是先将完整的数据送入模型,再根据相似度逐次减少每轮的数据量,最后得到在目标领域上效果最好的领域适应模型\upcite{DBLP:conf/emnlp/WeesBM17}。或者将最相似的句子最先送入模型,让模型可以最先学到跟目标领域最相关的知识,奠定良好的基础\upcite{DBLP:conf/naacl/ZhangSKMCD19}
\parinterval 数据选择方法会降低训练数据的数据量,而在数据量较少的时候模型性能表现可能较差,针对这个问题,一种方法是在不同的训练轮次动态地改变训练数据子集。动态数据选择使得每轮的训练数据均小于全部数据量,但是在每轮中的训练数据均不同,可能前一轮没有训练的数据在当前轮被包括进来,由此可以缓解训练数据减小的问题。另一种做法是先将完整的数据送入模型,再根据相似度逐次减少每轮的数据量,最后得到在目标领域上效果最好的领域适应模型\upcite{DBLP:conf/emnlp/WeesBM17}。或者将最相似的句子最先送入模型,让模型可以最先学到跟目标领域最相关的知识,奠定良好的基础\upcite{DBLP:conf/naacl/ZhangSKMCD19}
\parinterval 还有一种方法是不从随机状态开始训练网络,而是使用翻译性能较好的源领域模型作为初始状态,因为源领域模型中包含着一些通用知识可以被目标领域借鉴。比如,想获得口语领域的机器翻译模型,使用新闻领域模型作为初始状态训练口语领域模型。同时,微调方法经常配合预训练使用。微调方法的具体过程如下:
\parinterval 还有一种方法是不从随机状态开始训练网络,而是使用翻译性能较好的源领域模型作为初始状态,因为源领域模型中包含着一些通用知识可以被目标领域借鉴。比如,想获得口语领域的机器翻译模型,可以使用新闻领域模型作为初始状态来训练口语领域模型。同时,微调方法经常配合预训练使用。微调方法的具体过程如下:
\begin{itemize}
\vspace{0.5em}
\item 在资源丰富的源领域语料库上对系统进行训练直至收敛。
\vspace{0.5em}
\item 在资源贫乏的目标领域语料库上进行训练,对系统参数进行微调使其更适应目标领域。
\vspace{0.5em}
\end{itemize}
\parinterval 然而微调的方法会带来严重的灾难性遗忘问题,即在目标领域上过拟合,导致在源领域上的翻译性能大幅度下降。如果想要保证模型在目标领域上有较好翻译性能的同时在源领域的翻译性能也不下降,一个比较常用的方法是进行混合微调\upcite{DBLP:conf/acl/ChuDK17}。具体做法是先在源领域数据上训练一个神经机器翻译模型,然后将目标领域数据复制数倍和源领域数据量相等,之后将数据混合后对神经机器翻译模型进行微调。混合微调方法既降低了目标领域数据量小导致的过拟合问题,又带来了更好的微调性能。除了混合微调外,还有研究人员使用\ref{multilingual-translation-model}节的知识蒸馏方法缓解灾难性遗忘问题,即对源领域和目标领域进行多次循环知识蒸馏,迭代学习对方领域的知识,可以保证在源领域和目标领域上的翻译性能共同逐步上升\upcite{DBLP:conf/emnlp/ZengLSGLYL19}。过拟合导致的灾难性遗忘还可以使用\ref{subsection-13.2}一节中的L2正则化和Dropout方法来缓解\upcite{barone2017regularization}
\parinterval 然而微调的方法会带来严重的灾难性遗忘问题,即在目标领域上过拟合,导致在源领域上的翻译性能大幅度下降。如果想要保证模型在目标领域上有较好翻译性能的同时在源领域的翻译性能也不下降,一个比较常用的方法是进行混合微调\upcite{DBLP:conf/acl/ChuDK17}。具体做法是先在源领域数据上训练一个神经机器翻译模型,然后将目标领域数据复制数倍和源领域数据量相等,之后将数据混合后对神经机器翻译模型进行微调。混合微调方法既降低了目标领域数据量小导致的过拟合问题,又带来了更好的微调性能。除了混合微调外,还有研究人员使用\ref{multilingual-translation-model}节的知识蒸馏方法缓解灾难性遗忘问题,即对源领域和目标领域进行多次循环知识蒸馏,迭代学习对方领域的知识,可以保证在源领域和目标领域上的翻译性能共同逐步上升\upcite{DBLP:conf/emnlp/ZengLSGLYL19}。过拟合导致的灾难性遗忘问题还可以使用\ref{subsection-13.2}一节中的L2正则化和Dropout方法来缓解\upcite{barone2017regularization}
%----------------------------------------------------------------------------------------
% NEW SUB-SUB-SECTION
......@@ -1028,7 +1024,7 @@ P(\mathbi{y}|\mathbi{x}) & = & \frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\
\vspace{0.5em}
\end{itemize}
\parinterval 集成推断方法相较于直接使用大量数据训练成一个模型的主要优势在于速度快,多个领域的模型可以并行地独立训练,使训练时间大大缩短。集成推断也可以结合加权思想,对不同领域的句子,赋予每个模型不同的先验权重进行推断,来获得最佳的推断结果\upcite{DBLP:conf/acl/SaundersSGB19}。还有部分工作研究在推断过程中融入语言模型\upcite{2015OnGulcehre,DBLP:conf/emnlp/DomhanH17}或目标领域的罕见词\upcite{DBLP:conf/naacl/BapnaF19}
\parinterval 集成推断方法相较于直接使用大量数据训练成一个模型的主要优势在于速度快,多个领域的模型可以独立训练,使训练时间大大缩短。集成推断也可以结合加权的思想,对不同领域的句子,赋予每个模型不同的先验权重进行推断,来获得最佳的推断结果\upcite{DBLP:conf/acl/SaundersSGB19}。还有部分工作研究在推断过程中融入语言模型\upcite{2015OnGulcehre,DBLP:conf/emnlp/DomhanH17}或目标领域的罕见词\upcite{DBLP:conf/naacl/BapnaF19}
%----------------------------------------------------------------------------------------
% NEW SECTION
......@@ -1038,13 +1034,13 @@ P(\mathbi{y}|\mathbi{x}) & = & \frac{\mathrm{cos}(\mathbi{x},\mathbi{y})/\tau}{\
低资源机器翻译是机器翻译大规模应用所面临的挑战之一,因此也备受关注。一方面,小样本学习和零样本学习技术的发展,使得研究者可以有更多的手段对问题求解;另一方面,从多语言之间的联系出发,也可以进一步挖掘语料背后的知识,并应用于低资源翻译任务。本章从多个方面介绍了低资源机器翻译方法,并结合多语言、零资源翻译等问题给出了不同场景下解决问题的思路。除此之外,还有几方面工作值得进一步关注:
\parinterval 如何更高效地利用已有双语数据或单语数据进行数据增强始终是一个热点问题。研究人员们分别探索了源语言单语和目标语单语的使用方法\upcite{DBLP:conf/emnlp/ZhangZ16,DBLP:conf/emnlp/WuWXQLL19,DBLP:conf/acl/XiaKAN19},以及如何对已有双语数据进行修改\upcite{DBLP:conf/emnlp/WangPDN18,DBLP:conf/acl/GaoZWXQCZL19}。经过数据增强得到的伪数据的质量时好时坏,如何提高伪数据的质量以及更好地利用伪数据进行十分重要\upcite{DBLP:conf/emnlp/FadaeeM18,DBLP:conf/nlpcc/XuLXLLXZ19,DBLP:conf/wmt/CaswellCG19,DBLP:journals/corr/abs200403672,DBLP:conf/emnlp/WangLWLS19}。此外,还有一些工作对数据增强技术进行了理论分析\upcite{DBLP:conf/emnlp/LiLHZZ19,DBLP:conf/acl/MarieRF20}
\parinterval 如何更高效地利用已有双语数据或单语数据进行数据增强始终是一个热点问题。研究人员分别探索了源语言单语和目标语言单语的使用方法\upcite{DBLP:conf/emnlp/ZhangZ16,DBLP:conf/emnlp/WuWXQLL19,DBLP:conf/acl/XiaKAN19},以及如何对已有双语数据进行修改\upcite{DBLP:conf/emnlp/WangPDN18,DBLP:conf/acl/GaoZWXQCZL19}。经过数据增强得到的伪数据的质量时好时坏,如何提高伪数据的质量以及更好地利用伪数据进行训练也是十分重要的问题\upcite{DBLP:conf/emnlp/FadaeeM18,DBLP:conf/nlpcc/XuLXLLXZ19,DBLP:conf/wmt/CaswellCG19,DBLP:journals/corr/abs200403672,DBLP:conf/emnlp/WangLWLS19}。此外,还有一些工作对数据增强技术进行了理论分析\upcite{DBLP:conf/emnlp/LiLHZZ19,DBLP:conf/acl/MarieRF20}
\parinterval 语言模型除了应用在解码过程中来提高翻译结果的流畅度之外,另外一种常用的做法是用来对翻译结果进行重排序。翻译模型在解码过程中可以生成多个候选,可以利用语言模型、不同的翻译模型等分别对每个候选打分,选择分数最高的句子作为最终的翻译结果\upcite{DBLP:conf/wmt/WangCJYCLSWY17,ng2019facebook,DBLP:conf/wmt/WangLLJZLLXZ18,DBLP:conf/wmt/LiLXLLLWZXWFCLL19},这一方法在各种机器翻译评测任务中得到了广泛使用。
\parinterval 预训练模型BERT的提出引发了人们对预训练方法的关注,从多个维度对预训练方法进行了更广泛和更深入的探讨。预训练模型的目标最早主要是语言模型或掩码语言模型,之后又提出了新的预训练任务,如排列语言模型\upcite{DBLP:conf/nips/YangDYCSL19}、降噪自编码器\upcite{lewis2019bart}\upcite{DBLP:conf/iclr/LanCGGSS20,DBLP:conf/acl/ZhangHLJSL19}。预训练技术也逐渐向多语言领域扩展\upcite{DBLP:conf/nips/ConneauL19,DBLP:conf/emnlp/HuangLDGSJZ19,song2019mass},甚至不再只局限于文本任务,逐渐向更多模态探索\upcite{DBLP:conf/iccv/SunMV0S19,DBLP:journals/corr/abs-2010-12831,DBLP:conf/nips/LuBPL19,DBLP:conf/interspeech/ChuangLLL20}。对于如何将预训练模型高效地应用到下游任务中,也进行了很多的经验性对比与分析\upcite{DBLP:journals/corr/abs-1802-05365,DBLP:conf/rep4nlp/PetersRS19,DBLP:conf/cncl/SunQXH19}。但将预训练模型应用于下游任务存在的一个问题是,由于模型巨大的参数量会带来较大的延时及显存消耗。因此,很多工作对如何压缩预训练模型进行了研究\upcite{shen2020q,Lan2020ALBERTAL,DBLP:journals/corr/abs-1910-01108,Jiao2020TinyBERTDB}
\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{DBLP:conf/naacl/Al-ShedivatP19}。但是,零资源翻译的性能通常很不稳定并且明显落后于有监督的翻译方向。为了改善零资源翻译,可以开发新的跨语言正则器,例如对齐正则器\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}
\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{DBLP:conf/naacl/Al-ShedivatP19}。但是,零资源翻译的性能通常很不稳定并且明显落后于有监督的翻译方向。为了改善零资源翻译,可以开发新的跨语言正则器,例如对齐正则器\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}
......
......@@ -9067,6 +9067,376 @@ author = {Zhuang Liu and
year = {2016},
}
@inproceedings{DBLP:conf/emnlp/WangTWS19a,
author = {Xing Wang and
Zhaopeng Tu and
Longyue Wang and
Shuming Shi},
title = {Self-Attention with Structural Position Representations},
pages = {1403--1409},
publisher = {Conference on Empirical Methods in Natural Language Processing},
year = {2019}
}
@article{Liu2020LearningTE,
title={Learning to Encode Position for Transformer with Continuous Dynamical Model},
author={Xuanqing Liu and Hsiang-Fu Yu and Inderjit Dhillon and Cho-Jui Hsieh},
journal={ArXiv},
year={2020},
volume={abs/2003.09229}
}
@inproceedings{DBLP:conf/nips/ChenRBD18,
author = {Tian Qi Chen and
Yulia Rubanova and
Jesse Bettencourt and
David Duvenaud},
title = {Neural Ordinary Differential Equations},
publisher = {Conference and Workshop on Neural Information Processing Systems},
pages = {6572--6583},
year = {2018}
}
@inproceedings{DBLP:journals/corr/LuongPM15,
author = {Thang Luong and
Hieu Pham and
Christopher D. Manning},
title = {Effective Approaches to Attention-based Neural Machine Translation},
publisher = {Conference on Empirical Methods in Natural Language Processing},
pages = {1412--1421},
year = {2015}
}
@inproceedings{Yang2018ModelingLF,
author = {Baosong Yang and
Zhaopeng Tu and
Derek F. Wong and
Fandong Meng and
Lidia S. Chao and
Tong Zhang},
title = {Modeling Localness for Self-Attention Networks},
pages = {4449--4458},
publisher = {Annual Meeting of the Association for Computational Linguistics},
year = {2018}
}
@inproceedings{DBLP:conf/aaai/GuoQLXZ20,
author = {Qipeng Guo and
Xipeng Qiu and
Pengfei Liu and
Xiangyang Xue and
Zheng Zhang},
title = {Multi-Scale Self-Attention for Text Classification},
pages = {7847--7854},
publisher = {AAAI Conference on Artificial Intelligence},
year = {2020}
}
@inproceedings{Wu2019PayLA,
author = {Felix Wu and
Angela Fan and
Alexei Baevski and
Yann N. Dauphin and
Michael Auli},
title = {Pay Less Attention with Lightweight and Dynamic Convolutions},
publisher = {International Conference on Learning Representations},
year = {2019},
}
@inproceedings{DBLP:conf/interspeech/GulatiQCPZYHWZW20,
author = {Anmol Gulati and
James Qin and
Chung-Cheng Chiu and
Niki Parmar and
Yu Zhang and
Jiahui Yu and
Wei Han and
Shibo Wang and
Zhengdong Zhang and
Yonghui Wu and
Ruoming Pang},
title = {Conformer: Convolution-augmented Transformer for Speech Recognition},
pages = {5036--5040},
publisher = {International Speech Communication Association},
year = {2020}
}
@inproceedings{DBLP:conf/cvpr/XieGDTH17,
author = {Saining Xie and
Ross B. Girshick and
Piotr Doll{\'{a}}r and
Zhuowen Tu and
Kaiming He},
title = {Aggregated Residual Transformations for Deep Neural Networks},
pages = {5987--5995},
publisher = {IEEE Conference on Computer Vision and Pattern Recognition},
year = {2017}
}
@article{DBLP:journals/corr/abs-1711-02132,
author = {Karim Ahmed and
Nitish Shirish Keskar and
Richard Socher},
title = {Weighted Transformer Network for Machine Translation},
journal = {CoRR},
volume = {abs/1711.02132},
year = {2017}
}
@article{DBLP:journals/corr/abs-2006-10270,
author = {Yang Fan and
Shufang Xie and
Yingce Xia and
Lijun Wu and
Tao Qin and
Xiang-Yang Li and
Tie-Yan Liu},
title = {Multi-branch Attentive Transformer},
journal = {CoRR},
volume = {abs/2006.10270},
year = {2020}
}
@inproceedings{DBLP:conf/emnlp/YanMZ20,
author = {Jianhao Yan and
Fandong Meng and
Jie Zhou},
title = {Multi-Unit Transformers for Neural Machine Translation},
pages = {1047--1059},
publisher = {Conference on Empirical Methods in Natural Language Processing},
year = {2020}
}
@article{李北2019面向神经机器翻译的集成学习方法分析,
title={面向神经机器翻译的集成学习方法分析},
author={李北 and 王强 and 肖桐 and 姜雨帆 and 张哲旸 and 刘继强 and 张俐 and 于清},
journal={中文信息学报},
volume={33},
number={3},
year={2019},
}
@inproceedings{DBLP:conf/iclr/WuLLLH20,
author = {Zhanghao Wu and
Zhijian Liu and
Ji Lin and
Yujun Lin and
Song Han},
title = {Lite Transformer with Long-Short Range Attention},
publisher = {International Conference on Learning Representations},
year = {2020}
}
@inproceedings{DBLP:conf/iclr/DehghaniGVUK19,
author = {Mostafa Dehghani and
Stephan Gouws and
Oriol Vinyals and
Jakob Uszkoreit and
Lukasz Kaiser},
title = {Universal Transformers},
publisher = {International Conference on Learning Representations},
year = {2019}
}
@article{Lan2020ALBERTAL,
title={ALBERT: A Lite BERT for Self-supervised Learning of Language Representations},
author={Zhenzhong Lan and Mingda Chen and Sebastian Goodman and Kevin Gimpel and Piyush Sharma and Radu Soricut},
publisher={International Conference on Learning Representations}
}
@inproceedings{DBLP:conf/naacl/HaoWYWZT19,
author = {Jie Hao and
Xing Wang and
Baosong Yang and
Longyue Wang and
Jinfeng Zhang and
Zhaopeng Tu},
title = {Modeling Recurrence for Transformer},
pages = {1198--1207},
publisher = {Annual Conference of the North American Chapter of the Association for Computational Linguistics},
year = {2019}
}
@inproceedings{DBLP:conf/emnlp/QiuMLYW020,
author = {Jiezhong Qiu and
Hao Ma and
Omer Levy and
Wen-tau Yih and
Sinong Wang and
Jie Tang},
title = {Blockwise Self-Attention for Long Document Understanding},
pages = {2555--2565},
publisher = {Conference on Empirical Methods in Natural Language Processing},
year = {2020}
}
@inproceedings{DBLP:conf/iclr/LiuSPGSKS18,
author = {Peter J. Liu and
Mohammad Saleh and
Etienne Pot and
Ben Goodrich and
Ryan Sepassi and
Lukasz Kaiser and
Noam Shazeer},
title = {Generating Wikipedia by Summarizing Long Sequences},
publisher = {International Conference on Learning Representations},
year = {2018}
}
@article{DBLP:journals/corr/abs-2004-05150,
author = {Iz Beltagy and
Matthew E. Peters and
Arman Cohan},
title = {Longformer: The Long-Document Transformer},
journal = {CoRR},
volume = {abs/2004.05150},
year = {2020}
}
@article{Kitaev2020ReformerTE,
author = {Nikita Kitaev and
Lukasz Kaiser and
Anselm Levskaya},
title = {Reformer: The Efficient Transformer},
journal = {International Conference on Learning Representations},
year = {2020}
}
@article{DBLP:journals/corr/abs-2003-05997,
author = {Aurko Roy and
Mohammad Saffar and
Ashish Vaswani and
David Grangier},
title = {Efficient Content-Based Sparse Attention with Routing Transformers},
journal = {CoRR},
volume = {abs/2003.05997},
year = {2020}
}
@article{Katharopoulos2020TransformersAR,
title={Transformers are RNNs: Fast Autoregressive Transformers with Linear Attention},
author={Angelos Katharopoulos and Apoorv Vyas and Nikolaos Pappas and Franccois Fleuret},
journal={CoRR},
year={2020},
volume={abs/2006.16236}
}
@article{DBLP:journals/corr/abs-2009-14794,
author = {Krzysztof Choromanski and
Valerii Likhosherstov and
David Dohan and
Xingyou Song and
Andreea Gane and
Tam{\'{a}}s Sarl{\'{o}}s and
Peter Hawkins and
Jared Davis and
Afroz Mohiuddin and
Lukasz Kaiser and
David Belanger and
Lucy Colwell and
Adrian Weller},
title = {Rethinking Attention with Performers},
journal = {CoRR},
volume = {abs/2009.14794},
year = {2020}
}
@inproceedings{DBLP:conf/emnlp/HaoWSZT19,
author = {Jie Hao and
Xing Wang and
Shuming Shi and
Jinfeng Zhang and
Zhaopeng Tu},
title = {Multi-Granularity Self-Attention for Neural Machine Translation},
pages = {887--897},
publisher = {Conference on Empirical Methods in Natural Language Processing},
year = {2019}
}
@inproceedings{DBLP:conf/emnlp/Lin0RLS18,
author = {Junyang Lin and
Xu Sun and
Xuancheng Ren and
Muyu Li and
Qi Su},
title = {Learning When to Concentrate or Divert Attention: Self-Adaptive Attention
Temperature for Neural Machine Translation},
pages = {2985--2990},
publisher = {Conference on Empirical Methods in Natural Language Processing},
year = {2018}
}
@article{DBLP:journals/corr/abs-2006-04768,
author = {Sinong Wang and
Belinda Z. Li and
Madian Khabsa and
Han Fang and
Hao Ma},
title = {Linformer: Self-Attention with Linear Complexity},
journal = {CoRR},
volume = {abs/2006.04768},
year = {2020}
}
@inproceedings{DBLP:conf/nips/BergstraBBK11,
author = {James Bergstra and
R{\'{e}}mi Bardenet and
Yoshua Bengio and
Bal{\'{a}}zs K{\'{e}}gl},
title = {Algorithms for Hyper-Parameter Optimization},
publisher = {Advances in Neural Information Processing Systems},
pages = {2546--2554},
year = {2011}
}
@inproceedings{DBLP:conf/lion/HutterHL11,
author = {Frank Hutter and
Holger H. Hoos and
Kevin Leyton-Brown},
title = {Sequential Model-Based Optimization for General Algorithm Configuration},
series = {Lecture Notes in Computer Science},
volume = {6683},
pages = {507--523},
publisher = {Learning and Intelligent Optimization},
year = {2011}
}
@inproceedings{DBLP:conf/icml/BergstraYC13,
author = {James Bergstra and
Daniel Yamins and
David D. Cox},
title = {Making a Science of Model Search: Hyperparameter Optimization in Hundreds
of Dimensions for Vision Architectures},
series = {{JMLR} Workshop and Conference Proceedings},
volume = {28},
pages = {115--123},
publisher = {International Conference on Machine Learning},
year = {2013}
}
@inproceedings{DBLP:conf/iccv/ChenXW019,
author = {Xin Chen and
Lingxi Xie and
Jun Wu and
Qi Tian},
title = {Progressive Differentiable Architecture Search: Bridging the Depth
Gap Between Search and Evaluation},
pages = {1294--1303},
publisher = {IEEE International Conference on Computer Vision},
year = {2019}
}
@inproceedings{DBLP:conf/icml/ChenH20,
author = {Xiangning Chen and
Cho-Jui Hsieh},
title = {Stabilizing Differentiable Architecture Search via Perturbation-based
Regularization},
series = {Proceedings of Machine Learning Research},
volume = {119},
pages = {1554--1565},
publisher = {International Conference on Machine Learning},
year = {2020}
}
%%%%% chapter 15------------------------------------------------------
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
......@@ -10044,7 +10414,7 @@ author = {Zhuang Liu and
author = {Sinno Jialin Pan and
Qiang Yang},
title = {A Survey on Transfer Learning},
journal = {{IEEE} Trans. Knowl. Data Eng.},
journal = {IEEE Transactions on knowledge and data engineering},
volume = {22},
number = {10},
pages = {1345--1359},
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论