ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • KG#3 ) Translation Model for KC (TransE, TransR 리뷰)
    REVIEW 2021. 4. 11. 23:50
    반응형

    Knowledge Graph 관련 세번째 글은 앞서 나눈 Knowledge Completion의 접근 방식인 Translation model에 대해서 나누어 보려고 한다. 오늘의 내용은 연구했던 내용과 아래의 논문들을 참고 했다.


    Translation Model

    Knowledge Completion(이하 KC)을 해결하기 위한 접근 방식으로 대표적으로 4가지(Translation Model, Semantic Matching Model, Network Representation Model, Neural Network Model)가 있다. 물론 각 접근 방식 안에서도 다양한 분류가 있다.  오늘 이야기할 해결 방식인 Translation Model은 KC 모델들의 기반이 되는 형태로 볼 수 있다. 먼저, KC는 Representation Learning을 통해서 문제를 해결하는 방식을 취하고 있고, 이는 Entity와 Relation 을 벡터로 표현하는 것을 의미 한다. Translation Model은 단순하게 보면 "벡터 연산을 통해 지식 완성을 수행하겠다" 라는 접근인데, 이는 벡터 공간에 표현된 트리플 <Head, Relation, Tail>을 더하기, 곱하기 등의 연산을 사용해서 올바른 트리플을 나타내는 스코어 함수를 정의하게 된다. 트리플을 $ <h,r,t> $로 표현하고, $ h,t \in E $라고 할때, 아래의 수식이 기본이 되는 접근 방식이다.

     

    $ h+r \approx t $

     

    TransE : 가장 단순한 방식, Head와 Relation을 더한 벡터가 Tail과 가까워야 한다.

     위의 수식으로 부터 TransE는 $ f_r(h,t) = - ||h + r - t||_1/2 $의 Score fucntion을 정의 한다. 이는 head entity와 tail entity의 Euclidean distance 를 사용하는 방식으로 오른쪽 그림과 같이, head entity 와 relation의 벡터를 더한 결과와 tail entity의 벡터가 같다는 Translation model의 기본적인 접근 방식을 사용하고 있다. 결과적으로 학습이 된 모델은 entity와 relation을 표현한 벡터를 가지고 있다. 그외의 파라미터는 사용하지 않는다. 일반적으로 벡터의 크기는 50~200을 많이 사용하고 있고, 아주 간단한 식으로 효과적인 학습을 하는 모델로 볼 수 있다. 모델의 학습에서 주요한 부분은 Corrupt triple을 만들어서 사용한다는 것인데, 학습을 위해 입력된 트리플을 head 또는 tail 부분을 변경해서 옳지 않은 (Corrupt) 트리플을 구축하여 손실함수의 학습을 진행한다. 아래의 수식은 TransE 모델의 학습에서 사용한 손실 함수이고, margin-based ranking criterion 이라고 한다

     여기서 $ d() $ 를 위에서 설명한 Score function으로 표현한다고 했을때, 입력된 $ <h', l, t'> $ 에 대해서 Corrupt 된, $ <h', l, t'> $ 를 만들어서 학습을 수행한다. 이는 전체 엔티티 리스트로 부터 head와 tail 엔티티를 무작위로 다른엔티티로 변경하여 구축하여 사용한다. 하지만, head와 tail은 동일한 후보군을 가지기 때문에 동일한 차원에 표현하는 것이 옳지만, relation이 동일한 차원에 표현하는 것이 학습을 저해하는 견해가 있어서 이를 해결한 모델이 TransH와 TransR등이 있다. 또한, (1 to 1) 이외의 (1 to many), (many to many)의 관계를 가지는 지식 그래프에서 표현이 잘 안된다는 아쉬운 부분이 있다.

     

    TransR : entity 와 relation은 다른 차원에 표현해야한다. 

     TransR 모델은 앞선 TransE 모델의 한계점을 개선한 모델인데, Entity와 Relation을 동일한 차원에 표현한 것을 개선했다. 이를 개선한 이유는 Entity는 각 Entity를 표현하는 데에 중점을 둬야하고, Relation 은 Entity 간의 관계를 표현하는 것에 중점을 둬야하는데, 이 두가지가 동일한 차원에 표현되는 것이 옳지 않기 때문이다. 그래서 TransR 모델은 head와 tail을 $ h_r = hM_r, t_r = tM_r $로 표현하게 된다. 즉, head와 tail이 Relation과 학습이 될때, 각 Relation 별로 가지게 되는 projection matrix $M_r$을 통해서 다르게 표현되는 것이다. 학습시, $M_r$도 각 릴레이션을 표현하기 위한 weight로써 함께 학습하게 된다. 위의 그림을 통해서 쉽게 이해할 수 있다. 트리플 $<h, r, t>$ 가 학습이 될때, head와 tail이 Relation 의 차원으로 이동하여 $h_r + r - t$의 Score function을 계산하게 된다. TransR 모델은 TransE 모델과 같이 margin-based ranking criterion 사용한다. 물론, Corrupt triple도 동일하게 구축하여 학습한다.

     

     

    이렇게 Translation model의 초기 대표적인 모델 2가지를 알아보았다. Translation model은 가장 직관적인 방식을 통해서 지식 그래프를 차원에 표현하는 모델들이다. 간단하면서도 효과적인 방식이라고 볼 수 있다. 


    출처

    1. Translating Embeddings for Modeling Multi-relational Data, Antoine Bordes => TransE

    2. Learning Entity and Relation Embeddings for Knowledge Graph Completion, Yankai Lin => TransR

    반응형

    댓글

Designed by Tistory.