Attention Mechanism

구국원·2020년 3월 5일
1

어텐션 메커니즘(attention mechanism)이란, 새로운 모델이 아니라 기존 seq2seq의 장기 의존성 문제(long term dependecy problem)을 해결하기 위해 인간의 시각적 집중(visual attension) 현상을 모방한 변형 seq2seq 모델이다. 어텐션 메커니즘은 주로 NMT(Neural Machine Translation) 문제에 활용되며 디코더의 아웃풋이 인코더의 어느 부분에 집중(attention) 하였는지를 판단할 수 있는 구조를 도입하여 그 성능을 끌어 올렸다.

용어

  • Encoder
  • Decoder
  • Annotation: Encoder의 각 타임 스텝의 hidden state. (출력값 y가 아님을 주의)
  • State: Decoder의 각 타입 스텝의 hidden state. (출력값 y가 아님을 주의)
  • Encoding: 입력값(input)이 Encoder의 각 타임스텝을 통과하여 annotation(h)을 출력하는 과정
  • Alignment: 각각의 annotation(encoded input, h)가 현재 decoder의 output(s)과 얼마나 매치하는지를 나타내는 alignment model score(e)를 구하는 과정
  • Weighting: 소프트맥스 함수를 통해서 normalized score인 annotation weights를 구하는 과정 annotation weights란 encoder의 각 타입 스텝의 annotation(h)이 현재의 decoder output(s)과 관련 있는 확률을 말함
  • Context vector: annotation(h)과 normalized alignment scores(a)의 가중합

어텐션 메커니즘 시각화

참고) pointer network와의 관련성

  • pointer network는 alignment score를 구한 후 해당 벡터에 소프트맥스 함수를 취하여 t 시점의 decoder의 output(s)과 input의 길이를 같게 해 줄 수 있다.
  • 그때의 decoder의 output는 encoder의 인덱스를 가르킨다(point)고 하여 pointer network로 불리는 것 같다.
  • 다시 말해 기존의 attention mechanism은 토큰이 나올때까지 계속해서 decoder의 출력을 생성하므로 encoder의 길이와 decoder의 길이가 항상 같을 수 없는 반면 pointer network는 서로의 길이를 항상 같게 할 수 있다.

레퍼런스

profile
All About Data Science

0개의 댓글