ERNIE: Enhanced Language Representation with Informative Entities

[접기]

목차

  • 1. Structure of ERNIE
  • 2. Pre-Training
    • 2.1. Masked Language Model (MLM)
    • 2.2. Next Sentence Prediction (NSP)
    • 2.3. Denoising Entity Auto-Encoder (dEA)
  • 3. Fine-Tuning
    • 3.1. Relation Classification
    • 3.2. Entity Typing
  • 4. Results


ERNIE: Enhanced Language Representation with Informative Entities
- ACL 2019. 07. -
https://arxiv.org/pdf/1905.07129.pdf

1. Structure of ERNIE


ERNIE의 전체적인 구조
구조 설명에 앞서 ERNIE의 입력과 출력을 먼저 살펴보면 Token과 Entity를 입력으로 받는 것을 볼 수 있습니다. 즉, ERNIE는 Language Model에 Knowledge를 집어넣는 방법에 대한 연구입니다. 그리고 Token과 Entity를 합쳐서 넣었다가 다시 분리하여, 동일한 레이어 구조를 원하는 개수만큼 반복할 수 있도록 설계되었습니다. 모델의 각 부분에 대한 자세한 설명은 뒤에서 하겠지만, ERNIE는 크게보면 T-Encoder와 K-Encoder들이 쌓여 이루어지는 구조입니다. T-Encoder는 BERT에서 보던 일반적인 Transformer 구조이고, K-Encoder는 이를 약간 변형하여 Entity Embedding이 함께 들어가도록 한 것입니다. 처리 순서는 T-Encoder가 먼저 Token Embedding을 만들고, K-Encoder에서 Token과 Entity의 Embedding을 결합합니다.

1.1. T-Encoder


T-Encoder는 Textual Encoder의 줄임말로, Text 정보만을—즉, Token Input만을—처리합니다. 하나의 T-Encoder는 Multi-Head Attention Layer와 이어지는 Feed Forward Layer로 이루어집니다. 일반적으로 이러한 구조를 Transformer라고 부르는데, BERT의 그것과 똑같다고 보면 됩니다. Transformer 구조에 대한 자세한 내용은 여기를 참고하면 도움이 됩니다.

1.2. K-Encoder


K-Encoder는 Knowledgeable Encoder의 줄임말로, Transformer 구조를 변형하여 Knowledge(=Entity Embedding)가 Token과 함께 Embedding되는 부분입니다. Token과 Entity는 각각 독립적인 Multi-Head Attention Layer를 거친 후, 하나로 합쳐져 Information Fusion Layer를 거치고, 이후 다시 분리되는데, 어떻게 합치고 어떻게 분리하는지는 논문에 식을 통해 제시되어있습니다.
K-Encoder의 수학적 표현
[식 4]가 이 둘을 합치고 분리하는 과정입니다. 먼저 Hidden State $ h $는 각각을 같은 차원이 되도록 Projection한 뒤 단순하게 더하는 방식으로 만듭니다. 분리할 때에는 이와 비슷하게 서로 다른 Projection을 거치면 됩니다. [식 5]는 해당 Token에 대응되는 Entity가 존재하지 않는 경우로, $ h $를 구할 때 Entity 항만 없는 모습입니다.

처음부터 K-Encoder로만 모델을 구성하지 않고 굳이 T-Encoder를 미리 거치는 이유가 무엇일까요? 아마도 Entity Embedding은 이미 처리를 거져서 구해진 벡터이기 때문이지 않나 추측합니다. Token은 실제 Raw Text가 단순히 Token으로만 잘린 후 그대로 들어오지만 Entity는 Knowledge Graph에서 TransE 알고리즘을 통해 추출해오기 때문에, 둘 사이의 일종의 Embedding Level을 맞춰주기 위해 T-Encoder를 추가로 거친다고 생각해볼 수 있습니다. 물론, 이렇게 한 게 성능이 더 잘 나왔을겁니다.

2. Pre-Training


논문에서는 다음 3가지 Task로 ERNIE를 Pre-Training시킵니다.
앞에 두 가지는 BERT에서 사용하던 방식을 그대로 사용한 것이고, dEA는 논문에서 새롭게 제시하는 방식입니다. 실제로 dEA가 효과가 있음을 Ablation Study에서 보여줍니다.

2.1. Masked Language Model (MLM)


Masked Language Model의 구조
입력은 Sentence나 Paragraph 정도의 Token들이고, 그 중 일부를 [MASK]라는 특별한 기호로 대체합니다. 그리고 [MASK] 자리에 원래 어떤 Token이 있었을지를 맞추는 Task입니다. 위 그림에서 파란색 네모를 보면 4개의 Token이 Masking되었고, 보라색 네모가 각각의 Token을 예측한 결과입니다. Transformer를 사용하는 경우 대부분 위 그림과 같이 [MASK] Token이 들어간 자리에서 나온 Representation(=Embedding)을 가지고 예측을 합니다.

2.2. Next Sentence Prediction (NSP)


Next Sentence Prediction의 구조
입력은 위 그림과 같이 [CLS] Sentence 1 [SEP] Sentence 2와 같이 구성하고, [CLS]가 들어간 자리에서 나온 Representation을 가지고 예측을 합니다. 즉, [CLS]는 결과 예측을 위해서, [SEP]는 두 Sentence의 경계를 구분하는 용도로 사용한 것입니다. 결과로는 Sentence 2가 Sentence 1 다음에 오기에 어울리는 문장인지 아닌지를 출력합니다. 일반적으로 데이터를 구성할 때에는 실제 다음 문장 50%와 임의로 추출한 문장 50%로 확률이 반반이 되게끔 합니다.

2.3. Denoising Entity Auto-Encoder (dEA)


학습 데이터에 약간의 Error를 추가하여 모델을 더 견고하게 만드는데, 자세한 수치와 논문에서 제시하는 근거는 다음과 같습니다.

3. Fine-Tuning


논문에서는 다음의 2가지 Task를 소개합니다.
각각에 대해 좀 더 자세히 알아봅시다.

3.1. Relation Classification


Relation Classification 예시
두 개의 Entity가 주어지면 이 둘 사이의 Relation이 무엇인지 예측하는 문제입니다. 위 예시에서는 Mark Twain이 Head Entity, The Million Pound Bank Note가 Tail Entity입니다. Head Entity는 주변을 [HD] Token으로 둘러싸고 Tail Entity는 [TL] Token으로 둘러싸서 Transformer가 Target Entity를 인식하도록 합니다.

3.2. Entity Typing


Entity Typing 예시
하나의 Entity가 주어지면 이 Entity의 Type을 예측하는 문제입니다. Target Entity는 앞선 경우와 비슷하게 [ENT] Token으로 둘러싸서 표시합니다. 위 예시는 Mark Twain이 Target Entity인 경우이고, 만일 The Million Pound Bank Note가 Target Entity였다면, 현재 [ENT]인 부분이 빈칸이 되고, 현재 빈칸인 부분이 [ENT] Token이 됩니다.

4. Results


Relation Classification 결과
Relation Classification 성능 측정에는 FewRel과 TACRED 데이터를 사용하였습니다. FewRel은 학습 데이터가 적고 Relation 종류가 많은데 비해, TACRED는 학습 데이터가 많고 Relation 종류가 적다는 특징이 있습니다. 비교대상으로는 BERT 외에도 CNN, LSTM, GCN 구조를 바탕으로한 모델들을 제시했고, 결과적으로 모든 경우에 ERNIE가 더 좋은 성능을 냈습니다. 특히, 학습 데이터가 적은 경우에도 잘 동작한다는 것을 볼 수 있습니다.

Entity Typing 결과
Entity Typing 성능 측정에는 FIGER과 Open Entity를 사용했는데, 두 경우 모두 ERNIE가 항상 더 좋은 성능을 냈습니다. 결과가 비슷하여 여기에는 Open Entity만 첨부하였으니, 자세한 결과나 데이터 통계가 궁금한 분들은 논문을 참고해주세요.

GLUE Benchmark 결과
GLUE Benchmark의 8가지 Task를 실험한 결과이고 비교는 BERT랑만 했습니다. 대체로 BERT와 거의 유사한 성능을 보여주는데, 여기에서 주의깊게 볼 점은 GLUE가 어떤 External Knowledge도 요구하지 않는다는 점입니다. 즉, 순수한 Textual Information의 활용 능력만으로 경쟁하는 Task인데, ERNIE가 BERT와 비슷한 성능이라는 것은 Entity Information을 주입한 후에도 모델이 Textual Information을 잃지 않는다는 것을 보여줍니다.

논문에서는 위 세가지 결과가 자신들의 Contribution인 Knowledgeable Aggregator(T-Encoder + K-Encoder 구조)와 dEA Pre-Training Task 덕분임을 주장하며, 이에 대한 근거로 다음과 같은 Ablation Study를 보여줍니다.

Ablation Study
FewRel 데이터로 Relation Classification을 할 때, Entity 정보를 아예 안주거나 dEA Task를 제외하면 성능이 떨어지는 것을 볼 수 있습니다. 즉, 어떤식으로든 각 Contribution이 모델의 성능향상에 기여했다고 볼 수 있습니다. 그리고 둘 중 하나를 제외하더라도 BERT보다는 높은 성능을 보여줍니다.