李帅驰 使用门限图神经网络语义建模的知识库问答
新闻来源:IR实验室       发布时间:2019/3/28 13:14:33

  这篇论文《Modeling Semantics with Gated Graph Neural Networks for Knowledge Base Question Answering》利用了已有的自动生成语义图的方法,使用GGNNs(Gated Graph Neural Networks)得到语义图中问题结点的向量表示Vg,与使用CNN得到问题的向量表示Vq计算余弦相似度,来实现基于知识库的问答系统。这篇论文被COLING 2018录用,作者是来自于德国达姆施塔特工业大学计算机科学系UKP实验室和AIPHES研究小组的Daniil Sorokin和Iryna Gurevych。

1  引言

知识库问答是自然语言处理的一个重要问题。任务就是,给定一个自然语言的问题,在知识库中去找到能组成答案的一系列实体。为了检索到正确答案,需要通过知识库中可用的实体和关系进行精确的问题语义建模。

 

在Wikidata数据库中左图所示的问题可以建模成如右图所示的样子。知识库中的任何可替代节点q的实体将成为答案的一部分。这篇论文中,作者设计了一个语义分析的方法,对于每一个输入问题都构建多个如上的明确的结构化的语义图,这个图可以转换成查询语句到知识库中提取答案。

一些先进的语义分析方法通常关注输入问题的句法分析,或者检测单个的关系,而忽视了语义分析的结构或者仅仅是近似地建模。Reddy使用了问题的句法结构来构建所有可能的语义分析,通过一个手工定义特征的线性模型来选择正确的分析。Yih的方法将所有的语义分析限定到一个核心的关系并且加入一组手工定义的限制条件,再计算核心关系和问题的相似得分来建模语义分析。从上图可以看到缺少对结构建模的方法在需要多于一个关系的更复杂的问题上表现不佳。

于是作者总结出了本篇论文主要贡献有以下三点:

1.  现有KBQA方法对于复杂问题表现不佳。

2.  首先在由KB中可能的实体和关系组成的有向图上应用GGNN网络。

3.  与baseline对比,在复杂问题上取得了提升。

2  方法

这篇论文的方法总体框架如下图所示。首先,根据问题中的实体生成多个语义图,然后使用GGNN(Gated Graph Neural Networks)得到语义图中问题结点的向量表示Vg。另一方面,使用DCNN(Deep Convolutional Networks)得到问题的向量表示Vq。最后计算Vq和Vg的余弦相似度,使其越相似越好。

2.1  语义分析

2.1.1  语义图

一个语义图由一个问题变量结点q,来自Wikidata的实体和关系,以及一些约束条件组成。问题“泰勒斯威夫特的第一张专辑是什么?”的语义图如下图所示。

作者把一个图定义为一个边的集合ε,由Wikidata中的实体和关系组成。每条边都把问题结点q链接一个或两个Wikidata中的实体。因此,Wikidata可以被描述为一个非常巨大的图,W = (E; R; I)。其中,E是实体的集合;R是二元关系的集合;I是关系实例的集合,例如r(e1; e2), r ∈ R; e1, e2 ∈ E。这个定义也是受到前人的查询图的启发的,作者允许关系可以与q以外的其他节点相连,允许已知实体与q节点之间的更长路径。因此,他们定义的语义图是查询图的超集,可以对更复杂的语义建模。另外,图和SPARQL查询语句是同构的,可以查询数据库来评价图的表现。

2.1.2  构建语义图

作者参考了Yih等人2015年的工作,不需要句法分析的分步构建图的方法,定义一组状态的集合和一组动作的集合,在每个状态应用它们来扩充当前的语义图。一个状态是一个图和一组自由实体的元组:,其中。初始状态。动作的集合中有三种动作:。分别是:

1. 

2. 

3. 

第一个动作是,在t时刻,从F中拿出一个自由实体。然后查询数据库,检索关于实体e的可用关系类型的集合。对于每一个关系都新建一个当前图的副本,然后在q节点和当前实体间加上一个新的有向边。第二个动作与第一个动作过程基本和第一个相似,但是不加新的边而是给最新加入的边加上一个修饰语。第三个动作是加入一条新边,带有最大或者最小排序的限制条件。Rd是允许日期作为值的关系类型。应用了一步ae的结果如下图所示,可以在知识库中找到三种关系连接“Taylor Swift”结点,构成三个不同的语义图。

通过这样的更新方式最终对于一个问题能得到很多的语义图。

2.2  表示学习

2.2.1  DCNN(Deep Convolutional Networks)

DCNN在各种NLP任务上对于构建句子级别的表示十分有效,所以作者使用DCNN学习问题的一个表示。DCNN的结构如下图所示,首先把问题的token首尾加上起始结束的标记。然后在Embedding层对照预训练的词向量表替换成词向量。这里的词向量使用的是六十亿词的语料使用GloVe训练的50维词向量。经过CNN层和池化层最终的到向量Vq表示问题。

2.2.2  GGNN(Gated Graph Neural Networks)

早在2005年就有了图神经网络(GNN, Graph Neural Networks)的概念,它并不是近期新提出的神经网络模型。它根据邻近的结点和关系迭代地更新图中结点的表示,一般分为传播过程和输出过程。具体的讲解可以通过最后的“参考文献与相关资源”了解。

作者设计的传播过程的模型如下图所示,对于实体和关系的token:,Embedding后经过一个全连接层得到向量表示:。然后通过下图的五个公式进行结点的更新。

到达了预设的时间步以后训练停止,将此时刻问题结点q的向量取出,通过一全连接层得到问题的向量表示Vg:

3  实验

3.1  数据集

作者使用了两个问答数据集进行实验。

WebQSP-WD是从WebQSP数据集中提取的一部分,包含自然语言的问题、答案的FreebaseID和从Freebase中检索答案的SPARQL查询语句。由于Freebase不再提供服务,从freebaseID到WikidataID做了映射,并且把答案没有映射的问题过滤。但是由于Wikidata中可能没有关系路径,所以不能确保问题都是能回答的。该数据集包含了简单问题和复杂问题。

QALD-7是QALD-7评测任务“English question answering over Wikidata”的数据集,包含人工构建的小规模复杂问题。作者不使用该数据集训练模型,只用作训练域以外的评价。

两个数据集都以json格式存储,统计信息如下图所示。

3.2  模型

Baselines

STAGG (re-implementation of Yih et al. (2015)) 使用神经网络和人工特征的结合,以往工作中在复杂问题上表现最好的。

Single Edge model:DCNN编码问题和语义图的第一条边。

Pooled Edges model:DCNN编码问题和语义图的所有边,包含语义图的所有信息,但是不考虑图的结构。

图模型:

Graph Neural Network (GNN)和Gated Graph Neural Network (GGNN)。

3.3  训练模型

    使用S-MART实体连接系统提取每个问题的实体集合。损失函数采用优化最大间隔损失函数:。一些参数设置如下图所示。

3.4  实验结果

    在WebQSP-WD测试集上的结果如下图所示,可以看到GGNN取得了最好的表现。

按照确定正确答案需要关系数量的多少分解模型的结果如下图所示,随着问题变得复杂,Single模型和STAGG模型的表现明显变差。GGNN的表现普遍较优,作者分析,在需要关系数量为4的位置性能明显下降的原因是,GGNN网络结构复杂,参数较多,而训练数据较少未满足充分训练的要求。

在QALD-7数据集上的结果如下图所示,GGNN同样取得了较好效果。

4  总结

这篇论文解决旧问题,采用旧思路,很多地方引用了前人工作,但是应用了新方法GGNN,并且扩展了查询图的定义,提升了复杂问题的问答表现。

5    参考文献与相关资源

Ø  论文地址http://aclweb.org/anthology/C18-1280

Ø  该代码在Github上开源,URLhttps://github.com/UKPLab/coling2018-graph-neural-networks-question-answering

Ø  WebQSP数据集:https://www.microsoft.com/en-us/download/details.aspx?id=52763

Ø  QALD数据集:https://project-hobbit.eu/challenges/qald2017/qald2017-challenge-tasks/#task4

Ø  Microsoft Research关于GNN的讲解视频:https://www.youtube.com/watch?v=cWIeTMklzNg

Ø  GATED GRAPH SEQUENCE NEURAL NETWORKS, Microsoft Research, ICLR 2016.

Ø  三篇关于GNN的综述论文:

n  Graph Neural Networks: A Review of Methods and Applications

n  Deep Learning on Graphs: A Survey

n  A Comprehensive Survey on Graph Neural Networks