Link
11-28 23:35
«   2020/11   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          
Archives
Today
1,731
Total
1,176,303
관리 메뉴

꿈 많은 사람의 이야기

왜 나는 자연어처리(NLP) 논문을 읽게 되었는가? - ELMO, Transformer, BERT부터 XLNet, ALBERT, RoBERTa, ELECTRA까지NLP 논문 후기 본문

deep learning(딥러닝)

왜 나는 자연어처리(NLP) 논문을 읽게 되었는가? - ELMO, Transformer, BERT부터 XLNet, ALBERT, RoBERTa, ELECTRA까지NLP 논문 후기

이수진의 블로그 이수진의 블로그 2020. 9. 28. 13:34

포스팅 개요

이번 포스팅은 최근에 제가 읽게되었던 딥러닝 분야의 자연어 처리(NLP) 논문을 읽고난 후기입니다.

어떠한 계기로 자연어처리 논문을 읽게 되었는지, 무엇을 배울 수 있었고 목표를 달성한 지금 어떤 기분인지 등을 정리하고자 합니다.

비록 보잘것 없는 경험이지만, 이 경험이 자연어처리 공부에 관심 있으신 분들에게 도움이 되었으면 좋겠습니다.

본문 내용는 본인에 대한 후기 내용이어서 ~습니다 식으로 작성하지 않고 '다, 까' 형식으로 작성하였습니다.


포스팅 본문

2020 7 . 나는 하나의 결정을 하게되었다. 가뜩이나 여러가지 일로 힘든 상황이었고 바쁘기도 했지만 그래도 해야한다 라는 생각이 들었다. 그건 바로 자연어처리(Natural Language Processing; NLP) 논문 읽기였다.

왜 나는 갑자기 NLP 논문 읽기에 꽂혔을까? 그리고 장장 2개월의 시간동안 하루 1시간씩 투자하며 공부를 하게 되었을까?

오늘은 이것을 정리하고자 한다.

인스타에 남긴 자연어처리 논문 후기들 (인스타 : leesoojin_go)

 

그때 당시 무슨 생각으로 NLP 논문을 읽기 시작했는가?

당시에 스터디로 NLP기초반을 마무리 지은 상태였다. 사실 NLP 기초반은 이번이 처음이 아니다. 기본적인 RNN, LSTM 영역의 공부는 작년에도 내가 스터디 리딩을 하면서 공부했던 부분이다. (NLP가 재밌어서 취미로 공부했었다)

근데 거기서 스터디를 같이 진행한 한 분이 굉장히 의욕넘치게 여기서 끝나지 않고 다음 논문을 공부할 것이라고 하셨다. 그리고 같이 할 스터디원을 구했다.

당시에는 난 전혀 할 생각이 없었다. 왜냐하면 스터디가 쉽지 않았기 때문이고 당시에 이것저것 너무 힘들었다. 무엇보다 우선순위에 NLP는 없었다.

 

그러다가 문득 이런 생각이 들었다.

" 또 RNN, LSTM만 하고 내 자연어 처리 공부는 여기서 끝나네?"

 

이 생각이 들면서 머리가 멍해지는 기분이었다. 지금 자연어처리(NLP)쪽은 BERT니 GPT 모델이니 이러면서 시끌시끌하고 있다. 근데 정작 나는 NLP쪽을 취미로 공부한다면서, 재밌다고 말하면서

RNN, LSTM의 구조에서 벗어나지 못하고 아직도 Transformer도 제대로 이해를 못하는 수준이었다.

그리고 왜 그랬던 것인지는 알고 있다. 그냥 두려웠다. 뭔가 단순히 어려워 보였기 때문이다.

"굉장히 한심하다는 생각이 들었다."

또한 마침 당시에 추천 시스템(Recommender System) 프로젝트를 진행하면서 자연어 처리쪽 아이디어(Sentence Embedding, 혹은 Document Embedding)가 필요하기도 했으며 Sequential based RecSys 논문들을 읽다가 Transformer 구조를 이용한 방법도 보게 되었다.

 

그래서 이번 기회에 그래? 한 번 읽어보자! 라는 생각으로 자연어처리 논문 listup을 하게되었고 논문을 쭉 읽게 되었다.

아, 스터디는 하지 않았다. 짐처럼 느껴지기 싫었기 때문이다. 단순히 내 흥미로, 재미로 읽고 싶었다.

 

자연어처리 논문 중 어떤 논문을 선정했는가?

NLP 논문에는 굉장히 많은 논문이 있다. 그러나 이 모든 논문을 읽기에는 현실적으로 불가능하다는 것을 알았기에 굵직한 논문만 읽기로했다. 자연어처리 연구 영역에서 획을 그었던 모델을 위주로 보았다. 그것에 대한 참고는 카카오브레인의 2020년 NLU 트렌드 글(www.kakaobrain.com/blog/118)을 참고했다.

결국 내가 선정한 자연어처리(NLP) 논문 리스트는 아래와 같다. 

  • ELMo
  • Attention is all you need(Transformer)
  • GPT-1
  • BERT
  • GPT-2
  • Transformer-XL
  • XLNet
  • RoBERTa
  • ALBERT
  • ELECTRA (원래는 SentenceBert)

어떻게 공부했나?

위의 정리처럼 총 10편의 논문을 읽었다. 논문은 하루에 1시간씩 투자했다. 회사 업무를 시작하기 전(회사에 좀 일찍 출근해서) 혹은 퇴근 후에 집에서 읽는 방법으로 읽었다.

물론 본인의 머리로는 이해가 안가는 부분이 많아서 여러 블로그의 글을 많이 보았다. 보통 이런 참고 글들은 출근길 지하철에서 읽으면서 왔다. 특히 핑퐁팀의 글이 많이 도움 되었었다. 이런 잘 정리된 글들 너무 좋다 ㅎㅎ

즉 공부한 시간을 정리하면

  • 짜투리 시간을 활용
  • 출근 길 지하철(잘 정리된 블로그 글 읽기)
  • 일찍 출근 후, 업무시간 전 1시간 논문 읽기 or 퇴근 후 집에서 읽기
  • 1주일에 1편을 목표로 읽었음

이 될 것 같다. 이렇게 2달 반 동안 읽었다.

이렇게 한 이유는 Main 업무가 따로 있고 추천 시스템 쪽 논문도 읽어야 하는 이슈, 스터디 준비도 해야하는 이슈등이 있어서 시간을 최대한 활용했다.

 

어떤 도움이 되었는가?

개인적으로 정말 많은 공부와 도움이 되었다. 정리하면 아래와 같다.

  • 자연어 처리 분야의 큰 흐름을 알게 되었다.
  • 말로만 듣던 BERT, GPT, Transformer를 조금이나마 이해할 수 있었다.
  • 특히, Transformer 구조는 현재 회사에서도 적용했을 만큼 아이디어를 얻을 수 있었다.
  • 그 외에도 NLP 모델을 활용해서 어떻게 아이디어를 도출할 수 있을지 고민할 수 있었고 논문을 읽으면서 NLP 쪽과 관련 없는 아이디어도 고민해볼 수 있었다.
  • 대략 반 년동안 고민하던 Document Embedding 부분에서 아이디어를 도출할 수 있었다. 실제 회사에서도 적용했다.
  • 무엇보다 NLP를 두려워 했던 것을 극복할 수 있었다. 

 

중간에 목표가 바뀌었는데 왜 바뀌었나? 또 T5, GPT-3과 같은 것은 왜 읽지 않았나?

사실 위에 작성한 listup 목록 중 초기 계획과 바뀐 부분이 있다. 원래는 Transformer-XL을 읽지 않고 XLNet을 읽으려고 했으며 ELECTRA 대신 SentenceBERT를 읽으려고 했었다. 왜냐하면 사실 SentenceBERT에서 아이디어를 따오기 위해  NLP 논문 리스트업을 했던 것이고 읽기 시작했기 때문이었다. 근데 왜 바뀌었을까?

  • Transformer-XL을 읽지 않고 XLNet을 이해하기 힘들었다. 그리고 이거 바꾼거는 매우 잘했다고 생각한다. (재밌는 부분도 있었고 ㅎㅎ)
  • SentenceBERT를 읽기전에 ALBERT를 읽을 때 쯤 고민하던 아이디어가 해결되었다! 실제로 회사에 적용하였고 이것을 기준으로 여러가지 테스트 중에 있다.
  • ELECTRA가 더 이슈가 컸었다. 현재 NLP 논문에서 ELECTRA는 무조건 읽어야 한다는 이야기도 들었었다.
  • T5, GPT-3는 현재 내 상황에 따른 ROI가 적절하지 않았다. 너무 TMI라 작성하진 않겠지만 시간 소모가 너무 컸고, 당장 더 급한 이슈가 터져서 이것부터 해야하는 상황이다.

 

앞으로의 계획은?

앞으로의 계획은 당연히 T5, GPT-3 논문을 읽어보는 것이다. 그리고 이번에 읽지 못했지만 SentenceBERT도 읽어볼 예정이다.

하지만, 현재 급한 것부터 하고! 진행할 것 같다.

그래서 당분간의 계획은 저 내용을 계속 복습하면서 머리속에서 잊혀지지 않게 하는 것이다.

시간이 지나면 또 까먹을 태니, 틈틈이 복습할 이번에 읽은 논문 내용을 복습하며 되새김 하고 있을 예정이다.

솔직히 블로그에 자연어 처리 논문 읽은 것들을 전부 하나하나 정리하고 싶은 계획도 있었다. 근데.. 어쩌다보니 인스타그램과 페이스북에만 정리하게 되었다. 왜냐하면 굳이 하나하나 꼼꼼이 정리하기 보다 요약 정리처럼 하고 싶었기 때문이다.

요약 정리를 하려고 하는데 블로그는 맞지 않다 싶어서 인스타그램과 페이스북에만 올렸다.

그러나 다음 논문들 몇 개는 블로그에도 꼭 올려보고 싶다.

 


맺음말

자연어 처리 논문 읽기는 개인적으로 굉장히 큰 도움이 되었다. 아는 만큼 보인다고 했던가? 그것을 느낄 수 있었던 부분이 있었다.

부디 다른 분들도 NLP를 두려워하지 말고 도전했으면 좋겠다.

 

4 Comments
댓글쓰기 폼