ERNIE paper 정리

정민수
12 min readNov 23, 2020

--

2020.11.23.

ERNIE: Enhanced Language Representation with Informative Entities, Zhang, et al., 2019. (Accepted by ACL 2019)

Reference

※ 섹션 이름 또는 순서를 논문의 것과 그대로 일치시키지 않고 재구성하였음을 알려드립니다.

1 Introduction

기존 pre-trained language model은 language understanding을 위한 knowledge information과의 병합 방법이 부족했습니다. 논문에서는 Language model이 external knowledge information과의 결합이 필요하다는 것을 주장하고 있습니다. Rich knowledge information은 language understanding을 잘 리드할 수 있고, knowledge driven application (entity typing이나 relation classification)에서 큰 효과를 가져다 줄 것입니다. External knowledge와 language representation model을 합치는 방법은 두 가지의 큰 과제가 있습니다.

  • Structured Knowledge Encoding: text가 주어졌을 때, 어떻게 관련된 information facts를 결합할 수 있겠느냐는 문제입니다.
  • Heterogeneous Information Fusion: 모델에 language representation와 knowledge representation을 학습시키는 것은, 두 독립적인 vector space에서 일어나기 때문에, pre-training object는 어휘론적, 구문론적 학습뿐만 아니라 지식 정보 또한 fusion할 수 있어야 합니다.

논문에서 제시하는 ERNIE는 위 두 문제점을 극복하고자 합니다.

그 방법으로 첫 번째는 문장에서 나오는 entity mention과 Knowledge Graph(KG)에 있는 entity를 일치시키는 것입니다. 먼저, KG의 entity를 TransE 방식으로 pre-train하여 encoder를 만듭니다. 그 다음, 문장에서의 representation과 entity representation을 통합하는 작업을 합니다.

두 번째는 BERT와 마찬가지로 masked language model(MLM)을 적용하는 것입니다. 입력 문장에서 named entity alignment를 랜덤하게 masking하고, 모델이 KG에서 적당한 entity를 선택할 수 있도록 학습시킵니다. 기존 MLM과 다르게 모델은 context와 knowledge fact를 aggregate할 수 있습니다.

2 Model

Figure 2. ERNIE model architecture (from paper)

ERNIE 모델은 위 그림과 같이 두 가지의 stacked 모듈로 구성됩니다. 하나는 T-Encoder, 나머지 하나는 K-Encoder입니다.

  • T-Encoder: Textual encoder
  • K-Encoder: Knowledge information encoder

라고 생각하시면 됩니다. T-Encoder는 N개의 layer로 구성되었고, K-Encoder는 M개의 layer로 구성되어 있습니다.

T-Encoder는 말 그대로 텍스트를 인코딩하는 것을 목표로 합니다. 먼저 token embedding과 segment embedding, positional embedding을 합쳐 input embedding을 만듭니다. 그리고, lexical and syntactic feature {w_1, …, w_n}을 계산합니다. lexical and syntactic feature라고 한 이유는 K-Encoder의 feature와 구분 짓기 위함입니다. 수식으로 표현하면 아래와 같습니다.

T-Encoder는 multi-layer bidirectional Transformer encoder라고 할 수 있습니다. 위에서 계산한 feature vector를 TransE로 pre-trained한 모델로 만든 entity embedding {e_1, …, e_m}과 같이 K-Encoder의 input으로 전달합니다.

K-Encoder는 텍스트로부터 얻은 feature vector와 KG의 entity vector를 합쳐주는 작업을 합니다. 자세한 내용은 아래 섹션에서 더 얘기해보겠습니다.

Knowledgeable Encoder

K-Encoder가 사실상 ERNIE 모델의 주요 파트이기 때문에 따로 섹션을 설정한 것 같습니다. K-Encoder는 stacked of aggregators로 이루어져 있습니다. 여기서 aggregator는 token과 entity를 같은 feature로 fusion하는 역할을 수행합니다. i번째 aggregator에서는 직전(i-1) aggregator에서 전달받은 token embedding과 entity embedding을 두 개의 multi-head self-attention으로 feed합니다.

그리고 i번째 aggregator는 information fusion layer를 통해 token embedding과 entity embedding을 통합합니다.

위에서 h_j 는 token과 entity의 정보를 합치는 inner hidden state입니다. σ는 non-linear function으로 논문에서는 GELU를 사용했습니다. 위의 수식은 문장에서 KG의 entity와 일치하는 토큰이 있을 때 사용하는 것입니다. 만약 일치하는 토큰이 없다면 아래와 같이 output embedding을 계산합니다.

다시 i번째 aggregator의 역할을 수식으로 표현한다면,

이렇게 쓸 수 있습니다. Top aggregator의 output embedding은 K-Encoder의 final output embedding으로 사용됩니다. (Figure 2. left 참고)

3 Pre-training for Injecting Knowledge

Language model에 informative entity를 주입하는 방법으로, 논문에서는 새로운 pre-training task를 제안합니다. Introduction에서 다룬 것처럼, Token-entity alignment를 masking하는 방법을 사용합니다. 연구진들은 denoising auto-encoder와 비슷한 방법으로 학습시켰기 때문에 denoising entity auto-encoder (dEA)라고 명명했습니다.

Entity set의 크기는 softmax layer에서 처리하기엔 다소 크기 때문에, 여기서는 모든 entity set을 후보로 predict하는 것이 아니라, 주어진 entity sequence에서의 확률을 계산합니다. Token의 시퀀스{w_1, …, w_n}와, corresponding하는 entity sequence {e_1, …, e_m}가 주어진다면, w_j에서의 entity distribution을 아래와 같이 정의할 수 있습니다.

위 Eq. 7은 dEA의 cross-entropy loss function을 계산하는 데에 사용됩니다.

이제 모델의 masking 방식을 살펴보겠습니다. Token-entity alignment가 있을 때, randomly masking하는 기준은 다음과 같습니다.

  • 5% : 기존 entity를 다른 random entity로 대체
  • 15% : token-entity alignment를 마스킹.
  • 나머지 : unchanged.

기존 entity를 다른 random한 entity로 대체하는 것은, 모델이 token이 잘못된 entity와 매칭되었을 때, 바로 잡는 능력을 학습하도록 하기 위함입니다. 그리고, token-entity alignment를 마스킹하는 것은 모델이 모든 alignment를 추출하지 못하는 오류를 바로 잡게 하기 위함입니다.

또한, 연구진들은 BERT와 마찬가지로 MLM과 NSP(Next Sentence Prediction)를 적용했습니다.

4 Fine-tuning for Specific Tasks

Fine-tuning에서는 BERT와 마찬가지로 [CLS] 토큰을 사용합니다. 하지만, knowledge driven tasks를 수행하기 위해서 몇 가지 작업을 추가합니다.

Relation classification은 주어진 entity pair를 가지고 적절한 relation을 분류하는 task입니다. 논문에서는 Relation classification에서 head entity에 해당하는 토큰을 [HD]로, tail entity의 토큰을 [TL]로 masking했습니다. Head entity와 tail entity의 positional 정보를 가지고 분류하기 위함입니다.

Entity typing은 relation classification 방법을 더 간단하게 하여 entity에 해당하는 토큰을 [ENT]로 치환합니다.

5 Experiments

Pre-training Dataset

토큰들을 인코딩할 때는, BERT의 Transformer blocks의 파라미터를 그대로 사용했습니다. NSP와 MLM, dEA의 task에서는 영어 Wikipedia를 pre-training corpus로 사용하고, Wiki-data를 이와 대응하는 KG로 사용했습니다. Corpus를 formated data로 변환하면 annotated input은 4,500M subwords와 140M entites를 가지게 됩니다. 여기서 각 sentence는 3개 이하의 entity를 포함합니다.

ERNIE는 annotated된 corpus로 단 한 번의 epoch에서 밖에 학습시키지 않았습니다. Training time을 줄이기 위해서 max sequence length를 512에서 256으로 감소시켰습니다. 그 대신, batch의 토큰 수를 같게 하기 위해, batch size를 두 배로 늘렸습니다. learning rate는 BERT의 5e-5를 적용했습니다.

Fine-tuning에서는 batch size, learning rate, training epoch을 제외하고는 pre-training 과정에서의 parameter와 동일하게 셋팅했습니다.

  • batch size : 32
  • learning rate (Adam) : 5e-5, 3e-5, 2e-5
  • epoch range : 3 to 10

연구진들은 ERNIE를 distantly supervised dataset인 FIGER로 평가했는데, 모델이 작은 batch size에서 overfitting을 보였다고 얘기합니다. 따라서, larger batch size와 less training epoch으로 overfitting을 피할 수 있었습니다.

  • learning rate : unchanged.
  • batch size : 2048
  • epoch rage: 2, 3

실험 결과는 예상되듯, Entity Typing과 Relation Classification에서 다른 LM과 비교했을 때, 더 좋은 성능을 보였습니다.

6 Conclusion

ERNIE는 knowledgeable aggregator와 dEA task로 text와 KG의 information을 더 잘 fusion할 수 있었습니다. 연구진들은 세 가지의 중요한 future research가 남았다고 서술합니다: (1) ELMo와 같은 feature-based pre-training model에 knowledge를 injecting하는 연구, (2) Wikidata와 다른 ConceptNet과 같은 구조화된 knowledge를 language representation에 포함하는 연구, (3) 더 큰 pre-training data를 위해 더 많은 real-world corpora를 annotate하는 것입니다.

--

--

정민수
정민수

Responses (1)