Loading...
2022. 5. 2. 21:02

multi-head attentiond 개념 알아보고 간단하게 구현해보기

지금까지 이야기한 것은 word embedding vector들의 self attention을 단 1번만 수행했다는 점인데 이것을 확장하여 여러번 수행하고 싶다는 것이다. 왜 여러번 수행해야할까? 단 1번의 self attention은 1가지 측면에서만 word들의 attention 측면을 고려하지만 필요에따라 attention 측면을 여러 방면에서 수행할 필요가 있다. 특히 매우 긴 문장의 경우 ‘I went to the school. I studied hard. I came back home. I took the rest.’를 생각해보자. 이 문장을 해석하기 위해 단어 I에 대해서 고려해야할 대상은 went, studied, came, took 등 동사 측면도 있지만 그것의 대상이되는 school, ..

2022. 5. 1. 21:35

scaled dot product attention

우리는 $softmax(QK^{T})V$로 attention을 구했지만 논문에서는 scaled dot product attention을 제안했다. key,query matrix의 차원 $d_{k}$의 제곱근으로 $QK^{T}$를 나눠줬다. 왜 그랬는지 생각해보자. query와 key의 내적은 언제나 하나의 scalar지만 query,key의 차원 $d_{k}$가 충분히 크다면 내적이 당연히 커진다는 점에 주목했다. 그러면 softmax function이 gradient를 극도로 낮게 만드는 영역이 존재한다는 것이다. We suspect that for large values of $d_{k}$, the dot products grow large in magnitude, pushing the softmax..

2022. 4. 28. 21:28

예시와 그림으로 이해하는 self attention의 원리

1. 예시로 알아보는 self attention hidden state vector를 만들고자 하는 x1의 query를 q1으로 생성 1에서 x1의 query q1와 x1,x2,x3의 key k1,k2,k3 각각의 내적으로 score를 계산 (3.8,-0.2,5,9) softmax를 취하여 어느 벡터에 집중할지 가중치를 계산 (0.2,0.1,0.7) 가중치인 score와 x1,x2,x3의 value v1,v2,v3의 weighted sum을 구한다. 즉 x1의 hidden vector h1=0.2v1+0.1v2+0.7v3으로 구해진다. 이러면 이제 x1,x2,x3를 학습이 가능한 weight matrix인 $W^{Q}, W^{K}, W^{V}$로 변환하여 얻은 query,key,value를 이용하였는데 ..

2022. 4. 27. 22:24

NLP의 역사를 바꾼 self-attention의 기본 원리

1. self-attention transformer에 도입한 attention의 원리는 seq2seq의 attention과 비슷하지만 조금 다르다. self-attention이라고 이름이 붙여졌는데 transformer encoder의 기본 구조는 input sequence x1,x2,x3가 self attention을 지나 바로 encoding되어 h1,h2,h3의 hidden vector가 된다. 2. seq2seq의 encoder 이전 sequence의 압축정보를 전달받아 다음 sequence로 넘겨가며 전달하며 encoder의 hidden vector를 생성했다. decoder에서 마지막 encoder의 hidden vector랑 첫번째 decoding input을 입력받아 생성한 decoder..

2022. 4. 20. 09:48

NLP에서 한 획을 그은 transformer은 왜 등장했는가 + bidirectional RNN의 특징

1. transformer는 왜 등장했는가 자연어를 입력받아 자연어를 생성하는 LSTM기반의 seq2seq의 성능을 개선한 transformer Attention is all you need, NeurIPS’17에서 발표 LSTM이나 GRU기반의 seq2seq는 추가적인 모듈로 attention을 사용했지만 transformer은 LSTM이나 GRU같은 RNN모듈을 걷어내고 attention 구조만 사용하여 더 이상의 RNN은 사용하지 않았다. 논문의 제목은 이러한 의미를 담고 있다. ‘오직 너에게 필요한것은 attention’ 왜 이것이 의미있을까? 이미 배웠지만 RNN은 구조상 매 step마다 이전 input의 정보를 쌓아나가며 일정한 차원에 계속해서 압축해나가기때문에 short term depend..