【读论文】 Improving Multi-hop Knowle
系统简称:NSM
发表会议:WSDM 2021
研究领域:KBQA
作者团队:中国人民大学,新加坡管理大学
论文题目: Improving Multi-hop Knowledge Base Question Answering by Learning Intermediate Supervision Signals
链接:https://arxiv.org/abs/2101.03737
摘要
Multi-hop KBQA的目标在于在知识库上找到距离问句中实体若干跳之外的答案实体。主要挑战在于传统KBQA问句集只有问题和最终答案/SPARQL对,缺少中间的监督信息。
本文提出了一个新颖的teacher-student方法,student网络目标是找到问题的正确答案,teacher网络试图学习中间的监督信号,以此来增强学生网络推理的过程。
本文主要创新点在于teacher网络,利用了前向和后向推理来增强对中间实体分布的学习。将双向推理结合后,teacher网络可以产生更加可靠的中间监督信号。最终实验结果表明了这种方法的有效性。
1. Introduction
对于KBQA,传统的方法通常构造一条pipeline,由若干machine-learned或者hand-crafted模块组成。end2end的深度神经网络模型则在最近成为了主流。
multi-hop KBQA最近得到了广泛的关注,不仅答案要正确,推理的关系路径是否正确也十分重要。有时候错误的路径也能找到正确的答案。如下图,回答问题"what types are the films starred by actors in the nine lives of fritz the cat?"。红色路径为正确的关系路径,蓝色的路径是伪路径,绿色实体是topic entity,红色实体是最终答案。可以看到伪路径通过错误的路径找到了正确的关系。这主要是因为训练过程中缺乏中间监督信息。
为了解决这个问题,一些研究将multi-hop KBQA建模为强化学习(reinforcement learning)问题。他们设置一个policy-based agent来逐渐扩张推理链,直到找到target entity。它的状态通常被定义为query 和当前实体组成的tuple,动作被定义为在KB上通过当前实体的出边进行游走。RL-based 方法严重依赖于搜索过程中的奖励函数。为了防止找到伪路径,有人提出了reward shaping和action dropout。但是这些解决方法要么需要expert experience,要么依然缺乏中间步骤的监督信息。
和之前的方法不同,本文提出了用两个不同目标的模型来解决Multi-hop KBQA。主模型负责找到答案,辅助模型负责判断路径是否正确(即当前实体是否和问题相关)。但问题在于没有足够多的标注数据。
本文利用双向BFS来解决标注数据问题。
首先定义前向推理和后向推理。前向推理:从topic entity到answer entity的推理,后向推理:从answer entity 到topic entity的推理。则前向推理路径上的实体应该和后向推理路径上的实体相近。
本文作者提出了一个teacher-student approach来实现这一学习的过程。student network用一个Neural State Machine(NSM)来实现,用来找到最终的答案实体。而teacher network提供前向推理和后向推理的相关性来增强对中间实体分布的学习。
2. Related work
KBQA
semantic parsing based / retrieval based
Variational Reasoning Network, Key-Value Memory Network and Graph Convolution Network.
extra corpus / knowledge graph embedding
Multi-hop Reasoning
decompose complex queries into several 1-hop
recurrent Memory, Attention, and Composition (MAC) cell
RL、GNN
Teacher-student Framework
知识蒸馏中常用teacher-student 框架,一个复杂的高性能的模型作为teacher,一个简单的轻量的模型作为student。teacher预测的结果被作为软标签,student的目标就是学习软标签。主要用来做模型压缩。
也有一些工作将teacher-student framework用在QA中。
3. Approach
3.1 Neural State Machine for Multi-hop KBQA
NSM主要包含两个模块:指令模块和推理模块。指令模块向推理模块发送指令向量,推理模块根据指令向量推断实体的分布,学习实体的表示。
3.1.1 Instruction Component
指令模块的输入包括一个query embedding模块和前一个推理步所得到的指令向量。最初的指令向量设为0向量。query embedding用了Glove+LSTM。
: 第k步推理的指令向量
: LSTM的第个时间步的隐藏状态
: 第k步推理时第个时间步的attention权重
: 第k-1步的指令向量和句子表示做concat后做一个线性变换得到。
指令模块的核心思想:在每一个推理步,注意query中一个特定的部分,同时动态更新query的表示,让query和之前的指令向量结合。
重复若干步后,我们得到了一个指令向量的List:
3.1.2 Reasoning Component
在得到第k步的指令之后,我们可以将其作为推理模块的指导信号。
推理模块的输入为当前步的instruction vector和之前步的entity distribution和entity embedding。
首先,将entity embedding设置为及周围的关系表示:
这里是待学习的参数。
给定一个triple ,通过将instruction vector 和relation vector 做按元素乘得到match vector 。
这里是待学习的参数。
之后根据加权求和得到候选的表示:
其中是在上一步推理步得到的概率。这样得到的表示可以capture实体周围的关系。
然后更新entity embedding:
之后便可以计算,在这一步推理时,中间实体的分布:
3.2 The Teacher Network
和学生网络的作用不同,teacher network旨在学习出中间推理步骤的可靠的entity distribution。
3.2.1 Bidirectional Reasoning for Multi-hop KBQA
主要思想:让前向推理和反向推理在中间步骤同步。即让和尽可能地相似。
3.2.2 Reasoning Architectures
这里设计了两种推理方法:Parallel Reasoning和Hybrid Reasoning。只考虑合并约束。
Parallel Reasoning: 设置两个独立的NSM模块,一个前向推理,另一个反向推理。这两个网络不共享参数,相互独立。
Hybrid Reasoning: 共享instruction component,循环进行前向推理和后向推理。
前向推理的最后输出作为后向推理的最初输入。
3.3 Learning with the Teacher-Student Framework
3.3.1 Optimizing the Teacher Network
主要考虑两种损失:推理损失和相似损失。
推理损失反映了预测准确实体的能力,对于两种方向的推理耳炎,损失如下:
这里是实体的ground-truth分布。
相似损失反映了正向推理和反向推理的一致性,这里用JS距离来度量两个分布的距离,将每一步的距离相加起来。
损失组合:
3.3.1 Optimizing the Student Network
在teacher模型训练完之后,可以获得一个中间实体的分布。将前向推理和后向推理的分布加起来作为中间的监督信号。
在推理损失之外,加入距离teacher network的损失:
4. Experiment
这里仿照PullNet的做法,抽了一个freebase子集。
Overall表现:
对teacher网络做消融:
不同hop的表现:
one-shot setting: