Press enter to see results or esc to cancel.

【Temporal Convolutional Attention-based Network For Sequence Modeling 】

随着深度学习的发展,研究者们认识到了在序列模型的处理之中存在着三种最常用的模型,也就是卷积神经网络(CNN),递归神经网络(RNN)以及Attention Mechanisms(注意力机制)。在处理序列问题里面的Default的选项自然就是选择RNN,但是不得不说RNN也存在着很多无法避免的问题,比如说梯度的消失和爆炸问题就是无法避免的问题。

本文解决方法是将Feed-Forward的方法引入RNN之中,以解决RNN无法处理长距离的依赖的问题。最近的一种处理方法是一种叫做TCNs(Temporal Convolutional Network-Based Models)和Attention机制结合的方法。基础的TCN的网络结构主要是包含了三种不同的结构,分别是Casual Convolution , Dilated Convolution and Residual Block.虽然在时间步$t$的输出是由其之前的一定的数量的Neighbor Member所决定的,但是TCN学不到序列之中的序列关系和以来关系。所以Bai 在2019年提出了TrellisNet这个方法,在不同的序列输入以及不同层级的输入之间建立起了联系以提高Performance.但是这样的操作使得模型整体过于臃肿。而Transformer这个模型通过利用Attention机制在输入和输出之间建立起了全局的依赖关系。所以在本文之中,其建立起来一个具有解释性的模型叫做Temporal Convolutional Attention-based Network(TCAN),一方面其吸收了TCN之中的Dilated Casual Network 机制,另一方面其也吸收了Self-Attention的思想去建立Dependency的关系,模型的结构如下图所示

接下来就是对于模型的讲解。

Method

从一个传统的观点上来看,我们使用了和TCN类似的结构,其中包含了Encoder-Decoder的架构,在模型的开始的阶段,Encoder将输入的序列输入转换成为了一个Continuous Representations 记作是$S_{1:T}^{(0)}$其中的$T$指的是该序列的长度。而$0$指的是第0层也就是第一层Hidden Layer .然后我们应用不同大小的Dilated 卷积核进行卷积操作,在最后的一个Hidden Layer我们的Decoder就可以输出一个Output Sequence.

中间的具体的操作可以分成这四步

  1. 将$s_{1:T}^{(l)}$通过Temporal Attention(TA)
    $$sa_{1:T}^{l} =  TA(s_{1:T}^{(l)})$$
  2. 开始卷积
    $$sc_{1:T}^{l} =  Conv1d(sa_{1:T}^{(l)})$$
    卷积的 Block 可以通过很多层的Stack进行堆叠,如果控制向量长度的话,当然可以简单的在左边进行Padding就可以了
  3. 在得到下一层的Hidden的时候,进行一个残差相加的操作,如上图的b)
    $$sr_{1:T}^{l} =  ER(s_{1:T}^{(l)})$$
  4. 一个完整的TCAN网络之中有L层不同的TCAN块,被称为是Dilated Convolution ,除此之外,我们也使用Dilated Convolution 以确保网络有足够的感受野(Reception Fields)

在上面的第一步之中我们使用到了Temporal Attention这个概念,但是没有细说,其实这个机制大家如果之前也有看我论文的话,应该在Cohen和Yumo Xu的那篇论文之中见到过类似的机制。Temporal Attention和Self-Attention是非常相似的两个概念,只不过是对于Self-Attention来首,其使用了所有的时间步上面的信息,但是事实上我们仅仅是可以处理过去的信息,所以我们在这里在第一步还是和普通的Transformer一样,计算QKV矩阵之后,我们并不是使用最后的Score矩阵,而是截取一个下三角矩阵以模拟获得非全局性信息。大概的流程如下

得到了矩阵之后,通过下面的公式

$$sa_{t}^{(l)} = \sum_{i=0}^{t}Wa_{i}^{(l)}\cdot s_{i}^{(l)}$$

就可以得到最后的输出了。而在模型之中还有一个机制叫做是Enhanced Residual的机制,是一种类似于残差连接的方式。

在将中间变量传入激活函数得到输出的时候,我们将信息的三个部分都Integrate了起来,分别是初始的输入$s_{1:T}^{(l)}$ , Convolved Vectors $sc_{1:T}^{(l)}$以及Enhanced Residual(ER).前两个就不细讲了,对于ER可以看成是对于上一步得到的矩阵的各行都加起来然后和原来的输入进行直积得到的结果,意思大概如下所示

Comments

现在NLP领域的一个非常棘手的问题就是属于长距离的依赖的问题吧,解决的方法当然也是百花齐放,百家争鸣,解决长文本的问题或许是人类处理自然语言的下一个里程碑式的进展吧。而在当前的一个比较好的解决的思路或许就是在把前人的发明进行有新意的混合而达到更好的效果吧,如上文所叙述的方法一样,不过自己对于Dialated 卷积的概念还是有些迷茫,明天可以再补一下。

Reference

Temporal Convolutional Attention-based Network For Sequence Modeling

 

 

 

 

 

 

Comments

Leave a Comment