task 02,attention和seq2seq
RNN
假设序列输入是一个句子,这个句子可以由
n
n
n个词表示:
s
e
n
t
e
n
c
e
=
w
1
,
w
2
,
.
.
.
,
w
n
sentence = {w_1, w_2,...,w_n}
sentence=w1,w2,...,wn。
RNN首先将句子中的每一个词映射成为一个向量得到一个向量序列:
X
=
x
1
,
x
2
,
.
.
.
,
x
n
X = {x_1, x_2,...,x_n}
X=x1,x2,...,xn,每个单词映射得到的向量通常又叫做:word embedding。
然后在处理第 t ∈ [ 1 , n ] t \in [1,n] t∈[1,n]个时间步的序列输入 x t x_t xt时,RNN网络的输入和输出可以表示为: h t = R N N ( x t , h t − 1 ) h_{t} = RNN(x_t, h_{t-1}) ht=RNN(xt,ht−1)
输入:RNN在时间步
t
t
t的输入之一为单词
w
t
w_t
wt经过映射得到的向量
x
t
x_t
xt。
输入:RNN另一个输入为上一个时间步
t
−
1
t-1
t−1得到的hidden state向量
h
t
−
1
h_{t-1}
ht−1,同样是一个向量。
输出:RNN在时间步
t
t
t的输出为
h
t
h_t
ht hidden state向量。编码器逐步得到hidden state并传输最后一个hidden state给解码器。接着,结合编码器处理输入序列,一起来看下解码器如何一步步得到输出序列的l。与编码器类似,解码器在每个时间步也会得到 hidden state(隐藏层状态),而且也需要把 hidden state(隐藏层状态)从一个时间步传递到下一个时间步。
seq2
seq2seq模型由编码器(Encoder)和解码器(Decoder)组成。绿色的编码器会处理输入序列中的每个元素并获得输入信息,这些信息会被转换成为一个黄色的向量(称为context向量)。当我们处理完整个输入序列后,编码器把 context向量 发送给紫色的解码器,解码器通过context向量中的信息,逐个元素输出新的序列。
seq2seq模型中的编码器和解码器一般采用的是循环神经网络RNN(Transformer模型还没出现的过去时代)。编码器将输入的法语单词序列编码成context向量(在绿色encoder和紫色decoder中间出现),然后解码器根据context向量解码出英语单词序列。
attention
attention可以简单理解为:一种有效的加权求和技术,其艺术在于如何获得权重。需要注意的是:注意力模型不是无意识地把输出的第一个单词对应到输入的第一个单词,它是在训练阶段学习到如何对两种语言的单词进行对应。
。。。。。