记忆法有几种,动态记忆网络:向通用 NLP 更近一步

极简大道 极简大道 2022-09-18 记忆方法 阅读: 172
摘要: 本文需要读者对诸如 LSTM 和 GRU(包括 seq2seq 编码器 - 解码器架构)之类的递归神经网络有一定的基础。众所周知,通用 NLP 的一大障碍是不同的任务(例如文本分类,序列标记和文本生成)需要不同的序列结构。 解决这个问题的一种方法是将这些不同的任务看作是问答形式的问题。比如,文本分类问题可以视为询问模型某段文本表达的情绪是什么,答案可以是“积极”,“消极”或“中立”之一。

本文需要读者对诸如 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

其他相关

特殊记忆法,如何让孩子高效地“看世界”?分享有效便捷的方式,建议家长收藏

作者: 极简大道 时间:2022-10-15 阅读: 152
想让孩子看世界:旅行、参观文化馆、看影片、解说,不如看书便捷“世界那么大,我想去看看”这些话在网络上十分盛行,但是真正做到的又有几个呢?...

五种记忆方法,新知 - 旧城焕新生,居住更美好-让代码读懂生活在城市空间的你

作者: 极简大道 时间:2022-10-15 阅读: 189
来源:交汇点新闻客户端交汇点讯 城市建筑,经受时间洗礼,印刻文化流变;霓虹都市,烟雨街巷,不同地域展现不同城市肌理。这些,都是人、城和自然共筑的珍贵空间。城市化进程促进新旧交迭,但把握不好速度和传承也会破坏原有的和谐与文化。近日召开的“驱动未来——南京市中小学人工智能专题研讨会”和首届全国大学生国土空间规划设计竞赛现场,东南大学建筑学院两位教授接受《科技周刊》记者专访,聚焦城市更新与建筑设计话题:如何让旧城焕发新生?如何让居住更加美好?与城市相处已久的人们,如何用多种科技化手段传承有温度的记忆?...

记忆宫殿6000单词,利用制作动画图片来轻松记忆《道德经》

作者: 极简大道 时间:2022-10-15 阅读: 218
利用制作动画图片来轻松记忆《道德经》《道德经》作者:老子对于初学《道德经》的读者来说,即使了解文言文本身的含义,也会对于记忆原文来说有一定的难度,当然这也包括我自己。毕竟我们要去记忆我们不太熟悉的古代文字语言体系。所以最近我突发奇想尝试用数字定桩法去记忆每一章节的标题,用联想制作动画的方法去记忆内容。记忆效果还是比较不错的,如下...

过目不忘的快速记忆法,万字长文概述NLP中的深度学习技术之循环神经网络

作者: 极简大道 时间:2022-09-18 阅读: 239
循环神经网络(RNN)的思路是处理序列信息。「循环」表示 RNN 模型对序列中的每一个实例都执行同样的任务,从而使输出依赖于之前的计算和结果。通常,RNN 通过将 token 挨个输入到循环单元中,来生成表示序列的固定大小向量。一定程度上,RNN 对之前的计算有「记忆」,并在当前的处理中使用对之前的记忆。该模板天然适合很多 NLP 任务,如语言建模、机器翻译、语音识别、图像字幕生成。因此近年来,RNN 在 NLP 任务中逐渐流行。...

世界上最高效的记忆方法,混沌神经网络动态记忆属于确定性动力学运动

作者: 极简大道 时间:2022-09-18 阅读: 199
当神经网络实际应用中,网络输入发生较大变异时,应用网络的固有容错能力往往感到不足,经常会发生失忆现象。混沌神经网络动态记忆属于确定性动力学运动,记忆发生在混沌吸引子的轨迹上,通过不断地运动(回忆过程)一一联想到记忆模式,特别对于那些状态空间分布的较接近或者发生部分重叠的记忆模式,混沌神经网络总能通过动态联想记忆加以重现和辨识,而不发生混淆,这是混沌神经网络所特有的性能,它将大大改善Hopfield神经网络的记忆能力。混沌吸引子的吸引域存在,形成了混沌神经网络固有容错功能。这将对复杂的模式识别、图像处理等工程应用发挥重要作用。...

新东方单词记忆表,孩子为什么背书总是感觉那么难?看看这些“小戏骨”是如何学习?

作者: 极简大道 时间:2022-09-18 阅读: 158
去年一部少儿版《红楼梦》横空出世,引起了大众非常热烈的关注!之前的几部作品也十分获得好评!可爱的小戏骨们,今天又带来了一部经典翻拍作品《武林外传》!...

年度爆文