[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분 정도 다음 순서에 따라 읽습니다.

  1. 제목(title), 초록(abstract), 소개(introduction)을 집중해서 읽습니다.
  2. 섹션(section)과 하위 섹션(subsection)의 제목만 읽습니다. 세부 내용은 모두 무시합니다.
  3. 결론(conclusion)을 읽습니다.
  4. 참고문헌(reference)을 대략적으로 보며, 이전에 읽은 논문에 대해 가볍게 체크합니다.

첫 번째 읽기를 하고 난 후에는 다음 다섯 가지(5C)에 대해 답할 수 있어야 합니다.

  1. Category : 어떤 종류의 논문인가? (기존 시스템의 분석인가, 프로토타입에 대한 설명인가 등)
  2. Context : 다른 페이퍼들과 어떤 관계가 있는가?  어떤 이론적 바탕을 사용하여 해당 문제를 풀려고 했는가?
  3. Correctness : 가정이 명확한가?
  4. Contributions : 이 논문의 핵심 기여는 무엇인가?
  5. Clarity : 논문은 잘 써졌는가? (가독성 등)

이 정보를 바탕으로 논문을 더 읽을 것인지 선택할 수 있습니다. 더 읽지 않는 이유는 다양합니다.

  • 해당 주제에 대해 내가 관심이 없거나
  • 논문을 읽기에 충분한 사전 지식이 없거나
  • 저자의 가정이 모호하거나

첫 번째 읽기는 지금은 당신의 분야에 직접적이진 않지만, 언젠가는 도움이 될 논문들에 적합합니다.

또한 첫 번째 읽기의 핵심은 논문 쓰기에도 중요합니다.

리뷰어에게 바로 accept이 되고 싶다면 다음과 같이 논문을 쓰면 됩니다.

  1. 논리적으로 섹션과 하위 섹션을 구성
  2. 각 섹션명은 간결하고 명료하게 작성
  3. 포괄적인 초록

즉, 다음과 같이 정리할 수 있습니다.

  • 리뷰어가 첫 번째 읽기 과정을 통해 논문을 이해하지 못한다면 리젝!
  • 독자가 5분안에 논문의 핵심을 파악하지 못한다면, 그 논문은 절대 읽히지 않는다고 보면 된다.

2. 두 번째 읽기 : 세부적인 읽기

두 번째 읽기는 좀 더 세부적인 내용에 집중합니다. 단, 증명 같은 디테일은 무시합니다.

핵심 사항을 노트에 적거나, 테두리에 본인의 의견을 써두면 좋습니다.

두 번째 읽기는 약 1시간 정도 소모가 됩니다.

  1. figure, diagram 등 논문 내의 다양한 도표와 일러스트레이션을 주의깊게 봅니다. 특히 그래프를 잘 봐야합니다. (축 레이블링, 에러바의 통계적 유의성 등)
  2. 아직 읽지 않은 연관 논문을 체크합니다. (또한 이 과정은 논문의 배경 지식을 공부하는데 도움이 됩니다.)

두 번째 읽기가 끝나면 다음과 같은 상태가 되야 합니다.

  • 논문의 내용을 이해해야 합니다.
  • 논문의 핵심 주장에 대해 근거와 함께 요약할 수 있어야 합니다.

두 번째 읽기는 당신이 관심있어하지만, 당신의 연구 전문 분야는 아닌 논문에 적합합니다.

다만, 여러 이유로 두 번째 읽기에도 이해가 안될 수 있습니다.

  1. 전문용어나 약어로 인해 이 주제나 내용이 새로워서 또는 익숙하지 않아서
  2. 저자가 사용한 증명이나 실험 테크닉이 이해가 안되서
  3. 근거 없는 주장 또는 너무 많은 레퍼런스
  4. 밤에 읽는 바람에 피곤해서(?)

이럴 때 선택지는 크게 3가지가 있습니다.

  1. 논문을 치웁니다. 그리고 해당 논문의 내용이 커리어에 전혀 무관하기를 바랍니다.
  2. 배경 지식을 공부하고 다시 읽습니다.
  3. 노력해보고 세 번째 읽기를 해봅니다.

3. 새 번째 읽기 : 가상으로 다시 써보기

논문을 충분하기 이해하기 위해, 특히 당신이 리뷰어라면 세 번째 읽기를 해야합니다.

세 번째 읽기의 핵심은 가상으로 다시 써보기(virtually re-implement) 입니다. 저자와 같은 가정을 통해 작업을 다시해보는 것입니다. 그리고 원본논문과 비교하며 논문의 혁신과 함께 논문의 숨은 실패나 가정을 확인할 수 있습니다.

세 번째 읽기는 디테일에 맣은 집중이 필요합니다.

  • 모든 상황에서 모든 가정에 대해 확인하는 과정을 해야합니다.
  • 더 나아가 본인이라면 이 아이디어를 어떻게 기술할지 고민해야 합니다.
  • 이런 비교를 통해 논문의 증명과 프레젠테이션 방식에 대한 인사이트를 제공하며, 추후 개인 논문 작성에 사용할 수 있습니다. (이런 과정에서 필요한 내용과 아이디어는 메모해야 합니다.)

세 번째 읽기는 초보자에게는 4~5 시간이 걸리며, 전문적인 독자라면 1시간 정도의 시간이 소모됩니다.

세 번째 읽기가 끝나면 다음 상태가 되야 합니다.

  • 논문의 전체 구조를 재구성하고 장단점을 식별할 수 있어야 합니다.
  • 특히 암묵적인 가정, 누락된인용, 실험 및 분석 기술의 잠재적 문제를 정확히 찾아낼 수 있어야 합니다.

문헌 조사

연구를 시작하면, 또는 필요에 따라 문헌조사를 하게 됩니다. 이때는 익숙하지 않은 분야에 대한 논문을 수십 편을 읽어야 하는 상황이 올 것입니다. 이럴 때 3단계 읽기를 사용하면 됩니다.

  1. Google Scholar나 CiteSeer와 같은 학술 엔진을 사용하십시오. 그리고 잘 선택된 키워드를 사용하여 최신 논문 3~5개를 선택합니다.
  2. 논문을 이해하기 위해 1단계 읽기를 실행합니다. 최신 논문의 동향을 확인할 수 있고, 운이 좋으면 서베이논문을 찾을 수도 있습니다. (이러면 끝난 것입니다. 서베이논문을 찾았다면 스스로 축하합시다.)
  3. 그렇지 않다면 참고 문헌에서 공통적인 인용이나 저자의 이름을 찾습니다. 그 저자, 그 논문이 이 분야의 핵심입니다.
  4. 주요 논문을 다운로드하고, 해당 저자의 사이트 등을 통해 최신 컨퍼런스에 발표한 논문을 확인합니다. 이 과정을 통해 해당 분야의 최고 컨퍼런스가 무엇인지 알 수 있습니다.
  5. 컨퍼런스 사이트를 들어가 최신 논문을 살펴봅니다.
  6. 컨퍼런스 사이트 논문을 이전에 다운로드 받은 논문과 함께 다운받아 첫 논문 조사를 구성합니다.
  7. 이 논문들은 두 번째 읽기를 진행합니다. 이 과정에서 미리 찾지 못한 공통 인용 논문이 있다면 추가하고 읽습니다.
  8. 이 과정을 반복합니다.