https://www.toutiao.com/a6691803113575154190/

本文需要读者对诸如 LSTM 和 GRU(包括 seq2seq 编码器 - 解码器架构)之类的递归神经网络有一定的基础。

众所周知,通用 NLP 的一大障碍是不同的任务(例如文本分类,序列标记和文本生成)需要不同的序列结构。 解决这个问题的一种方法是将这些不同的任务看作是问答形式的问题。比如,文本分类问题可以视为询问模型某段文本表达的情绪是什么,答案可以是“积极”,“消极”或“中立”之一。

论文《有问必答:用于自然语言处理的动态记忆网络》(Ask Me Anything: Dynamic Memory Networks for Natural Language Processing)介绍了一种用于问答形式问题的新型模块化结构。

对于复杂的问答式问题而言,LSTM 和 GRU 的记忆组件可能成为瓶颈。仅一次前馈就想将记忆组件中的所有相关信息积聚起来是非常困难的,因此,该论文背后的关键思想是允许模型根据需要任意访问数据。

尽管乍看起来,这一架构非常复杂,但是它可以分解为许多简单的组件。

模 型

语义记忆模块

语义记忆模块指的是词嵌入(词向量表示),例如 Glove 向量,即输入文本在被传递到输入模块之前被转换成的向量。

输入模块

输入模块即指标准的 GRU(或 BiGRU),每个句子的最后的隐状态是明确可访问的。

问题模块

问题模块也是标准的 GRU,其中待解答的问题作为输入项,并且最后的隐状态是可访问的。

情景记忆模块

这一模块可让输入数据进行多次前馈。在每次前馈时,输入模块中的句子嵌入表示(sentence embedding)作为输入传递到情景记忆模块中的 GRU。 此时,每个句子嵌入表示都会被赋予权重,权重与其被询问的问题的相关性相对应。

对于不同的前馈,句嵌入表示会被赋予不同的权重。 比如,在下面的例子中:

由于句子(1)与问题没有直接关系,因此可能不会在第一次被赋予高权重。 然而,在第一次前馈时,模型发现足球与约翰相关连,因此在第二次前馈时,句子(1)被赋予了更高权重。

在第一次前馈(或第一个“episode”)中,问题嵌入表示(question embedding)'q’被用于计算来自输入模块的句子嵌入表示(sentence embedding)的注意力分数。然后,将句子 sᵢ的注意力得分输入 softmax 层(使得注意力得分总和为 1)或单个 sigmoid 单元来获得 gᵢ。gᵢ是赋予句子 sᵢ的权重,并作为在 timestep i 中 GRU 的输出项的全局门 (global gate)。

timestep i 和 episode t 的隐状态计算如下:

当 g = 0 时,直接复制隐状态:

论文中用 mᵗ来表示 GRU 第 t 个 episode 最后的隐状态,可被视为在第 t 个 episode 中发现的事实聚集。 从第二个 episode 开始,mᵗ被用于计算第 t+1 个 episode 中句子嵌入表示以及问题嵌入表示 q 的注意力分数。

计算过程如下:

论文采用了许多简单的度量方法来计算 sᵢ和 q 以及 sᵢ和 mᵗ-1 之间的相似性,即元素相乘法和绝对值。然后将连接的结果输入一个 2 层的神经网络来计算 sᵢ的注意力得分。 对于第一个 episode,m⁰被替换为 q。

episode 的数量可以是固定的、预定义的数字,也可以由网络本身确定。在后一种情况下,为输入附加一项特殊的前馈结束表示(end-of-passes representation)。如果门函数(gate function)选择该向量,则停止迭代。

回答模块

回答模块由解码器 GRU 组成。 在每个 timestep,之前的输出将与问题嵌入表示一同作为输入项输入该模块。

然后使用词汇表上的标准 softmax 生成输出。

解码器通过 m 个向量的一个函数(来自情景记忆模块的 GRU 计算的最后隐藏状态)进行初始化。

情感分析应用

该论文发表时,其模型取得了当时情绪分析领域的最先进结果。

例如,在下面示例中,模型会关注所有的形容词,在仅允许 1 次前馈时,模型会产生不正确的预测。 然而,当允许 2 次前馈时,该模型在第二次前馈时会对积极的形容词倾注非常高的注意力,并产生正确的预测。

其它数据集的表现

替换模块

模块化的一个重要好处是,可以在不修改任何其他模块的情况下将一个模块替换为另一个模块,只要替换模块具备正确的接口。

论文《用于视觉和文本问答的动态记忆网络》展示了动态记忆网络在基于图像回答问题中的作用。

输入模块被另一模块替换,后者基于 CNN 的网络从图像中提取特征向量。然后提取的特征向量会像以前一样输入到事件记忆模块。

阅读原文:

https://towardsdatascience.com/a-step-towards-general-nlp-with-dynamic-memory-networks-2a888376ce8f

动态记忆网络:向通用 NLP 更近一步相关推荐

  1. 百度推出自动驾驶系统Apollo2.0, 距商业化“更近一步”!

    https://www.toutiao.com/a6669370807363305996/ "2018百度世界大会(美国场)"1月8日在美国西部城市拉斯维加斯举行.大会现场,百度公 ...

  2. OpenAI 发布 GPT-4 ,功能炸裂!网友:真人工智能更近一步!

    编辑:金磊 梦晨 转自:量子位 | 公众号 QbitAI 一觉醒来,万众期待的GPT-4,它来了! OpenAI老板Sam Altman直接开门见山地介绍说: 这是我们迄今为止功能最强大的模型! 有多 ...

  3. 统信uos系统考试题_离Windows更近一步!微信Linux原生版上线:国产统信UOS系统已适配...

    就在本月11号,国产操作系统-统信 UOS发布了专业版 V20(1030),功能更强大,同时性能和安全性均有所提升. 而距离这个好消息过去没多久,统信软件官方再次发布了一个好消息: 那就是微信桌面客户 ...

  4. 神州数码云战略加速,百亿“小目标”更近一步

    正处于云及数字化业务高速转型期的神州数码,迎来了2019年的快速发展,这是所有神州数码人共同努力的结果. "2019年,神州数码所有销售人员都已经或多或少承担了云相关的业绩指标.2020年, ...

  5. 张亚勤:深度学习更近一步,如何突破香农、冯诺依曼和摩尔瓶颈?

    来源:机器之心 本文约3100字,建议阅读6分钟 本文为你分享张亚勤在2020 CEO 年会上演讲<未来科技趋势展望>. 近日,在联想创投 2020 CEO 年会上,清华大学讲席教授.智能 ...

  6. 用身体给可穿戴设备充电,网友:离人类被当作电池更近一步!

    丰色 发自 凹非寺 量子位 报道 | 公众号 QbitAI 可穿戴设备越来越多,充电也越来越麻烦. 有没有好的解决办法呢? 或许,你看过黑客帝国-- 机智的你,一拍脑袋:用人体? Emmmm,方向差不 ...

  7. 离人类更近一步!DeepMind最新Nature论文:AI会“回忆”,掌握调取记忆新姿势

    十三 发自 凹非寺  量子位 报道 | 公众号 QbitAI 每年春节,只要在饭桌上,七大姑八大姨曾对你"殷切关怀"的情景便会历历在目. 对人类来说,记住一些东西并能回忆起来,是件 ...

  8. vim循环下表复制_Vim求生手册,让你离“Vim党”更近一步!

    关注并置顶[柠檬班]的小哥哥小姐姐 猪年行大运! Vim是从vi发展出来的一个文本编辑器. 其代码补完.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用. 和Emacs并列成为类Unix系 ...

  9. 做到这几点,让你离高级程序员更近一步!

    程序员行业中有做的非常出色的,也有非常平庸的.那么差距是怎么产生的呢?而我们如何去变得更优秀呢,我觉得最少要做到以下几点. 扎实的基础. 数据结构.离散数学.编译原理,这些是所有计算机科学的基础,如果 ...

最新文章

  1. LabVIEW目标测量方法(基础篇—12)
  2. POJ1698 最大流或者匈牙利
  3. ABAP实例:一个现金流量表的代码
  4. if var matlab,matlab中if 语句后面的判别式不能是算术表达式?或者说变量?
  5. java迷宫队列实现_Creator 迷宫生成: DFS 与 BFS 算法实现
  6. django的orm指定字段名,表名 verbose_name_plural
  7. TensorFlow---(1)开源软件库TensorFlow最全教程和项目列表
  8. java在线支付---06,07,08_在线支付_编写将数据提交给易宝支付的JSP页面,集成和测试向易宝发送支付请求,实现浏览器自动向易宝发送支付请求
  9. 开发一个Java项目的完整流程(附2600套Java项目源码+视频)
  10. MIT人工智能实验室:如何做研究
  11. 医学计算机应用基础实验报告word,word的操作——实验报告
  12. 虚拟机无法连接虚拟设备sata0:1
  13. Day 32 - 透过手机呼叫 Amazon API Gateway 上传图片到 S3
  14. 阿里最全面试116题整理
  15. Android开源经典项目
  16. YOLOV5的数据处理 增强技术
  17. 6410同时支持colorkey和aphablend
  18. HAL库 output level 和 pull up/ pull down 的区别
  19. 使用StarUml画数据库ER图,并使用DDL生成SQL代码
  20. 万物皆可NFT,UTON NFT正式上线内测

热门文章

  1. 在求向量组的极大线性无关组时,为什么要将向量竖着放,然后对所构成的矩阵进行初等行变换?转
  2. 黄萱菁:自然语言处理中的可理解分析
  3. java线程模拟生产者消费者问题
  4. 独家 | 几个Jupyter笔记本的使用技巧
  5. 独家 | 请停止使用浏览器过程中的不安全行为(附链接)
  6. 图挖掘与多关系学习:工具与应用,亚马逊与CMU-WWW2021教程(附ppt)
  7. Attention!注意力机制模型最新综述(附下载)
  8. 报名 | 《大数据科学与应用系列讲座》全新上线!
  9. 福利 | NVIDIA英伟达免费直播课:带你选择、搭建AI服务器!
  10. 关于TensorFlow,你应该了解这9件事(附代码链接)