基于知识图谱的问答应用分析

Knowledge Based QA System Construction

基于知识图谱的问答系统构架分为四个方面:

  • Entity Detection
  • Entity Linking
  • Relation Prediction
  • Evidence Integration

然而,想要应用知识图谱,Knowledge Graph Embedding也是必不可少的环节。目前研究的 KBQA 暂时专注在简单知识库问答上:即根据一个问题,抽出一条三元组,生成 Sparql 语句,进而进行知识图谱查询返回答案。 应用知识图谱后,我们不必生成查询语句,可以直接根据head实体和relation得到tail实体的embedding并应用。

Dataset

常用知识图谱数据分为以下几种:

  • freebase系列:freebase数据集拥有超过5M的实体和1M的关系,来源于开放性知识库。可以构建大型知识图谱。
  • NLPCC2016KBQA:本数据集是中文数据集,来自 NLPCC ICCPOL 2016 KBQA 任务集,其包含 14,609 个问答对的训练集和包含 9870 个问答对的测试集。并提供一个知识库,包含 6,502,738 个实体、 587,875 个属性以及 43,063,796 个三元组。
  • Todo

常用QA数据:

  • SimpleQuestion_v2:基于freebase系列知识的问答,Facebook制作
  • Todo

Model

首先介绍基于深度学习的知识图谱构建和应用:

1. Knowledge Graph Embedding

对知识图谱进行embedding旨在对知识图谱进行知识表示。常用方法有Trans系列等,Trans系列论文可见我的另一片博文),

2. Predicate and Head Entity Learning Models

1. Predicate Representation Learning && Head Entity Learning Model

对于关系和头实体的表示,可以使用Bi-LSTM和Attention机制,将问题中的entity和predicate映射为graph embedding中的表示并提取出来。

3. Head Entity Detection Model

如果在训练时将头实体直接训练为graph embedding中的表示,计算量会很大(实体数很多),所以KBQA提出了一种新的Head Entity Detection模型,减少了计算量。

作者将相同或者相近的实体名设为一种实体,再去解决相同实体名带来的歧义问题。为了简化问题,作者使用双向神经网络(Bi-LSTM),但不含Attention层。首先将句子进行word embedding,然后经过Bi-LSTM,再经过全连接和softmax层,得到目标向量 ,的两个值可以代表第j个token属于两个label category的策略(如entity name token和non entity name token)。用这种方式我们可以将token分类并识别头实体名。

4. Joint Search on Embedding Spaces

作者利用关系信息提出了一种联合距离度量方法,可以表示为:

其中, $n(·)$是实体或者关系的名称,使用L2正则化计算距离。

整理流程为: