A Structured Self-Attentive Sentence Embedding
3 minute read

Motivation

Sentence embedding 을 만들기 위한 방법으로는 recurrent model 을 이용하는 것이 보편적이다 (ex. LSTM 의 마지막 hidden state 를 문장 임베딩으로 사용). 이러한 방법은 모델이 모든 timestep 동안 모든 정보를 들고 있어야한다는 점에서 비효율적이다.

Sentence Embedding 방법의 종류

  1. Unsupervised Learning 으로 학습시킨 Universal sentence embedding
    • unlabeled corpora 로 학습이 가능하다.
    • 예시
      • SkipThought vectors (Kiros et al., 2015)
      • ParagraphVector (Le & Mikolov, 2014)
      • recursive auto-encoders (Socher et al., 2011; 2013)
      • Sequential Denoising Autoencoders (SDAE)
      • FastSent (Hill et al., 2016)
  2. Supervised learning 으로 학습시킨 task-specific sentence embedding
    • 일반적으로 universal embedding 보다 성능이 좋다.
    • RNN / CNN 구조를 이용하는 경우가 많다.
      • RNN 의 마지막 hidden state 이용
      • RNN 의 hidden state 들을 max / average pooling
      • Convolved n-grams
    • 언어학적인 구조에 대한 정보를 활용하기도 한다.

Differences

본 논문에서는 Self-Attention mechanism 을 이용해 문장을 행렬 형태로 embedding 하는 방법을 제안한다.

이러한 방법의 장점은 다음과 같다.

Method

vis

Results

본 논문에서는 Author Profiling, Sentiment Analysis, Textual Entailment 세가지 task 에 대해 실험을 진행하였다.

1. Author Profiling

2. Sentiment Analysis

results

3. Textual Entailment

results_2

Notes

  1. 관련 문헌을 소개할때 self-attention 을 사용한 sentence embedding 만 언급하고 일반적인 attention mechanism (ex. Bahdanau (2015)) 에 대한 언급은 왜 전혀 안했는지에 대한 의문이 들었다.
  2. 몇개의 attention weight 이 효과적인지에 대한 실험을 진행했고 10개 이상이면 크게 차이가 없음은 밝혔지만 task 가 달라지면 이러한 parameter tuning 을 매번 다시 진행해야한다는 점이 아쉽다.
  3. Penalty term 에서 $I$ 를 빼주는 것이 (4p. equation (8)) 어떻게 9p 에 설명되었듯이 attention weight 이 few word 에 focus 되도록 유도할 수 있는지 이해가 안간다.
  4. $r$ 개의 attention weight 이 이질적으로 학습이 잘된것인지, penalization 의 효과가 8p 의 visualization 에는 잘 나타나지 않는다. 이러한 주장의 근거로 다른 방법을 추가했으면 더 효과적이었을것 같았고, redundancy 를 해결하기 위한 penalty term 을 다양하게 시도해볼 수 있을 것 같다.
  5. 진행된 실험이 dataset 은 달랐지만 결국 셋 다 주어진 문장을 분류하는 문제였다는 점이 아쉽다. 좀 더 이질적인 여러개의 task 에 모델의 성능을 검증했다면 더 설득력이 있었을 것이다.
  6. 본 모델은 학습이 downstream task 에 의존하고 있기 때문에 unsupervised 방식으로 학습이 불가능하다. 저자들은 sequential decoder 를 붙여 unsupervised learning 을 할수도 있지만 다른 구조가 더 좋을 것 같다고 한다. 트랜스포머에서도 encoder 의 sequential computation 은 해결되었지만 decoder 는 여전히 순차적으로 sequence 를 generate 해야한다. Sequential generation 을 해결할 수 있는 방법이 필요하다.

Recent Posts

Deep Contextualized Word Representations
Pretraining-Based Natural Language Generation for Text Summarization
Style Transfer from Non-Parallel Text by Cross-Alignment
End-To-End Memory Networks
Learning Loss for Active Learning