动态记忆网络

动态记忆网络(DMN)是用于处理自然语言处理(NLP)问题,特别是问答系统的一种模型。它由输入、问题、片段记忆和回答四个模块组成,能够进行端到端的训练,并在QA、情感分析和词性标注等任务上取得优秀效果。输入模块通过RNN将文本编码成分布式向量,问题模块同样使用RNN处理问题。片段记忆模块利用关注机制更新记忆,回答模块依据最终记忆生成答案。在训练时,采用交叉熵损失进行优化。
摘要由CSDN通过智能技术生成

原文
Ask Me Anything: Dynamic Memory Networks for Natural Language Processing

简介

Question answering 是自然语言处理领域的一个复杂问题. 它需要对文本的理解力和推理能力. 大部分 NLP 问题都可以转化为一个 QA 问题. DMN 网络可以用来处理 QA 问题. DMN 的输入包含事实输入,问题输入,经过内部处理形成片段记忆,最终产生问题的答案.

DMN 可进行端到端的训练,并在多种任务上取得了 state-of-the-art 的效果:包括 QA(Facebook 的 bAbI 数据集),情感分析文本分类(Stanford Sentiment Treebank)和词性标注(WSJ-PTB).

动态记忆网络

DMN 由4个模块组成:

这里写图片描述
- 输入模块: 将原生文本输入编码成分布式向量表示. NLP 问题中,输入可以是一个句子,一个故事,电影评论,新闻文章或者维基百科文章等.
- 问题模块: 同输入模块类似,但输入是问题. 输出喂给片段记忆模块.
- 片段记忆模块: 片段记忆模块通过关注机制决定关注输入数据的那些部分,并根据之前的记忆和问题产生新的记忆.
- 回答模块: 根据最终记忆,产生问题的回答.

输入模块
  • 输入模块是一个 RNN 网络. 它的输入是 Work embedding(如通过 word2vec 或 GloVe 编码). 输入是 TI 个单词 w1,...,wTI .
  • 在每个时间点 t,RNN 更新其隐藏状态 ht=RNN(L[wt],ht1) . L 是 word embedding matrix.
  • 在输入只有一个句子的情况下,输入模块输出 RNN 的所有隐藏状态.
  • 在输入是多个句子的情况下,我们将所有句子拼接,并在每个句子末尾插入句末 token. RNN 每个句末 token 位置的隐藏状态作为输出.
  • 输入模块的输出序列为 Tc 个 fact representation c. 其中 ct 是输出序列的第 t 个元素. 输入只有一个句子的情况下,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值