知识图谱推理

综述参考:
文献[27]对知识抽取的研究进展进行了综述,
文献[28-31]分别对知识图谱构建、实体对齐、知识表示学习以及知识融合进行了综述,
文献[32]对知识抽取、知识表示、知识融合和知识推理这4个方面的研究进展进行了总结和展望.
面向知识图谱的知识推理研究进展

面向知识图谱的知识推理旨在根据已有的知识推理出新的知识或识别错误的知识

它包括两方面的内容:
知识图谱补全(knowledge graph completion,knowledge base completion)[1316]
包括:
连接预测 (link prediction)[19-21]
实体预测(entity prediction)[22-24]
关系预测(relation prediction)[22-25]
属性预测(attribute prediction)[26]等

知识图谱去噪 (knowledge graph refinement,knowledge graph cleaning)[17,18].

据推理类型划分,将面向知识图谱的知识推理分为单步推理和多步推理,
根据方法的不同,每类又包括基于规则的推理、基于分布式表示的推理、基于神经网络的推理以及混合推理.

目前的知识图谱有
KnowItAll[5]
YAGO[6-8]
DBpedia[9]
Freebase[10]、
NELL[11]
Probase[12]等.

人工智能下一个十年

知识图谱+认知推理+逻辑表达 -> 认知图谱(Cognitive Graph)

深度学习算法经过的阶段:
1.向前网络:深度学习算法
2.自学习、自编码代表的学习时代
3.自循环神经网络,概率图模型
4.增强学习

路线:
1.脑科学
2.数据与知识

方向:
1.推理
2.可解释能力

paper: Das, R. , Neelakantan, A. , Belanger, D. , & Mccallum, A. . (2016). Chains of reasoning over entities, relations, and text using recurrent neural networks

pro : https://rajarshd.github.io/ChainsofReasoning/

OWL等规则及Jena工具

源码:https://github.com/debuluoyi

基于基本的Path-RNN的架构进行改进。
基本Path-RNN:
输入:两个实体之间的路径,
输出:推理出的二者之间的新关系。
将关系之间的连接用RNN表示来进行推理。路径的表示是在处理完路径中所有的关系之后由RNN的最后的隐状态给出的。

改进有:
1.之前要为每一个需要预测的relation-type单独训练模型。而优化后只训练一个RNN来预测所有的relation type,共享了RNN参数精度也显著提高了。共享了relation type的表示以及RNN的composition matrices,这样同样的训练数据变量就大大减少了。训练模型的损失函数用的是negative log-likelihood
2.本文使用了neural attention机制对多条路径进行推理。之前的工作只推理了relation,没有推理组成路径上节点的entities,本文对关系类型,实体和实体类型进行了联合学习和推理。
3.分别用Top-kaverage和LogSumExp等多纬度为每一条路径的相似度评分加上权重,这样就考虑了每一条路径包含的信息,而不仅仅是评分最高的那条。

解决方法和公式:
首先进行下列的定义:
(e_s,e_t):一对实体
S:实体之间的路径集合
Pi = {e_s,r_1,e_1,r_2,…,r_k,e_t}:(e_s,e_t)之间的一条路径,
其中,路径的长度是路径上的关系的数目
len(Pi) = k

y_rt 表示节点r_t的向量表式,维度为d
RNN模型将所有的关系放到Pi序列中使用了一个RNN网络。中间层表示是h_t。

其中W_hh(hh)和W_ih(dh)分别是RNN网络的参数,其中上标r表示的是询问的关系。Path-RNN对于每一个关系都有不同的参数(y_rt,W_hh,W_ih)。
上面的f是sigmoid函数,路径的向量表式Pi(y_pi)是最后的隐藏层h_k.

y_pi和y_r的相似度可以计算为:

对于一个实体对的N条通路,Path-RNN通过下列的公式计算了两个实体之间的关系: