【读论文】Unseen Entity Handling in Complex Question Answering over Knowledge Base via Language Genera...

发表会议:EMNLP 2021 Finding
研究领域:KBQA-SPARQL生成
作者团队:A*STAR, Singapore (新加坡科技研究局)
代码仓库:未开源

论文简介

现有的KBQA方法,将SPARQL简化为一个list或者一个graph,缺失了"filter"和"order_by"限制,生成简化后的形式。
本文直接使用大规模的预训练模型生成可执行的未简化的完整的SPARQL,
最终取得了更好的效果,并且具有更好的可解释性和更高的计算效率。

主要思路

将Complex KBQA任务转化为一个language generation任务,使用预训练的encoder-decoder模型直接生成SPARQL。
这种方法的问题是:如何生成unseen的实体?
在SPARQL中,实体由ID表示(e.g. 'ns:m.08x9_6'),无法由模型直接生成。
本文采用自然语言模型生成实体的text label,从而在预测阶段生成unseen的实体。
具体地,本文使用一个变量(例如'c1')再加filter来表示实体(例如' filter(str(?c1) = “1980 NBA Finals”)')

本文方法的优势

  1. 使用生成模型一次可以生成整个sparql,而非像迭代式的graph generation方法,一次只能生成一条边或者一个action
  2. sequence generation的方法可解释性更好 (?存疑)
  3. 可以使用大规模预训练模型
  4. 模型可以学习生成constraints

具体方法

  • 首先使用Freebase API 识别句子中的实体,选择一个作为topic entity,另一个作为限制(预处理)
  • 然后使用encoder-decoder模型生成一个SPARQL列表
  • 最后选择最好的可执行的SPARQL(后处理)

实验结果

三个数据集:
MetaQA
WebQSP
CWQ

主实验结果

总体效果不错,Beam size取到了100


不同类型的问题结果分析

  • 1跳,2跳
  • 无约束,有约束
  • filter约束,order_by约束

消融分析

  • 生成原SPARQL(实体以ID形式生成)
  • 不添加Topic Entity的type
  • 添加Topic Entity的label
  • 同时添加Topic Entity的type和label

总结

本文主要提出了一种用Encoder-Decoder模型生成SPARQL的方法,在2021年算是不错的尝试。
放到现在(2022年),这种方法已经被广泛采用了,如何在Seq2Seq的范式下对现有问题进行优化是一个值得思考的问题。

你可能感兴趣的:(【读论文】Unseen Entity Handling in Complex Question Answering over Knowledge Base via Language Genera...)