[ML] PET (Pattern Exploiting Training)

AirPlaneMode·2022년 5월 22일
0
post-thumbnail
  • 참조 :
  1. Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference

1. Introduction

기존의 주류(predominant) 모델은 레이블된(labeled) 데이터를 바탕으로 학습하여, 처음 보는 데이터에 대한 일반성을 확보하기 위해 학습하였다. 그러나 많은 수의 레이블된 데이터를 필요로 하기 때문에 시간적 비용적 문제가 발생하였고, 적은 수의 레이블된 데이터로 학습하는 "few-shot learning"의 중요성이 대두되었다. 그러나 적은 수의 예제로는 풀고자 하는 문제가 무엇인지 쉽게 파악하기 어렵다는 문제가 존재한다.

따라서 본 논문에서는 패턴 추출 학습(PET;Pattern Expoiting Training)을 제시한다.

PET는 세 가지 단계로 동작한다.

  1. train Dataset (TT)을 cloze question form으로 변형하여 PLM을 학습한다. (PLM(Pre-trained Language Model)은 각각의 패턴으로 fine tuning된다.)

  2. 각각의 PLM의 결과는 앙상블되어 unlabeled 데이터(DD)를 soft-label로 annotate한다.

  3. classifier는 soft-labeled 데이터셋으로 학습된다.

2. Pattern-Expoiting Training

2.0. 용어 설명

  • MM : Masked Language Model
  • VV : Vocabulary
  • ____ : Masked Token (V\in V)
  • LL : 분류 작업 A를 위한 Label의 집합
  • x=(s1,...,sk)\textbf{x}=(s_1,...,s_k) : 입력값 (구문(phrase)의 연속) (siVs_i \in V^*)
  • P(x)P(\textbf{x}) : x\textbf{x}를 바탕으로 생성된 Pattern(PVP \in V^*)
  • vv : verbalizer (v:LVv:L\rightarrow V)
    - Label을 MMVV에 속한 단어로 mapping
  • (P,v)(P,v) : Pattern Veblizer pair

2.1. PVP Training Inference

PVP p\textbf{p}의 score는 다음과 같이 구해진다.

x\textbf{x}를 변환한 Pattern (P(x)P(\textbf{x}))이 주어졌을 때, vv가 mapping한 label의 값에 대한 모델의 출력을 sp(lx)s_{p}(l|\textbf{x})라고 한다.

이후 score에 softmax를 씌워 qq를 구해준 후, training data (x,l)(\textbf{x}, l)과의 cross-entropy loss를 구한다. 해당 loss는 p\textbf{p}에 대한 PLM (MM)을 fine tuning하는 데 사용된다.

2.2. Auxilary Language Modeling

PVP로 fine tuning된 PLM이더라도, 그 core는 MLM(Masked Language Model)이기에 catastrophic forgetting이 발생할 수 있다. 따라서 MLM을 보조작업(Auxilary Task)를 수행할 수 있도록 해 해당 현상을 방지한다.

2.3. Combining PVPs

어떤 PVP가 좋은 성능을 내는지 판단하기 어렵기 때문에, 여러 개의 PVP을 ensenble하는 방법을 사용한다.

  1. 각각의 p에 대해 PLM을 학습시킨다.
  2. 각각의 p에 대한 score를 가중평균내어 앙상블 모델 MM의 score를 계산한다.

여기서 Z=ΣpP w(p)Z = \Sigma_{\textbf{p}\in P}\ w(\textbf{p})이며, w(p)w(\textbf{p})는 Pattern의 weighted term으로 1(uniform), 혹은 학습 전의 해당 PVP의 정확도(weighted)이다.

이후 해당 Score를 T=2T=2로 Softmax하여 확률 분포(qq)를 구해준 후, (x,q)(\textbf{x}, q) 쌍의 테스트 데이터셋 TCT_C를 생성한다.

이후, classifier PLM CC를 데이터 셋 TCT_C로 fine tuning 해준다.

2.4. iPET

각 PVP는 (1) 상호 간에 영향을 끼치지 않으며, (2) 다른 PVP에 비해 성능이 떨어지는 경우도 존재한다. 따라서, PET로 생성된 최종적인 데이터 셋 TCT_C는 많은 오분류 데이터가 존재할 수 있다.

따라서 상호 간에 영향을 끼칠 수 있도록 TCT_C를 생성하며, PET를 반복적으로 실행하는 것을 iPET(iterative PET)라고 한다.

3. 요약

  1. (text, label) 데이터를 PVP를 통해 (pattern, verbalized label)로 변환한다.

  2. 변환된 데이터는 PLM의 입력으로 사용되며, PLM은 각 verbalized label에 대한 확률값을 반환한다.

  3. 반환된 확률값과, label에 대한 CEL을 계산하여, PLM을 fine-tuning한다.

  4. 각 PVP에 대해 1-3 과정을 반복한다.

  5. fine-tuning된 모델들에 Unlabeled Data를 입력한 값에 softmax를 취해 각 label 별 확률 분포를 파악한다.

  6. 앞서 취득한 확률 분포를 ensenble하여 최종적 Dataset을 생성하고, 이를 통해 Classifier를 학습한다.

0개의 댓글