动机
- 想要获取一组(数量不定)向量中的整体信息,表示为一个单独向量
-
定义
给定一组 values 和一个 query ,attention 是 value 的加权和,权重依赖于 query
权重和可以理解为一种有选择的总结
- 可以将含任意多个向量的集合转换为一个单独的向量
基本框架与流程
流程
- 利用 query 计算每个 value 的 attention score(有多种方法)
- 计算 attention distribution
- 计算 attention output (context)
基本组件
读取器 | 读取原始数据并转换为分布式表示 |
---|---|
存储器 | 存储读取器读取的特征向量/事实序列 |
利用程序 | 利用存储器的内容顺序执行任务,每个时间步聚焦于部分存储器元素的内容 |
计算 attention score
- dot-product
- multiplicative attention
- additive attention
优点
- 解决了 seq2seq 的瓶颈问题
- 有助于缓解梯度消失;相当于建立了 shortcut
- 提供了可解释性:可以观察到模型在关注些什么