好记性不如烂笔头,现在整理一下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。
- 根据是否划分层次结构,分为单层attention、多层attention和多头attention。前面介绍的都是单层attention。多层attention:对文档进行建模,word-level attention学的句子表示,然后进行sentence-level attention学的文档表示。多头attention是谷歌Attention is All You Need论文里提出的multi-head attention,详细请见笔者Transformer文章。
文章图片
[1] https://blog.csdn.net/bvl10101111/article/details/78470716
[2] https://zhuanlan.zhihu.com/p/35739040
推荐阅读
- C语言学习|第十一届蓝桥杯省赛 大学B组 C/C++ 第一场
- paddle|动手从头实现LSTM
- pytorch|使用pytorch从头实现多层LSTM
- 推荐系统论文进阶|CTR预估 论文精读(十一)--Deep Interest Evolution Network(DIEN)
- pytorch|YOLOX 阅读笔记
- 前沿论文|论文精读(Neural Architecture Search without Training)
- 联邦学习|【阅读笔记】Towards Efficient and Privacy-preserving Federated Deep Learning
- OpenCV|OpenCV-Python实战(18)——深度学习简介与入门示例
- 深度学习|深度学习笔记总结
- 《繁凡的深度学习笔记》|一文绝对让你完全弄懂信息熵、相对熵、交叉熵的意义《繁凡的深度学习笔记》第 3 章 分类问题与信息论基础(中)(DL笔记整理