[ACL 2020] Don’t Stop Pretraining: Adapt Language Models to Domains and Tasks – Part1

안녕하세요. 오랜만에 자연어처리 분야 논문을 가져와봤는데요. 아이디어가 흥미로워서 가져와봤습니다. 이 논문은 놀랍게도 논문 속에서 수식이 한번도 등장 하지 않은데요. 근데 무려 Best Overall Paper 상을 받았습니다..! 아이디어가 충분히 insight가 있고 분석 또한 잘했기 때문이라고 생각하는데요. 그럼 리뷰 시작하겠습니다.


<Introduction>

오늘날 pretrained language model은 massive하고 heterogeneous corpora로 학습되었습니다. 예를들어서 BERT의 연장선으로 나온 사전학습 모델인 RoBERTa를 예를 들어보겠습니다. RoBERTa와 같은 모델은 160 기가가 넘는 큰 데이터(영어 백과 사전, 뉴스, 문학 작품 등)로 사전학습 되었습니다. 이러한 모델에 의해서 학습된 representation은 다양한 소스에서 가져온 다양한 크기의 데이터셋이 있는 many task에서 strong performance를 발휘합니다. 하지만 160기가가 넘는 데이터셋이 모든 domain을 포괄하는 것은 불가능합니다. 여기서 연구자들은 의문을 던집니다. 과연 최신의 large pretrained model이 universally하게 작동할지 아니면 여전히 specific domain에 대해 별도의 pretrained model을 구축하는 것이 도움이 될지?

추가적으로 domain-specific한 데이터로 사전학습 시킨 몇 연구자가 있었지만 single domain만 고려했다거나 작은 모델의 language model을 사용했기 때문에 위의 의문을 증명하기에는 부족했습니다.

논문에서는 이러한 의문을 해결하기 위해서 RoBERTa를 이용하여 해결합니다. 4개의 도메인(biomedical, computer science publications, news, reviews)을 고려하는데, 각 도에민 당 2개의 task를 수행하여 총 eight classification task를 수행합니다.

RoBERTa에 도메인이 없는 대상의 경우, 실험 결과 도메인에 대한 continued pretraining(domain adaptive pretrianing 또는 DAPT라고 함)이 high하고 low한 resource setting 모두에서 target domain의 task에서의 성능을 개선시킴을 논문의 저자들은 보였습니다. 이는 더 “Task”에 직접적으로 연관된 말뭉치에서 사전학습하는 것이 더 성능을 개선하는지에 대해서 물음을 던질 수 있습니다.

이에 논문의 저자들은 직접적으로 task와 관련된 말뭉치에서 dmoain adaptive pretraining이 task-adaptive pretraining (TAPT)와 어떻게 비교되는지 연구하였습니다.

이에 논문의 저자들은 task designer나 annotator로부터 수동으로 curated된 task distribution에서 추가적인 unlabeled data가 있을 때 TAPT의 benefit이 증가한다는 것을 보였고, 이러한 것에서 영감을 받아, 자동으로 task-relevant unlabeled text를 선택하는 방법을 제안하였고, 이것이 certain low-resource 상황에서 어떻게 성능 향상을 시켰는지 보여줍니다.

위의 내용을 정리하여 논문의 contribution을 정리하면 아래와 같습니다

  • a thorough analysis of domain- and taskadaptive pretraining across four domains and eight tasks, spanning low- and high-resource settings
  • an investigation into the transferability of adapted LMs across domains and tasks
  • a study highlighting the importance of pretraining on human curated datasets, and a simple data selection strategy to automatically approach this performance.

<1. Domain-Adaptive Pretraining>

DAPT를 하는 방법은 상당히 직관적인데요. RoBERTa를 unlabled domain-specific text의 큰 말뭉치에서 사전학습하는 것입니다. 위에서 언급한 4개의 도메인 (biomedical (BIOBED) papers, computer science (CS) papers, newstext from REALNEWS, AMAZON reivews)에 대해서 진행하였습니다.

<1.1 Analyzing Domain Similarity>

DAPT를 실험하기 전에 논문의 저자들은 RoBERTa의 pretraining domain에서 target domain의 유사성을 정량화해서 확인하고자 했습니다. 이를 위해 각 도메인에서 가장 빈번한 unigrams 1000개를 포함한 도메인 사전을 만들었는데, reviews 데이터셋은 데이터들의 길이가 짧기 때문의 150k개의 문서를 사용하였고, 다른 도메인에서는 50k개의 문서를 사용하였습니다. 그리고 ogirinal pretraining 말뭉치는 공개되지 않았기 때문에 robota의 사전학습 말뭉치와 유사한 sources에서 50k개의 문서를 샘플링하였습니다.

figure 2를 통해서 vocabulary overlap을 확인할 수 있습니다. PT는 기존 사전학습 말뭉치과 유사한 것을 구한 말뭉치입니다. 이를 통해 PT는 News와 가장 유사하며 CS와 가장 낮은 유사도를 보이는 것을 알 수 있습니다. 이러한 결과는 기본 모델이 PT와 가장 유사한 것에서 높은 성능을 보일 것이고 CS에 대해서 가장 낮은 성능을 보일 것을 예측할 수 있습니다

<1.2 Experiments>

논문의 저자들은 LM adaptation을 RoBERTa를 학습하는데에 사용된 셋팅을 따라하여 셋팅하였습니다. 각 도메인에 대해서 12.5k 스텝 학습시켰습니다. 또한 각 도메인에서의 RoBERTa의 masked LM loss를 DAPT 전과 후에어 각각 보여주었는데요. 여기서 masked LM loss가 DAPT 후에 News 데이터셋을 제외한 모든 도메인에서 감소한 것을 알 수 있습니다. 아래의 표를 통해 각 도메인에서 어떤 텍스트 분류 task를 수행하였는지 확인할 수 있습니다.

모델의 Baseline으로는 기존의 RoBERTa-base model을 사용하였고, supervised fine-tuning을 각 분류 task에 맞게 수행하였습니다. 그리고 논문의 저자들은 final layer [CLS] token representation을 task-specific feed-forward layer에 넣어 예측을 수행하였습니다. 최종적으로 테스트한 결과는 아래와 같습니다.

모든 도메인에서 RoBERTa보다 우수한 성능을 냈다는 것을 확인할 수 있는데요. BIOMED, CS, REVIEWS 데이터셋에 대해서 일관된 성능 개선을 확인할 수 있었고 target 도메인이 RoBERTa의 source 도메인보다 먼 경우에서의 DAPT의 이점을 확인할 수 있습니다.

<1.3 domain relevance for DAPT>

또한 저자들은 모델의 결과가 단지 데이터를 더 많이 이용해서 얻은 것이 아님을 보여주기 위해 LM을 outside the domain of interest에도 적용하였는데요. 관련이 적은 도메인에 adaptation 했다는 말과 동일합니다.

위의 데이터셋을 가지고 설명하자면, NEWS dataset에 CS LM, REVIEWS dataset에 BIOMED LM 이런식으로 매칭을 시킨 것인데요. ㄱDAPT 컬럼을 통해서 결과를 확인할 수 있습니다.

대부분의 경우에서 DAPT가 ㄱDAPT보다 성능이 우수함을 보였고, ㄱDAPT는 RoBERTa보다 낮은 성능을 보여주었는데요. 이를 통해 관련성이 적은 도메인의 데이터를 사용하는 것이 end-task 성능에 악영향을 끼치는 것으로 나타낼 수 있다는 것을 확인할 수 있습니다.

<1.4 domain overlap>

DAPT에 대한 분석은 어떻게 task data가 특정 도메인에 지정되어있는지에 대한 이전의 직관들을 바탕으로 하였는데, 에를 들어서 HELPFULNESS(유용한 리뷰인지에 대해 분류하는 task)에 DAPT를 수행하기 위해 저자들은 AMAZON reviews 데이터만을 적용하고 REALNEWS 기사들에 대해서는 적용하지 않은 것입니다.

그러나 figure 2에서 단어 유사도를 볼 수 있듯이 도메인간의 경계선은 완벽하지 않다는 것을 알 수 있는데요. 예를 들어, unigram의 40%은 REVIEWS와 NEWS가 공동으로 가지고 있는 것을 알 수 있습니다. 또한 논문의 저자들은 질적으로 도메인간의 overlapped documents를 확인해보았는데, 아래 table 4에서 확인할 수 있습니다. table 4의 왼쪽이 REVIEWS, 오른쪽이 NEWS 입니다.

실험적으로 RoBERTa를 NEWS 데이터에 적용하는 것은 REVIEWS task에 적용하는 것에 큰 악영향을 끼치지 않는다는 것을 알 수 있습니다. 이는 도메인간 분류는 확실할 수 없기 때문이라고 하는데요. 비록 이러한 분석이 모든 것을 포괄하지는 않지만, 이는 도메인간의 차이를 야기하는 요소들이 mutually exclusive하지 않을 가성능이 있음을 나타냅니다. 이 말이 무슨말인지 이해가 가지 않아 좀더 생각해봤는데 mutuallly exclusive 하다는 것이 결국 두 도메인이 관련이 있으면 두 도메인 모두에서 성능 개선이 있을 수 있다는 것을 말하는 것은 아닐까 합니다.


1차적으로 DAPT에 대해서 리뷰를 끝냈습니다. 원래는 이 다음에 TAPT, augmenting Training Data for Task-Adaptive Pretraining도 쭉쭉 이어서 작성하고자 했는데, 조금더 이해도를 높여보고자 코드와 함께 살펴보고 싶어 이번주는 여기까지만 리뷰하도록 하겠습니다. 다음주에는 코드와 함께 더욱 구체적으로 작성하고자 하니 이만 끝내보도록 하겠습니다. 읽어주셔서 감사합니다.

Author: 김 주연

4 thoughts on “[ACL 2020] Don’t Stop Pretraining: Adapt Language Models to Domains and Tasks – Part1

  1. 안녕하세요 김주연 연구원님, 좋은 리뷰 감사합니다.

    익숙치 않은 분야에 대한 글을 읽어보는 것은 항상 신선하고 새로운 경험입니다. 하지만 해당 분야에 대해 아는게 없기 때문에 용어가 무엇을 뜻하는지 몰라 온전히 이해하기 힘든 부분이 있습니다. 주연님의 리뷰를 볼 때마다 그런 느낌을 받습니다(NLP랑 cross-modality 지식이 얕아서 그렇습니다). 그래서 리뷰를 읽으면서 생긴 질문들도 기초적일 수 있으니 이해해주시면 감사하겠습니다.
    논문은 ‘general한 데이터로 모델을 학습시키는 것이 좋은지, 아니면 특정 domain/task에 관련된 데이터로만 학습하는게 좋은지’ 에 대해 알아보는 것 같습니다. 첫 번째 질문으로는, DAPT가 unlabled domain-specific text의 큰 말뭉치를 학습한다고 되어있는데, DAPT는 특정 도메인에 대한 데이터로만, TAPT는 특정 task에 관련한 데이터로만 학습시키는 것으로 이해하는것이 맞을까요?
    추가적으로, 1.2 Experiments에서 나온 표에는 각 Domain에서 어떤 text 분류 task를 수행하였는지 나와있습니다. 여기서 domain이 어떤 것인지에 대한 느낌은 오는데, 그 이후의 Task(CHEMPROT, ACL-ARC 등)와 Label Type, Dev, 등등은 정확히 무엇을 의미하는지 이해하기 힘들었습니다. 질문을 정리해보자면
    1. 딥러닝을 이용한 학습에는 학습데이터와 정답 label이 있어야 합니다. vision에서는 classification의 정답 class라던가, localization의 bounding box 위치 등등이 있겠죠. NLP의 데이터셋에서 label은 어떻게 구성되는지 궁금합니다. 이는 NLP의 대표적인 task가 무엇이 있는지에 관한 질문과 이어지겠네요
    2. NLP의 대표적인 task에는 무엇이 있는지 궁금합니다. 글을 입력으로 넣어서 어떤 분야에 관련된 글이다 정도의 classification이 떠오르긴 하는데, 실제로는 어떤 task가 있고 그 task는 실제로 어떤 문제를 해결할 수 있는지 알려주시면 감사하겠습니다.

    1. 안녕하세요. 댓글 감사합니다.

      1) 이 질문은 제가 domain과 task에 대해서 제대로 설명하지 못해서 질문이 들어왔다고 생각합니다. 논문에서는 “Under each domain, we consider two text classification tasks”라고 말하는데요. Table 3에 있는 ACL-ARC는 ACL Anthology Reference Corpus로 일종의 데이터셋인데요. 다른 것들도 데이터셋을 의미합니다. 즉, 특정 도메인에 특정 dataset으로 classification을 작업하는 것이 이 논문에서는 task라고 표현했다고 생각합니다. 이 때문에 재연 연구원님께서 헷갈려하시는 부분-여기서의 task가 classification, qna 등의 task를 말하는가-라고 했을 때 아니라고 말할 수 있을 것 같습니다.

      2) nlp의 대표적인 task라고 말한다면 지금 생각나는 것으로는, question&answering, classification, 문서 요약, 대화 생성 등 굉장히 많습니다. 최근에는 상식과 관련하여 언어 모델에 상식을 넣어 사용하는 분야도 활발히 진행되고 있다고 들었습니다.

  2. 안녕하세요 김주연 연구원님 좋은 리뷰 감사합니다.
    여러 domain과 task에 대해 large pretrained model을 사용하는 것과 특정 domain으로 fine-tuning한 것을 비교한 논문으로 이해하였습니다. 그 중에서도 DAPT는 도메인에 따른 데이터를 기반으로 추가 학습을 진행하는 것으로fine-tuning시 기존 roberta보다 좋은 성능을 내었으나 target과 연관성이 적은 도메인의 데이터로 학습 시 오히려 성능이 낮아지는 점을 보였다는 것도 흥미로웠습니다.

    논문을 읽으면서 [표3]의 결과들은 모두 f1score라고 되어 있으니 높을수록 좋은 결과를 나타내는 것 정도로만 이해하고 넘어갔는데 구체적으로 해당 실험에서 어떤 task를 수행하였는지 궁금합니다. metric으로 f1을 사용하였고 위의 [표2]에 데이터셋 정보또한 제공되어 있어 분류 문제라고 생각하긴 했는데…그래도 궁금합니다…

    1. 안녕하세요. 댓글 감사합니다.

      위의 재연 연구원님과 비슷한 질문이라 생각이 드는데요. Table 3에 있는 ACL-ARC는 ACL Anthology Reference Corpus로 일종의 데이터셋으로 다른 것들도 데이터셋을 의미합니다. 즉, 특정 도메인에 특정 dataset으로 classification을 작업하는 것이 이 논문에서는 task라고 표현했다고 생각합니다. 이 때문에 혜원 연구원님이 말한 분류 문제라고 생각한 것이 맞습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다