前提:
要保证:
例子:
一个人去考试,Q代表要考几场,每场考试有几道题;K表示有几个小姐姐可以来抄答案,每个小姐姐擅长每道题的概率;那么Q·K的结果的意义就是这个人在每场考试中抄每个人答案的概率。V中是每个小姐姐对每个题的答案,让刚才得出的结果再乘V,得出的结果就是这个人在每场考试中抄来的每道题的答案。
具体:
是一个常量,不重要。softmax函数内Q和K的转置相乘目的是为了:计算Q和K的相关性。如上图所示,与 进行点积,物理意义就是计算两者的相关性,整个Q和K相乘,就得出了一个相关性矩阵。softmax的作用就是把所有相乘之后代表相关性的结果的值,映射到0-1之间。
拓展:
在每次Q和K相乘之前,会做一个layer norm,来对K进行归一化,目的就是将所有值归一化的差不多大小,既可以减少计算量,又可以防止某些例外的发生;
为了防止最后的结果都是从V中抄来的结果,会增加一个add & norm的操作,将Q做一个类似residual的操作,将Q add to 最后的结果中。
注意力机制中,key和value一般是相同的,query不同;自注意力机制中,query,key,value一般是相同的。