读论文写论文——MEMORY NETWORKS
来源:互联网 发布:新疆人口普查数据 编辑:程序博客网 时间:2024/05/22 15:48
MEMORY NETWORKS
摘要
作者说自己提出了一个新的学习模型叫做“memory networks”,模型将推理与“长记忆”组件相结合。使用长记忆组件,可以用其进行推理预测,作者将该模型用于问答系统QA(Question Answering)。
介绍——为什么要提出这个模型
作者说当前的大多数的机器学习系统,无法自由的对记忆组件进行读写。如果可以无缝的自由读写,那么将大大提高模型的预测、推理能力。比如说,对于问答系统、文章推理,此类问题都会涉及大量的上下文内容,只有通过对上文内容的分析,才能获得较优的回答或推理。但是,当前包括RNN或LSTM等模型在内,虽然存在记忆功能,但并不理想,或者说是记忆单元太小了,不足以对上文的信息进行存储。所以作者就想将当前优秀的机器学习算法同“记忆”模块向组合,这样记忆模块的存储以及读写就弥补了原始算法的缺陷。
模型概述
既然知道了模型的想法和要解决的问题,那么该怎么解决呢?
作者也是简单粗暴,你不是存储记忆单元小吗?好,我给你一个单独的存储单元,并且空间很大,记为Memory M。这个M是什么呢?其实它就是一个数组对象,
1.
2.
3.
\begin{equation}o_1=O_1(x,m)=\arg \max_{i=1,...N}s_o(x,m_i)\end{equation}
4.
由这个四大组件,作者就提出了该模型Memory Neural Networks(MemNNs)。
整个模型对于输入就产生了一个流过程:
从给出的架构可以看出,作者认为本次提出的更是一种想法,在这种架构下,可以完成任何你想干的事情。例如说,内部特征表示文章中使用VSM,你可以使用word embedding;文中响应是根据
案例分析
文章中作者给出了一个样例,样例给出一段文章,文章之后紧跟上提问,模型的任务就是通过学习文章,对于提问给出解答。
下面看一下模型的四大组件是如何相互合作,完成这项任务的。
1.
2.
\begin{equation}m_{H(x)}=I(x)\end{equation}
其中函数
所以在基础模型中,作者直接将输入存入到了M中。
3. 第1,第2步进行了简化,那么3,4步的任务就较重,同时也是该模型的核心部分。
- k=1 最相关的
- k=2 第二相关的
说明:
此处的
\begin{equation}\arg \max_{i=1,....N}s_o([x,m_{o_1}],m_i)=s_o(x,m_i)+s_o(m_{o_1}, m_i)\end{equation}
4.
\begin{equation}r=\arg\max_{w\in W}s_R([x,m_{o_1},m_{o_2}],w)\end{equation}
其中W是训练集中所有的词汇。
让我们串起来看一下,首先通过
那么实验中作者是如何做到这一步的呢?其中的关键在函数
\begin{equation}s(x,y)=\Phi_x(x)^TU^TU\Phi_y(y)\end{equation}
其中参数
在这
训练
模型的训练是一个监督学习的过程,使用最大距离损失和梯度下降法训练参数,文中作者的训练已知部分包括问题的答案和支持答案的句子索引(支持记忆索引),就是在训练中事先知道哪句话对答案的帮助最大,而训练的过程就是要让(1)模型选择支持答案的句子索引与事先知道的尽量一致,(2)预测的答案尽量一致。
可以看到,其中
论文中作者还强调如果将
扩展
- 在模型中加入“segmentation”函数,以此来应对输入是词序列问题。
- 使用“hash”映射的方式替代原始直接memory存取,由此提高M的查询速度。
- 通过(1)添加三个维度,(2)修改
s o t 函数使模型获取写时间特性,主要是何时写memory。 - 处理未登录词。对于未登录词,作者采用该词左右两边的内容来代替,所以
D 的维度从3|W|−>5|W|
下面着重看一下扩展2:
作者说memory中的存入对象是何时被写入的,该特征信息对询问事实的问题没有太大帮助,如“中国的首都是哪里?”。但对于回答基于小故事的问题至关重要,作者在原有模型D的基础上增加了3个维度
这三个维度的大小0/1,由公式
\begin{equation}s_{o_t}(x,y,y')=\Phi_x(x)^TU_{o_t}^TU_{o_t}(\Phi_y(y)-\Phi_y(y')+\Phi_t(x,y,y'))\end{equation}
由于公式的改变,原来的
遍历整个Memory,通过公式
训练方法变成:
代码
代码请参考(https://github.com/npow/MemNN)(感谢代码作者的贡献)
参考
向量空间模型
memory networks博客
MEMORY NETWORKS原文
MemNNs源码
- 读论文写论文——MEMORY NETWORKS
- 论文阅读:Memory Networks
- 论文阅读:End-To-End Memory Networks
- End-To-End Memory Networks 论文翻译
- 论文笔记——CVPR 2017 Dilated Residual Networks
- 论文笔记——CVPR 2017 Dilated Residual Networks
- 论文笔记——CVPR 2017 Dilated Residual Networks
- CVPR2017 最佳论文——Densely Connected Convolutional Networks
- Squeeze-and-Excitation Networks论文翻译——中文版
- Squeeze-and-Excitation Networks论文翻译——中英文对照
- Deformable Convolutional Networks论文翻译——中英文对照
- Deformable Convolutional Networks论文翻译——中文版
- 论文笔记— Identity Mappings in Deep Residual Networks
- CVPR 2017论文笔记— Dilated Residual Networks
- 写论文
- 写论文
- flash memory 相关论文
- memory network 论文翻译
- 不用管代码中引入的类直接修改class文件
- Android Studio(AS)中apk的位置
- Servlet源码
- 素数判定
- Unity3D中,Android应用的退出脚本。
- 读论文写论文——MEMORY NETWORKS
- Mail merge region 'tablePrint' is badly formed. TableStart and TableEnd should be in the same sectio
- nginx做web服务器负载均衡
- shader中面的剔除 (cull)
- Unity开发项目应该一开始规划好哪些内容?如何避免后期巨坑?
- 1091. Acute Stroke (30)解题报告
- web 端 gantt组件选型
- Ubuntu安装Apache+MySQL+PHP
- Hibernate框架学习(第四讲)---持久化对象状态