CS224W摘要11.Reasoning over Knowledge Graphs

Posted oldmao_2000

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CS224W摘要11.Reasoning over Knowledge Graphs相关的知识,希望对你有一定的参考价值。


CS224W: Machine Learning with Graphs
公式输入请参考: 在线Latex公式
本节课将介绍知识图谱上的推理任务(就是QA任务)。
主要思路如下:
1.基本概念
2.单跳查询(问答)
3.多跳查询
4.在不完整的KG上进行路径查询(借鉴TransE)
5.联合查询
6.在不完整的KG上进行联合查询(使用Query2Box)
7.Query2Box推广到更一般的形式
本节课用到的一个医学知识图谱。

Reasoning over Knowledge Graphs

Predictive Queries on KG

给出几个例子:

Query TypesExamples
One-hop QueriesWhat adverse event is caused by Fulvestrant?
(e:Fulvestrant, (r:Causes))
PathQueriesWhat protein is associated with the adverse event caused by Fulvestrant?
(e:Fulvestrant, (r:Causes, r:Assoc))
Conjunctive QueriesWhat is the drug that treats breast cancer and caused headache?
((e:BreastCancer, (r:TreatedBy)), (e:Migraine, (r:CausedBy))

从One-hop query到path queries(完整KG)

对于单跳查询,可以说非常简单,因为在KG里面已经有 ( h , r , t ) (h,r,t) (h,r,t)的三元组了,这个时候的单跳查询相当于:问题 ( h , ( r ) ) (h,(r)) (h,(r))的答案是 t t t吗。
For example: What side effects are caused by drug Fulvestrant?
例如:张三的爸爸是谁?
然后可以把单跳查询扩展到多跳查询,就是加多个关系进行计算,多个关系就会形成路径(path)
q = ( v a , ( r 1 , ⋯   , r n ) ) q=(v_a,(r_1,\\cdots,r_n)) q=(va,(r1,,rn))
其中 v a v_a va是开始实体(anchor entity),后面那些就是路径。
答案可以记为: [ [ q ] ] G [[q]]_G [[q]]G
图形化后:

例子:燕小六的七舅姥爷的三外孙女
“What proteins are associated with adverse events caused by Fulvestrant?”
v a v_a va is e:Fulvestrant
𝑟 1 , 𝑟 2 𝑟_1, 𝑟_2 r1,r2 is (r:Causes, r:Assoc)
Query:(e:Fulvestrant, (r:Causes, r:Assoc))

做这个查询就是用图的遍历即可,先遍历第一步 r 1 r_1 r1

遍历第二步 r 2 r_2 r2

但是实际上没有这么简单,因为KG是不完整的。
例如:如果Fulvestrant和Short of Breath之间少了一个关系,那么会导致最后结果少了一个。

为什么不先做KG Completion

根据上节学习到的知识,我们知道可以做知识图谱补全任务,是不是补全了之后再来做推理就完美了?
答案:不是的
因为在知识图谱补全任务中,得到的补全的结果是一个非常稠密的图,补全任务中得到的关系是一个概率,所以大多数节点都会有一定概率出现关系(边)。
Time complexity of traversing a dense KG is exponential as a function of the path length 𝐿: O ( d m a x L ) O(d^L_{max}) O(dmaxL)

可以看到遍历操作是指数级别的复杂度,玩不起。下面看解决方案。

Answering Predictive Queries on Knowledge Graphs

Task: Predictive Queries

要在缺失信息(边)的情况下作出回答,相当于:Generalization of the link
prediction task
核心思路:
根据TransE的socore函数:
f r ( h , t ) = − ∣ ∣ h + r − t ∣ ∣ f_r(h,t)=-||h+r-t|| fr(h,t)=h+rt
可以把查询的表征理解为: q = h + r q=h+r q=h+r
那么Predictive Queries的目标就是要使得查询的表征与答案的表征越近越好。
f q ( t ) = − ∣ ∣ q − t ∣ ∣ f_q(t)=-||q-t|| fq(t)=qt
同样套路,先看单跳查询:

如果是多跳查询: q = ( v a , ( r 1 , ⋯   , r n ) ) q=(v_a,(r_1,\\cdots,r_n)) q=(va,(r1,,rn))

这样做的好处:
The embedding process only involves vector addition, (向量的加法) independent of # entities \\color{red}\\text{independent of \\# entities} independent of # entities in the KG!
看例子:“What proteins are associated with adverse events caused by Fulvestrant?”
查询表示为: (e:Fulvestrant, (r:Causes , r:Assoc))

步骤Query PlanEmbedding Process
1
2
3

这里要补充1点:由于几个KG补全模型中,只有TransE能处理composition
relations,TransR / DistMult / ComplEx则不行。

Conjunctive Queries(完全图)

对于更加复杂的Conjunctive Queries,上面的模型就不好用了,看例子:
“What are drugs that cause Short of Breath and treat diseases associated with protein ESR2?”
查询:((e:ESR2, (r:Assoc, r:TreatedBy)), (e:Short of Breath, (r:CausedBy))
Query plan:

按KG traversal的思路,把这个Conjunctive Queries分解为两个Path Queries,然后求公共区域(不是求交):

这也是在完全图的视角下完成的,如果缺少某个边,那么还是不行:

Query2box: Reasoning over KGs Using Box Embeddings


再回过头来看这个图,实际上这里面的灰色三个点实际上可能包含多个实体,解决这个表达 就要用框。

Box Embedding

Embed queries with hyper-rectangles (boxes)
𝐪 = ( 𝐶 𝑒 𝑛 𝑡 𝑒 𝑟 ( 𝑞 ) , 𝑂 𝑓 𝑓 𝑠 𝑒 𝑡 ( 𝑞 ) ) 𝐪 = (𝐶𝑒𝑛𝑡𝑒𝑟(𝑞) , 𝑂𝑓𝑓𝑠𝑒𝑡(𝑞)) q=(Center(q),Offset(q))
如果玩过数据库的QR Tree索引就会比较好理解,就是用一个矩形框来表征几个实体,例如:we can embed the adverse events of Fulvestrant with a box that enclose all the answer entities.

对于一些特殊的表示:
1.单个实体可以看做offset为0的矩形框,就是一个点。
2.每个关系会产生一个新的矩形框
3.多个矩形框可以做交集操作,得到的仍然是一个框(可以是空)
看上面的例子:
“What are drugs that cause Short of Breath and treat diseases
associated with protein ESR2?”
查询:((e:ESR2, (r:Assoc, r:TreatedBy)), (e:Short of Breath, (r:CausedBy))
再次看:

Query PlanEmbedding Space
1
2
3

Projection 和Intersection

这里补充一下从点(或者矩形框)通过关系得到新box的操作:Projection Operator P \\mathcal{P} P
Box × Relation → Box
𝐶 𝑒 𝑛 ( 𝑞 ′ ) = 𝐶 𝑒 𝑛 ( 𝑞 ) + 𝐶 𝑒 𝑛 ( 𝑟 ) 𝑂 𝑓 𝑓 ( 𝑞 ′ ) = 𝑂 𝑓 𝑓 ( 𝑞 ) + 𝑂 𝑓 𝑓 ( 𝑟 ) 𝐶𝑒𝑛 (𝑞') = 𝐶𝑒𝑛 (𝑞) + 𝐶𝑒𝑛 (𝑟)\\\\ 𝑂𝑓𝑓 (𝑞') = 𝑂𝑓𝑓 (𝑞) + 𝑂𝑓𝑓(𝑟) Cen(q)=Cen(q)+Cen(r)Off(q)=Off(q)+Off(r)

然后还有求相交操作Geometric Intersection Operator J \\mathcal{J} J
Take multiple boxes as input and produce the intersection box.
求相交后的结果小于等于原来Box的面积,相交结果的中心应尽量接近求交的矩形中心。
这个求相交操作也是分别求相交后的结果的面积和中心两个部分。
对于中心:以输入矩形的中心做加权求和后作为新矩形中心。看下图的红色部分。
对于面积:是三个投影相交的公共部分。看下图的阴影部分。

求中心的数学表达:

w i ∈ R d w_i\\in\\R^d wiRd is calculated by a neural network f c e n f_{cen} fcen (with trainable weights)
这里老师还给出了 w i w_i wi的另一种解释,相当于自注意力机制权重,从上面的图可以看到,面积大的那么新中心离其越近。实际上上面的 w i w_i wi就是走的softmax公式,就是算权重。
求Offset(相交阴影)的表达如下:
O f f ( q i n t e r ) = min ⁡ ( o f f ( q 1 ) , ⋯   , o f f ( q n ) ) ⊙ σ ( f o f f ( o f f ( q 1 ) , ⋯   , o f f ( q n ) ) ) Off(q_{inter})=\\min\\left(off(q_1),\\cdots,off(q_n)\\right)\\odot\\sigma(f_{off}(off(q_1),\\cdots,off(q_n))) Off(qinter)=min(off(q1),,off(qn))σ(foff(off(q1),,off(qn)))
前面一项是找出所有输入矩形框中最小的那个。
f

以上是关于CS224W摘要11.Reasoning over Knowledge Graphs的主要内容,如果未能解决你的问题,请参考以下文章

CS224W摘要总纲(已完结)

CS224W摘要总纲(已完结)

CS224W摘要10.Knowledge Graph Embeddings

CS224W摘要03.Node Embedding

CS224W摘要05.Message passin and Node classification

CS224W摘要15.Deep Generative Models for Graphs