传统Rnn有什么问题:
每一个下一步都会用到前面的结果,不独立,不能并行计算,消耗算力大,所以层数较少,不能像卷积那样有很多层。Transformer可以作并行。
Rnn中的注意力机制,即给每个词分配重要性权重,让网络知道哪个重要,哪个不重要。此即是ATTention。
传统的word2vec用词向量表示文本特征,救活了nlp。当训练传统word2vec时,先训练好一个词向量,再对语料库中的文本转换为词向量,传入rnn,输入到词向量的词不会变,但不同的词,在不同语义中可能不一样。
同样一个词在不同句子中意义不同。加入上下文的影响。这是bert的最大优势。
整体结构:
提取特征,提取特点,拿到数据之后,不同数据的关注点是不同的,文本跟图像皆是如此。
对不同的数据找出不同的attention机制。
input: 输入一个词向量,将其转换为编码。
embedding:编码
X是词向量,Q,K,V是编码矩阵,W权重矩阵,即描述一个句子中每个词做了多大贡献。
queries:X*WQ=Q 查询
keys:X*WK=K 被查询
values:X*WV=V 特征值
查X1对其余Xn的关系,使用q1*k1,q1*k2,·······,使用内积,线性无关的话内积就是0,
相关性越大,内积越大。
相关性越大,贡献度越大。