본 논문은 기존에 사용되고 있는 NLP training model들에 대해 전반적인 문제점을 지적하고 있다.
- NLP task에 사용되는 training data의 크기는 제한적이다.
- 대부분의 NLP 관련 연구나 실무에서 large training set을 사용하기 힘들다.
대부분의 연구 및 실험에서는 amount of dataset에 대한 issue로 인해서 transfer learning(word embbeding ; word2vec, GloVe)을 통해 한계점을 해결하고자 한다. 또한, 최근의 연구(Conneau, 2017)에서 sentence 수준의 pre-trained model이 transfer task에서 성능 입증되었다.
따라서 본 논문은 sentence embedding 생성을 위해 2가지 model을 제안한다.
transfer learning
특정 tsak에서 수행하기 위해 훈련된 model을 다른 task에 사용하는 방법
- task1 : pre-trained, task2 : transfer learning (downstream)
- fine-tunning / prompt-tunning / in-context learnig
본 논문에서 제안한 model은 Transformer와 DAN(Deep Averaging Network)를 encoder로 사용한다. 본 model은 TF(Tensorflow)에서 구현되며, 아래와 같은 방법으로 사용 할 수 있다.
제공되는 model은 English를 sentence 단위로 embedding vector로 변환시킨다.
Figure 1 같이 sentence embedding을 했을 때 비슷한 문장들끼리의 유사성이 높게 나타남을 아 수 있다.
각 Encoder들은 서로 다른 특징을 가지고 사용이 된다.
Transformer : high accuarcy, high cost of complexity and resource consumption
DAN : Efficient inference with slightly reduced accuracy
Transformer는 sentence encoding model로 sentence embedding 역할을 수행한다.
- 각 word들의 embedding vector들을 Transformer에 input으로 넣는다.
- 나온 output을 elemet-wise sum해서 사용한다.
- Encoder(Transformer)의 input은 lowercase PTB tokenized를 사용하며 output은 512 dimensional vector를 가진다.
앞서 언급한 Transformer와 마찬가지로 sentence embedding역할을 수행한다.
Transformer와 같이 input은 lowercase PTB tokenized를 사용하며 output은 512 dimensional vector를 가진다. 주된 장점은 Input sentence length에 비례하여 compute time이 선형적으로 증가한다.
DAN(Deep Averaging Network)의 계산 방법은 각각의 word embedding에 대해서 평균을 내준다. 그 평균 av를 input으로 deep nural network에 넣어주어 output을 얻게 된다.
Encoding model은 multi-task learning을 수행한다. 사용되는 Task는 Skip-thought, conversational input-response, classification 이며, 사용된 Encoder 대신 본 논문에서 제안한 Encoder를 사용해서 진행된다.
Skip-thought task
Si-1,Si,Si+1 3가지 문장을 하나로 입력을 받아 Encoder(LSTM)에 넣는다. 현재문장 (Si)를 이용하여 이전 문장(Si-1)과 다음 문장(Si+1)을 예측하여 sentence embedding vector를 학습한다.
Conversational input-response
siamese network처럼 input과 response data를 encoder에 넣은 후 Dot product해서 score를 학습
model의 bias를 측정하기 위해서 Word Embedding Association Test(WEAT)를 사용하였다.
아래는 Transfer learning에 사용된 dev and training dataset이다.
MR : Movie review snippet sentiment on a five star scale
CR : Sentiment of sentences mined from customer reviews
SUBJ : Subjectivity of sentences from movie reviews and plot summaries
MPQA : Phrase level opinion polarity from news data
TREC : Fine grained question classification sourced from TREC
SST : Binary phrase level sentiment classification
STS Benchmark : Semantic textual similarity (STS) between sentence pairs scored by Pearson correlation with human judgments
각 dataset의 크기는 SST Training dataset이 가장 많으며 MR,CR,SUBJ,MPQA dataset은 test dataset로 사용이 되었다.
Pair-wise semantic similarity task에 한하여 USE_T와 USE_D model의 output들을 DNN에 태워서 나온 U,V vector들을 cosine similarity에서 변형된 angular distance를 구한다.
진행과정
1. Random하게 word embedding을 생성한다.
2. Transformer or DAN을 encoder로 task를 진행한다.
3. 그렇게 추출된 sentence embedding과 word embedding을 CNN or DAN에 태워 concatenate를 한다.
baseline 기반의 4가지 경우의 수로 각각의 dataset의 성능을 파악한 후 가장 좋은 경우의 수를 선택한다.
용어 정리
- USE_T : universal sentence encoder Transformer
- USE_D : universal sentence encoder Deep Averaging Network
- w2v w.e : pre-training word2vec embedding
- lrn w.e : randomly initialized word embedding
Resource Usage 같은 경우는 compute usage와 memory usage로 나눠 볼 수 있다.
-CPU, GPU의 경우 sentence length가 커짐에 따라서
- Transformer의 경우 기울기가 커짐을 알 수 있다.
- DAN의 경우 기울기가 유사하거나 별 차이가 없음을 알 수 있다.