페이스북이 뉴스 피드 랭킹을 만들고 개선하는 방법

최근에 페이스북 피드 랭킹 팀과의 인터뷰를 통해 피드 랭킹에 사용되는 데이터와 알고리즘을 상세하게 소개하는 글이 있어 소개합니다. 사용자의 질의어 대신 선호도를 바탕으로 동장하는 검색엔진에 비유할수도 있겠습니다. 이 글은 지속적으로 발전하는 온라인 서비스를 위한 다양한 교훈을 제공합니다.

요약하면, 사용자 행동 / 패널 / 피드백은 보완적인 시그널을 제공하며, 따라서 사용자 행동에 대한 정교한 로깅, 그리고 사용자가 간단한 피드백을 제공할 수 있는 채널 확보, 그리고 사용자를 대변하는 패널을 통한 상세한 피드백 청취는 모두 필요하다는 점입니다.

아래 핵심 내용을 간추려 보았습니다:

  • 사용자가 접속할때마다 평균 1500개의 피드가 랭킹 대상이 된다. 이 숫자는 사용자의 친구 수 및 활동성 정도에 따라 달라진다.

  • 초기에는 클릭이나 LIKE같은 사용자 행동에 기반한 랭킹 시그널만을 사용했다. (즉, LIKE 수를 가장 높이는 피드의 순서를 계산한다) 특히 페북 초기에 LIKE는 클릭보다 훨씬 좋은 시그널이 되었다.

  • 하지만 클릭된 피드가 꼭 좋으리라는 보장은 없고, (제목은 현란하지만 실제 광고 / 스팸성 글들) LIKE역시 스팸 가능성이 높다. 또한 주변 사람들의 안좋은 소식은 중요하지만 LIKE되지는 않는다.

  • 점차 행동 기반의 시그널의 맹점을 인식하면서 사용자의 실제 선호도를 대변할 수 있는 패널을 사용하기 시작했다. 처음에는 미국 한 지역에 있던 패널이 전미 각 지역으로, 그리고 전세계로 퍼져서 패북 사용자의 다양한 취향을 반영하고 있다.

  • 페북은 패널과 함께 실제 사용자들이 자신의 피드에 보이는 내용을 통제할 수 있는 옵션을 제공하기 시작했다. 피드를 감추거나 사용자의 선호도를 표현할 수 있게 한 것이다. 이 내용은 당연히 피드 랭킹에 직접 반영된다.

  • 하지만 이렇게 선호도를 표시하는 사용자는 일부에 불과하며, 어떤 사용자들은 읽은 피드를 모두 감추는 행동을 보였다. 따라서 피드 랭킹 알고리즘은 이런 데이터의 불균형성도 고려해야 했다.

  • 행동 기반 시그널도 진화를 거듭하여, 피드를 클릭하여 읽은 시간, LIKE를 눌렀을 때 피드를 읽고 눌렀는지 안읽고 눌렀는지 등에 따라 차등을 두고 있다. 당연히 읽고 누른 LIKE가 좀더 확실한 시그널이다.

  • 피드 알고리즘에 대한 모든 개선사항은 오프라인 테스트, 내부 테스트, 사용자 대상의 A/B 테스트를 거치며, 알고리즘이 실제 서비스에 반영된 이후에도 개선된 알고리즘의 영향을 받지 않는 Hold-out 그룹을 두어 신규 알고리즘의 long-term effect를 검증한다.

업데이트 (2/1): 오늘 자로 페이스북이 피드 랭킹 알고리즘을 다시 바꾼 모양입니다. 이번에는 평가단의 조사 결과를 적극 반영했다고 하네요. 클릭이나 라이크와 같은 행동 기반의 시그널이 악용될 소지가 많다는 판단에 페이지 품질 기반의 시그널의 비중을 높인 것으로 보입니다.

빅데이터에 이어 생활데이터의 시대가 온다

(제 브런치와 ZDNet에 소개된 글입니다. 생활데이터 모임에 참가하실 분은 링크를 참조하세요.)

필자가 어디서 ‘데이터 과학자’라고 하면 보통 ‘아, 빅데이터 하시는군요’ 라고 하시는 분들이 많다. 하지만 필자가 누누히 밝혔듯이 데이터는 문제 해결의 수단이고, 빅데이터를 꼭 써야 문제가 풀리는 것은 아니다. 필자는 빅데이터보다 주변의 문제를 끊임없이 데이터로 푸는 ‘생활 데이터’가 필요하다고 믿는다.

생활 데이터 사례: 당뇨병 관리 & 치킨집 수요 예측

우선 생활 데이터를 사례로 알아보자. 한국 네스프레소(Nepresso)의 디지털 어퀴지션 매니저로  일하는 서영부님에게는 최근 고민거리가 생겼다. 장모님께서 당뇨병 진단을 받으신 것이다. 아버님께서 10년 넘게 당뇨 증상이 있으셨던 터라 당뇨병 환자에게 필수적인 혈당 관리의 번거로움을 누구보다도 잘 아는 그였다.

실제로 장모님께서는 새로운 식이요법에 적응하느라, 혈당 측정을 하시느라 여러 가지 어려움을 겪고 계셨다. 공복 시 혈당은 120 이하, 식후 혈당은 160 이하를 유지한다는 목표를 세우고 아침 공복 1번, 식후 3번 측정의 빈도로 측정을 시작하셨지만 이를 꾸준히 기록하는 것을  힘들어하셨다.


서영부 님께서 공유해주신 장모님의 혈당 기록표: 중간 중간 빠진 부분이 보인다

평소 업무상 데이터를 늘 활용하는 서영부님은 장모님께 혈당관리를 위한 데이터 사용법을 가르쳐드렸다. 종이에 입력하시던 혈당 데이터를 엑셀에 옮겨 추이를 보여드리고, 추가로 데이터를 넣으시면 그래프가 그려지도록 만들어드린 것이다. 또한 혈당 관리를 위해서는 어느 기준점 이하로 그래프가 내려가야 한다는 점을 이해시켜드렸다.


서영부 님께서 공유해주신 장모님의 혈당 기록표 엑셀 버전

이를 통해 장모님께서는 측정하는 숫자와 목표간의 관계를 이해하실 수 있었다. 이와 함께 서영부님은 장모님께서 혈당관리에 필수적인 운동량을 채우실 수 있도록 미 밴드도 드렸다. 단순히 밴드를 드린 게 아니라 운동량의 기준을 설정하여 운동량이 부족한 날은 더하시고, 많은 날은 쉬시도록 말씀을 드렸다. 이런 사위의 정성에 장모님이 감동하신 것은 물론이다.

이상은 작년 12월 필자가 주최한 ‘생활데이터’ 모임에서 서영부님께서 직접 발표하신 내용이다. 서영부님은 본인이 의사 거나 의학 데이터를 다루어 보신 것은 아니지만, 간단한 도구를 사용하여 주어진 데이터를 시각적으로 이해하고, 운동량을 정확히 측정하도록 장모님을 도와드린 것이다. 위 사례에서는 엑셀을 사용했지만 필자의 지난 글에서는 종이와 펜만으로 15년간 당뇨병을 이겨낸 사례를 소개하기도 했다.

간단한 데이터 활용으로 비즈니스에 큰 변화를 가져온 경우도 있다. 작년 통계청에서 주최한 통계활용 수기 공모에서 최우수상을 차지한 통계로 튀기는 치킨은 치킨집을 하는 아버지를 돕기 위해 매일 매일의 계육 수요를 예측하는 모델을 만들어 활용했던 대학생 허성일님의 이야기다. 제품의 품질과 비용 절감을 위해 필수적인 수요 예측의 문제를 계절, 날씨, 이벤트와 같은 단순한 속성을 바탕으로 예측해낸 것이다.


‘통계로 튀기는 치킨’에서 사용된 계육 수요 예측 모델

예측 모델이라지만 사실 위 테이블에서 보듯 몇 개의 변수에 가중치를 주어 결합하는 방정식이니 복잡한 통계 기법을 사용한 것은 아니다. 하지만 위 모델의 예상량과 실제량을 비교한 아래 그래프를 보면 상당한 정확도를 자랑함을 알 수 있다. 허성일 씨가 이 예측모델로 아버님의 사람을 듬뿍 받은 것은 물론이다.


‘통계로 튀기는 치킨’에서 사용된 계육 수요 예측 모델의 성능

생활 데이터를 실천하는 사람들: Quantified Self

위 사례의 주인공들에게는 자기 주변의 문제에서 출발하여, 비교적 간단한 데이터와 방법으로 문제에 접근하였다는 공통점이 있다. 데이터라면 흔히 대형 컴퓨터나 복잡한 수식을 떠올리지만 이들은 데이터를 두려워하는 대신 자신의 문제를 해결해주는 수단으로 적극 활용한 것이다. 필자는 이처럼 데이터를 자신의 문제를 푸는 수단으로 적극 활용하는 태도를 ‘데이터 생활화’ 혹은 ‘생활 데이터’라고 부르고 싶다.

이처럼 데이터를 적극적으로 활용하는 개인의 이야기가 약간 낯설게 느껴질지도 모르겠다. 하지만 정보기술의 발전에 따라 최근 들어 개인이 자신의 삶과 업무에서 데이터를 수집하여 활용하려는 움직임이 전 세계적으로 확산되고 있다. 그리고 이 트렌드의 중심에는 앞서 소개한 Quantified Self라는 (의미: 계량화된 자신, 이하 QS) 이름의 커뮤니티가 자리하고 있다.

QS는 말하자면 자기 주변의 문제를 직접 데이터로 해결하는 생활 데이터를 실천하는 개인들의 커뮤니티로 2007년 시작된 이래 현재 약 34개 국에 100개가 넘는 지역별 그룹을 가진 단체로 성장해왔으며, 2011년부터는 매년 미국과 유럽에서 국제적인 규모의 콘퍼런스가 개최되고 있다. 이는 생활 데이터의 활용에 대한 폭발적인 관심을 대변한다. 필자는 꾸준히 QS 모임에 참여하고 있으며, 필자의 개인 행복도 측정 관련 발표는 시애틀 타임즈에도 소개되기도 했다.

그럼 QS커뮤니티의 사람들은 어떤 유형의 데이터를 모으는 것일까? 이를 살펴보면 사람들이 주로 모으는 가장 흔한 데이터는 활동량, 음식, 몸무게, 수면 및 감정 데이터이다. 자신의 웰빙과 직접 관련된 데이터를 주로 모으는 것을 알 수 있다. 하지만 사람들은 이외에도 인지 기능, 혈당량, 위치, 심박수, 스트레스, 생산성 등 굉장히 다양한 종류의 데이터를 모으고 있다. 자세한 목록은 QS 웹사이트의 가이드를 참조하자.

생활 데이터의 종류와 빈도

하지만 이들은 대부분 데이터 과학자가 아닌 평범한 사람에 불과했다. 그렇다면 이들은 어떻게 이런 분석을 수행하고 있을까? 최근 연구에서는 QS 커뮤니티 회원들이 데이터 수집 및 분석에 주로 사용되는 도구의 분포를 소개하고 있다. 연구 결과를 보면 엑셀 등의 단순한 도구를 사용하는 사람들이 절반 가까운 44%를 차지하고 있다. 데이터로 자기 주변의 문제를 푸는데 대단한 도구가 필요하지는 않다는 결론을 내릴 수 있다.

데이터 과학 입문의 지름길: 생활 데이터

필자는 데이터 과학을 처음 공부하려는 사람들에게도 여러 이유에서 생활 데이터를 꼭 권한다. 우선 자신의 삶과 업무에 관련된 문제들을 푸는 것은 낯선 누군가의 문제를 푸는 것보다 흥미로운 일이다. 만약 데이터를 통해 나를 괴롭히는 지긋지긋한 건강 문제에서 벗어날 수 있다면? 혹은 지금 보다 업무의 생산성을 획기적으로 높일 수 있다면? 데이터 과학을 공부하기 위해서가 아니라도 충분히 동기부여가 된다.

또한 자기 자신의 문제를 푼다면 그 문제의 핵심은 무엇인지, 그리고 어떤 데이터를 모아야 할지에 대해서도 스스로 알 수 있다. 물론 도출한 해결책에 대한 평가도 스스로 내릴 수 있다. 즉, 스스로 문제 정의부터 해결책 도출에 이르기까지 데이터 과학의 전 과정을 진행해볼 수 있다. 이런 경험은 앞으로 여러 사람과 좀 더 복잡하고 규모가 큰 문제를 해결할 때 큰 도움이 된다.

마지막으로 생활 데이터는 그 특성상 크기도 작고, 관련된 문제들도 단순하다. 덩치 큰 도구나 어려운 분석 기법을 적용하지 않고도 결론에 도달할 수 있다. 이런 경험을 통해 데이터에서 가치를 끌어내는 과정이 꼭 복잡하고 어려울 필요가 없다는 점을 깨닫게 될 것이다. 이처럼 주변의 현상을 데이터 관점에서 바라보는 훈련을 통해서 데이터 문제를 발견하는 시각을 기를 수 있다.

이처럼 자신의 주변에서 흥미로운 문제를 발견하고, 이를 해결해나가는 과정을 통해 데이터 과학을 공부하다 보면 어느새 데이터 과학자의 태도와 소양을 갖춘 자신을 발견하게 될 것이다. 필자가 2002년 데이터 과학이라고 부를만한 활동을 시작하게 된 것도 주변의 다양한 데이터를 모아서 분석하면서부터다.

집밥을 사랑하는 당신, 생활 데이터를 시작하라!

최근 들어 백종원 씨 등의 영향으로 집밥 열풍이 불고 있다. 집밥의 장점은 원하는 음식을 자기가 구입한 재료로 자신의 입맛에 맞게 조리해 먹을 수 있다는 점이다. 스스로의 힘으로 해 먹으니 외식보다 저렴하고 안전하게 한 끼를 해결할 수 있는 것이다. 또한 외식과 달리 집밥을 습관화하면 요리 실력이 늘어 더 적은 노력으로 더 맛있는 음식을 해먹을 수 있을 것이다.

집밥을 차려 먹듯 자기 주변의 문제를 데이터로 풀어보는 ‘생활 데이터’

필자는 생활 데이터를 집밥에 비유하고 싶다. 우리는 보통 다른 사람이 모으고 분석한 결과를 사용하거나, 데이터 업무를 전문가에게 맡겨야 된다고 생각한다. 하지만, 글의 서두에서 소개한 사례에서 볼 수 있듯이 데이터로 주변의 문제를 해결하는 일이 꼭 거창하고 복잡할 필요는 없다. 그리고 앞서 소개한 Quantified Self 커뮤니티와 같이 실제로 스스로 하는 데이터 수집과 분석이 글로벌 트렌드로 자리 잡고 있다.

집밥과 마찬가지로 생활 데이터의 장점은 지금 나에게 필요한 문제를 나에게 맞는 방식으로 해결할 수 있다는 점이다. 내가 수집한 데이터에서 직접 내린 결론이므로 어딘가에서 읽은 지식보다 나에게 훨씬 적합한 결론에 도달할 수 있다. 또한 다른 사람에게 맡길 필요가 없으므로 시간과 비용이 절약되는 것은 물론이다. 특히 21세기의 석유라고 불리는 데이터를 자신의 핵심 경쟁력으로 삼고 싶은 사람이라면 생활 데이터를 당장 시작해야 할 것이다.

생활 데이터를 시작하는 사람들: ‘생활데이터’ 그룹

그럼 어디서 생활 데이터를 시작할 수 있을까? 우선 데이터 과학에 대한 필자의 다양한 글을 참고하고, 필자가 작년 말 시작한 페이스북 생활데이터 그룹에서 생활 데이터를 시작하는데 필요한 다양한 조언을 얻을 수 있다. 생활데이터 회원으로 활동하기 위해서는 페북 그룹에 가입 신청을 하고 간단한 가입 양식을 작성하면 된다.

생활데이터 그룹의 첫 모임이었던 작년 12월 모임에는 서두에 소개한 서영부님을 비롯한 스무 분이 참석하셨다. 이중 현재 카이스트에 대학원에 재학중이신 박건우님은 피트니스 앱 사용을 지속하는 사용자들의 특징을 소셜 미디어 데이터로 분석하셨고, 모임에 참석은 못하셨지만 김영웅님은 지하철 데이터를 분석해서 연말에 붐비지 않고 데이트를 할 수 있는 장소를 시각화한 결과를 공유하셨다.

올해도 생활데이터 모임에서는 온라인 정모를 통해 자기 주변의 데이터 활용 사례와 방법을 꾸준히 공유할 생각이다. 필자와 함께 국내 여러 유명 데이터 과학자들과 생활 데이터 애호가들이 활발히 활동하고 있다. 데이터 과학을 실습과 경험을 통해 배우고자 하는 분, 데이터로 꼭 풀어보고자 하는 문제가 있는 독자 여러분의 많은 참여를 바란다. 이어지는 글에서는 생활 데이터를 시작하는 방법을 자세히 다루도록 하겠다.

헬로 데이터 과학: 삶과 업무를 개선하는 데이터 과학 이야기

한국 방문 중 두차례의 공개 세미나를 통해 많은 분을 만났습니다. 데이터에 관한 글을 쓰기 시작한 이후로 가장 보람된 순간이 아니었나 합니다. 저도 이번 발표를 준비하고, 여러분들과 소통하면서 많은 것을 배울 수 있었습니다.

제한된 시간동안 최대한 많은 것을 전달하려고 했지만, 부족한 점이 있었을 줄로 압니다. 12월 22일 발표에서 사용한 자료는 아래 링크에서 보실 수 있습니다. 실제 사용했던 슬라이드에 시간 관계상 생략했던 슬라이드와 각종 링크를 추가한 확장판입니다.

자료를 보시고 추가적인 의견/궁금증을 알려주시면 앞으로의 글 및 발표에 반영하도록 하겠습니다. 앞으로 미국에서도 지속적인 온라인 세미나를 계획중이므로, 여러분들의 피드백은 큰 도움이 됩니다.

오늘은 주제별 학습 가이드의 두번째로 데이터과학 도구의 사용법을 익히기 위한 자료를 소개한다. 우선 도구의 선택에 대한 필자의 글을 참조하기 바란다. 아래는 도구별 학습에 도움이 되는 자료들이다.

R

우선 R을 시작하려는 독자들은 다음 웹사이트에서 도움을 받을 수 있다. 특히 첫번째 자료는 엑셀 사용자가운데 R을 시작하는 사람을 위한 책이다. (1장 제공)

R을 실제로 사용하다보면 필요한 함수나 문법을 찾느라 많은 시간을 소비하게 된다. 이럴때 유용한 것이 자주 사용하는 기능을 한두장에 요약해놓은 Cheatsheet다. R을 자주 사용한다면 꼭 출력해서 보관하도록 하자.

R을 제대로 공부하기 위해서는 아래 분야별 서적을 탐독하도록 하자. 첫 세권은 Leanpub에서 무료 혹은 일정 금액을 내고 구입할 수 있으며, 나머지 책들은 온라인 버전을 공개하고 있다.

R관련해서는 양질의 한글 자료도 많다. 일부 공개된 다음 두 책으로 시작하시기를 추천한다. 저자의 홈페이지에서는 이외에도 R 및 데이터 과학에 관련된 양질의 자료를 얻을 수 있다.

엑셀

우선 데이터과학을 시작하기에 좋은 도구인 스프레드시트의 사용법과 사용상 주의사항을 다룬 사이트이다.

다음은 스프레드시트중 가장 널리 사용되는 엑셀의 사용법을 다룬 글이다.

학습가이드(1) 데이터과학 개념잡기

데이터과학 관련 자료는 많지만 무엇을 어떤 순서로 읽어야 할지를 결정하기는 쉽지 않다. 제가 관리하던 데이터 과학 자료모음을 바탕으로 각 주제별로 데이터과학을 공부하기 위한 학습 가이드를 만들어 보려고 한다. 오늘은 첫번째로 데이터과학을 전반적으로 이해하기 위한 자료들이다.

데이터 과학은?

우선 데이터 과학의 역사와 주요 개념 및 프로세스를 이해하도록 도와주는 글이다. 위키피디아 아티클도  참고하자

데이터 과학의 흐름

빅데이터에 초점을 맞추어 데이터 과학의 흐름을 다룬 책자입이다. 처음 두개는 경영 컨설팅사의 관점, 마지막은 각계 연구자들의 공동 작업으로 쓰여진 것이다.

빅데이터의 한계 / 위험성

하지만 빅데이터를 제대로 사용하기 위해서는 주의를 기울여야 한다. 아래 글들은 빅데이터를 제대로 사용하지 못했을 때 얻을 수 있는 다양한 오류 가능성을 다룬다. 특히 마지막의 논문은 한때 빅데이터를 대표하는 기술로 여겨졌던 Google Flu의 다양한 한계를 다룬다.

데이터 과학자는?

데이터 과학을 이해하는 가장 좋은 방법중 하나는 데이터 과학자에 대해서 아는 것이다. 아래는 데이터 과학자라는 개념을 널리 알린 기사 및 최근의 트랜드에 관한 책자다.

데이터과학 프로세스(5): 통계적 추론

“통계로 거짓말을 하기는 쉽지만 진실을 말하기는 어렵다.” – 안드레아 덩켈스(Andrejs Dunkels)

지난 글에서 살펴본 탐험적 데이터 분석을 통해서 주어진 데이터의 다양한 측면을 관찰할 수 있다. 즉 개별 속성값이 어떤 분포를 가지며, 주어진 속성간에 어떤 상관관계가 존재하는지 등을 알 수 있다. 하지만 많은 경우 데이터 분석의 목표는 관찰된 데이터를 넘어서 그 근간에 있는 현상에 대한 더 나은 이해에 도달하는 것이다. 즉, 부분을 통해 전체에 대한 판단을 내리는 일종의 ‘추론’이 필요한 것이다.

통계학에서는 주어진 데이터를 표본(sample), 데이터가 대표하는 현상을 모집단(population)이라고 하며, 표본을 바탕으로 모집단의 특성에 대한 결론을 유도하는 것을 통계적 추론(statistical inference)이라고 부른다. 즉 통계적 추론은 통계 이론을 바탕으로 한 현상의 일반화하고 하겠다. 현상에 대한 관찰에서 일반화할 수 있는 지식을 이끌어내는 것은 과학의 본령이니, 통계적 추론은 데이터 ‘과학’의 본질과도 맞닿아 있다고 하겠다.

통계적 추론은 제한된 관찰(표본)을 바탕으로 모집단에 대한 일반적인 결론을 유도하려는 시도이기에 본질적으로 불확실성을 수반한다. 따라서 통계적 추론에 속하는 많은 기법들은 이런 불확실성을 계량화하려는 노력이다. 예컨대 탐험적 분석에서 표본 데이터의 평균을 구했다면, 통계적 추론에서는 표본이 추출된 대상이 되는 모집단의 평균값이 어떤 범위에 존재할 수 있는지를 계산할 수 있다. (신뢰 구간) 또한, 실험 데이터에서 두 집단 사이의 측정값에 차이가 관찰되었다면, 통계적 추론에서는 과연 이 차이가 우연에 의한 것인지 유의미한 것인지를 밝혀낼 수 있다. (가설 검정)

언뜻 마법처럼 들리는 통계적 추론을 가능하게 하는 것은 주어진 현상에 관한 통계적 모델이다. 주어진 현상이 어떤 모델에서 의해 발생했다고 가정하고, 그 모델에서 발생한 일정량의 결과물을 안다면 (표본), 그 모델에서 일반적으로 어떤 현상이 발생할지를 예측할 수 있는 것이다. 따라서 통계적 추론은 주어진 현상에 대한 가정과 데이터를 사용해 이런 통계적 모델을 만들고, 여기서 다양한 결론을 도출해내는 과정이다.

img/ch3_inf_sample_model.png

통계적 추론은 데이터를 통해 현상의 본질을 들어다보려는 노력

이 글에서는 데이터 과학을 시작하는 여러분들이 알아야 할 통계적 추론의 원리와 실제를 자세히 다룬다. 우선 통계적 추론을 가능하게 하는 통계적 모델의 주요 유형을 모수적 방법과 비모수적 방법으로 나누어 알아보고, 널리 쓰이는 통계적 추론의 기법인 신뢰구간과 가설검정의 과정을 자세히 살펴본다. 이 글에서 사용된 데이터와 차트는 이곳에서 R코드와 함께 제공된다. 이 글을 읽은 여러분들이 주어진 데이터에서 다양한 종류의 결론을 도출하는 능력을 키울 수 있기를 희망한다.

(이 글은 데이터 과학의 프로세스 시리즈의 일부입니다.)

통계적 추론의 원리

앞서 통계적 추론은 표본을 바탕으로 모집단에 대한 결론을 유도하는 과정이라고 정의했다. 표본은 모집단에서 추출된 것이니, 충분히 많은 수의 표본이 있다면 모집단에 대해 정확히 이해할 수 있을 것이다. 하지만 우리에게 주어진 표본은 하나뿐이다. 그렇다면 어떻게 표본 하나에서 모집단에 관한 추론을 할 수 있을까?

이런 추론이 성립하기 위해서는 모집단의 특성 및 모집단에서 표본이 추출되는 과정에 대한 가정이 필요하다. 이를 안다면 반대로 표본에서 모집단의 특성을 유추해낼 수 있을 것이기 때문이다. 통계학에서는 이를 통칭하여 통계적 모델이라고 정의한다. 통계적 추론의 기법은 통계적 모델의 유형에 따라 크게 모수적 방법(parametric method)와 비모수적 방법(non-parametric method)로 나눌 수 있다. 아래 그림은 두 방법을 간단히 요약한다.

img/ch3_inf_methods.png

우선 모수적 방법은 표본이 생성된 과정에 대한 확률 분포를 알고 있거나 이를 추측할 수 있다고 가정한다. 확률 분포는 어떤 불확실한 사건의 가능한 결과와, 각 결과에 해당하는 확률의 분포다. 사건의 종류에 따라 정규 분포, 이항 분포 등 다양한 확률 분포가 존재한다. 여기서는 동전 던지기와 같이 두 가지 결과가 존재하는 사건으로 쉽게 설명되는 이항분포를 자세히 알아보자.

예컨대 주어진 표본이 p의 확률로 앞면이 나오는 동전을 n번 던져서 앞면이 나오는 횟수라고 하자. 그럼 우리가 모집단에 대해서 알아야 할 것은 동전을 던진 횟수 n과, 동전의 특성을 나타내는 p라는 값뿐이다. 일단 n과 p를 구할 수 있다면 여기서 얼마든지 추가적인 표본을 만들어낼 수 있기 때문이다. 여기서 확률 분포를 규정하는 값 n과 p를 모수(parameter)라고 한다.

하지만 우리가 관심을 갖는 현상이 동전이나 주사위 던지기의 결과가 아닌 이상 표본을 생성한 확률 분포를 정확히 알 수 있는 경우는 많지 않을 것이다. 다행히 우리가 관심을 갖는 통계값이 평균이고, 표본의 크기가 어느 정도 이상이라면 이 표본의 평균값은 정규분포를 (Normal Distribution) 따른다는 사실이 알려져 있다.

흔히 종모양에 비유하는 정규분포는 위 그림에서와 같이 평균값 주위로 대부분의 값이 모여있는 대칭형의 확률 분포다. 통계적 추론은 평균을 대상으로 하는 경우가 많기 때문에 모수적 방법은 쓸모가 많다. 주어진 표본의 평균과 표준편차만 구할 수 있으면 표본 평균이 이루는 분포를 구할 수 있기 때문이다.

하지만 우리가 관심을 갖는 통계값이 평균이 아니거나 (예: 중간값) 주어진 표본의 크기가 충분치 않은 경우 해당 통계값에 대해 정규분포를 가정할 수 없다. 이런 경우 비모수적 방법의 일종인 표본 재추출법(re-sampling)을 사용할 수 있다. 이는 요약하면 주어진 표본이 모집단이라고 가정하고, 모집단에서 (즉, 원래 우리에게 주어진 표본에서) 표본을 무작위로 반복 추출해서 해당 통계값의 분포를 만드는 기법이다. 즉 반복 추출을 통해 하나의 표본을 여러 표본의 집단으로 확장하는 것이다.

(주: 표본이 모집단이라는 가정이 합리적인 이유는 표본이 모집단에서 무작위로 추출된 결과이고, 따라서 모집단은 결국 크기가 아주 큰 표본에 불과하기 때문이다.)

이 두 방법은 서로 다른 가정에서 출발한다. 모수적 방법에서는 모집단이 특정한 분포를 가진다고 가정하지만, 표본 재추출법에서는 주어진 표본이 모집단이라고 가정하는 것이다. 모수적 방법의 가정의 성립하는 경우에는 간단한 연산으로 통계적 추론을 할 수 있으며, 그렇지 않은 경우에는 비모수적 방법을 사용하면 된다. 이제 모수적 방법과 비모수적 방법을 자세히 알아보자.

모수적 방법: 중심극한정리

앞서 설명한대로 모수적 방법에서 일반화의 문제를 풀기 위해 주로 사용하는 기법은 주어진 현상의 발생을 묘사하는 확률적인 모델을 만드는 것이다. 동전을 던졌을 때 앞면이 나올 개수를 설명하는 이항분포(binomial distribution), 우리가 흔히 알고 있는 정규분포(Normal Distribution) 등이 모두 여기서 속한다. 표본을 가지고 주어진 현상을 설명할 수 있는 통계적 모델을 만들 수 있다면, 이를 바탕으로 모집단에 대한 다양한 결론을 유도할 수 있을 것이라는 논리다.

문제는 우리가 다루고자 하는 문제와 데이터의 유형이 너무나 다양하며, 잘 알려진 현상이 아닌 이상 꼭 들어맞는 확률 모델을 찾기가 쉽지 않다는 점이다. 그렇다면 통계 이론이 쓸모가 없을까? 다행히도 통계학에서는 우리가 추론을 하고자 하는 대상 지표가 평균인 경우에는 원래 값의 분포에 관계없이 해당 표본의 평균값은 정규분포를 따른다는 결과가 알려져 있다. 통계학에서는 이를 중심극한정리(Central Limit Theorem)라고 한다.

좀더 구체적으로, 이는 우리가 구하고자 하는 통계값이 충분한 수의 표본으로부터 (보통 30을 기준으로 한다) 계산된 평균값인 경우, 원래 개별 측정 값의 분포와 관계없이 이 평균값의 분포는 정규분포를 따른다는 것을 의미한다. 이런 표본 평균의 분포를 표본 분포라고 (sampling distribution) 하는데, 표본 분포의 평균은 우리가 가진 표본의 평균값을, 그리고 표본 분포의 분산은 우리가 가진 표본의 분산을 표본의 수로 나는 것과 같다.

이를 그림을 통해 알아보자. 모집단 $P$에서 $n$개의 원소를 추출해서 만든 표본의 평균이 $E_k$이고 표준편차가 $\sqrt{V_k}$라고 가정하자. 그러면 중심극한정리로부터 이렇게 $n$개의 표본으로 이루어진 표본집합의 평균은 정규분포를 가지며, 이 정규분표의 평균이 $E_k$이고 표준편차가 $\sqrt{V_k/n}$이라는 사실을 알 수 있다. 이처럼 표본 하나의 평균과 분산으로부터 $n$의 크기를 갖는 표본 집합의 평균이 갖는 분포를 구하는 것이 통계적 추론의 핵심이다.

통계적 추론의 많은 기법은 대부분 표본 평균의 불확실성을 바탕으로 하기 때문에, 표본평균의 분포를 구하는 것은 나중에 다룰 신뢰구간이나 가설 검정의 기반이 된다. 표본 분포의 표준편차가 표본의 표준편차에 비례한다는 사실은 표본 자체의 측정값이 정확해야 표본 평균의 측정값이 정확해야 한다는 점을 보여준다.  또한, 이 분포의 분산이 표본의 수에 반비례한다는 사실로부터 왜 더 많은 표본을 모으는 것이 측정의 정확도를 높이는데 기여하는지를 알 수 있다.

요약하면 표본의 평균이 이루는 분포를 모집단의 분포와 구분하여 표본 분포라고 부르며, 중심극한정리를 사용하면 표본 분포가 정규분포를 따른다는 사실과, 그 분포의 평균과 표준편차를 구할 수 있다. 이때 표본 분포의 표준편차를 표본의 표준편차와 구분하여 표준에러(Standard Error)라고 부른다. 표본의 표준편차는 주어진 표본의 산포도를 요약하기 위한 지표이지만, 표준에러는 표본 추출에 의한 추정치와 모집단의 평균간의 거리를 나타내는 지표로 측정의 정확도를 나타낸다. 표본의 크기와 관계가 없는 표준편차와 달리 표준에러는 표본의 크기가 커질수록 작아진다는 점을 명심하자.

비모수적 방법: 표본 재추출법

지금까지 소개한 모수적 방법은 이미 알려진 분포를 갖는 표본에 대한 추론에 적합하다. 그리고 적당한 크기의 표본에서 평균값에 대한 추론을 할 경우에는 원래 모집단의 분포에 관계없이 표본 평균이 정규분포를 따른다는 사실도 소개했다. 하지만 모집단의 분포를 모르거나, 표본 평균이 아닌 다른 통계값을 사용하고 싶다면 어떻게 해야 할까?

이런 상황에서 통계적 추론을 위해 사용할 수 있는 기법이 비모수적 기법이다. 사실 비모수적 기법에는 여러 종류가 있는데 통계적 추론을 위한 비모수적 기법을 표본 재추출법(resampling method) 혹은 부트스트래핑(bootstrapping) 기법이라고 부른다. 표본 재추출법이라는 이름은 주어진 표본을 모집단으로 가정하고, 여기서 표본을 여러 번 추출하여 표본 분포를 직접 만든다는 의미에서 유래된 것이다.

표본 하나에서 이와 비슷한 특성을 갖는 여력개의 표본을 만들어내는 것이 목적이므로, 이때 사용되는 추출법은 복원추출이다. 복원 추출은 표본 추출시 매번 주어진 표본 전체를 대상으로 추출하는 것을 가리킨다. 말하자면 공이 든 주머니에서 공을 여러 개 꺼낼 때, 매번 꺼냈던 공을 도로 넣고 꺼내는 것에 비유할 수 있다. 표본 재추출법의 절차를 좀더 자세히 살펴보자.

  1. 우리에게 주어진 크기 $n$의 표본이 하나 있다.
  2. 표본에서 복원추출을 통해 크기 $n$인 표본 $k$개를 만든다.
  3. 각 표본에서 추론 대상인 통계값 $S$를 계산한다.
  4. 위에서 구한 $k$개의 통계값 $S$를 바탕으로 표본 분표를 만든다.

img/ch3_inf_bootstrap.png

위에서 살펴본 것처럼 재추출법은 모집단에 대한 어떤 가정도 필요로 하지 않는다. 또한 주어진 표본을 바탕으로 여러 개의 표본을 만들어내기 때문에, 이를 바탕으로 어떤 종류의 통계값도 계산해낼 수 있다. 따라서 재추출법에서는 평균 이외에 다른 지표의 표본 분포도 만들어낼 수 있다. 재추출법은 계산량이 많다는 단점이 있지만, 컴퓨터 성능의 비약적인 향상에 따라 현재는 다양한 분야에서 널리 사용된다.

모수적 방법과 비모수적 방법의 비교

표본 분포를 만드는 두가지 방법으로 중심극한정리에 근거한 모수적 방법과 표본 재추출법을 사용하는 비모수적 방법을 소개했다. 이제 지금까지 설명한 이론을 사례를 통해 구체적으로 알아보자. 이 사례에서는 평균에 대한 표본 분포를 만드는데 있어서 두가지 방법이 같은 결과를 보인다는 점을 설명한다.

우선 다음과 같은 세가지 분포에서 100000개의 원소를 추출하여 만든 모집단을 가정한다.

  • p1: 이항분포 (앞면이 나올 확률이 20%인 동전을 4번 던졌을 때 나오는 앞면의 개수)
  • p2: 정규분포 (평균 2, 표준편차 1)
  • p3: 균등분포 (0부터 3까지 범위에서 균등한 확률)

각 모집단의 히스토그램을 그린 결과는 다음과 같다.

이제 각 모집단을 바탕으로 표본 분포(표본 평균의 분포)를 구해보자. 각 모집단에 대해 36개의 항목으로 구성된 표본 10,000개의 평균의 분포를 구한 결과는 다음과 같다. 모집단의 모양에 관계없이 모두 종모양의 정규분포 형태를 띠는 것을 알 수 있다. 이 결과는 앞서 중심극한정리에서 설명한 내용을 실한다.

이제 모수적 방법과 비모수적 방법으로 만들어진 표본 분포를 비교해보자. 아래는 중심극한정리를 기반하여 구한 정규분포와 표본 재추출법으로 만들어진 표본 분포의 확률 분포를 비교한 것이다. (실선: 비모수적 방법 / 점선: 모수적 방법) 표본 분포가 거의 같은 모양을 띠는 것으로부터, 평균에 대한 추론을 하는데 있어서는 어떤 방법을 사용해도 같은 결과를 얻을 수 있다.

통계적 추론의 유형

지금까지 주어진 표본을 바탕으로 표본 분포를 구하는 방법을 알아보았다. 이처럼 측정 대상 지표에 대하여 표본 분포를 구하고 나면 이를 바탕으로 추정치의 신뢰 구간을 구하거나 데이터에 대한 가설을 검증하는 등의 다양한 통계적 추론을 할 수 있다. 위에서 구한 표본 분포를 바탕으로 여기서는 다양한 분석을 수행하는 방법을 알아보자.

신뢰구간 (Confidence Interval) 구하기

통계적 추론의 가장 기본적인 작업은 모집단의 통계값을 추정하는 것이다. 이처럼 제한된 표본에 근거한 추정은 필연적으로 오류의 가능성을 수반하는데, 이런 오류의 정도를 수치화하는 것이 신뢰구간의 역할이다. 말하자면 신뢰구간은 모집단의 평균값을 어떤 특정한 신뢰도 (예: 95%) 이상의 확률로 포함할 것으로 추정되는 구간이다. 따라서 신뢰구간의 범위가 좁을수록 더 정확한 측정값으로 간주할 수 있다.

여기서 의문을 갖는 독자들이 있을 것이다. 모집단의 평균과 표본이 (즉 신뢰구간의 값이) 이미 정해진 상황에서 신뢰구간이 어떻게 모집단의 평균을 포함할 확률을 정의할 수 있을까? 엄밀히 말하면 개별 표본에서 만들어진 신뢰구간은 모집단의 평균을 포함하거나 포함하지 않는다. 위에서 95%는 충분한 수의 표본을 바탕으로 신뢰 구간을 계산했을 때 그중 95%의 신뢰구간에 모집단의 평균이 포함된다는 뜻이다.

이를 사례를 통해 알아보자. 아래 그림은 앞선 예제에서 사용한 모집단 p1에서 추출한 크기 36인 표본 100개를 바탕으로 95% 신뢰구간을 구한 결과다. 그림의 수평선은 모집단의 평균을 (약 0.8), 꺽쇠가 달린 수직선은 각 표본의 신뢰구간을 나타낸다. 아래 그림을 살펴보면 대부분의 신뢰구간이 0.4~1.2사이에 위치하며, 약 5개 정도의 신뢰구간이 모집단의 평균을 포함하지 않는다는 사실을 알 수 있다.

좀 더 큰 표본을 사용하면 어떻게 될까? 아래 플롯은 크기 144인 표본 100개를 바탕으로 구한 신뢰구간을 보여준다. 대부분의 값이 0.6~1.0사이에 위치하며, 여전히 약 5개 정도의 표본이 모집단의 평균을 포함하지 않는다는 것을 알 수 있다. 이로부터 신뢰구간의 신뢰도는 개별 신뢰구간에 대해 정의되는 것이 아니라 모집단의 평균을 포함하는 신뢰구간의 비율을 가리키며, 표본의 크기가 커짐에 따라 신뢰구간이 좁아진다는 점을 알 수 있다.

지금까지 신뢰구간의 개념을 알아보았다. 이제 주어진 지표의 신뢰구간을 구하는 방법을 구체적으로 알아보자. 우선 모수적 방법을 통하여 평균의 신뢰구간을 구하는 공식은 다음과 같다.

$신뢰구간=표본평균\pm{신뢰도상수\times{표준에러}}$

즉, 신뢰구간의 크기는 신뢰도상수 및 표준에러의 크기에 비례한다. 이때 신뢰도 상수는 우리가 목표로 하는 신뢰도가 높아질수록 커지는데, 일반적으로 사용하는 95%의 신뢰도에서는 1.96을, 99%의 신뢰도에서는 2.58을 사용한다. 좀더 신뢰도를 높게 잡을수록 추정치의 정확도(precision)는 떨어지지만, 모집단의 지표값이 신뢰구간에 포함되지 않는 오류를 범할 확률은 낮아지는 것이다.

$표준에러=\frac{표본의 표준편차}{\sqrt{표본크기}}$

여기서 표준에러는 앞서 살펴본 대로 주어진 표본의 표준편차를 표본 크기의 제곱근으로 나눈 값이다. 따라서 주어진 표본을 바탕으로 계산한 통계값의 표준편차가 작을수록, 그리고 더 큰 표본을 사용할수록 신뢰구간을 좁힐 수 있다는 (즉, 더 정확한 추정이 가능하다는) 해석이 가능하다. 즉, 더 정확한 측정치와 더 많은 데이터는 높은 신뢰도로 연결되는 것이다.

비모수적 방법을 통한 신뢰구간의 계산은 좀더 단순하다. 우선 주어진 표본에서 반복 재추출을 통해 주어진 표본과 같은 크기를 갖는 $k$개의 표본을 만들었다면, 각 표본에서 우리가 원하는 지표값 $S$를 계산해낼 수 있다. 이렇게 $k$개의 원소로 구성된 지표 $S$의 표본분포를 얻었다면, 주어진 지표 $S$의 95% 신뢰구간은 표본분포에서 하위 2.5%의 값과 상위 2.5%의 값이 갖는 구간이다. 평균에 대한 신뢰구간만 구할 수 있는 모수적 방법과는 달리 여기서 지표 $S$는 평균이거나 다른 임의의 지표가 될 수 있기에, 비모수적 방법을 이용하면 임의의 지표에 대한 신뢰구간을 구할 수 있다.

가설 검정하기 (Hypothesis Testing)

많은 경우 분석의 목적은 어떤 명제에 대한 참/거짓 여부를 가리는 것이다. 이런 명제는 주어진 데이터를 통해서 검증되기 전까지는 가설(hypothesis)이라고 할 수 있다. 가설 검증(hypothesis testing)은 이처럼 데이터를 통해 주어진 명제의 진위를 밝히는 일이다. 앞서 설명한 신뢰구간 계산이 추정된 값의 정확도를 밝히는 작업이라면, 가설 검정은 주어진 데이터가 가설을 얼마나 뒷받침하는지를 계량화하는 단계다.

가설 검증에 사용되는 명제는 우리가 관심을 갖는 검정 통계값(test statistic)에 대한 조건으로 정의될 수 있다. 예컨데 어떤 집단에 속하는 학생들의 성적이 특정 기준치에 대해서 높거나 낮다고 말하는 것이 가설의 예다. 이때 통계값은 해당 집단의 학생 성적의 평균이다. 아니면 두 집단의 학생의 성적을 비교하는 것도 가능하다. 이때는 두 학생 집단의 성적 차이가 통계값이 된다.

가설 검증에서는 위에서 정의한 통계값에 대한 다양한 가설이 주어진 데이터에 의해서 얼마나 지지되는지를 평가한다. 이때 우리가 증명하고자 하는 명제를 대립가설이라고 하고, 우리가 부정하려는 명제를 귀무가설이라고 한다. 예컨대 두 집단의 평균에 유의미한 차이가 있다는 명제를 (대립가설) 증명하고자 한다면 , 두 집단의 평균에 유의미한 차이가 없다는 명제가 귀무가설이 된다.

신뢰구간 계산과 가설 검정은 밀접하게 연관되어 있다. 가설 검정의 결과는 우리가 관심을 갖는 통계값이 속하는 범위에 따라 결정되기 때문이다. 즉, 어떤 통계값에 대한 신뢰구간을 구할 수 있다면, 해당 통계값을 어떤 정해진 값과 (예: 0) 비교하는 가설도 검정될 수 있다. 이런 의미에서 신뢰구간과 가설검정은 동전의 양면과 같다.

이를 좀더 구체적으로 알아보자. 우리가 관심을 갖는 통계량이 두 집단의 평균의 차이라고 가정하자. 예컨대 한 학생 집단과 다른 학생 집단의 학업 성취도를 비교하는 문제가 이에 해당한다. 사실 대조군과 통제군을 갖는 대부분의 실험이 이와 같은 평균의 차이를 알아내는 것을 목표로 한다.

우선 신뢰구간을 통해 두 집단 사이에 유의미한 차이가 있는지를 알아보자. 유의미한 차이가 있는지의 여부는 결국 신뢰구간이 0을 포함하는 지의 문제라고 할 수 있다. 따라서 우선 평균의 차이에 대한 신뢰구간을 구하고, 이 신뢰구간에 0이 포함되는지를 확인하면 될 것이다. 만약 95% 신뢰구간에 0이 포함되지 않는다면 두 집단 사이에 유의미한 차이가 있을 확률은 5%미만으로 볼 수 있다.

이번에는 같은 문제를 가설 검정을 통해 해결하는 절차를 알아보자. 문자 그대로 가설 검정은 주어진 문제에 대한 가설에서 출발한다. 여기서는 두 집단의 평균의 차이가 없다는 것이 가설이다. 일단 가설을 세우면 주어진 가설하에서 우리가 관심을 갖는 통계량이 (여기서는 두 집단의 평균의 차이) 어떤 분포를 갖는지를 생각해볼 수 있다. 이는 앞에서 구한 표본분포과 같은 모양을 지니지만 평균만 0을 갖는 분포가 된다. (두 집단에 평균의 차이가 없다고 가정했으므로)

마지막으로 이 가설이 우리가 가진 데이터에 의해 얼마나 잘 설명되는지를 알기 위해서는 데이터에서 계산된 표본평균이 이 분포에서 어디에 위치하는지를 확인한다. 만약 표본평균이 해당 분포의 양쪽 극단에 위치한다면 주어진 가설은 데이터를 설명하기에는 그다지 적절하지 않다는 결론을 낼 수 있다. 그리고 우리가 관찰한 표본평균 및 이보다 더 극단적인 값이 주어진 가설 하에서 관찰될 확률을 유의성(significance)으로 정의한다.

아래 그림은 실제 평균이 두 집단간의 평균의 차이에 대한 95% 신뢰구간이 0을 포함하고 있으며, 이와 동시에 두 집단간의 평균의 차이가 0이 아니라는 가설을 기각할 수 없는 상황을 그림으로 보여준다. 이처럼 가설 검정과 신뢰구간은 밀접하게 관련되어 있으며, 두 집단의 평균에 차이가 없다는 가설이 주어진 데이터에 의해 얼만큼 지지되는지를 판단하기 위해 사용될 수 있다.

img/ch3_inf_conf_hypo.png

신뢰구간과 가설 검정간의 관계를 사례를 통해 알아보자. 아래 그림은 앞선 예제에서 사용한 모집단 p1에서 추출한 크기 36인 표본 100개를 바탕으로 95% 신뢰구간을 구한 결과다. 이제 그림의 각 표본에 대해 평균이 0.5가 넘는다는 가설을 검정한다고 생각해보자. 이를 위해서는 각 표본에 대해 신뢰구간이 0.5를 지나는지 확인하면 된다. 아래 표본에 대해 이를 확인해보면 약 59%에 대해 이 사실이 성립한다. 그리고 정확히 같은 수의 표본에 대해서 우리는  평균이 0.5와  같다는 귀무가설을 기각할 수 있다.

크기 144인 표본에 대해 같은 분석을 수행해보자. 아래 그림에서 보듯이 신뢰구간이 0.5를 지나는 표본은 단 하나에 불과하다. 같은 원리로 99개의 표본에 대하여 모집단의 평균이 0.5와 같다는 귀무가설을 기각할 수 있다. 앞에서와 마찬가지로 큰 표본은 정확한 추정치와 함께 통계적으로 유의미한 결론을 얻을 확률을 높인다는 사실을 알 수 있다.

마치며: 통계적 추론의 가능성과 한계를 인식해야

저명한 통계학자 조지 박스(George Box)는 “모든 모델을 잘못되었다. 하지만 그 중 몇몇은 유용하다.”는 말을 남겼다. 이 말에서처럼 현실을 단순화하는 모델은 본질적으로 오류의 가능성을 피할 수 없다. 하지만 이런 단순화를 통해 현상의 정수를 포착한 모델은 우리가 제한된 데이터로부터 유용한 결론을 내릴 수 있도록 도와준다.

이 장에서는 제한된 표본을 바탕으로 모집단에 대한 다양한 결론을 내릴 수 있도록 도와주는 통계적 추론 기법에 대해 알아보았다. 여기서는 수치형 지표의 신뢰구간과 가설검정에 대해 알아보았지만, 실제로는 자료형 및 데이터의 특성에 따라 다양한 통계적 추론 기법이 존재한다. 하지만 모수적 방법과 비모수적 방법의 기본적인 개념을 이해한다면 다른 기법을 공부하는데 큰 어려움이 없을 것이라고 믿는다.

마지막으로 현실 세계의 문제를 해결하는데 있어서 주어진 문제에 맞는 통계적 기법을 적절히 적용하기 위해서는 고려해야 할 것이 많다는 사실을 강조하고 싶다. 최근 데이터 저널리즘 사이트인 FiveThirtyEight에서는 ‘축구 심판들이 어두운 피부톤을 가진 선수들에게 (주로 흑인들) 퇴장을 더 많이 주는가?’라는 질문에 대해 같은 데이터를 바탕으로 서른개가 넘는 연구팀에서 연구한 결과를 소개했다. 아래 왼쪽의 표는 각 연구팀이 사용한 분석 기법, 오른쪽의 차트는 각 팀이 도출한 결과값 (흑인의 퇴장 확률 / 백인의 퇴장 확률)의 평균 및 신뢰구간을 보여준다.

2015-10-06 11_09_13-Science Isn’t Broken _ FiveThirtyEight

위 결과에 따르면 다수의 연구팀이 흑인 선수들이 퇴장당할 확률이 백인에 비해 1.5배 높다는 결론을 내기는 했지만, 차트를 자세히 보면 각 연구팀이 도출한 결과는 상당한 차이를 보인다. 퇴장 비율의 평균에 있어서도 1배에서 3배까지 다양한 분포를 보이며, 퇴장 비율의 신뢰구간이 0을 포함하는 결과도 다수 발견된다. 만약 이들 중 어떤 팀에게 연구 용역을 주었다면, 어떤 팀을 선정했느냐에 따라 다른 결과를 얻었을 것이다.

이처럼 풍부한 연구 경험을 지닌 팀들도 서로 완전히 일치하는 결과를 얻기 힘들다는 사실은 데이터에서 어떤 결론을 유도할 때 항상 주의해야 한다는 점을 일깨워준다. 데이터 자체의 오류는 없는지, 우리가 선택한 분석 기법이 데이터의 다양한 특성에 부합하는지, 분석 기법을 적용하고 해석하는데 있어서 오류는 없는지 자세히 살펴야 할 것이다. 그리고 이런 고려가 끝난 후에도 표본에서 내리는 결론의 한계를 항상 유의해야 할 것이다.

p.s. 이 글의 초고를 검토해주신 이성훈, 김성철님 외 익명의 독자분들께 감사의 뜻을 전합니다. 본 글에서 사용된 데이터 및 소스는 여기서 받아 실습해보실 수 있습니다. 질문/의견은 이곳으로 주시면 됩니다.

공공 데이터의 탐험적 분석: 한국의 자살률 급증, 그 원인은?

공개 데이터 중 가장 잘 알려진 것이 정부 등 각종 기구에서 공개하는 공공 데이터일 것이다. 공공의 복리를 추구하는 많은 기관에서는 데이터를 공개해 왔지만, 최근 데이터 공개에 대한 인식이 확산됨에 따라 점차 많은 기관이 데이터 공개에 동참하고 있다. 우리가 관심을 가질만한 대부분의 영역에 공공기관이 존재하기 때문에, 사실 공공 데이터를 잘 활용하면 다양한 데이터를 손쉽게 구할 수 있다.

공공 데이터의 특성상 사회 문제를 다루기에 적합하다. 이번에 다룰 주제는 우리 나라의 자살률이다. 미국에 2007년부터 거주하고 있는 필자는 우리나라가 자살률이 전세계에서 1위라는 보도를 접할 때마다 가슴이 철렁하곤 했다. 자살은 개인이 내릴 수 있는 선택 가운데 가장 극단적인 만큼, 우리 사회의 어두운 단면을 반영한 결과일 것이라는 생각에서 였다. 이런 개인적인 관심을 데이터로 풀어보는 것이 이 글의 목적이다.

지난 글에서 탐험적 데이터 분석을 다루었는데, 주제의 특성상 이번 데이터 분석은 복잡한 현상을 다양한 관점에서 들어다보는 탐험적 분석의 성격을 띤다. ‘우리 나라의 높은 자살률’이라는 현상에는 수많은 단편이 있을 것이다. 이런 단편중 문제의 핵심이 되는 부분을 골라서 심층 분석하고, 이를 통해 문제의 본질에 가까이 가는 것이 목표다. 이 과정에서 다양한 공개 데이터가 필요하기에, 이런 데이터를 찾고 활용하는 방법을 배우는 데도 의의가 있다.

우리 나라의 자살율은 정말 세계 1위일까?

우선, 문제가 되는 OECD의 자살률 통계를 실제로 찾아보자. OECD 데이터 홈페이지 (https://data.oecd.org)에 가서 suicide를 검색하면 첫번째 결과로 자살률(suicide rate)을 찾을 수 있다. 실제로 2012년 통계에 따르면 한국의 자살률이 리투아니아와 함께 1위로 나온다. 사실이 아니기를 바랬는데, 엄연한 사실이었다.

자살률의 연도별 변화 추이를 확인하기 위해서는 타임(Time) 슬라이더를 조정해서 1990년부터 2012년까지의 자살률을 다음과 같이 선택해보자. 이를 통해 국가별/년도별 자살률의 변화 추이를 볼 수 있지만, 결과가 모두 회색으로 표시되어 제대로 구분되지 않는다. 이제 몇개의 국가를 선택하여 자살률을 비교해 보자. 필자는 한국과 헝가리, 그리고 일본을 선택했다.

일본의 자살률은 90년대 후반 증가하였지만 정체기에 접어들었고, 헝가리의 경우 꾸준히 낮아지고 있는데 반해, 우리 나라의 자살률은 꾸준히 증가하고 있는 것을 볼 수 있다. 1998년 경제위기와 맞물려 큰 폭의 증가가 있었고, 2000년대 이후에도 계속 증가하는 추세다. 정말 뭔가 문제가 있는 것이다. OECD는 성별 자살률 통계도 제공하고 있으니, 이번에는 남녀로 나누어 데이터를 살펴보자. 아래는 남녀로 나누어 알아본 국가별 자살률의 변화 추세다. (왼쪽: 남자 / 오른쪽: 여자)

각 국가의 남녀별 자살률 트렌드가 상당히 다른 것을 알 수 있다. 헝가리의 경우 여성의 자살률 감소가 두드러지고, 일본의 경우 여성의 자살률은 1998년 잠깐 증가한 이래로 비슷한 수준을 유지하고 있다. 놀랍게도 우리나라의 성별 자살률은 2000년 이후로 여성이 훨씬 큰 폭의 증가율을 보이고 있다. 그 결과 2012년 우리나라 남성의 자살률은 다른 국가들과 비슷한 수준인 반면 여성의 자살률은 다른 국가와 큰 차이를 보이고 있다. 도대체 무슨 일이 일어난 것일까?

자살의 다양한 단면들

이제 자살률이 이렇게까지 증가한 원인을 파해쳐 보자. 우리나라의 자살률에 대한 자료를 찾다 보면 위키피디아의 관련 페이지(https://en.wikipedia.org/wiki/Suicide_in_South_Korea)를 찾을 수 있다. 다양한 연구자료에 근거하여 작성된 이 페이지에 따르면 실제로 우리 나라의 자살률이 급증한 배경에는 노년층 및 여성의 자살 증가가 큰 요인이었음을 알 수 있다.

모방에 의한 자살

그런데 이 페이지에서 언급한 자살률 증가의 원인 가운데 ‘유명인의 자살에 따른 모방’이 등장한다. 이에 관련된 논문이^[Fu, King-Wa, C. H. Chan, and Michel Botbol. “A Study of the Impact of Thirteen Celebrity Suicides on Subsequent Suicide Rates in South Korea from 2005 to 2009.” PLoS ONE, 2013, E53870.] 있어 한번 읽어보기로 했다. 2005년부터 2009년까지 발생한 유명인의 자살 13건이 사회 전체의 자살률 변화에 끼치는 영향을 다룬 이 논문에 따르면 실제로 그중 세건의 자살은 계절 및 실업률 등 다른 요인을 고려한 후에도 자살률에 유의미한 증가를 가져왔다고 한다.

논문에 등장하는 아래 차트에서는 유명인의 자살이라는 사건들이(수직 점선으로 표시) 주간 자살률 트렌드에 어떤 영향을 나타내는지 보여준다. 실제로 2005년 초, 2007년 초, 그리고 2008년 말에 있었던 유명인의 자살 이후 자살률이 확 치솟는 것을 볼 수가 있다. 그리고 유명인의 자살이 잇달았던 2009년은 OECD 통계에서 우리나라 여성의 자살률이 정점을 찍었던 해다.

그렇다면 실제로 어떤 계층의 자살률이 증가한 것일까? 유명인의 자살에 대한 모방이라면 아무래도 젊은 층에서 두드러지게 나타났을 가능성이 높아보인다. 이를 확인하기 위해서는 성별, 연령별 자살률 데이터가 필요하다. 그리고 통계청에서 운영하는 국가 통계 포탈 사이트 KOSIS(http://kosis.kr/)에서는 이 데이터를 찾을 수 있다. 아래는 KOSIS 홈페이지에서 ‘자살’을 검색한 결과다.

여기서 ‘전국 주요사인별 사망률’을 선택하면 관련 통계자료를 볼 수 있다. 우리가 관심을 갖는 여성의 연령별 자살률을 보기 위해서는 ‘일괄설정’ 메뉴로 들어가 다음과 같이 선택을 하면 된다.

선택을 완료한 후에 ‘적용’을 누르면 기간별 연령대별 여성의 자살률을 표 형태로 볼 수 있다. 좀더 한눈에 들어오는 결과를 보기 위해서는 표 오른쪽 위의 차트 버튼을 눌러 시각화를 본다. 결과적으로 다음과 같은 차트를 볼 수 있다. 연도별 그래프의 가장 왼쪽의 막대는 10대 초반 여자의 자살률을 나타내며, 오른쪽으로 갈수록 더 높은 연령대의 자살률을 보여준다. (년도별 막대의 가장 오른쪽은 80대 이상의 자살률)

위 차트에서는 실제로 2005년부터 젊은 여성의 자살률이 급증한 것을 볼 수 있다. 이런 현상이 연예인들의 자살에 기인한 결과라고만 볼수는 없지만 세대별 자살률의 분포를 완전히 바꾸어 놓을 정도로 큰 변화가 생긴 것이다. 젊은 여성의 자살률은 2012년부터 조금 진정되는 모습을 보이지만 아직도 2003년과는 다른 추세를 보인다.

(주: 같은 기간에 남성의 자살률을 보면 나이 증가에 따라 자살률이 증가하는 추세를 볼 수 있다)

장년층의 자살

이번에는 조금 시계를 되돌려 1998년 IMF위기에 나타났던 자살률 증가의 원인을 살펴보자. 위와 같은 방식으로 1995년부터 2000년 까지 성별 연령별 자살률의 분포를 알아본 결과는 다음과 같다. (위: 남성 / 아래: 여성)

위 그래프에서도 1998년 남자 장년층의 자살률이 갑자기 급증하는 것을 볼 수 있다. 여성 장년층의 경우도 얼마간 영향을 받았지만 그 정도는 상대적으로 미미하다. 다시금 그 시대를 가장으로 살아야 했던 우리 아버지 세대의 무거웠을 짐이 느껴지는 순간이다.

노년층의 자살

마지막으로 지금까지 살펴본 자살률 트렌드를 좀더 거시적인 관점에서 살펴보자. 아래 그래프는 1990년부터 2013년까지의 성별 세대별 자살률의 분포다. (위: 남성 / 아래: 여성 / 각 그래프의 가장 아래는 10대 초반, 가장 위는 80대 이상)

위 그래프에서는 위에서 살펴보았던 1998년 남자 장년층의 자살률 급증, 그리고 2005년부터 시작된 젊은 여성의 자살률 증가가 뚜렷히 드러난다. 하지만 가장 뚜렷한 트렌드는 노년층의 자살률 증가다. 1990년만 해도 다른 세대에 비해 그다지 높은 자살률을 보이지 않았던 노년층의 자살률은 해가 갈수록 급증하는 추세를 보이다가 2002년 이후는 다른 연령 집단의 자살률을 압도하는 수준을 보인다. 도대체 무슨 일이 벌어진 것일까?

각종 보도자료에 따르면 이런 현상의 배경에는 우리 사회의 여러 변화가 자리하고 있다. 사회의 핵가족화 등의 많은 어르신들은 자식들과 격리되어 쓸쓸한 여생을 보낸다. 여기에 더하여 황혼 이혼도 증가했다. 그리고 특히 변변한 벌이도 없는 상황에서 경제 불황으로 자식들의 손을 빌리기도 어렵게 되면 자살을 선택하는 어르신들이 많다고 한다. 그야말로 슬픈 현실이 아닐 수 없다.

맺음말

이번 글에서는 공공 데이터를 이용한 탐험적 데이터 분석의 사례로 우리나라의 높은 자살률을 살펴보았다. OECD 통계자료에서 출발하여, 관련 논문 및 통계청 자료를 통해 좀더 성별, 연령별 자살률 증가의 원인을 구체적으로 살펴보았다. 데이터의 유형 및 양에 따라 다양한 시각화 방법을 선택하고, 이를 통해 데이터가 드러내는 추세를 좀더 정확히 살펴볼 수 있다는 점을 알았다.

우리 사회를 어둡게 했던 여러 사건들이 실제로 자살률이라는 구체적인 수치로 확인되는 과정이 오싹하기도 하다. 10년쨰 OECD 국가중 자살률이 1위라는 것은 분명 슬프고 착잡한 현실이지만 데이터를 통해 자살이라는 사회 현상의 원인을 좀더 명확히 이해하는 것이 문제 해결의 첫걸음이라는 생각을 해본다.

공개 데이터셋

이 글에 사용된 데이터셋을 포함하여 다양한 공개 데이터셋을 구할 수 있는 방법을 소개한다.

일반 데이터셋

분야별 데이터셋

국내 데이터셋

SIGIR’15 학회에서 엿보는 정보검색 분야의 연구 동향

검색 연구자로서 필자는 지난 7-8년간 매년 관련 분야의 학회에서 논문을 발표하고 워크숍을 주최하는 등 다양한 활동을 해왔다. 대학원을 졸업하고 회사에서 일하기 시작한 뒤에도 관련 분야의 학회 참석은 최선 연구 및 업계의 동향을 따라잡고, 때로는 회사에서 진행하는 연구 프로젝트의 결과를 공유할 수 있는 기회를 제공한다. 이런 활동이 없다면 박사 학위를 마쳤다고 해도 몇년이 지나면 분야의 최신 흐름에서 멀어지게 되니, 연구자에게 학회 참석은 선택이 아닌 필수라고 하겠다.

최근에는 (2015년 8월) 칠레 산티아고에서 열린 학회인 SIGIR에 참석할 기회가 있었다. SIGIR은 정보검색(Information Retrieval) 분야의 대표적인 국제 학회로 세계 유수의 대학을 포함한 연구기관, 그리고 검색 분야의 대표적인 회사들이 모두 참여한다. SIGIR의 프로그램은 학술 논문 발표를 중심으로, 각 세부 분야별 워크숍과 튜토리얼 등으로 이루어지는데, 필자는 현재 주 업무 분야인 검색 평가 방법에 대한 튜토리얼을 진행했다.

본 글에서는 학회에서 보고 들은 내용을 바탕으로 정보검색 분야의 최신 연구흐름을 공유하고자 한다. 데이터 과학을 공부하는 여러분이 모두 이 분야에 종사하지는 않겠지만, 정보 검색이라는 분야가 대용량 데이터 처리기술 및 기계학습과 같은 많은 분야의 발전에 주도적인 역할을 수행해왔고, 사용자에게 원하는 정보를 제공하는 것이 온라인 서비스의 기본이라는 것을 감안하면 정보 검색에 대한 이해는 여러분에게 큰 도움이 될 것이라는 생각이다. 본 글에서 모든 내용을 다 소개할 수는 없지만, 관련 연구에 대한 좀더 깊은 탐구를 해보고 싶은 여러분들은 여기에서 참조된 논문을 읽어볼 수 있을 것이다.

웹문서 검색에서 지능형 비서로

전통적인 검색 연구는 주어진 질의어에 (검색 키워드) 대해 가장 적절한 문서를 랭킹하여 순서대로 보여주는 사용자 인터페이스를 가정한다. 이는 구글, 빙, 그리고 네이버 등 모든 웹 검색엔진에서도 기본적으로 채택하는 방식이다. 따라서 검색 연구의 대상으로 주어진 질의어를 바탕으로 문서를 평가할 수 있는 랭킹 모델의 개발과 평가가 주를 이루어왔다. 사용자에 따라 다른 결과를 보여주는 개인화 검색이 한창 연구되고 있지만, 이 역시 문서의 랭킹에 사용자 각각의 취향을 고려하는 모델에 국한되어 왔다.

하지만 최근들어 검색엔진은 단순한 ‘문서 찾기’를 넘어선 종합적인 정보 서비스로 진화해 왔다. 검색 결과에 단순 문서뿐 아니라 이미지, 비디오, 뉴스, 지도 등을 보여주는 통합 검색이 일반화 되었고, 모바일 기기의 확산에 따라 사용자가 질의어를 입력하는 것이 아니라 음성으로 던지는 질문에 대한 대답을 음성으로 들려주는 시리(Siri), 코타나(Cortana) 등 인공지능 비서와 (Intelligent Assistant) 같은 서비스도 등장하고 있다. 또한 구글 나우와 (Google Now) 같이 사용자의 질의어가 없이도 사용자가 원할만한 결과를 보여주는 적극적 (proactive) 검색도 나왔다.

이번 학회에서도 이런 새로운 검색 환경과 기법에 대한 다양한 연구결과가 발표되었다. 우선 마이크로소프트에서는 여러 사용자가 디바이스를 (컴퓨터, 타블렛 등) 공유할 때 개별 사용자를 자동으로 식별하여 개인화된 서비스를 제공하는 방법에 대한 논문을 발표하였다. 예를 들어 가족이 공용으로 쓰는 컴퓨터에서 검색을 하면 검색 엔진에서 가족 구성원 중 누가 검색을 하는지를 판단하여 그에 맞는 서비스를 제공하려는 것이다. 이를 그림으로 설명하면 다음과 같다.

또한 구글에서는 웹상에 흩어져있는 이벤트 정보를 자동으로 추출하는 알고리즘에 대한 논문을 발표하였다. 이 알고리즘를 간단히 설명하면, (1) 이벤트 정보가 포함되었을만한 문서를 찾고, (2) 이벤트가 언급된 문서의 부분을 추출한 후 (3) 이벤트의 날짜/장소/시간 정보를 추출하는 순서로 작동하며, (1)에는 정보 검색 기술이, (2)와 (3)에는 정보 추출 기술이 사용된다. 이렇게 추출된 이벤트는 구글 나우의 개인화된 이벤트 추천 서비스에 활용되는 것으로 알려져 있다.

마지막으로 야후!와 중국의 칭화대에서는 웹과 다른 종류의 검색결과가 혼재된 검색 결과 페이지에서 사용자가 어떻게 행동하는지에 대한 연구결과를 발표하였다. 이들은 검색결과의 유형 (이미지/웹/뉴스 등) 및 품질에 따라 사용자의 주의도가 다양하게 분산되는 것을 발견하였다. 아래 그림은 뉴스와 이미지 결과가 존재하는 검색 결과에서 사용자의 시선이 어떻게 움직이는지를 히트맵(heat map)으로 보여준다. 이런 사용자 행동에 대한 이해는 검색엔진이 페이지의 레이아웃을 최적화하는데 다양하게 활용될 수 있다.

사용자 중심의 연구 방법론

위에서 살펴본 것처럼 현대의 검색엔진은 단순 질의어와 매칭되는 문서를 나열하는 것이 아니라 사용자가 필요한 정보를 원하는 시점에 가장 편리한 형태로 보여주는 것을 목표로 한다. 하지만 제대로 된 지도와 나침반이 있어야 방향감각을 잃지 않고 먼 길을 갈 수 있듯이, 이렇게 고도화된 검색엔진을 지속적으로 개선하기 위해서는 그 결과를 검증할 수 있는 연구 및 평가 방법이 뒷받침되어야 한다. 필자의 주 업무 분야인 검색 품질의 평가는 이런 의미에서 검색 연구 및 개발의 방향을 제시한다.

정보 검색 연구자들은 검색 모델을 만드는 방법 만큼이나 만들어진 모델을 평가하는 방법에 대해서도 오랫동안 연구해왔다. TREC(Text REtrieval Conference)으로 대표되는 전통적인 평가 기법은 각 검색 토픽에 대한 정답셋을 만들고 이 문서들을 가장 상위에 보여주는 시스템을 높게 평가하는 방식이다. 그리고 육상 선수들이 각 종목별로 신기록을 달성하기 위해 노력하듯이, 정보 검색 연구의 초점은 대표적인 TREC 데이터셋에서 좀더 고성능을 거두는 방향에 집중되어 왔다.

하지만 이런 전통적 정보 검색의 연구 및 평가 방법론이 실제 사용자의 만족도를 제대로 반영할 수 있는지에 대해서는 논란이 있어왔다. 또한 위에서 언급한 현대적 검색엔진을 다루기에는 부족한 점이 많다. 우선 사용자의 질의가 전통적인 키워드 형태가 아닌 경우도 많고, 검색 시스템의 결과 역시 문서의 목록이 아니라 다양한 형태의 정보가 혼합된 형태이기 때문이다. 이번 학회에서 나타는 또다른 추세는 이런 현대적인 검색엔진을 평가할 수 있는 다양한 연구방법 및 평가지표였다.

우선 연구실에 초대된 실험 참가자들을 대상으로 주어진 검색엔진 및 환경을 평가하는 사용자 연구가 (user study) 많은 논문에서 주된 연구방법으로 사용되었다. 이는 검색엔진 연구 및 개발의 목적이 단지 더 나은 품질의 문서를 상위에 올리는 것 뿐만 아니라, 실제 사용자를 만족시키는 전체적인 경험을 제공하는 것으로 옮겨가고 있다는 것을 의미한다.

또한 사용자 연구에서 인지 및 뇌과학의 연구 결과물인 눈동자 추적기 (Eye Tracker) 및 뇌파 분석기의 (EEG) 광범위한 활용도 주목을 끌었다. 과거에도 검색엔진 사용자의 키보드 업력, 마우스 클릭 및 커서 움직임을 분석한 논문은 많이 나와있었지만, 이런 최신 기술을 통해 실제 사용자의 주의와 감정 상태를 정확히 파악할 수 있다는 사실을 알 수 있었다. 해당 주제를 바탕으로 한 워크샵도 눈길을 끌었다.

본 학회에서는 사용자 연구를 통하여 검색 결과 페이지에 보여질 문서의 개수의 최적값을 찾는 논문과, 검색 결과가 사용자에게 보여지기까지의 시간과 사용자 만족도와의 관계를 연구한 논문이 눈길을 끌었다. 마지막으로 아래 그림은 사용자의 시선이 페이지 상에서 어떻게 움직이는지를 보여주는 것으로, 이 논문의 저자들은 사용자 시선의 움직임을 커서와 페이지 내용에 기반하여 예측해냈다.

딥러닝과 검색의 미래

최근 인공지능 전 분야에 걸쳐 딥러닝이 각광받고 있는데, 정보검색의 경우에도 예외가 아니다. 딥러닝 기술은 인간의 두뇌에서 영감을 얻어 개발된 신경망 학습 모델이 고도화된 형태로, 인간의 인지구조에서 나타나는 다층적이고 복잡한 판단과정을 대량의 데이터를 바탕으로 학습해내는 모델이다. 게다가 대량의 데이터만 주어진다면 이 모든 학습 과정이 자동으로 이루어진다는 장점이 있다.

단어와 단어, 단어와 문서간의 복잡한 상호작용을 모델링해야 하는 정보검색 분야에서도 딥러닝은 활용도가 높다. 기존의 검색 모델은 문서가 포함하고 있는 단어의 분포로 해당 문서의 의미를 표현하는 경우가 많았고, 단어 이상의 의미 단위를 표현하기 위해서는 복잡한 속성(feature)을 일일히 개발해야 했지만, 딥러닝 기술을 사용하면 별다른 노력 없이도 문서를 단어가 아닌 의미 단위에서 이해하는 예측 모델을 만들 수 있기 때문이다.

이번 학회에서도 딥러닝 기반의 논문이 여러 편 발표되었다. 대부분 딥러닝을 통해 주어진 텍스트를 (질의어 혹은 문서) 워드 임베딩이라고 (word embedding) 불리는 의미 기반의 저차원 벡터로 변환한 후에, 이를 질의어 추천 및 문서 랭킹 등 다양한 작업에 적용하는 내용이다. 2011년 발표된 논문에서 발췌한 아래 표는 임베딩 벡터 공간에서 각 단어의 가장 가까운 이웃(nearest neighbor)을 보여준다. 각 열의 단어들을 보면 의미상으로 매우 비슷한 것을 알 수 있다.

이번 학회에서 마이크로소프트의 저자는 딥러닝을 질의어 추천에 활용하는 논문을 발표하였다. 이 논문의 핵심 아이디어는 검색 로그 데이터에서 추출된 연속된 질의어를 가지고 워드 임베딩 벡터를 학습한 후에, 아래 표에서처럼 주어진 질의어의 각 단어간의 벡터 연산을 통해 새로운 의미를 갖는 질의어를 추론해내는 식이다. 예를 들어 사용자가 질의어 ‘chicago newspaper’를 입력했다면 이 두 단어의 조합과 가장 유사한 의미를 갖는 질의어인 ‘chicago suntimes’를 추천할 수 있을 것이다.

또한 구글에서 발표한 논문은 딥러닝을 전통적인 검색 문서에 적용하였다. 이는 질의어와 문서의 워드 임베딩을 구한 후, 이를 바탕으로 주어진 질의어에 대해 관련도 순으로 문서를 찾는다. 이들은 질의응답 및 단문 검색 데이터셋에서 딥러닝 기반의 시스템이 복잡한 속성의 조합으로 이루어진 기존 시스템보다 훨씬 더 나은 성능을 보이는 것을 발견했다. 아래 그림은 문서 및 질의어가 어떻게 임베딩 벡터로 바뀌고, 그 결과가 문서 랭킹에 활용되는지를 보여준다.

요약

매년 학회에 참석할때마다 검색이라는 분야가 얼마나 빠르게 변화하는지에 놀라곤 하지만, 이번 학회에서도 예외는 아니었다. 주어진 질의어에 대한 문서의 랭킹과 그 평가에 초점을 맞추었던 과거와 달리 다양한 검색 유형과 인터페이스에 맞는 검색 기법과 평가 방법을 연구한 논문이 많이 눈에 띄었기 때문이다. 또한 검색 모델 측면에서도 딥러닝의 가능성에 많은 사람들이 관심을 갖는 것을 볼 수 있었다. 데이터 과학에 관련된 학회는 이외에도 많은데, 관련 분야의 최신 동향을 접하고 싶은 독자라면 꼭 살펴보기 바란다.

학회에 수록된 논문의 목록은 여기서 볼 수 있으니 관심있는 독자들은 참고하기 바란다. 또한 필자가 진행한 검색 평가 방법에 대한 튜토리얼의 슬라이드는 Slideshare에 공유해 놓았다. 평소 검색엔진의 결과를 어떻게 평가하는지를 궁금했거나, 혹은 평가단(human judge)을 활용한 온라인 서비스의 개선 방법에 대해 더 알고 싶은 독자라면 도움을 받을 수 있을 것이다.

헬로! 데이터 과학

제 개인 홈페이지를 헬로 데이터 과학으로 개편했습니다. ‘헬로 데이터 과학’이라는 이름에는 데이터 과학을 시작하는 여러분들께 좀더 가까히 다가가겠다는 바램을 담았습니다. 아래 같은 이름의 페이스북 페이지도 만들었습니다. 앞으로 페이스북 페이지에는 데이터과학 관련 각종 소식이나 자료를 공유할 생각입니다. 아래 주소에서 ‘LIKE’ 하시면 편리하게 업데이트를 받아보실 수 있습니다.

페이스북 페이지: https://www.facebook.com/hellodatascience

데이터과학 프로세스(4): 탐험적 데이터 분석

진정한 발견은 새로운 장소를 찾는 것이 아니라, 새로운 관점을 갖는 것이다.
— 마르셀 프루스트

여러분의 컴퓨터에 이제 막 수집된 데이터가 도착했다. 방금 데이터에 대한 기본적인 점검도 마쳤다. 그럼 여러분은 당장 여러분이 좋아하는 분석 프로그램을 열고 자신이 문제정의 단계에서 세웠던 여러 가설에 대한 결론을 도출해보고 싶을 것이다. 뭔가 예측하는 것이 목적이었다면 당장 기계학습 알고리즘을 적용해보고 싶을 것이다.

하지만 경험많은 데이터 과학자라면 그렇게 하지 않을 것이다. 그들은 어떤 결론에 도달하기 전에 주어진 데이터의 모든 측면을 철저히 이해하려고 노력할 것이다. 데이터 수집 과정에서 세운 모든 가정이 맞는지, 혹시 기대하지 않았던 새로운 패턴이 발견되지 않는지, 통계적 추론 및 예측 모델을 만들때 고려 사항에는 어떤 것이 있을지 등등을 알고싶어 할 것이다.

이처럼 주어진 데이터를 다양한 각도에서 들어다보고 좀더 잘 이해하기 위해 노력하는 과정을 탐험적 데이터 분석(Exploratory Data Analysis 이하 EDA)라고 부른다. ‘탐험적’이라는 수식어는 문자 그대로 이를 통해 어떤 것을 발견하게 될지를 미리 예측할 수 없기 때문이다. 박스플롯(boxplot)을 비롯한 수많은 업적을 남긴 통계학의 대가인 존 터키(John Tukey)는 탐험적 데이터 분석이 탐정의 일과 비슷하다고도 말했다.

탐험적 데이터 분석이 필요한 이유는 몇가지가 있다. 우선 데이터의 분포 및 값을 검토함으로써 데이터가 표현하는 현상을 더 잘 이해하고, 데이터 준비 단계에서 놓쳤을수도 있는 잠재적인 문제를 발견할 수 있다. 또한, 데이터를 다양한 각도에서 살펴보는 과정을 통해 문제 정의 단계에서 미처 발생하지 못했을 다양한 패턴을 발견하고, 이를 바탕으로 기존의 가설을 수정하거나 새로운 가설을 추가할 수 있다. 데이터에 대한 이런 지식들은 이후에 통계적 추론이나 예측 모델을 만들때 그대로 사용된다.

어떤 특정한 결론을 결론을 도출하기 위해서가 아니라, 데이터에서 최대한 다양한 이야깃거리를 뽑아내려 한다는 측면에서 탐험적 데이터 분석은 지도없이 떠나는 여행이다1. 그리고 작업의 특성상 탐험적 데이터 분석의 과정은 명확한 성공 요건이나 절차를 정의하기가 힘들다. 하지만 탐험적 데이터 분석을 위해 거쳐야 할 최소한의 몇가지 단계가 있다. 여기서는 이 단계에 대해 알아보도록 하자.

탐험적 분석의 단계

이제 탐험적 분석의 과정을 단계별로 살펴보자. 탐험적 분석의 자연스러운 출발점은 주어진 데이터의 각 측면에 해당하는 개별 속성의 값을 관찰하는 것이다. 개별 속성에 대한 분석이 이루어진 후에는 속성간의 관계에 초점을 맞추어 개별 속성 관찰에서 찾아내지 못했던 패턴을 발견할 수도 있다. 그리고 이런 절차는 데이터에서 흥미있는 패턴이 발견될때까지 (혹은 더이상 찾는 것이 불가능하다고 판단될 때까지) 반복된다.

탐험적 데이터 분석의 주된 수단을 살펴보자. 우선 원본 데이터를 관찰하는 방법, 다양한 요약 통계값 (statistics)을 사용하는 방법, 마지막으로 적절한 시각화를 사용하는 방법이 있다. 원본 데이터 관찰은 데이터 각 항목과 속성값을 관찰하기 때문에 꼼꼼한 반면 큰 그림을 놓치기 쉽다. 반면에 요약 통계값이나 시각화를 사용하면 숲은 보지만 나무는 보지 못하는 우를 범할 수 있다. 2

따라서 중요한 것은 이 세가지 방법이 보완적으로, 그리고 순환적으로 사용되어야 한다는 것이다. 여기서 순환적이라는 말은 원본 데이터를 보다가 의심가는 부분이 있으면 적절한 시각화나 통계값을 통해 검증하고, 반대로 시각화나 통계값을 통해 발견한 패턴은 해당하는 원본 데이터 값을 찾아 추가적인 검증을 해야 한다는 뜻이다. 미지의 땅을 탐사할 때, 항공 정찰과 함께 실제로 그 땅에 들어가 탐사하는 과정이 모두 이루어져야 하는 것과 같은 원리다.

개별 속성 분석하기

우선 탐험적 데이터 분석의 첫번째 단계로 개별 속성을 살펴보자. 이를 통해 데이터를 구성하는 각 속성의 값이 우리가 예측한 범위와 분포를 갖는지, 만약 그렇지 않다면 왜 그런지를 알아볼 수 있을 것이다. 또한 데이터에는 다양한 이유로 정상 범주를 벗어난 값이 존재할 수 있는데, 이런 이상값(outlier)을 찾아내는 것도 탐험적 데이터 분석에서 이루어져야 한다.

개별 속성의 값을 살펴보는 방법에는 앞에서 밝힌대로 개별 데이터 관찰, 그리고 통계값 및 시각화를 활용하는 방법이 있다. 우선, 개별 데이터의 값을 눈으로 보면서 전체적인 추세와 어떤 특이사항이 있는지 관찰할 수 있다. 데이터가 작은 경우 전체를 다 살펴볼 수 있겠지만, 데이터의 양이 많은 경우 이는 시간이 많이 소요되는 일이다.

하지만 시간이 없다고 큰 데이터의 앞부분만 보는 것은 피해야 한다. 데이터 앞부분에서 나타나는 패턴과 뒷부분에서 나타나는 패턴이 상이할 수 있기 때문이다. 이런 경우 데이터에서 무작위로 표본을 추출한 후에 관찰하는 것이 올바른 방법이다. 무작위로 추출한 표본 안에는 데이터 전체가 고루 반영되어 있기 때문이다. 단, 이상값(outlier)은 작은 크기의 표본에 나타나지 않을수도 있다.

개별 속성의 값을 분석하는 또다른 방법은 적절한 요약 통계 지표를 (summary statistics) 사용하는 것이다. 분석의 목표에 따라 다양한 통계 지표가 존재하는데, 예컨데 데이터의 중심을 알기 위해서는 평균(mean) 및 중앙값(median), 최빈값(mode) 등을 3 사용할 수 있고, 데이터의 분산도를 알기 위해서는 범위(range), 분산(variance) 등을 사용할 수 있다. 또한, 데이터의 분포가 한쪽으로 기울었는지를 나타내는 통계 지표도 (skewness) 존재한다.

이런 통계 지표를 사용할 때에는 데이터의 특성에 주의해야 한다. 예컨데 평균에는 집합 내 모든 데이터의 값이 반영되기 때문에 이상값(outlier)이 존재하는 경우 값이 영향을 받지만, 중앙값에는 가운데 위치한 값 하나가 사용되기 때문에 이상값의 존재에도 대표성이 있는 결과를 얻을 수 있다. 예컨데, 회사에서 직원들의 평균 연봉을 구하면 중간값보다 훨씬 크게 나오는 경우가 많은데, 이는 몇몇 고액 연봉자들의 연봉이 전체 평균을 끌어올리기 때문이다.

개별 속성 분석에서 또한 중요한 부분은 시각화를 적절히 활용하는 것이다. 많은 수의 개별 데이터를 일일히 보는 것은 비효율적이고, 모든 데이터를 수치 하나로 요약하는 통계값에는 중요한 패턴이 감추어지는 경우가 많은데, 적절한 시각화를 통해 데이터에 나타나는 패턴을 한눈에 볼 수 있기 때문이다.

역시 데이터의 유형 및 분석의 초점에 따라 다양한 시각화 방법이 존재한다. 수치 및 카테고리 데이터의 경우 그 분포를 한눈에 볼 수 있는 히스토그램 등이 일반적이다. 또한 텍스트 데이터의 경우 단어의 밀도를 표현할 수 있는 워드 클라우드를, 시간 및 공간 데이터는 시계열차트 및 지도 등 해당 데이터를 가장 잘 표현할 수 있는 시각화 방식을 사용하면 된다. 아래 그림은 데이터 형태별로 적절한 시각화 방식을 보여준다.

이제 사례를 통해 개별 속성을 분석하는 요령을 알아보자. 여기서 사용할 데이터는 다양한 제조사 및 모델별로 1999년과 2008년형 자동차의 연비를 기록한 MPG라는 (MPG는 Mile Per Gallon의 약자로 미국에서 쓰는 자동차 연비의 단위다.)이름의 데이터셋이다. 이 데이터셋은 적당한 크기에 다양한 유형의 속성을 포함하고 있어서 탐험적 데이터 분석의 프로세스를 이해하기에 유용하다. MPG 데이터셋은 R에 기본적으로 포함되어 있으며, 이곳에 언급된 분석과 시각화를 수행하는 코드와 수행 결과를 참고하자.

본격적인 실습에 나서기 전에 분석의 목표를 생각해 보자. 우선 자동차의 연비를 다루는 데이터셋이니만큼 연비에 영향을 미치는 다양한 요인을 알아볼 수 있을 것이다. 또한 데이터에 연도와 제조사 및 자동차 모델 속성이 포함된 만큼 연도별로 연비가 어떻게 달라졌는지, 그리고 제조사와 모델별 연비는 어떤지 살펴볼 수 있을 것이다.

아래는 우리가 사용할 MPG 데이터의 다양한 속성값이다. 일단 눈으로 보면서 데이터에 익숙해지도록 하자. 데이터에 대한 설명을 보면 drv는 구동방식 (r: 후륜 / f: 후륜 / 4: 4륜), displ은 배기량, cyl은 실린더 개수를 나타내며, cty는 도시 주행시 연비를, hwy는 고속도로 주행시 연비를 나타낸다.

maker class model year displ cyl drv cty hwy
audi compact a4 1999 1.8 4 f 18 29
audi compact a4 quattro 1999 1.8 4 4 18 26
audi midsize a6 quattro 1999 2.8 6 4 15 24
chevrolet suv c1500 suburban 2wd 2008 5.3 8 r 14 20
chevrolet 2seater corvette 1999 5.7 8 r 16 26
chevrolet suv k1500 tahoe 4wd 2008 5.3 8 4 14 19

개별 데이터를 살펴본 후에는 데이터를 요약하는 다양한 통계값(statistics)을 계산하여 살펴볼 수 있다. 이런 통계값은 데이터의 유형에 따라 달라진다. 예컨대 연속된 수치에 대해서는 평균 및 중간값 등을, 그리고 범주 및 순서를 나타내는 속성에 대해서는 최빈값을 계산할 수 있을 것이다. 아래 표는 MPG 데이터의 다양한 속성들의 통계값이다.

데이터에 적절한 시각화를 적용하여 전체 값의 분포를 한눈에 볼 수 있다. 아래는 MPG 데이터셋의 고속도로 연비(hwy)를 확률 밀도 그래프, 히스토그램, 그리고 점플롯(dotplot)으로 표현한 것이다. 이 시각화 결과에 따르면 데이터에 크게 두가지 그룹의 차량이 (세단과 SUV) 있다는 사실이 드러난다. 이중 히스토그램과 점플롯에서는 개별 데이터의 분포를 좀더 뚜렷히 볼 수 있다.

속성간의 관계 분석하기

개별 속성의 분포를 확인한 후에는 속성간의 관계를 살펴보자. 이 과정의 목표는 서로 의미있는 상관관계를 갖는 속성의 조합을 찾아내는 것이다. 여기서부터 본격적으로 ‘탐험적’ 분석이 시작되는데, 속성이 많은 데이터의 경우 속성의 조합에 따라 다양한 분석을 수행할 수 있기 때문이다. 모든 속성간의 관계를 다 보기 힘들 경우에는 주어진 문제 해결과 관련이 깊은 부분부터 시작해야 할 것이다.

이제 속성간의 관계를 분석하는 과정를 MPG 데이터를 통해 알아보도록 하자. 우선 아래 표는 수치형 속성간의 상관계수를 나타낸 것이다. 연비(hwy/cty)와 실린더 수 (cyl) 및 배기량(disp)이 높은 상관관계를 가지는 것을 볼 수 있다.

상관계수 displ year cyl cty hwy
displ 1.000 0.148 0.930 -0.799 -0.766
year 0.148 1.000 0.122 -0.037 0.002
cyl 0.930 0.122 1.000 -0.806 -0.762
cty -0.799 -0.037 -0.806 1.000 0.956
hwy -0.766 0.002 -0.762 0.956 1.000

아래 플롯은 위 상관도 테이블을 그대로 시각화한 것이다. 오른쪽 위를 향하는 파란색 타원은 양의 상관관계를, 오른쪽 아래를 향하는 빨간색 타원은 음의 상관관계를, 흰색 원은 상관관계가 없음을 나타낸다.

하지만 상관계수가 데이터에 존재하는 모든 트랜드를 요약하는 것은 아니다. 같은 데이터에 해당하는 아래 스케터플롯을 보면 각 속성 쌍의 관계가 다양한 양상의 띈다는 것을 알 수 있다.

이렇게 모든 속성간의 관계를 상관도와 스케터플롯을 통해 관찰한 후에는 관심이 가는 개별 속성간의 관계를 자세히 살펴보아야 할 것이다. 두 속성간의 관계를 알아보는 방법은 대상 속성의 유형의 조합에 따라 달라진다. 우선 두 카테고리형 속성간의 관계를 생각해보자. 두 속성이 모두 제한된 카테고리의 값을 갖기 때문에, 이를 분석하는 데에는 각 카테고리의 조합에 속하는 항목의 수를 나타내는 교차 테이블이나 모자이크 플롯이 적절하다.

다음 표와 모자이크 플롯은 MPG 데이터셋에서 실린더의 수와 구동방식의 관계를 나타낸다. 후륜 방식은 대부분 대형차에, 그리고 전륜 방식은 소/중형차에 사용되는 것을 알 수 있다. 같은 데이터를 모자이크 플롯으로 보면 대부분의 차가 사륜구동 혹은 전륜구동을 띄고 있다는 사실, 그리고 실린더 수의 분포가 구동방식에 따라 다르다는 사실을 한눈에 알 수 있다.

구동방식 사륜(4) 전륜(f) 후륜(r)
4 23 58 0
5 0 4 0
6 32 43 4
8 48 1 21

다음으로 카테고리형 속성과 수치형 속성간의 관계를 분석하는 경우에는 제한된 종류의 값을 갖는 카테고리형 속성의 특성을 고려하여 각 카테고리 별로 수치값의 분포를 볼 수 있다. 여기에는 박스플롯이 널리 사용되는데, 박스플롯은 주어진 데이터의 25% 및 75%에 해당하는 백분위 값을 박스로 표시하고, 여기에 50%에 해당하는 중앙값을 가운데 굵은 선으로 표시한 플롯이다.

데이터를 대표하는 통계값을 한눈에 보기위해 박스플롯을 사용한다면, 개별 데이터 값을 관찰하기 위해서는 스케터플롯을 사용할다. 단, 이 경우 같은 카테고리를 갖는 값들이 서로 겹치지 않도록 노이즈(jitter)를 더해준다.

아래 플롯은 연도와 고속도로 연비간의 관계를 박스플롯과 스케터플롯으로 보여준다. 아래 그림의 왼쪽의 박스플롯에는 1999년에 비해 2008년에 연비간의 관계가 뚜렷히 드러나지 않는다. 하지만 오른쪽의 스케터플롯을 보면 몇개의 이상값을 제외하고는 전반적인 연비가 더 높은 위치에 분포함을 알 수 있다.

마지막으로 두 수치형 속성간의 관계는 스케터플롯으로 확인하는 것이 가장 일반적이다. 아래 왼쪽의 스케터플롯에서는 배기량과 도시 연비의 상관관계를 보여준다. (상관계수:-0.799) 배기량과 도시 연비가 대체로 음의 상관관계를 갖지만, 어느정도 배기량이 높아지면 상관관계가 희박해진다. 이에 반해 도시 연비와 고속도로 연비에 관한 아래 오른쪽의 스케터플롯에서는 대부분의 값들이 좀더 추세선 근처에 모여있는 것을 알 수 있다. (상관계수:0.956)

탐험적 분석에서는 두개 이상의 속성간의 관계를 동시에 보고 싶은 경우도 생긴다. 이럴 때는 기존의 스케터플롯이 유용한데, X와 Y의 위치에 두가지 속성의 관계를 표시하는 스케터플롯의 각 점에 색상, 크기, 레이블 등의 다양한 속성을 추가할 수 있기 때문이다.

다시 MPG 데이터셋을 살펴보면 아래 차트에는 고속도로 및 도시 주행시 연비를 XY축으로 하고, 여기에 배기량을 점의 크기에, 그리고 실린더의 개수를 점의 색상에 적용했다. 아래 그래프를 보면 크고 밝은 점이 (실린더 수가 많고 배기량이 높은 차량) 그래프 좌측 하단에 몰려있는 것을 볼 수 있다. 이처럼 스케터플롯을 사용해 네가지 속성의 관계를 동시에 확인할 수 있다.

마지막으로 산포도 그래프에 텍스트 레이블을 적용한 사례를 살펴보자. 아래 그래프는 점 대신 각 차량 모델의 연비를 그래프에 나타낸다. 이때 레이블의 색상으로 제조사를 구분할 수 있도록 하였다. 아래 그래프를 보면 연비가 낮은 대부분의 차량은 4륜 구동의 SUV 및 트럭임을 알 수 있다. 또한 높은 연비를 자랑하는 차량은 대부분 한국/일본산이거나 그리고 독일의 폭스바겐에서 만들어진 것들이다. 또한 아우디에서 만든 차량은 고속도로 연비에 비해 도시 연비가 좋지 않다는 것도 알 수 있다.

적절한 시각화의 중요성

지금까지 탐험적 데이터 분석의 프로세스를 알아보았다. 위의 다양한 사례에서 드러났지만, 여기서 다시 한번 강조하고 싶은 것은 나무와 숲을 동시에 볼 수 있게 해주는 시각화의 중요성이다. 특히 이런 관점에서 전체 추세와 함께 개별 데이터의 분포를 그대로 보여주는 스케터플롯이 특히 유용하다.

여기서는 몇가지 사례를 통해 개별 데이터의 분포를 확인하는 작업의 중요성을 알아보자. 우선 아래 그림은 같은 평균과 분산을 갖는 (그림 A) 두 데이터 집단의 실제 분포가 (그림 B~E) 얼마나 다를 수 있는지를 보여준다. 막대그래프로는 분간하기 힘든 두 집단간의 차이가 스케터플롯으로 명쾌하게 드러나는 것을 알 수 있다. [@Weissgerber2015]

비슷한 사례로 이번에는 두가지 수치 형태의 속성간의 관계를 시각화하는 경우를 생각해보자. 아래 그림은 각기 다른 데이터셋 4개를 산포도 플롯으로 표시한 것이다. 얼핏 각 데이터셋은 파란 선에 걸쳐있다는 점을 제외하고는 전혀 다른 것처럼 보인다.

하지만 각 데이터를 가지고 다음 표의 각종 통계값을 계산해보면 위 플롯의 데이터셋 4개는 모두 같은 평균, 분산, 그리고 상관계수를 가진다. 시각화 없이 통계값에만 의존했다면 이런 차이를 전혀 알 수 없었을 것이다.

통계 유형
x의 평균  9
x의 분산  11
y의 평균  7.5
y의 분산  4.122 혹은 4.127
x와 y의 상관계수  0.816

마지막으로 아래 인포그래픽은 각기 다른 종류의 시각화 기법을 분석의 목표 및 데이터의 특성에 따라 어떻게 적용할 것인지를 요약해서 설명한다. 우선 분석의 목표를 수치 비교 / 분포 시각화 / 관계 시각화 / 구성 시각화 중 하나로 결정하고, 데이터의 분포도의 특성에 따라 세부적인 시각화 방법을 고를 수 있다. (출처: http://www.extremepresentation.com/) [@ExtremePresentation2011]


맺음말

지금까지 탐험적 데이터 분석의 절차를 개별 속성 분석과 속성간 관계 분석의 순서로 알아보았다. 또한 데이터 시각화의 중요성과 유의사항을 살펴보았다. 탐험적 분석을 성공적으로 마쳤다면 주어진 데이터를 속속들이 이해함과 동시에, 데이터에 대한 다양한 가설을 세울 수 있을 것이다. 이런 과정은 현상에 대한 더 나은 이해와 함께, 주어진 데이터를 가지고 다양한 예측 모델을 만들거나 (기계학습), 신뢰성있는 결론을 내리는데 (통계적 추론) 기반이 된다.

데이터 분석의 올바른 태도에 대해 생각해보는 것으로 이 장을 마무리할까 한다. 앞서 문제정의 단계에서 데이터를 모으기 전에 주어진 문제의 목표와 범위, 그리고 예상되는 결론(가설)을 최대한 고민해야 한다고 이야기했다. 하지만 데이터를 막상 받아든 분석가는 백지 상태에서 데이터를 보기 위해 노력해야 한다. 데이터를 지나친 편향된 시각에서 본다면 데이터를 있는 그대로 해석하기보다는 자신의 기대에 맞는 부분에만 집중하는 오류를 범할 수 있기 때문이다.

이렇게 문제 해결의 단계에 따라 관점을 계속 바꿀 수 있어야 한다는 점이 데이터 과학의 어려움이지만, 예술 및 과학을 포함한 모든 창조적인 작업은 자신의 창조물에 대한 열정을 가짐에 동시에 (예: 과학자의 가설) 이를 끊임없이 객관적이고 비판적인 시각에서 볼 수 있는 냉철함을 요구한다. 하지만 이런 노력 끝에 얻어지는 결과물을 주관적 만족감과 객관적인 가치를 동시에 충족시킬 수 있을테니 그만한 가치가 있다고나 할까?

(본 글의 초고에 피드백을 보내주신 권정민 / 이성훈 님을 비롯한 독자 분들께 감사의 말씀을 전합니다.)


  1. 나탈리 골드버그의 책 ‘뼈속까지 내려가서 써라’에는 글쓰기가 지도없이 떠나는 여행이라는 표현이 등장한다. 
  2. 나무와 숲을 동시에 볼 수 있게 해주는 스케터플롯은 이런 관점에서 유용한 도구다. 
  3. 이들 지표에 대한 자세한 설명은 위키피디아를 참조하도록 하자.