Effective search of logical forms for weakly supervised knowledge-based question answering-论文阅读
会议:IJCAI 2020
作者
摘要(翻译):
许多基于知识的问答(KBQA)算法依赖于语义分析,将问题转换为其逻辑形式。当只提供弱监督时,通常需要为模型训练寻找有效的逻辑形式。然而,一个复杂的问题通常涉及巨大的搜索空间,这会产生两个主要问题:
1)受计算时间和内存限制的解决方案通常会降低搜索的成功率,
2)搜索结果中虚假的逻辑形式会降低训练数据的质量。
这两个问题导致语义解析模型训练不足。在这项工作中,我们提出了一种有效的基于问题算子预测(operator prediction for question)的弱监督KBQA搜索方法。通过预测运算符约束搜索空间,可以探索足够的搜索路径,导出更有效的逻辑形式,并可以避免可能导致伪逻辑形式的运算符。因此,在弱监督的训练集中,大部分问题都配备了逻辑形式,而产生的虚假逻辑形式较少。这种高质量的训练数据直接有助于建立更好的语义分析模型。在一个最大的KBQA数据集(即CSQA)上的实验结果验证了我们方法的有效性:从总体得分来看,精确度从67%提高到72%,召回率从67%提高到72%。
KBQA: 基于知识库的QA;
一、介绍
思想:
将训练实例转化为<question, answer>的格式,不是语义分析中的<question, logical form>格式,更容易获得factoid问题的答案,答案不能直接用于训练语义分析器。对于一个factoid问题,弱监督的一个关键步骤是在知识库上自动搜索有效的逻辑形式(不自己产生,改从知识库获得),必须在执行后得到给定的基本正确的答案,然后从搜索过程中产生的逻辑形式将被视为语义解析器的完全监督训练目标。
问题:
语义解析器的质量依赖于上流搜索逻辑形式的质量。
1)搜索整个假设空间不切实际(搜索空间过大),因此搜索成功率定义为子空间搜索可以找到有效逻辑形式的问题数除以问题总数。
2)可能搜索到假的逻辑形式。因此引入算子预测器,提出了一种在大规模知识库中有效搜索逻辑形式的新方法。
二、方法
1)语法和逻辑形式
语法:
表示如图,每个算子由三部分组成:一个语义类别,一个函数符号和一个参数表,参数可以使语义类别也可以是问题实例化的常量。
逻辑形式:
一般为树结构,根节点为start运算符,每个子节点是一个受其父节点参数列表中的语义类别约束的合法运算符。
利用deq2seq模型进行问题到逻辑形式的转换时,通过在树上应用深度优先遍历将树结构重新格式化为序列,反之,在解码阶段生成了序列格式的逻辑形式,也可以恢复为树结构。
我们的方法:
包括6步:搜索;清洗;训练算子预测器;算子预测;重搜索;训练语义解析器
1,2)搜索和清洗(searching&cleaning):
从训练集生成训练example子集D’,在搜索中对于每个在小子集上的问题Qi,我们搜索并获得它的逻辑形式LFi = {lfi1,lfi2,……},然后送入第二步进行清洗,根据问句类型清洗逻辑形式,洗掉不合法的逻辑形式和问句类型,生成Opsi(LFi中特有的运算符组成的集合)。D’= {Qi, LFi, Opsi}
3)训练算子预测器(Training for Operator Predictor):
训练一个算子预测器(模型M),将Qi映射到最可能的运算符Opsi中已构成正确的逻辑形式,基于清理后的训练数据D’进行训练。
4,5)KBDA的训练数据:
将M应用到D中所有问题是哪个,预测它们最有可能的运算符Opsi,重新搜索包含Opsi的逻辑形式LFi。
6)为KBDA训练模型,
基于5中的搜索结果训练语义分析器。
注意:虽然使用了两次搜索,我们的方法依然很快,因为第一次搜索只在一个小规模子集展开,第二次搜索比第一次还要快。
将算子预测器加入“搜索+训练”模式的优点:
1)为下流模型训练提供了高质量的数据;
2)让训练和推理更有效率。
方法细节:
在形式上,首先将问题Q分词,变为一个单词列表,即Q=[w1,…,wn],然后调用单词嵌入方法将离散的单词转换为低维向量表示,即X=[x1,…,xn]∈ Rde×n,其中de表示嵌入大小,n表示问题序列长度。嵌入的单词分别传递到每个具有不相关参数的后续神经组件中。
步骤3):
输入为一个自然语言问题,输出为一个可能构成问题正确逻辑形式的一组运算符。
使用一个双向LSTM作为编码器进行词嵌入,以捕获上下文信息。
步骤6):
包括三个子任务:实体检测和链接、谓词预测(predicate prediction)、seq-to-seq 翻译模型。
实体检测和链接(Entity Detection & Linking):
实体检测:定位命名实体(通常被表述为序列标记问题),把每个词分成B,I和O标签(代表命名实体的开始,中间和结尾)。使用Bi-LSTM的有条件随机区域。
实体链接:传统方法,建立一个inverted字典,key为实体,值为链接的实体。给定一个实体查询匹配度最高的另一个实体。
谓词预测:
视作多分类问题,使用另一个Bi-LSTM进行句子的向量表示,
问题-》逻辑形式转换(Question-to-Logical-Form Translation):
给定上游预测的实体和谓词候选,语义分析模型旨在将输入的自然语言问题转换为KB可执行的逻辑形式。由于逻辑形式已被格式化为序列,因此我们采用了一种具有注意机制的Sequence-to-Sequence编码器-解码器结构。
三、实验:
数据集:
CSQA数据集,(1.6M turns in 200K dialogues without logical form labeled.)
实验结果:
Recall/precision:精确度和召回率