NLP/Paper Review

[논문리뷰] KorQuAD 2.0: 웹문서 기계독해를 위한 한국어 질의응답 데이터셋

메린지 2022. 6. 28. 17:52

korQuAD 2.0은 총 100,000+ 쌍으로 구성된 한국어 질의응답 데이터셋

 

korQuAD 1.0과의 차이점

  1. 주어지는 지문이 한 두 문단이 아닌 위키백과 한 페이지 전체
  2. 지문에 표와 리스트도 포함 -> HTML, tag로 구조화된 문서에 대한 이해 필요
  3. 답변이 단어 혹은 구 단위 뿐 아니라 문단, 표, 리스트 전체 포괄하는 긴 영역

Baseline 모델로 공개된 BERT를 활용해 F1 스코어 46.0% 성능, 사람 F1 85.7%로 매우 낮아, 도전적인 과제임을 확인

추가적으로 답을 찾을 수 없는 경우 학습 데이터 증강 방식을 통해 성능 확인

이 데이터로 평문에 국한된 질의응답 대상 다양한 길이와 형식을 가진 과제로 확장

1. 서론

기계독해(MRC; Machine Reading Comprehension): 기계가 주어진 지문과 질문을 이해해 지문 내에서 답변 영역을 찾는 자연어처리 태스크 - 자동 질의응답 기술의 핵심 토대

 

korQuAD 1.0과 다르게 실제로 질의응답 기술이 필요한 영역-> 정제된 평문에서 기계독해를 수행해야 하는 경우 보다 웹 문서, 상품 매뉴얼, 이용 약관 등 양식 구조도 다양하며 길이 또한 문단이 아닌 문서 레벨에서 수행해야 하는 경우 다수

 

자연어로 구성된 질문과 HTML 코드로 이루어진 위키백과 웹 문서를 입력으로 받아 짧은 답변뿐 아니라 매우 긴 문단 단위의 답변, 표로 이루어진 답변, 리스트로 이루어진 답변 영역을 리턴 가능 해야함

 

데이터에 적합한 전처리 및 데이터 증강기법을 적용해 baseline 성능 측정 및 추가 실험 진행

2. 관련 연구

다문단 기계독해는 KorQuAD 1.0과 같이 단일 문단에 대한 MRC에 비해 읽어야 할 문서 길이가 길어져 추론 속도와 정확도 측면에서 모두 도전적인 과제

 

다문단 기계독해 데이터

  • 평균 6개의 단락으로부터 답변을 추론해야 하는 TriviaQA
  •  두 개의 단락에 대해 멀티홉 추론을 해야 하는 HotpotQA
  • 검색엔진에 수집된 쿼리들에 대한 답변을 위키백과 HTML에서 찾아야 하는 Natural Questions
  • 구조화된 문서에 대한 한국어 데이터로는 TabQA
  • 표와 그림 등이 포함된 교과서에서 질문에 대한 답을 찾아야 하는 TextbookQA
  • 비디오를 보고 텍스트 질문에 답을 해야 하는 TVQA (Multi-Modal data)

하지만 위 두 데이터는 읽어야 할 문서의 길이가 길더라도 답변 영역이 구 단위를 넘지 않으며, 표 등이 없는 평문 한정

Natural Questions는 웹쿼리에서 수집한 데이터인 만큼 정제된 자연어 질문이 아님

TabQA는 표와 질문을 인공적으로 만들어 사용

 

KorQuAD 2.0은 구조화된 HTML에 대한 자연어 질문을 수집한 다문단 기계독해 데이터셋

데이터 수집 과정은 KorQuAD 1.0과 유사-> 기계독해의 대상이 HTML 문서로 확대, 구 단위뿐만 아니라 표의 셀, 표 전체, 리스트 전체, 여러 문단들이 답변이 될 수 있다는 점에서 웹 구조를 활용한 복잡한 자연어 질문들을 포함

3. 데이터 구축

1) 크라우드 소싱을 통핸 KorQuAD 1.0과 유사한 방식으로 데이터 수집

2) 기존 KorQuAD 1.0 데이터 중 일부를 2,0 타입으로 변환해 보다 많은 데이터 확보

 

3.1 문서 수집

위키 문서 중 사람들이 관심있어하는 문단 선정을 위해 3년동안의 page view 상위 15만 문서 선별, 더 다양한 도메인 다루기 위해 임의 5만개 문서 추가해 HTML 문서 데이터 수집

 

3.2 질문-답변 생성

크라우드 소싱을 통해 질문-답변 생성: 작업자에게 문단 일부만 제공해 난이도 선별, 편향 방지

=> 소제목 단위로 문서 분할 후 유의미한 텍스트 정보가 있는 부분으로 평문<p>, 표<table>, 리스트<ol, ul, dl>로 tag 제시

 

데이터 제작 작업 과정

1) 답변 길이에 따라 Long/Short 작업 구분 -> 답변 문단 형태 따라 각각 평문 혹은 리스트/표 경우로 분리

- Long : 질문에 답하기 위한 정보가 최소 한 문단 이상 걸쳐있는 경우 (Tag로 쌓은 블록을 하나의 문단으로 본 경우, 최소 한 문단부터 소제목 아래의 문단 전체까지 가능)

- Short : KorQuAD 1.0과 같이 답변 영역이 문단 내 단어 혹은 구

 

2) 지문의 내용 그대로 사용방지-> 음절 단위 4-gram 기준 질문 50%가 지문과 중복되는 경우 제출 금지

3) 검수과정 -> 성공률 85% 이상 작업자 선별

4) 두명의 검수자 의견 동일 시 통과 -> 다르면 추가인원 의견 확인

 

3.3 KorQuAD 1.0 데이터 변환

기존 context는 1~2 문단 정도의 평문 -> 위키백과 문서 전체에 대한 HTML로 변환 후 정답 인덱스도 맞춰 수정

학습, 검증, 평가 데잍를 포함해 총 21,421개의 질문-답변 쌍 변환, 나머지는 수정되어 못찾은 경우

4. 데이터 특징 및 분석

4.1 데이터 구성

문서 47,957개 개당 2.15개 질문 매칭

.이 중 38,506 문서는 Train, 4,739 문서는 Validation, 나머지 4,726 문서는 Test

 

질문-답변은

  • 답변 길이에 따라 Long-Short
  • 답변 tag에 따라 평문, 표, 리스트 구분

4.2 지문 및 답변 길이

문서의 길이는 위키 페이지의 HTML을 그대로 사용할 경우 평균 90,259음절로 매우 김 -> 최소 전처리 통해 길이 감소

( HTML의 주석과 <script>를 제거, table 형식과 관련된 정보인 colspan, rowspan을 제외한 모든 attribute를 제거)

-> 평균 19,864 음절로 크게 길이 감소, 배포데이터는 전체 HTML과 전처리된 HTML 두 가지 포함

답변 길이 분포도 한 글자부터 만 자 넘는 것까지 다양

  • 첫 번째 그룹 : 길이가 짧음(1~20자), HTML tag없이 순수 텍스트로 된 Short 답변
  • 두 번째 그룹 : short 답변이긴 하지만(20~120자), HTML tag가 포함되어 길어짐
  • 세 번째 그룹 : long 답변(120자~)으로 구성, 다양한 길이의 지문과 답변이 있기 때문에 길이 고려한 모델 설계 필요

4.3 질문 유형

Short 350개, Long 200개 검증데이터에서 임의 추출함 -> 질문과 근거가 되는 지문과의 관계에 따라 분류

  • Short : 가장 많이 차지하는 유형 - 구문 변형, 표/리스트, 어휘 변형, 여러 문장 활용
  • Long : 주어진 소제목 활용해 구문 변형 및 유의어 변형, 소제목이 고유 명사여서 그대로 사용하여 만들기, 소제목을 활용하지 않고 지문 내용을 통해 질문 제작하여 어떤 소제목과 관련이 있는지 알기 어려운 유형

5. 실험 및 결과

  • BERT를 사용하여 KorQuAD 2.0 학습 데이터를 학습시키고 검증, 평가 데이터에 대해 성능 측정
  • HTML tag가 웹 구조에 대한 정보를 담고 있다고 판단하여 속성만을 전처리한 HTML 문서를 입력으로 사용
  • BERT 모델의 경우 입력 512자로 제한, 문서를 128 stride를 주어 입력, 학습 시 정답 토큰의 길이가 입력 길이 제한보다 긴 경우 제거
  • 하이퍼 파라미터 : 공개된 모델의 기본값들을 사용하여 baseline 제시하면 평가 데이터에 대해 제시하면서 평가 데이터에 대해 사람의 점수도 측정하여 기계학습 결과와 비교
  • baseline 모델에 전처리 추가와 데이터 증강기법(No answer augmentation)을 적용하여 성능 확인

5.1 베이스라인 실험 결과

KorQuAD 1.0 에서 사용한 EM, F1 외에 질문 하나당 응답 속도(1-example latency)를 추가해 총 세 가지 척도 고려

  • EM : 답과 예측값이 정확히 일치하는 비율
  • F1 : 음절 기준 얼마나 중복되는지 고려하는 점수
    (정답/예측 텍스트에서 HTML tag같이 실제 정보 안가진 부분은 Python BeautifulSoup 라이브러리를 활용해 제거)
  • 질문 하나당 응답속도 : 데이터 전처리 시간과 모델의 추론시간을 포함하여 전체 시간을 측정한 후 질문 수로 나누어 하나의 쿼리당 걸리는 평균 시간

표 3 실험 결과 : 유형에 따라서 표가 가장 낮은 성능, 평문이 제일 높은 성능

 

5.2 전처리 추가 및 데이터 증강

baseline에 이어 성능 향상을 위해 두 가지 추가 실험 진행

5.2.1 HTML 전처리 및 형태소 분석

  • 텍스트 HTML 전처리 부분 수정, baseline의 전처리였던 주석 제거와 속성 처리에 더해 실질적인 내용이 담겨있는 본문만 뽑음
  • BERT의 기본 전처리인 WordPiece 임베딩 단계 전에 MeCab 형태소 분석기를 이용해 토큰화 작업 추가, 어절을 더 작은 단위로 나누어 분석하는 것이 형태소의 의미 학습에 도움

5.2.2 No answer augmentation

  • 주어진 문단에서 답을 찾을 수 없는 경우에 대한 데이터를 증강하여 학습
  • KorQuAD 2.0은 아니지만, 정답을 찾을 수 없는 no-answer이 포함된 데이터셋들도 존재
  • 데이터 증강을 위하여 지문과 질문을 인위적으로 매칭하여 답을 찾을 수 없는 쌍을 만듦
  • BERT 최대 입력 토큰 수 제한: 기존에는 학습 시 질문과 질문의 답 근처 지문만을 입력으로 모델에 넣고 외 부분 무시
  • 모델은 답을 찾을 수 없는 경우 특정 토큰([CLS])을 반환하도록 학습 - 문서의 답이 포함되지 않은 부분도 학습
  • 단순 질문과 연관이 있는 부분을 답으로 추론하는 것을 방지하는 효과도 기대
  • 데이터 증강 시, 입력 토큰 수 제한으로 답이 포함되지 않은 부분이 있을 수 있는데 조건을 통해 후보 추출
    -> 정답 인덱스 상으로 답이 포함되지 않는 부분이라 하더라도 실제 텍스트로는 포함되어있을 수 있음: 적절한 학습에 방해될 것 같아 정답 텍스트의 70% 이상을 포함하는 부분은 후보에서 제외
    -> 질문과 본문의 내용이 달라 정답이 없다는 것을 쉽게 알 수 있는 경우: 학습에 크게 도움 되지 않을 것이라 생각해 후보의 80%는 질문과 본문의 텍스트 중복 비율이 높은 상위 5개 부분에서 추출, 나머지 20%는 전체 문단에서 추출

5.3 추가 실험 결과

baseline인 BERT mulitlingual 모델 기반 MeCab 토크나이저 및 HTML 임베딩을 적용한 결과 위와 같음

- 이를 통해 형태소와 같이 한국어의 고유한 성질과 HTML 태그로 표현하는 위키 문서의 구조적 특성 등을 반영한 전처리 과정의 중요성을 알 수 있음

- 학습이 진행되는 동안 답을 포함하지는 않지만 유사한 문맥을 학습할 수 있는 데이터 증강을 통해 기계독해 모델의 성능이 향상되는 것을 확인

 

5.4 데이터 변화에 따른 성능

기존 KorQuAD 1.0 데이터로 학습한 모델이 긴 지문과 표 등에 대해 어떤 성능을 보이는지 확인

A : 짧은 지문을 갖는 기존 KorQuAD 1.0 데이터

B : A에서 사용한 짧은 지문을 긴 지문으로 변환한 KorQuAD 2.0 데이터

C : 새로 만든 데이터 중 리스트와 테이블만 포함

이를 통해 기존 데이터로 학습된 모델은 길고 복잡한 모델엔 잘 대처하지 않음을 알 수 있음

 

5.5 질문-지문 중복 비율에 따른 성능

질문을 형태소분석을 통해 조사 및 어미를 제거한 후 답이 포함된 지문과의 중복 비율을 계산, 그에 따른 F1 측정

중복 비율이 낮을수록 어려운 질문이지만 좋은 성능을 내는 모델을 만드는 것이 필요

6. 결론 및 향후 방향

본 논문에서는 구조를 가진 문서에 대한 질의응답 데이터셋인 KorQuAD 2.0을 소개하고 baseline 모델을 통해 결과를 분석

한국어 위키 문서의 특성을 살린 전처리 과정 및 데이터 증강(augmentation)기법을 적용하여 baseline 모델에 비해 향상된 
성능을 이끌어냄

이로써 평문에 한정되어 있던 기계 독해의 영역을 웹 문서, 약관, 표 등 다양한 양식의 문서로 확장

모델 경량화 및 학습 및 추론 속도 개선을 위한 연구를 통해 실사용 자연어처리 모델 개발에 힘쓰고자 함