最近在看一些Event Extraction和Event Detection的论文,看到其中有些论文会用到Attention机制,在阅读Attention相关论文的时候,对于论文中的一些符号表示,钻了一些牛角尖,所幸最后还是理解了
关于Attention机制的论文:Effective Approaches to Attention-based Neural Machine Translation

全局注意力机制(Global Attention)模型如下:

先直接说明模型图中各个变量的含义,再慢慢分析Global Attention机制:

  • hsh_{s}hs​:表示LSTM中s时刻得到的hidden state
  • hth_{t}ht​:表示LSTM得到的目标hidden state
  • at(s)a_{t}(s)at​(s):表示s时刻的hidden state在所有hidden state中所占的权重,at(s)a_{t}(s)at​(s)是一个标量
  • ata_{t}at​:将所有t个时刻的hidden state的权重组合起来,便得到了ata_{t}at​,ata_{t}at​的长度与时间步长相同,即与一句话中的单词的个数相同
  • ct(s)c_{t}(s)ct​(s):将s时刻的hidden state hsh_{s}hs​与其权重at(s)a_{t}(s)at​(s)相乘,便得到s时刻(即第s个单词)的上下文向量ct(s)c_{t}(s)ct​(s)
  • ctc_{t}ct​:将全部单词的上下文向量,求平均值或者求和,便可以得到由输入的单词组成的一句话的句向量

在LSTM模型中,依次输入一句话中的各个单词的词向量,由LSTM的结构可知,每一个时刻s(每输入一个单词)都会得到一个hidden state hsh_{s}hs​,当到达最后一个时刻t时,会得到target hidden state hth_{t}ht​。在之前的做法中,只会用到LSTM最终产生的hth_{t}ht​,而LSTM中间产生的一系列hsh_{s}hs​并不会被用上。这就会产生一些问题:

  • 模型对于一句话中的每个单词都是“一视同仁”的,但当人在读一句话的时候,往往对于某些关键的单词会给予更多的关注。
  • LSTM是长短时记忆网络,其中包含的遗忘门,对于先进入网络的单词,忘记的程度更大,所以该网络更加倾向于记住后输入网络的单词,也就是说得到的向量hth_{t}ht​会过多地关注一句话中结尾的单词

以上问题,可以使用全局注意力机制(Gobal Attention)来解决。

  • Gobal Attention的目的:Gobal Attention的目的是为了在生成上下文向量(也可以认为是句向量)ctc_{t}ct​时将所有的hidden state都考虑进去。Attention机制认为每个单词在一句话中的重要程度是不一样的,通过学习得到一句话中每个单词的权重。
  • 如何衡量每个单词在一句话中的权重呢? 对于第s个单词,它在一句话中的权重,是根据s时刻的hidden state hsh_{s}hs​与hth_{t}ht​计算而得到的。第s个单词的权重记做at(s)a_{t}(s)at​(s)

s时刻的单词的权重计算公式如下,其中hth_{t}ht​表示最终的hidden stste,而hsh_{s}hs​表示s时刻的hidden state:

  • 其中score打分函数有如下三种形式:

    有了上面的基础,我们在重新梳理一下如何通过Global Attention获得每个单词的上下文向量,从而获得句向量:
  1. 将每个单词的词向量依输入LSTM中,s时刻获得hidden state的记为hsh_{s}hs​,最终获得的目标hidden state记为hth_{t}ht​
  2. 使用打分函数score(hth_{t}ht​,hsh_{s}hs​)获得每个时刻的得分
  3. 通过softmax()函数,将所有时刻的得分进行归一化,从而得到各个时刻权重at(s)a_{t}(s)at​(s),每个时刻的权重都是一个标量
  4. 将各个时刻的权重at(s)a_{t}(s)at​(s)与hsh_{s}hs​数乘计算,就得到该时刻添加了Global Attention之后的上下文向量ct(s)c_{t}(s)ct​(s)
  5. 将每个时刻的上下文向量ct(s)c_{t}(s)ct​(s)求均值或者求和之后,就得到整句话的上下文向量ctc_{t}ct​,可以认为ctc_{t}ct​就是这句话的句向量

NLP中的全局注意力机制(Global Attention)相关推荐

  1. 一文读懂——全局注意力机制(global attention)详解与代码实现

    废话不多说,直接先上全局注意力机制的模型结构图. 如何通过Global Attention获得每个单词的上下文向量,从而获得子句向量呢?如下几步: 代码如下所示: x = Embedding(inpu ...

  2. 在RNN模型中引入注意力机制(Attention)

    此前的文章介绍过Seq2seq模型,并将其用于机器翻译.Seq2seq模型的一个问题在于随着输入句子越来越长,更早输入的单词就很大可能会被忘掉.于是,随着输入句子中单词数变多,翻译质量就会很快劣化.改 ...

  3. 【自然语言处理(NLP)】基于注意力机制的中-英机器翻译

    [自然语言处理(NLP)]基于注意力机制的中-英机器翻译 作者简介:在校大学生一枚,华为云享专家,阿里云专家博主,腾云先锋(TDP)成员,云曦智划项目总负责人,全国高等学校计算机教学与产业实践资源建设 ...

  4. 注意力机制(Attention Mechanism)-SENet

    引言 神经网络中的注意力机制(Attention Mechanism)是在计算能力有限的情况下,将计算资源分配给更重要的任务,同时解决信息超载问题的一种资源分配方案.在神经网络学习中,一般而言模型的参 ...

  5. 【深度学习】(8) CNN中的通道注意力机制(SEnet、ECAnet),附Tensorflow完整代码

    各位同学好,今天和大家分享一下attention注意力机制在CNN卷积神经网络中的应用,重点介绍三种注意力机制,及其代码复现. 在我之前的神经网络专栏的文章中也使用到过注意力机制,比如在MobileN ...

  6. 理解卷积神经网络中的自注意力机制

    作者 | Shuchen Du 编译 | ronghuaiyang 转自 | AI公园 导读 计算机视觉中的编解码结构的局限性以及提升方法. 卷积神经网络(CNN)广泛应用于深度学习和计算机视觉算法中 ...

  7. 收藏 | 理解卷积神经网络中的自注意力机制

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:作者丨Shuchen Du.ronghuaiyang(译) ...

  8. 深入理解注意力机制(Attention Mechanism)和Seq2Seq

    学习本部分默认大家对RNN神经网络已经深入理解了,这是基础,同时理解什么是时间序列,尤其RNN的常用展开形式进行画图,这个必须理解了. 这篇文章整理有关注意力机制(Attention Mechanis ...

  9. 注意力机制(Attention Mechanism)-ECANet

    引言 神经网络中的注意力机制(Attention Mechanism)是在计算能力有限的情况下,将计算资源分配给更重要的任务,同时解决信息超载问题的一种资源分配方案.在神经网络学习中,一般而言模型的参 ...

  10. 聊一聊计算机视觉中常用的注意力机制 附Pytorch代码实现

    聊一聊计算机视觉中常用的注意力机制以及Pytorch代码实现 注意力机制(Attention)是深度学习中常用的tricks,可以在模型原有的基础上直接插入,进一步增强你模型的性能.注意力机制起初是作 ...

最新文章

  1. 8080CPU寄存器划分
  2. python学习-25 函数递归
  3. C#: static关键字的作用
  4. 关于变量在循环内声明还是在循环外声明
  5. SharePoint优秀blog文章汇总
  6. mysql 5.6 安装教程
  7. java构建内存池队列_池化技术(线程池、连接池、内存池等)
  8. iPhone iPad 各种控件默认高度
  9. CentOS 6下SSH限制IP和用户登录
  10. vc++图形编程基础
  11. DPlayer开发弹幕后台
  12. Solaris 查看系统信息命令
  13. 搜狗输入法弹出搜狗新闻的解决办法
  14. 康托尔、哥德尔、图灵——永恒的金色对角线
  15. Latex Beamer 入门教程
  16. 运算放大器的环路补偿-关于并联的电阻电容的分析
  17. RDKit | 基于RDKit和SMARTS的化学反应处理
  18. 无法访问您试图使用的功能所在的网络位置 无法找到vcredist.msi的解决办法
  19. 240天,转行程序员终于成为CSDN博客专家
  20. 提交给移动三个wap游戏,终于通过了一个

热门文章

  1. SQL中is not null和!=“ “的区别
  2. 「九省联考 2018」制胡窜 (SAM)(线段树合并)(分类讨论)
  3. 李开复:我要找什么样的人一起创业?
  4. wim工具扫描linux磁盘,WimTool Pro(WIM映像处理工具)
  5. 如何下载微信视频号里的完整视频?
  6. Macbook Pro 自定义 Touchbar 教程,让 Touchbar 顺应你的脾气
  7. 基于Python语言的文件与文件夹管理
  8. 英特服务器的spec整数性能,主流基准测试TPC与SPEC解读
  9. android日记app常用,这款知名极简日记 APP,终于有了 Android 版!
  10. android农历日历,万年历农历日历app