Attention mechanism에 대해 정리해보겠다. Attention을 하는 수식, 방식은 여러가지지만 Attention을 하는 목표는 동일하다. 어딘가에 집중할것인지를 학습하는것이다. 이번 글에서는 attention 이 왜 탄생하였는지? attention 이 무엇인지를 보도록 하겠습니다. 저만의 소설을 정리했는데 도움이 되면 좋겠습니다.
Attention 탄생 배경
시계열 문제에 대해 생각해보죠. 음성 시계열 $x_1,x_2,…,x_T$를 입력으로 LSTM 에 집어넣고 감정분석을 하는 문제를 생각해보겠습니다. 입력층은 LSTM 이 되겠지요. 입력층을 지나면 각 시간 t에 대응하는 $h_t$가 나옵니다.
$$ x_t \to h_t$$
LSTM 의 마지막 셀의 hidden state에 해당하는 $h_T$만을 이용해 분류를 한다고 합시다. 각 시점 $t$에 관하여 $h_t$는 $x_t$의 가장 큰 영향을 받은 hidden state입니다. $h_T$는 LSTM cell중 제일 마지막에 있으므로 $x_T$에 대한 정보가 제일 많이 담겨있겠죠. 다시 문제로 돌아서 $h_T$를 이용해 감정분석을 한다는 것은 $x_1,x_2,…,x_T$중 끝에 있는 $x_{T}, x_{T-1}, x_{T-2}..$을 중요시 보겠다는 얘기입니다. 그런데 실제로 마지막 부분이 중요할까요? 사람이 말하는 문장에서 감정이 나타나는 포인트가 문장의 앞부분 $x_{1},x_{2}…$일 수도 있고 중간일수도 있고 뒷부분일수도 있습니다. 제대로된 감정분석을 하기 위해서는 $h_T$뿐만아니라 모든 $h_t$를 고려해야 할것으로 보입니다.
Attention 으로 하고자 하는 것
위 단락에서 시계열 분류문제의 경우, LSTM layer중 마지막 LSTM 셀의 출력인 $h_T$에 담긴 정보만으로 감정분석을 할 경우 문장의 끝부분쪽에만 집중하는 경향이 있으므로, 문장전체를 보기 위해 hidden state $h_t$를 $t=1,2,…,T$에 걸쳐 모두 사용하면 좋겠다라고 했습니다. 여기서 나아가 하나를 더 생각할 수 있겠죠. $t=1,2,3,…,T$중 어느 시점에 집중을 해야 감정분석을 정상적으로 할 수 있을까요? 혹은 $t=1,2,3,…T$ 중 중요도가 높은곳은 어디이고 낮은곳은 어디일까요?
Attention을 이용하여 1. 시계열 전체에 대한 정보를 사용하고 2. 시계열을 구성하는 $x_t$에 대하여 $t$마다의 중요도를 계산할수 잇습니다. 3. 1과 2에서 언급한 것들을 딥뉴럴네트워크를 통해 학습할 수 있습니다. 사람이 중요도를 정해주는 것이 아니라 인공신경망이 중요도를 정해주는 것에 크나큰 의의가 있습니다.
Attention 을 하는 방법
그러면 attention 을 어떻게 해야 할까요? 여러방법이 있지만 가장 쉬운 방법을 생각해보겠습니다. LSTM cell마다의 출력 $h_t$를 동일한 weight vector $W$에 dot product 합니다. 여기서 $W$를 학습할거에요.
$$b_t = W \cdot h_t$$
$b_t$를 이용해 시점 t마다의 중요도(집중해야 할 정도)를 계산합니다.
$$a_t = \frac{\exp(b_t)}{\sum_{\tau=1}^T \exp (b_\tau)}$$
위에서 구한 $a_t$는 각 $h_t$마다의 중요도를 의미합니다. 이 중요도를 고려하여 새로운 context vector $c$를 만듭니다.
$$c=\sum_{\tau=1}^T a_t h_t$$
$h_t$마다 중요도가 다를텐데, $W$를 내적하고 softmax를 취하여 $h_t$마다의 중요도를 추출했습니다. 이 중요도를 고려하여 새로운 context vector $c$를 추출하였습니다.
여기서 의구심이 드는것은 $W$가 갑자기 나왔다는 점이고 $W$에 대한 해석이 좀 어렵긴 한데요. $W$에 대한 해석만 잘 된다면 위의 식은 그럴듯해집니다.
Attention을 사용한 논문을 읽다가 attention에 대해 고찰을 하게 되었습니다. attention 방식은 여러가지지만 attention 밑에 깔린 철학은 동일한 것 같습니다. “어느 곳에 집중해야 하는지를 딥러닝 스스로 제시하게 하는것”, 논문 하나 덕분에 깊은 생각을 해봅니다.
이 글을 작성하는 계기가 된 논문
M. Chen, X. He, J. Yang and H. Zhang, “3-D Convolutional Recurrent Neural Networks With Attention Model for Speech Emotion Recognition,” in IEEE Signal Processing Letters, vol. 25, no. 10, pp. 1440-1444, Oct. 2018, doi: 10.1109/LSP.2018.2860246.