논문 정보 :
- 링크 : https://arxiv.org/pdf/1803.11175.pdf
- EMNLP 2018(System Demonstrations) (이 모델을 이용한 시스템에 대해 설명한 논문)
- Google AI
요약 :
- Transformer layer를 이용한 초기 pre-trained 모델
- Sentence embedding vector를 생성하는 것이 목표
- Sentence 단위로 transfer learning한 모델이 word 단위로 한 것보다 더 좋다.
모델 - Encoders :
- 학습 방법
- Multi task로 학습했다.
- Sentence vector는 word 단위 vector를 평균 내어 구했다.
- Skip-thought like task
- 이게 뭔지 몰라서 참조 논문(링크)을 찾아봤다.
- 간단히 설명하자면, 문장이 3개 있을 때, encoder로 가운데 문장의 vector를 얻고, 두 개의 다른 decoder가 encoder의 vector를 이용해 앞, 뒤 문장의 language modeling을 수행하는 방식이다.
Skip-thought 모델 학습 구조 - Loss는 decoder의 output을 이용하며, 학습이 끝나면 encoder만 사용한다.
- 원 논문에서는 RNN을 썼으며, 이 논문에서는 transformer를 썼다.
- 데이터는 Wikipedia, web news를 쓴 것 같다.
- Conversational response prediction task
- 역시 참조 논문(링크)이 필요했다.
- (대충 봤는데...) siamese network처럼 질문-응답 쌍을 각각 동일한 encoder를 통해 vector representation을 얻은 다음, 맞은 응답이 나올 score를 높이는 방향으로 학습했다.
후속 연구(링크)에 있는 모델 구조 - Supervised classification task
- SNLI로 supervised 학습했다.
후속 연구(링크)에 있는 모델 구조 - 모델 구조
- Transformer layer
- 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을 같이 썼다고 한다.
Evaluation :
- 이렇게 사전 학습한 모델로, 다른 여러 task들에 대한 성능을 측정하였다.
- 학습한 encoder의 output은 각 task에 맞는 layer에 입력으로 사용됐다.
- Pairwise semantic similarity task의 경우, 두 문장의 벡터 u, v가 있을 때 similarity를 다음과 같이 계산했다.
- Arccos는 cosine similarity를 삼각부등식을 만족하는 angular distance로 변환하는데, cosine similarity보다 더 좋았다고 한다.
- 여러 방법으로 실험해 봤으며, 잘 됐다...
- USE_D는 DAN으로 pre-training한 모델이며, USE_T는 Transformer로 pre-training한 모델이다.
- Sentence 단위로 transfer learning한 모델이 가장 좋았고 sentence + word로 transfer한 모델이 가장 좋았다.
- Transformer 모델의 성능이 더 좋았다.
참고 사이트
댓글 없음:
댓글 쓰기