Query(查询):它代表了bank在查询其他单词时,想要找到哪些与其含义相符的词义。这个特征用矩阵Wq来表示。 Key(键):它代表了bank自身有哪些词义可以被其他单词查询出来。这个特征用矩阵Wk来表示。 Value(值):它表示了bank根据 Key 键查询出来具体的值。这个特征用矩阵Wv来表示。
通过这三个矩阵,就能洞察出bank与其他单词之间的深层关系。而这三个矩阵也是通过神经网络训练出来的。将词向量与这三个矩阵进行点乘,将得到转换后的三个向量Q/K/V,它们分别代表了bank的查询要求、可被查询的语义特征以及相应的语义信息。
可以这样来简单地理解上面 3 个特征:每个词的含义都是由很多 <Key,Value> 这样的数据对组成,例如river这个词,它的含义可以是 < 词性,名词 >,< 是否与水相关,是 >,< 感情色彩,褒义词 > 类似这样的数据对,而 Query 是这个词想要查询哪些特征,例如bank需要查询 river是否与水有关、是否与金融有关等。因此计算 Attention 的过程可以看作先计算bank的Query和river各个 Key 的相关性,得到river每个 Key 对bank的重要程度,也就是river中对应Value的权重系数,然后对Value 进行加权求和,即得到了最终的Attention数值。
具体公式如下:

所以本质上讲,计算bank与river的Attention,就是对river中的Value值进行加权求和,而Query和Key是用来计算river中对应Value的权重系数。

夜雨聆风