728x90
카카오 브레인 팀에서 자연어 처리를 위한 데이터셋을 공개한다는 내용의 논문이다.
이제 자연어 처리 공부를 시작한 나에게는 모든게 생소하고 어렵게 느껴지지만, 대단하다는건 확실하다 :)
Abstract
- NLU(Natural Language Understanding)에서 NLI(Naural Language Inference)와 STS(Semantic Textual Similarity)는 가장 큰 과제 중 하나이다.
- 영어를 포함한 몇 가지 언어에 대해서는 기준이 되는 데이터셋이 존재하지만, 한국어 NLI, STS에 대한 데이터셋은 존재하지 않는다.
- 그렇기에, KorNLI, KorSTS 라는 한국어 NLI, STS를 위한 데이터셋을 공개한다.
- 영어 데이터 셋을 기계 번역해서 한국어로 구성된 학습 데이터를 생성했다.
- 한국어 NLU 연구에 도움이 되고자 KorNLI와 KorSTS의 기준점을 제공한다.
- 데이터셋을 GitHub repository에 공개한다.
1. Introduction
- NLU(Natural Language Understanding)에서 NLI(Naural Language Inference)와 STS(Semantic Textual Similarity)는 가장 큰 과제 중 하나이다.
- 한국어에 대한 NLI, STS 벤치마크 데이터셋은 존재하지 않는다.
- 한국어 NLU 의 경우, question-answering, 감정분석(sentiment analysis) 정도에 대한 데이터셋만 존재한다.
- 영어 문장을 기계 번역과, 번역가에 의한 번역을 통해서 한국어 데이터셋을 제작했다.
- KorNLI, KorSTS의 기준점을 제공해서 한국어 NLU 연구가 가능하도록 한다.
2. Background
2.1 NLI and the {S, M, X} NLI Datasets
- NLI 에서는 한 쌍의 문장을 제공한다. (premise와 hypothesis)
- 두 문장의 관계를 3개로 분류하게 된다 : entailment(얽힘), contradiction(모순), neutral(중립)
- 기존에 존재하는 다양한 NLI 데이터셋에 대해서도 소개한다.
- SNLI(Stanfod NLI) : image caption을 기반으로 한 570K개의 영어 문장 쌍으로 구성
- MNLI(Multi-Genre NLI) : 10개의 장르로 구분된 455K 개의 영어 문장 쌍으로 구성
- XNLI(Cross-lingual NLI) : MNLI의 말뭉치를 15개의 다른 나라 언어로 확장해서 구성
2.2 STS and the STS-B Dataset
- STS는 두 문장 사이의 유사성을 나타낸다.
- 0(전혀 유사하지 않음) 에서 5(완벽히 일치함) 사이의 값으로 점수를 제공한다.
- STS-B는 STS를 위해 SemEval에서 2012-2017년 사이에 수집한 데이터 중 8,628개의 문장 쌍을 뽑아낸 데이터셋이다.
- 문장들은 image captions, news headlines, user forums 등에서 수집된 자료이다.
3. Data
3.1 Data construction
- KorNLI는 SNLI, MNLI, XNLI에서 파생되었다.
- KorSTS는 STS-B 데이터셋에서 파생되었다.
- training set을 구성하는 SNLI, MNLI, STS-B는 기계번역을 통해 한국어로 번역된다.
- development set, test set을 구성하는 XNLI, STS-B도 기계번역을 통해서 한국어로 번역된다.
- development set, test set의 번역 결과는 (결과의 품질을 보장하기 위해서) 전문 번역가에 의해서 다시 한 번 검토된다.
- 전문 번역가에 의한 작업은 데이터의 일관성을 보장한다.
- 두 명의 번역가가 과정에 참여하는데, 전체 데이터를 반으로 나눠서 각자 절반의 데이터를 번역한다. 각자의 작업을 마쳤으면 서로의 결과를 상호 검토하게 된다.
- 마지막으로는 Microsoft Word를 이용해서 splling, grammar 를 검토하게 된다.
3.2 KorNLI
- 위의 표에서 P는 premise, H는 Hypothesis를 의미한다.
- 두 문장의 관계는 Ent.(entailment), Contr.(Contradiction), Neutr.(Neutral)을 의미한다.
- 950,354개의 데이터는 기계 번역을 통해서 자동으로 생성되었다.
- 7,500(2,490 + 5,010)개의 데이터는 사람에 의해 최종적으로 생성되었다.
3.3 KorSTS
- KorSTS 데이터셋은 5,749개의 기계번역으로 생성된 데이터와, 2,879개의 사람에 의해 생성된 데이터셋으로 구성된다.
- 평균적으로 각 문장을 7.5개의 단어로 구성된다.
- KorSTS에서는 두 문장이 입력으로 제공되고, 두 문장이 얼마나 유사한지 점수(label)을 제공한다.
- 유사하지 않으면 0점, 매우 유사하면 5점으로 점수가 제공된다.
4. Baselines
- 해당 데이터셋을 통해, 한국어 NLI, STS 에 대한 기준점을 제공한다.
- 두 개의 문장이 입력으로 제공되기 때문에, 두 문장을 처리하는 방식이 달라질 수 있다.
- 두 문장을 함께 인코딩하는 방법(cross-encoding)과 두 문장을 별개로 인코딩하는 방법(bi-encoding)으로 구분할 수 있다.
4.1 Cross-Encoding Approaches
- 보통 큰 사전 학습된 lanuage model을 사용해서 각 task에 맞게 미세 조정(fine tune)하는 것이 일반적이다.
- cross-encoding에서는 두 문장을 하나의 입력으로 처리한다.
- cross-encoding 방식은 state-of-art 성능을 낼 수 있다.
- 우리는 두 개의 사전 학습된 모델을 고려한다 : Korean RoBERTa, XML-R
- 두 모델 모두 base와 large 버전을 모두 고려한다.
- XML-R과 RoBERTa는 서로 동일한 구조로 구성되어있지만, XML-R이 더 많은 데이터를 기반으로 학습되었다.
- RoBERTa는 XML-R에 비해서 모델의 크기가 작지만, 더 좋은 성능을 낸다는 것을 확인할 수 있었다.
- base 모델 보다는 large 모델의 성능이 더 좋다는 것을 확인할 수 있었다.
- Korean RoBERTa large 모델의 성능이 가장 좋았다.
4.2 Bi-Encoding Approaches
- bi-encoding은 큰 데이터셋에 대해서 pairwise similarity를 계산하는데 비용이 적게 든다.
- 사전 학습된 모델을 사용하지 않는 경우를 먼저 고려한다 : Korean fastText, M-USE(multilingual universal sentence encoder)
- 각 문장의 임베딩은, 해당 문장의 단어 임베딩의 평균값을 사용한다.
- 입력으로 제공된 두 문장의 코사인 유사도를 통해서 결과를 예측한다.
- 사전 학습된 모델을 사용하는 경우도 고려한다 : KoreanRoBERTa(SRoBERTa), XML-R(SXML-R)
- SentenceBERT의 MEAN pooling 방식을 사용한다 : 각 단어의 가능한 모든 벡터들의 평균을 문장 벡터로 사용한다.
- KorNLI를 이용해서 학습한 경우, 성능이 더 좋아진다는 것을 확인할 수 있었다.
- 그러므로, KorNLI는 bi-encoding 방식에서 효과적인 중간 학습 데이터로 사용할 수 있다.
5. Conclusion
- KorNLI와 KorSTS 데이터셋을 공개했다.
- 한국어 NLI, STS의 기준점을 제공했다. (cross-encoding과 bi-encoding 방식 모두)
- 한국어 NLU 의 발전에 사용되었으면 좋겠다.
728x90
'대학원 이야기 > 논문 리뷰' 카테고리의 다른 글
[논문 리뷰] Attention Is All You Need (0) | 2020.08.31 |
---|---|
[논문 리뷰] GloVe: Global Vectors for Word Representation (수정 중) (2014 EMNLP) (0) | 2020.08.26 |
[논문 리뷰] A neural probabilistic language model (수정 중) (0) | 2020.08.22 |
[논문 리뷰] Efficient Estimation of Word Representations in Vector Space (0) | 2020.08.18 |
[논문 리뷰] "Why Should I Trust You?": Explaining the Predictions of Any Classifier (수정 중) (0) | 2020.08.14 |
댓글