Paper Review/Knowledge Graph

[2022] Learning Inter-Entity Interaction for Few-Shot Knowledge GraphCompletion

frances._.sb 2023. 1. 30. 12:34
728x90

 

[2022] Learning Inter-Entity Interaction for Few-Shot Knowledge Graph Completion

Yuling Li, Kui Yu∗ , Xiaoling Huang, Yuhong Zhang

 

본문의 논문은 EMNLP 2022 Accepted paper로, 여기를 확인해 주세요.

 

 

 

Abstract

 

 Few-shot knowledge graph completion (FKGC) 은 few-shot을 이용해 추론한 entity 쌍을 사용하여 알려지지 않은 relation의 triples를 발견하는 것이 목적인 그래프이다. 최근 이 연구에는 head와 tail entities의 neighborhoods를 따로 encoding 하여 entity 쌍의 의미론적인 표현을 학습하는 데에 집중되어 있었다. 하지만 앞선 방법은 entity 간의 상호작용을 무시하여, 특히 이런 entity 쌍이 1-to-N, N-to-1, N-to-N 관계와 연관된 경우에 entity 쌍에 대한 표현의 차별성이 낮게 보이게 된다. 

 그래서 저자들은 head와 tail entities의 내부적인 entity 상호 작용성을 고려한 새로운 FKGC 모델인, Cross-Interaction Attention Network(CIAN)을 발표하였다. 본 모델은 먼저 task relation과 각 entity neighbor 간의 attention을 계산하여 entities내에 상호 작용을 확인한 후, entity가 쌍을 이룬 entities의 neightborhood에 attention을 주도록 하여 head와 tail entities 간의 상호 작용을 모델링한다. 이로 인해 CIAN은 head와 tail entities 간의 연관 있는 의미를 찾아내고, entity 쌍 표현에서 더 차별성을 만들어 냈다.

 

 

 

 

 Introduction

 

 이 전에는 KGE (Knowledge Graph Embeddings)에 관한 논문을 보았는데, SOTA를 달성한 KGC 모델은 종종 KGE를 기반으로 한 모델들이다. KGE의 핵심은, entities와 relations를 낮은 차원의 벡터 공간으로 embeddings 하고 그 embeddings를 기반으로 triples가 잘 link 되고 완벽한지 평가하는 것이다. 이런 성공적인 부분에도 불구하고, KGE 기반 모델들은 모든 relations에 대해 triples가 충분히 훈련이 돼야 한다는 것이다. 하지만 많은 데이터가 대부분 그렇게 완전한 triple의 형태를 가지고 있지 않은 점이 KGE의 한계이다. 

 FKGC는 $K$개의 support가 있을 때, query triple인 $(h,r,?)$에서 tail entity를 예측하는 것이다. 전형적인 방법으로는 각각의 neighborhoods에서 entity embeddings를 학습하고, head와 tail entities의 embeddings를 합치는 것이다. 하지만 이 방법은 entity 쌍에 대한 의미 있는 정보를 모델링할 때, 각각의 entity를 독립적으로 다루고 head와 tail entities 사이의 상호 작용을 무시하게 된다.

 결론적으로, 생성된 entity 쌍들은 큰 차별성이 없다는 것, 특히 다양한 다른 entity 쌍들이 공통의 entities를 포함하는 1-to-N, N-to-1, N-to-N 에서 그렇다.

 그리하여 저자들은 head와 tail entity의 내부적인 상호작용을 고려할 수 있는, 이 두 entities 사이에 의미론적으로 상관있는 attributes에 attention을 더 주어 중요성을 보이도록 했다.

 

  위 figure로 간단히 설명하자면, George BushHasJobPosition 에서 두 가지 entity를 가진다. 보통 우리가 알아보기엔 President, 즉 파란색 쪽에 대해 설명을 보면 될 것이고, 군인들에게는 Pilot, 즉 녹색 부분을 보면 더 이해를 쉽게 할 수도 있다.

 이 처럼 두 entities를 모두 포함하여 캐릭터를 더 잘 설명할 수 있도록 하였다.

 

 

 

 

 Related Work

 

 모든 관련 연구를 알아보기보다는, 뒤에 실험에서 사용된 baseline 중심으로 보도록 하겠다.

 FKGC는 두 가지 메인 카테고리로 나눌 수 있다.

 

  • Metric 학습 기반 방법

 

GMatchingone-shot KG completion을 해결하기 위한 첫 번째 연구이다. 이 방법은 직접적인 neighbors를 encoding하여 entity를 embedding 하고 여러 단계의 matching 과정을 거쳐 query와 추론된 entity 쌍 사이의 유사성을 측정한다. 

FSRL회귀 autoencoder aggregation network를 통한 few-shot 방법으로 GMatching을 확장시킨 버전이고 entitiy embeddings의 질을 향상시키기 위해 이질적인 neighbor encoder를 사용하였다.

③ 다양한 triples에서 같은 entity를 구분하는 학습을 위한 위 두 방법과는 다르게, FAAN은 다른 task relations에서 entities의 동적인 특성을 확인하고, task 인식 entity 표현을 학습하였다.

④P-INT는 entity 쌍을 표현하기 위해 head에서 tail entities의 경로를 활용하고 support 와 query entity 쌍들 사이의 경로 상호 작용을 계산하였다. 

 

 

  • Meta 학습자 기반 방법

 

MetaR은 head와 tail entities의 embeddings를 사용한 relation 특화 meta정보를 생성하고 gradient meta를 통해 relation meta를 업데이트한다. 

GANAentities의 neighbor 정보를 통합하여 relation-meta를 학습하고, 모델의 복잡한 relations를 위해 meta학습 기반 TransH 모듈을 사용하였다.

 

 

 

 

 Problem Formulatoin

 

 FKGC 의 기본적인 setting에 따라, $\mathcal{R}$의 relations를 가진 $\mathcal{G}$의 부분 집합인, $\mathcal{G}`$을 기저로 둔다. 여기서 $\mathcal{R}$의 남은 relations는 3가지 task로 나뉘는데, meta-training $\mathcal{R}_{train}$, meta-testing $\mathcal{R}_{test}$, meta-validation $\mathcal{R}_{valid}$이다. 

 few-shot 학습을 위해 실제 테스트 상황을 비슷하게 만든 일시적인 과정을 적용한다. 특히나 meta 훈련의 반복은, $\mathcal{R}_{train}$ 에서 task relation $r$을 가져와 사용하고 support set인 $\mathcal{S} = \left\{ (h_i, t_i) \right\}_{i=1}^K$와 query set인 $\mathcal{Q} = \left\{ (h_j, t_j, C_{j,r}) \right\}_{j=1}^B$를 만든다. 여기서 $K$와 $B$는 support triples, query triples의 개수이고, $t_j$는 relation $r$에 대한 query head entity $h$에 대한 ground-truth tail entity, $\mathcal{C}_{j,r}$은 $\mathcal{G}$에서 상응하는 candidate entities의 set이다. candidate entities는 entity type의 제약 조건에 기반해서 만들어졌다. 

 저자들은 $\mathcal{S}_r$에서 support entity 쌍인 $K$를 사용하여 모델을 훈련시키는 것이 목적인데, 이는 모델이 $\mathcal{C}_{j,r}$에서 상응하는 candidate entities보다 더 높은 ground-truth entity인 $t_j$의 순위를 매길 수 있게 하는 것이다. 

 

★ 여기서 잠깐 few-shot KG completion의 정의를 보자면, 

 

- task relation $r$과 이것의 support set $\mathcal{S}_r = \left\{ (h_i, r, t_i ) \right\}_{i=1}^K$이 있을 때, 하나의 task는 few-shot의 크기 $K$가 매우 작을 때, query triples의 없는 tail entities를 예측하는 것이다. 이를 K-SHOT KG Completion이라고 부른다.

 

 $\mathcal{R}_{train}$이 충분히 훈련된 후에, 학습된 모델은 meta-validation $\mathcal{R}_{valid}$와 meta-testing $\mathcal{R}_{test}$ pharses로 사용되는데,  이는 $\mathcal{R}_{train}$과 같은 방법으로 정의된다.

 

 

 

 

 Methodology

 

 

 

 CIAN은 대략적으로 다음과 같은 구조를 지니고, 다음 과정들을 거친다.

 

 

1. Modeling the Inter-entity Interaction

 

 이 부분에서는 head와 tail entities의 내부적인 entity의 상호작용을 보고 상응하는 entity쌍들의 표현을 위한 관계있는 의미들을 활용할 것이다. 첫 번째로, task-aware attention module에서 각 entity에 task 관련 의미 attributes를 추출한다. 이는 FAAN에서 영감을 얻은 구조인데, entites가 task relations에 적용된 의미 attributes를 보여준다. task 관련 attributes의 기반은, head와 tail entities 사이의 관련 있는 의미 attributes를 찾아내는 것이다. 이는 entity-pair-aware attention module에서 고안한 방법으로, 하나의 entity와 그 entity쌍의 neighbors 사이의 상호 작용의 attention을 계산하는 시도를 하였다. 

 

내부적인 entity 상호작용의 모델링은 위와 같은 예시로 간단히 볼 수 있다.

 

 

 

  • Task-aware Attention Module

 

 task relation $r$에 대한 $(h,t)$ entities 쌍에서, task-aware attention module은 각각의 entity와 이것의 local neighborhood를 input으로 넣고, task-aware 표현을 outputs로 가진다.

 타깃으로 head entity $h$를 가지고, 이의 local neighborhood를 $\mathcal{N}_h = \left\{ (r_{hi},e_{hi}) | (h, r_{hi}, e_{hi}) \in \mathcal{G}' \right\}$ 로 정의하자. 처음에, query에 task relation과, keys에 neighboring relation 표현 그리고 neighbors의 의미론적 표현을 values로 project하기 위해 세 개의 선형 변환, 즉 $W_s^Q, W_s^K, W_s^V \in \,mathbb{R}^{d \times d}$ 파라미터로 평균을 다음과 같이 계산한다.

 

 

 여기서 $\mathbf{h,t,e_{hi}, r_{hi}} \in \mathbb{R}^d$는 각 $h,t,e_{hi}, r_{hi}$의 embedding 벡터, $d$는 embedding 차원이고, ||는 그 embedding 벡터들을 합치는 것이다. 그리고 $W_n \in \mathbb{R}^{2d \times d}$ 와 $b_n \in \mathbb{R}^d$는 모든 neighbors에서 공유된 학습 가능한 파라미터들이다. 위의 식 (2)와 같이 head와 tail entities 사이의 모델 쌍의 상효작용을 위해 bilinear 함수를 적용하고, task relation $r$의 forward 표현 $\mathbf{r_ht} \in \mathbb{R}^d$와 $\mathbf{r_th} \in \mathbb{R}^d$를 얻게 된다. 게다가 neighbor $(r_{hi}, e_{hi})$ 의 의미론적 표현인 $\mathbf{n_{hi}}$를 학습하기 위해 feed-forward neural network를 사용하였다. 의미 있는 neighbor를 표현하기 위해 neighboring entities의 정보만을 사용한 이전 연구들과는 달리, neighboring entities와 neighboring relations의 정보를 결합하여 neighbors의 의미 있는 표현을 계산(3)하였다. 

 그리고 이제 bilinear 내적으로 neighboring relation과 task relation 사이의 상관성을 계산하고 softmax를 사용하여 모든 neighbors의 관련성을 다음과 같이 일반화한다.

 

 

 여기서 사용한 $W_s \in \mathbb{R}^{d \times d}$는 relations 사이에서 상호 작용을 발견하는 학습 가능한 가중 벡터이고, $\alpha_{hi}$는 neighbor $(r_{hi}, e_{hi})$의 task 관련 attention 가중치를 표현한 것이다. 그 후에 $h$의 task-aware neighbor 표현  $\mathbf{ \bar{h_s} }$을 다음을 고려하여 얻게 된다.

 

 

 이 방법에서, task relation과 더 관련 있는 entity neighbors는 더 큰 가중치를 부여받게 되며, 이는 더 가치 있는 이웃 정보를 발견하게 된다.

 이제 마지막으로, task-aware entity representation을 만들기 위해 가중치 neighbor 표현 $\mathbf{ \bar{h_s} }$ 을 entitiy embedding $\mathbf{h}$로 통합하였다.

 

 

 위의 두 $W_{ent}, W_{nbr} \in \mathbb{R}^{d times d}$는 훈련 가능한 가중치 벡터이다.

 위의 과정을 똑같이 tail entity $t$ 와 이것의 local neighborhood인 $\mathcal{N}_t$에서 실험하고, 이 task-aware entity representaion $\mathbf{t_s}$를 얻게 된다.

 

 

 

 

  • Entity-pair-aware Attention Module

 

 entity-pair-aware attention module에서는 한 쌍의 entities가 주어질 때,  어떤 한 entity가 그 entity 쌍의 각 이웃을 가져오게 하여 head 와 tail entities 사이의 관련 있는 의미적 유사성을 알아내는 것이 목표이다. 여기서 생성된 entity-pair-aware 표현들은 entity 쌍에 상응하는 의미적 표현을 쌍으로 함께 형성하게 된다.  아래에서 수식과 함께 상세한 과정을 보도록 하겠다.

 head entity를 target으로 잡고, entity-pair-aware attention module에 ${\mathbf{h}, \mathcal{N}_h, \mathbf{t_s}}$를 input으로, $h$의 entity-pair-aware attention 표현을 outputs로 가진다. 특히, 각 neighbor $(r_{hi}, e_{hi}) \in \mathcal{N}_h$에서 $t$의 task-aware 표현을 query로, neighboring entity 표현 $\mathbf{e_{hi}}$를 keys로, neighboring 표현 $\mathbf{n_{hi}}$를 values로, 세 가지를 선형 변환하여 다음과 같이 나타낸다. 

 

$W_c^Q, W_c^K, W_c^V \in \mathbb{R}^{d \times d},$

 

 이후,  $t$에 대한 각 neighbor의 관계성을 아래와 같이 계산하는데, 여기서 $W_c \in \mathbb{R}^{d \times d}$는 entities 사이의 상호 작용을 찾아내는 훈련 가능한 가중치 벡터이다.

 

 그런 다음, entity-pair-aware neighbor 표현인 $\mathbf{ \bar{h}_c}$를 다음과 같이 계산한다.

베타는 neighbor $(r_{hi}, e_{hi})$의 entity-pair-aware attention 가중치

 

 (10)의 베타 값이 높게 나올 수록 h와 entity 쌍 $t$의 $i$번째 neighbors 사이에 강한 관련이 있음을 나타낸다. 

 이 과정을 모두 거치면 $h$의 entity-pair-aware 표현이 entity embedding인 $\mathbf{h}$와 이것의 neighbor 표현을 합함으로써 다음과 같이 생성되게 된다.

 

 

 위 과정과 비슷하게 tail entity $t$에서도 attention mechanism이 진행되는데, 여기서 input은 $( \mathbf{t}, \mathcal{N}_t, \mathbf{h_s})$이고 이것의 entity-pair-aware 표현인 $\mathbf{t_c}$가 생성된다. 생성된 값 $\mathbf{h_c, t_c}$으로, 위치 기반 forward feed neural network를 사용하여 entity 쌍 $(h,t)$의 의미론적 표현인 $\mathbf{p_{(h,t)}}$를 다음과 같이 계산한다.

 

 

 

 

2. Matching Support and Query Sets

 

 다음 과정에서는 entity 쌍에서 생성된 의미적 표현을 바탕으로, support set에서 entity 쌍의 reference 표현으로부터 일반적인 표현, 다시 말해, few-shot relation의 prototype을 학습할 것이다. tiples의 reference가 적기 때문에 벡터 공간에서 한 reference triple이 다른 references에서 멀다면, 이것은 상응하는 prototype에서 큰 편차를 가져올 것이다. 그러므로 더 정보력있는 references를 선택하기 위해 attention mechanism을 선보이고 훈련 동안 noisy references를 제거한다.

 자세하게 보자면, query set $\mathcal{Q}_r$에서 query $q_r$을 사용하여 few-shot relation $r$의 prototype 벡터 $Z_{qr}$이 다음과 같은 관계를 가진다.

 

 

 여기서 $s_{rk} \overset{\underset{△}{}}{=} (h_k, r, t_k \in \mathcal{S}_r)$ 은 support set $\mathcal{S}_r$의 $k$-th triple이고, $\odot$은 요소들끼리의 곱셈이다. prototype $Z_{qr}$은 쿼리와 관련 있는 references에 더 초점이 맞추어지고, noisy references의 영향력을 줄여준다.

 $q_r$의 타당성을 예측하기 위해, query 표현 $q_r$과 $r$의 prototype 벡터 사이의 유사성을 다음과 같이 계산한다.

 

파이의 높은 값은 triples가 더 합리적임을 보인다.

 

 

 

3. Loss Function and Model Training

 

 task $r \in \mathcal{R}_train$과 이에 상응하는 triples를 가지고, support set $\mathcal{S}_r$를 구성하기 위해 K개의 entity 쌍을 랜덤 하게 샘플링하고, positive query set $\mathcal{Q}_r$을 만들기 위해 entity쌍의 batch를 샘플링하였다. $\mathcal{Q}_r$에서 각 entity 쌍에서, 이 쌍의 tail entity를 오염시키고 negative query entity 쌍 $\mathcal{Q}_r^- = \left\{ (h_q, t_q^-) | (h_q, t_q) \in \mathcal{Q}_r \right\} , t_q^- \in \left\{\mathcal{C}_{h_q,r} \ t_q \right\}$ 의 set을 만들었다. 여기서 $\mathcal{Q}_r$d에 있는 positive query가 negative query $\mathcal{Q}_r^-$ 보다 높은 유사성 점수가 나오게 하는 margin기반 점수 함수를 사용하여 다음과 같이 계산된다. 

 

 

 $[x]_+ = max(0,x)$는 hinge loss이고, $\alpha > 0$은 margin 하이퍼파라미터이다. 저자들은 $\mathcal{L}$을 최소화하고 모델의 파라미터를 최적화하기 위해 batch sampling 기반 meta 학습 과정을 사용하였다.

 

 

 

 

 Experiments

 

  • Datasets

 

 

 위 두 데이터셋은 500개가 조금 안되는 relations이지만 50개보다 많은 triples를 가지고 있는 few-shot relations이다. 각각의 데이터셋은 training/test/validation은 대략 10:2:1 정도의 비율로 사용하였다.

 

 

 

  • Comparisons

 

 

 

 전반적으로 저자들이 제안한 CIAN이 가장 좋은 결과를 내고 있음을 볼 수 있고, 아래의 표는 K개의 few-shot size 별 baseline과 CIAN의 모델 성능 비교이다. 

 

 

 

전반적으로 FKGC의 모든 모델이 size가 커질수록 꾸준한 향상을 보이는 것은 아니지만, 상대적으로 CIAN은 안정적으로 성능이 향상함을 보이고 있다.

 

 

 

 위는 full model의 성능, 그 아래로 task-aware attention module을 제거했을 때, entity-pair-aware attention module을 제거했을 때, 마지막으로 task-aware attention module에서 아래의 bilinear 함수를 적용하지 않았을 때의 성능 비교이다. 

 

 

 NELL testing data 에서 baseline과 비교하였을 때, CIAN은 전체적으로 가장 좋은 성능을 보이며, 이는 entity 쌍의 표현을 위한 head와 tail entities 사이의 상대적인 의미론 활용에서 더 복잡한 relations에 도움이 됨을 보이고 있다.

 그리고 아래는 2D를 이용한 embedding 시각화를 나타내었는데, 저자들의 모델이 positive 와 negative를 잘 구분함을 보이고 있다. 

 

 

 

 

 

Conclusion

 

 다시 정리하자면, 본 논문은 few-shot KG completion을 위해 inter-entity- inter-action을 사용하고 cross-interaction attention network를 제안하였다. 특히나 task-aware attention module은 task와 관련 있는 entity attributes를 추출하기 위한 방법이고, entity-pair-aware attention module은 head와 tail entities 사이의 의미적으로 관련 있는 attributes를 식별한다. 또한 이 결과는 기존 baseline보다 더 좋은 성능을 내어 SOTA를 달성함을 보인다. 더 나아가 few-shot KG completion을 해결하기 위해 entities의 문법적인 표현과 같은 side 정보를 어떻게 다룰지 알아볼 예정이다.

 

 한계점으로 볼 부분은, 

 

 ① 저자들의 모델이 direct neighbors가 적은, 많은 long-tailed entities에 대해서는 성능이 낮아짐을 볼 수 있었다. 이는 희소한 neighbors가 모델의 inter-entity interaction에서 이점을 주지 않기 때문이다.

 

 ② 저자들의 모델이 entity neighborhoods 사이의 상호 작용을 이용하는데에 초점이 맞추어져 있기 때문에, background graph가 entities의 neighbors를 제공하기 위해 필요하다.

 

 

728x90
반응형