안녕하세요, <위클리 NLP>를 쓰고 있는 박지호입니다.

벌써 글을 연재하기 시작한지 1년이 지났네요. 사실 첫번째 글인 매주 <15분 투자해서 AI/NLP를 공부하는 방법>을 2020년 4월 29일에 업로드했을 때에는, 생소하고 전문적인 분야이기 때문에 얼마나 많은 사람들이 제 글에 관심을 가질까 했었습니다.

여러분이 많은 관심과 공유를 해주신 덕분에 현재는 구독자 수가 2700명에 육박하였으며, 블로그에 1년간 2만5천여명의 방문자와 4만2천 뷰를 기록하게 하게 되었습니다. 고맙습니다!

<위클리 NLP>를 쓴지 1년이 지난 기념으로 구독자 분들께 여러 질문을 받아보았습니다. 지금까지 다루었던 주제에 대한 것도 좋고, 새로운 주제여도 괜찮고, NLP 뿐만 아니라 글쓰기나 개발이나 커리어에 대한 질문도 있으시다면 좋다고 하였더니 감사하게도 많은 분들이 질문을 주셨습니다!

그 중에서 특히 여러 분들이 공통적으로 궁금해하신 것들을 몇 가지 뽑아 보았습니다. (모든 질문에 답을 못 드리는 점은 양해 부탁드립니다..)

NLP를 더 깊게 공부하려면 무엇을 어떻게 준비해야 할까요?

임찬, 포카리수액, 미디어헤븐, 온 님

<위클리 NLP>를 넘어서 더 깊게 공부하시고 싶은 분들이 있다니 너무나 기쁩니다! 글을 입문자를 타겟으로 하고 쓰고 있기 때문에 깊이가 조금 아쉽다는 피드백도 있었는데요. 그래서 더 깊게 보시고 싶으신 분들을 위해 최대한 레퍼런스를 넣으려고 노력 중 입니다.

영어

가장 중요한 것은 "영어"라고 하고 싶어요. 어느 분야든 마찬가지겠지만 전세계적으로 유통되는 전문적인 지식은 전부 영어로, 논문이라는 형태로 공유됩니다. 그렇기 때문에 지식을 쌓는 속도와 양을 늘리려면 영어 실력이라고 생각합니다.

하지만 영어 실력이 단시간에, 그것도 전문적인 글을 읽는 것은 쉽지가 않죠. 그러기 위해서는 단계적으로 다양한 전문적인 글을 읽으시는 것을 추천합니다. 예를 들어, 한글로 된 위클리 NLP를 읽고 난 후, 같은 주제를 설명한 영어 블로그를 구글링해 찾아 읽어보고, 그 이후에는 원 논문까지 읽어보는 식으로요.

프로그래밍

파이썬(Python)을 공부하세요. 최근 머신러닝/딥러닝은 거의 파이썬을 프로그래밍 언어로 사용합니다. 파이썬은 C++/자바보다 문법이 간결하기 때문에 프로그래밍에 입문하기도 정말 좋다고 생각합니다. 게다가 spaCy, nltk, Pororo(한글) 등 많은 NLP 라이브러리가 있습니다.

딥러닝 라이브러리도 여러 가지가 존재하는데, 저는 처음에는 제일 쉬운 걸로 해보시는 것을 추천합니다. 저는 텐서플로우(Tensorflow) 기반의 케라스(keras) 또는 파이토치(Pytorch) 로 입문을 했었습니다.

그 이외에 알면 좋은 것들 (특히 컴퓨터공학 비전공자 분들)이라면 SQL입니다. 데이터가 데이터베이스(DB) 어떻게 저장되고, 빠르게 원하는 데이터를 불러올 수 있으면 큰 장점이 됩니다.

물론 좋은 머신러닝(ML)/NLP 엔지니어가 되고 싶은 분들은 소프트웨어 엔지니어링을 깊게 공부하시는 것이 좋다고 생각합니다.  ML 시스템 개발은 그저 이론적 지식으로만 되는 것이 아닙니다.

수학

ML을 처음 공부하면 수학이 정말 제일 어렵죠. 선형대수, 미적분이 엄청 나오고 확률과 통계 등. 저도 가끔 논문에 수식이 많으면 겁먹습니다.

제일 중요한 것은 탄탄한 확률/통계과 선형대수 기초라고 생각합니다. 그 외의 이론은 물론 전부 이해할 수 있으면 가장 좋지만, 현실적으로 쉽지가 않습니다. 머신러닝의 원리를 개념이라도 직관적으로 이해하는 것이 중요합니다. 예를 들어, 비용 함수 가 무엇을 하는지, word2vec은 어떤 원리로 학습이 되는지 이해하는데 모든 수학적인 이론을 전부 완벽히 이해할 필요는 없다고 생각합니다. (제가 글을 쓸 때 최대한 직관적으로 쓰려고 노력하는 이유도 저 자신의 이해를 높이기 위한 의도도 있습니다)

코세라(coursera)에 나오는 앤드류 응 교수님의 Machine Learning 기초 또는 김성훈 교수님의 모두를 위한 머신러닝/딥러닝을 들어보는 것을 추천합니다.

NLP 기초

위클리 NLP 외에 좀 더 깊게 공부하고 싶은 분들, 특히 뭔가 커리큘럼을 따라가고 싶으신 분들을 위해 제가 보았던 몇 가지 튜토리얼을 추천합니다.

  1. 스탠포드 대학의 크리스 매닝(Chris Manning) 교수의 NLP with Deep Learning

2017, 2019년 강의 영상은 전부 유튜브에, 강의 노트는 웹사이트에 공개되어 있습니다.

2. 뉴욕 대학의 조경현 교수님의 강의 자료, 튜토리얼

제가 가장 많이 본 자료는  Natural Language Understanding with Distributed Representation, 웹사이트에는 최신 자료 공개가 되어있음.

NLP 심화

이 이상의 수준은 논문이나 학회 자료를 보는 수 밖에 없다고 생각합니다. 물론 이러한 것들을 소화한 다양한 블로그, 스터디, 튜토리얼 자료들도 있습니다만, 사람마다 보고 싶은 주제가 다르기 때문에 항상 원하는 게 없을 수도 있습니다.

나중에 논문 읽는 방법에 대해 글을 써봐도 어떨까요? 관심이 있으실라나..

NLP를 공부하거나 관련된 일을 하려면 대학원을 가야하나요?

포카리수액, 영락태왕 님

정답이 없는 질문이라고 생각합니다. 저는 대학원에서 석사 과정을 2년 했지만, 대학원이 모든 사람을 위한 것은 아니라고 생각합니다. 오히려 학위가 중요한 것이 아니라 연구라는 행위를 하면서 사고하는 방법을 배우는 것이 중요하지 않나 싶습니다.

박사 학위가 있어도 가설을 세우고 이를 증명하기 위한 실험 조차 설계 못한 사람도 보았습니다. 반대로 학사 학위만 있어도 새로운 아이디어를 확실하게 검증하는 실험을 만들고 설득력 있는 결과도 만들어내는 분들도 보았습니다.

참고로 제가 현재 다니고 있는 구글에서는 일할 때 상대방이 어떤 학위가 있는지 알기가 쉽지 않습니다. 그냥 그 사람이 생각하는 방식과 만들어내는 결과물을 보고 평가할 뿐이죠.

그렇기 때문에 "대학원을 가야 되나?" 라는 질문보다는 "내가 지금 성장하기 위해서 있어야 하는 환경이 어딜까?"가 아닐까 싶습니다. 사람마다 현재 처한 상황도 다르기 때문에 하나의 정답이 있지 않다고 생각합니다.

(물론 교수나 연구원이 되고 싶으시면 박사가 절대적으로 필요할지도 모르겠습니다. 지원 요건을 충족시켜야만 하는 경우가 있으니깐요)

처음 한 NLP 연구에 대해서 좀 더 알려주세요.

김데린, Liz 님

Week 33 에서 잠깐 언급하였지만, 저는 트위터 관련하여 감성 분석, 혐오 발언에 대한 연구를 하였습니다. 제가 속해있던 연구실은 텍스트나 음성 데이터에서 사람의 감정을 읽어내는 기계를 만들자는 거창한 목표를 가지고 있었습니다. 그래서 몇몇 동료들은 대화 시스템을, 저는 감성 분석에 대한 연구를 하였고요.

처음에 이러한 연구를 시작한 계기는 정말 우연이었습니다. 당시에 처음으로 혐오 발언에 관련된 워크샵이 ACL에 열렸었고, 그 때 함께 풀어보자는 혐오 발언 문제에 대한 데이터 셋이 공개되어 저는 그저 초심자의 마음으로 연구를 시작했고요.

처음에는 오히려 딥러닝을 배우기 위한 연습을 해보자는 마음으로 문제를 접근했었는데요. 그러한 공돌이적인 마인드로 접근했는데, 정작 뚜껑을 열어보니 굉장히 사회학적인 인사이트가 중요한 주제였습니다. 그 때 데이터 셋을 구축하고 워크샵도 주최한 영국의 박사 분이 인상에 남는데, 이 문제에 대한 굉장한 사명감을 가지고 사회학도 열심히 공부하던 분이었습니다.

그렇게 얼떨결에 첫 논문을 이 워크샵에 내고 기대 외의 주목을 받았습니다. 혐오 발언 문제에 처음으로 딥러닝을 적용한 논문이었거든요. 저는 당시에 연구의 수준이 너무 낮은 거 같아 논문을 내지 않으려고 했었는데, 현재는 제 논문 중에 가장 인용 수가 많이 달리고 있는 연구가 되었습니다. (그래서 뭐든 세상에 빨리 공개해 피드백을 받는게 중요하다고 느낍니다. 감히 혼자서 자기를 판단하기보다는..)

그 이후에는 딥러닝 모델이 이러한 데이터 셋을 학습 했을 때 문제가 있다는 것을 발견하였고, 이를 분석하기 위한 방법을 제시하는 연구를 한 후 석사 과정을 마무리하였습니다.

저는 요즘 같이 인터넷을 통해 분열된 사회에서 이 문제가 굉장히 중요하다고 생각합니다만, 엔지니어들만의 힘으로 풀 수는 없다고 생각합니다. 사회학, 심리학 등 다양한 분야의 전문가들이 머리를 맞대야 하지 않을까 싶습니다. 지금은 이러한 사회학적인 문제를 기술로 직접적으로 푸는 일을 하고 있지는 않지만, 언젠가는 꼭 다시 해보고 싶네요.

(저의 석사 때의 논문 리스트는 Google Schlar에서 확인하실 수 있습니다)

구글에서 하는 일이 무엇인가요? 어떤 일상을 가지고 계신가요?

김명규, 양경택(헥터스) 님

저는 구글 어시스턴트(Google Assistant) 도쿄 팀에서 컴퓨터 언어학자로 하고 있습니다. 좀 더 세부적으로 보면 자연어 이해(natural language understanding) 팀입니다. "OK Google"하고 유저가 말하자고 하는 것을 기계가 알아들을 수 있는 형태로 바꾸는 모델을 개발하는 일을 하고 있습니다.

현재 일본에 있지만, 제가 하고 있는 일은 하나의 언어에 종속되지 않습니다. 특히 구글 어시스턴트가 지원하는 언어가 15개 이상이기 때문에 그런 식으로 일을 할 수가 없습니다. 그렇기 때문에 항상 언어에 종속되지 않은 방식으로 코드와 모델을 써야하는 것이 가장 큰 챌린지이기도 합니다.

컴퓨터 언어학자라는 포지션을 가지고 있지만 하는 일은 소프트웨어 엔지니어와 비슷합니다. 데이터 파이프라인을 만들어 코드 리뷰를 받고, 처리한 데이터로 모델을 학습하고 실험 보고서를 씁니다. 구글은 미팅이 굉장히 많고 이메일이나 보고서 등 글도 많이 써야 합니다. 특히 캘리포니아 본사 팀과 미팅 덕분에 아침 일찍부터 일을 시작하는게 많네요.

일상은 아쉽게도 작년 3월부터 코로나 때문에 오피스가 닫았기 때문에 계속 재택 근무 중입니다. 저도 시부야에 있는 새 오피스에 2달 밖에 가보지 못해 너무나 아쉽습니다. 특히 밥이 너무 맛있었는데요. 어서 백신이 빨리 보급되어 출근하는 그 날을 기대합니다.

주제는 어떻게 정하시나요? 글을 계속 쓰는 원동력이 궁금합니다.

전시형, 준무 님

처음에는 one-hot vector 에서 기초를 빌드업하는데 초점을 두었습니다. RNN, 언어 모델, BERT나 GPT 같은 최신 모델까지 오는데 약 30개의 글이 걸렸네요. 제가 NLP를 공부하면서 쌓아온 지식을 의식의 흐름으로 정리해본 것이었습니다. 처음에는 제가 가진 지식을 글로 DB화, 포트폴리오화를 하고 싶다는 욕구가 꽤 컸던 것 같습니다. 일종의 지식 자본을 모은다고 할까나요. 오히려 이렇게 많은 구독과 호응을 얻을 것이라고 생각도 못하였습니다.

그러고 나서 2021년에서는 기초가 어느정도 커버가 된 것 같다고 판단해 방식을 바꾸었습니다. 조금은 더 긴 호흡이지만 독자 분들이 관심이 있을 법한 주제들을 픽업하려고 합니다. 특히 이루다 챗봇 같이 화제가 되는 것이 있으면 이러한 주제를 가지고 시리즈로 연재를 해보았습니다.

앞으로는 좀 더 NLP가 우리가 사는 세상에 어떤 영향을 끼치고 어떻게 응용되고 있는지에 대해 써보려고 합니다. 항상 고민하는 것이 "아는 지식과 기술을 어떻게 좋게 써먹을 수 있을까"인데, 이에 대한 제 나름의 탐색 과정을 글로 여러 독자분들과 함께 풀어보려고 합니다. 특히 요즘은 다른 연구/개발자분들과 협동 컨텐츠도 시도하고 있는데, 이러한 것도 제 얕은 지식에서 더 넓혀 나아가기 위한 위한 노력이라고 봐주시면 감사하겠습니다.

오프라인 강의나 코딩을 포함한 튜토리얼을 하실 생각은 없나요?

많은 분들이 전부터 질문을 주셨습니다. 사실 하면 좋겠다는 생각은 하지만 시간이 없어서 못하고 있습니다. 특히 코딩이 포함된 NLP 튜토리얼은 이미 저보다 훨씬 더 훌륭하신 분들이 책이나 튜토리얼로 내주셨습니다. 예를 들어, 최근 제가 어머니와 AI 교육 관련 책을 출판하였는데 같은 출판사에 나온 텐서플로 2와 머신러닝으로 시작하는 자연어 처리 같은 책도 있더군요.

오프라인 강의 역시 비슷한 맥락에서 고민이 많습니다. 다만 최근에는 카카오에서 제 모델 중심에서 데이터 중심 AI 글을 보시고 이 주제로 테크 톡을 해달라고 요청해주셔서 좀 더 내용을 보강하여 온라인으로 세미나를 하기도 하였습니다. 혹시라도 이러한 요청이 더 있다면 더 많은 분들과 소통하는 기회가 있으면 좋을 것 같습니다.

Note: 질문하신 분들 중에 3분께 커피 기프티콘을 쏜다고 하였는데, 잘 읽어보니 학생이라고 소개하신 분도 딱 3분이었습니다: 포가리수액, 온, 김데린 님께 잘 전달하도록 하겠습니다!

다른 궁금한 점이나 피드백이 있다면 댓글로 남겨주세요!