한빛출판네트워크

컬럼/인터뷰

자연어 처리 딥러닝의 잔뼈가 굵은 남자 - 김기현

한빛미디어

|

2019-07-11

by 한빛

저자 인터뷰 - 김기현

미리보기

이 책은 자연어 처리 기초부터 심화까지 파이토치를 활용하여 짜임새 있게 설명합니다. 제가 현업에서 시스템을 구현하며 얻은 경험과 인사이트를 최대한 담았습니다. 자칫 지루할 수 있는 수학적 이론을 최소화하고 실전에 꼭 필요한 개념을 정리했습니다. 최신 딥러닝을 활용한 기술뿐만 아니라, 딥러닝 이전의 전통적인 방식도 차근차근 설명하여 왜 지금의 기술이 필요하고, 어떤 부분이 성능 개선을 이끌어냈는지 쉽게 이해할 수 있습니다.

자연어처리 딥러닝 책을 집필하게 된 이유를 들려주세요.

자연어 처리는 그 필요성에 비해 자료가 너무나도 부족한 것이 사실입니다. 꼭 대학교/대학원이 아니더라도 체계화된 공부 자료가 있었으면 좋겠다는 생각이 많이 들었습니다. 특히 유튜브와 같은 미디어 공부 자료들이 넘쳐나는데 반해, 도서들은 딱히 체계화된 자료들이 없어 안타까웠습니다. 또한 기존의 자료들은 자연어 처리 관점보다는 딥러닝 관점에서 알고리즘들을 접근하고 설명한 점도 아쉬웠습니다. 이러한 아쉬운 부분들을 모아 자연어 처리 관점에서 독자분들에게 기본기부터 심화 내용들까지 전달해 드리고자 책을 쓰게 되었습니다.

이 책에서 가장 중점적으로 기술한 부분은 어떤 부분 일까요?

자연어 처리 전반에 걸쳐 책을 기술하였는데, 특히 딥러닝에서 꽃을 피운 자연어 생성 기법에 대해 실전을 방불케 할 정도로 매우 자세하고 깊게 다루고 있습니다. seq2seq의 적용에서부터 실제 서비스를 위한 빔 서치 최적화, 성능 향상을 위한 여러 가지 기법 등을 총망라했습니다.

이 책과 함께(또는 미리) 보면 좋은 책이나 온라인 자료가 있다면 알려주세요.

이 책은 딥러닝을 처음 접하시는 분에게는 조금 어려울 수 있습니다. 따라서 미리 딥러닝에 대한 기초지식(역전파 알고리즘 등)을 쌓고 이 책을 시작하시기를 권합니다. 또한 워낙 발전이 빠른 분야인 만큼, 새롭게 추가되는 기술들에 대해서는 저자의 깃북(https://kh-kim.gitbook.io/natural-language-processing-with-pytorch/)에서 계속해서 다루고 추가해 나갈 계획입니다.

패스트캠퍼스에서 [자연어처리를 위한 딥러닝 CAMP]나 [PyTorch를 활용한 자연어처리 심화 CAMP] 강의를 들은 사람이 이 책을 읽어도 괜찮을까요? 반대로, 이 책을 읽은 후에 강의를 들으러 가도 괜찮을까요?

오히려 강의를 듣고 나신 후나, 강의를 들으시기 전에 읽어주시면 더욱 좋을 것 같습니다. 현장의 강의에서 얻을 수 있는 지식들도 많지만, 책을 통해서 차근차근 얻을 수 있는 지식도 많기 때문에, 둘이 더해지면 더 큰 시너지가 날 것이라 생각 됩니다. 특히 어려운 내용들을 많이 다루고 있는 만큼, 강의에서 바로 이해하고 따라잡기 어려울 수 있기 때문에, 책을 통해 예/복습을 한다면 훨씬 큰 도움이 될 것 입니다.

같은 주제의 타 도서들과 비교했을 때 이 책만의 강점은 무엇인가요?

어디서도 볼 수 없는 내용으로 채우고자 노력했습니다. 예를 들어 대부분의 도서가 딥러닝에 대해 역전파 알고리즘을 중점적으로 서술하는 데 반해, 제 책은 그러한 부분들은 과감히 생략하고 다른 책에서 볼 수 없는 내용을 담고자 했습니다. 또한 기본에 충실하고자 배경지식이나 이론 등도 소홀히 하지 않고 다루었습니다. 그리고 다수에 걸친 강의 경험을 바탕으로 좀 더 체계적이고 독자들의 입장에서 내용을 구성했다고 자부합니다.

한편, 이 책은 최근 호평을 받고 있는 한빛미디어의 ‘소문난 명강의’의 세 번째 시리즈 도서이기도 합니다. 단기간에 실무 능력을 갖추도록 도와주는 콘셉트의 ‘소문난 명강의’ 시리즈는 유튜브, 블로그, 학원, 대학, 온/오프라인 강좌 등에서 이미 검증된 강의 본연의 장점을 극대화하고 더 체계화하여 책으로 담아내고 있습니다. <오준석의 안드로이드 생존코딩>과 <레트로의 유니티 게임 프로그래밍 에센스>에 이어 세 번째 시리즈 도서로 출간된 이 책은 자연어 처리 입문 내용부터 심화까지 단계별로 차근차근 설명하여 실전 능력을 키울 수 있도록 도와줍니다.

NLP 학습을 위한 기초로 미리 익혀두어야 하는 지식이나 기술이 있다면 무엇일까요?

너무나도 당연한 이야기일 수 있지만, 기초 수학과 코딩 실력이 탄탄하다면 금방 따라잡을 수 있을 것 같습니다.

딥러닝 기반 NLP를 구현할 때 가장 까다로운 부분을 꼽는다면?

딥러닝의 적용 유무에 상관없어, 당연히 전처리가 가장 까다로운 부분이 될 것 같습니다. 전처리는 언어적인 도메인 지식이 가장 많이 필요한 부분입니다. 따라서 경험과 노하우에 많이 의존하게 되는 것 같습니다. 물론, 점차 딥러닝에 의해 전처리의 중요도가 조금씩 낮아지고는 있습니다.

하지만 최신의 기술이 모두 공개되고 공유되는 현 상황에서 시장의 플레이어들은 거의 비슷한 수준의 알고리즘을 사용하고 있을 것이고, 결국 최종적으로 성능을 가르는 원인은 데이터의 양과 품질에 있음을 생각한다면 전처리의 중요성은 아무리 강조해도 부족하지 않을 것입니다. 저도 처음 일을 시작했을 때 수년 동안 전처리를 맡아 업무를 수행한 경험이 있습니다. 그때의 경험을 살려 이 책에서는 전처리 챕터를 따로 두고 이와 관련된 내용을 정리합니다.

한국어와 영어 NLP의 차이점은 무엇인지 궁금합니다.한국어와 영어의 전처리 과정도 어떻게 다른지 설명해주세요.

언어적 특성에 따라 한국어와 영어의 차이는 매우 큽니다. 전처리는 물론이고 언어모델에서도 성능 차이가 날 수밖에 없습니다. 교착어라는 특성상 어순이 매우 불규칙할 수밖에 없고, 띄어쓰기도 제각각이므로 매우 불리합니다. 특히 띄어쓰기가 아직 제대로 자리잡지 못한 한국어의 특성상 전처리 과정이 영어에 비해 좀 더 복잡할 수밖에 없는데요. 띄어쓰기를 형태소 분석기 등을 통해 먼저 통일해주어야 하는 추가적인 과정이 생깁니다.

다행히 표제어 추출과 같은 방법은 딥러닝을 통해 효과적으로 희소성을 해소하게 되면서 더 이상 널리 쓰이진 않습니다. 하지만 전처리 이후의 딥러닝 알고리즘 적용에 대해서는 언어에 따른 큰 차이를 보이지 않습니다.

앞으로도 자연어 처리 분야는 새로운 기술이 계속해 쏟아져 나올 텐데요, 그와 관련한 최신 동향이나 신기술에 대한 정보를 확인할 수 있는 추천 사이트가 있다면 소개해주세요.

컴퓨터 공학 분야는 예전부터 발전 속도가 워낙 빨라서 저널보다는 컨퍼런스 위주로 발전해온 분야입니다. 하지만 딥러닝에 이르러 그 발전속도가 가히 폭발적으로 높아지면서 컨퍼런스조차 그 속도를 쫒아오지 못하는 상황에 이르렀습니다. 다행히 ArXiv를 통해 우리는 더욱 빠르게 최신 기술을 습득할 수 있게 되었는데요.

하지만 덕분에 정보의 홍수 속에서 진흙 속의 진주를 가려내는 일은 더욱 어려워졌습니다. 따라서 해외나 페이스북의 딥러닝 커뮤니티 등을 주의깊게 살펴보며 트렌드를 읽어야 합니다. 저 역시 너무나 빠른 딥러닝의 발전 속도 앞에서 집필을 완료하기가 매우 어려웠는데요. 이번 책에 담아내지 못했던 내용을 계속해 공유하고 논의하는 자리를 만들고자 온라인 깃북을 운영하고 있습니다. 독자분들께서도 제 책 뿐만 아니라 온라인의 깃북도 참고하시면 좋겠습니다. 깃북 주소: https://kh-kim.gitbook.io/natural-language-processing-with-pytorch/

이 책 외에, 이후 저자님이 추가로 집필이나 번역을 계획 중인 책이나 주제가 있다면 살짝 귀띔해주실 수 있을까요?

이번에 출판한 책을 계속해서 보완해 나가고 싶은 마음이 큽니다. 사실 지면의 부족함으로 인해 미처 담지 못했던 기초 내용을 더 보완하고, 어려운 내용도 자세히 풀어써서 이해하기 쉽게 설명하고 싶습니다. 또한 새로운 기술들도 담을 수 있으면 좋겠군요. 추후에 만약 기회가 된다면 현재 제가 업무를 진행하고 있는 제조/산업 분야의 AI에서 중요하게 쓰이는 내용들을 정리하여 책으로 엮어보고 싶기도 합니다.

독자 여러분께 하고 싶은 말씀이 있으신가요? 마지막으로 한 마디 부탁드립니다.

저도 딥러닝 시대 이전에 학교를 다닌지라, 학교에서 배운 내용들이 아닌, 실제 업무를 수행하며 공부해왔습니다. 따라서 계속해서 공부해오던 입장에서 체계적이지 못했던 공부 방식과 부실한 자료로 인해서 많은 어려움을 겪었던 기억이 납니다. 지금 돌이켜보니 좀 더 쉽게 갈 수 있었던 길에 대한 아쉬움이 많이 남아 그때 당시의 저에게 들려주고 싶은 내용들을 모아 책으로 전달하고자 했습니다. 독자분들이 딥러닝을 좀 더 깊이있게 공부하고자 하실 때, 제 책이 조금이라도 도움이 되었으면 합니다.

댓글 입력