Lecture 11.1 - Reasoning in Knowledge Graphs
CS224W Lecture 11. Reasoning in Knowledge Graphs using Embeddings
- 복습: Knowledge Graph Completion Task
- Reasoning over Knowledge Graphs
- Predictive One-hop Queries → Path Queries
- Predictive Queries with LIMITATION
Lecture 11. Reasoning in Knowledge Graphs using Embeddings
복습: Knowledge Graph Completion Task
거대한 Knowledge Graph가 주어졌을 때 어떻게 KG를 완성(missing part를 찾는 것)시킬 수 있을까요? 이에 대한 해결방법은 head와 relation이 주어졌을때 tails를 예측하는 것으로 바꿔 생각해볼 수 있습니다.
아래의 문학 Knowledge Graph의 예시에서 “J.K. Rowling”라는 heading과 “genre”라는 relation이 주어졌을 때, “Science Fiction”이라는 tail을 예측하는 task를 생각해 볼 수 있습니다.
Reasoning over Knowledge Graphs
KG에서의 추론(Reasoning)은 다음과 같은 목표로 생각해볼 수 있습니다.
- Goal: KG에서 multi-hop(=그래프 상에서 여러번 traverse) 추론하기
결국 multi-hop query를 예측하는 것이라고 생각할 수 있는데, 그렇다면 불완전하고(incomplete) 거대한(massive)한 KG에서 어떻게 multi-hop reasoning을 할 수 있을까요? 문제를 정의하기 위해 우선 query 타입들에 대해 알아보겠습니다. query 타입에는 아래의 그림과 같 3가지, one-hop
, path(multi-hop)
, conjuntive
query가 있습니다.
아래의 KG에서 각 query 타입의 예시 질문과 이에 따른 query 표기를 살펴보겠습니다.
Query 타입 | 예시(자연어 질문) | 예시(Query) |
---|---|---|
One-hop Queries | What adverse event is caused by Fulvestrant? F에 의해 일어나는 부작용은? | [e:Fulvestrant, (r:Causes)] |
Path Queries | What protein is associated with the adverse event caused by Fulvestrant? F에 의해 일어나는 부작용과 관련된 단백질은 무엇인가? | [e:Fulvestrant, (r:Causes, r:Assoc)] |
Conjunctive Queries | What is the drug that treats breast cancer and caused headaches? 유방암을 치료하는데 쓰이지만 두통을 일으킬 수 있는 약물은 무엇인가? | ([e:BreastCancer, (r:TreatedBy)], [e:Migraine, (r:CausedBy)]) |
*e: entity, r:relation
Predictive One-hop Queries → Path Queries
사실 KG completion 문제는 One-hop query문제들로 나누어서 생각해볼 수 있습니다. One-hop보다 더 복잡해지면 One-hop을 더 여러개 붙인다고 생각하면 되기 때문입니다.
그래서 결국 N-hop query는 다음과 같이 “achor”인 $v_a$를 시작점으로 하는 여러개의 relation들이 이어지는 $(r_1, r_2, …, r_n)$으로 나타낼 수 있습니다. 이때 해당 KG completion에 맞는 정답 query는 여러개일 수 있기 때문에 $\llbracket q \rrbracket_{G}$로 나타냅니다.
예시를 들어 Notation을 살펴보겠습니다.
아래의 KG에서 Fulvestrant에 의해 일어나는 부작용과 관련된 단백질은 어떤 것들이 있을까요?
이 task에서 anchor node는 Fulvestrant가 되고, 2번의 relation들을 거쳐서 답변을 할 수 있습니다. Notation과 매칭하여 정리해보면 다음과 같습니다.
- $v_a$→ e:Fulvestrant
- $(r_1, r_2)$→ (r: Causes, r:Assoc)
- Query: [e:Fulvestrant, (r:Causes, r:Assoc)]
Query가 정리되었다면 이제 query에 맞는 정답 path를 찾아야 할 것 입니다. 어떻게 KG에서 정답 path들을 찾아볼 수 있을까요?
간단하게 KG에서 query의 relation 순서에 맞춰 traverse를 하면 됩니다. Fulvestrant에서 시작하는 (1) Causes relation을 가지고 있는 모든 다음 노드들을 찾습니다. 그 다음으로 해당 노드에서 (2) Association relation을 가지고 있는 모든 노드들을 찾아 정답을 찾으면 됩니다.
Predictive Queries with LIMITATION
단순하게 traversing하면서 query에 응답하는 것으로 해결하면 좋겠지만 불행히도 KG는 incomplete한 경우가 많습니다. 즉, 관련된 지식이 충분하지 못해서 그래프에 나타내지 못했을 수도 있고 모든 사실들을 상당한 시간과 비용을 들여 표현하기가 사실상 거의 불가능에 가깝기 때문에 대다수의 relation들이 missing되어 있는 incomplete KG를 받아들일 수 밖에 없습니다. 따라서 이런 불완전함때문에 모든 answer를 찾을 수 없습니다. 예를 들어 앞선 예시에서 Fulvestrant↔Short of Breath
의 relation이 missing되어 있다면 BIRC2
를 찾을 수 없을 것입니다.
그렇다면 (probabilistic) complete한 KG를 만드는 것을 우선적으로 해야 할까요?
하지만 complete한 KG는 매우 연결성이 약한 관계조차로 0이 아닌 매우 작은 값(확률)으로라도 표현이 될 것이기 때문에 매우 dense할 것입니다. 이렇게 dense한 KG에서 traversing의 시간복잡도는 path의 길이를 $L$이라고 했을 때 $d^L_{max}$가 될 것이기 지수적으로 증가할 것이기 때문에 구하기 어려워집니다.
따라서 incomplete한 KG에서 path-based queries를 구하는 task인 Predictive queries를 정의하고 문제를 풀게 됩니다. 이 task는 link prediction task가 좀 더 일반화된 것이라고 생각할 수 있으며 one-step prediction을 multi-step prediction으로 확장하는 부분이 중요한 포인트입니다.
Original Lecture Video : CS224W: Machine Learning with Graphs 2021 Lecture 11.1 - Reasoning in Knowledge Graphs