Search
Duplicate
🌏

a9_1.1. title: 기계번역을 위한 Seq2Seq 모델에서의 attention 메커니즘은 디코더가 인코더에서 비슷한 것을 찾아내도록 학습하는 것이다.

생성
🚀 prev note
🚀 next note
♻️ next note
14 more properties
이 메모에서는 실제 텐서에 적용해서 shape 이 어떻게 일어나고 구체적인 연산이 어떻게 일어나는지 이해하지 않고, 일단 Seq2Seq 에서 Attention 의 추상적인 컨셉트만 먼저 설명한다 (참고 5,7). 그 다음, 구체적인 내용을 이해해 보자.
자연어처리 분야에서 Seq2Seq 모델은 문장을 입력으로 받아 문장을 출력하는 모델을 의미한다(참고1). 이 모델을 이용해 한국어 문장을 입력으로 받아 영어 문장을 출력하는 번역 작업을 수행할 수 있다. Seq2Seq 모델들은 입력 문장을 context vector 에 인코딩하고, 이 context vector 을 디코딩하며 문장을 출력한다. 이 context vector 이 인코딩할 수 있는 정보의 양이 제한적이라는 문제(참고8:다른 문제도 있음)를 극복하기 위한 방법으로 자연어처리 모델에 어텐션 메커니즘이 도입되었다(참고2). 어텐션 메커니즘은 이 context vector 뿐 아니라 추가적인 힌트를 얻을 방법을 고민하며 제안되었던 것이다.
디코더의 첫 번째 부분(s1)을 만들기 위해서는 시작 토큰과 context vector 을 입력으로 받는다. 이때 우리가 원하는 결과물을 먼저 생각해 보자. 우리가 s1 을 통해 기대하는 output 은 "I" 이다. 이 결과물은 "나는" 과 높은 관련성이 있다. 디코더의 모든 부분에서 (s1, s2, s3, ...) , 인코더의 어떤 부분과 높은 연관성이 있는지 알 수 있다면, context vector 에 의존하는 것이 아니라 인코더의 특정 부분의 정보를 더 반영한 결과물을 만들 수 있을 것이라는 생각이다.
s1 이 query 다.
디코더의 각 시점의 output 을 query 라고 하고, 인코더의 각 입력 시점에 대한 정보를 key 라고 하자. 위 그림과 같은 상황에서 (쿼리=s1 인 상황) 쿼리(query)가 무슨 역할을 하고 있는건지 사람이 이해하기 편하게 해석해 보면, "야 내가 번역 결과(output space) 의 첫 번째 단어(토큰) 를 훌륭하게 만들어야 할 책임이 있는 s1 인데 (참고6:Andrej 가 output space 의 raster 을 말한 이유), 내가 번역해야 하는 것과 가장 관련이 있는 입력 단어를 좀 줘 봐" 정도가 된다.
데이터베이스같은 시스템을 다룰 때, '쿼리를 던진다' 라는 표현을 종종 사용한다. 쿼리(query) 는 "요청하다" 라는 뜻이다.
다시 위와 같은 상황을 키(key) 의 관점에서 이해해 보자. 이때 키는 인코딩되고 있는 입력 문장의 특징이라고 할 수 있다. f 를 인코딩 함수라고 해 보자.
h1 = f1("나는")
h2 = f2(f1("나는"), "학생")
h3 = f3(f2(f1("나는"), "학생"), "이다")
여기서 나온 h1, h2, h3 은 key 이고, 이것들과 q1 의 유사도를 구한다.
여기서 오해하지 않도록 주의해야 할 것은 h1 = "나는" 이 아니라, h1 = f1("나는") 이라는 것이다. (물론 이 표기에서도 단어 임베딩은 표현되지 않았다.)
키를 풀어 해석해 보자. 키는 "음.. 나는 ["나는", "학생"] 두 단어의 맥락을 약간 인지하고 있는 h2 인데, 나보다는 아무래도 ["나는"] 에 대한 정보만 가지고있는 h1 가 너의 결과물 도출에 더 좋은 영향을 줄수도 있겠네." 정도를 알려주고 있다고 생각하면 된다.
그림(참고11)
쿼리를 던지고, 입력의 모든 부분과 비교하며 유사도를 구하고, 이에 맞는 attention score 을 얻고, 이것을 context vector 에 반영하는 과정을 attention mechanism 으로 추상화한다(참고5). Attention mechanism 을 통해 context vector 은 인코더의 각 시점을 돌이켜 보며 어떤 부분이 가장 중요했는지 재조정될 수 있도록 설계되었다고(참고4) 해석할 수 있다. 그래서 사람들은 이런 말을 하곤 한다.
하나의 쿼리가 아닌 모든 시점의 쿼리에 대해서 그리면 다음과 같은 그림이 그려진다 (참고8).
참고
7.