ERNIE: Enhanced Language Representation with Informative Entities
[접기]
목차
ERNIE: Enhanced Language Representation with Informative Entities - ACL 2019. 07. - |
https://arxiv.org/pdf/1905.07129.pdf |
1. Structure of ERNIE
|
ERNIE의 전체적인 구조 |
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의 수학적 표현 |
처음부터 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시킵니다.
- Masked Language Model (MLM)
- Next Sentence Prediction (NSP)
- Denoising Entity Auto-Encoder (dEA)
2.1. Masked Language Model (MLM)
![]() |
Masked Language Model의 구조 |
[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를 추가하여 모델을 더 견고하게 만드는데, 자세한 수치와 논문에서 제시하는 근거는 다음과 같습니다.
- (5%) Entity를 랜덤한 다른 Entity로 바꿉니다.
- 데이터에서 Token이 잘못된 Entity와 연결된 경우가 종종 있는데, 모델이 이러한 Error에 더 견고해지도록 합니다.
- (15%) Token에 해당하는 Entity가 있어도 없애버립니다.
- 데이터에서 모든 Token이 적절한 Entity와 연결되어있진 않는데, 모델이 이러한 Error에 더 견고해지도록 합니다.
- (80%) 그대로 둡니다.
- 모델이 Token Representation에 Entity 정보를 잘 합치는 법을 학습하게끔 합니다.
3. Fine-Tuning
논문에서는 다음의 2가지 Task를 소개합니다.
- Relation Classification
- Entity Typing
3.1. Relation Classification
![]() |
Relation Classification 예시 |
[HD]
Token으로 둘러싸고 Tail Entity는 [TL]
Token으로 둘러싸서 Transformer가 Target Entity를 인식하도록 합니다.3.2. Entity Typing
![]() |
Entity Typing 예시 |
[ENT]
Token으로 둘러싸서 표시합니다. 위 예시는 Mark Twain이 Target Entity인 경우이고, 만일 The Million Pound Bank Note가 Target Entity였다면, 현재 [ENT]
인 부분이 빈칸이 되고, 현재 빈칸인 부분이 [ENT]
Token이 됩니다.4. Results
![]() |
Relation Classification 결과 |
![]() |
Entity Typing 결과 |
![]() |
GLUE Benchmark 결과 |
논문에서는 위 세가지 결과가 자신들의 Contribution인 Knowledgeable Aggregator(T-Encoder + K-Encoder 구조)와 dEA Pre-Training Task 덕분임을 주장하며, 이에 대한 근거로 다음과 같은 Ablation Study를 보여줍니다.
![]() |
Ablation Study |