데이터과학 삼학년

Universal Sentence Encoder (2018) 본문

Papers

Universal Sentence Encoder (2018)

Dan-k 2020. 8. 6. 16:26
반응형

Universal Sentence Encoder (2018)

 

요약

  • encoding sentence를 embedding vector로 변환하는 model을 만듦

  • nlp task에 활용할 수 있도록 transfer learning으로 만듦

  • sentence 자체를 embedding 하는 개념이라 보면 됨 (word단위가 아님) 

  • model은 크게 2가지로 나눌 수 있음

    • Transformer

    • Deep Averaging Network (DAN)

  • 위 두 모델은 accuracy - compute resources에 대한 trade-off가 존재함

  • Accuracy (정확도) : Transformer > DAN

  • Compute Resource (메모리 등 비용) : Transformer < DAN (DAN 이 더 좋음(유리))

  • word level을 embedding 하는 것보다 sentence 단위를 embedding 하는 것이 더 좋은 성능을 냄을 알 수 있었음

 

1. Introduction

  • NLP 관련 Task에서 제한적인 양의 training data 가 쓰이고 있음

  • 실제 연구나 실무에서 NLP를 쓸때 역시 large training dataset을 쓰기 어려움

  • 이러한 이유 때문에 낮은 성능을 가지게 되고 이를 해결하기 위해 transfer learning을 쓰곤 함 (특히 word embedding 과 같은 부분에서; word2vec, GloVe)

  • 최근 연구(2017) 에서는 word 단위가 아닌 sentence 단위의 embedding이 성능이 더 높다는 것이 입증 되었음

  • 본 paper에서는 sentence embedding을 위한 2가지 모델을 제시하며, 이 모델들은 좋은 성능을 입증했음

 

2. Model Toolkit

  • 2개의 모델 transformer, DAN은 TF hub에 올라가 있어 아래 코드를 이용하여 사용하면 됨

import tensorflow_hub as hub

embed = hub.Module("https://tfhub.dev/google/universal-sentence-encoder/1")
embedding = embed(["The quick brown fox jumps over the lazy dog."])
  • 제공하는 모델은 english를 embedding vector로 변환

  • 특히, sentence를 embedding으로 변환하기 때문에 figure 1에서 볼수 있는대로 성능이 매우 좋음을 알 수 있음



3. Encoders

  • encoder로 2개의 모델을 제공하고 있으며, 각 모델은 서로 다른 목표를 가지고 있음

  • transformer : high accuracy

  • DAN : efficient inference with slightly reduced accuracy



3.1 Transformer

  • transformer는 sentence encoding model로 sentence embedding을 함

  • 여기서, embedding을 위해 sub-graph를 사용하게 되는데 sub-graph는 문맥적 이해를 계산하기 위함 (문맥의 순서와 문맥에 맞는 의미를 고려하기 위함)

  • context aware word representation은 고정된 길이의 sentence encoding vector를 갖게 되는데 각 word의 representation의 element-wise sum을 이용하여 계산하게 됨

  • encoder는 tokenizer로 PTB를 쓰며, output은 512 차원의 vector로 표현됨

  • encoding model은 multi-task learning을 사용하여 수행됨

  • task는 Skip-Thought를 이용하는데 이는 기존의 LSTM을 사용하던 방식에서 대체된 방법임

  • 실험결과에서 보겠지만, transformer는 가장 좋은 성능을 나타냄

  • 그러나, compute time 비용이나 memory 소모를 많이한다는 단점을 가지고 있음



3.2 Deep Averaging Network (DAN)

  • 두번째 encoding 모델인 DAN은 deep averaging network를 사용함

  • Transformer encoder과 비슷하게 PTB tokenizer를 쓰고 512 차원의 output을 갖게 됨

  • DAN의 주된 이점은 Input 문장 길이에 비례하여 compute time이 선형적으로 증가한다는 것



3.3 Encoder Training Data

  • SNLI corpus, web sources(wikipedia, web news, etc)



4. Transfer Tasks

  • dataset에 대한 overview

  • Word embedding Association Test (WEAT) Data는 model bias 특징을 확인하는데 사용

  • 각 데이터에 대한 간략한 설명은 table 1에서 확인



5. Transfer Learning Models

  • 문장 분류를 위해서 transformer와 DAN encoder를 통해 나온 output은 DNN에 태워짐

  • 문장 유사도 비교를 위해 식1에서 보여지는 것처럼 angular distance를 사용함

  • angular distance는 cosine similarity보다 더 좋은 비교성능을 가지고 있음




5.1 Baselines

  • transfer task 비교를 위해 baselines으로 word 단위의 transfer와 transfer learning을 사용하지 않은 것을 포함

  • word 단위 transfer에는 word2vec (skip-gram)을 이용함

  • pretrained 된 word embedding은 CNN과 DAN에 input으로 들어가게 됨

  • baseline은 word 단위와 sentence 단위의 embedding을 비교하게 됨



5.2 Combined transfer Models

  • 문장과 단어 단위의 transfer model이 있는지 조사함

  • 완벽을 위해 문장 단위의 transfer model로부터 representation을 concatenating 하는 것을 찾아봤음

  • 실험을 위해 사전조사했다고 생각하면 될 듯



6. Experiments

  • transfer task model의 하이퍼파라미터는 Vizier과 light manual tuning대로 했음

  • 기본적으로 dev data set을 을 이용해 튜닝했지만, dev data set이 업으면 cross-validation 방식으로 xbsldgka

  • training은 각 모델별로 10번씩 반복함

  • transfer learning은 target task가 제한된 상황일때 매우 중요함

  • transformer와 DAN과는 다르게 trade-off를 재정의 했는데 하나는 model complexity고 다른 하나는 이상적인 결과에 도달할 수 있는 data의 양으로 잡음

 

7. Result

  • Table2에서 보듯이 transformer가 DAN 보다 더 성능이 좋음을 알 수 있음

  • 그러나, simpler와 fast DAN을 이용한 transfer learning 은 몇 부분에서 복잡한 transfer 모델보다 성능이 더 좋았음

  • 확실히 sentence단위의 모델이 word 단위의 모델보다 더 좋은 성능을 가지는 것을 확인할 수 있었음

  • 가장 성능이 좋았던 것은 sentence와 word 단위를 모두 조합한 model이었음

 

  • Table3은 다양한 양의 데이터 셋에 대한 transfer task 성능을 보여줌

  • 적은 양의 데이터일 수록 sentence 단위의 transfer learning이 좋은 성능을 나타냄을 알 수 있음

  • 또한, transfer learning을 사용하지 않은 모델은 training set 사이즈가 커질수록 성능이 올라감을 확인할 수 있음

  • Table 4는 GloVe embedding과 DAN을 비교한 것임

  • DAN은 GloVe와 비슷한 결과를 나타냈지만, ageism, racism, sexism을 드러내는 것에 대해서는 성능이 약함을 알 수 있음

 

7.1 Discussion

  • 적은 양의 데이터 셋을 가지고 있으면 transfer learning을 쓰는 것이 유리함

  • trade-off가 있으므로 engineer가 목적에 맞게 모델을 잘 골라서 사용해야함

 

8. Resource Usage

  • compute resource 비교는 크게 compute usage, memory usage 측면으로 나누어 볼 수 있음 (시간 복잡도, 공간 복잡도) 

  • figure 2를 통해 각 모델별 비교를 확인 가능

  • Compute usage

    • transformer 경우, time complexity가 O(n2) 를 갖음

    • DAN의 경우, time complexity가 O(n) 임

  • Memory usage

    • transformer 경우, space complexity가 O(n2) 를 갖음

    • DAN의 경우, space complexity가 일정함 (constant)

  • DAN 모델에서는 model 을 unigram과 bigram으로 저장

  • transformer는 unigram embedding으로 저장하기 때문에 짧은 문장에서는 DAN보다 절반 이상 작은 memory를 사용하기도 함

 

9. Conclusion

  • transformer, DAN model 모두 sentence 단위의 embedding으로 높은 성능을 나타냄이 입증됨

  • 문장단위의 embedding은 단어 단위의 단일 embedding의 성능을 초월함

  • 특히, 문장과 단어를 조합한 transfer learning 모델이 가장 좋은 성능을 나타냄

  • 제한된 training data가 있을때 transfer task를 고려해볼만 함

  • 모델들을 사용할때 trade-off가 있으니 accuracy와 compute resource에 대한 고려를 하여 목적에 맞게 선택하여 분석할 필요 있음

  • 앞으로 pretrained 된 encoding model들은 매우 공공연하게 이용될 것이며, 자연어를 이해하는데 더 좋은 이점을 가질 것으로 보임



출처

  • Cer, Daniel, et al. "Universal sentence encoder." arXiv preprint arXiv:1803.11175 (2018).

 

728x90
반응형
LIST
Comments