好记性不如烂笔头,现在整理一下attention model的各种类型。
什么是attention
一句话来说,attention是一个加权求和,重点是如何计算权重。我们有一个query向量(包含比较多信息的全局向量),一段key向量,利用query对所有key进行加权求和。
背景
在nlp领域,首先将attention用于机器翻译,显然,在进行翻译的时候,会关注不同的原文信息。
具体来说,在机器翻译任务中,query可以定义成decoder中某一步的hidden state,key是encoder中每一步的hidden state,我们用每一个query对所有key都做一个对齐,decoder每一步都会得到一个不一样的对齐向量。
Attention的多种形式
- 根据attention的计算区域,可以分为soft attention, hard attention 和 local attention。 Soft attention是比较常见的,也就是我们上面提到的对所有key进行加权求和。而hard attention是直接精确定位到某个key,其他key都忽略。Local attention是两者的折中,通过hard模式定位到某个地方,以此为中心得到一个区域,在该区域内用soft模式。
- 根据是否有外部信息,可以分为general attention和self attention。General attention利用了外部信息,即query和key不同。Self attention只使用了内部信息,即query=key=value。<