第十五届中国中文信息学会暑期学校暨中国中文信息学会《前沿技术讲习班》的回放链接:http://conference.cipsc.org.cn/ssatt2020/
学习笔记
- 唐建:Neural and Symbolic Logical Reasoning on Knowledge Graphs
唐建:Neural and Symbolic Logical Reasoning on Knowledge Graphs
摘要
知识图推理是电子商务中的推荐、生物医学知识图中的药物再利用等诸多应用中一个重要的基础性问题。在本教程中,我将全面介绍知识图推理的最新进展,包括:
(1)基于知识图嵌入的方法(如:TransE、TransR和RotatE);
(2)传统的归纳逻辑规划方法和现代的神经逻辑规划方法;
(3)结合神经和符号逻辑方法进行知识图推理的最新进展。
简单介绍:
1. Reasoning in Continuous Space:连续空间上做推理。
方法:TransE、TransR等
2. Reasoning in Symbolic Space:符号逻辑上做推理。
方法:Logic programming等
3. Neural-Symbolic Reasoning:连续空间和符号逻辑上做推理。
方法:pLogicNet、ExpressGNN等
4. Logic Rule Introduction/Learning。基于知识图谱已有知识去推断logical rule,基于logical rule在做推理。
方法:Inductive logic programming和Neural logic programming(基于神经网络推断logical rule)。
介绍Logical Rules的三种类型:
- 对称、非对称关系。Eg:对称:结婚;非对称:父亲。
- 互逆关系。Eg:丈夫、妻子。
- 组合关系:Eg:妈妈 的丈夫是我的父亲。
讲座大纲:
Part1:Logical Reasoning in Continuous Space将entity和relation投影到连续空间上,做推理
TransE思想:
- 将所有的entity和relation都投影到连续空间领域,表示成低维度向量。
- 定义relation:是head entity到tail entity的translation翻译。
- 基于TransE可以建模哪种类型的logical rules?
互逆可以:“r1=-r2”
组合可以:“h+r1=x,x+r2=t,则:h+r3=t(先r1+r2就是r3)”
对称不可以:“h+r=t;t+r=h,则:r=0,h=t是不可以的,r=0意味着无法embedding嵌入表示”
TransR思想:
对TransE进行改进,将所有的entity和relation都投影到同一个空间(欧氏空间)里面,会产生问题。
改进:entity space 矩阵投影到 relation space,希望在投影中head 与tail接近。
RotatE思想:
对TransE进行改进,TransE不可以Model对称的关系,将所有的entity和relation都投影到附属向量空间里面,定义relation embedding:r定义为head到tail的旋转。建模不同关系:
对称关系可以:角度=0或者180。
互逆关系可以:角度=-角度
组合关系可以:角度3=角度1+角度2
缺点: 组合关系没有考虑关系的顺序(r1、r2和r2、r1;妻子的父亲和父亲的妻子)
优化思想
TransE、TransR、RotaE都是:使得head entity在平移或者旋转后接近tail entity。
本质是分类问题:正例负例,观测到的事实是正例(知识图谱中观测到的事实,<h,r,t>),其他的三元组是负例(固定r,构造负例:<h’,r,t‘>等)。对于给定的三元组,预测是属于正例负例的概率。distance越小,正例越高;将distance转换成概率,sigmoid方法0-1的值,k个负例,用Loss function优化entity和relation embedding对于所有都适用。
缺点:构造了多个负例,导致学习的负例的概率高。
Self-adversarial Negative Sampling。
改进了上面的思想,刚开始学习简单例子,随着学习不断进行,学习难的思想(实际是负样本,但是属于正样本的概率高)sample的概率高。
其他方法
不同方法分析
数据集和实验结果
s1至s3test是:逐渐变难
开源的方法:
Part2:Symbolic Logic Reasoning (Reasoning in Symbolic Space)传统的AI方法,在符号逻辑上进行推理
Logic Programming:
前项算法推理:基于当前所有的事实,将logic rules应用不断的到当前的事实中,得到新的事实。缺点:需要大的内存,将所有的logical rules存到内存中,再进行推理。
后项算法推理:对每个查询词,找到和当前问题相关的事实进行推理,构造一个搜索树。缺点:每次只能构建一个搜索树。
Logic Programming in Probabilistic Ways——Markov Logic Network:
本质:把一阶谓词逻辑跟graph model做结合,每一个node是事实,不同事实通过logic rules连接在一起。
解决logic rules的alternative:推理出的logic rule可能会存在错误(住在城市,就是有国籍)。
- 对每一条logic rule赋予权重
- 将所有logic rules基于已有的事实做前项推理,得到权重(权重越大,rule越可信)。
缺点:复杂的图结构无法使用;召回率较低。
Logic Programming in Probabilistic Ways——Stochas Logic Network:
与Markov Logic Network不同:做后项推理。
对每个query,基于不同的路径,得到不同的答案,对每个答案得到权重,归一化
其他方法:
Part3:Neural-Symbolic Reasoning连续空间和符号逻辑上做推理。
pLogicNet
Inference:根据graph embedding方法定义variational 方法:对于未观测到事实的事例,定义每件事情正确或错误的概率。
预测每个未知的事实是正确还是错误的,每个事实都知道正确还是错误的。
Learning:他的邻居(这个fact涉及到相关的fact),learning学习弱的权重。
对每个事实,基于它相关事实正确与否推断它正确与否。
Part4:Logic Rule Introduction/Learning
Inductive Logic Programming
新的领域有Graph,没有Logic Rule 。对于给定的Graph,如何进行Logic Rule的推断和学习,挖掘出Rule。
生成Logical Rule应用到Backgroud facts中,符合facts则有用。
Neural LP核心思想:
生成链状的logic rules,对每个logic rules都有权重,将所有logic rules都用来推理,但选择最大权重的Rules。生成logic rules有模版,长度是n。Vi是当前的entity,用one-hot来表示;每个关系由矩阵来表示,对所有可能的entity去测试是否有关系。
问答:Vx是当前entity=1,其他=0;一步推理Mq;两步推理Mp。
RNNLogic
logic rule链式,可以找到正确答案的搜索EM空间变小