NLP中的Attention总结
Attention是模拟人脑的注意力机制。人在看到一些东西,往往只关注重要的信息,而忽略其他信息。自然语言处理中的attention是对文本分配注意力权重,Attention的本质就是从关注全部变为关注重点。
1 Attention的原理
Attention的计算过程:
- query和key向量进行相似度计算,得到权重。
- 将得到的权值进行归一化,得到每个key的归一化权重。
- 根据权重,对value进行加权求和。
2 Attention的类型
如上图,按不同的方式,可将attention分为不同类型。
3 attention计算方式
attention通俗来讲是用两个向量(query,key)计算得到一个得分score。从数学角度看,就是两个向量得到一个数值。一般有以下计算方式:
(1)点乘:
(2)余弦相似度:
还有引入学习参数的方式
(3)矩阵相乘:
(4)小网络学习(多层感知机):输入两个向量,输出一个数值
4 attention的使用场景
4.1 长文本任务
如篇章级别的任务,这类型任务输入的信息过多,使用attention捕获关键信息。
4.2 涉及两端相关文本
可能需要对两端内容进行对齐,如机器翻译,翻译时当前词与原文的信息对齐。阅读理解,问题与原文信息的对齐。
4.3 任务只依赖某些特征
某些任务只依赖与部分强特征词。
引用自: