Bidirectional Attentive Memory Networks for Question Answering over Knowledge Bases
2019年NAACL的一篇文章,依然是利用深度学习方法解决KBQA问题
Overview
由于最近KBQA任务中深度神经网络取得了很大的成功,本文也采用了深度学习的做法(用到了很少量的人工特征),属于IR-based + DL的范畴。作者认为之前的IR-based的做法没有怎么关注question与KB之间的关系,因此本文通过大量的attention机制来学习question与KB之间的interaction。本文提出的模型叫做Bidirectional Attentive Memory Network(BAMnet),attention的部分由了两层双向attention构成,memory network负责存储KB的信息。
本文的contribution如下:
- 对模型结构进行了创新,采用memory network和attention机制,能够更好地对question-KB双向关系进行建模
- 由于attention机制的大量使用,本文模型有较好的可解释性
Model Structure
本文的模型分为四大主要模块:
- Input Module:对问题输入进行embedding
- Memory Module:使用memory network对KB信息进行embedding
- Reasoning Module:推理部分,attention层的主要战场
- Answer Module:答案输出模块
每个module中还有一些子module,总体结构比较复杂。
下面分别来看各个module的具体做法
Input Module
给定一个问题 Q = { q i } i = 1 ∣ Q ∣ Q=\{q_{i}\}_{i=1}^{|Q|} Q={ qi}i=1∣Q∣,输入模块使用一个Bi-LSTM对问题进行编码,得到编码后的文本表示 H Q ∈ R d × ∣ Q ∣ H^{Q} \in R^{d \times |Q|} HQ∈Rd×∣Q∣。
Memory Module
Candidate Generation
IR-based的做法首先要根据问题中的topic word在KB中生成对应的topic graph,本文生成的topic graph是h-hop的,h应该是一个超参。作者记topic graph中的所有实体为 { A i } i = 1 ∣ A ∣ \{A_{i}\}_{i=1}^{|A|} { Ai}i=1∣A∣,这些都是候选答案。
KB Representation
对候选答案,本文考虑了三个aspect: answer type、answer path、answer context。这三个特征在SP-based的各种做法中已经很常见了,就不再多赘述。不过本文的一个比较创新的点是,每一个特征作者都使用了Bi-LSTM进行特征学习,具体的做法如下:
- answer type:这里其实文章说的不是特别清楚,只是说对text description使用Bi-LSTM得到特征矩阵 H t 1 H^{t_{1}} Ht1,感觉应该就是把type的text输入进去。
- answer path:答案的路径也是用text description,这里文中有例子,比如office_holder - governing_officials这条路径就可以表示为[office_holder, governing_officials]或者[office, holder, governing, officials],然后再用Bi-LSTM得到 H p 1 H^{p_{1}} Hp1。接着再用一层relation embedding layer得到关系的embedding,取平均值得到 H p 2 H^{p_{2}} Hp2。
- answer context:为了不考虑不相关的信息,这里作者用到了两条限制:一个是importance module,后面会详细解释;另一个就是只考虑和问题有重叠的部分。还是用一个Bi-LSTM最终得到 H c H^{c} Hc。
Key-Value Memory Module
接下来就是一个memory module,这一部分是对KB信息进行进一步的embedding,由于我没有了解过memory network,就不解释了,直接看公式
可以看到就是对KB的每一个feature构建了一个key矩阵和一个value矩阵,其中 f f