BERT를 이용한 한국어 기계 독해
이동헌*O, 박천음*, 이창기*, 박소윤**, 임승영**, 김명지**, 이주열**
강원대학교*, LG CNS 정보기술연구소**
{skh1578, parkce, leeck}@kangwon.ac.kr, {soyoon.park, seungyoung.lim, kmj0614,
jooyoul.lee}@lgcns.com
Korean Machine Reading Comprehension using BERT
Dongheon Lee*O, Cheneum Park*, Changki Lee*, Soyoou Park**, Seungyoung Lim**, Myungji Kim**, Jooyoul Lee**
Dept. of Computer Science, Kangwon National University* Infromation Technology Research Center, LGCNS**
요 약
기계 독해는 기계가 입력으로 받은 문단을 분석하고 추론하는 것을 말한다. 기계 독해를 이용하여 주어진 질문과 문단을 이해하고 이에 알맞은 답을 출력하는 것을 기계 독해를 이용한 질의 응답이라 한다. BERT는 대용량 코퍼 스에 대하여 양방향성을 가진 트랜스포머(transformer)로 언어 모델을 학습한 것이며, 사전 학습 된 BERT 모델에 출력 층(layer)을 추가하여 다양한 자연어처리 태스크에 적용할 수 있다. 본 논문에서는 기계 독해 태스크를 위 해 한국어 대용량 말뭉치로 사전 학습 된 BERT 모델 위에 SRU(simple recurrent unit)와 질의응답에 적합 한 자질을 추가한 모델을 제안한다. 실험 결과, 본 논문에서 제안한 방법을 한국어 기계독해 데이터 셋인 KorQuAD에 적용한 경우, 개발 셋에서 EM 85.35%, F1 93.24%의 성능을 보였다.
1. 서 론
기계 독해는 기계가 입력으로 받은 문단을 분석하고 추론하는 것을 말하며, 기계 독해를 이용하여 주어진 질문과 문단을 이해하고 이 에 알맞은 답을 찾는 것을 기계 독해를 이용한 질의 응답이라 한 다. 기계 독해 질의 응답의 데이터 셋으로는 질문에 대응되는 답의 경계를 문단 내에서 찾는 SQuAD (Stanford Question Answering Dataset) [1]와 질문에 대한 알맞은 답을 생성하는 MS-MARCO [2]
등이 있다. 그 중 SQuAD는 기계 독해 태스크에서 주로 연구되는 대표적인 데이터 셋이며, 한국어에서도 SQuAD를 벤치마킹한 KorQuAD [3]가 있다. 본 논문에서는 KorQuAD 기계 독해 데이터 셋을 이용하며, 그 예는 다음과 같다.
질문: “KT의기가인터넷가입자점유율이몇%야?”
문단: “통신 3사의기가인터넷가입자중 KT의점유율이 58%를
넘어섰고 국내 전체 인터넷이용자의 약 23%가 KT의기가 인터
넷서비스를이용한다.”
KorQuAD는 위와 같이 질문과 문단이 주어졌을 때, 질문과 문단 을 이해하고 추론하여 문단 안에서 알맞은 정답 “58%”의 경계를 찾아 출력하는 것을 목표로 한다.
최근 자연어처리 태스크에서 뛰어난 성능을 보이고 있는 BERT [4]는 ELMo [5]와 OpenAI-GPT [6]와 같이 언어 모델을 학습하는 딥 러닝 모델이며, 양방향성을 가진 트랜스포머(transformer)[7]의 인코 더를 이용한다. BERT는 입력 텍스트 중 임의의 토큰에 마스크를 씌 우고(masking), 주변 문맥을 파악하여 마스킹된 단어를 출력하는 것으로 언어 모델을 학습한다. 사전 학습 된 BERT를 다른 자연어 처리 태스크에 사용하는 경우에는 BERT 모델에 해당 태스크를 위 한 출력 층(layer)을 추가하여 fine-tuning한다.
본 논문에서는 한국어 대용량 말뭉치로 사전 학습 한 BERT 모델 에 KorQuAD를 위한 출력 층(layer)을 추가하고, 성능 향상을 위하 여 기계독해 질의응답에 의미 있는 자질을 추출하고, 문맥 정보를 인코딩(encoding)하는 RNN (recurrent neural network)을 적용한다.
학습에 사용된 자질은 질의응답이나 정보검색 등에서 자주 사용되 는 exact match와 term frequency, 개체명(named entity) 자질이다.
RNN은 gate layer의 이전 히든 스테이트 연산을 제거하여 학습 속 도가 빠른 SRU (Simple Recurrent Unit) [8]를 적용한다. SRU는 계산 량이 적기 때문에 다른 RNN type들(GRU [9], LSTM [10]) 보다 레이 어 스택을 깊게 쌓을 수 있고, highway network를 포함하고 있어 스택을 깊게 쌓는 경우 좋은 성능을 보이는 장점이 있다.
2. BERT
BERT는 트랜스포머의 인코더를 기반으로 언어 모델을 학습하 는 딥 러닝 모델이다. BERT는 두 개의 문장을 입력 받아 서로 연결하고, 임의의 단어에 마스킹을 수행한 다음, 마스킹된 단 어를 출력하는 것으로 모델을 학습한다. BERT는 입력된 두 문 장의 관계를 학습하기 위하여 연결 된 두 문장이 실제 쌍인지 를 판별하는 다음 문장 예측 방법도 함께 적용한다. BERT의 학습 데이터는 다음과 같이 구성된다. 주어진 입력열(input sequence)의 첫 번째 토큰으로 [CLS]가 주어지며, 두 입력열의 마지막 위치에는 [SEP]가 주어진다. 입력열은 형태소 분석 후 에 BPE (byte pair encoding) [11]를 적용하여 토큰 단위로 나누 고, 이에 기반하여 단어 표현(word embedding)과 포지션 임베 딩(position embedding), 분할 임베딩(segment embedding)을 만든다. 각 임베딩을 토큰별로 서로 더하여 BERT의 입력으로 넘겨주고, 트랜스포머 모델에 따라 선형 레이어를 적용하여 query (Q), key (K), value (V)를 만든다. 이후, 멀티 헤드 어텐션
(multi-head attention)이 수행되며, 이를 위하여 Q, K, V의 차원 수는 ℎ 개의 head 로 나뉜다. 이에 따른 트랜스포머의 수식은 다음과 같으며, 여기서 dk는 K의 차원 수 이다.
MultiHead(𝑄, 𝐾, 𝑉) = concat(ℎ𝑒𝑎𝑑1, … , ℎ𝑒𝑎𝑑ℎ)𝐖𝑂 (1) ℎ𝑒𝑎𝑑𝑖= gelu (𝐖𝑔Attention(𝑄𝐖𝑖𝑄, 𝐾𝐖𝑖𝐾, 𝑉𝐖𝑖𝑉)) (2)
Attention(𝑄𝑖, 𝐾𝑖, 𝑉𝑖) = softmax (𝑄𝑖𝐾𝑖𝑇
√𝑑𝑘) 𝐕𝑖 (3) BERT는 트랜스포머의 인코더를 기반으로 하기 때문에 Q, K, V는 모두 같은 값을 갖게 되며, 셀프 어텐션 매커니즘(self- attention mechanism)으로 모델링된다. Q, K, V에 대하여 scaled dot-product attention [7]을 기반으로 자기 자신에 대한 얼라인 먼트 스코어(alignment score)가 반영된 문맥 벡터(context vector)를 만든다. 생성된 문맥 벡터에 대하여 gelu[12]를 적용 하고, 비선형 연산을 수행하여 ℎ𝑒𝑎𝑑𝑖를 출력한다. 그 이후, head를 모두 연결하고 𝑊𝑂를 곱하여 멀티 헤드 어텐션을 출 력한다.
[그림 1] BERT 기반 SRU Networks 구조
3. BERT와 SRU를 이용한 한국어 기계 독해
본 논문에서는 [그림 1]과 같이 한국어 기계독해 질의응답 태 스크인 KorQuAD를 위하여 사전 학습된 BERT 모델에 정답의 시작과 끝의 확률을 계산하는 출력 층(layer)을 추가하고 fine- tuning한다. 이때 질의 응답 태스크에 적합한 문맥 특성을 잘 반영하기 위하여 자질 추출을 수행하고, 문맥 정보를 인코딩 하기 위하여 SRU를 적용한다. 추출된 자질들은 BERT 모델의 출력 히든 스테이트와 연결하여 SRU의 입력으로 넘겨주고, SRU로 인코딩을 수행한다. 그 후, 마지막으로 질문에 대응되 는 정답의 시작 위치(𝑦𝑠)와 끝 위치( 𝑦𝑒)를 출력한다. 학습 및 평가를 위한 데이터 구조는 질문 𝑄 = {𝑞1, … , 𝑞𝑛} 와 문단 𝑃 =
{𝑝1, … , 𝑝𝑚} 를 연결한 입력열 𝑋 =
{[CLS], 𝑡𝑜𝑘1𝑞, … , 𝑡𝑜𝑘𝑛𝑞, [SEP], 𝑡𝑜𝑘1𝑝, … 𝑡𝑜𝑘𝑚𝑝, [SEP]} 와 출력 정답 위 치 𝑌 = {𝑦𝑠, 𝑦𝑒}로 구성된다.
1
http://aiopen.etri.re.kr/
2
https://github.com/google-research/bert
3.1. 자질
본 논문에서 사용하는 자질은 exact match와 term frequency, 개체명 표현(embedding)이다. Exact match 자질은 주어진 입력 문단의 토큰(𝑡𝑜𝑘𝑖𝑝)이 입력 질문(Q)에 속하는 지를 확인하는 이 진(binary) 자질이다. Term frequency 자질은 각 토큰들의 빈도 수를 구하고 정규화한 값이다. 각 자질들에 대한 수식은 다음 과 같으며, 문단 토큰을 기준으로 한다.
Exact Match: 𝑓𝑖𝑒𝑚= ∏(𝑡𝑜𝑘𝑖𝑝∈ 𝑄)
Term Frequency: 𝑓𝑖𝑡𝑓= 𝑇𝐹(𝑡𝑜𝑘𝑖𝑝)/𝑚
NER embedding: 𝑓𝑖𝑛𝑒𝑟= embner(𝑛𝑒𝑟𝑖𝑝)
입력열 X는 BERT 네트워크를 거쳐 히든 스테이트 T가 출 력된다. 앞서 언급한 자질들은 식 (4)와 같이 히든 스테이트 T 와 연결되어 ℎ를 만들고, 이를 SRU의 입력으로 넘겨준다.
ℎ𝑖= [𝑇𝑖; 𝑓𝑖𝑒𝑚; 𝑓𝑖𝑡𝑓; 𝑓𝑖𝑛𝑒𝑟] (4) 본 논문에서는 bidirectional SRU (BiSRU)를 이용하여 입력된 ℎ𝑖의 문맥 정보를 인코딩하여 히든 스테이트 ℎ⃡𝑖를 만든다. 그 후, 인코딩 ℎ⃡𝑖에서 정답의 시작과 끝일 확률을 구하기 위하여 FFNN으로 차원 수를 2 (시작과 끝일 확률)로 맞추고, softmax 를 이용하여 질문에 알맞은 정답의 시작과 끝일 확률을 각각 출력한다. 이에 따른 수식은 다음과 같다.
ℎ⃡𝑖 = 𝐵𝑖𝑆𝑅𝑈(ℎ⃡𝑖−1, ℎ) (5) ℎ𝑜= 𝐹𝐹𝑁𝑁(ℎ⃡𝑖) ∈ ℝ𝑛×2 (6) 𝑦𝑠= 𝑠𝑜𝑓𝑡𝑚𝑎𝑥(ℎ𝑜1) ∈ ℝ𝑛 (7) 𝑦𝑒= 𝑠𝑜𝑓𝑡𝑚𝑎𝑥(ℎ𝑜2) ∈ ℝ𝑛 (8)
4. 실험
4.1. BERT 사전학습
본 논문에서는 ETRI에서 수집한 뉴스 및 위키피디아 데이터 약 23.5 기가바이트에 대하여 ETRI에서 학습한 BERT 모델을 이용하였다. 언어 모델 학습을 위하여 수집된 데이터는 AIOpen1에서 공개한 ETRI 언어분석기를 이용하여 형태소 분 석을 수행하고 BPE를 적용하였다. BERT 모델은 구글에서 공 개한 코드2를 이용하여 사전 학습을 수행하였고, 하이퍼파라미 터는 BERT-base 옵션(트랜스포머 블록 수: 12, 히든 레이어 차 원 수: 768, 어텐션 헤드 수: 12)을 따른다. BERT의 각 히든 레 이어의 활성 함수는 gelu를 사용하고, 드랍아웃(dropout)은 0.1 로 설정하였다.
4.2. 기계 독해 실험 및 결과
본 논문에서 사용한 기계 독해 데이터 셋은 KorQuAD이며, 학습 셋(train set) 60,407개와 개발 셋(development set) 5,774개로 구성된 다.
Fine-tuning을 수행할 때의 하이퍼파라미터 설정은 다음과 같다. 입력 시퀀스 최대 길이는 384, 문단 stride는 128로 설정 하여 최대 길이를 넘는 문단은 여러 개로 나누었다. SRU의 히 든 레이어(hidden layer)의 차원 수는 150, 스택 수는 3, 드랍아
웃은 0.2로 설정하였다. 개체명 임베딩의 차원 수는 10으로 설 정하였다. 학습으로는 Adam [13]을 사용하였고, 학습율 (learning rate)은 fine-tuning을 수행하기 때문에 0.00003으로 설정하였다.
[표 1]은 구글에서 배포한 multi-lingual 모델(BERT-google) 과 ETRI에서 수집한 데이터로 사전 학습한 모델(BERT-ETRI) 각각을 기반으로 실험한 성능을 나타낸다. 실험 결과, 본 논문 에서 사용한 BERT-ETRI 모델이 구글에서 배포한 모델에 비하 여 EM 7.13%, F1 2.76% 더 좋은 성능을 보였다. BERT-google 모델의 경우, 모델의 예측 결과에서 조사를 제거하고 성능을 측정하였다.
표 1. 사전 학습 데이터에 따른 성능 비교(%, dev)
[표 2]는 본 논문에서 제안한 모델에 대하여 사용하는 자질에 따 른 성능 비교를 보인다. 여기서 baseline은 BERT-ETRI이며, 이후 모델들도 모두 BERT-ETRI 모델을 기반으로 자질 및 모델 추가가 수행된다.
표 2. 모델과 자질에 따른 성능 비교 (%, dev)
Baseline (BERT-ETRI)에 자질 추출을 수행한 실험 결과는 다 음과 같다. 먼저, exact match를 추가한 경우, EM 85.17%, F1 93.11%로 baseline에 비하여 EM 0.35%, F10.37% 향상되었고, term frequency를 추가한 경우에는 EM 85.33%, F1 93.19%로 baseline에 비하여 EM 0.51%, F1 0.45% 향상된 성능을 보였다.
개체명 자질을 추출한 경우에는 가장 좋은 성능인 EM 85.35%
F1 93.24%를 달성하였다. Baseline에 SRU를 적용한 경우에는 EM 85.21% F1 93.18%의 성능을 보였다. Baseline에 SRU를 적용 하고, 자질들을 EM, TF, 개체명 순으로 하나씩 추가하여 SRU 를 적용한 경우에는 baseline에 SRU를 적용했을 때와 비슷하 거나 더 낮은 성능을 보였다. 마지막으로, 자질을 모두 사용하 고 SRU를 적용했을 때, baseline 보다 좋은 성능을 보였지만, 가장 좋은 성능을 보였던 baseline에 개체명 자질을 사용한 경 우보다 낮은 성능을 보였다.
5. 결론
본 논문에서는 한국어 기계 독해를 위하여 한국어 대용량 말뭉 치로 사전 학습 된 BERT를 사용하고, 자질을 추가하여 추출 문 맥 정보를 인코딩하는 SRU를 적용한 모델을 제안하였다.
실험 결과, KorQuAD 개발 셋에서 본 논문에서 제안한 방법 의 성능은 EM 85.19%, F1 93.04%을 보였지만, ETRI 사전 학습 BERT를 사용하고 개체명 자질을 사용할 경우에 EM 85.35%, F1 93.24%로 가장 좋은 성능을 보였다.
향후 연구로는 BERT large 모델에 대응되는 한국어 BERT를 이 용하여 기계 독해에 적용할 예정이다.
감사의 글
본 연구는 (주)엘지씨엔에스와 강원대학교의 산학 공동연구 과 제 '표 등의 양식을 갖춘 Multi-paragraph에 대한 Machine Reading & Comprehension 모델 연구 개발'의 일환으로 진행되었 음.
참고문헌
[1] P. Rajpurkar, et al. Squad: 100,000+ questions for machine comprehension of text. arXiv preprint arXiv:1606.05250, 2016.
[2] T. Nguyen, et al. MS MARCO: A Human Generated MAchine Reading COmprehension Dataset, arXiv preprint arXiv:1611.09268, 2016.
[3] 임승영, et al. (2018).KorQuAD: 기계독해를 위한 한국어 질의응답 데이터셋.한국정보과학회 학술발표논문집,(),539-541.T. Nguyen, et al. MS MARCO: A Human Generated MAchine Reading COmprehension Dataset, arXiv preprint arXiv:1611.09268, 2016.
[4] Devlin et al, BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding, arXiv preprint arXiv:1810.04805, 2018.
[5] Matthew Peters, Mark Neumann, Mohit Iyyer, Matt Gardner, Christopher Clark, Kenton Lee, and Luke Zettlemoyer. 2018. Deep contextualized word representations. In NAACL.
[6] Alec Radford, Karthik Narasimhan, Tim Salimans, and Ilya Sutskever. 2018. Improving language understanding with unsupervised learning. Technical report, OpenAI.
[7] Vaswani et al, Attention Is All You Need, arXiv Preprint, arXiv:1706.03762, 2017
[8] Tag Lei et al, Simple Recurrent Units for highly Parallelizable Recurrence, arXiv:1709.02755v5, 2018
[9] C. L. Giles, G. M. Kuhn, and R. J. Williams, “Dynamic recurrent neural networks: Theory and applications,” IEEE Trans. Neural Networks, vol. 5, pp. 153–156, Apr. 1994 [10] S. Hochreiter and J. Schmidhuber. Long short-term
memory. Neural computation, 9(8):1735–1780, 1997.
[11] R. Sennrich, B. Haddow, and A. Birch. Neural Machine Translation of Rare Words with Subword Units. In Proc. of ACL, pp.1715-1725, 2016.
[12] D. Hendrycks, K. Gimpel. Gaussian Error Linear Units(GELUs), arXiv:1606.08415, 2018
[13] D. Kingma and J. Ba. Adam: A method for stochastic optimization.
arXiv preprint arXiv:1412.6980, 2014.
Model EM F1
BERT-google multi-lingual (baseline) 77.69 89.98 BERT-ETRI 84.82 92.74
Model EM F1
BERT-ETRI (baseline) 84.82 92.74
Baseline + EM 85.17 93.11
Baseline + TF 85.33 93.19
Baseline + NER 85.35 93.24 Baseline + SRU 85.21 93.18 Baseline + SRU (EM) 84.69 92.84 Baseline + SRU (EM, TF) 85.22 93.17 Baseline + SRU (EM, TF, NER) 85.19 93.04