[퓨샷] Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference

1 minute read

Introduction

본 논문은 PET(Pattern Exploiting Training)을 처음 소개한다. 적은 labeled 데이터를 PVPs를 이용해 Cloze-style로 만들어서, 언어모델의 학습방식을 크게 벗어나지 않게 하면서 downstream task에 대한 Few shot 성능을 개선시키는 방법이라 볼 수 있다. 그리고 PET의 iterative 버전인 IPET도 소개한다. 자세한내용은 figure를 보며 설명하겠다.

Content

png

위의 그림은 감정분석 task에 PET을 적용하는 모습이다. Labeled 된 얼마 없는 데이터 셋을, PVPs를 이용해 Input 문장을 cloze-style(mask token포함)입력으로 바꾸고, 출력을 완전한 문장으로 하여 언어모델의 원래 학습조건과 비슷한 데이터셋을 만든다.

PVPs는 Pattern Verbalizer pairs의 줄임말이다.

Pattern: 원래 입력을 task에 대해서 설명하는 문장과 적절한 mask token위치를 포함하는 형태로 바꿔주는 것을 의미.(여러 개의 패턴이 존재 할 수 있음.)

Verbalizer: mask token에 들어갈 원래 label에 맞는 적합한 단어(언어모델 vocab에 포함되는)를 매칭

이러한 Pattern, Verbalizer가 쌍으로 이루어 진다고 해서 PVPs이다.

어쨌든, 이렇게 적은 labeled 데이터로 여러 PVPs를 이용해 만든 데이터를 PVPs 개수만큼 언어모델을 학습시킨다(패턴의 개수만큼 언어모델을 학습시킨다. – 데이터가 워낙 적기 때문에 자원 그렇게 많이 들지않음)

그렇게 학습된 언어모델(PVPs 개수만큼 있다)들을 앙상블하여 다량의 unlabeled 데이터에 대해 출력(soft-label)을 얻고 이를 일반적으로 우리가 언어모델로 fintuning 하는 방법에 적용한다.

(soft label을 이용하는 것은 제프리힌튼의 지식증류와 비슷하다.)

이렇게 PET을 이용한 Few shot 학습 방법을 알아봤고,

png

다음으로 IPET방법을 제안한다.

vanilla PET으로 4개의 PVPs에 따라 언어모델 4개를 학습 시켜 앙상블 해서 unlabeled 데이터를 inference하고 그로 만들어진 데이터를 이용하는 것이 (1)(2)(3) 이다.

저자는 다음과 같이 말하는데, PET은 각각의 모델 끼리 서로 배울 기회를 주지 않는다고 한다.

왜 그게 중요하냐면, PET은 어떤 패턴이 좋을지 가정하고 패턴에 대해 가중치를 두는데 (자세한 수식은 생략) 이것이 잘못되었다면, 결과적으로 나오는 soft-labled 데이터가 false label에 대한 bias를 많이 포함할 수 있기 때문이다.

따라서 IPET을 제안하는데, IPET은 (a)(b)(c)단계가 추가된 버전이라고 보면 된다.

주된 아이디어는 다양한 세대의 모델을 세대를 거치며 증가하는 데이터셋에 대해 학습 시키는것이다. 그 증가하는 데이터셋은 이전 세대 모델의 앙상블 예측이 confident한(높은스코어가나오는) 것으로 구성된다. 따라서 많은 모델들이 자신있게 예측한 데이터들이 활용될 가능성이 높아진다.

좀 자세히 보면, 앙상블로 생성되는 데이터 T_i는 첫번째 labeled 데이터들이 가지는 레이블 비율을 유지하면서, 세대가 지날수록 상수(parameter) d의 n(세대)승 만큼을 곱해준 만큼의 크기를 가진다.

논문엔 AVS(Automatic Verbalizer Search)도 소개되었는데, 손수 만들어진 Verbalizer가 없을 때 이용할 방법이다. 딱히 성능개선에 의미가 없는 것 같다. 따라서 직접 verbalizer는 만드는 것이 좋은 것 같다.

Leave a comment