APP下载

融合子图结构的神经推理式知识库问答方法

2021-10-12陈子阳廖劲智陈盈果

计算机与生活 2021年10期
关键词:知识库语义向量

陈子阳,廖劲智,赵 翔,陈盈果

国防科技大学 信息系统工程重点实验室,长沙 410073

问答系统(question answering,QA)是自然语言处理(natural language processing,NLP)主要的研究领域之一,旨在让计算机能够理解自然语言形式的问题,并且自动地给出答案[1]。近年来,随着知识图谱(knowledge graph,KG)技术的不断发展,出现了以Freebase[2]、DBpedia[3]、CN-DBpedia[4]为代表的大规模知识图谱。知识图谱通过将现实中的知识结构化为实体与实体间关系,利用(h,r,t)的三元组形式进行表示,其中h、r、t分别代表头实体(head)、关系(relation)和尾实体(tail),这种组织形式更有利于研究者发现、探索知识之间的关联关系。因此,综合问答系统优势与知识库特性的知识库问答(knowledge base question answering,KBQA)受到了学术界和工业界的广泛关注[5-6]。

知识库问答旨在通过知识库中结构化的知识回答自然语言问题。目前主流的研究工作大致可分为两类:(1)基于语义解析(semantic parsing,SP)的方法,利用模板和标注信息对问题进行解析,将其转化为一个图查询语句,通过执行该查询语句来获取答案;(2)基于神经推理(neural reasoning,NR)的方法,通过从问题和答案中提取出对应的特征,设计相应的打分函数以评价候选答案和问题的语义相关性,最终得分最高的候选答案被作为模型预测的答案输出。

基于语义解析的代表性工作QUINT(自动化模板生成模型)[7]通过自动从问题语句的组成部分和KG 查询的对齐中学习语句-查询模板,解决了传统SP 工作中对人工模板的依赖问题。然而,由于知识图谱通常存在链接缺失问题,如DBpedia 和Freebase中分别有66%和71%的人物实体缺少出生地信息[8],导致了QUINT 无法通过简单的查询获得预期的结果。举例而言,图1 展示的是苏轼相关的知识图谱,其中苏轼和苏洵之间缺失了相应的关系。针对这个图谱,如果提出问题“苏轼的父亲是谁?”,即使其正确解析了问题,并且给出了合理的图查询语句,该模型也是难以给出正确答案的,因为其无法在知识库中寻找到<苏轼,父亲,?>这条知识。

Fig.1 Knowledge graph related to Su Shi图1 苏轼相关图谱

基于神经推理的代表性工作MCCNNs(multicolumn convolutional neural networks)[9]通过引入多列卷积神经网络来对问句的三个方面(答案关系路径、答案上下文和答案类型)进行理解和分布式表征学习,再通过评分函数对候选答案进行排序输出。利用语义相关性,MCCNNs 能够一定程度上避免知识图谱链接缺失问题。然而,由于MCCNNs 需预先对图谱中实体进行训练,基于获得的表示向量进行后续操作,这导致了其无法处理动态场景下新出现实体(冷启动)相关的问题。譬如,当图1 中的图谱添加新的链接<苏轼,好友,黄庭坚>后,针对问题“苏轼的好友是谁?”,因缺失新实体“黄庭坚”的语义向量,模型无法进行推理。

针对上述问题,本文提出了一种融合子图结构的神经推理式知识库问答模型(incorporating subgraph structure via neural reasoning,ISS-NR),通过综合知识图谱中的子图结构信息以及问句和实体的语义信息进行推理,解决了图上链接缺失与实体冷启动问题。具体来说,为克服知识图谱中的链接缺失问题,ISS-NR 借鉴了神经推理式模型中对图谱进行预训练的思想,在对实体向量的表示过程中引入了预训练过程,以实现在链接缺失的情况下,仍能利用语义相关性对问题进行推理预测。针对实体冷启动问题,本文设计了利用子图结构信息增强实体向量表示的模块,包括子图构建、子图信息表示及信息融合等,实现了利用新实体的子图结构信息对其进行编码表示更新,使得模型具备了优良的泛化能力。本文主要有如下三个贡献:

(1)提出了一种融合子图结构的神经推理式知识库问答模型,在问答过程中兼顾实体的子图结构信息及其语义信息,使其具有更强的推理能力。

(2)针对当前神经表示中新实体冷启动问题,设计了相关子图匹配、抽取与表示融入模块,利用子图结构信息编码表示新实体。

(3)利用WebQuestionsSP 数据集验证了本文方法的有效性,实验结果也证实了本文提出的模型取得了当前最好的效果。

1 相关工作

知识库问答是一种利用知识库中结构化的知识对自然语言问题进行推理回答的任务。目前主流的知识库问答有两类,分别是基于语义解析的方法和基于神经推理的方法。

1.1 基于语义解析的知识库问答

基于语义解析的方法通过模板和标注信息对问题进行解析,并且转化为一个图查询语句,在知识库中执行该查询语句来获取答案。为了更好地理解自然语言形式的问题,许多方法依赖于句法分析,例如依存关系[10-11]。文献[12]提出了一个STAGG(staged query graph generation)框架,首先定义一个可以直接转化为Lambda 演算的查询图,然后将语义解析的过程演变为查询图生成过程。利用图谱信息对语义解析空间进行了裁剪,简化了语义匹配的难度。对于人工模板的依赖问题,文献[7]提出了一种自动生成模板的QUINT 模型,能够自动从问题语句的组成部分和KG 查询之间的对齐中学习语句-查询模板。

但是,知识图谱上往往存在链接缺失问题,为语义解析方法带来了额外的挑战。若问题所要查询的关系链接恰好缺失,那么即使模型对问题的解析是正确的,查询时也无法产生正确的答案。同时,这个问题也增大了模型在训练过程中学习到错误模式的概率,导致性能下降。

1.2 基于神经推理的知识库问答

基于神经推理的方法主要利用语义相关性,设计相应的打分函数对候选实体进行打分,选取得分最高的作为答案。文献[13]是该类方法的基础模型。文章首先对问句进行句法分析,并提取特征词汇,将其转化为问句特征图;然后在KG 内提取相关候选答案的特征图;最后将问句中的特征与候选特征图中的特征进行组合,直接通过分类器来学习。

为了丰富问答时的支撑信息,部分工作[14-15]提出用额外的问题相关文本语句(例如维基百科中与问题相关的文本语料)等非结构化知识来补充从知识库中提取的子图,形成一个异构图,并在其上进行推理,取得了效果的提升。

除了额外的文本语料库外,文献[16]采用了知识库嵌入的方法,通过进行缺省链接预测来缓解知识库的稀疏性。MCCNNs[9]通过多列卷积神经网络来对问句的三个方面(答案关系路径、答案上下文和答案类型)进行理解和分布式表征学习,获取更多有效的特征,取得了优异的效果。

但是,由于该类方法需预先对图谱中实体进行训练,在获得的表示向量的基础上开展研究,这导致了其无法回答动态场景下新出现实体(冷启动)相关的问题。

2 方法与模型

本章首先给出了知识库问答的任务定义,其次详细介绍了模型的原理和训练预测流程。

定义1(知识库问答任务)知识库问答的目标就是给定自然语言问题Q,通过对知识库G中的结构化信息进行查询和推理,从而得到实体集A作为问题的答案。

例如,针对问题“苏轼的父亲是谁?”,可以通过知识图谱中的<苏轼,父亲,苏洵>这个三元组得到答案。对于更为复杂的问题,可以利用多个三元组进行推理得到答案。例如,对于问题“钱学森的妻子曾任职于哪个单位?”,可以通过<钱学森,妻子,蒋英>和<蒋英,任职,中央音乐学院>两个三元组推理进行回答。

2.1 模型总览

本文提出了融合子图结构的神经推理式知识库问答模型ISS-NR,同时利用实体的子图结构信息与语义信息完成自然语言形式的多跳推理问答。模型的总体框架如图2 所示,主要包括三个模块:

(1)问题编码:对自然语言形式的问题进行编码,将其转换为包含语义信息的向量形式,以作为后续相关操作的基础输入。

(2)子图信息抽取:为充分利用知识图谱的结构和语义信息,首先针对查询中的主实体从知识图谱中抽取其k阶子图,其次利用图神经网络捕捉结构信息,最后融合结构向量表示与神经推理中预训练得到的向量表示,为下一步的推理问答提供充分的支撑信息。

(3)答案评分:利用全连接网络对候选答案集进行评分排序,输出最后的预测结果。

2.2 问题编码模块

本模块旨在将自然语言形式的问题q编码为固定维度的向量eq,便于模型后续的处理和使用。为了让问句的编码具有泛化能力,不局限于某个具体实体的预测,在编码过程中,将实体信息从问句中删除,保留剩余部分作为编码的主体。具体而言,对于给定的问题q和问句中涉及的主实体h,首先将实体从问句中剔除,只保留不含实体的问句q′,再通过预训练模型RoBERTa(robustly optimized BERT approach)[17]将自然语言形式的问句转化为768 维的向量。

2.3 子图构建

存在语义关系的两个实体一般在结构关系上也会相近,因此ISS-NR 选取子图作为模型推理的范围。为方便表述,给出以下定义:

定义2(k阶问答子图)对于问题主题实体u和答案实体v,将u到v所有长度小于等于k的路径集合所构成的图称为实体u和v的k阶问答子图。

通过Dijkstra 算法实现对目标节点问答子图的抽取。Dijkstra 算法[18]是经典的最短路径算法,能够在图网络上计算一个节点到其他节点的最短路径。它的核心思想就是以起始点为中心向外逐层扩展,同时不断更新起始点到其他节点的最短路径长度,直到扩展到终点为止。问答子图抽取的具体流程可以归纳为五个步骤:

(1)选定目标节点u和v;

(2)分别选取u和v周围距离k以内的邻居节点和边,记为Nk(u)和Nk(v);

(3)计算Nk(u)和Nk(v)的交集Nk(u)⋂Nk(v);

(4)去除孤立节点;

(5)利用Dijkstra 算法计算每个节点到u和v的距离,保留到u和v的距离都小于k的节点,构成最终的关系子图。

问答子图中包含了问题实体u到答案实体v推理所需的路径和结构信息,为之后的模型步骤提供了充分的信息来源,同时也去除了无用信息,减少了模型推理的范围。

Fig.2 Framework of ISS-NR图2 ISS-NR 模型框架

2.4 子图信息学习

推理的前提是拥有充分且可使用的信息,为了让复杂的图结构转化为计算机能够处理运算的形式,ISS-NR 使用图神经网络对子图的结构进行嵌入学习。

其中,u为起始节点;v为末尾节点;d(i,u)表示节点i和u的最短距离;d(i,v)表示节点i和v的最短距离。

通过使用距离的独热向量来对节点进行标注,节点的表示能够充分包含关系子图上节点的结构拓扑信息,为之后的评分提供了信息基础。

标记完节点后,得到一个具有初始表示的关系子图,但是各个节点信息不够完善,缺失了重要的邻居节点和边的信息,无法直接进行推理。因此,需要在图嵌入模块使用图神经网络对节点的表示进行更新迭代,使得各个节点的嵌入表示能够蕴含邻居和边的信息,为推理提供充分的信息来源。ISS-NR 使用R-GCN(relational graph convolutional networks)[19]对子图的信息进行聚合,以更新各个节点的表示,为其增加邻居和边的信息,同时获取图G(u,rt,v)的嵌入表示。

R-GCN 将节点表示与邻居表示进行聚合,实现节点表示的迭代更新。更新的节点表示可以用下式进行计算:

在多次迭代更新后,节点的表示向量能够充分获取子图上的结构信息,而这些结构信息中则蕴含了问题的推理过程。

对各个节点的表示向量求和取平均值作为该子图的表示。假设R-GCN 网络的层数为L,则对于u和v的关系子图G(u,rt,v)可以用下式计算其嵌入表示:

其中,VG(u,rt,v)表示G(u,rt,v)中节点的集合。

通过使用R-GCN 对子图进行图嵌入学习,能够获得子图的表示向量和各个节点的表示向量,其中包含了丰富的图结构信息,为推理任务提供了信息基础。

2)建筑物纵横墙等交接处的两侧,不同地质条件、不同荷载分布、不同基础类型、不同基础埋深、不同上部结构的两侧,沉降监测点选取在建筑物拐角,并且容易进行测量的位置。监测点要牢固,容易保存,以便进行多次测量。

2.5 表示信息融合

为克服知识图谱中的链接缺失问题,ISS-NR 融合了知识表示模型ComplEx(complex embeddings)[20]训练得到的节点向量,以实现存在缺失的情况下,仍能利用语义相关性对问题进行推理预测。ComplEx能够将知识图谱中的关系和实体映射到复数空间中。

首先为知识库中每个实体随机赋值初始值,同时构建正样本集合和负样本集合,通过梯度下降法进行多次迭代训练,使真实样本更满足ComplEx 的约束条件,错误样本更远离约束条件,最终获得每个节点的ComplEx 表示向量。

2.6 答案评分

经过以上步骤获取了问题的语义向量eq,问答子图G(u,rt,v)的嵌入、问题主实体嵌入和答案实体嵌入,这些嵌入向量中包含了u到v推理所需的信息。

为了将向量中蕴含的信息进行提取输出,首先对获取的4 个嵌入表示进行聚合,将4 个嵌入直接拼接作为聚合向量进行后续的计算。

接下来使用线性层对聚合向量进行评分:其中,WT是线性层的权重系数矩阵。根据得分的高低来判断候选答案的可信度,得分越高代表答案正确的可能性越大。

2.7 训练与预测

2.7.1 模型训练

对于给定的问答训练集,将训练集中问题的正确答案作为正样本,然后随机替换答案构建负样本,通过给正样本打更高的分数来实现对模型权重参数的学习,其损失函数为:

其中,E 是训练集中所有三元组的集合;pi和ni分别指正样本和负样本;γ是边距超参数。使用Adam优化器[21]来实现对模型参数的学习。Adam 优化器是对随机梯度下降法的扩展,可以更有效地更新网络权重。模型训练的流程如图3 所示。

Fig.3 Training flowchart图3 训练流程图

2.7.2 模型预测

通过模型训练,可以得到所需的模型参数,实现对候选答案的问答子图进行评分,分数越高代表该候选答案为真的可能性越大。基于这样的模型结构,在对缺失的知识进行预测推理时,可以遍历G 中的所有实体,构建可能的候选实体列表:

对于列表中的三元组,使用训练好的模型对其进行可能性评分,选取评分最高的实体作为预测结果:

在绝大部分情况下推理预测的结果都是问题主实体head 两跳内的节点,因此,为了兼顾性能和准确度,在实际预测中,模型选取head 两跳内的节点作为候选答案进行评分,以获取更快的推理速度。

3 实验及分析

本章对ISS-NR 模型进行了实验测试,并且和传统方法进行了对比分析。

3.1 实验设定

3.1.1 实验数据集

本文使用WebQuestionsSP[22](https://www.microsoft.com/en-us/download/details.aspx?id=52763)作 为实验数据集验证模型效果。WebQuestionsSP 是为了解决真实问题构造的数据集,其中的问题来源于Google Suggest API,是目前使用最广泛的问答数据集之一。数据集包含训练数据2 998 条,测试数据1 639 条,数据样例如表1 所示。

Table 1 Example of dataset content表1 数据集内容示例

此外,由于WebQuestionsSP中的实体均在Freebase(http://www.freebase.com)中出现,本文选用Freebase的子集作为背景知识库进行实体预训练。Freebase是一个大型的知识库,含有超过26 亿条三元组和4 600 万个实体。由于原始知识库过于庞大且问答数据集中只包含知识库中部分实体和关系,本文对Freebase 进行筛选。考虑到WebQuestionsSP 中的大部分问题能够在两跳范围内推理解答,本文保留问答数据集中每个实体两跳范围内的节点。缩减后的知识库包含180万个实体和570万条三元组数据。

3.1.2 实验参数设定

实验中,模型的参数为:问答子图的阶数设置为2,阶数越大,问答子图的规模越大。模型也能够推断更复杂的信息,但是训练复杂度也会上升。对于实验数据集,跳数设置为2 较为合适。rel_emb_dim(关系嵌入的维数)设置为32,即对于知识库中的每个关系,将其编码为一个长度为32 维的向量。ent_emb_dim(实体嵌入的层数)设置为32,即对于知识库中的每个实体,将其编码为一个长度为32 维的向量。num_gcn_layers(GCN 的层数)设置为3。kge_model(嵌入的表示模型种类)设置为ComplEx。模型能够嵌入不同的表示模型,对于本次实验,选取ComplEx作为嵌入模型,向量维度设置为256 维。num_neg_samples_per_link(负样本抽取数量)设置为1,对于每个正样本。随机替换其头实体(或尾实体)构建1 个负样本。margin(间隔超参数)设为10。learning_rate(训练的学习率)设为0.01。参数设置如表2 所示。

Table 2 Model parameters表2 模型参数

3.1.3 对比模型与评价指标

为了验证本文模型的有效性,实验对比了当前主流的基准模型:

(1)KV-Mem(key-value memory networks)[23]是最早尝试在知识库问答任务中引入文本信息的模型之一,通过使用键值对的形式,将知识库中的事实和相关文本信息存储在一个内存表中,以供检索使用。

(2)STOP+KVQU+SQ(键值对增强模型)[24]在KV-Mem 的基础上进行了增强,加入STOP 模块和结构化查询方法。

(3)QUINT[7]利用问答对和依存树,能够自动从问题语句的组成部分和KG 查询之间的对齐中学习语句-查询模板,实现对复杂问题的回答。

(4)STAGG[13]定义了一个可以直接转化为Lambda 演算的查询图,将语义解析的过程演变为查询图生成过程。

(5)MCCNNs[9]使用多列卷积神经网络来对问句进行多方面的表征学习,通过评分函数对候选答案进行排序输出。

本文选取准确率(accuracy,ACC)作为性能评价指标。准确率用于衡量预测得分最高的实体是否在真实答案之中,该项数值越大表明模型越好,计算方式如下:

其中,Q表示问句数量;ET为问题Q的实际答案集合;P为模型预测得分最高的实体;函数E表示元素是否在集合中,其值域为{0,1}。

3.2 总体结果

为比较本文模型和基准方法的效果差异,本文在WebQuestionsSP 数据集上将ISS-NR 与上述基准模型进行了对比测试,实验结果如表3所示,ISS-NR的性能相对于基准方法有着显著的提升。STOP+KVQU+SQ在KV-Mem 的基础上进行了增强,同时引入了额外的文本信息,成为当前最优的基准模型。而ISS-NR通过充分提取知识库中相关实体的结构和语义信息进行问答推理,在不引入外部文本的情况下,准确率相对于最优基准模型提升了7.7 个百分点,说明ISSNR 能够更有效地利用知识库中的信息,显示出本文模型的优势。

Table 3 Comparison with baseline methods表3 ISS-NR 与基准方法结果比较

3.3 实体冷启动实验

在WebQuestionsSP 数据集中,训练集和测试集使用相同的知识库,因此模型训练时能够获取所有的实体信息,不存在实体冷启动的情况。为了验证模型解决实体冷启动问题的效果,本文在Web-QuestionsSP 数据集的基础上提出了两个新的数据集WebQuestionsSP(Half)和WebQuestionsSP(Zero)。其中WebQuestionsSP(Half)训练使用的知识库是预测时的子集,确保测试集中问题的答案实体不会在训练中的知识库出现,通过这样的方式模拟新增实体导致的冷启动问题;WebQuestionsSP(Zero)训练和预测时的知识库不存在交集,即预测步骤在模型完全未见过的知识库上进行,以模拟极端情况下的实体冷启动问题。在新的数据集上进行实验,结果如表4 所示,ISS-NR 在Half 和Zero 数据集上分别取得了53.1%和40.4%的准确率,其中ISS-NR 在Half 数据集上的效果接近了最优基准方法STOP+KVQU+SQ在完整数据集上的效果。说明ISS-NR 能够充分利用泛化的子图结构信息在从未见过的实体上进行推理问答,不会受到具体实体的限制,有效避免了实体冷启动问题。

Table 4 Results of cold start experiments表4 冷启动实验结果

3.4 消融实验

为了验证ISS-NR 各个模块的作用,本文使用消融实验的方法,在模型中剔除或改变某个结构测试效果,以验证该结构对模型的有效程度。

变种1ISS-NR(w/o Subgraph)。使用常规的子图替换原模型的问答子图模块。ISS-NR 使用的是问题主实体和答案实体之间的路径集合作为子图,同时将其余不构成路径的无关节点进行剪枝剔除,减少了无关信息的干扰。为了验证路径作为子图的有效性,将该模块修改为常规的子图抽取模式,即选取主实体和答案实体周围k跳范围内的节点集合作为子图。实验结果如表5 所示,ISS-NR(w/o Subgraph)在测试集上的效果明显弱于ISS-NR,说明多余的嘈杂信息对模型的影响较大,验证了子图抽取模式的作用。

变种2ISS-NR(w/o GCN)。使用常规的子图替换原模型的问答子图模块。在图嵌入模块,ISS-NR使用了R-GCN 对各个节点进行迭代更新,更新后的节点表示能够具有邻居节点的信息,为之后的推理提供信息基础。通过将R-GCN 的层数减少为一层,减弱模型获取邻居信息的能力,以验证该模块的效果。实验结果如表5 所示,ISS-NR(w/o GCN)在测试集上的效果略弱于ISS-NR。

变种3ISS-NR(w/o ComplEx)。在表示向量融合模块中,ISS-NR 将ComplEx 模型训练好的向量融合到了相应节点的表示上。为了验证融合表示模型的效果,直接去除ComplEx 模块进行测试。实验结果如表5 所示,ISS-NR 的效果要显著优于剔除融合模块的ISS-NR(w/o ComplEx),突出了融合的有效性。

Table 5 Results of ablation experiments表5 消融实验结果

4 总结

本文提出了一种融合子图结构的神经推理式知识库问答方法ISS-NR,实现了在问答推理过程中兼顾实体的语义与结构信息,以增强问答效果。实验结果表明,ISS-NR 在WebQuestionsSP 数据集上表现出较好的结果,同时有效避免了实体冷启动问题。最后,通过消融实验,验证了模型各模块的有效性。

ISS-NR 运用的结构信息来源于问答子图的抽取,但是抽取子图时需要多次使用最短路径算法,在实体链接稠密的知识库中耗时较长,影响了模型的训练和预测性能。下一步,计划对本文方法以及模型进行改进,优化问答子图的抽取过程,寻求模型的性能提升。同时,本文验证了模型在未见过的知识库实体上进行推理问答的能力,但是对于在知识库中未见过的关系进行训练则无法发挥作用,如何在新的关系上进行推理问答也是下一步的研究方向之一。

猜你喜欢

知识库语义向量
真实场景水下语义分割方法及数据集
向量的分解
汉语近义词辨析知识库构建研究
向量垂直在解析几何中的应用
向量五种“变身” 玩转圆锥曲线
汉语依凭介词的语义范畴
我国联合虚拟参考咨询系统知识库现状研究*
——基于与QuestionPoint的对比
位置与方向测试题