seq2seq attention时序
时间: 2023-08-02 12:12:04 浏览: 122
引用[1]: Seq2seq,顾名思义,一个序列到另一个序列的转换。它是一种Encoder-Decoder协同训练的端到端网络。传统Seq2seq的Encoder以RNN为基础单元,把输入序列整合为一个content向量;Decoder同样以RNN为基础单元,把content向量拆解为输出序列。显然,content向量决定了Decoder可知的信息量,进而决定了输出序列的质量。由于RNN的时序串行结构,Encoder更关注位于输入序列末尾的元素,使得content向量“遗忘”了位于输入序列前端的元素。反之,如果把RNN的所有隐层输出一同送入Decoder,又显得过于臃肿(计算量大)。如今我们常把Seq2seq和Attention联系在一起,也正是因为Attention帮助Seq2seq解决了上述问题。[1]
引用[3]:加入Attention后,content向量在任意时刻是变化的。那么如何计算第 i 时刻content向量? 先计算Decoder的RNN隐层状态 H i − 1 H_{i-1} Hi−1 和Encoder中所有RNN隐层状态 h 1 , h 2 , . . . , h j {h_1, h_2, ..., h_j} h1,h2,...,hj 的Attention得分;Attention得分是第 i i i 时刻的输出单词 y i y_i yi 与所有输入单词 x 1 , x 2 , . . . , x j {x_1, x_2, ..., x_j} x1,x2,...,xj 的对齐可能性;再以Attention得分为权重,对所有 h 1 , h 2 , . . . , h j {h_1, h_2, ..., h_j} h1,h2,...,hj 加权平均,得到第 i i i 时刻的content向量。[3]
问题: seq2seq attention时序
回答: 在Seq2seq中引入Attention后,content向量在任意时刻是变化的。计算第i时刻的content向量的过程是先计算Decoder的RNN隐层状态和Encoder中所有RNN隐层状态的Attention得分,Attention得分是第i时刻的输出单词与所有输入单词的对齐可能性;然后以Attention得分为权重,对所有Encoder中的隐层状态进行加权平均,得到第i时刻的content向量。[3]
阅读全文