본문 바로가기
AI/NLP

Universal Sentence Encoder (USE)

by didi0di 2022. 6. 28.
728x90

구글 vertext AI matching 알고리즘에서 query와 document 를 미리 임베딩해놓고 서치를 진행

임베딩할때 Universal Sentence Encoder (USE)를 사용한다고 해서 서치를 해보았다.

 

Universal Sentence Encoder는

텍스트 분류, 의미론적 유사성, 클러스터링 및 기타 자연어 처리에 사용할 수있는 고차원 벡터로 텍스트를 인코딩한다.

단순히 단어가 아닌 시퀀스의 의미를 모델링 하였다고 한다.

 

특징은 다음과 같다.

  • Transformer layer를 이용한 초기 pre-trained 모델
  • Sentence embedding vector를 생성하는 것이 목표
  • Sentence 단위로 transfer learning한 모델이 word 단위로 한 것보다 더 좋다.

 

논문 리뷰는 아래와 같다.

 

https://arxiv.org/abs/1803.11175

 

Universal Sentence Encoder

We present models for encoding sentences into embedding vectors that specifically target transfer learning to other NLP tasks. The models are efficient and result in accurate performance on diverse transfer tasks. Two variants of the encoding models allow

arxiv.org

 

1.Introduction

 

본 논문은 기존에 사용되고 있는 NLP training model들에 대해 전반적인 문제점을 지적하고 있다.

 

1. NLP task에서 사용되는 training data의 크기는 제한적임
2. 대부분의 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을 제안한다.

 

 

모델 구조

 

1. Transformer layer
2. Deep Averaging network(DAN)

  • Layer 형태는 feedforward network이다.
    Input으로 word, bi-gram embedding을 평균내어 사용한다.
  • Input 형태
    일단 문장을 PTB style로 tokenize 했다는 것을 보면 word 단위인 것 같다.
    Vocab에 대한 내용은 없다…
    System demonstration 논문(링크)에는, oov의 경우, 400,000개의 임베딩으로 hashing한다고 되어 있다.
    DAN에서는 word embedding과 bi-gram embedding을 같이 썼다고 한다.

집현전2기_중급반_19조_Universal_Sentence_Encoder.pdf
1.09MB

728x90

댓글