728x90

 Knowledge graph embedding은 연결되는 두 노드와 두 노드 사이의 관계를 적절하게 표현하여 head node의 embedding으로부터 어떤 relation을 취했을 때 이것이 tail node의 embedding과 비슷해지도록 만드는 것을 목적으로 한다. 이번 글에서는 knowledge graph embedding 중에서도 대표적인 네 개의 relation pattern을 모두 표현할 수 있는 방법인RotatE 방법에 대해 설명하겠다.

Motivation

 들어가기에 앞서, RotatE의 motivation에 대해 간단히 설명하겠다. 앞서 설명한 것처럼, knowledge graph embedding의 목적은 head node의 embedding에 어떤 relation을 취했을 때 이것이 tail node의 embedding과 비슷해지도록 만드는 것이다. 가장 간단한 예시로, 다음과 같은 head node와 relation, tail node가 있다고 하자.

예시

 이 관계를 가장 잘 설명할 수 있는 embedding은 우선 각각의 h, t 노드들이 2차원의 좌표로 표현되어야할 것이고, $h+r=t$ 이라는 식을 만족해야할 것이다. 그러므로 우리는 $||h+r-t||$라는 score function (cost function)을 정의할 수 있다. 이를 그림으로 표현하면 다음과 같다.

 하지만 다양한 형태의 knowledge graph embedding들은 우리가 위에서 언급한 네 가지 종류의 relation pattern을 모두 표현할 수가 없었다. 그렇기 때문에 이들을 모두 표현할 수 있는 knowledge graph embedding인 RotatE가 제시되었다.

Method

 RotatE는 각 head와 tail node를 $cos\theta + i sin\theta$ 형태의 complex embedding으로, relation을 head node로부터 tail node로의 rotation 형태로 표현한다. 이를 식으로 표현하면 다음과 같다.

RotatE의 embedding 방법 ($\circ$는 element wise producct를 의미)

 또한 이를 한 눈에 보기 쉽게 그림으로 표현하면 다음과 같다.

RotatE의 method

그리고 이를 이용한 score function은 다음과 같이 표현할 수 있다.

RotatE의 socre function

 식으로 보면 굉장히 간단하다. 그럼 이제부터 이들이 왜 네 가지 relation을 모두 표현할 수 있는지에 대해 알아보겠다.

Symmetry

 우선 symmetry에 대해 먼저 알아보겠다. Symmetry는 다음과 같이 정의할 수 있다.

symmetry의 정의

위 식을 만족한다는 조건을 우리의 RotatE의 정의에 따라 표현하면 다음과 같이 표현할 수 있다.

RotatE의 symmetry

 위 식을 만족하기 위해서는, 다음과 같이 r의 element wise product가 1이 되면 된다. 이는 다시 말해, 두 번의 r rotation을 거치면 원래 상태로 돌아오면 되는 것이다.

RotatE의 symmetry 조건

 이를 그림으로 표현하면 다음과 같다. 그러므로 우리는 symmetry relation을 RotatE로 표현할 수 있다.

RotatE의 symmetry 그림

Antisymmetry

 다음으로, antisymmetry에 대해 알아보겠다. Antisymmetry는 다음과 같이 정의할 수 있다.

antisymmetry의 정의

위 식을 만족한다는 조건을 우리의 RotatE의 정의에 따라 표현하면 다음과 같이 표현할 수 있다.

RotatE의 antisymmetry

 위 식을 만족하기 위해서는, symmetry의 경우와는 반대로 다음과 같이 r의 element wise product가 1이 아니면 된다. 그러므로 우리는 antisymmetry relation을 RotatE로 표현할 수 있다.

RotatE의 antisymmetry 조건

Inversion

 다음으로, inversion에 대해 알아보겠다. Inversion은 다음과 같이 정의할 수 있다.

inversion의 정의

위 식을 만족한다는 조건을 우리의 RotatE의 정의에 따라 표현하면 다음과 같이 표현할 수 있다.

RotatE의 inversion

 위 식을 만족하기 위해서는, 결국 $r_1$과 $r_2$가 반대 방향의 같은 각도의 회전이면 된다. 그러므로 우리는 inversion relation을 RotatE로 표현할 수 있다.

RotatE의 inversion 조건

Composition

 마지막으로, composition에 대해 알아보겠다. Composition은 다음과 같이 정의할 수 있다.

composition의 정의

위 식을 만족한다는 조건을 우리의 RotatE의 정의에 따라 표현하면 다음과 같이 표현할 수 있다.

RotatE의 composition

 위 식을 만족하기 위해서는, $r_2$의 회전과 $r_3$의 회전을 더했을 때 $r_1$의 회전과 곁과가 같으면 된다. 그러므로 우리는 composition relation을 RotatE로 표현할 수 있다.

RotatE의 composition 조건

Experiment

 이렇게 네 가지 relation을 모두 embedding할 수 있는 RotatE가 실제 task에서도 의미 있는 결과를 보여주는지를 확인하기 위해 실험이 필요하다. 이를 위해 link prediction에 RotatE를 적용시켜 보았다. 그 결과는 다음과 같다.

RotatE link prediction실험 결과

 그 결과, 대부분의 metric과 data에서 RotatE가 가장 좋은 결과를 보였다.

 이번 글을 통해 우리는 knowledge graph embedding의 종류 중 하나인 RotatE가 어떻게 동작하는지에 대해 알아보았다. 어떠한 학습 과정 없이 노드와 엣지 사이의 관계를 shallow embedding을 통해서 매핑을 하였는데도 꽤나 좋은 결과를 보였음을 알 수 있다. 앞으로 다양한 knowledge graph embedding 방법들을 다루어 보도록 하겠다.

 

References

1. Sun, Z., Deng, Z. H., Nie, J. Y., & Tang, J. (2019). Rotate: Knowledge graph embedding by relational rotation in complex space. ICLR 2019.

300x250
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기