TransE 논문 리뷰_Translating Embeddings for Modeling Multi-relational Data
Multi-relational data modeling 방법 예시는 아래와 같이 세 가지로 나뉠 수 있다.
(1)Social Network Analaysis,
(2)Recommender System,
(3)Knowledge Bases(KBs)
Entities | Edges(Relationships) | |
Social Network Analysis | members | friendship/social relationship links |
Recommender System | users, products | buying, rating, reviewing, sesarching for a product |
Knowledge Bases | abstract concept or concrete entity of the world | predicates that represent facts involving two of them |
이번에 소개할 TransE 모델은 Freebase, Google Knowledge Graph, GeneOntology와 같은 (3)Knowledge Bases 를 다룬다. 데이터셋으로는 Wordnet, Freebase로 실험하였다.
TransE 모델은 Knowledge graph embedding 방법 중 하나이다.Relational Modeling으로 2013년 neurips 컨퍼런스에 등재된 논문이며 오늘(2023.04.28) 기준 6493회 인용되었다.
Abstract
간단히 TransE에 대해서 소개하자면 다음과 같다.
지식베이스로부터 (head, label, tail) 형태의 Multi-relational data를 저차원의 Entities 임베딩로 바꾸는 Translation을 함으로써 Relationships을 해석하고 모델링하는 방법론이다.
본 논문의 기여는 다음과 같다.
1. Hierarchical relationships을 표현하기 위한 파라미터 개수를 줄이고,
(it learns only one low-dimensional vector for each entity and each relationship)
2. 매우 큰 데이터베이스에도 확장 가능하다.
Intro
인트로에 적혀있는 것을 기반으로 조금 더 구체적으로 설명해보겠다.
locality 관점에서 접근한다면 single-relational data는 순수하게 구조화되어있는 반면, multi-relational data는 다양한 유형의 relationship과 entities를 포함하고 있기 때문에 더 일반화된 접근이 필요하다.
Single-relational data에서 개체 간 연결 패턴 사이에 중요한 유사성을 표현하기 위해 user/item clustering 또는 matrix factorization 기술들이 쓰였다. 이를 이어 Multi-relational data에도 비슷한 프레임워크로 잠재 변수로부터 relational learning이 수행되어지고있다. (1)Stochastic blockmodel, (2)Tensor factorization, (3)Collective matrix factorization를 필두로, 최근 다양한 모델들이 Bayesian clustering framework 또는 Energy-based framework에서 expressivity와 universality를 향상시키는 것에 집중하고 있다. 하지만 본 논문에서는 expressivity를 높인다고 복잡한 모델을 만들면 오히려 해가 된다고 주장하며 심플하지만 적절한 모델이 필요하다고 주장한다.
Method
TransE는 head entity embedding에 relation을 더했을 때 tail entity embedding이 되도록 학습한다. 다시 말해, t는 h+l의 가장 가까운 이웃이 되어야 한다.
이를 위한 training loss는 아래와 같이 학습된다.
위 식을 조금 더 상세히 설명하면, 저자는 단순히 정답 데이터만 가지고 학습하지 않고 랜덤하게 head나 tail 둘 중 하나의 데이터를 랜덤하게 바꾼 Corrupted triplets을 더하여 샘플링함으로써 학습을 진행하였다.
그리고 margin hyperparameter와 실제 정답의 distance를 더한 값에서 corrupted triplets의 distance를 뺀 값이 가장 작아지도록 학습하고 있다.
실제 Sudo code를 보면 조금 더 이해가 잘 될 것이다.