coredot.today
RotatE: 복소수의 회전으로 지식 그래프를 이해하다
블로그로 돌아가기
RotatE지식 그래프 임베딩복소 벡터 공간링크 예측TransEComplEx관계 패턴

RotatE: 복소수의 회전으로 지식 그래프를 이해하다

세상의 모든 관계를 '회전'으로 설명할 수 있다면? 2019년 ICLR에서 발표된 RotatE는 복소수 공간에서의 회전이라는 우아한 아이디어로, 지식 그래프 임베딩의 판도를 바꿨다. 수학의 아름다움과 AI의 실용성이 만나는 이 논문을 완전 해부한다.

코어닷투데이2026-04-0744

들어가며: 구글이 "고양이는 동물이다"를 아는 법

구글에 "고양이"를 검색하면, 오른쪽에 정보 패널이 뜬다. "포유류", "수명: 12~18년", "학명: Felis catus". 구글은 이 정보를 어디서 가져올까?

답은 지식 그래프(Knowledge Graph) 다. 2012년 구글이 "Things, not strings"이라는 슬로건으로 발표한 이 시스템은, 세상의 사실을 (주어, 관계, 목적어) 형태의 트리플(triple)로 저장한다:

  • (고양이, is_a, 포유류)
  • (서울, capital_of, 대한민국)
  • (아인슈타인, born_in, 울름)

Freebase에 19억 개, Wikidata에 100억 개 이상의 트리플이 저장되어 있다. 하지만 문제가 있다. 이 그래프에는 빈 곳이 너무 많다. 알려진 사실만 기록되어 있을 뿐, 추론 가능한 사실의 대부분이 빠져 있다. "(아인슈타인, nationality, 독일)"이 없더라도, "(아인슈타인, born_in, 울름)"과 "(울름, located_in, 독일)"로부터 추론할 수 있어야 한다.

빠진 링크를 예측하는 것이 지식 그래프의 핵심 과제이고, 이를 위해 등장한 기술이 바로 지식 그래프 임베딩(Knowledge Graph Embedding, KGE) 이다.

지식 그래프 임베딩 개념

그리고 2019년, ICLR에서 발표된 RotatE는 오일러 공식이라는 수학의 보석을 활용하여, 기존 모델들이 각각 일부만 다룰 수 있었던 관계 패턴 — 대칭, 반대칭, 역관계, 합성 — 을 단 하나의 연산(회전) 으로 모두 모델링하는 데 성공했다.


1부: 지식 그래프 임베딩의 역사 — TransE에서 RotatE까지

KGE 모델 진화 타임라인

시작: TransE (2013) — "관계는 이동이다"

모든 것은 2013년, Antoine Bordes 등이 NeurIPS에서 발표한 TransE에서 시작되었다. 아이디어는 놀라울 정도로 단순하다:

머리 엔티티(h)에 관계 벡터(r)를 더하면 꼬리 엔티티(t)에 가까워져야 한다.

h+rt\mathbf{h} + \mathbf{r} \approx \mathbf{t}

"서울"이라는 벡터에 "capital_of"라는 벡터를 더하면 "대한민국" 벡터 근처에 도달하는 것이다. 수직선 위에서 평행이동(translation) 하는 것과 같다.

TransE는 단순하면서도 강력했다. 하지만 치명적인 약점이 있었다:

💔
TransE의 대칭 관계 문제
"결혼" 같은 대칭 관계에서 h + r = t이면 t + r = h도 성립해야 한다. 이것이 성립하려면 r = 0이어야 하는데, 그러면 h = t가 되어 두 엔티티를 구분할 수 없다!

DistMult (2015) — "관계는 크기 조절이다"

Bishan Yang 등이 제안한 DistMult는 다른 접근을 택했다. 관계를 대각 행렬로 표현하고, 머리-관계-꼬리의 삼중 상호작용을 점수로 사용한다:

fr(h,t)=r,h,t=irihitif_r(\mathbf{h}, \mathbf{t}) = \langle \mathbf{r}, \mathbf{h}, \mathbf{t} \rangle = \sum_i r_i \cdot h_i \cdot t_i

이 함수는 h와 t를 바꿔도 값이 같다 — 즉 대칭 관계를 자연스럽게 모델링한다. 하지만 바로 그 때문에 반대칭 관계를 표현할 수 없다. "(사람, father_of, 아이)"와 "(아이, father_of, 사람)"을 구분하지 못하는 것이다.

ComplEx (2016) — "복소수를 도입하자"

Théo Trouillon 등이 발표한 ComplEx는 획기적인 아이디어를 가져왔다. 임베딩을 실수가 아닌 복소수 공간으로 확장한 것이다:

fr(h,t)=Re(r,h,tˉ)f_r(\mathbf{h}, \mathbf{t}) = \text{Re}(\langle \mathbf{r}, \mathbf{h}, \bar{\mathbf{t}} \rangle)

여기서 tˉ\bar{\mathbf{t}}는 t의 켤레복소수다. 복소수의 켤레를 취하면 허수부의 부호가 바뀌므로, h와 t를 교환할 때 값이 달라질 수 있다. 이로써 대칭/반대칭/역관계를 모두 모델링할 수 있게 되었다.

하지만 ComplEx에도 한계가 있었다: 합성(composition) 패턴을 추론할 수 없었다.

모델별 한계 정리

모델대칭반대칭역관계합성
TransE (2013)불가가능가능가능
DistMult (2015)가능불가불가불가
ComplEx (2016)가능가능가능불가
RotatE (2019)가능가능가능가능

어떤 기존 모델도 네 가지 패턴을 모두 다루지 못했다. 이것이 RotatE가 등장한 이유다.


2부: 네 가지 관계 패턴 — 왜 이것이 중요한가

본격적으로 RotatE를 이해하기 전에, 네 가지 관계 패턴이 무엇이고 왜 중요한지 실제 사례로 살펴보자.

관계 패턴 일러스트

패턴 1: 대칭(Symmetry)

r(x, y) ⇒ r(y, x)

"결혼", "형제자매", "roommate" 같은 관계. A가 B와 결혼했으면, B도 A와 결혼한 것이다.

앨리스
married_to →
married_to →
앨리스

WordNet에서는 similar_to 관계가 대표적인 대칭 관계다.

패턴 2: 반대칭(Antisymmetry)

r(x, y) ⇒ ¬r(y, x)

"father_of", "부분_of", "수도_of" 같은 관계. 서울이 대한민국의 수도이지, 대한민국이 서울의 수도가 아니다.

서울
capital_of →
대한민국

Freebase의 filiation(친자 관계)이 대표적이다.

패턴 3: 역관계(Inversion)

r₂(x, y) ⇒ r₁(y, x)

"hypernym"과 "hyponym" 의 관계. "개는 동물의 하위어(hyponym)"이면 "동물은 개의 상위어(hypernym)"이다. 서로 다른 두 관계가 방향만 반대인 것.

hyponym_of →
동물
동물
hypernym_of →

FB15k 데이터셋의 테스트 트리플 중 81% 가 역관계를 통해 추론 가능하다.

패턴 4: 합성(Composition)

r₂(x, y) ∧ r₃(y, z) ⇒ r₁(x, z)

가장 복잡하지만 가장 강력한 패턴. "엄마의 남편은 아버지"처럼 두 관계를 조합해 새로운 관계를 추론하는 것.

철수
mother →
영희
husband →
민수
↓ 합성 추론 ↓
철수
father →
민수

또는 지리적 관계에서: neighborOf(c₁, c₂) ∧ locatedIn(c₂, r) ⇒ locatedIn(c₁, r)


3부: RotatE의 핵심 아이디어 — 오일러의 선물

오일러 공식: 수학에서 가장 아름다운 등식

RotatE의 영감은 300년 전의 수학에서 왔다. 오일러 공식(Euler's formula):

eiθ=cosθ+isinθe^{i\theta} = \cos\theta + i\sin\theta

이 공식이 말하는 것은 놀랍도록 직관적이다: 복소수 eiθe^{i\theta}는 복소 평면에서 단위원 위의 점이며, 이것을 곱하는 것은 θ\theta 라디안만큼 회전시키는 것과 같다.

오일러 공식의 직관
  • ei0=1e^{i \cdot 0} = 1 → 회전 없음 (0도)
  • eiπ/2=ie^{i\pi/2} = i → 90도 회전
  • eiπ=1e^{i\pi} = -1 → 180도 회전 (유명한 오일러 항등식!)
  • ei3π/2=ie^{i \cdot 3\pi/2} = -i → 270도 회전
  • ei2π=1e^{i \cdot 2\pi} = 1 → 360도 회전 (원점 복귀)

핵심 통찰: 크기가 1인 복소수를 곱하면 회전만 일어난다. 방향은 바뀌지만 크기는 보존된다.

RotatE: "관계는 회전이다"

회전 개념 일러스트

RotatE의 핵심 아이디어는 한 문장으로 요약된다:

지식 그래프의 각 관계를 복소 벡터 공간에서의 회전으로 정의한다.

수식으로:

t=hr,ri=1\mathbf{t} = \mathbf{h} \circ \mathbf{r}, \quad |r_i| = 1

여기서:

  • h,r,tCk\mathbf{h}, \mathbf{r}, \mathbf{t} \in \mathbb{C}^k (k차원 복소 벡터)
  • \circ는 아다마르 곱(원소별 곱)
  • ri=1|r_i| = 1 제약조건으로 각 ri=eiθr,ir_i = e^{i\theta_{r,i}}

각 차원에서 독립적으로:

ti=hiri=hieiθr,it_i = h_i \cdot r_i = h_i \cdot e^{i\theta_{r,i}}

이것은 복소 평면에서 hih_iθr,i\theta_{r,i} 라디안만큼 회전시켜 tit_i에 도달하는 것이다.

거리 함수(스코어 함수)는:

dr(h,t)=hrtd_r(\mathbf{h}, \mathbf{t}) = \|\mathbf{h} \circ \mathbf{r} - \mathbf{t}\|

TransE가 "이동(translation)"이라면, RotatE는 "회전(rotation)"이다.

모델연산공간직관
TransEh + r ≈ t실수 공간 R^k수직선 위 평행이동
RotatEh ∘ r ≈ t, |r|=1복소 공간 C^k복소 평면 위 회전

4부: 왜 회전이 모든 패턴을 풀 수 있는가

이제 가장 흥미로운 부분이다. 왜 "회전"이라는 단순한 연산이 네 가지 패턴을 모두 해결하는가?

대칭: 180도 회전

관계 r이 대칭이려면 hr=t\mathbf{h} \circ \mathbf{r} = \mathbf{t}이면서 tr=h\mathbf{t} \circ \mathbf{r} = \mathbf{h}여야 한다.

hrr=h\mathbf{h} \circ \mathbf{r} \circ \mathbf{r} = \mathbf{h}, 즉 rr=1\mathbf{r} \circ \mathbf{r} = \mathbf{1}

이것이 성립하려면 각 ri=eiθir_i = e^{i\theta_i}에서 e2iθi=1e^{2i\theta_i} = 1, 즉 θi=0\theta_i = 0 또는 θi=π\theta_i = \pi.

ri=±1r_i = \pm 1이면 대칭 관계! 특히 ri=1r_i = -1 (180도 회전)은 두 번 적용하면 원래 위치로 돌아온다.

TransE에서는 대칭이면 r = 0이 되어 h = t가 강제되지만, RotatE에서는 ri=1r_i = -1이라는 자유로운 임베딩이 가능하다. 서로 다른 대칭 관계를 서로 다른 벡터로 표현할 수 있다.

시각적 이해: 대칭 관계

복소 평면에서 r=1r = -1 (180도 회전):

  • h가 (3, 2)에 있으면 → 180도 회전 → t = (-3, -2)
  • t에서 다시 180도 회전 → h = (3, 2) ✓ 원점 대칭!

반대칭: 180도가 아닌 회전

r이 반대칭이려면 r(x,y)¬r(y,x)r(x,y) \Rightarrow \neg r(y,x).

θi0\theta_i \neq 0이고 θiπ\theta_i \neq \pi인 모든 회전이 반대칭이다. 예를 들어 90도 회전: h를 90도 돌려 t에 도달했는데, t에서 다시 90도 돌리면 h가 아닌 다른 위치에 가게 된다.

역관계: 켤레 복소수

두 관계 r1r_1r2r_2가 역관계이려면:

r2(x,y)r1(y,x)r_2(x, y) \Rightarrow r_1(y, x)

RotatE에서 이것은 r2=rˉ1\mathbf{r}_2 = \bar{\mathbf{r}}_1 (켤레복소수)일 때 성립한다.

θr2=θr1\theta_{r_2} = -\theta_{r_1}, 즉 반대 방향으로 같은 각도만큼 회전.

hypernym이 30도 회전이라면, hyponym은 -30도(= 330도) 회전이다. 직관적으로 완벽하다!

합성: 각도의 덧셈

r1=r2r3r_1 = r_2 \circ r_3 (관계의 합성)이라면:

eiθ1=eiθ2eiθ3=ei(θ2+θ3)e^{i\theta_1} = e^{i\theta_2} \cdot e^{i\theta_3} = e^{i(\theta_2 + \theta_3)}

θ1=θ2+θ3\theta_1 = \theta_2 + \theta_3 — 각도가 더해진다!

30도 회전 후 45도 회전 = 75도 회전. 이것이 바로 관계 합성이다.

r₂ = 30°
motherOf: 철수 →(30°)→ 영희
r₃ = 45°
husbandOf: 영희 →(45°)→ 민수
r₁ = 75°
fatherOf: 철수 →(75°)→ 민수 ← 30° + 45° = 75° ✓

이것이 RotatE의 아름다움이다. 복소 평면에서의 회전이라는 단순한 연산 하나로, 네 가지 관계 패턴이 자연스럽게 해결된다.

직접 체험해 보자

아래 인터랙티브 도구로 복소 평면에서의 회전과 관계 패턴 모델링을 직접 실험해 볼 수 있다:


5부: Self-Adversarial Negative Sampling — 더 똑똑한 학습법

RotatE의 또 다른 기여는 자기 적대적 네거티브 샘플링(Self-Adversarial Negative Sampling) 이라는 학습 기법이다.

네거티브 샘플링이란?

지식 그래프에는 "참인 트리플"만 있다. "(아인슈타인, born_in, 울름)" 같은 사실만 저장되어 있지, "(아인슈타인, born_in, 파리)"가 거짓이라는 정보는 없다. 학습하려면 거짓 트리플(negative sample) 을 만들어야 한다.

기존 방법은 균일(uniform) 샘플링 — 머리나 꼬리 엔티티를 무작위로 바꿔 거짓 트리플을 만든다:

  • (아인슈타인, born_in, 파리) ← 꼬리를 바꿈
  • (나폴레옹, born_in, 울름) ← 머리를 바꿈

문제는 이렇게 만든 거짓 트리플 대부분이 너무 뻔한 거짓이라는 것이다. "(아인슈타인, born_in, 피자)"는 모델이 쉽게 구별한다. 학습에 도움이 안 된다.

Self-Adversarial: 어려운 문제를 더 많이 내자

RotatE의 해법은 현재 모델의 상태를 이용하여, 그럴듯한 거짓 트리플에 더 높은 가중치를 부여하는 것이다:

p(hj,r,tj{(hi,ri,ti)})=expαfr(hj,tj)iexpαfr(hi,ti)p(h'_j, r, t'_j | \{(h_i, r_i, t_i)\}) = \frac{\exp \alpha \cdot f_r(\mathbf{h}'_j, \mathbf{t}'_j)}{\sum_i \exp \alpha \cdot f_r(\mathbf{h}'_i, \mathbf{t}'_i)}

여기서 α\alpha는 온도(temperature) 파라미터다. 현재 모델이 "그럴듯하다"고 판단하는 거짓 트리플일수록 높은 확률을 받는다.

😴
균일 샘플링
"아인슈타인이 피자에서 태어났다" — 너무 쉬운 문제, 학습 효과 미미
🧠
Self-Adversarial 샘플링
"아인슈타인이 뮌헨에서 태어났다" — 그럴듯하지만 거짓! 이런 어려운 문제에 가중치를 높임
📈
결과
모델이 미묘한 차이를 학습하여 더 정확한 링크 예측 가능

최종 손실 함수:

L=logσ(γdr(h,t))i=1np(hi,r,ti)logσ(dr(hi,ti)γ)L = -\log\sigma(\gamma - d_r(\mathbf{h}, \mathbf{t})) - \sum_{i=1}^{n} p(h'_i, r, t'_i) \log\sigma(d_r(\mathbf{h}'_i, \mathbf{t}'_i) - \gamma)

TransE에 self-adversarial 기법만 적용해도 MRR이 .242에서 .298로 23% 향상되었다. 이 기법은 RotatE뿐 아니라 다른 KGE 모델에도 범용적으로 적용 가능하다.


6부: 실험 결과 — 숫자가 증명하는 것

벤치마크 데이터셋

데이터셋엔티티 수관계 수학습 트리플핵심 패턴
FB15k14,9511,345483,142대칭/반대칭, 역관계
WN1840,94318141,442대칭/반대칭, 역관계
FB15k-23714,541237272,115대칭/반대칭, 합성
WN18RR40,9431186,835대칭/반대칭, 합성

FB15k-237과 WN18RR은 역관계 트리플을 제거한 "어려운" 버전이다. 여기서 핵심 패턴은 합성이 된다.

FB15k & WN18 결과

RotatE
.952
H@10
pRotatE
.956
ComplEx
.947
DistMult
.946
HolE
.949
TransE
.943

WN18에서의 Hits@10 (높을수록 좋음)

FB15k-237 & WN18RR 결과 — 진짜 승부처

역관계 없이 합성 패턴이 핵심인 어려운 데이터셋에서 RotatE의 강점이 빛난다:

RotatE
.338 MRR
FB15k-237
ConvE
.325
TransE
.294
ComplEx
.247
DistMult
.241
RotatE
.476 MRR
WN18RR
ConvE
.43
ComplEx
.44
DistMult
.43
TransE
.226

핵심 관찰:

  • FB15k-237: 합성 패턴이 중요한 데이터셋에서 ComplEx가 크게 뒤처짐 (합성 추론 불가)
  • WN18RR: 대칭 패턴이 중요한 데이터셋에서 TransE가 크게 뒤처짐 (대칭 모델링 불가)
  • RotatE는 모든 데이터셋에서 최고 성능 — 네 가지 패턴을 모두 다룰 수 있기 때문

Countries: 합성 패턴의 직접 검증

Countries 데이터셋은 합성 패턴 추론 능력을 직접 테스트하도록 설계된 벤치마크다:

TaskDistMultComplExConvERotatE
S1 (단순 합성)1.000.971.001.00
S2 (중간 합성)0.720.570.991.00
S3 (복잡 합성)0.520.430.860.95

AUC-PR 점수. S3는 가장 긴 합성 체인을 요구하는 가장 어려운 태스크.

S3에서 ComplEx의 0.43 대비 RotatE의 0.95 — 압도적인 차이. 회전의 합성이 곧 각도의 덧셈이라는 수학적 성질이 빛을 발하는 순간이다.


7부: 임베딩 안을 들여다보다 — 패턴이 실제로 학습되었는가?

논문의 가장 인상적인 부분 중 하나는 학습된 관계 임베딩의 위상 분포(phase histogram) 분석이다.

대칭 관계: similar_to

WN18에서 학습한 500차원 RotatE의 similar_to 관계 임베딩 위상 θr,i\theta_{r,i}를 히스토그램으로 그리면, 값이 0과 π에 집중되어 있다. 즉 ri=ei0=1r_i = e^{i \cdot 0} = 1 또는 ri=eiπ=1r_i = e^{i\pi} = -1.

ri=±1r_i = \pm 1은 정확히 대칭 조건 ri2=1r_i^2 = 1의 해다. 모델이 이론적 예측대로 학습한 것이다.

역관계: hypernym ↔ hyponym

hypernym과 hyponym의 위상을 원소별로 더하면, 그 합이 0 또는 2π에 집중된다:

θhypernym,i+θhyponym,i0 (mod 2π)\theta_{\text{hypernym},i} + \theta_{\text{hyponym},i} \approx 0 \text{ (mod } 2\pi)

이것은 r1=rˉ2\mathbf{r}_1 = \bar{\mathbf{r}}_2 (켤레복소수), 즉 역관계의 이론적 조건과 정확히 일치한다.

합성 관계: 시상식 추론

FB15k-237에서 학습한 1000차원 RotatE를 분석한 결과:

  • r1r_1 = award_nominee/.../nominated_for
  • r2r_2 = award_category/winners/.../award_winner
  • r3r_3 = award_category/nominees/.../nominated_for

θ2,i+θ3,iθ1,i\theta_{2,i} + \theta_{3,i} \approx \theta_{1,i} 또는 θ2,i+θ3,iθ1,i+2π\theta_{2,i} + \theta_{3,i} \approx \theta_{1,i} + 2\pi

각도의 덧셈이 실제로 관찰된다. 이론이 실험으로 완벽하게 검증된 것이다.


8부: RotatE 이후 — 2019년부터 2026년까지

직접적 후속 연구들

RotatE의 "회전" 아이디어는 수많은 후속 모델에 영감을 주었다:

2019
QuatE — 복소수에서 사원수(quaternion)로 확장. 4차원 공간에서의 회전으로 더 풍부한 표현
2020
HAKE — 계층 구조를 극좌표의 반지름(modulus)으로 모델링. RotatE의 위상 + 계층 정보
2021
PairRE — 관계를 쌍(pair) 벡터로 표현. ACL 2021에서 발표
2022
RotateCT — 회전 + 곡률 변환(Curvature Transformation) 결합
2025
TP-RotatE — 경로 정보와 규칙을 RotatE에 통합. MRR 6.3% 향상

2026년: KGE가 LLM을 만났을 때

2026년 현재, 지식 그래프 임베딩은 LLM(대규모 언어 모델) 시대에 새로운 역할을 맡고 있다:

GraphRAG — 지식 그래프 + RAG

전통적 RAG(Retrieval-Augmented Generation)는 텍스트 청크를 검색하지만, GraphRAG는 지식 그래프를 활용하여 다중 홉 추론이 필요한 질문에 답한다. LinkedIn은 GraphRAG로 티켓 해결 시간을 40시간에서 15시간으로 63% 단축했다.

환각(Hallucination) 감소

FalkorDB는 지식 그래프 기반 RAG로 전통 RAG 대비 환각을 90% 감소시켰다. KGE가 학습한 엔티티/관계 임베딩이 LLM의 출력을 사실에 기반하여 검증하는 데 사용된다.

산업별 응용

의료/제약

약물-질병-유전자 관계 예측, 신약 후보 발굴

추천 시스템

사용자-아이템-속성 다중 관계 모델링

사기 탐지

거래-계좌-IP 간 비정상 패턴 추론

재료 과학

화합물-특성-구조 관계의 빠른 예측

산업 고장 진단

TH-RotatE: 철도 장비 고장 패턴 추론

검색 엔진

엔티티 연결, 질의 확장, 의미 검색

AI와 지식 그래프의 미래


마치며: 회전이라는 우아한 답

RotatE가 우리에게 보여준 것은, 때로는 올바른 수학적 프레임워크를 선택하는 것만으로 복잡한 문제가 우아하게 풀릴 수 있다는 것이다.

  • TransE: "관계는 이동이다" → 대칭 관계를 풀 수 없다
  • DistMult: "관계는 크기 조절이다" → 방향성을 잃는다
  • ComplEx: "복소수를 쓰자" → 합성을 풀 수 없다
  • RotatE: "관계는 회전이다" → 모든 것이 풀린다

오일러가 300년 전에 발견한 eiθ=cosθ+isinθe^{i\theta} = \cos\theta + i\sin\theta라는 공식이, 2019년에 지식 그래프의 관계 패턴을 모델링하는 열쇠가 되었다. 그리고 2026년, 이 아이디어는 LLM과 결합하여 AI의 신뢰성과 추론 능력을 한 단계 끌어올리고 있다.

수학의 아름다움이 실용으로 이어지는 순간 — 이것이 RotatE의 진정한 가치다.


참고 자료

  • Sun, Z., Deng, Z.-H., Nie, J.-Y., & Tang, J. (2019). "RotatE: Knowledge Graph Embedding by Relational Rotation in Complex Space." ICLR 2019
  • Bordes, A., Usunier, N., Garcia-Duran, A., Weston, J., & Yakhnenko, O. (2013). "Translating Embeddings for Modeling Multi-relational Data." NeurIPS 2013
  • Yang, B., Yih, W., He, X., Gao, J., & Deng, L. (2014). "Embedding Entities and Relations for Learning and Inference in Knowledge Bases." ICLR 2015
  • Trouillon, T., Welbl, J., Riedel, S., Gaussier, É., & Bouchard, G. (2016). "Complex Embeddings for Simple Link Prediction." ICML 2016
  • Dettmers, T., Minervini, P., Stenetorp, P., & Riedel, S. (2018). "Convolutional 2D Knowledge Graph Embeddings." AAAI 2018
  • 코드: https://github.com/DeepGraphLearning/KnowledgeGraphEmbedding