目录
一、回顾
1.1 理解KQV
举一个简单的例子:假设我想吃中餐。
餐馆有菜:牛排(惠林顿、西冷、战斧)、寿司(三文鱼、鳗鱼、吞拿鱼)、火锅(毛肚、涮肉、鸭血)。
· Query(Q):可理解为需求。在此例中,Q=“我想要吃中餐”(我想找什么?)。
· Key(K):关键词/代表性特征。在此例中,K为菜系,K1=“牛排”,K2=“寿司”,K3=“火锅”(每个菜系的名称是什么?)。
· Value(V):信息的实际内容。在此例中,V为菜系里包含的菜名,V1=“惠林顿、西冷、战斧”,V2=“三文鱼、鳗鱼、吞拿鱼”,V3=“毛肚、涮肉、鸭血”。
寻找我想吃的菜(注意力机制)的过程:
1、匹配(Q和K的相似度):
Q和K1完全不匹配,零分;Q和K2有一点点匹配,低分;Q和K3匹配度很高,高分。
2、加权(关注重要内容):
根据匹配分数,火锅菜系里的菜会被赋予高权重,其它两种菜系的内容则被忽略。
3、结果(输出Value):
最终餐馆忽略了另两种菜系的内容,给我上了毛肚、涮肉和鸭血,我如愿以偿吃到了火锅。
1.2 实现原理
NLP学习记录八简单讲述了注意力机制的实现原理与过程,其整体框架如下图所示:
简单而言,其实就是先让输入的查询值Q和已有分类的键K逐一比较,通过相似程度确定已有分类的值V在输出中占有的注意力权重,最终估计器输出就是所有值的加权和。
二、何为注意力分数?
在NLP学习记录八中,我们使用了softmax函数和高斯核来计算注意力权重:
而参与softmax归一化的值,则可称之为注意力分数:
选择不同的注意力评分函数会导致不同的注意力汇聚操作,接下来介绍两种流行的评分函数。