DMN

1.Introduction

如上文所说,很多NLP问题可以视为QA问题,作者给出了一个例子,同时包含QA, Sentiment Analysis和Part-of-speech tags:
Dynamic Memory Networks & DMN+

所以作者提出了DMN来解决这三种问题。DMN的流程如下:

  1. 将输入和问题转换为内部表示
  2. 根据问题迭代地检索相关的facts
  3. 由DMN的memory模块根据facts和问题进行推理,给出相关的信息
  4. 由回答模块将相关信息转化成答案。

2.Dynamic Memory Networks

DMN的总体结构如图:
Dynamic Memory Networks & DMN+

2.1 Input Module

输入模块通过GRU来编码句子。GRU的输入是word embedding vectors. 对于一个多句子的文本,在每个句子末尾加上一个分隔符(End-of-Sentence),当输入是EOS,取此时的隐含层状态h表示当前这个句子,编码后的句子记作{si}

2.2 Question Module

对Question的编码也使用GRU, 不过参数与Input Module独立。question就是一个句子,所以question的编码q就是最后一个隐含层状态

2.3 Episodic Memory

这个模块将Input Module的输出st作为输入,通过attention机制生成对每一个输入fact的门限g,然后根据g计算出情节e,最后把e输入到GRU中生成episodic memory m. 有时候输入一轮{s_t}不能很好的记住所有需要的fact,所以需要迭代多轮。如下图:
Dynamic Memory Networks & DMN+
图中迭代了两轮, 最后生成了两个memory m1m2

  • attention: 第i轮迭代,t时刻,输入为ct, 上一轮的记忆为mi1, 问题为q, 则:

    git=G(ct,mi1,q)
    其中:
    G(c,m,q)=σ(W(2)tanh(W(1)z(c,m,q)+b(1))+b(2))
    z(c,m,q)=[c,m,q,cq,cm,|cq|,|cm|,cTW(b)q,cTW(b)m]

    可就是说把c,m,q拓展成一个向量,然后使用了两层前馈网络计算门限g

  • Memory Update: 第i轮迭代,输入为ct, 个数为TC 对应的门限为git,设m0=q, 则:

    hit=gitGRU(ct,hit1)+(1git)hit1
    ei=hiTC
    mi=GRU(ei,mi1)

2.4 Answer Module

这个模块仍然要使用GRU, 取最后一个memory 最为GRU的初始值,即a0=mTM,则:

yt=softmax(W(a)at)
at=GRU([yt1,q],at1)

3.Experimrnt

所有的实验Adam,L2正则,dropout, 词向量用的是GloVe.

  • QA: bAbI Task
    Dynamic Memory Networks & DMN+
    -Sentiment Analysis: Stanford Sentiment Treebank
    Dynamic Memory Networks & DMN+
  • Part-of-Speech Tagging: WSJ-PTB
    Dynamic Memory Networks & DMN+

此外文中还分析了多轮迭代的重要性,通过多轮迭代性能提升显著,特别是在bAbI问题上,需要找到多个supporting facts的时候。

4.Conclusion

DMN是一个解决多种NLP问题的通用的模型,能够端到端的训练,可以在更多的问题上拓展。


DMN+

DMN+分析了DMN模型的两点缺陷:

  1. GRU只能让当前的句子获得上文信息,而不能获得下文信息
  2. 输入一个个单词到GRU来获得句子的编码,很难刻画相距很远的两个supporting facts之间的关联

因此作者Input Fusion Layer

1. Input Fusion Layer

针对DMN的缺陷,DMN+使用一个sentence reader专门用来将word embedding转化为sentence embedding,同时将GRU改成双向GRU.
如下图:
Dynamic Memory Networks & DMN+

  • sentence reader
    这一步采用了同MemN2N中相同的编码方式:
    ljd=(1jM)(dD)(12jM)
    fi=j=1Miljwij

    其中d是embedding dimension index, D 是embedding dimension, Mi是第i个句子的单词个数
  • Bi-directional GRU
    Dynamic Memory Networks & DMN+

so, 对于VQA怎么办? 如下图,先使用VGG-19提取图像的特征图,然后把特征图使用**函数为tanh的线性层映射到同question同一空间的向量,最后使用双向GRU获取f
Dynamic Memory Networks & DMN+

2.Episodic Memory Module

  • gate function g
    Dynamic Memory Networks & DMN+
    这里计算门限g的方式只是用了一层前馈网络加上一个softmax层,另外拓展成的向量zit与DMN中的z(c,m,q)少了好几项,作者分析说那几项并没什么卵用

  • Attention based GRU
    利用soft attention计算epsodic et=Ni=1gitf,但是这种方法没有把各输入的位置和顺序的信息加进去,作者提出了Attention based GRU, 把g添加到GRU内部。
    正常GRU的计算如下:
    Dynamic Memory Networks & DMN+
    Dynamic Memory Networks & DMN+
    作者把ui改为gi,则hi=gih~+(1ui)hi1 ,如图:
    Dynamic Memory Networks & DMN+
    因此,

    hti=AttGRU(fti,ht1i)
    et=htTF

  • Episodic Memory Update

    mt=ReLU(Wt[mt1,et,q]+b)
    这里又是一个跟DMN不一样的地方,DMN更新m疯狂的使用GRU, 这里使用了一层ReLU的前馈网络。
    Dynamic Memory Networks & DMN+

3.Experiment

具体使用的优化方法,参数选取这里就不列出了,见原文。
- bAbI
Dynamic Memory Networks & DMN+
Dynamic Memory Networks & DMN+
然而我不明白的是,为什么在DMN的paper里面QA19的正确率是34.5%,到了这DMN+的论文里QA19成了100%?
- VQA
Dynamic Memory Networks & DMN+

相关文章:

  • 2021-10-30
  • 2021-06-22
  • 2021-09-19
  • 2021-06-04
  • 2021-05-02
  • 2021-05-21
  • 2022-12-23
猜你喜欢
  • 2021-12-31
  • 2021-04-17
  • 2021-12-16
  • 2021-07-21
  • 2021-11-01
  • 2021-12-23
相关资源
相似解决方案