attention的query、key和value的理解
attention是干什么用的?解決什么問題?
我們如果使用傳統的窗口分割數據的方法,那么我們很難讓每個窗口都有全局的信息,實際上每個窗口只有自己的那部分信息其他部分的信息其實這個窗口是沒有的。
為了讓這個點又具有當前窗口的信息也具有全局的信息,這里就要求我們在這里融入其他部分的信息,這就是注意力機制提出的背景驅動。
query和key的理解
可以看到我們是想把其他部分的信息融合到當前這個窗口當中,但是這個融合不可以是簡單的加和,是需要一個權重,這就是我們需要使用query和key的原因。
這哥倆的作用就是生成一個權重的情況,這里想要完全的了解這個東西為什么叫這個東西,我們還得想一下誰起的這個名字的了,也就是谷歌,這個大哥主要是搞搜索的(雖然他現在搜索只是一小部分業務,但是這個東西畢竟是起家的行當嘛)這個例的query其實就是查詢,而key則是被比對的項。
這倆相乘其實得到的是一個向量的點積,這個點積其實反映的是兩個是不是十分相似,而這個相似與否,則可以理解乘是不是相關的問題。
所以這個最終的結果就是我們通過這個乘算之后過softmax得到一個權重,這個權重其實是兩者的cos相似度,之后通過這個cos相似度,當成相關性給原來的數據融入資源。
但是為什么我們看到的都是直接矩陣乘法乘在一起的?
我們先針對單個query進行理解:
其實只是單個query和全部的key(包括這個query本身)求相似度,之后通過這個相似度將value(對應每個key)融入到這個query當中。
然后我們對這個內容進行并行化:
也就得到了softmax(q×k)×v的形式
這個推算的過程之后會補充。
總結
以上是生活随笔為你收集整理的attention的query、key和value的理解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 点云网络的论文理解(七)-Frustum
- 下一篇: 对比学习系列论文CPCforHAR(一)