[리뷰] A Simple Recipe for Multilingual Grammatical Error Correction

728x90
728x90

※ 혹시 본문 내용 중, 틀린 내용이 있다면 언제든지 알려주시면 감사하겠습니다. 🙇‍♂️
논문 제목: A Simple Recipe for Multilingual Grammatical Error Correction
논문 출처: https://aclanthology.org/2021.acl-short.89/

 

💁‍♂️ 왜 읽으셨나요?


  • Microsoft Speller100 모델을 알게 된 후, Google에서는 어떤 오류 교정 연구가 수행되었는지 알고자 했다.
  • 본 논문이 ACL2021에 accepted 된 short 논문이어서 눈길이 갔다.

 

📌 연구 키워드


  • 자연어처리 (NLP, Natural Language Processing)
  • 문법 오류 교정 (GEC, Grammatical Error Correction)
  • Seq2Seq (Sequence-to-Sequence)
  • Self-supervised Learning

🕵️ 내용 정리


    • 논문 핵심
      • 간단한 방법으로 4개 언어 GEC 벤치마크에서 SOTA 달성
        • SOTA 달성한 모델이 언어마다 달라서 잘 봐야 한다
      • CLANG-8 데이터셋 공개

    • 연구 배경
      • 최신 GEC 연구는 seq2seq 모델이 활발하게 이용된다
        • 오류 있는 텍스트를 복원하는 관점으로 문법 오류 교정 (Grammatical Error Correction)
      • seq2seq 모델은 많은 양의 데이터가 있을 때 좋은 성능을 보인다.
      • 그러나 GEC 연구 분야에서는 활용 가능한 고품질 데이터가 적다.
        • 현재 공개된 데이터조차도 품질이 많이 부족한 편
      • 그래서 인위적으로 오류 데이터(synthetic error)를 생성하는 방법이 GEC 연구와 함께 다뤄진다.

    • 접근 방법
      • 다국어 오류 교정 모델 gT5 제안
        • Pre-training
          • mT5 (Xue et al., 2020) 언어 모델의 사전 학습 데이터 mC4 데이터 사용
          • Paragraph 단위였던 데이터를 sentence 단위로 나누어 학습에 활용
          • 7가지 오류를 만드는 노이즈 함수(Noising function) 정의
            • drop spans of tokens
            • swap tokens
            • drop spans of characters
            • swap characters
            • insert characters
            • lower-case a word
            • upper-case the first character of a word
          • 노이즈를 복원하는 방법으로 사전 학습 수행
            • 이 방식은 raw text만 있으면 수행할 수 있으므로, 리소스가 적은 언어에서도 활용 가능한 장점이 있다. 
        • Fine-tuning
          • 학습 데이터
          • 여러 가지 학습 전략 실험
            • 학습 전략 1
              • 모델: Pre-trained mT5
              • 데이터: sentence 단위로 분리한 mC4 말뭉치 + Fine-tuning 데이터
            • 학습 전략 2
              • 모델: Pre-trained mT5
              • 데이터: mC4 말뭉치 + Fine-tuning 데이터
                (『but annotating them with different prefixes』 이게 무슨 말인지 모르겠다)
            • 학습 전략 3
              • 모델: 저자들이 직접 사전학습 시킨 gT5
              • 데이터: Fine-tuning 데이터
            • 학습 전략 3이 가장 높은 성능을 보였다.
              • 단지 비용계산적 측면에서 가장 비쌈
          • Fine-tuning 방법에 뭔가 특별한 기법이 있지는 않다.
      • CLANG-8 데이터 공개
        • 영어 GEC를 위해 공개된 데이터 중 LANG-8이 있다
          • 언어 학습자가 작성한 에세이를 다른 학생이 교정한 것
        • 그러나 LANG-8은 품질이 좋지 않다.
          • 문법 교정은 전문 지식이 필요한 작업이지만, LANG-8은 그렇지 못했다.
            • 한국 사람이라고 해서 모든 사람이 문법 전문가는 아니니까
          • 불완전한 교정 또는 과한 교정 등이 포함돼 있다.
            • 예시
              • It is cloudy or rainy recently . → It is It ’s been cloudy or and rainy recently .
              • 『It is』를 삭제하고 『It's been』만 남겨야 한다.
              • 『or』을 삭제하고 『and』만 남겨야 한다
              • 쉽게 말해 수정을 하다만 것
        • 그러면 gT5-xxl을 이용해, LANG-8의 정답을 교정하자 → CLANG-8
          • 말 그대로 LANG-8을 교정(Clean)했기 때문에 Cleaned Lang-8 Corpus이다.
            • 즉 LANG-8과 CLANG-8은 정답만 다른 데이터인 것
          • CLANG-8의 의의는 지식 증류(Knowledge Distillation)를 위한 데이터라는 것 
            • CLANG-8 데이터를 학습하는 것만으로도 gT5 xxl 거대 모델의 지식을 학습할 수 있다.
            • 이게 말이 되나 싶다면, self-instruct 연구를 참조하자.
              • 본 논문의 Google 저자들이 위 연구를 참조했는지는 알 수 없지만, 최근 연구 트렌드 중 하나는 거대 언어 모델의 지식을 작은 모델로 distillation 시키는 것이다.
              • 실제로 최근 스탠포드 대학교의 Alpaca 모델은 META의 LLaMa 모델의 출력 결과를 학습해, 더 작은 모델로 비슷한 성능을 낼 수 있다는 연구를 알리기도 했다.
            • ACL에 논문이 accpted 된 이유 중에는 이런 점도 크게 작용하지 않았을까

    • 실험
      • 영어를 제외한 언어에서 SOTA 달성 (*표2 참조)
        • 사실 의미 있는 지표인지 잘 모르겠다
        • 왜냐하면, 현재 SOTA 모델들의 체코어, 독일어, 러시아어 실험이 없으니까.
        • 무엇보다 gT5 xxl (11B) 모델의 파라미터 수를 생각하면 오히려 고개가 갸우뚱
        • 하지만 아래 표가 말하는 건 저자들이 왜 CLANG-8 데이터를 만들었냐는 점
          • 영어 데이터들 까보니까 과적합 되기 쉽더라!
          • 근데 왜 다른 영어 데이터는 내버려두고 LANG-8만 건들였지...?
      • LANG-8보단 CLANG-8 데이터가 유효하다
        • CLANG-8은 LANG-8보다 오류율이 크게 줄어들었다. (*표3 참조)
          • 기존 LANG-8 정답에는 오류 포함된 정답이 있었다는 것
          • 근데 CLANG-8-s가 뭔지 잘 모르겠다
        • 기존 GEC 모델을 CLANG-8로 학습하면 성능이 더 오른다 (*표4 참조)
          • FELIX모델을 LANG-8과 CLANG-8로 학습한 결과를 살피면, 성능 차이가 크다
          • 두 데이터 모두 source 문장은 동일하고 정답만 다른 데이터라는 걸 고려할 때, CLANG-8은 gT5 xxl의 지식이 FELIX 모델로 distillation 되었다 볼 수 있다.
      • GEC 연구에서도 모델 크기가 커질수록 성능이 오른다 (*표4 참조)
        • 기존 GEC 연구에서는 모델 파라미터 크기별 성능 보고된 연구가 많이 없었는데, 감사하게도 Google 연구원 분들이 고생해 주셨다.
      • 4개 언어 GEC benchmark에서 SOTA 달성
        • 실험 결과를 잘 봐야 한다.
        • 영어는 T5 xxl (13B) 모델과 CLANG-8 데이터를 활용해 영어 SOTA 모델을 달성
        • 그 외 언어만 gT5 xxl (11B) 모델로 SOTA를 달성한 것
        • 즉 이 논문의 핵심은 CLANG-8이라 봐도 좋지 않을까

기존 연구들과 gT5 성능 비교
[표2] 체코, 독일, 러시아어에서 SOTA 달성

 

LANG-8과 CLANG-8 데이터 오류 유형 차이
[표3] LANG-8과 CLANG-8의 오류 유형별 차이

 

CLANG-8을 학습 데이터로 활용했을 때 성능 비교
[표4] CLANG-8 데이터 및 모델 파라미터별 실험 결과

 

🤔 이 글을 통해 배울 수 있는 점


  • 개념적인 것
    • 문법 오류 (Grammatical Error)는 문장 내 문법 오류나 기타 연관된 오류를 고치는 작업이다.
      (Grammatical Error Correction (GEC) is the task of correcting grammatical and other related errors in text)
    • 본 연구는 사용자가 작성한 텍스트의 문법성과 가독성을 개선하기 위해 다뤄진 연구다.
      (Its ability to improve grammaticality and readability of user generated text)
    • 본 연구는 문법 오류를 작성하기 쉬운 비원어민, 어린이, 언어 장애가 있는 사람들에게 유효하다.
      (This is of particular importance to non-native speakers, children, and individuals with language impairments)
  • GEC 연구에서도 모델 파라미터가 커질수록 성능이 향상되며, Knowledge Distillation 방법도 함께 고려해 볼 수 있다.
  • GEC 연구 데이터셋의 이슈는 계속된다...
    • 영어도 이 정도면 한국어에서는 어떻게 연구하냐 🥹

❓ 여전히 궁금한 부분


  • CLANG-8-s가 도대체 뭐지...
320x100
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유