循环神经网络
RNN,擅长处理序列信息,常见结构有N-1,1-N,N-N。
但是我们更希望输入N个能够得到M个输出,比如一般翻译任务,输入和输出长度是不一样的。
“Sequence-to-Sequence”
结构:encoder(RNN网络),decoder(RNN网络),状态向量
encoder:负责将输入信息进行编码得到一个固定大小的向量——状态向量
decoder:解码状态向量得到输出
处理长序列比较健忘,需要更快精度更高的模型
注意力机制
注意力机制目标:从大量信息中选择出更有用的信息
核心思想:公式
Q\K\V:输入X(词向量)经过线性变换得到的(提升模型的拟合能力)
W:通过学习得到的矩阵
Q:要查询的信息;K:正在被查询的信息;V:查询得到的值
(Q和K越相似,查询得到的值越是想要查询的信息)
向量点乘越大,两个向量之间的相似度越高
Q、K的每一行点乘(每一行的相关性)
dk:K的维度,除以根号dk可以让梯度保持稳定
softmax函数:对结果进行归一化(所有元素的和为1)——权重矩阵
用这个权重矩阵和内容V相乘进行加权
参考: