1.通过编码器对序列进行向量化(得到词向量)
2.把词向量输入到解码器,得到结果(生成单词)
编码器包括两个子层
每一个子层的传输过程中都会有一个残差网络+归一化。
接下来看这个图:
Thinking 得到x1,x1是词向量,(通过one-hot得到),位置编码(因为self-attention没有位置)给x1赋予位置属性,
得到了黄色的x1,拥有了位置属性的词向量。
输入到self-attention子层中,做注意力机制(x1,),得到z1(x1与x1,x2拼接起来的句子做了自注意力机制的词向量,表征的仍然是thinking),
也就是说z1拥有了位置特征,句法特征,语义特征的词向量。
然后残差网络(避免梯度消失,w3(w2(w1x+b)),归一化,标准化。得到深粉色的z1。
Feed Forward(前面每一步都在做线性变换,wx+b,线性变换的叠加永远都是线性变换,通过Feed Forward中的Relu做一次非线性变换,这样的空间变换可以无限拟合任何一种状态了),得到r1。(线性变换其实就是空间中缩放和平移,没有涉及向量的根本变化。relu就是加非线性,用非线性拟合空间复杂函数)
这个r1是thingking的新的表征。