Attention Is All You Need 논문 리뷰
안녕하세요 머킹입니다.
이 논문을 시작으로 가볍게 논문들을 리뷰해보고자 합니다.
인공지능을 배우면서 느끼는 게, 계속 신기술이 나오고 나오고 혁명이 끝이 없어서
지속적으로 논문을 읽고 그 기술을 배우는 것들이 꼭 필요하다고 느끼고 있습니다.
논문 읽는 법은 앤드류 응 교수님의 강의를 참고했습니다.
- https://youtu.be/733m6qBH-jI?si=vE0cobjOL6K2PCD1
논문 초보라면 꼭 들으시는 것을 추천합니다.
아래에 논문 사이트들도 참고하세요!
[논문 사이트]
- awesome-deep-learning-papers 2012년부터 2016년까지 발표된 논문 중 다양한 연구에 활용할 수 있는 획기적인 딥러닝 논문 100편을 정리한 깃허브 레포지토리입니다. https://github.com/terryum/awesome-deep-learning-papers
- Papers You Must Read (PYMR) 고려대학교 DSBA 연구실에서 선정한 데이터를 공부할 때 필독 해야 하는 논문 리스트입니다.
- 딥러닝뿐만 아니라 데이터마이닝, 앙상블 같은 머신러닝 논문도 포함하고 있습니다. https://www.notion.so/c3b3474d18ef4304b23ea360367a5137?v=5d763ad5773f44eb950f49de7d7671bd
- Browse State-of-the-Art 각 분야 별 SOTA 논문 리스트, 저자가 게시한 깃허브 링크도 함께 업로드되어있습니다. https://paperswithcode.com/methods
- 아직 학회에 발표되지는 않았지만 최신 논문을 볼 수 있는 사이트 https://arxiv-sanity-lite.com/
- ML subreddit (https://www.reddit.com/r/MachineLearning/)
- ML/DL 콘퍼런스 : NIPS/ICML/ICLR
논문 제목(title)
Attention is all you need ("어텐션이 필요한 전부다")
도표(figures)
초록(abstract)
우세한 sequence 변화 모델들은 인코더와 디코더를 포함하는 복잡한 순환 신경망 또는 convolutional neural networks 들을 베이스로 합니다. 최고가 성능을 발휘하는 모델은 어텐션 메커니즘을 통해 인코더와 디코더를 연결합니다.
우리는 새로운 간단한 네트워크 아키텍처인 트랜스포머를 제안합니다.
도입(introduction)
rnn, lstm, grn 등은 한 번에 한 단어씩 넣는 방식으로 정렬 후 반복적으로 입력했고 그때마다 히든스테이트 갱신했습니다. 토큰의 개수만큼 뉴럴 네트워크 입력했으므로 당연히 병렬적으로 할 수 없었습니다. 문장의 길이만큼 입력을 수행하기 때문에 메모리와 시간의 문제가 있습니다. 어텐션 메커니즘을 활용하면서 가중치가 적용된 히든 스테이트를 사용했습니다. 다만 이런 어텐션도 rnn이랑 같이 사용하는 경우가 다반사였습니다. 즉 트랜스포머는 recurrence를 완전히 없애버렸습니다. (완전히 어텐션 메커니즘에만 의존) 한 번에 행렬곱으로 가능합니다. (순차적으로 입력하지 않아도 괜찮아서 병렬처리 가능)
결론(conclusion)
기존까지와는 다르게 전적으로 어텐션 메커니즘만 사용했고 높은 병렬성과 성능 개선이 뛰어납니다.
기존까지의 기계번역보다 훨씬 더 뛰어나고, 다른 번역에 대해서도 사용할 수 있는 우수성을 보입니다.
요약
Transformer는 Attention mechanism만을 사용하여 recurrence 구조를 완전히 없애고 한 번에 계산할 수 있도록 합니다.
Attention Is All You Need 생각 정리
저자가 뭘 해내고 싶어 했는가?
- 순차적 연산을 줄이는 것
- 시간과 메모리를 단축
- RNN구조의 비효율성 제거
- 시퀀스 간 변형이 가능한 네트워크 구축
이 연구의 접근에서 중요한 요소는 무엇인가?
- Attention 메커니즘을 3번 활용함 (self, mask, encoder-decoer)
- RNN이나 CNN을 전혀 사용하지 않음
- Recurrence 구조를 없애서 한 번에 가능한 병렬 계산 처리
- query와 key가 같은 차원을 유지하게 해서 계산을 가능하게 함
- 마스크를 통해서 마이너스 무한이 되도록 해서 각각의 단어가 앞부분에 대해 참고할 수 있도록 함
- multihead를 수행한 후에도 차원이 동일하게 유지
- positional encoding을 통해서 각 단어의 상대적인 위치 정보 입력 (RNN 대신)
- self attention (레이어 계산 복잡도 감소 / 병렬처리 가능 / long-range dependencies 처리)
당신(논문독자)은 스스로 이 논문을 이용할 수 있는가?
- 기계번역에 튜닝해서 사용할 수 있을 것 같음
- 특히 지금 진행하는 번역 프로젝트에 적합한 모델이라고 판단됨
- Transformer와 기존 RNN모델을 비교해서 성능의 차이를 판독할 수 있을 것 같음
당신이 참고하고 싶은 다른 레퍼런스에는 어떤 것이 있는가?
[어텐션 메커니즘]
Attention Mechanism in Neural Networks: Where it Comes and Where it Goes
[Seq2 Seq]
Sequence to Sequence Learning with Neural Networks?
[RNN Encoder-Decoder]
Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation
요약
오늘날 기계번역의 시초가 되는 Transformer 논문을 읽으면서 이전에는 어떤 방법을 사용했는지, 그리고 왜 Transformer가 혁신적인 논문인지 알았다. 앞으로의 기계 번역은 Transformer를 뛰어넘겠지만 베이스에 있는 이 논문은 잊히지 않고 계속 사용될 것 같다.
이렇게 논문을 읽어봤는데요.
이 깃허브 코드를 통해서
제주도 번역 프로젝트에 참고할 계획입니다!