自然语言处理中的Attention机制
Attention机制的理解
Attention机制也就是注意力机制,在自然语言处理中,就是对于一个语言序列的不同的部分给予不同的注意力,在数学上一般表现为权重,也就是对一个语言序列的各个元素加权。
对Attention机制给一个通用的定义:给定一组向量集合values,以及一个向量query,attention机制是一种根据该query计算values的加权求和的机制。这个定义来源于cs224n。
所谓attention就是这个value集和中的每个向量的权值的大小,attention机制就是用一种方式来计算出这个权值。
seq2seq中Attention机制的运用
attention在seq2seq模型中的计算方法大致如下:
- 将文本信息输入encoder模型中,每一步均会产生一个hidden state:
- 将encoding最后一个hidden state作为decoder中hidden state的初始值,输入到decoder中。
- 在decoder中每一个timestep均会产生一个hidden state:
- decoder的上一个timestep产生的hidden state:,将与encoder中的每个hidden state:分别做点积,得到的标量叫做encoder中的每个hidden state的Attention score。
- 然后对Attention score做softmax得到一个概率分布叫做Attention distribution 。
- 根据Attention distribution对encoder中的每个hidden state加权平均得到context vector。
- 然后将context vector输入decoder最后输出预测的词。
上图中大概展示了attention机制中是如何计算出attention score 。
上图展示了如何计算Attention distribution:
。
上图展示了如何计算attention output,也就是context vector:
常见的几种Attention计算方式
- soft attention, global attention
- hard attention
- local attention
soft attention也就是global attention,soft attention和hard attention相对应,global attention和local attention相对应。soft attention在求出attention distribution之后将概率分布和encoder的hidden state相乘求和,也就是求加权平均。hard attention就是将attention distribution中概率最大的一项置为一,其余置为0。也就是将所有的attention集中在概率最大的一个hidden state,其他的直接忽略。local attention是soft和hard的结合体,先求hard attention,找到attention score最高的那个hidden state,然后以这个为中心,选取他周围的几个做soft attention。
如何改变Attention计算方式
有几个方向重新设计Attention:
- 改变Attention score/distribution的计算方式
- 改变加权平均hidden state的计算方式
上面介绍的soft attention/global attention、hard attention、local attention就是在改变加权平均hidden state的计算方式。通过改变计算Attention score的计算方式,也可以设计出很多新的attention机制。例如对将点乘改为concat、改为线性组合、加入激励函数等。
同样可以改变计算Attention distribution的计算方式,例如直接对Attention score归一化等:
自然语言处理中的Attention机制相关推荐
- 自然语言处理中的Attention机制总结
在面试的过程中被问到了attention,原来虽然其实已经实际用过attention了,也知道个大概原理是加权求和,但是对于加权的具体方法以及权值得分的计算并不是很清晰,面试答的一般,正好最近实习的地 ...
- 自然语言处理中的Attention Model:是什么以及为什么[一]
转载自 自然语言处理中的Attention Model:是什么以及为什么[一] 自然语言处理中的Attention Model:是什么以及为什么[一] 1.前言 要是关注深度学习在自然语言处理方面的 ...
- [转]自然语言处理中的Attention Model:是什么及为什么
自然语言处理中的Attention Model:是什么及为什么 https://blog.csdn.net/malefactor/article/details/50550211 /* 版权声明:可以 ...
- 自然语言处理中的Attention Model原理介绍
原文作者:张俊林 原文地址:自然语言处理中的Attention Model:是什么及为什么 版权声明:转载时请附上原文作者和地址 要是关注深度学习在自然语言处理方面的研究进展,我相信你一定听说过Att ...
- (zhuan) 自然语言处理中的Attention Model:是什么及为什么
自然语言处理中的Attention Model:是什么及为什么 2017-07-13 张俊林 待字闺中 要是关注深度学习在自然语言处理方面的研究进展,我相信你一定听说过Attention Model( ...
- 自然语言处理中的Attention Model:是什么以及为什么[二]
转载自 自然语言处理中的Attention Model:是什么以及为什么[二] 自然语言处理中的Attention Model:是什么以及为什么[二] 1.Attention Model 图一见下: ...
- 如何理解自然语言处理中的注意力机制? | 技术头条
作者 | yuquanle 责编 | 郭芮 你的颜值及格没?人工智能测试? https://edu.csdn.net/topic/ai30?utm_source=csdn_bw 近些年来,注意力机制一 ...
- 深度学习方法(九):自然语言处理中的Attention Model注意力模型
欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.NET/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术感兴趣的同学加入. 上一篇博文深度学习方法(八):Enc ...
- (转载)自然语言处理中的Attention Model:是什么及为什么
转载说明来源:http://blog.csdn.net/malefactor/article/details/50550211 author: 张俊林 原文写得非常好! 原文: 要是关注深度学习在自然 ...
- 自然语言处理中的Attention Model:是什么及为什么
/* 版权声明:可以任意转载,转载时请标明文章原始出处和作者信息 .*/ author: 张俊林 (想更系统地学习深度学习知识?请参考:深度学习枕边书) 要是关注深度学习在自然语言处理方面的研究进展, ...
最新文章
- asp.net中显示DataGrid控件列序号的几种方法
- 关于学习Python的一点学习总结(38)
- Gut:人体最初的微生物起源与生殖健康
- arcgis 10.0中的server报错说工作站服务没有打开
- MyBatis源码- SqlSession门面模式 selectList 源码解析
- php和java之间rsa加密互通
- Xshell操控kali-linux虚拟机
- webkit如何实现JS DOM binding—基于V8分析
- 购物车的实现(cookie、session)
- css中position的两种定位(absolute、relative)
- [Java网络编程基础]UDP发送和接收数据
- redis源码剖析(十四)—— dump.rdb文件分析工具
- iOS之基于FreeStreamer的简单音乐播放器(模仿QQ音乐)
- 【动态规划刷题笔记】线性dp:合唱队形(最长递增子序列的变体)
- Layer单选框非空校验注意
- Hownet在NLP领域内是什么样的地位?
- 《领导力与沟通艺术》
- 什么是 IT 运营管理 (ITOM)
- 比最快的超级计算机快一百万亿倍!中国科学家实现“量子计算优越性”里程碑
- 1080p60Hz需要传多少数据,怎么计算显示器带宽(一)【华光昱能知识与您分享】