Practice. My Style of Reading Papers
다른 분야도 비슷하겠지만 데이터 과학, 머신러닝 및 인공지능 관련 연구/업무를 하다 보면 논문을 읽어야 할 때가 종종 있다. 단순히 최신 동향이나 기술을 익히기 위함도 있지만, 새로운 분야, 문제, 데이터를 만날 때마다 기존의 지식, 경험, 휴리스틱만으론 부족하거나 해결하지 못하는 경우가 있다. 잘 정리된 텍스트북이 있으면 좋겠지만 업데이트/리비전에 시차가 있어서 최신 기술이나 문제를 다루지 못하는 경우도 많다. 뿐만 아니라 텍스트북은 그 분야 전체를 종합적으로 다루는 경향이 있어서 당장 알고 싶은 내용이 부실하거나 책의 여러 파트에 쪼개져 기술돼있어서 빠르게 기술을 습득하기 어렵기도 하다. 물론 처음부터 끝까지 완독 하면 좋겠지만... (ㅠㅠ) 어렴풋이 알고 있는 개념을 확인하기 위해서 예전에 읽은 책을 다시 펼쳐보기도 하지만, 보통의 경우 최신 논문을 찾아서 읽는 게 더 편하고 일상적이다.
이 글은 내가 논문을 어떻게 찾아서 읽는지에 관한 나 자신의 논문 읽는 스타일을 적은 것이지 모두가 따라야 할 베스트 프랙티스는 아니다.
논문이 필요한 시점은 1) 그냥 최신 트렌드를 파악하고 따라가기 위해서, 2) 당장 업무/연구 주제가 잘 떠오르지 않아서 어떤 새로운/다른 일을 하면 좋을지 조사기 위해서, 3) 새로운 또는 개선해야 하는 업무 (문제와 데이터)가 주어졌는데 어떻게 해야 할지 감을 잡기 위해서 정도일 듯하다. 3번의 이유가 가장 많지만 이해가 안 될 수도 있지만 그냥 재미를 위해서 1과 2의 이유인 경우도 종종 있다. 당장 필요는 없지만 갑자기 유명해진 또는 새로 등장한 break-through 기술 관련 논문을 찾아서 수박 겉핥기식으로 읽는다.
논문을 어디서 어떻게 찾는가? 인터넷 이전 시대에는 논문집 (Journal)을 많이 보유한 도서관이 거의 유일한 대안이었다. 자신의 학교에 해당 저널을 구독하고 있지 않아서 다른 대학 도서관에 문의해서 논문을 구해서 보기도 했었다. 90년대 말에 연구실에 연구 참여를 했는데, 당시 박사 형들이 필요한 주제의 논문을 찾기 위해서 도서관에서 해당 분야의 논문을 많이 싣은 모든 저널을 뒤져봤던 기억이 여전히 또렷하다. 이후 인터넷, 특히 PDF 형태로 논문이 배포되면서 사정은 조금 나아졌다. 학교에서 ScienceDirect라는 곳과 계약돼있어서 대학원 초기에는 그곳이 주요 놀이터였다. 당장 필요한지도 모르면서 언젠가는 필요할 것 같으면 미리 파일을 다운로드하여서 디스크에 저장하며 샜던 밤이 여럿이다. 하지만 검색엔진, 특히 구글이 보편화되면서 사정은 많이 달라졌다. 요즘은 유명한 저널에 등록된 것보다는 그저 구글링을 통해서 검색되는 논문을 주로 읽는 편이다. 굳이 유료 사이트의 비공개 (유료) 논문은 읽지 않아도 공개된 논문들만으로도 충분하다. 특히 arXiv는 지식의 원천이다. (유료 사이트를 우회하는 방법은 일단은 불법이니 설명은 생략함)
특정한 기술이 필요할 때는 그걸 다룬 특정 논문을 찾아서 읽지만, 어떤 새로운 분야를 익혀야 할 때는 관련된 모든 논문을 찾아서 읽기 전에 우선 Survey (State of the Art) 논문을 찾아서 읽는 편이다. 서베이 논문의 장점은 이제껏 그 분야의 다양한 접근법을 모두 모아서 잘 정리해놨다는 점이다. 그리고 저자들의 관점에 따라서 그런 방법론들을 잘 체계화해놔서 초기에 그 분야 전체를 조망하기에 좋다. 하지만 많은 분야를 다뤄야 하기 때문에 특정 기술을 자세히 설명하지 않으므로 읽으면서 더 자세히 알아야 하는 기술/방법론은 Reference의 참고 논문을 추가로 읽는다. 서베이 논문이 없었다면 어떤 기술들이 존재하는지도 그리고 어떤 논문부터 읽어야 하는지도 모르고 막무가내로 찾아서 읽었을 텐데 그런 중구난방을 미연에 막아준다. 그러나 서베이 논문 한편에 의존하면 안 된다. 가능하면 여러 편의 서베이 논문을 읽고, 각 저자들만의 관점으로 정리한 쳬계를 비교하면서 읽고, 그리고 궁극적으로 자신만의 지식 체계 (taxonomy)를 만들어야 한다. 서베이 논문에서 발견한 다른 참고 논문도 읽고 또 그 이후에 나온 최신 논문들을 함께 읽으면서 자신의 지식 체계, 관점을 완성하지 못한다면 서베이 논문은 오히려 독이 될 수도 있다. 비슷한 이유로 각 논문의 관련 연구 (Related Works, Litrature Survey) 파트는 이미 알고 있고 중복되더라도 읽는 편인데, 저자들마다 다른 관점과 방식으로 지식을 체계화해서 전달하고 또 미처 알지 못했던 새로운 논문/방법론을 발견하기도 하기 때문이다.
상황에 따라서 다르지만, 가볍게 읽을 때는 논문을 그냥 빠르게 일독하고 다음 논문으로 넘어간다. (일독&속독) 한 논문에 기술된 모든 것을 이해할 필요는 없다. 특히 반복해서 출현하지 않으면 모르는 (영어) 단어가 있더라도 굳이 사전을 찾아보지도 않고 전체 흐름을 파악하기 위해서 그냥 빠르게 읽는다. 모든 수식이나 개념을 완벽히 숙달할 필요 없이 그냥 가볍게 읽고 다음 논문으로 넘어간다. 같은 분야의 논문들을 계속 읽다 보면 같은/비슷한 내용이 계속 반복되기 때문에 굳이 한 논문을 끝장본다는 식으로 파헤치지 않더라도 다른 논문을 읽으면서 자연스레 익혀지는 경우가 허다하다. 하나의 논문을 깊게 파는 것도 중요하지만, 많은 논문을 가볍게 읽어나가는 것이 더 필요한 경우가 있다. 특히 논문 읽기에 경험이 적은 분이라면 스트레스를 너무 받지 말고 가볍게 많이 읽을 것을 권한다. 간혹 (필요에 의해서) 한 논문을 깊게 읽고 이해해야 하는 경우가 있다. 특히 어려운 논문이 아니면 보통 3번 정도 읽으면 대부분 이해할 수 있다. (삼독) 첫 번째는 전체 흐름을 파악하기 위해서 앞서 말했듯이 가볍게 읽고, 두 번째는 그림이나 수식 등을 가능한 모두/자세히 이해하겠다는 생각으로 읽고, 세 번째는 이전 이독에서 놓쳤던 디테일을 찾아 이해함으로써 자신의 지식 체계에 완전히 녹여낸다. 논문의 난이도나 주제의 경중에 따라서 세번보다 더 읽을 수도 덜 읽을 수도 있고, 특정 부분만 반복해서 읽는 경우도 허다하다. 요는 제대로 이해해야 하는 논문이라면 최소 3번은 읽어라는 얘기다.
대학원생이나 연구원이라면 학계에서 나온 논문을 많이 보겠지만, 실무자라면 산업계에서 나오는 논문도 많이 읽어야 한다. 자신의 업무와 유사한 문제와 해결책은 동종 산업의 다른 실무자들의 경험이 더 결정적이다. 그리고 요즘은 구글이나 페이스북 등과 같은 IT 대기업 또는 산업계가 연구 트렌드를 주도하는 경향이/분야가 있기 때문에 주요 회사에서 나오는 주요 연구 성과나 논문들은 늘 관심을 가질 필요가 있다. 그런데 학계 논문과 산업계 논문은 좀 차이가 있다. 가용 데이터에 따라서 갈리는 듯하다. 아무래도 실제 현장의 데이터를 얻을 수 없는 학계에서는 기존에 잘 알려진 공개 데이터로 실험하고 결과를 내야 하기 때문에 좀 더 (때론 사소해 보이는) 기술/알고리즘 자체를 설명하는 경우가 많고, 산업계 논문은 그 산업에서 바로 쏟아지는 문제와 데이터를 기반으로 실용적인 방법론을 많이 다룬다. 그런데 산업계 논문의 큰 단점은 정의된 문제, 사용한 데이터, 그리고 (구체적) 방법론이 기밀인 경우가 많아서 내가 장 알고 싶어햐는 부분이 감춰졌거나 모호하게 기술된 경우가 잦다. 예를 들어, CTR 예측 알고리즘을 다룬 논문을 읽으면서 저 기업은 어떤 데이터 (피쳐)를 어떻게 가공해서 사용했는지가 매우 궁금한데, 그런 구체적인 내용은 모두 기밀로 자세히 밝히지 않는다. 문제가 매우 구체적이지만 제시된 방법은 매우 모호한 경우가 있어서 그 행간을 잘 파악해서 스스로 채워야 한다.
(실무자라면) 그럼에도 산업계 논문을 읽을 때 특히 실험과 논의 부분을 자세히 읽어볼 필요가 있다. 프레임워크나 알고리즘 설명은 다소 나이브하게 느껴지거나 별거 없네라는 생각을 가질 때도 많은데, 실험에서는 실제 경험하지 않으면 알지 못하는 디테일이나 인사이트를 얻는 경우가 많다. 특정 분야의 break-through 논문이 아니라면 (산업계의) 실험 파트를 좀 더 꼼꼼히 읽어볼 것을 권한다. 결국 실제 문제와 데이터의 유무에 따른 결과인 듯하지만, 학계 논문은 알고리즘을 매우 자세히 기술하고 증명하지만 실험은 그저 공개된 데이터와 지표로 단순 비교에 거치는 경향이 있고, 산업계 논문은 좀 더 입체적이고 다각도로 실험을 설계하고 결과를 해석한 노하우, 프랙티스가 있다.
One more thing. 최신 기술을 잘 정리한 논문들을 찾아서 읽으면 굳이 두껍고 장황한 텍스트북은 읽을 필요가 없을 것 같지만, 논문을 읽기 전에 또는 동시에 텍스트북을 읽을 것을 추천한다. 최신 기술의 전체를 조망하기 위해서 Survey 논문을 읽듯이, 그런 기술들의 역사와 집대성을 확인하고 이해하기 위해서는 다소 업데이트가 느리더라도 잘 정리된 텍스트북을 읽을 필요가 있다. 적당히 논문을 읽어봤고 그 분야에서 몇 년의 경험이 있으면 Survey 논문 정도는 쉽게 (?) 적을 수 있다. 하지만 더 긴 호흡의 텍스트북을 적는다는 것은 그보다 몇 배의 지식, 경험, 인사이트가 필요한 작업이다. 그 분야의 석학들이 책을 저술한다는 점에서 그들을 직접 만나지는 못하더라도 그들의 책을 읽으므로써 그들의 경험과 관점을 흡수할 수 있다. 다른 글에서도 적었지만 텍스트북을 하나 정해서 여유가 될 때마다 꾸준히 처음부터 끝까지 완독할 것을 권한다. 특히 초심자의 경우 쉽고 얇은 책이더라도 구해서 완독을 한 후에 세부 지식을 습득할 것을 권한다. 무엇보다도 평소 일주일에 한두편씩이라도 꾸준히 읽는 습관을 갖는 게...