Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference (EACL, 2021) (not finished)

Minhan Cho·2023년 3월 1일
0

Schick, T., & Schütze, H. (2020). Exploiting cloze questions for few shot text classification and natural language inference. arXiv preprint arXiv:2001.07676.

It's not just size that matters: Small language models are also few-shot learners journal (NAACL, 2021)의 선행연구격 되는 논문. It's not just size that matters... 보다 PET에 대한 설명이 잘 되어 있으므로 먼저 읽는 것을 추천

https://github.com/timoschick/pet

Abstract

  • Pattern Exploiting Training (PET)의 3 step:
    • input text를 cloze-stype phrase로 reformulate
    • large set of unlabeled example에 soft labels assign
    • soft labeled된 example에 standard supervised training 진행
  • PET가 supervised training, strong semi-supervised approach에 대해 outperform

1 Introduction

  • Few shot learning의 어려움

어렵기는 한데, task description이 있으면 쉬워질 것. task description이란 task가 뭔지 understand하게 도와주는 textual explanation. GPT2나 Zero Shot with Generative LM 같은 논문에서 보면 input에다가 description을 append하는 형태로 zero shot 진행(이거 더 찾아봐야 하는데 귀찮아서 못 봤음)

  • 본 연구에 대한 설명: Pattern Exploiting Training (PET)

task description & standard supervised learning을 combine, few-shot에 이용하였음. PET를 input을 'cloze stype phrase'로 reformulate해서 training 진행한 'semi-supervised training procedure'라고 정의하였음

  • PET의 3 step process
  1. each pattern에 대해 separate PLM이 small training set TT에 대해 finetuned
  2. all models ensemble이 large unlabeled dataset DD에 대해 soft labeling 진행
  3. standard classifier가 soft-labeled datset에 train됨
  • iPET: iterative variatn of PET, training set size 키워가면서 process repeating
  • small-medium number of labeled example 주어질 때, PET와 iPET가 unsupervised approach, supervised training, strong semi-supervised baseline 모두 뚜까팸

3 Pattern-Exploiting Training

<Notation>

MM: masked language model (MLM)
VV: Vocabulary of MLM
____: masked token, ____ V\in V
LL: target classification task AA의 set of labels, e.g. binary classification이라면 l0(True)  l1(False)l_0(True)\;l_1(False) 있음
xx: input of task AA, sequence (s1,...,sks_1,...,s_k)로 이루어져 있음 (x=(s1,...,sk)x = (s_1,...,s_k), skVs_k \in V)
PP: pattern (function, xP(x)x \rightarrow P(x)), P(x)P(x)에는 오직 하나의 mask token이 들어가게끔 함 (그래야 cloze question이 되니깐)
vv: verbalizer (function, LVL \rightarrow V), 각 label(lkl_k)를 MLM MM의 Vocabulary VV로 mapping
patternverbalizerpairpattern-verbalizer\,pair (PVP): (P,v)(P,v)

  • 원래 task A의 input-output pair:

(x,l)(x, l)

input xx에 대한 label ll를 예측

  • task A의 input과 expected output이 바뀌는 과정

PVP (P,v)(P,v)가 개입

input: xP(x)x \rightarrow P(x) (from separate sequences to one cloze question sequence)
output: lv(l)l \rightarrow v(l) (from label to token)

  • input과 output이 변형된 task A'의 input-output pair

(P(x),v(l))(P(x), v(l))

MLM MM, cloze question type sequence P(x)P(x)에 대해 masked token ___ 의 token v(l)v(l)를 예측

  • 예시

task A: two sentences a, b가 서로 contradict인가 (binary classification)
input xx: xx = ("Mia likes pie", "Mia hates Pie")
output l{l0,  l1}l \in \{l_0,\; l_1\}: l0l_0 refers to "Yes", l1l_1 refers to "No"

task A': label assigning에서 answering for the masked position으로 변경
input P(x)P(x): P(x)P(x) = "Mia likes pie? ___, Mia hates pie."
output v(l){v(l) \in \{"Yes", "No"}\}

3.1 PVP Training and Inference

<Notation>

pp: pattern-verbalizer pattern (PVP), p=(P,v)p = (P,v)
TT: small training set
DD: larger set of unlabeled examples
zz: sequence, zVz \in V
M(wz)M(w|z): sequence zz에 token wVw \in V가 들어갈 unnormalized 확률

  • given input xx, score for label lLl \in L as

sp(lx)=M(v(l)P(x))s_p(l|x) = M(v(l)|P(x))
qp(lx)=esp(lx)/lLesp(lx)q_p(l|x) = {e^{s_p(l|x)}} / {\sum_{l' \in L}e^{s_p (l'|x)}}: q(lx)q_(l|x)sp(lx)s_p(l|x)의 softmax over labels

MLM MM에 대한 PVP pp의 finetuning 시 loss: qp(lx)q_p(l|x)와 true distribtion of training example (x,l)T(x,l) \in T의 cross entropy

3.2 Auxiliary Language Modeling

few training example이 너무 쪼만해서 pretrained language model (PLM)은 본질적으로는 LM임. auxiliary task로 language modeling으로 만듦

final loss는 다음과 같이 계산됨:

L=(1α)×LCE+α×LMLML = (1 - \alpha) \times L_{CE} + \alpha \times L_{MLM}
where LCEL_{CE} refers to cross entropy loss, LMLML_{MLM} refers to language modeling loss

LMLML_{MLM}이 워낙 클 거라 α\alpha를 엄청나게 작게 하는데, 여기서는 a=104a = 10^{-4}를 사용(실험 결과가 좋았다고 함)

language modeling을 위한 sentence 획득에 unlabeled set DD를 사용했지만, xDx \in D를 바로 넣지는 않았고, P(x)P(x) 넣었고, masked slot에 predict하는 것을 task로 하지는 않았음(그럼 MLM 학습 어떻게 한 거여..?)

3.3 Combining PVPs

large dev set이 없다는 게 challenge라서 PVP가 잘 작동하는지 확인이 어려움. knowledge distillation의 strategy를 활용했음

PP, a set of PVPs를 만들고 다음과 같이 사용

  1. separate language model MpM_p를 각 pPp \in P에 대해 3.1의 과정으로 finetune함. TT가 작아서 PVPs 갯수가 많아도 computing 비용이 적음

  2. finetuned models로 구성된 ensemble M={MppP}M = \{M_p|p \in P\}을 써서 DD를 annotate함. 각 example xDx \in D에 대해 unnormalized class score를 아래와 같이 구하고, softmax 씌워서 qq를 구함. temperature T=2T = 2으로 설정. 이렇게 모든 pairs (x,q)(x, q)를 soft-labeled training set TCT_C를 구성:

    sM(lx)=1ZpPw(p)×sp(lx)s_M(l|x) = \frac{1}{Z}\sum_{p \in P}w(p) \times s_p(l|x)
    where Z=pPw(p)Z = \sum_{p \in P}w(p) and w(p)w(p)는 weighting terms
    w(p)=1w(p) = 1 ("uniformed") or w(p)w(p) = accuracy obtained using pp on the training set before training ("weighted")

  3. Pretrained Language Model (PLM) CC에다가 standard sequence classification head on TCT_C를 이용해 finetune. 이렇게 finetuned된 PLM CC가 task A에 대한 classifier model이 되겠음

3.4 Iterative PET (iPET)

  • PET의 한계와 iPET의 core idea

앞에서처럼 각각의 model의 distilled knowledge가 single classifier C로 흘러들어가는 구조는 개개의 model이 서로로부터 학습을 할 수 없는 구조임. 게다가 한 pattern이 다른 pattern보다 perform worse라면, soft-labeled training set TCT_C에는 mislabeled된 example이 많을 것임. 이걸 극복하기 위해 iterative PET, 즉 iPET가 등장함. iPET의 core idea는 점점 커지는 데이터셋에 대해 several generations of models를 train하는 것

  • iPET의 작동원리

여기서 small labeled training dataset TT는 unlabeled large dataset DD에서 example 몇 개 뽑아와서 random subset of trained PET models로 labeling해서 섞는 식으로 크기를 늘려감. 그리고 더 커진 training dataset TT에 대해 new generations of PET models를 학습시킴. 이게 몇 번이고 반복되는 것

M0={M10,...,Mn0}M^0 = \{M_1^0,...,M_n^0\}은 3.3 의 1. 식으로 TT에 finetuned된 initial set of PET models. MijM_i^j는 PVP pip_i에 대해 학습한 kk-th generation of model MM임. 각 iteration마다 training set의 size는 fixed constand dNd \in N배수만큼 늘어나며, label ratio는 original dataset과 동일하게 맞춰짐. 그래서 c0(l)c_0(l)을 training dataset TT의 label ll에 해당하는 examples 갯수라고 하면, 각 TijT^j_i는 label ll마다 cj(l)=d×cj1(l)c_j(l) = d \times c_{j-1}(l)만큼의 examples를 갖게 됨(그냥 당연한 말이야!). TijT_i^j는 다음과 같이 생성됨

  1. NMj1N \subset M^{j-1}

PET models를 kk generation만큼 training한 이후, MkM^k로 soft-labeled training dataset TCT_C 만들고, classifier model CC를 train 하였음

  • iPET on zero-shot setting: 위에를 건너뛰었더니 알 수가 없네.. 시바

iPET은 zero-shot setting에도 사용될 수 있음. M0M^0를 untrained models로 정의하고 c1(l)=10/Lc_1(l) = 10 / |L| for all lLl \in L 해서 M1M^1이 10 examples evenly distributed on all labels에 대해 학습할 수 있도록 함. TNT_N이 label ll에 대해 적정 숫자의 example을 확보하지 못할 가능성도 있어서 xDx \in D의 100 examples를 .... 하 시바

profile
multidisciplinary

0개의 댓글