开放域知识库问答研究回顾

©PaperWeekly 原创 · 作者|舒意恒

学校|南京大学硕士生

研究方向|知识图谱

开放域问答的研究已经从复杂流水线系统进化到端到端深度神经网络。其中一些方法利用知识库中的信息进行作答,另一些特殊的方法通过融合知识库和文本信息二者进行作答。本文旨在回顾近年来开放域知识库问答或知识库-文本融合问答的重要工作。

本文介绍近年来几篇知识库问答的工作,包括 Graft-Net、Pull-Net 和 EmbedKGQA 等工作,并简单描述了知识库问答领域常见的数据集。

Graft-Net

论文标题:Open Domain Question Answering Using Early Fusion of Knowledge Bases and Text

论文来源:EMNLP 2018

论文链接:https://arxiv.org/abs/1809.00782

代码链接:https://github.com/OceanskySun/GraftNet

知识库和文本作为问答系统的数据源,各有优劣。前者的覆盖范围小,而利用信息的难度较低;后者的覆盖范围更大,而利用信息的难度更高。

Graft-Net 将 QA 任务转换为异构图上节点的分类任务执行,异构图中既包含来自于知识库的节点,也包含来自于文本的节点。

一些基于图传播的模型学习节点表示,然后执行节点分类,通过分类任务完成  QA。这类方法的基本过程是:

1. 初始化结点表示

2. 对于 ,更新结点表示

其中, 表示 的关系为 邻居, 是神经网络层。

是模型的层数,对应于信息在图中传播路径的最大长度。传播完成后,最终层的表示 被用于执行目标任务,例如知识库中的链接预测。

但是,作者的设定与之前的基于图的分类任务有两处不同:

  • 第一个不同,图 包含异构结点。图中的某些节点对应于代表符号对象的 KB 实体,而其他节点则代表文本文档,它们是一段长度不定的文本序列。

  • 第二个不同,在自然语言问题 上限制图中节点的表示。

1.1 结点初始化

对应实体的结点使用通过固定长度的向量进行初始化 ,其中 可以是预先训练好的知识库嵌入或者随机的, 是嵌入的大小。

图中的文本结点描述不定长度的文本序列。因为多个实体可能链接到文档中的不同位置,作者在每一层维护一个不定长度的文本表示,记为 ,它表示文档 ,它被初始化为:

其中,文档中第 个单词在第 层的嵌入被记为 .

1.2 异构更新

如图阐释了实体和文本文档的异构更新规则。

实体 表示文档 中位置 的实体。实体节点的更新涉及一个单层前馈神经网络(FFN),其中包含四个状态的拼接:

其中,前两项分别对应来自前一层的实体表示和问题表示。第三项聚合了当前结点的实体邻居的状态,并通过注意力权重进行放缩,映射 ψ 是特定于关系的。为减少计算量,算法使用关系特定的向量 而不是关系矩阵,来计算一条边的更新:

其中, 是 PageRank 分数,用于控制嵌入沿着从种子节点开始的路径的传播。第四项,即最后一项汇总了与子图中各文档中的实体 的提及相对应的所有 token 的状态。需要注意的是,更新取决于实体在其包含文档中的位置。

文档 为一个实体集合,表示链接到文档 在位置 的单词的所有实体。文档更新过程分为两步。第一,我们汇总各个位置分别出现的实体状态:

其中, 通过 的出边数量进行归一化。然后,我们使用 LSTM 聚合文档内的状态:

1.3 对问题的约束

上文所述的部分,与问题本身是无关的。作者通过两种方式引入对问题的依赖:通过对关系的关注以及通过个性化传播。

问题是通过其中的单词表示的,它的初始表示被计算为:

然后,提取 LSTM 的最终状态。在后续层中问题表示更新为

其中 表示问题中提到的种子实体。

关系上的注意力 注意力权重在等式 1 第三项是使用问题和关系嵌入计算的:

其中,softmax 归一化被用于在 的所有出边上计算, 是关系 的关系向量。这样可以确保嵌入沿着与问题相关的边传播得更多。

有向传播 许多问题都需要多跳推理,它沿着从问题中提到的种子节点到目标答案节点的路径。为了鼓励传播嵌入的行为,作者开发了一种技术,该技术受 IR 中的个性化 PageRank 启发。传播开始于问题中提到的种子结点 ,除结点的向量表示 之外,作者还维护一个标量 PageRank 分数,度量从一个种子实体到当前实体的所有权重:

请注意,在传播 PageRank 时,作者重用了注意力权重 ,以确保沿着与问题相关的路径的节点获得较高的权重。当沿着等式中的边传播嵌入时,将 PageRank 分数用作缩放因子。对于 ,除种子实体之外的所有实体的 PageRank 得分均为 0,因此传播只会从这些节点向外发生。对于 ,种子实体及其 1 跳邻居的 PageRank 得分将为非零,并且传播将仅沿这些边发生。

1.4 答案选择

最终的表示 被用于选择答案的二元分类:

其中 σ  表示 sigmoid 函数。训练中对这些概率使用二元交叉熵损失函数。

1.5 通过事实缺失进行正则化

为了鼓励模型学习出一个利用所有可用信息源的健壮的分类器,作者在训练过程中以概率 从图上随机删除了边,称其为事实缺失。通常,从知识库中提取答案要比从文档中提取答案容易,因此该模型倾向于依赖前者,尤其是在知识库已完成时。

Pull-Net

论文标题:PullNet: Open Domain Question Answering with Iterative Retrieval on Knowledge Bases and Text

论文来源:EMNLP 2019

论文链接:https://arxiv.org/abs/1904.09537

该文同样是考虑结合语料库和知识库二者构建问答系统。其重点是在语料库上补充了较大但不完整的知识库,以及需要例如多跳的方法进行推理的问题。

作者描述了一个集成框架 PullNet,用于(1)学习(从 KB 或语料库中)检索什么,以及(2)使用这种异构信息进行推理以找到最佳答案。PullNet 使用迭代过程来构造特定于问题的子图,该子图包含与问题相关的信息。

PullNet 从文本和知识库两个数据源进行检索。给定一个关系,PullNet 使用它们来构建一个问题子图以回答问题。问题子图是通过迭代的方式构建的。最初,子图只依赖于问题。然后,PullNet 通过选择节点,迭代地扩展子图。问题子图是异构的,并且包含实体、KB 三元组和实体链接的文本。

2.1 问题子图

一个问题的问题子图可以表述为 ,它是一个异构图,同时包含来自语料库和知识库中关于 的信息。跟随 GRAFT-Net,该文使用了三类结点:实体结点、文本结点和事实结点。

在该文中,一个文档指的是一个简单的例子。一个事实结点表示一个知识库中的三元组。该异构图中的一条边,连接一个事实结点和一个实体结点,当且仅当该实体是该事实中的头实体或尾实体。异构图中的一条边连接文本结点和实体结点,当且仅当实体在文本中被提及。

2.2 迭代子图扩展和分类

概览 问题子图初始的顶点集是问题中提到的实体列表,边集为空。然后算法迭代地扩展,直到它包含可以回答问题的信息。

算法过程如算法 1 所示。图的扩展以  次迭代完成。每一次迭代中,我们选择 k 个实体进行扩展,然后对于每个选中的实体,我们检索一个相关文档的集合以及相关事实的集合。

新的文档被传送给实体链接系统来识别其中的实体,每个事实的头实体和尾实体也会被提取。迭代的最后阶段是通过添加新的边来更新问题图。在 t 次扩展之后,一个额外的分类步骤被用于最终的问题图来预测答案实体。

作为一个迭代搜索算法,PullNet 看起来似乎与 BFS 有点类似?这里其实一个节点被扩展是有条件的,并且这里不是在图上直接扩展来搜索,而是利用两个数据源获得一个实体结点的邻居节点。

Pull 操作 pull 操作要么从一个知识源检索信息,要么从事实或文档提取实体。

两个提取操作相对来说是比较简单的。pull_entities操作需要输入一个文档节点,调用实体链接器,返回所有该文档节点中提到的实体。pull_headtail操作需要输入一个事实节点,返回该事实的头实体和尾实体。

检索过程相对来说更复杂。pull_docs操作从语料库检索相关文档。作者使基于 IDF 的检索系统 Lucene,并且假设所有句子在索引之前都已经被实体链接。被检索到的文档被约束为链接实体 ,通过与 的 IDF 相似度进行排序。只有排序为 的文档被返回。

pull_facts操作从知识库检索关于 个事实。被检索到的事实要求其头实体或尾实体是 ,并基于事实和关系之间的相似度进行排序。问题通过 LSTM 获得向量表示,然后使用二者内积传递到 sigmoid 函数中作为相似度表示。

分类操作classify操作有两类,应用于问题子图的节点上。这两种操作只用于图上的实体节点,但它们基于由图 CNN 计算到的节点表示,因而非实体节点和边也影响了分类结果。子图构建过程中,classify-pullnodes操作返回节点应该在下一迭代被扩展的概率,算法在每一迭代选择具有最高概率的 k 个节点。

子图完成后,classify_answer 预测一个实体节点是否是问题的答案。具有最高分数的节点被返回为最终答案。作者使用了和 GRAFT-Net 一样的 CNN 结构来做分类。

更新操作update操作取前一迭代的问题子图,并通过加入新检索到的实体节点、文本节点和事实节点来更新。在文本节点和事实节点上执行 pull 操作时会衍生出一些新的边,而其他新边可能会将新添加的节点与上一个子图中已经存在的节点连接起来。

2.3 训练

作者只通过问题-答案对来训练 PullNet,即回答问题所需的实际推理链是潜在的而不是显式的。因此,需要使用弱监督来训练上述分类器和相似性分数。

为了训练这些模型,算法对问题 q 形成一个理想问题子图进行估计。在训练中,答案实体是可知的。算法使用这些来查找问题实体和答案实体之间知识库中所有最短的路径。出现在最短路径中的每个实体 将被标记为候选中间实体。对于每个候选中间实体 ,算法记录其距问题节点的最小距离

EmbedKGQA

论文标题:Improving Multi-hop Question Answering over Knowledge Graphs using Knowledge Base Embeddings

论文来源:ACL 2020

论文链接:https://www.aclweb.org/anthology/2020.acl-main.412

代码链接:https://github.com/malllabiisc/EmbedKGQA

多跳 KGQA 需要对 KG 的多个边进行推理才能得出正确的答案。KG 通常是不完整的,缺少许多链接,这给 KGQA 尤其是多跳 KGQA 带来额外的挑战。

作者在该文中提出了 EmbedKGQA,在执行稀疏 KG 上的多跳 KGQA 方面特别有效。它放宽了从预先确定的邻域中选择答案的要求,而这是以前的多跳 KGQA 方法实施的约束。

EmbedKGQA 分为三个模块:知识图谱嵌入模块、问题嵌入模块、答案选择模块。知识图谱嵌入模型本身是为链接预测任务所设计的,它能一定程度上表示知识图谱的整体结构信息,而没有收到例如 Pull-Net 这类方法使用子图对于多跳推理的限制。

3.1 知识图谱嵌入模块

该模块直接使用了 ComplEx 嵌入,其中包含知识图谱中所有实体、关系的嵌入。实体嵌入用于学习头实体、问题和答案实体之间的三元组评分函数。根据 QA 训练集中 KG 实体的覆盖范围,可以将此处学习的实体嵌入保持冻结状态,或者在后续步骤中对其进行微调。

3.2 问题嵌入模块

该模块使用 RoBERTa 将问题嵌入到 768 维向量,然后经过 4 层全连接层,使用 ReLU 激活函数,最终获得复述域上的问题嵌入。

3.3 答案选择模块

在答案选择模块,算法选择所有可能答案中评分最高的答案实体。对于相对较小的 KG,例如 MetaQA,直接选择得分最高的实体。而对于较大的知识图谱,作者详细描述了一种剪枝方法。

实验

4.1 知识库问答的常见数据集

  • MetaQA:一个大规模多跳 KGQA 数据集,有 1、2、3 跳的问题,包含电影领域四十万个问题。其中提供了一个有 13.5 万三元组、4.3 万实体、9 种关系的知识图谱。

  • WebQuestionSP:一个较小的 QA 数据集,包含 4.737 个问题,1、2 跳的问题。其中问题可以通过 Freebase 回答。

  • Complex WebQuestions:一个包含复杂自然语言问题的数据集。其中包含四种问题类型,组合(45%),连词(45%),比较(5%)和最高级(5%)。这些问题需要在知识库中进行多达 4 步的推理,而在语料库上则需要进行 2 步推理。

4.2 实验效果

上表实验数据来自于 EmbedKGQA 在 MetaQA 数据集上的实验。可以看出 GraftNet、PullNet 与  EmbedKGQA 在 2-hop 以内的表现都相当好,但是在知识库存在较多缺失链接的时候,EmbedKGQA 的优势显现出来。

EmbedKGQA 在给定完整知识图谱的情况下,WebQSP 表现虽然没有达到 SOTA,仍然表现良好,并在知识图谱缺失的情况下显示出优势。

小结

本文总结了近年关于知识库问答的部分重要工作,这些工作在部分数据集上已经取得不错的效果,而针对复杂问题的多跳推理能力,仍然是一个值得深入探索的问题。

更多阅读

#投 稿 通 道#

 让你的论文被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学习心得技术干货。我们的目的只有一个,让知识真正流动起来。

???? 来稿标准:

• 稿件确系个人原创作品,来稿需注明作者个人信息(姓名+学校/工作单位+学历/职位+研究方向) 

• 如果文章并非首发,请在投稿时提醒并附上所有已发布链接 

• PaperWeekly 默认每篇文章都是首发,均会添加“原创”标志

???? 投稿邮箱:

• 投稿邮箱:hr@paperweekly.site 

• 所有文章配图,请单独在附件中发送 

• 请留下即时联系方式(微信或手机),以便我们在编辑发布时和作者沟通

????

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

关于PaperWeekly

PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页