Transformers
Seq2Seq에서 RNN을 아예 빼버리고 attention으로 구성해보면 어떨까? → Transformer의 구조 현재는 seq2seq + attention에서는 하나의 벡터로…
2025/04/27
Jinsoolve.
Categories
Tags
4월 안에는 꼭...
About
기존 RNN의 병목 현상을 해결하기 위해 Attention이 등장했다.
Decoder에서 한 단어를 예상할 때, 해당 단어와 특별히 관련되어 있는 Encoder의 특정 단어를 Direct Connection으로 연결하는 방식이라 할 수 있다.
먼저 basic한 아이디어는 병목 현상을 완화하기 위해 마지막 vector를 쓰는 게 아니 라 평균 값을 내서 전달하면 좀 낫지 않겠느냐 라는 아이디어이다.
이걸 바탕으로 attention은 weighted averaging을 사용한다.
attention은 다음과 같이 이뤄진다.
lookup table은 특정 쿼리에 알맞는 key를 골라서 해당 output을 그대로 출력한다.
이런 식으로 유사도 점수를 계산할 때는
위 내용에 대한 슬라이드이다.
병렬 계산이 가능하고, 모든 단어를 한 번에 볼 수 있어서 멀리 떨어진 단어 간 관계도 쉽게 배운다.
어텐션은 NMT의 성능을 끌어올렸고, 병목현상도 해결하고, 좀 더 사람처럼 번역해주고, gradient 소실 문제도 해결하고, 심지어는 어디에 attention 되어 있는 지를 알려주면서 해석 가능성도 주었다.
다만 하나 단점이 있다면 cost가 이라서 시 퀀스가 길어지면 느려진다.
어텐션을 좀 더 general하게 생각해보면 value들과 query가 주어졌을 때 query에 가장 연관이 있는 값을 산출해 내는 매커니즘이라 볼 수 있다.
즉, 값들 중 필요한 것만 뽑아서 요약하는 것이라고도 볼 수 있다.
포인터처럼 필요한 정보를 가리키고 메모리 조회처럼 필요한 걸 가져오는 범용 방버이라 할 수 있을 것이다.
Seq2Seq에서 RNN을 아예 빼버리고 attention으로 구성해보면 어떨까? → Transformer의 구조 현재는 seq2seq + attention에서는 하나의 벡터로…
2025/04/27
언어 모델이라는 건, 사실 다음에 올 단어를 확률로 예측하는 것이다. 이러한 언어 모델들을 어떻게 발전시켜왔는 지 살펴보자. 이미 이전 포스트에서 자세히 살펴보았던 내용이다.…
2025/04/27
이전 포스트에서 RNN에서 Vanishing Gradient로 인해 장기 의존성 문제가 있다는 사실을 이야기했다. 이런 Vanishing Gradient를 해결하기 위해 크게…
2025/04/27
저번에 word vector에 대해서 알아봤는데, 이번에는 word vector의 프레임워크인 Word2Vec에 대해서 좀 더 알아보자. 먼저 Word2Vec이 어떤 식으로…
2025/04/26