Transformer竞争对手QRNN论文解读更快的RNN( 二 )


池化组件
通常 , 合并是一种无参数的函数 , 可捕获卷积特征中的重要特征 。对于图像 , 通常使用最大池化和平均池化 。但是 , 在序列的情况下 , 我们不能简单地获取特征之间的平均值或最大值 , 它需要有一些循环 。因此 , QRNN论文提出了受传统LSTM单元中元素级门控体系结构启发的池化功能 。本质上 , 它是一个无参数函数 , 它将跨时间步混合隐藏状态 。
最简单的选项是"动态平均池化" , 它仅使用了"忘记门"(因此称为f-pooling):
Transformer竞争对手QRNN论文解读更快的RNN文章插图
⊙是逐元素矩阵乘法 。 它以忘记门为参数 , 几乎等于输出的"移动平均值" 。
另一种选择是使用忘记门以及输出门(所以被称作 , fo-pooling):
Transformer竞争对手QRNN论文解读更快的RNN文章插图
除此以外 , 池化可能另外具有专用的输入门(ifo-pooling):
Transformer竞争对手QRNN论文解读更快的RNN文章插图
正则化在检查了各种递归退出方案之后 , QRNN使用了一种扩展方案 , 称为"区域退出"('zone out) , 它本质上是在每个时间步选择一个随机子集来退出 , 对于这些通道 , 它只是将当前通道值复制到下一次 步骤 , 无需任何修改 。
这等效于将QRNN的"忘记门"通道的子集随机设置为1 , 或在1-F上进行dropout -- QRNN Paper
Transformer竞争对手QRNN论文解读更快的RNN文章插图
来自DenseNet的想法
Transformer竞争对手QRNN论文解读更快的RNN文章插图
DenseNet体系结构建议在每一层与其前面的每一层之间都具有跳过连接 , 这与在后续层上具有跳过连接的惯例相反 。因此 , 对于具有L个层的网络 , 将存在L(L-1)个跳过连接 。这有助于梯度流动和收敛 , 但要考虑二次空间 。
使用QRNN构建seq2seq
Transformer竞争对手QRNN论文解读更快的RNN文章插图
在基于RNN的常规seq2seq模型中 , 我们只需使用编码器的最后一个隐藏状态初始化解码器 , 然后针对解码器序列对其进行进一步修改 。我们无法对循环池层执行此操作 , 因为在这里 , 编码器状态无法为解码器的隐藏状态做出很大贡献 。因此 , 作者提出了一种改进的解码器架构 。
将编码器的最后一个隐藏状态(最后一个令牌的隐藏状态)线性投影(线性层) , 并在应用任何激活之前 , 将其添加到解码器层每个时间步长的卷积输出中(广播 , 因为编码器矢量较小):
Transformer竞争对手QRNN论文解读更快的RNN文章插图
V是应用于最后一个编码器隐藏状态的线性权重 。
注意力机制注意力仅应用于解码器的最后隐藏状态 。
Transformer竞争对手QRNN论文解读更快的RNN文章插图
其中s是编码器的序列长度 , t是解码器的序列长度 , L表示最后一层 。
首先 , 将解码器的未选通的最后一层隐藏状态的点积与最后一层编码器隐藏状态相乘 。这将导致形状矩阵(t , s) 。将Softmax替代s , 并使用该分数获得形状(t , hiddendim)的注意总和kt 。然后 , 将kt与ct一起使用 , 以获取解码器的门控最后一层隐藏状态 。
性能测试
Transformer竞争对手QRNN论文解读更快的RNN文章插图
【Transformer竞争对手QRNN论文解读更快的RNN】与LSTM架构相比 , QRNN可以达到相当的准确度 , 在某些情况下甚至比LSTM架构略胜一筹 , 并且运算速度提高了17倍 。


推荐阅读