分享嘉宾 | Lan Nok Yat
文稿整理 | William
嘉宾介绍
Introduction
知识图谱是Google在2003年提出来的,最初是用在推广搜索里,然后根据数据进行筛查,再构建起图谱。在信息检索过程中,采用图上信息检索或配置Ram。这里列举了四个基本的知识图谱,如图1所示。
图1 四种知识图谱
第一个是开放域,指里面是百度百科的一些搜索的知识图谱。
第二个是预训练模型,比如BERT、transformer,主要分成encode,decode以及TGT,T5等三个框架来构建出一个对应的知识图谱。
第三个是最近比较火的新冠知识图谱演变和研究新冠之间感染还有药物之间的一些关系。
第四个是科学家的知识图谱,每一个人可以算作一个节点, 跟他合作过的或者是引用过的人之间会存在一个边的联系,如果应用值越大,引用量越高。
但今天主要回答一个问题:怎么在图谱上面做多跳逻辑推理。在这之前,先介绍一下一阶逻辑查询,即任何一个query都能抽出对应的实体。比如给定query:which field cannot win a Nobel Prize?这里面要把field和Nobel Prize以及win构建出联系,然后进行处理。其实是给计算机基本的逻辑运算,对应一些专用名词,再跟query进行交替,然后再寻找存在哪些领域进行作答。然后就回答出来。所以query就转成了对应的magic form,即逻辑范式,用存在、并、或、非来进行处理,核心是识别query中的实体。
实际上,知识图谱存在几个问题,首先是存在不完整性,实体之间的关系缺失或不完整。其次是密集程度过高,补全难度过高。故现有的知识图谱进行多跳推理有几个主流的思路,一个叫路径搜索,最著名的一个代表作是TransE。第二个是现在比较流行的空间嵌入。
Translating Embedding
首先构建出来了一个头实体和尾实体关系,做query时,通过向量的关系会迈到低维的空间向量,然后H+R可以得到query embedding。通过向量的property就可能算出来Q,最后更新模型,即让Q和T的一个距离减少。这其实是一个简单欧氏距离,多种关系的查询就是用开始的图节点去对应relation一路问下去,Q就是R1加到Rn。
基于此模型,可以处理任意的三元组关系和逻辑运算。但是对于知识图谱不完整的情况,则需要先补全, 存在很大的计算成本。第二点是一定会记录中间的载量,计算空间和查询会很耗时。
Query2box
为了解决上述问题,提出了空间几何嵌入的方法,即Query2box,如图2所示。
图2 Query2box
第一个是开box,简单粗暴的把query mapping到一个矩形或一个长方形的空间里面,初始化中间节点的位置,然后再加一个偏置,这里面的投影就对应了实体,relation是进行相加的一个投影,进行处理。现在这些box要进行计算,如果进行并,那最后要求的是中间一个面积。这里是用一个东西来进行学习center之间的对应权重,然后softmax进行求解。通过权重进行相乘,则必然会落在一个空间里,然后再来求它边界的最小值。其中核心步骤叫set,简单理解为集合经过多重MLP的传递,达到缩放的目的。
析取范式是这样一个逻辑,这里有三个query,分别是Q1、Q2和Q3,它们能对应V1、V2和V3节点,通过mapping,可以通过Q+relation来得到V,所以在求这个的时候,就可以整体解决。
对于如何求解欧式距离的问题,欧式距离分成两个参数,即空间平面上面任何的节点和对应的query,然后进行求和。可以理解为训练了两个参数进行学习,在第四层上表现出来就是多维的空间和参数量进行处理。完全可用outside或是inside来处理,但inside效果必然是没有两个参数在一起好,这里outside是求V对应query的最大值。然后求V节点与另一个的相减,这样就求得这段距离。所以,这两个距离的参数和整个计算有一个边界, 即distance和magic相减后一定是个正值。还有负采样求出对应的负节点, 固定了K,取得多个负样本来进行学习,更新模型。
ConE
ConE可以有效的处理projection,intersection和negation operators这些问题。这里面是把query和relation通过一个扇形来进行表达,同理,每个entity和relation都有一个对应的角度,如图3所示。
图3 ConE扇形表达
比如100维的query,这里面对应access,然后angle在里面对应400维的一一匹配关系。projection是单X和angle,这里的X必然是[-Π,Π]的范围, intersection是0到360度的变化。范围不能弄错,因为扇形进行making的时候,是规定的。union的非是存在一定的边界效应,可能会有些影响对每一步的操作。
Projection计算式子如下:
同理是一个relation,这里entity和relation其实跟box一样是简单相加,但是,在这前面,除了过了MLP以后,前面用了一个函数是为了确保到负派到正派的范围。如果不加,就会溢出这个范围。那还有其他办法来解决,即不遵循此公式,但是讲范围限定死,那怎么加都不会超过范围。
然后第二点是intersection也是进行多层神经网络一个传递,角度依旧限定死掉。因为这些计算就是正常的MLP,只要把范围固定死,那整个逻辑就闭环。第二个参数求最小,要确保范围一定是小于等于这个范围里面的。最后用disive来进行求解,然后就对应这个角度,求解出这个部分。
Distance计算公式:
也是将其分成一个outside和一个inside,这两个来求扇形的距离是不太好求的。这里面分成一个set和一个S来进行求解,这其实是把整个转换到对应的区间。转换到sin正弦函数上,然后进行magin,求完以后,也就是正弦函数之间的距离,将此作为对应好的一个距离,最后更新和模型方法一样。这样即可更新好distance和损失函数。