What does BERT learn about the structure of language?(Jawahar.G(2019))

|

1. Introduction

pre-trained된 BERT모델을 downstream NLP task에 사용된다. 일반적으로 BERT는 unsupervised learning으로 학습되지만 다른 task에 이용하기 위해 supervised learning으로도 학습하여 사용될 수도 있다. supervised learning으로 학습된 BERT가 GLUE benchmark의 11개 task에서 기존의 state-of-the-art를 뛰어넘었다고 한다. 그런데 BERT가 왜 잘 되는지 아직 잘 모른다고 한다.

research question: BERT의 각 layer에서 학습되는 representation이 무엇인지 밝힐 수 있을까?(각 layer에서 자연어의 어떤 특성이 학습되는지 밝힐 수 있을까?)

위와 같은 질문에 대한 답을 찾기 위해 본 논문에서는 아래와 같은 네 가지 실험을 한다. 이 실험들은 Goldberg(2019)연구를 기반으로 하여 각 layer에서 학습한 representation에 대한 평가를 진행한다.

1) 각 layer가 phrase정보를 얼마나 잘 포착했는지 실험
2) BERT가 자연어의 hierarchical한 속성을 잘 포착했는지 실험. Conneau(2018)연구를 기반으로 각 layer에서 surface, syntactics, semantics feature를 얼마나 잘 캡쳐하는지 실험.
3) 주어-술어 수일치와 같은 task가 있을 때 long-distance dependency에 대해 BERT가 task를 얼마나 잘 수행하는지 실험.
4) compositional structure를 test하여 BERT가 tree구조를 얼마나 잘 포착하는지 실험.

2. BERT

BERT는 transformer를 기반으로 한 pre-trained 모델로, 각 layer에서 bidirectional하게 학습한다. BERT는 두 가지 방법으로 training이 된다:

1) Masked Language Model: input 문장 일부에 mask token을 넣어 해당 token이 원래 어떤 단어였는지 알아내는 학습 방법.
2) Next sentence prediction: input sequence에 대해 절반은 pair가 되는 문장으로, 나머지는 corpus에서 랜덤으로 추출한 문장을 놓고 두 문장이 연결되는 문장인지 아닌지 판별하는 학습 방법.

2021-04-02

문장 처음에는 [CLS]token을, 마지막에는 [SEP]token을 놓아 모델이 각 문장을 구분할 수 있게 한다. 입력 token의 15%은 [Mask]token으로 들어가 embedding된다.

2.1 Setup

  • PyTorch
  • 12 layer, 768 hidden layer, 12 attention head
  • BERT representation을 compute하기 위해 [CLS]token을 붙인다. ([CLS]token은 transformer를 모두 거치고 나면 token sequence의 결합된 의미를 가지게 된다. 그래서 여기에 classifier를 붙이면 classification task를 수행할 수 있게 되는 것인데 classification task가 아니라면 [CLS]token은 그냥 무시해도 된다.)

1) Peters(2018)

이 연구에서는 contextual word embedding을 사용한 모델이 Glove와 같은 기존의 word embedding방식을 사용한 모델보다 훨씬 뛰어나고 언어의 구조 정보까지도 각 layer에서 포착한다는 것을 밝힌 논문이다.

2) Tenney(2019)

contextual word representation이 구조 정보를 잘 encode하지만 syntactic 정보에 대해서는 잘 파악하지 못한다는 것을 밝힌 논문이다.

3) Liu(2019)

이 논문에서는 아래와 같은 세 가지 결과를 밝혔다:

  • contextual word embedding이 fine-grained된 언어정보는 잘 포착하지 못한다.
  • RNN의 경우, attention model과는 달리 higher layer에서 task specific한 정보를 잘 파악한다.
  • 특정한 task에 대해 미리 훈련한 모델이 일반적으로 훈련한 모델보다 성능이 좋다.

이 논문에서는 RNN(BiLSTM)과 Transformer의 몇 번째 layer가 어떠한 정보를 학습하는지 실험하기 위해 17가지 task를 수행하였다. RNN의 경우, 일반적인 정보는 중간 층위에서 잘 캡쳐되고 task specific한 것에 대해서는 높은 층위에서 더 잘 캡쳐되었다(예를 들어 4개 layer를 쌓았을 때 4번 layer에서 task specific한 정보가 잘 캡쳐되고 2-3번째 layer에서는 일반적인 정보가 잘 캡쳐된다). Transformer의 경우에는 그냥 주로 중간 층위에서만 많이 된다는 것을 확인하였다. 이를 통해 이 논문은 pre-training모델도 task specific하게 학습하는 것이 의미 있을 수 있다는 결론을 도출하였다.

4) Hewitt(2019)

input에 contextual base가 있는 경우가 그렇지 않은 경우보다 Parse tree가 더 잘 반영된다.

이 논문에서는 text의 hierarchical한 정보가 embedding에 잘 반영되는지 확인하기 위해 parse tree를 복원해낼 수 있는 선형변환을 찾는 연구를 다룬다. ELMo와 BERT트를 대상으로 실험이 진행되는데, ELMo에서도 충분히 복원이 되긴 했지만 BERT가 더 정확했다. parse tree는 tree가 진짜로 존재 한다기보다 vector norm(vector distance)로 저장되어 있었다. 따라서 이를 바탕으로 vector공간 내에서 통하는 metric을 기준으로 parse tree를 제고해낼 수 있는 정보를 얻을 수 있다는 것을 확인하였다.

위 네 연구는 모두 contextual word embedding의 중요성을 시사한다. 본 논문에서는 ability of BERT in learning syntactic structure를 증명하고자 한다.

4. Phrasal Syntax

BERT가 구조적인 정보들을 얼마나 잘 처리하는지를 알아보기 위해 본 논문에서 진행된 4가지 실험 중 첫 번째이다. 여기에서는 BERT가 phrase단위의 언어정보를 잘 포착하는지 살펴본다. 이 실험과 관련된 선행연구는 Peters(2018)로, 여기에서는 LSTM기반 모델이 Phrase-level information을 잘 캡쳐한다고 보고했다. 이를 이어 받아 본 연구에서는 traditional language modeling을 목적으로 훈련하지 않은 BERT모델도 phrase-level의 정보들을 잘 처리할 수 있는지를 확인한다. 또한 BERT가 처리하는 phrase level information이 multiple한 layer(12개의 layer)에서 어떻게 나타나는지 확인하고자 한다.

4.1 Experiment procedure

실험 절차는 BERT의 각 layer에서 span representation을 뽑아내고 각 layer에서 첫 번째 hidden vector와 마지막 hidden vector를 concatenate해서 span representation을 산출하는 식으로 이루어진다.

4.2 Dataset

CoNLL200 chunk dataset에서 3000개의 labeled chunk와 500개의 unlabeled chunk의 span을 무작위로 골라 data로 사용하여 주석된 카테고리대로 잘 분류하는지 실험하였다.

CoNLL은 아래 예시처럼 문장 내에서 NP나 VP같은 phrase단위의 카테고리들이 chunk단위로 주석처리 되어 있는 데이터이다.
2021-04-03

4.3 Result

2021-04-03 (1)

분류 결과는 위와 같다. Figure1은 앞에서 2개 layer, 뒤에서 2개 layer의 span representation을 시각화한 것이다. 이는 chunk type을 10가지로 정해 놓고 K-means clustering으로 분류한 것으로, 하위 layer에서 phrase level information을 잘 포착하는 반면 higher layer의 경우 카테고리들이 뭉개져서 구분이 힘든 것을 볼 수 있다. 이 cluster결과를 NMI metric을 사용하여 evaluate를 해봤는데 위 표처럼 하위 layer에서의 성능이 상위 layer의 성능보다 좋았다고 한다.

5. Probing Tasks

probing task는 classification task라고도 한다. 신경망 모델이 주어진 문장에서 특정 linguistic feature들을 잘 probe할 수 있는지를 test하는 것이다.

두 번째 실험이다. 이 실험에서는 BERT가 문장의 surface, syntactic, semantic feature들을 잘 포착하는지 확인한다. 이는 auxiliary classification task를 setting함으로서 달성된다. 이 task에서는 모델의 final output이 특정 언어 현상을 예측할 수 있도록 해주는 feature로 사용된다. auxiliary classifier가 특정 linguistic property를 잘 예측하면 original model도 해당 property를 잘 encoding한다는 것이다.

이 실험에서는 각 모델의 layer가 다른 종류의 linguistic feature를 잘 encoding하는지 확인한다. layer를 평가하기 위해 10개의 probing task를 수행하는데, task의 dataset에 따라 세 그룹으로 나뉠 수 있다.

5.1 Surface tasks

  • Sentence Length, Word Content
    Surface task는 비교적 단순한 작업으로, 1) 문장의 길이나 2) 문장에 특정 단어가 존재하는지에 대한 feature를 찾는 task이다.

5.2 Syntactic tasks

  • Bigram shift, Tree depth, Top constituent
    이 task에서는 1)어순에 대한 sensitivity(문장 구성성분들의 순서가 어떤지, 그 배열이 제대로 된 것인지), 2) syntactic tree의 깊이가 어느정도인지(내포절이 많고 수식구가 많으면 tree의 깊이가 깊어진다), 3) tree안에서 top level에 있는 constituent들의 순서를 확인한다.

5.3 Semantic task

  • Tense, subject Number, Object Number, Coordination Inversion and Semantic Odd Man Out
    이 task에서는 1) 시제 2) 주어 3) 목적어의 수 그리고 4) 명사와 동사의 무작위 배치에 대한 sensitivity(이건 parsing과정이 좀 복잡하다)를 확인하는 작업이 이루어진다.

5.4 Result

2021-04-03 (3)

위 표를 보면 BERT가 linguistic feature들의 hierarchical한 특성을 잘 embedding하는 것을 확인할 수 있다.

  • Surface information(feature)의 경우 low layer에서 잘 포착된다.
  • Syntactic information(feature)은 middle layer에서 잘 포착된다.
  • 비교적 복잡한 Semantic information(feature)은 higher layer에서 잘 포착된다.

task가 복잡해질수록 상위 layer에서 좋은 결과를 얻는데, 이를 통해 training이 더 진행될수록 기본적인 문장길이와 같은 feature보다는 조금 더 복잡한 feature들을 더 잘 처리하는 것이 확인된다.

괄호 안의 숫자는 훈련된 BERT와 훈련되지 않은 BERT간의 차이를 나타낸다. 괄호 안의 수가 마이너스 값으로 나타나는 경우는 훈련되지 않은 BERT의 성능이 더 뛰어나다는 것이다. 위 표에서 문장 길이를 파악하는 task의 중간 layer부터 마이너스 값이 확인되는데, 이는 훈련되지 않은 BERT도 기본적인 문장 길이정도는 충분히 예측할 수 있다는 것을 나타낸다.

이 실험을 통해 결론적으로 BERT가 linguistic feature들의 hierarchy를 잘 embedding하는 것을 확인할 수 있다.

6. Subject-verb agreement

세 번째 실험이다. 이 실험에서는 주어 동사 수일치(주어의 수와 동사의 수가 단수인지 복수인지분류)를 통해 둘 사이의 dependency를 잘 파악하는지 확인하고, 주어와 동사 사이에 attractor가 있는 경우 long-distance dependency를 얼마나 잘 파악하는지 확인한다.

여기에서 dependency란 문장 내에서 특정 요소들이 가지는 syntactic한 관계를 의미한다.

a) The keys are on the table.
b) The keys to the cabinet are on the table.
c) The keys to the cabinet whose color is blue are on the table.

예문 b에서 복수 명사인 The keys와 복수 동사 are사이에 단수 명사 the cabinet이 끼어 있는데, 이런 것을 attractor라고 한다. 이렇게 attractor가 주어와 동사 사이에 존재하게 되는 경우, 기본적인 문장인 예문 a보다 더 복잡한 처리 과정을 요하게 된다.

이러한 개념을 바탕으로 주어와 동사 사이에 존재하는 attractor의 개수를 조절해가며 BERT의 각 layer에 대해 실험을 진행하였다.

6.1 Result

2021-04-03 (4)

위 표의 가로는 attractor의 수, 즉 distance이고 세로는 layer number이다.

  • 대부분 layer 5에서 9사이의 결과가 좋은 것을 확인할 수 있다. 이는 앞서 진행한 probing task 중 syntactic feature가 중간 layer에서 잘 캡쳐되는 것과 비슷한 양상이다.
  • 그리고 attractor 증가에 대한 전반적인 성능 하락이 관찰된다.
  • attractor가 증가해도 상위 layer에서는 비교적 좋은 성능이 나오는 것을 확인할 수 있다. 이는 복잡한 처리과정을 요하는 문장을 다루기 위해서는 deep한 layer가 필요하다는 것을 시사하는 것으로 볼 수 있다.

7. Compositional structure

네 번째 실험이다. 이 실험에서는 BERT의 representation에 compositional한 특성이 나타나는지를 확인하고, 주어-동사 수일치에 대한 dependency외에도 문장 내 단어들 간의 다른 dependency를 포착할 수 있는지를 확인한다.

언어의 compositional한 특성이란, 예를 들어 black + board = blackboard처럼 단어들 간의 결합을 통해 새로운 의미 혹은 확장된 의미의 단어가 만들어지는 것을 포함하여 문장 내에서 the + cabinet이 the cabinet이라는 NP가 되는 것을 의미한다.

7.1 Setup

언어의 compositional한 특성을 보기 위해 Tensor Product Decomposition Network(TPDN)을 사용했다. 이 실험에서는 문장의 compositional structure를 알기 위해 6가지 role scheme이 사용된다.

  • left-to-right : 문장을 순차적으로 쭉 읽는 것(방향: ->)
  • right-to-left : 문장을 거꾸로 읽는 것(방향: <-)
  • bag-of-words : 문장 순서를 고려하지 않고 특정 단어의 등장 횟수를 세는 것
  • bidirectional : 문장을 정방향, 역방향으로 보는 것(양방향)
  • syntactic tree : tree 구조 상 해당 단어의 위치를 확인하는 것
  • random binary tree : tree 구조 상 해당 단어의 위치를 확인하는 것

사용할 role scheme을 미리 선택하고 선택한 role scheme에 따라 input token을 구성한다.

TPDN의 representation이 신경망 모델(BERT)에 의해 학습된 representation에 근사하게 훈련이 되면 해당 role scheme이 compositionality를 조금 더 잘 명시할 수 있다는 개념을 바탕으로 실험이 진행된다.

7.2 Result

2021-04-03 (6)

위 표는 사전 학습된 BERT의 representation과 TPDN의 representation에 대한 Mean squared error(평균제곱오차값)을 구한 것이다. 대부분의 layer에서 TPDN이 BERT에 근사한 결과값을 내는 것을 볼 수 있다. left-to-right이나 right-to-left와 같이 단순한 정보처리 방식은 하위 layer에서 좋은 성능을 보이는 반면 tree structure와 같이 syntactic하고 복잡한 정보 처리 에 있어서는 상위 layer의 성능이 좋은 것을 확인할 수 있다.

7.3 Additional experiment

위와 같은 연구결과를 바탕으로 Raganato and Tiedemann(2018)이 진행한 self-attention weight로부터 제고된 dependency tree에 대한 연구를 추가적으로 진행한다. 이 실험은 모델이 문장 내 단어 간의 dependency관계를 파악할 수 있는지를 확인한다.

2021-04-03 (7)

위 그림은 모델이 예시 문장의 dependency를 파악한 것을 나타낸다.

1) key, cabinet, table. 이 세개의 명사와 해당 명사들의 관사에 대한 dependency가 잘 파악되었다.
2) key와 are의 주어-동사 dependency가 잘 파악되었다.
3) 단어들 간의 dependency뿐만 아니라 문장 내의 논항 구조도 잘 파악했다.

논항 구조란 동사를 중심으로 술어가 어떤 요소들을 필수적으로 요하는지에 대한 정보를 담고 있는 구조이다. 위 예시에서 논항 key, cabinet, table이 dependency chain인 것을 파악하고 있다.

8. Conclusion

지금까지 진행한 실험 결과에 대해 정리를 해보도록 하겠다.

  • 첫 번째 실험을 통해 BERT가 phrasal information(문장 내에서 NP와 VP찾기)을 잘 encoding하는 것을 확인하였다.
  • 두 번째 실험을 통해 BERT가 linguistic feature(surface, syntactic, semantic feature)들을 각 layer에서 잘 포착함을 확인함으로써 BERT가 hierarchical한 정보를 잘 파악한다는 것을 확인하였다.
  • 세 번째 실험을 통해 subject-verb agreement의 long dependency에 대한 실험을 진행하여 deep한 layer의 필요성을 확인하였다.
  • 네 번째 실험을 통해 BERT가 언어의 compositional한 특징, 단어들 간의 dependency 그리고 논항 구조를 모두 잘 파악한다는 것을 확인했다.

결론적으로 BERT가 영어의 구조적 특성을 잘 파악한다는 것을 증명하였다.

한국어나 독일어에 적용한 사례가 있는지는 모르겠다… 찾아보자…

Reference

Jawahar.G et al.”What does BERT learn about the structure of language?,” Association for Computational Linguistics.2019

Sang et al. “Introduction to the CoNLL-2000 Shared Task Chunking,” CONLL/WS. 2000