[Paper Review] How to Read a Paper (SIGCOMM 07)
논문 읽기에 도움되는 내용이 많아 정리해보았습니다. 물론 논문을 읽는 방식은 취향에 따라 다를 수 있지만 처음 논문을 읽거나, 논문을 어떻게 읽어야 할 지 어려울 때 하나의 가이드라인이 될 수 있을 것 같습니다.
How to Read a Paper
Researchers spend a great deal of time reading research papers. However, this skill is rarely taught, leading to much wasted effort. This article outlines a practical and efficient three-pass method for reading research papers. I also describe how to use this method to do a literature survey.
논문을 읽는 이유
연구자(특히 대학원생)은 다음과 같은 이유로 논문을 읽습니다.
- 해당 분야의 지식을 습득하기 위해
- 새로운 분야를 연구하기 위해
하지만 논문을 처음 읽어보는 대학원 신입생들은 당황할 수 밖에 없습니다.
논문을 읽는 방법을 배워본 적이 없기 때문이죠.
이 논문에서는 논문을 처음부터 끝까지 비효율적으로 읽는 대신, 목적에 따라 3번 읽는 방법을 제시하고 있습니다.
각 스텝의 목표와 방법에 대해서 하나씩 살펴보도록 합시다.
1. 첫 번째 읽기 : 빠른 파악
첫 번째 읽기의 핵심은 빠르게 읽으며 논문의 큰 그림을 파악하는 것입니다.
5분에서 10분 정도 다음 순서에 따라 읽습니다.
- 제목(title), 초록(abstract), 소개(introduction)을 집중해서 읽습니다.
- 섹션(section)과 하위 섹션(subsection)의 제목만 읽습니다. 세부 내용은 모두 무시합니다.
- 결론(conclusion)을 읽습니다.
- 참고문헌(reference)을 대략적으로 보며, 이전에 읽은 논문에 대해 가볍게 체크합니다.
첫 번째 읽기를 하고 난 후에는 다음 다섯 가지(5C)에 대해 답할 수 있어야 합니다.
- Category : 어떤 종류의 논문인가? (기존 시스템의 분석인가, 프로토타입에 대한 설명인가 등)
- Context : 다른 페이퍼들과 어떤 관계가 있는가? 어떤 이론적 바탕을 사용하여 해당 문제를 풀려고 했는가?
- Correctness : 가정이 명확한가?
- Contributions : 이 논문의 핵심 기여는 무엇인가?
- Clarity : 논문은 잘 써졌는가? (가독성 등)
이 정보를 바탕으로 논문을 더 읽을 것인지 선택할 수 있습니다. 더 읽지 않는 이유는 다양합니다.
- 해당 주제에 대해 내가 관심이 없거나
- 논문을 읽기에 충분한 사전 지식이 없거나
- 저자의 가정이 모호하거나
첫 번째 읽기는 지금은 당신의 분야에 직접적이진 않지만, 언젠가는 도움이 될 논문들에 적합합니다.
또한 첫 번째 읽기의 핵심은 논문 쓰기에도 중요합니다.
리뷰어에게 바로 accept이 되고 싶다면 다음과 같이 논문을 쓰면 됩니다.
- 논리적으로 섹션과 하위 섹션을 구성
- 각 섹션명은 간결하고 명료하게 작성
- 포괄적인 초록
즉, 다음과 같이 정리할 수 있습니다.
- 리뷰어가 첫 번째 읽기 과정을 통해 논문을 이해하지 못한다면 리젝!
- 독자가 5분안에 논문의 핵심을 파악하지 못한다면, 그 논문은 절대 읽히지 않는다고 보면 된다.
2. 두 번째 읽기 : 세부적인 읽기
두 번째 읽기는 좀 더 세부적인 내용에 집중합니다. 단, 증명 같은 디테일은 무시합니다.
핵심 사항을 노트에 적거나, 테두리에 본인의 의견을 써두면 좋습니다.
두 번째 읽기는 약 1시간 정도 소모가 됩니다.
- figure, diagram 등 논문 내의 다양한 도표와 일러스트레이션을 주의깊게 봅니다. 특히 그래프를 잘 봐야합니다. (축 레이블링, 에러바의 통계적 유의성 등)
- 아직 읽지 않은 연관 논문을 체크합니다. (또한 이 과정은 논문의 배경 지식을 공부하는데 도움이 됩니다.)
두 번째 읽기가 끝나면 다음과 같은 상태가 되야 합니다.
- 논문의 내용을 이해해야 합니다.
- 논문의 핵심 주장에 대해 근거와 함께 요약할 수 있어야 합니다.
두 번째 읽기는 당신이 관심있어하지만, 당신의 연구 전문 분야는 아닌 논문에 적합합니다.
다만, 여러 이유로 두 번째 읽기에도 이해가 안될 수 있습니다.
- 전문용어나 약어로 인해 이 주제나 내용이 새로워서 또는 익숙하지 않아서
- 저자가 사용한 증명이나 실험 테크닉이 이해가 안되서
- 근거 없는 주장 또는 너무 많은 레퍼런스
- 밤에 읽는 바람에 피곤해서(?)
이럴 때 선택지는 크게 3가지가 있습니다.
- 논문을 치웁니다. 그리고 해당 논문의 내용이 커리어에 전혀 무관하기를 바랍니다.
- 배경 지식을 공부하고 다시 읽습니다.
- 노력해보고 세 번째 읽기를 해봅니다.
3. 새 번째 읽기 : 가상으로 다시 써보기
논문을 충분하기 이해하기 위해, 특히 당신이 리뷰어라면 세 번째 읽기를 해야합니다.
세 번째 읽기의 핵심은 가상으로 다시 써보기(virtually re-implement) 입니다. 저자와 같은 가정을 통해 작업을 다시해보는 것입니다. 그리고 원본논문과 비교하며 논문의 혁신과 함께 논문의 숨은 실패나 가정을 확인할 수 있습니다.
세 번째 읽기는 디테일에 맣은 집중이 필요합니다.
- 모든 상황에서 모든 가정에 대해 확인하는 과정을 해야합니다.
- 더 나아가 본인이라면 이 아이디어를 어떻게 기술할지 고민해야 합니다.
- 이런 비교를 통해 논문의 증명과 프레젠테이션 방식에 대한 인사이트를 제공하며, 추후 개인 논문 작성에 사용할 수 있습니다. (이런 과정에서 필요한 내용과 아이디어는 메모해야 합니다.)
세 번째 읽기는 초보자에게는 4~5 시간이 걸리며, 전문적인 독자라면 1시간 정도의 시간이 소모됩니다.
세 번째 읽기가 끝나면 다음 상태가 되야 합니다.
- 논문의 전체 구조를 재구성하고 장단점을 식별할 수 있어야 합니다.
- 특히 암묵적인 가정, 누락된인용, 실험 및 분석 기술의 잠재적 문제를 정확히 찾아낼 수 있어야 합니다.
문헌 조사
연구를 시작하면, 또는 필요에 따라 문헌조사를 하게 됩니다. 이때는 익숙하지 않은 분야에 대한 논문을 수십 편을 읽어야 하는 상황이 올 것입니다. 이럴 때 3단계 읽기를 사용하면 됩니다.
- Google Scholar나 CiteSeer와 같은 학술 엔진을 사용하십시오. 그리고 잘 선택된 키워드를 사용하여 최신 논문 3~5개를 선택합니다.
- 논문을 이해하기 위해 1단계 읽기를 실행합니다. 최신 논문의 동향을 확인할 수 있고, 운이 좋으면 서베이논문을 찾을 수도 있습니다. (이러면 끝난 것입니다. 서베이논문을 찾았다면 스스로 축하합시다.)
- 그렇지 않다면 참고 문헌에서 공통적인 인용이나 저자의 이름을 찾습니다. 그 저자, 그 논문이 이 분야의 핵심입니다.
- 주요 논문을 다운로드하고, 해당 저자의 사이트 등을 통해 최신 컨퍼런스에 발표한 논문을 확인합니다. 이 과정을 통해 해당 분야의 최고 컨퍼런스가 무엇인지 알 수 있습니다.
- 컨퍼런스 사이트를 들어가 최신 논문을 살펴봅니다.
- 컨퍼런스 사이트 논문을 이전에 다운로드 받은 논문과 함께 다운받아 첫 논문 조사를 구성합니다.
- 이 논문들은 두 번째 읽기를 진행합니다. 이 과정에서 미리 찾지 못한 공통 인용 논문이 있다면 추가하고 읽습니다.
- 이 과정을 반복합니다.