transformer和conformer原理,Q K V矩阵的作用

尤其是transformer这一篇讲解的非常好和清晰。

Transformer模型详解(图解最完整版)https://zhuanlan.zhihu.com/p/338817680

Conformer: 卷积增强的Transformer https://zhuanlan.zhihu.com/p/319881884

 

自注意力(我查我自己):我们想知道句子中某个词在整个句子中的分量(或者相关文本),怎么设计?句子本身乘以三个矩阵得到Q,K,V,每个词去查整个句子。

交叉注意力(查别人):transformer模型的decoder中,由decoder的输入经过变换作为query,由encoder的输出作为key和value(数据库)。value和query来自不同的地方,就是交叉注意力。可以看到key和value一定是代表着同一个东西。即:[Q,(K,V)]。如果用encoder的输出做value,用decoder的输入做key和query 那就完完全全不make sense了。

链接:https://www.zhihu.com/question/325839123/answer/2718310467

 

attention过程中QKV三个矩阵的理解https://blog.csdn.net/zwqjoy/article/details/120285123

Q:如果每个input只有一个相应的q,那么q1和q2之间做乘法求取了x1和x2的关系之后,如果x1找x2和x2找x1有区别怎么办?

K:增加一个K矩阵:q你可以理解为代表自己用的,用q去和别的输入找关系;k理解为给别人用的,专门对付来跟你找关系的输入。

V大概等于又对X加了一层可以学习的参数.

 

Q和K来源解释:点乘也就是xx^T,其可以表征在本空间内的相似度。但通常原空间的相似度是不够的,为了使得模型有更强的表征能力,我们需要其在其他空间映射的相似度,这一点可以参考核函数的设计思想。这时一个最标准的做法就是xWx^T(参考马氏距离)。如果对其进行拆解就是xW1(xW2)^T,可以看到此时kq已经有所不同了https://www.zhihu.com/question/319339652/answer/1617993669

W1,W2如果保持相同,那么这个距离是对称自反的,也就是d(x1,x2)=d(x2,x1)。但是在attention中,这种对称自反其实是不必要的,想象一下“我是一个男孩”这句话,男孩对修饰我的重要性应该要高于我修饰男孩的重要性。
 

 

比如我要搜索《活着》这篇小说,Q:我输入的搜索词;K:能够代表《活着》这篇文章的一些信息;V:通过Q和K计算后,V用于尽量还原《活着》这篇文章的内容。

假设我们想查一篇文章,我们不会直接把文章的内容打上去,而是会在搜索框输入该文章的关键字,如果我们搜不到,我们往往会再换一个关键字,直到搜到为止,那么可以让我们搜到的关键字就是最适合查找目标文章的关键字。这个最适合查找目标文章的关键字就是Q

搜索引擎为了节省资源加快对比速度,提前把库里面的文章进行了处理提取了关键信息,关键信息有很多,那么哪个关键信息能够使得搜索命中率高,哪个就是最适合接收查找的关键信息,这个最适合接收查找的关键信息就是K。 

使用Q和K计算了相似度之后得到score,这就是相似度评分,之后有了相似度评分,就可以把内容V加权回去了。

K和Q使用了不同的W_k, W_q来计算,可以理解为是在不同空间上的投影。正因为有了这种不同空间的投影,增加了表达能力,这样计算得到的attention score矩阵的泛化能力更高。

posted @ 2023-06-17 11:23  wieneralan  阅读(180)  评论(0编辑  收藏  举报