Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

올라프의 AI 공부

TransR 논문 리뷰_Learning Entity and Relation Embeddings for Knowledge Graph Completion 본문

프로젝트/Graph Embedding

TransR 논문 리뷰_Learning Entity and Relation Embeddings for Knowledge Graph Completion

jioniee 2023. 4. 29. 01:03

Abstract

지식그래프 완성은 entity 간의 link prediction을 하는 것을 목표로 한다.

TransE, TransH와 같은 모델은 relation을 translation으로 간주하고 Entity embedding과 Relation embedding을 만든다.

하지만, 본 논문은 entity도 다양한 측면을 가지고 있고 다양한 relation도 이러한 다양한 측면의 entity에 집중하고 있기 때문에 같은 공간에 두 임베딩을 만들 경우, 차원이 불충분하다고 주장한다.

이에 Entity embedding과 Relation embedding을 각각 다른 차원에 구축하는 TransR을 제안한다.

TransR은 아래 두 단계로 진행된다.

Step1. Project entities from entity space to corresponding relation space

Step2. Build translation between projected entities

실험에서는 세 가지 Tasks(link prediction, triple classification, relational fact extraction)로 모델을 평가하고 있다.

 

 

Introduction

KG(지식그래프)는 Entities와 풍부한 Relations의 구조화된 정보를 인코딩한다.

KG completion은 SNA(사회연결망 분석)에서 link prediction을 하는 것과 비슷하지만 다음과 같은 이유들로 더 어렵다.

(1) KG의 노드들은 다른 유형과 특징을 가진 Entity들이다.

(2) KG의 엣지들은 다른 유형의 Relation들이다.

따라서, KG completion을 위해서는 두 Entities 사이에 Relation가 있는지 없는지 결정할 뿐만 아니라, 어떤 유형의 Relation을 가지고 있는지도 예측해야 한다.

 

KG를 연속적인 벡터 스페이스에 임베딩하려는 노력들이 있다.

TransE와 TranH가 가장 심플하고 효과적인 방법이다. (TransE는 이전 포스팅에서 소개했으니 자세히 알고싶다면 참고하길 바란다.) TransE는 Entities과 Relationships에 대해 벡터 임베딩을 학습시킨다. 이 벡터 임베딩은 k차원이라는 같은 차원에 translation된다. TransH는 1-to-N, N-to-1, N-to-N 관계에서 발생하는 문제들을 해결하기 위해 제안되었다.

TransE translation of embedding

 

하지만, 위 TransE와 TransH 모두 k차원이라는 같은 스페이스 내에 Entities embedding과 Relations embedding을 만들었고 이는 관계 유형에 따라 가까울 수도 혹은 멀어질 수도 있다는 사실을 간과하고 있다.

 

[TransR 제안 배경]

따라서 본 논문에서는 각각 다른 Entity spaceMultiple Relation space (relation-specific entity spaces)에 Entities와 Relations를 모델링하고 해당 relation space에서 translation을 수행하는 TransR을 제안한다.

TransR translation of embedding

 

Simple illustration of TransR

[CTransR 제안 배경]

Head-Tail Entity 쌍은 다양한 패턴을 보여준다. 하나의 Relation 벡터로 모든 translation을 수행하기에는 불충분하다.

예를 들어, "location_location_contains"는 국가-도시, 국가-대학, 대륙-국가 등 많은 패턴들을 가질 수 있다.

따라서, TransR을 확장하여 다양한 Head-Tail Entity 쌍들을 그룹으로 클러스터링하여, 각 그룹 내에서 명확한 relation 벡터를 학습하는 cluster-based TransR, CTransR을 제안한다.

 

Method

TransR

TransR은 각 triple에 대해 head entities embedding와 tail entities embedding를 k차원으로, relation embedding은 d차원으로 설정한다. 이 두 개의 차원은 반드시 같은 것은 아니다.

 

Entities의 Projected 벡터는 다음과 같이 정의된다.

 

TransR의 Score function은 다음과 같다.

 

 

CTransR

TransE, TransH, TransR 모두 각 Relation에 대해 하나의 유니크 벡터를 학습한다. 하지만 이러한 Relations들은 오히려 다양하기 때문에 해당 Relation 하에서 모든 Entity 쌍들을 fit시키는 것을 잘 표현하지 못할 가능성이 크다. 따라서, CTransR이 제안되었고 CTransR은 다음과 같은 단계로 진행된다.

Step1. 먼저 input instances를 몇 개의 그룹으로 분류한다.

특정 relation r에 대해 모든 Entity 쌍 (h,t)가 몇 개의 그룹으로 클러스터링 되고, 각각의 그룹 내에 Entity 쌍이 비슷한 relation r을 표현하길 기대한다. 모든 Entity 쌍 (h,t)는 클러스터링 내에서 (h-t)로 표현된다.

Step2. 각 클러스터에 대해 분리된 relation vector v_c와, 각 Relation에 대한 행렬 M_r을 학습시킨다.