티스토리 뷰

빅데이터의 사례로 가장 많이 이야기하는 것이 바로 "Google 독감 트렌드"입니다. 

구글에 집계된 검색어를 기반으로 세계 여러 국가의 독감 유행 수준에 대한 예상 수치를 제공하는 것인데요. 

이를 기반으로 빅데이터에 대한 전략이 어떻게 만들어졌는지 한번 생각해 보기로 했습니다. 


데이터 수집

구글 검색어가 자동으로 구글의 서버에 쌓이게 되므로 데이터의 축적은 기본적으로 이루어졌을 것입니다. 

또한 검색어는 시간에 따른 분포를 나타낸다는 점과 IP를 통한 위치를 파악할 수 있다는 것을 활용한 것이라 볼 수 있습니다. 

즉, 검색어, 시간대, 그리고 위치 정보를 활용해서 독감 트렌드를 분석해 낸 것이죠. 


먼저 독감(ILI - influenza likeness illness)과 관련된 키워드(ILI-related query)들을 정리해서 추출했을 겁니다. 

예전에 뉴스 자동분류 시스템을 개발할 때, 키워드와 시소러스를 정리해서 정확도를 높인 적이 있었는데요. 

여러가지 뜻을 가진 단어들이 많아서 고생했던 기억이 있습니다. 

그라나 독감과 같은 전문적인 단어는 상대적으로 관련 키워드를 추출하기가 용이했을 듯 하지만 여기에도 많은 검증이 있었겠죠. 


데이터 분석

데이터를 분석하기 위해서는 수집된 데이터의 지표들을 기반으로 상관관계를 만들어낼 필요가 있었을 겁니다. 

즉, 해당 지역에서 "실제 병원을 방문한 환자의 수"와 "구글에서 독감 관련 키워드를 검색한 사용자의 수"의 관계가 되겠죠. 


이것은 구글에서 2009년 네이처(Nature)에 발표한 논문을 보면 잘 나와 있습니다. 



"Detecting influenza epidemics using search engine query data"란 제목으로 발표되었는데요. 

(위 제목을 클릭하면 PDF 파일을 받아 볼 수 있습니다.)

여기에 나와 있는 수식을 보면 다음과 같습니다. 



수식을 보면 "실제 병원을 방문한 환자의 수"와 "독감 관련 키워드를 검색한 수"의 관계가 로그를 취했을 때 선형 관계라는 것을 알 수 있습니다. 

절편(intercept), 계수(multiplicative coefficient) 등을 통해 보정값을 설정하고, 자연로그를 사용해서 비선형인 회귀식을 선형 방정식으로 만든것 같네요. 

일반적으로 비선형 방정식은 추정이 어려운 것으로 알고 있습니다. 그래서 선형 방정식으로 바꾸어야 하는데요. 

원래는 다음과 같은 수식이 만들어졌을 것입니다. 



여기에 자연로그를 취해서 선형 방정식으로 만들면 다음과 같이 되겠죠. 



이 함수는 2003년부터 2008년까지 쌓인 데이터를 Training Set으로 해서 기계학습(Machine Learning)을 통해 만들어졌을 것입니다.

실제로 MapReduce를 사용해서 분산 환경에서 쿼리 추출부터 함수 생성까지 수많은 모델을 테스트해서 만들어낸 것이라고 하네요. 

그리고 훈련된 결과를 검증하기 위해서 테스트에 포함되지 않은 유타지방의 42주 데이터와 논문 발표 전 최신 데이터를 사용했다고 하네요. 

어쨋든 데이터가 워낙 방대하게 모아져 있을테니 그만큼 정확도도 높게 나왔을 것 같네요. 


시각화

구글은 검색어를 기반으로 독감을 예측하는 시스템을 구축함으로써 Big Data에서 Big Insight를 찾아냈습니다. 

그리고 마지막으로 이를 2008년부터 google.org를 통해 Google 독감 트렌드라고 시각화(Visualization)해서 보여줍니다. 



지역별로 매우높음, 높음, 보통, 낮음, 매우낮음의 5단계로 정보를 한눈에 보여주고 있습니다. 

역시 시각화의 핵심은 아무리 어렵게 분석했더라도 사용자는 직관적이고 쉽게 알 수 있도록 보여주는 것인 듯 하네요. 


구글 분석 결과를 실제 각국의 보건 당국이 발표한 자료와 비교해 보면 매우 유사하게 나옵니다. 

이를 확인해 주기 위해서 각국의 실제 자료와 비교해서 다음과 같이 보여줍니다. 



마치면서

이상으로 빅데이터하면 가장 많이 이야기하는 구글의 독감 트렌드를 기반으로 실제 빅데이터 구축이 어떻게 되는지 간단히 정리해 봤습니다. 

이런 사례를 살펴보면서 느끼는 점이 많습니다. 

실제 프로젝트를 진행해 보니, 빅데이터에서 내가 원하는 인사이트에 적합한 함수를 만들어내는 것도 상당한 노력을 필요로 하더라구요. 

또한 이를 여러 설명이 필요없도록 단순하면서도 명확하게 시각화 하는 것도 많은 생각을 하게 합니다. 


댓글
댓글쓰기 폼