Introduction
卷积神经网络在序列建模中不太常见
与循环层相比,卷积为固定大小的上下文创建表示,然而,网络的有效上下文大小可以很容易地通过将多个层堆叠在一起而变得更大
解决方案:
我们提出了一种完全卷积的序列到序列建模架构。 我们的模型配备了门控线性单元 (Dauphin et al., 2016) 和残差连接 (He et al., 2015a)。 我们还在每个解码器层中使用了注意力,并证明每个注意力层只会增加微不足道的开销。
RNN-Seq2Seq
已经提出了各种编码器-解码器架构,它们的主要区别在于条件输入和 RNN 的类型
注意力机制可以改进单个向量很难包含所有文本序列的信息的问题
有注意力的架构 (Bahdanau et al., 2014; Luong et al., 2015) 在每个时间步将 ci 计算为 (z1…,zm) 的加权和。 总和的权重称为注意力分数,并允许网络在生成输出序列时专注于输入序列的不同部分
编码器-解码器模型中循环网络的流行选择是长期短期记忆网络 (LSTM) 和门控循环单元 (GRU)
该机制允许记忆来自先前时间步长的信息,以便对长期依赖关系进行建模。
最近的方法还依赖双向编码器来构建过去和未来上下文的表示
卷积结构
使用卷积神经网络(convolutional neural network, CNN)来代替rnn来计算中间编码器状态z和解码器状态h
Position Embedding
词嵌入:
w
1
,
w
2
,
.
.
.
w
m
w_1,w_2,...w_m
w1,w2,...wm
位置嵌入:
p
1
,
p
2
,
.
.
.
,
p
m
p_1,p_2,...,p_m
p1,p2,...,pm
组合:
w
1
+
p
1
,
w
2
+
p
2
,
.
.
.
,
w
m
+
p
m
w_1+p_1,w_2+p_2,...,w_m+p_m
w1+p1,w2+p2,...,wm+pm
位置嵌入在我们的架构中很有用,因为它们让我们的模型了解它当前正在处理输入或输出中序列的哪个部分
卷积块
例如,以 k=5 堆叠 6 个块会产生 25 个元素的输入字段,即每个输出取决于 25 个输入
注意力机制
和传统attention不同的地方是在计算c的时候,将原始的输入向量e加入进来了。
参考
https://zhuanlan.zhihu.com/p/51952607
https://zhuanlan.zhihu.com/p/26918935
https://blog.csdn.net/u012931582/article/details/83719158
https://blog.csdn.net/qq_38662930/article/details/104376317