自注意力机制
功能
-
在输入序列中,为每个位置的元素动态地计算它与序列中其他位置的元素之间的相关性或重要性。
-
自注意力机制能够让序列中的每个元素(如句子中的每个词)与序列中的所有其他元素建立直接联系。
-
自注意力机制通过计算注意力权重,为输入序列中的每个元素动态地分配其他元素的重要性。这些权重反映了每个元素对当前处理元素的影响大小。
-
与传统的循环神经网络(RNN)不同,自注意力机制能够并行处理序列中的所有元素,这使得它在处理长序列时更为高效。
自注意力结构图
输入整个语句的向量到self-attention中,输出对应个数的向量,再将其结果输入到全连接网络,最后输出标签。以上过程可多次重复:
运行原理
这里需要三个向量:Query,Key,Value。
我对这张图的理解:
举一个例子,购物网站推荐系统,q是商品1的查询信息,k是商品1信息,需要用它来进行比较,v是商品的具体信息,wq是对商品信息的查询,wk表示的是想知道商品的特征,wv表示的是取出每件商品的具体信息。如果没有这些矩阵,系统就不知道你关心什么,每个商品有什么特点,合适商品的具体信息。a1,1表示的是商品1和商品1的匹配程度。a1,1*v1表示的是商品1和商品1的匹配程度加权后的值,b1表示的是商品1和其他商品的匹配程度的综合考虑,从而能够更好的得到相似度最高的两件商品。其实q,k,v三者的含义是一样的,主要是他们三者的作用不同,q作用好像是一个基准点,让其他的商品和q来进行相似度匹配,k的作用是为了和q进行相乘,v的作用是主要为了后面的加权求和。
补充: