自注意力机制
以上是自注意力机制的基本原理。在知识图谱的三元组中
可以将图中的(i,j,k)当作一组三元组的初始embedding(头,尾,关系)
那么对三元组的初始表示则是使用一个线性变矩阵=*(i,j,k)。
然后对经过一个非线性层获得,计算出的每个并不是在(0~1)之间的,所以还需要对输入的所有通过softmax计算
计算出的就是每个三元组在这一组输入中的注意力值,也可以当作每个三元组的权重。
如何生成头节点的最终embedding(输出)
例如对于实体e1的所有邻居,则是将e1为头节点的所有三元组作为输入。
e1_emb的表示为(*)(所有以e1为头节点),其中为一个非线性变换函数
多头自注意力机制
多头的实际执行就是执行多次注意力机制(每次的参数是不同),每一次注意力机制都会生成一个对应的,这些也是独立的互不干扰的,最后对每个头生成的注意力值取平均则可得到这个三元组对应的注意力值。也就是权重。
输出
多头注意力机制的输出与上面的区别就在于最后要对多头取平均。
即 ei_emb=(*)