陈 千,高晓影,王素格,郭 鑫
(1. 山西大学 计算机与信息技术学院,山西 太原 030006;2. 山西大学 计算智能与中文信息处理教育部重点实验室,山西 太原 030006)
问题生成任务指在给定形式的数据(如文本[1-2]、图像[3]、表格[4]或知识图谱[5-7])上生成对应问题的任务。本文主要研究在给定的知识图谱上生成对应问题的任务,该研究具有广泛的应用前景,受到学术界和工业界的广泛关注。如为了训练一个基于知识图谱的问答系统神经网络,需要大规模的问答对训练样本,但人工标注训练样本的成本很高,且规模较小,问题生成任务尤其是在知识图谱上生成高质量的问题对(样本)成为解决该问题的有效手段;基于知识图谱的问题生成技术在聊天机器人、智能客服、阅读理解系统等诸多下游应用中具有重要应用价值。
目前,知识图谱问题生成任务普遍使用编码器-解码器框架将知识图谱子图作为输入生成对应的问题[8-9]。其中,在对使用知识图谱中一个三元组生成问题的研究中,Elsahar等[9]用额外的上下文信息丰富编码器,并为解码器提供注意力机制和复制机制提升生成问题的质量。Liu等[10]提出一个包含多种上下文和可感知答案的损失函数的编码器-解码器来表达给定的谓词和答案。虽然这些模型能够生成高质量的问答对,它们没有解决多跳推理问答任务中问答对短缺的问题。Kumar等[6]提出用基于Transformer的模型从知识图谱子图(即多个三元组)中生成难度可控的多跳问题。Bi等[7]提出在知识图谱子图上使用额外知识库生成语义丰富且多样性的问题。然而他们只是将知识图谱子图看作是多个三元组的集合,但没有利用子图本身含有的显式图形结构信息。为了解决这个问题,Chen等[11]提出利用双向图编码器获取知识图谱子图的显式结构信息、生成有目标答案的问题的Graph2Seq模型。但其忽视了在编码器中知识图谱子图中独特的二部图结构以及在解码器中来自窗口大小相邻节点的局部信息对节点的重要程度。
为了应对上面提及的挑战,首先,我们利用知识图谱子图独特的二部结构进行信息传递,扩展图神经网络编码器,学习具有多关系边的知识图谱子图信息,用来应对第一个挑战。此外,我们将Graph2Seq思想应用到知识图谱问题生成中,用来应对第二个挑战。最后我们提出滑动窗口分层注意力机制提升知识图谱子图窗口大小相邻节点带来的局部信息对节点的重要度,用来应对第三个挑战。
本文的主要贡献如下:
(1) 提出了用于从知识图谱子图中生成问题的Graph2Seq模型,使用一种沿着知识图谱子图的拓扑结构迭代传递节点和边信息完成图表示的方法,提高具有多关系边的知识图谱子图表示。
(2) 使用滑动窗口分层注意力机制扩展RNN解码器,能够在生成问题词时,提升知识图谱子图窗口大小相邻节点带来的局部信息对节点的重要度。
(3) 本文方法在WebQuestions和PathQuestions两个数据集上BLEU-4指标均有明显提升。
传统问题生成技术主要使用基于模板的方法在知识图谱上生成问题[5,12-13],但模板的设计需要大量的人力,且当任务领域不同时,系统泛化性较差,基本没有可扩展性。随着神经网络的发展,编码器-解码器框架被用于知识图谱问题生成任务。Serban等[8]首次提出将知识图谱三元组用于回答自然语言问题的神经网络模型,并创建了30M Factoid Question-Answer语料库。然而,他们的方法需要大量的客观问题对作为训练数据。为了解决这个问题,Song等[13]提出一种不需要人工设计模板的无监督系统,解决从特定领域的知识图谱中生成问题。Indurhi等[14]提出一种基于RNN的问题生成模型,用于从知识图谱中生成问答对。然而,这些方法[8-9,14]仅仅使用单个三元组生成简单的问题,且采用的RNN编码器不能有效处理具有图形结构的数据。Kumar等[6]提出基于Transformer的编码器-解码器用于编码知识图谱子图,同时生成多跳且难度可控的问题,这是首次使用神经网络从知识图谱子图(即多个三元组)生成问题的模型。为了生成多样且更流畅的问题,Bi等[7]提出使用额外知识库获取更多信息以生成高质量的问题,但以上的方法只是将知识图谱子图看成一个三元组集合,没有充分利用知识图谱子图显式的结构特征,也没有充分利用三元组之间相互传递的信息。受场景图生成任务Xu等[15]的启发,本文提出一种沿着知识图谱子图拓扑结构迭代传递节点和边信息的图编码器,有效获取子图的显式结构信息,提高具有多关系边的知识图谱子图表示。Chen等[11]提出利用双向图编码器获取知识图谱子图的显示结构信息、生成有目标答案的问题的Graph2Seq模型,但解码器中的注意力机制是普通的全局注意力,不能提高来自窗口大小相邻节点的局部信息对节点的重要程度。本文使用滑动窗口分层注意力机制来关注来自窗口大小相邻节点的局部信息,准确得到节点注意力权重分布和词典中每个词的分布,进一步完善了解码器中对知识图谱子图节点丰富信息的获取。
知识图谱问题生成任务是指: 给定知识图谱子图,生成与子图相对应的问题。
具体示例如表1所示。
表1 知识图谱问题生成的相关示例
本文提出一种基于迭代信息传递和滑动窗口注意力的问题生成模型(Iterative Message Passing and Sliding Window Hierachical based Question Generative Model,ImpSWH-QG),如图1所示。该模型由节点和边编码模块、迭代信息传递(Iterative Message Passing,Imp)图编码器模块和基于滑动窗口分层(Sliding Window Hierachical,SWH)注意力的RNN解码器模块构成。该模型首先将知识图谱子图和答案输入到迭代信息传递图编码器中,得到子图和节点的向量化表示;然后利用SWH注意力机制关注知识图谱子图中的每一个节点,得到节点注意力分布pv(v),利用pv(v)循环神经网络(Recurrent Neural Network,RNN)的输出状态和上下文向量得到词表词预测分布pvocab(w)和生成概率pgen;最后利用生成概率pgen,结合节点注意力分布和词表词预测分布pvocab(w)来生成问题,本文接下来将对该模型进行具体介绍。
图1 基于迭代信息传递和滑动窗口注意力的问题生成模型图
RNN能对序列数据进行有效建模,但其不能有效处理图结构数据,如知识图谱。在对知识图谱进行编码的时候,一种解决方案是将子图线性化为一个序列,进而使用基于RNN的编码器对序列进行编码,但这种编码方式丢失了获取子图显式结构的完整信息。
本文的编码器由节点和边编码模块以及Imp图编码模块构成。其中,节点和边编码模块对输入知识图谱中节点和边使用预训练模型实现向量初始化,Imp图编码模块在知识图谱子图上利用信息传递的基本思想来学习具有显式图结构信息的子图和节点表示,具体细节如下所述。
2.2.1 节点和边编码模块
我们用V表示知识图谱子图中节点的集合{v1,v2,…,vi,…,vg},其中每个节点都有自己的属性,如节点名或节点ID;同样,使用E表示知识图谱子图中边的集合{e1,e2,…,ej,…,er},其中每个边都有自己的属性,如边名或边ID。
2.2.2 迭代信息传递图编码模块
为了将知识图谱子图显式的图结构信息融入到子图表示中以及对节点或边的双向信息进行建模,本文引入Imp图编码模块,如图2所示,获取具有显式图结构信息的子图表示和节点表示。
图2 迭代信息传递图编码模块的结构
Imp图编码模块主要包括信息池化和信息传递两个模块。其中,信息池化模块构建以节点为中心的原始图作为节点信息池化层的输入,以边为中心的对偶图作为边信息池化层的输入,节点信息池化层和边信息池化层分别从进、出边两个方向(融合)得到节点信息(向量),从进、出节点两个方向(融合)得到边信息(向量);信息传递模块接收节点信息(向量)和边信息(向量)作为输入,并分别输入到节点GRUv层和边GRUe层,完成一次知识图谱子图中节点和边的信息传递,具体细节如下:
为了计算子图的向量表示,首先将所有的节点向量表示经过一个全连接层,再对它们进行最大池化,最终得到一个d维的向量hG表示子图的向量表示,子图中节点向量表示和子图向量表示用作后续的解码器工作。
3.选中水印。利用菜单栏的“选区工具”(可根据要去除的水印的形状选择“矩形选框”或“椭圆选框”),选中我们要去除的水印部分(如图3所示)。可以按住键盘上的Alt按钮同时向上滚动鼠标对图片进行放大,这样可以更准确地对水印区域进行选择。
在解码阶段,本文引入基于SWH 注意力机制的RNN解码器,提升对知识图谱子图中来自窗口大小相邻节点的局部信息对节点的重要程度,由SWH注意力机制得到的节点注意力分布和已解码的词表词预测分布共同得到问题词预测分布。
2.3.1 滑动窗口分层注意力
为了生成更加流畅的相关问题,解码器的每一步会生成一个单词,当前步单词的选择依赖于节点注意力分布和已解码的词表词预测分布。为了准确得到节点注意力分布,本文提出SWH注意力机制,如图3所示。其中,滑动窗口的大小与获取节点局部信息的多少有关,滑动窗口越大,能够获取的节点的局部信息越多。
图3 滑动窗口分层注意力机制图
具体来讲,对于输入子图中的节点vi来讲,首先将当前解码器的输出状态st作为查询单元,对节点vi及其节点vi左右两边各w个窗口大小的节点进行局部注意力,并得到局部上下文向量Li,如式(10)、式(11)所示。
其中,Z为参数矩阵。
然后将当前解码器的输出状态st作为查询单元,对上一步得到的局部上下文向量集合={L1, …,Li, …,Lg}进行全局注意力,得到节点注意力分布pv(vi)以及最终的上下文向量如式(12)~式(14)所示。节点获取到的局部注意力和全局注意力共同构成了SWH注意力机制中的分层注意力,因此注意力机制融入分层中。
其中,节点注意力分布表示模型在解码过程中对知识图谱子图中不同节点状态的比重。
2.3.2 基于SWH注意力机制的RNN解码器
在解码阶段,本文将子图嵌入hG分别经过两个全连接层得到解码器LSTM的初始隐藏状态(c0和s0),对于第t个时间步,将t-1步的隐藏状态st-1和前一个单词qt-1作为解码器的输入,获得该时间步解码器隐藏状态st,如式(15)所示。
(16)
通过采用Chen等[11]提出的节点级的复制机制从输入子图中直接复制子图中的节点属性,解决了词级别复制机制的问题。由于由SWH注意力机制得到的节点注意力分布pv(vi)已经度量了知识图谱子图中节点与部分解码隐藏状态的相关性,结合词表词预测分布pvocab(w)及对应的生成概率pgen,得到问题词预测分布p(w),如式(17)所示。
p(w)=pgenpvocab(w)+(1-pgen)pv(vi)
(17)
(18)
此外,本文使用交叉熵损失函数作为目标函数,并用Adam优化器进行优化,如式(19)所示。
本文使用ImpSWH-QG模型分别在Web Questions(WQ)和PathQuestions(PQ)两个数据集上进行实验。本节首先介绍了要比较的基线模型;然后给出了任务的数据集与评测指标;接着分析了ImpSWH-QG模型与基线模型的实验结果;最后用两组实验验证了本文模型的有效性。
本文将以下模型作为问题生成任务的基线模型:
(1) L2A模型[1],该模型是一个具有注意力机制的基于LSTM的Seq2Seq模型,最初用在文本生成问题的任务中。
(2) Transformer(w/copy)模型[18],该模型使用Transformer编码器-解码器架构,将线性化的知识图谱子图作为输入,并使用Klein等人[19]提出的具有复制机制的开源Transformer实验设置。
(3) MHQG+AE模型[6],这是首次使用神经网络从知识图谱子图(即多个三元组)生成问题的模型,该模型使用基于Transformer编码器对知识图谱子图进行编码,并使用基于Transformer解码器生成问题。
(4) KTG模型[7],该模型使用额外知识库获取更多信息生成语义丰富且多样的问题。
本文使用WQ和PQ两组数据集来对比评估模型,这两组数据集都是以Freebase作为基础知识图谱,其中WQ数据集包含了来自WebQuestionsSP[20]和ComplexWebQuestions[21]的问答数据集,每一条问答数据集都包含自然语言问题、问题对应的SPARQL语句和答案实体。为了构建知识图谱子图,Kumar等[6]将WQ中的每一条数据中的SPARQL查询转换成对应的子图,我们的实验数据集使用Kumar等[6]转换后的数据。WQ数据集包含18 989/2 000/2 000(训练/验证/测试)条数据。与WQ数据集不同的是,PQ数据集[22]中的知识图谱子图是跨越2到3跳两个实体之间的路径,包含9 793/1 000/1 000(训练/验证/测试)条数据。表2描述了WQ和PQ两个数据集中知识图谱中最小/最大/平均三元组数,问题长度的最小/最大/平均值。
表2 WQ &PQ规模统计
本文使用BLEU-4[23]、METEOR[24]和ROUGE-L[25]3个指标评价实验结果。其中BLEU-4统计了问题生成模型生成的问题句中4元词组与标准答案匹配的个数,验证问题生成模型生成的问题句的流畅性;METEOR综合考虑生成问题句的准确率和召回率,准确把握同义词对语义的影响;ROUGE-L用来预测标准答案中的单词在问题生成模型生成的问题句中出现的数量。
本节展示了本文模型与其他基线模型在WQ和PQ数据集上的评估结果,如表3所示。
表3 问题生成结果
从实验结果可以发现,在WQ和PQ两个数据集上,ImpSWH-QG模型与其他4个基线模型相比,BLEU-4、METEOR和ROUGE-L值都明显提高,说明基于图神经网络的编码器比基于RNN和Transformer的编码器更适合处理知识图谱子图,表明获取知识图谱子图显式图结构信息的重要性。与WQ数据集上的结果相比,基于Transformer的编码器在PQ数据集上的结果要高于其他3个基线模型,说明基于Transformer的编码器在处理序列模型上比其他3个基线模型更有效,因为PQ数据集中的子图结构偏向路径结构,而WQ数据集中的子图结构偏向树结构。但在PQ数据集上,ImpSWH-QG模型的BLEU-4和ROUGE-L值明显高于Transformer模型,这得益于解码器中SWH注意力机制的使用,准确得到节点注意力分布。
3.4.1 迭代信息传递图编码器跳数的研究
本文在WQ数据集上探究了跳数对Imp图编码器编码的影响,如图4所示。实验结果表明,图编码器跳数在一定的阈值内,能够提高模型的性能。具体而言,当跳数小于阈值4时,随着图编码器跳数的增加,图编码器有助于知识图谱子图的编码效果,但当跳数大于4时,图编码器降低了知识图谱子图的编码效果。
图4 迭代信息传递图编码器跳数的探究
3.4.2 SWH注意力机制的有效性
本文在WQ数据集上对ImpSWH-QG模型进行消融实验验证模型中SWH注意力机制的有效性,如表4所示。其中,Imp-QG模型是用普通注意力机制代替滑动窗口分层注意力的模型。
表4 问题生成结果
实验结果表明,与普通的注意力机制相比,模型中使用滑动窗口分层注意力机制后,三项评测指标都有明显的提升,准确得到节点注意力权重分布和词表词预测分布。
本文使用注意力可视化的方式对SWH注意力机制进行分析,如图5所示。
图5 SWH注意力机制的可视化分析
其中,纵坐标表示生成目标问题对应的知识图谱子图中的节点以及词典中相关的词,横坐标表示生成的目标问题中的各个单词;图中颜色的深浅表示权重大小。由图5可知,目标问题中的各个单词通过SWH注意力机制可以有效注意到节点词或词典词,提高了生成目标问题的质量。
3.4.3 实例分析
本文通过实例分析验证使用SWH注意力能提高生成问题的质量。表5分别展示了由未加SWH注意力机制的Imp-QG模型和含有SWH注意力机制的ImpSWH-QG模型生成的问题。
表5 问题生成结果
通过两个模型生成的问题来看,SWH注意力机制的添加,使问题生成模型在一定程度上改善了知识图谱子图和答案与问题不匹配的现象,ImpSWH-QG模型在生成问题时,滑动窗口技术能有效将知识图谱子图中节点名“i-duck-of-savoy”看作一个整体,并通过对知识图谱子图中相邻节点局部信息的关注,成功预测了生成问题中的疑问词“Where”。
本文提出的ImpSWH-QG模型,用Imp图编码模块编码知识图谱子图,用SWH注意力机制得到的节点注意力分布和词表词预测分布,来预测问题词预测分布,从而生成问题。实验结果表明,该模型在两个数据集三项指标上取得的结果都比基线高。
虽然本文提出的模型有助于在知识图谱子图上生成高质量的问题,由于仅仅依靠从输入的知识图谱子图中获取信息,导致生成的问题多样性低。未来我们将添加额外的知识作为输入,对生成问题的质量做进一步提高。