-
[Day83] 슬로우 페이퍼 BERT: Pre-training of Deep Bidirectional Transformers forLanguage UnderstandingAIFFEL Life 2020. 12. 26. 21:39
오늘은 슬로우페이퍼로 아침을 시작했습니다. 영.배.스.가 여러 사람들의 피드백이 별로라서 없애고 그 시간에 대신 논문을 하나 더 보자고 한거죠. 오늘 본 논문은 유명한 BERT (arxiv.org/pdf/1810.04805.pdf)네요. 읽으면서 메모한 것을 아래에 공유합니다.
We introduce a new language representation model called BERT, which stands for Bidirectional Encoder Representations from Transformers. Unlike recent language representation models (Peters et al., 2018a; Radford et al., 2018), BERT is designed to pretrain deep bidirectional representations from unlabeled text by jointly conditioning on both left and right context in all layers. As a result, the pre-trained BERT model can be finetuned with just one additional output layer to create state-of-the-art models for a wide range of tasks, such as question answering and language inference, without substantial taskspecific architecture modifications. BERT is conceptually simple and empirically powerful. It obtains new state-of-the-art results on eleven natural language processing tasks, including pushing the GLUE score to 80.5% (7.7% point absolute improvement), MultiNLI accuracy to 86.7% (4.6% absolute improvement), SQuAD v1.1 question answering Test F1 to 93.2 (1.5 point absolute improvement) and SQuAD v2.0 Test F1 to 83.1 (5.1 point absolute improvement).
1 Introduction
Language model pre-training has been shown to be effective for improving many natural language processing tasks (Dai and Le, 2015; Peters et al., 2018a; Radford et al., 2018; Howard and Ruder, 2018). These include sentence-level tasks such as natural language inference (Bowman et al., 2015; Williams et al., 2018) and paraphrasing (Dolan and Brockett, 2005), which aim to predict the relationships between sentences by analyzing them holistically, as well as token-level tasks such as named entity recognition and question answering, where models are required to produce fine-grained output at the token level (Tjong Kim Sang and De Meulder, 2003; Rajpurkar et al., 2016).
언어 모델 사전학습은 많은 자연어 처리 작업 개선에 효과적임을 보여줬다. 이들은 자연어 추론과 패러프레이징과 같은 문장 수준 작업 작업을 포함하고, 이는 전체적으로 문장을 분석해서 문장들간의 관계를 예측하려고 하며, 또한 네임드 엔티티 인식과 질의 응답과 같은 토큰 수준 작업도 개선하는데, 여기서 모델은 토큰 수준에서 파인그레인드 출력을 내야 한다.
There are two existing strategies for applying pre-trained language representations to downstream tasks: feature-based and fine-tuning. The feature-based approach, such as ELMo (Peters et al., 2018a), uses task-specific architectures that include the pre-trained representations as additional features. The fine-tuning approach, such as the Generative Pre-trained Transformer (OpenAI GPT) (Radford et al., 2018), introduces minimal task-specific parameters, and is trained on the downstream tasks by simply fine-tuning all pretrained parameters. The two approaches share the same objective function during pre-training, where they use unidirectional language models to learn general language representations.
사전 학습된 언어 표현을 다운스트림 작업에 적용하는데는 2개의 전략이 있다: 피처 기반과 파인 튜닝이다. 피처 기반 접근은 (엘모같은) 작업 특정 아키텍처를 사용하고, 이는 추가적인 피처로 사전 학습된 표현을 포함한다. 미세튜닝 접근은, 지티피같은, 최소한의 작업 특정 파라미터를 도입하고 다운스트림 작업에 학습되는데, 단지 모둔 사전학습된 파라미터를 미세 튜닝한다. 2 접근 방법은 같은 목표 함수를 공유한다, 사전학습동안, 거기서 그들은 한방향 언어 모델을 사용하여 일반 언어 표현을 학습한다.
We argue that current techniques restrict the power of the pre-trained representations, especially for the fine-tuning approaches. The major limitation is that standard language models are unidirectional, and this limits the choice of architectures that can be used during pre-training. For example, in OpenAI GPT, the authors use a left-toright architecture, where every token can only attend to previous tokens in the self-attention layers of the Transformer (Vaswani et al., 2017). Such restrictions are sub-optimal for sentence-level tasks, and could be very harmful when applying finetuning based approaches to token-level tasks such as question answering, where it is crucial to incorporate context from both directions.
우리는 현재 기법이 사전 학습된 표현의 능력을 제한한다고 본다. 특히 미세 튜닝 접근법에 대해서. 주요한 제한은 표준 언어 모델이 한방향이라는 것이고 이것이 아키텍처의 선택을 제한한다. (사전 학습동안 사용될 아키텍처) 예를 들어, 오픈 에이아이 지티피에서는, 저자들이 왼쪽에서 오른쪽으로의 아키텍처를 사용했는데 모든 토큰이 단지 이전 토큰에 주목한다.(트랜스포머의 셀프 어텐션 레이어에서) 이런 제한은 문장 단위 작업에 대해 차선책이고, 파인튜닝 기반 접근법을 토큰수준 작업 (질의응답, 양방향으로부터 문맥을 통합하는것이 중요한)에서는 매우 해롭다.
In this paper, we improve the fine-tuning based approaches by proposing BERT: Bidirectional Encoder Representations from Transformers. BERT alleviates the previously mentioned unidirectionality constraint by using a “masked language model” (MLM) pre-training objective, inspired by the Cloze task (Taylor, 1953). The masked language model randomly masks some of the tokens from the input, and the objective is to predict the original vocabulary id of the masked
word based only on its context. Unlike left-toright language model pre-training, the MLM objective enables the representation to fuse the left and the right context, which allows us to pretrain a deep bidirectional Transformer. In addition to the masked language model, we also use a “next sentence prediction” task that jointly pretrains text-pair representations. The contributions of our paper are as follows: • We demonstrate the importance of bidirectional pre-training for language representations. Unlike Radford et al. (2018), which uses unidirectional language models for pre-training, BERT uses masked language models to enable pretrained deep bidirectional representations. This is also in contrast to Peters et al. (2018a), which uses a shallow concatenation of independently trained left-to-right and right-to-left LMs. • We show that pre-trained representations reduce the need for many heavily-engineered taskspecific architectures. BERT is the first finetuning based representation model that achieves state-of-the-art performance on a large suite of sentence-level and token-level tasks, outperforming many task-specific architectures. • BERT advances the state of the art for eleven NLP tasks. The code and pre-trained models are available at https://github.com/ google-research/bert.
이 논문에서 우리는 미세 조정 접근방법을 버트를 제안하여 개선한다. 버트는 이미 언급된 단방향성 제한을 완화하는데, 마스키드 언어 모델 사전 학습 목표를 사용한다. 이는 클로즈 작업에 영감을 받은 것이다. 마스키드 언어 모델은 랜덤하게 인풋으로부터의 토큰 일부를 마스킹하고, 그 목표는 가려진 언어를 단지 문맥상으로 원래 단어 아이디를 유추하는 것이다. 왼쪽에서 오른쪽으로의 언어 모델 사전 학습과 달리, 엠엘엠 목표는 그 표현이 왼쪽과 오른쪽 문맥을 융합하게 해주고, 이는 우리가 깊은 양방향 트랜스포머를 사전 학습하게 해준다. 마스키드 언어 모델에 더해, 우리는 또한 다음 문장 추측 작업을 사용하는데 그것은 함께? 텍스트 쌍 표현을 사전학습한다. 우리 논문의 공헌은 다음과 같다:
- 우리는 언어 표현?을 위한 양방향 사전학습의 중요성을 보여줬다. 래드포드와 달리, 그것은 사전 학습을 위한 단방향 언어 모델을 사용한다. 버트는 마스키드 언어 모델을 사용하여 사전 학습된 깊은 양방향 표현을 사전학습하게 해준다. 이것은 또한 피터스와 대조되는데, 거기서는 독립적으로 학습된 왼쪽에서 오른쪽으로 오른쪽에서 왼쪽으로 언어 모델을 얕게 연결한 것을 사용한다.
- 우리는 사전 학습된 표현이 많은 무겁게 엔지니어링된 작업 특정 아키텍처에 대한 필요를 줄여준다. 버트는 첫번째 파인튜닝 기반 표현 모델이고 많은 문장 레벨, 토큰 레벨 작업에 대해 최신 성능을 이뤘고, 많은 작업 특정 아키텍처를 넘어섰다.
- 버트는 11개 자연어처리 작업에 대한 최첨단 수준을 진보시켰다. 코드와 사전학습 모델은 깃헙에 있다.
2 Related Work There is a long history of pre-training general language representations, and we briefly review the most widely-used approaches in this section.
언어 표현 사전학습하는 것은 긴 역사가 있으며, 우리는 간단히 가장 널리 사용되는 방법들을 여기서 리뷰한다.
2.1 Unsupervised Feature-based Approaches Learning widely applicable representations of words has been an active area of research for decades, including non-neural (Brown et al., 1992; Ando and Zhang, 2005; Blitzer et al., 2006) and neural (Mikolov et al., 2013; Pennington et al., 2014) methods. Pre-trained word embeddings are an integral part of modern NLP systems, offering significant improvements over embeddings learned from scratch (Turian et al., 2010). To pretrain word embedding vectors, left-to-right language modeling objectives have been used (Mnih and Hinton, 2009), as well as objectives to discriminate correct from incorrect words in left and right context (Mikolov et al., 2013).
다양하게 적용되는 단어 표현을 학습하는 것은 활발히 연구되는
3 BERT We introduce BERT and its detailed implementation in this section. There are two steps in our framework: pre-training and fine-tuning. During pre-training, the model is trained on unlabeled data over different pre-training tasks. For finetuning, the BERT model is first initialized with the pre-trained parameters, and all of the parameters are fine-tuned using labeled data from the downstream tasks. Each downstream task has separate fine-tuned models, even though they are initialized with the same pre-trained parameters. The question-answering example in Figure 1 will serve as a running example for this section.
우리는 버트는 소개하고 그것의 자세한 구현에 대해 설명한다. 우리 프레임워크에는 2개의 단계가 있는데, 사전학습과 파인튜닝이다. 사전학습에서 모델은 여러 사전 학습 작업에 대해 라벨되지 않은 데이터에 대해 학습된다. 파인튜닝에 대해서는 버트 모델이 처음에 사전 학습된 파라미터로 초기화 되고, 모든 파라미터는 다운스트림 작업으로부터의 라벨된 데이타를 사용하여 파인튜닝된다. 각각의 다운스트림 작업은 별도의 파인튜닝된 모델을 가지고 있다. 그들이 같은 사전 학습된 파라미터로 초기화되어 있다고 해도... 질의응답 예는 이 섹션을 위해 동작하는 예시이다.
A distinctive feature of BERT is its unified architecture across different tasks. There is minimal difference between the pre-trained architecture and the final downstream architecture.
버터의 두드러진 특징은 여러 작업에 걸쳐 통합된 아키텍처이다. 사전학습된 아키텍처와 최종 다운스트림 아키텍처간에는 최소한의 특징이있다.
Model Architecture
BERT’s model architecture is a multi-layer bidirectional Transformer encoder based on the original implementation described in Vaswani et al. (2017) and released in the tensor2tensor library.1 Because the use of Transformers has become common and our implementation is almost identical to the original, we will omit an exhaustive background description of the model architecture and refer readers to Vaswani et al. (2017) as well as excellent guides such as “The Annotated Transformer.”2
버트의 모델 아키텍처는 여러 레이어의 양방향 트랜스포머 인코더이다. (바스와니에 설명된 초기 구현에 기반) 그리고 텐서2텐서 라이브러리에 출시되어 있다. 트랜스포머의 사용이 흔해지고 우리의 구현이 거의 초기것과 같기 때문에, 우리는 너무 많은 모델 아키텍처에 대한 배경 설명은 생략한다. 더 어노테이티드 트랜스포머와 같은 가이드나 바스바니를 참고하길 바란다.
3.1 Pre-training BERT Unlike Peters et al. (2018a) and Radford et al. (2018), we do not use traditional left-to-right or right-to-left language models to pre-train BERT. Instead, we pre-train BERT using two unsupervised tasks, described in this section. This step is presented in the left part of Figure 1.
피터스와 래드포드와 달리, 우리는 전통적인 왼쪽에서 오른쪽 혹은 오른쪽에서 왼쪽 언어 모델을 사용하지 않는다. 버트를 사전 학습하기 위해. 대신, 우리는 버트를 사전학습하는데 2개의 비지도 작업을 상요하는데. 여기에 설명한다. 이 단계는 그림1의 왼쪽에 나와있다.
Task #1: Masked LM Intuitively, it is reasonable to believe that a deep bidirectional model is strictly more powerful than either a left-to-right model or the shallow concatenation of a left-toright and a right-to-left model. Unfortunately, standard conditional language models can only be trained left-to-right or right-to-left, since bidirectional conditioning would allow each word to indirectly “see itself”, and the model could trivially predict the target word in a multi-layered context.
태스크 1: 마스키드 언어모델
직관적으로, 깊은 양방향 모델은 엄격히 더 강력하다 (왼ㅉ고으로 부터 오른쪽이든 혹은 양방향 얕은 연결보다). 불행하게도, 표준 조건 언어 모델은 왼쪽에서 오른쪽 혹은 오른쪽에서 왼쪽으로만 학습될 수 있다. 왜냐면, 양방향 조건주기가 각단어가 비간접적으로 "자신을 보도록"하기 때문이고, 모델은 여러 레이어된 문맥에서 사소하게 대상 단어를 예측할 수 있기 때문이다.
In order to train a deep bidirectional representation, we simply mask some percentage of the input tokens at random, and then predict those masked tokens. We refer to this procedure as a “masked LM” (MLM), although it is often referred to as a Cloze task in the literature (Taylor, 1953). In this case, the final hidden vectors corresponding to the mask tokens are fed into an output softmax over the vocabulary, as in a standard LM. In all of our experiments, we mask 15% of all WordPiece tokens in each sequence at random. In contrast to denoising auto-encoders (Vincent et al., 2008), we only predict the masked words rather than reconstructing the entire input. 딥 양방향 표현을 학습하기 위해서, 우리는 단지 인풋 토큰의 일부를 랜덤으로 마스킹하고 가려진 토큰을 예측한다. 우리는 이 절차를 "마스키드 엘엠"이라고 부른다. 비록 그것이 종종 클로즈작업으로 언급되지만 문헌에서(테일러). 이 경우, 마스크 토큰에 해당하는 최종 숨겨진 벡터는 단어장에 대한 출력 소프트맥스로 들어간다, 표준 엘엠이에서 처럼. 우리의 모든 실험에서, 우리는 모든 워드피스 토큰의 15%를 랜덤으로 마스킹한다. 자동인코더 노이즈 감소와 대조하여, 우리는 단지 가려진 단어를 예측한다 (전체 입력을 재구성하기 보다)
Although this allows us to obtain a bidirectional pre-trained model, a downside is that we are creating a mismatch between pre-training and fine-tuning, since the [MASK] token does not appear during fine-tuning. To mitigate this, we do not always replace “masked” words with the actual [MASK] token. The training data generator chooses 15% of the token positions at random for prediction. If the i-th token is chosen, we replace the i-th token with (1) the [MASK] token 80% of the time (2) a random token 10% of the time (3) the unchanged i-th token 10% of the time. Then, Ti will be used to predict the original token with cross entropy loss. We compare variations of this procedure in Appendix C.2.
이것이 양방향 사전 학습 모델을 얻도록 해주지만, 단점은 우리가 사전학습과 미세조정간의 미스매치를 만들어 낸다는 것이다. 왜냐면, 마스크 토큰은 미세 튜닝에서 나타나지 않기 때문이다. 이를 완화하기 위해서는, 우리는 항상 마스크된 단어를 실제 마스 토큰으로 대체하지는 않는다.
Task #2: Next Sentence Prediction (NSP) Many important downstream tasks such as Question Answering (QA) and Natural Language Inference (NLI) are based on understanding the relationship between two sentences, which is not directly captured by language modeling. In order to train a model that understands sentence relationships, we pre-train for a binarized next sentence prediction task that can be trivially generated from any monolingual corpus. Specifically, when choosing the sentences A and B for each pretraining example, 50% of the time B is the actual next sentence that follows A (labeled as IsNext), and 50% of the time it is a random sentence from the corpus (labeled as NotNext). As we show in Figure 1, C is used for next sentence prediction (NSP).5 Despite its simplicity, we demonstrate in Section 5.1 that pre-training towards this task is very beneficial to both QA and NLI. 6
많은 중요한 다운스트림 작업 (질의 응답과 자연어추론 같은)은 두 문장간의 관계를 이해하는데 기반하는데, 이는 직접적으로 언어 모델링에 의해 캡처되진 않는다. 문장 관계를 이해하는 모델을 학습하기 위해서, 우리는 바이너리된 다음 문작 예측 작업을 위해 사전 학습을 하는데, 그 작업은 어떤 단일언어 코퍼스로부터 간단히 생성할 수 있다. 구체적으로는, 각각의 사전학습 예제에 대해 문장 에이ㅗ아 비를 고를 때, 타임 비의 50퍼센트는 실제 다음 문장이고, 이는 에이를 따르며, 그 시간의 50퍼센트는 랜덤 센텐스 (코퍼스로부터) 이다. 그림 1에서 보듯, 씨가 다음 문장 추측을 위해 사용되었다. 간단함에도 불구하고, 우리는 5.1에서 이 작업에 대한 사전 학습이 질의 응답과 자연어추론에 매우 유용하다는 것을 보여준다.
The NSP task is closely related to representationlearning objectives used in Jernite et al. (2017) and Logeswaran and Lee (2018). However, in prior work, only sentence embeddings are transferred to down-stream tasks, where BERT transfers all parameters to initialize end-task model parameters. 엔에스피 작업은 표현 학습 목표와 밀접하게 연관되어 있으며, 저나이트와 로그스와란에서 사용되었다. 그러나, 이전 작업에서 단지 문장 임베딩은 다운 스트림 작업으로 이전되었으며, 거기서 버트는 모든 파라미터를 엔드 태스크 모델 파라미터로 이전한다.
Pre-training data
The pre-training procedure largely follows the existing literature on language model pre-training. For the pre-training corpus we use the BooksCorpus (800M words) (Zhu et al., 2015) and English Wikipedia (2,500M words). For Wikipedia we extract only the text passages and ignore lists, tables, and headers. It is critical to use a document-level corpus rather than a shuffled sentence-level corpus such as the Billion Word Benchmark (Chelba et al., 2013) in order to extract long contiguous sequences.
사전 학습 절차는 대체로 언어 모델 사전학습에 대한 기존 문헌을 따른다. 사전 학습 코퍼스를 위해 우리는 북스코퍼스와 영어 위키피디아를 사용한다. 위키피다아에서 우리는 단지 문장 단락만 추출하고 리스트, 표, 헤더는 무시했습니다. 긴 인접 시퀀스를 추출하기 위해서는 셔플된 문장 수준 코퍼스(십억 단어 벤치마크)보다는 다큐먼트 레벨 코퍼스를 사용하는 것이 중요하다.
3.2 Fine-tuning BERT Fine-tuning is straightforward since the selfattention mechanism in the Transformer allows BERT to model many downstream tasks— whether they involve single text or text pairs—by swapping out the appropriate inputs and outputs. For applications involving text pairs, a common pattern is to independently encode text pairs before applying bidirectional cross attention, such as Parikh et al. (2016); Seo et al. (2017). BERT instead uses the self-attention mechanism to unify these two stages, as encoding a concatenated text pair with self-attention effectively includes bidirectional cross attention between two sentences.
파인 튜닝은 직관적이다 왜냐면, 트랜스 포머에서 셀프 어텐션 메카니즘은 버트가 많은 다운스트림 작업을 모델하게 해준다. 그들이 싱글 텍스트나 텍스트 페어를 관련하던지 - 적절한 인풋과 아웃풋을 교환하여... 텍스트 페어 어플리케이션에 대해서는, 흔한 패턴은 독립적으로 텍스트 페어를 인코딩하여 (양방향 크로스 어텐션을 적용하기 전에), 파리킨, 서와 같이... 버트는 대신 셀프 어텐션 메커니즘을 사용하여 이 두 단계를 통합하여, 연결된 텍스트 페어를 셀프 어텐션으로 효과적으로 인코딩하고 두 문장간 양방향 크로스 어텐션을 포함한다.
For each task, we simply plug in the taskspecific inputs and outputs into BERT and finetune all the parameters end-to-end. At the input, sentence A and sentence B from pre-training are analogous to (1) sentence pairs in paraphrasing, (2) hypothesis-premise pairs in entailment, (3) question-passage pairs in question answering, and
(4) a degenerate text-∅ pair in text classification or sequence tagging. At the output, the token representations are fed into an output layer for tokenlevel tasks, such as sequence tagging or question answering, and the [CLS] representation is fed into an output layer for classification, such as entailment or sentiment analysis. Compared to pre-training, fine-tuning is relatively inexpensive. All of the results in the paper can be replicated in at most 1 hour on a single Cloud TPU, or a few hours on a GPU, starting from the exact same pre-trained model.7 We describe the task-specific details in the corresponding subsections of Section 4. More details can be found in Appendix A.5.
각각의 작업에 대해, 우리는 간단히 작업 특정 인풋과 아웃풋을 버트에 연결하고 모든 파라미터를 끝에서 끝까지 미세조정한다. 입력에서, 사전학습으로부터 문장 에이와 문장 비는 패러프레이징에서의 문장 페어와 유사하며, 인테일먼트에서 가정-프레미스 쌍에 비유된다. 질의 응답의 질문-단락 쌍과 문서 분류혹은 시퀀스 태깅에서 디제너레이스 텍스트와 공집합 쌍과 유사하다. 출력에서, 토큰 표현은 토큰 수준 작업을 위해 출력 레이어로 들어간다. 토큰 수준 작업은 시퀀스 태깅이나 질의 응답 같은 것이고. 씨엘에스 표현은 분류(인테일먼트 혹은 감성 분석)를 위한 출력 레이어로 들어간다. 사전학습과 비교하여 미세튜닝은 상대적으로 덜 비싸다. 이 논문의 모든 결과는 하나의 클라우드 티피유로 최대 1시간내에 확인할 수 있거나 지피유로 몇시간내에 완전히 똑같은 사전 학습 모델로부터 시작했을 때... 우리는 작업 특정 세부사항을 섹션4의 해당 서브 섹션에 적었다. 더 자세한 사항은 부록에 있다.
'AIFFEL Life' 카테고리의 다른 글
[Day84] 해커톤 일곱번째 (0) 2020.12.26 [Day83] Bert pre-trained model 제작 (0) 2020.12.26 [Day82] 음악을 만드는 인공지능 (0) 2020.12.26 [Day81] 최신 NLP 흐름 (0) 2020.12.26 [Day81] 슬로우 페이퍼 Improving Language Understanding by Generative Pre-Training (0) 2020.12.26