본문 바로가기
논문리뷰

[논문 리뷰 #7] 자연어 생성 모델을 이용한 준지도 학습 기반 한국어 사실 확인 자료 구축

by 나는 라미 2023. 6. 17.
728x90
반응형

자연어 생성 모델을 이용한 준지도 학습 기반 한국어 사실 확인 자료 구축:
정재환(스탠퍼드 대학교), 전동현, 김선훈, 강인호(네이버)
(제 33회 한글 및 한국어 정보처리 학술대회 논문집(2021년))

00. 서론

한국어 사실 확인 과제는 학습 자료의 부재로 연구에 어려움을 겪고 있다. 이 논문은 수작업으로 구성된 학습 자룔르 토대로 자연어 생성 모델을 이용하여 한국어 사실 확인 자료를 구축하는 방법을 제안한다. C2E와 E2C 두 가지의 생성 방법을 이용하여 실험을 진행한다. 기존 학습 자료와 새롭게 생성한 자료를 더해 학습한 사실 확인 분류기는 높은 성능을 기록했다. 또한 C2E의 경우 수작업으로 구성된 자료 없이 기존의 자연어 추론 과제 자료와 HyperCLOVA few shot 예제만으로도 높은 성능을 기록하여, 비지도 학습 방식으로 사실 확인 자료를 구축할 수 있는 가능성을 확인했다.

 

01. 사실확인

 

 사실 확인이란 임의의 주장이 사실인지 아닌지를 주장과 관련된 근거를 토대로 판단하는 자연어 처리 태스크이다. 사실 확인은 주장과 주장의 논점과 관련된 근거가 주어지면 그 둘 사이에서의 Entailment(함의) 성립 여부로 주장의 사실 여부를 추측한다. Entailment란 예를 들어 "무정부 주의자는 국왕을 암살했다"가 사실일때, "국왕은 죽었다"는 반드시 사실임을 보장하는 관계를 말한다.

 

02. Entailment / Not Entailment

 

 사실 확인 모델을 구축하는 과정에서 가장 큰 어려움은 학습 자료 확보이다. 하나의 사실 확인 예제로는 주장, 근거, 주장과 근거 사이의 관계가 주어져야한다. 근거가 주장을 뒷받침 하면 Entailment, 뒷받침 하지 않으면 Not Entailment 예제가 된다. 서로 관련이 있는 주장과 근거를 생성하고, 그 둘사이의 함의 관계를 추론하는 과정에서 사람이 개입해야하는 경우가 많다. 사실 확인 자료를 수작업으로 구성하는 방법은 시간과 비용 측면에서 비효율적이기 때문에 사실 확인 학습 자료 생성과정을 자동화 하려는 노력이 꾸준하게 이어져 오고 있다.
 Entailment 예제의 경우, 사실 기반의 문서 문단을 근거로 삼은 뒤, 근거의 내용 중 일부를 취합하여 주장을 형상하는 방식으로 만들 수 있다. 그러나 근거와 Not Entailment관계를 띄는 주장을 만드는 과정은 근거 외부의 정보가 추가적으로 필요하다. Not Entailment를 유도하는 방법으로는 세가지 방법이 있다.

 

1. 근거 밖의 정보를 추가한 중문을 생성
2. 개체명을 토대로 Entailment 주장 내의 개체를 다른 개체로 치환하는 Entity Swapping
3. 단순히 Entailment 주장을 부정

 

 이러한 휴리스틱 기반 예제 생성은 일상생활에서 등장하는 다양한 종류의 Not Entailment 주장을 망라하지 못한다는 한계를 지닌다.

03. 관련 연구

 

 사실 확인 예제의 주장과 근거는 처음부터 만드는 방법 보다 이미 존재하는 질의응답 학습 자료의 예제에서 주장과 근거를 추출하는 방법을 주로 이용한다.

 

1. QA2D
질의, 응답, 근거가 주어지면 질의와 응답을 결합한 평서문 주장(Declarative Claim)과 기존의 근거를 토대로 자연어 추론 학습자룔르 구성하는 방법이다.

 

2. FAVIQ
서로 비슷하지만, 다른 질의$$Q1$$과 질의$$Q2$$의 중의성을 해소해놓은 질의응답 학습 자료 ($$Q1$$, $$A1$$), ($$Q2$$, $$A2$$)에 QA2D기법을 적용하면 높은 Not Entailment 주장을 만들수 있다고 제안한다.

이 두 방법은 주장과 관련된 근거가 평행하게 주어진다는 전제를 가지고 있기 때문에 사람이 수작업으로 찾은 근거 없이 질의와 응답만으로 사실 확인 예제를 만들지 못하는 한계를 지닌다.

 

3. QACG
사람의 손을 거치지 않고 제로샷(zero shot)으로 사실 확인 학습자료를 구성하는 방법이다. 위키피디아 문서 문단을 근거로 설정한 후, 해당 근거를 토대로 질의와 그 질의에 대한 응답을 추출하여 QA2D방법으로 Entailment주장을 생성한다. Not Entailment 주장은 응답 A를 A’으로 대체하여 주장을 생성하거나 근거E 밖의 문단 E’에 다마겨있는 내용을 주장에 추가하여 생성한다. 이 방법은 휴리스틱에 의존하여 Not Entailment 주장을 구성한다는 한계점을 지닌다.

 

04. 학습자료 구성

 

 한 개의 예제는 (주장, 근거, lable)식으로 구성된다. 기본 학습 자료는 네이버 내부에서 지식백과 문서들을 기반으로 구축한 질의응답 자료를 토대로 구성된다. 질의응답 자료 내의 예제로 근거 E, 질의 Q, 응답 A가 주어지면 QA2D방식으로 질의Q와 응답 A를 기반으로 하는 주장 C를 만드 다음, 근거 E와 주장 C사이의 Entailment/Not Entailment 여부를 사람이 직접 판단하였다.


 주장 1은 근거를 토대로 검증 할 수 있지만 주장 2의 “2분 30초 정도 보이지요”는 근거를 토대로 검증되지 않기 때문에 Not Entailment가 적절하다.

 

 

1. 근거 기반 주장 생성 방식(E2C)

 

근거 기반 주장 생성 방식(E2C)은 자연어 생성 모델이 근거를 입력으로 받으면 근거와 관련된 주장을 생성하는 방식으로 학습 예제를 만든다. 하나의 생성 모델을 기반으로 Entailment/Not Entailment 모두 생성 했을 때, Not Entailment를 의도하고 생성한 예제가 실제로 Entailment인 경우가 종종 확인 되어 각각의 주장을 생성하는 자연어 생성 모델을 따로 구성 한다. E2C 방법은 기본 학습 자료 D를 Entailment/Not Entailment로 분류하여 각각 자료를 토대로 생성모델을 학습한다. 학습이 완료된 후 기본 학습자료 D 외부의 위키피디아 문서 문단을 근거로 삼는 주장을 생성모델을 이용하여 추가 생성한다.

 

 자연어 생성 모델로 HyperCLOVA를 사용했을 때, 입력 근거와 모델이 출력한 주장 사이의 어휘 유사도가 매우 높게 측정되었다. 이는 사실 확인 과제에 유용한 샘플이 되지 못한다고 판단하여, KoBART를 각 Entailment/Not Entailment label에 해당하는 기본 학습 자료 내 예제에 파인 튜닝(finetuning)하여 사용해 입력 근거와 생성 주장의 어휘 유사도를 낮춘다.

 

 

 근거를 입력으로받아 관련된 주장을 생성한 예이다. Entailment 주장은 근거로 보아 참인 걸 알 수 있다. Not Entailment 주장 역시 근거와 다른 주장인 것을 확인 할 수 있다.

 

 

2. 주장 기반 근거 생성 방식(C2E)

 

 주장을 입력 받아 근거를 생성하는 방식이다. 입력으로 들어온 주장에 대한 근거를 초대형 언어 모델 HyperCLOVA가 학습한 사전학습 지식을 이용하여 생성한다. HyperCLOVA가 생성한 근거는 주장의 주어와 관련된 사전학습 지식에 중점을 맞춰 서술하여 생성된 근거가 입력 주장의 논점과 관련없는 경우가 발생한다. 또한 HyperCLOVA의 생성문은 사실을 기반으로 한 사전학습 지식을 토대로 구성되기 때문에 사실이 아닌 주장이 입력으로 주어져도 생성되는 근거는 사실을 기반으로 하게 된다. 이러한 특징은 주장의 주어와는 관련되지만, 주장의 논점과는 초점이 다른 근거는 자연스러우면서 어려운 Not Entailment 예제를 만들어 낼 수 있다.

 

HyperCLOVA가 출력한 (주장, 근거)에 대한 pseudo label은 기본 학습 자료 d를 토대로 학습된 사실 확인 분류기를 이용하여 생성한다. 이 논문은 인터넷 상에 공개된 JEOPARDY 학습 자료의 질의응답 샘플을 Seed data로 삼아 학습 자료를 생성하였다. JEOPARDY의 질의 내부에 HyperCLOVA가 근거 생성 시 참고할 만한 정보가 충분히 압축되어 있어 외부 문서 없이 질의에 의존해서 단답형 응답을 추론 할 수 있다. JEOPARDY는 영문으로 되어있어 HyperCLOVA에게 영문 질의 응답을 입력해주고 그에 대한 주장과 근거를 국문으로 생성할 때 둘 사이의 중복 어휘 출현 빈도를 낮출 수 있다. 이에 따라 좋은 품질과 난이도를 가진 데이터를 구축 할 수 있다.

 

*pseudo label*

: 사전 학습 된 모델을 이용해 라벨링 되지 않은 데이터를 예측한다. 예측한 값을 라벨 데이터로 이용하는 것을 말함

*JEOPARDY *

: 미국의 유명 퀴즈 프로그램에 등장했던 질의와 응답을 모아둔 학습 자료. 외부 문서 없이 순전히 질의에 의존해서 단답형 응답을 추론할 수 있을 만큼 질의가 자세하게 구성되어 있음

 

 C2E방식은 우선 JEOPARDY 내의 질의와 응답을 QA2D 방식으로 병합하여 주장을 생성한다. 질의와 응답의 연관성을 설명하는 "근거 생성 Few shot"을 입력 받은 HyperCLOVA는 질의와 응답 사이의 상관관계를 설명하는 근거를 생성한다. 주장과 근거 사이의 Entailment 여부에 대한 pseudo-label은 기본 학습 자료로 학습된 Larva Large 모델의 사실 확인 분류기로 생성한다.

 

 

 C2E의 Not Entailment 예제는 주장의 논점과 근거의논점이 다른 경우가 대다수이기 때문에 주장과 근거가 서로 상충하는 예제는 자연스럽게 생성될 수 없다. 따라서 이 논문은 Not Entailment 예제 중 절반의 주장을 Entity Swapping을 통해 거짓 주장 $$C'$$ 으로 변환한다. JEOPARDY 자료내의 질의 $$Q$$에 대한 적절한 응답 $$A$$는 하나이기 때문에, $$A$$를 비슷하지만 다른 응답 $$A'$$로 치환 할 때 $$Q$$와 $$A'$$로 구성된 주장 $$C'$$은 거짓인 주장이 된다. 질의 $$Q$$와 응답 $$A$$를 기반으로 HyperCLOVA가 구성한 근거 $$E$$는 대부분 참인 문장이니, $$E$$와 $$C'$$사이에는 Entailment 관계가 성립될 확률이 매우 낮다.

 

이 논문은 주장 $$C'$$을 생성하는데 사용될 seed data $$Q$$와 $$A$$로는 C2E 방식에서 Not Entailment 예제들을 생성한 것을 재사용 했다. HyperCLOVA에 아래의 A2A' 퓨샷과 $$A$$를 입력하여 $$A'$$를 생성하였고, $$Q$$ 와 $$A'$$를 결합하여 거짓 주장 $$C'$$을 구성한다. Not Entailment예제의 주장을 $$C$$ : $$C'$$ = 1 : 1비율로 구성한다.

 

 

 C2E 방식의 근거를 HyperCLOVA 기반 생성이 아닌 주장의 키워드 기반 검색으로 구성한다면, 지식 백과 상에서 선정된 문단이 실제 주장과 큰 관련이 없는 경우를 종종 확인할 수 있었다. 또한. 검색된 문서와 주장 사이의 Entailment / Not Entailment 여부가 불분명 하다. 그렇기 때문에 이 논문에서는 C2E 방식으로 주장에 대한 근거를 생성하였다.

 

 

 E2C와 C2E 방식으로 구성된 자료의 품질을 평가하기 위해 학습된 모델 성능을 국문 FEVER 번역본에 학습된 모델의 성능과 비교한다. FEVER 학습 자료 예제로는 주장과 근거, 둘 사이의 관계를 나타내는 label(Supported, Refuted, Not Enough Info)이 주어진다. FEVER의 Not Enough Info 예제는 따로 정답인 근거가 주어지지 않기 때문에 제외한다.

 

05. 실험데이터

 

 기본 학습 자료를 Baseline으로 설정 한 후, 각 E2C, C2E, FEVER 방식으로 구성된 학습 자료를 기본 학습 자료에 추가하여 사실 확인 분류기를 학습하였을 때 평가 자료에 나타나는 모델 accuracy의 변화를 관찰한다. 평가 자료는 네이버 지식백과 질의응답 자료를 기반으로 수작업으로 구성하였다. 사실 확인 분류기는 주장과 근거가 주어지면 그 둘 사이의 관계를 Entailment / Not Entailment로 이진 분류 하는 과제를 수행한다. 분류기 모델은 KoELECTRA모델을 이용한다.

 

05. 실험 평가

 

 Baseline이 될 기본 학습 자료의 품질을 평가하기 위해, 기본 학습 자료를 토대로 학습된 KoELECTRA base 모델과 KorNLI의 MNLI를 토대로 학습한 KoELECTRA base 모델의, 성능을 비교한다. 실험 결과, 기본 학습 자료의 크기는 KorNLI-MNLI 자료 크기의 5.4%에 불과하지만, 평가 자료에 대해서 더 놓은 정확성과 F1을 보여준다. 이는 기본 학습 자료가 사실 확인 과제에 더 알맞은 Baseline임을 보여준다.

 

 

 이 논문에서 소개한 학습 자료를 토대로 학습한 KoELECTRA 모델의 평가 결과이다. 두 모델 모두 평가 데이터에서 낮은 Recall과 높은 Precision을 기록하였는데, 이는 평가 자료에서 모델이 Fasle negative를 많이 내놓았음을 의미한다.

 

 각 학습 자료를 개별 적으로 적용하였을때 모델의 성능이 크게 향상되지 않았지만 모든 방법을 추가한 Total의 경우 기본 학습 자료 보다 정확도가 0.03만큼 증가하여 데이터 증강(Data Augmentation)의 효과가 관찰되었다.

 

 

 기존 C2E방식은 Not Entailment 주장의 절반을 정답 $$A$$를 기반으로 한 주장 $$C$$, 나머지 절반은 틀린 답 $$A'$$을 기반으로 한 $$C'$$로 구성한다 ($$C&C'$$). Not Entailment 주장을 전부 $$C'$$로 구성했을때 $$C&C'$$기반 모델 성능보다 높은 Recall과 낮은 Precision을 기록한다. 이는 $$C'$$이 $$C&C'$$보다 더 좁은 범위의 주장을 포하하기 때문에, $$C'$$ 기반 사실 확인 분류기는 Entailment로 추측값을 내놓는 경계값(threshold)가 기존 $$C&C'$$ 기반 분류기보다 낮아졌을 것으로 보인다.

 

 

 크기가 큰 모델이 더 높은 성능을 기록하는 것을 볼 수 있는데, 이는 생성 모델의 크기가 클수록 고품질의 학습 자료 샘플이 생성되는 것을 의미한다.

 

 

 C2E방식의 pseudo label 생성기로 사용되는 사실 확인 분류기는 기본 학습 자료를 토대로 학습되어 있기 때문에, 수작업으로 구성된 사실 확인 자료 없이는 C2E방식을 시도하기 어렵다. 이 논문은 pesudo label 생성용 사실 확인 분류기를 KorNLI-MNLI에 파인 튜닝시켜 C2E방법을 적용하였다. 그 결과, KorNLI-MNLI를 기반으로 하는 pseudo label 생성기가 더 높은 성능을 기록하는 학습 자료를 구성하여, 수작업으로 구성된 사실 확인 자료 없이도 HyperCLOVA 의 few shot 예제만으로 C2E 방식을 도입할 수 있음을 확인 했다.

 

06. 끝

 

 생성을 이용해 데이터 증강에 기여한 논문이다. C2E 방식은 수작업으로 구성된 사실 확인 자료가 필수적이였으나, 이 자료 없이 기존의 국문 자료를 이용하여 사실 확인 학습 자료를 생성하여 국문 사실 확인 자료 생성의 자동화 가능성을 제시했다는 점에서 많은 기여를 한 것 같다. 

728x90
반응형

댓글