📚 STUDY/PAPER REVIEW

[논문 리딩] Do Pre-trained Models Benefit Knowledge Graph Completion? A Reliable Evaluation and a Reasonable Approach

삶감 2023. 11. 27. 03:56

Do Pre-trained Models Benefit Knowledge Graph Completion? A Reliable Evaluation and a Reasonable Approach

키워드CompletionGraphKGKGCLLM
year2022
저자Xin Lv
VenueACL Findings 2022
MemoPKGC. PLM의 입력으로 triple prompt + support prompt 사용.
분류연구
DONE
생성 일시
최종 편집 일시
Working
@inproceedings{Lv2022DoPM,
  title={Do Pre-trained Models Benefit Knowledge Graph Completion? A Reliable Evaluation and a Reasonable Approach},
  author={Xin Lv and Yankai Lin and Yixin Cao and Lei Hou and Juanzi Li and Zhiyuan Liu and Peng Li and Jie Zhou},
  booktitle={Findings},
  year={2022},
  url={https://api.semanticscholar.org/CorpusID:248780558}
}

📝
Note
  1. PLM-based 방식 (KG-BERT) 는 제대로 된 input 문장을 사용하지 않는다
  1. 대부분의 KGC는 Closed World Assumption (CWA) 에서 평가 되는데, 외부 지식으로 학습된 PLM을 활용한 PLM-based 방식은 Open World Assumption (OWA) 에서 평가를 해야 모델의 성능을 더 정확하게 측정할 수 있다.

Triple의 label (name) 을 사용한 Triple Prompts (Hard + Soft prompts)와 Definition, Attribute 를 사용한 Support Prompts를 합쳐 PLM의 입력으로 사용했다.


  • 이것도 PLM만 사용해서 KGC를 수행한다. KGE의 경우에는 KG의 구조 정보를 임베딩으로 더 잘 표현하는데, KGE와 PLM을 결합해서 KGC를 수행하는 방법은 없을까?
  • 데이터셋과 평가법을 새로 구축했기 때문에 이게 fair 한지 고려를 해볼 필요가 있다.

Introduction

Knowledge Graph Completion (KGC)

지식그래프 (Knowledge Graph, KG)는 지식을 표현하는 효과적인 방법으로, KG의 범위를 향상시키기 위해 지식 추출을 자동화 하는 기법이나 collaborative editing에 의존한 연구들이 진행되었지만 아직 실제 세계의 방대한 지식들을 전부 cover하기엔 어렵다. KGC는 이런 문제에서 모티베이션을 얻어 주어진 KG의 구조들을 이해하여 사라진 링크들을 예측하는 일을 한다.

KGC의 대표적인 세가지 테스크로는,

  1. Triple classification : 주어진 triple이 KG에 말이 되는 triple인지 판단하는 이진 분류 (참/거짓).
  1. Link (entity) prediction : 하나의 엔티티와 하나의 릴레이션이 주어졌을 때, 사라진 엔티티를 예측.
  1. Relation prediction : 두 개의 엔티티가 주어졌을 때, 두 엔티티를 이어주는 릴레이션을 예측.

Pre-trained language models (PLMs) for KGC

PLM은 방대한 텍스트 자료에서 내재적으로 사실적인 지식을 학습할 수 있다는 사실이 알려지고, 이 점이 KGC를 수행하는데 도움이 될 것이라고 생각되어 PLM을 KGC와 결합하는 연구가 진행되었다.

  • KG-BERT (Yao et al., 2019)

    처음으로 PLMs를 KGC에 도입한 연구이다. Triple의 엔티티와 릴레이션의 label (name)을 이어서 PLMs의 input으로 사용했다.

  • LP-RP-RR (Kim et al., 2020)

    KG-BERT에 multi-task learning을 도입했다.

하지만 위의 PLM-based KGC 모델들의 성능은 그렇게 좋지 못했다.

본 논문에서 그 이유를 두 가지로 분석했다.

PLM-based KGC model의 성능이 좋지 못한 이유

  1. 정확하지 않은 평가 세팅

    기존의 KGC는 Closed-world assumption (CWA)에서 평가가 진행된다. CWA는 KG 외의 지식들은 전부 틀렸다고 여기는 가정이다. CWA는 데이터셋을 구축할 때 자동화 할 수 있다는 이점을 가진다. 하지만 PLM의 도입은 KG 밖의 지식 (unseen knowledge)를 사용하기 때문에, CWA 하에서는 제대로 된 성능 평가를 할 수 없다.

    예시로 England, contains 가 주어지고 남은 엔티티를 예측할 때, PLM-based KGC 모델은 외부 지식 상 정답이 되는 여러 엔티티들을 주지만, CWA에서는 KG에 triple로 존재하는 Pontefract 만이 정답이 된다.

  1. PLMs의 부적절한 활용

    기존의 PLM-based KGC 모델들은 단순하게 엔티티와 릴레이션의 라벨을 이은 것을 PLM의 입력으로 사용한다. 결과적으로 앞뒤가 잘 맞지 않는 문장을 제공하게 되어 PLM의 지식의 장점을 충분히 살리지 못하게 된다.

Contributions

  • Propose Open-world assumption (OWA) :

    PLM-based KGC 모델 평가에 더 적합한 setting

  • Propose PKGC :

    적은 훈련 데이터로도 좋은 성능을 낸다. KG 외의 지식을 결합해서 인퍼런스한다.

Preliminary

CWA

KG에 속하지 않은 triple들은 거짓이라고 추정한다. 즉, 모델을 테스트 셋에 돌려봤을 때 전체 데이터셋(training + validation + test set)에 나타난 triple들만이 참이라고 고려되는 것이다.

이 방법은 쉽게 모델을 평가할 수 있지만, 본 논문에 따르면 CWA는 근사치에 불과하고 평과 결과의 정확성은 보장하지 못한다고 한다.

OWA

OWA는 KG가 완전하지 않다고 가정하기 때문에 CWA 보다 실제 세계의 시나리오와 가깝다.

하지만 이 방법은 완전해진 triple이 KG에 속하지 않았을 때 이 triple이 옳은 지 분별하기 위한 human annotations를 필요로 한다.

💡
OWA는 manual annotation을 필요로 하는게 너무 크리티컬 한 것 같다.

Methodology

Framework
  • PTP^T : Triple prompt.
  • PSP^S : Support prompt.
  • T=[CLS]PTPS[SEP]T = \texttt{[CLS]} P^T P^S \texttt{[SEP]} : Final input texts to PLM. [CLS]\texttt{[CLS]}의 출력은 주어진 triple의 label을 예측하는데 쓰인다.

훈련 시, positive/negative triples를 사용해 cross-entropy loss로 모델을 업데이트한다. 이 방법을 통해 모델이 KG의 구조적인 정보를 활용할 수 있게 한다.

💡
구조적인 정보를 활용한다고 하지만, triples면 1-hop 정보만 포함되는건가? 아니면 PLM에 training triples를 전부 fed 하니까 training subset에 대한 모든 정보를 알고있다고 생각해야하는 걸까?

Triple Prompts

Hard Prompt

모든 릴레이션에 대해서 manual 하게 hard templete을 만들었다.

예시로 Figure 2에서는 member of sports team 릴레이션에 대한 hard templete은 “[X] plays for [Y].” 가 된다. 이 과정을 거친 hard prompt를 PpTP_p^T 얻을 수 있다.

Soft Prompt

이 hard prompt에 soft prompt를 더해서 최종 triple prompt PTP^T를 만든다.

Soft prompt를 위해 vector lookup table PRR×n×d\bold{P} \in \R^{|\mathcal{R}|\times n \times d} 을 사용한다.

  • nn : 하나의 PTP^T를 위해 포함된 soft prompts의 전체 수.
  • dd : LM의 word vector dimension.

Figure 3을 보면, 6개의 위치에 soft prompt를 넣을 수 있다. 각 위치의 soft prompt들의 수는 n1,n2,,n6n_1, n_2, \dots , n_6 이다. PTP^Tkk-th soft prompt [SP]k\texttt{[SP]}_k 는 LM의 입력으로 들어갈 때, 해당 word vector는 prk=P[idx(r),k]Rd\bold{p}_r^k = \bold{P}_{[idx(r),k]} \in \mathbb{R}^d 로 대체된다.

  • idx(r)idx(r) : relation rr의 ranking index.

훈련 과정에서 vector lookup table P\bold{P} 는 업데이트 되어서 해당되는 hard prompt의 semantics를 더 잘 표현할 수 있게 된다.

Support Prompts

KG 자체에 포함된 보조적인 정보들—정의 (definition), 속성 (attributes) 등—을 활용한다.

이전의 방법들은 추가적인 정보를 도입하기 위해서 모델의 구조를 바꿔줘야 했다. 하지만 이 방법은 추가적인 오버헤드를 많이 불러일으키고 다양한 타입의 보조 정보들을 하나로 만드는데 별로 도움이 되지 않는다.

반면에, 언어의 보편성 덕분에 PLM을 기반으로 한 모델은 모델의 구조를 바꾸지 않고도 다양한 보조 정보들을 도입할 수 있다.

Manual 하게 정의한 Support Prompts (Hard prompts)

속성의 경우, 하나의 triple에 해당되는 속성이 여러 개가 있을 수 있다. 저자들은 모델을 너무 복잡하게 하지 않기 위해 triple의 entity 마다 하나의 속성을 랜덤하게 뽑아 사용했다.

또한 추가적인 정보가 존재하지 않는다면 해당 부분을 빼고 triple template만 넣으면 되기 때문에 추가 정보를 필수로 요구하지 않는 점과, 정의, 속성 외의 다른 타입의 추가 정보를 유연하게 사용할 수 있는 점을 장점으로 들었다.

Training

Postive triples T\mathcal{T} 와 negative triples T\mathcal{T}^- 에 대해 triple classification으로 훈련시켰다.

Negative sampling

  1. Random negative triples TRAN\mathcal{T}^-_{\text{RAN}}

    임의로 head 나 tail 엔티티를 T\mathcal{T} 에 속한 다른 엔티티로 바꾼다. 간단하지만 대부분의 엔티티들을 커버할 수 있다.

  1. KGE-based negative triples TKGE\mathcal{T}^-_{\text{KGE}}

    KGE 모델로 KG에 포함되지 않지만 포함될 확률이 높아 보이는 엔티티로 head 나 tail 엔티티를 바꾼다.

  • α\alpha : TRAN\mathcal{T}^-_{\text{RAN}}TKGE\mathcal{T}^-_{\text{KGE}} 의 비율을 조절하는 하이퍼파라미터. TRANTKGE=α1α\frac{|\mathcal{T}^-_{\text{RAN}}|}{|\mathcal{T}^-_{\text{KGE}}|} = \frac{\alpha}{1-\alpha}.
  • KK : T\mathcal{T}T\mathcal{T}^- 의 비율을 조절하는 하이퍼파라미터. T=KT|\mathcal{T}| = K\cdot |\mathcal{T}^-|.

Training

  • sτ\bold{s}_\tau : 주어진 triple τ=(h,r,t)\tau = (h,r,t) 에 대한 classification score. sτ=Softmax(Wc)\bold{s}_\tau = \text{Softmax} (\bold{Wc}).
  • cRd\bold{c} \in \R^d : input token [CLS]\texttt{[CLS]} 의 output vector. (그림 상 c\overrightarrow{c}.)
  • WR2×d\bold{W} \in \R^{2\times d} : linear NN (그림 상 MLP의 레이어)

최적화 하는데 cross-entropy loss를 사용했다.

L=τTT(yτlog(sτ1)+(1yτ)log(sτ0)K)\mathcal{L} = - \sum_{\tau \in \mathcal{T} \cup \mathcal{T}^-} (y_\tau \log(\bold{s}_\tau^1) + (1-y_\tau) \frac{\log(\bold{s}_\tau^0)}{K})
  • yτ{1,0}y_\tau \in \{1,0\} : triple τ\tau의 레이블
  • sτ0,sτ1[0,1]\bold{s}_\tau^0, \bold{s}_\tau^1 \in[0,1] : sτ\bold{s}_\tau 의 처음 두 차원의 값. Cross entropy 상 positive 예측 확률, negative 예측 확률로 이해하면 되겠다.

Experiments

Evaluation Protocol

Link Prediction

(h,r,?)(h,r,?) 또는 (?,r,t)(?,r,t) 가 주어졌을 때, ?? 에 해당하는 엔티티를 예측하는 테스크이다.

모델이 KG에 포함된 모든 엔티티들에 대해 ??가 될 수 있는 확률을 계산해서 가장 확률이 높은 엔티티로 ??를 채운다.

평가는 이전 연구들을 따라 MRR Hits@N 으로 진행했다.

하지만 OWA 세팅에서는 manual annotation 통해 모든 가능한 triple들에 대한 true label을 줄 수가 없어서 다른 평가 방식(CR@1)을 사용했다.

CR@1 평가법

테스트셋에서 triple들을 샘플링하고 가장 확률이 높게 예측된 엔티티로 ?? 를 채웠다. 그러고 이 triple들에 대한 정답률을 manually annotate 했다.

💡
Appendix E 에 따르면 대학생 3명이서 annotate를 하고 전부 동일한 의견이면 바로 반영, 아닐 시 논의를 거친 후 반영했다는데 명확한 기준 같은 게 서술 되어있지 않아서 이게 정당한지 고려해 볼 필요하다고 생각한다. CR@1 은 추후에 사용되긴 어려워 보임….

Triple Classification

Triple Classification은 triple이 주어졌을 때 그 triple이 옳은지 판단하는 이진 분류이다.

정확도F1를 평가지표로 삼았다.

OWA 세팅에서는 틀렸다고 예측한 triple들이 정말로 틀렸는지 annotate 하여 평가했다.

Datasets

Wikidata와 Freebase에서 샘플링 한 데이터셋을 사용했다. OWA 세팅에서 평가를 하기 위해 세 개의 데이터셋을 새로 구축했다.

Wiki27K

Wikidata를 기반으로 구축했다.

구축 방법

  1. Wikidata의 모든 엔티티들에 대해서 4 가지 영역을 점수 매겼다.
    1. 엔티티의 빈도수. 모든 엔티티 수에 대해 정규화 해서 0과 1사이의 값으로 만듬.
    1. 영어 위키피디아 링크가 있는지 여부. 0 또는 1.
    1. 영어 외의 위키피디아 링크가 있는지 여부. 0 또는 1.
    1. Freebase 링크가 있는지 여부. 0 또는 1.

    최종적으로 4개의 점수를 모두 더해 얻은 상위 30,000개의 엔티티들 중에서 랜덤하게 27,122개를 골라 entity set E\mathcal{E} 를 구축했다.

    💡
    이 27,122 개는 어디서 나온 숫자임?

  1. E\mathcal{E}에 속하는 triple에 존재하는 모든 relation rr 에 대해서 빈도를 구해서 상위 200개의 릴레이션으로 relation set Rw\mathcal{R}_w 을 구축했다.

    또한 CoDEx (Safavi and Koutra, 2020)에 속한 릴레이션 Rc\mathcal{R}_c 와 LAMA (Petroni ea al., 2019) 에 속한 릴레이션 Rl\mathcal{R}_l 을 사용해서 최종 relation set R=Rw(RcRl)\mathcal{R} = \mathcal{R}_w \,\cap (\mathcal{R}_c \cup \mathcal{R}_l) 로 정의한다.

  1. Wikidata에서 h,rEh,r \in \mathcal{E} 이고 rRr\in\mathcal{R}(h,r,t)(h,r,t) 로 triple set T\mathcal{T} 를 구축했다.
  1. 랜덤하게 섞어 training / validation / test set = 8 : 1 : 1 비율로 나눴다.
  1. (h,r,t)(h,r,t) 가 validation 이나 test set에 있을 때, (t,r,h)(t,r,h)  가 training set에 있다면 해당 triple을 training set에서 제거한다. 이런 symmetry 한 triple을 훈련을 하면 모델이 예측을 쉽게 할 수 있기 때문이다.

FB15K237-N and FB15K237-NH

Freebase에는 데카르트 곱 관계를 가져오는 mediator 노드가 많은데, 예측하는 테스크에서 이런 노드들이 의미가 없고 제대로 되지 않게 모델의 정확도를 올린다. 그래서 실제 시나리오와 가깝게 하기 위해서 FB15K-237 데이터셋에서 mediator 노드를 제거한 FB15K237-N 를 구축했다.

FB15K237-NH 는 테스크를 더 어렵게 하기 위해 FB15K237-N의 negative triple들을 수정한 것으로 Triple classification에서만 사용했다. TransE로 가장 확률이 높은 정답이 아닌 엔티티를 사용해서 validation 과 test set의 negative triple들을 수정했다.

  • Dataset 살펴보기
    entity2label.txt
    entity2definition.txt
    relation2label.json
    relation2template.json
    train.txt
    valid.txt
    test.txt
    valid_pos.txt # valid set (only positive triples) for triple classification under closed-world assumption
    valid_neg.txt # valid set (only negative triples) for triple classification under closed-world assumption
    test_pos.txt # test set (only positive triples) for triple classification under closed-world assumption
    test_neg.txt # test set (only negative triples) for triple classification under closed-world assumption
    o_valid_pos.txt # valid set (only positive triples) for triple classification under open-world assumption
    o_valid_neg.txt # valid set (only negative triples) for triple classification under open-world assumption
    o_test_pos.txt # test set (only positive triples) for triple classification under open-world assumption
    o_test_neg.txt # test set (only negative triples) for triple classification under open-world assumption
    link_prediction_head.txt # recall and re-ranking files for head entity link prediction
    link_prediction_tail.txt # recall and re-ranking files for tail entity link prediction
    train_neg_kge_all.txt # negative triples from kge models for training
    train_neg_rank.txt # negative triples by random replacement for training

Setting

Baselines

KGE models

  • TransE (Bordes et al., 2013)
  • ConvE (Dettmers et al., 2018)
  • TuckER (Balaževic et al. ´ , 2019)
  • RotatE (Sun et al., 2019)
  • TransC (Lv et al., 2018) : concept 정보 사용
  • WWV (Veira et al., 2019) : definition 정보 사용

PLM-based models

  • KG-BERT (Yao et al., 2019)
  • LP-RP-RR (Kim et al., 2020)
  • PKGC w/ attribute
  • PKGC w/ definition

Implementation

  • PLM : RoBERTa-Large
  • KGE negative triple 생성 : TuckER
  • Baselines
    • TransE, RotaE : OpenKE 사용.
    • 그 외 : 저자들이 공개한 코드로 re-implementate.

💡
Baseline이랑 PLM이 다른데 fairness issue는 없는 건가? (KG-BERT, LP-RP-RR 은 BERT-base를 PLM으로 사용.)

Link Prediction 결과

  • Overall : CR@1 과 Hits@1 결과의 차이가 크다. PLM-based 모델의 차이가 더 크다.
  • PKGC vs. Baseline : OWA, CWA 세팅 둘 다 가장 높은 성능을 보였다.
    • PKGC가 PLMs의 implicit 한 지식들을 더 잘 사용할 수 있다는 것을 보여줌
  • Attribute vs. Definition : definition을 사용한 것의 성능이 더 높다.
    • Definition은 유일함.
    • Attribute의 경우 랜덤하게 선택되지만 definition은 그렇지 않음.
    • 그렇기 때문에 definition은 더 정확하고, 노이즈가 더 적다.

Triple Classification 결과

  • 성능 갭이 작다
    • False negative (틀렸는데 틀렸다고 예측) 인 triple 의 비율이 적기 때문 (평균적으로 대략 5%, link prediction에서는 30% 정도였다.).

Analysis

Q1 : PLM이 pre-train 한 것들이 모델의 성능에 영향을 주는지?

이것을 확인해보기 위해 Wikipedia 텍스트에 pre-train한 BERT-Large 모델을 사용해 실험 : “Triple에 해당하는 문장 수 에 따른 성능 (왼쪽)”을 했다. 문장의 수는 BERT가 이 사실에 대해 몇 번이나 학습을 했는지를 나타낸다.

결과를 살펴보면, PKGC는 문장의 수가 증가할수록 성능이 상승하는 것을 확인할 수 있다. 특히 문장의 수가 0인 경우에서도 KGE 모델들 보다 성능이 우수한 것을 통해, PKGC가 PLMs에서 나온 지식과 KG를 잘 융합해서 새로운 지식을 추론하는 능력을 가지고 있다는 것을 보였다.

Q2 : PLMs를 도입하는 것이 훈련 데이터의 양에 대한 민감도를 줄이는지?

Training set의 비율에 대한 성능 (오른쪽) 을 살펴보면 KGE 모델들보다 training set의 영향을 덜 받는 것을 통해 sparse KGC에 사용될 수 있는 잠재성을확인할 수 있다.

Q3 : PLMs의 종류와 성능의 관계

  • KEPLER : RoBERTa-base를 사용해서 knowledge embedding과 language model objectives를 jointly optimize.
  • LUKE : RoBERTa에 기반해서 Wikipedia corpus에 pre-train.

  • LUKE는 input에서 엔티티의 label과 position을 특정해야 하기 때문에 KEPLER보다 우수한 성능을 보임.
  • Wiki27K에서는 BERT-base의 성능이 가장 높았는데, KEPLER와 LUKE는 RoBERTa 에 기반한 모델이기 때문이라고 분석했다.
    • BERT는 Wikipedia corpus를 주로 pre-train되었고 사실적인 지식을 더 많이 갖고 있다.

💡
UMLS 같은 domain specific한 데이터셋에 대한 실험이 있었으면 PLMs 차이에 대한 인사이트를 더 얻을 수 있었을 텐데 …

Conclusion

PLM-based KGC 모델들이 제안되었지만 여전히 SOTA KGE 모델들과 비교해 성능의 갭이 존재한다.

그 이유로는

  1. 평가 셋팅의 부정확함.
  1. PLMs 활용의 부적절함.

이러한 문제를 완화하기 위해

  1. OWA 평가 셋팅을 강조
  1. PKGC 제안.

728x90
728x90