제공 :
한빛 네트워크
저자 : 마이크 루키데스(Mike Loukides)
역자 : 이덕준
원문 :
What is data science?
익히 들었듯이, 핼 배리언(Hal Varian)의 말에 따르면, 통계는 앞으로 매력적인 직업이 될 것이라고 한다. 5년 전, What is Web 2.0 란 제목의 글에서 팀 오라일리(Tim O"Reilly)는 "데이터는 차기 Intel Inside"가 될 것이라고 했다. 그런데 이 말이 무슨 뜻일까? 왜 갑자기 통계와 데이터에 관심을 갖는 걸까?
이 기사에서는 데이터 과학의 기술적 배경, 기업 및 독특한 기술의 다양한 측면을 살펴보겠다.
데이터 과학이란?
웹은 "데이터-주도 앱"으로 가득하다. 전자상거래 애플리케이션 거의 대부분은 데이터-주도 애플리케이션이다. 웹 프론트엔드와 미들웨어 이면에 데이터베이스가 있다. 그 미들웨어는 또 다른 수많은 데이터베이스, 데이터 서비스(신용 카드 처리 회사, 은행 등)와 통신한다. 그런데 우리가 소위 말하는 "데이터 과학"으로 데이터를 다루는 경우는 정말 드물다. 데이터 애플리케이션은 데이터 그 자체에서 가치를 얻고 그 결과로 더 많은 데이터를 만들어 낸다. 이는 단지 데이터를 가지고 있는 애플리케이션이 아니라 데이터 상품이다. 데이터 과학이 데이터 상품을 만들 수 있게 해준다.
웹 상의 초창기 데이터 상품 중 하나는
CDDB 데이터베이스다. CDDB 개발자는 CD에 수록된 트랙 각각의 정확한 길이(샘플 단위)로 모든 CD를 구별할 수 있다는 것을 알았다. 그레이스노트(Gracenote)사는 트랙 길이의 데이터베이스를 만들었고 앨범 메타데이터(트랙 제목, 아티스트, 앨범 제목)와 연결시켰다. 아이튠즈(iTunes)를 써서 CD를 MP3로 변환해 본 적이 있다면, 이미 이 데이터베이스 덕을 본 셈이다. 우선, 아이튠즈가 모든 트랙의 길이를 읽고 CDDB로 보내서 트랙 제목을 돌려받는다. 데이터베이스에 없는 CD를 (직접 만든 CD를 포함해서) 가지고 있다면, 알려지지 않은 앨범을 등록할 수 있다. 너무 단순하게 들리겠지만, 이는 혁명적인 상품이다. CDDB는 음악을 오디오 신호가 아닌 데이터로 보고 새로운 가치를 만들어냈다. 이들 사업은 음악을 팔고 공유하거나 음악적 취향을 분석하는 것과 (이런 것들이 "데이터 상품"이 될 수도 있지만) 기본적으로 다르다. CDDB는 전적으로 음악적인 문제를 데이터의 문제로 보았기 때문에 생겨났다.
구글은 데이터 상품을 만들어내는데 도가 튼 회사다. 예를 몇 가지 들어보자.
- 구글의 성공 요인은 검색 엔진이 페이지 상의 본문이 아닌 다른 입력값을 사용할 수 있다는 것을 깨달은 것이다. 구글 페이지랭크(PageRank)는 그 페이지 외부의 정보, 특히 페이지를 가리키는 링크의 수를 최초로 사용한 알고리즘 중 하나다. 링크를 추적하는 기술로 구글 검색은 훨씬 유용해졌으며, 페이지랭크는 구글 성공의 핵심 요인이 되었다.
- 철자 검사는 끔찍하게 어려운 문제는 아니지만, 구글은 오타가 난 검색을 수정하도록 권하고 응답으로 입력된 사용자 클릭을 관찰하여 정확도를 크게 높였다. 구글은 일반적인 오타, 수정된 검색, 이런 오타가 발생하는 문맥의 사전을 구축했다.
- 음성 인식은 언제나 어려운 문제였고, 여전히 까다롭다. 그러나 구글은 수집해온 음성 데이터를 사용해서 크게 앞서나갔고, 음성 검색을 핵심 검색 엔진에 통합시킬 수 있었다.
- 신종 플루가 유행하던 2009년, 구글은 독감과 관련된 주제에 대한 검색에 따라서 유행이 진행되는 정도를 추적할 수 있었다.
<그림1> 독감 추이 - 구글은 서로 다른 지역에서 행한 검색을 분석해서 질병관리센터보다 대략 이주 일찍 신종 플루 확산 추이를 알 수 있었다.
데이터를 쓸 줄 아는 회사는 구글만이 아니다.
페이스북(Facebook)과
링크드인(LinkedIn)은 친구 관계의 패턴을 이용해서 잘 알거나 또는 알만한 사람을 간혹 무서울만큼 정확하게 추천해준다.
아마존(Amazon)은 사용자가 무엇을 찾는지 저장해두었다가 이를 다른 사용자들이 찾는 것과 대조시켜 놀랄만큼 적절한 추천을 하는데 사용한다. 아마존이 보다 전통적인 소매 사업을 추진하는데 도움을 주는 이런 추천 기능이 "데이터 상품"이다. 아마존은 책이 그냥 책이 아니며, 카메라가 그냥 카메라가 아니고, 고객이 그냥 고객이 아니라는 것을 이해하고 있었기 때문에 이런 상품을 내놓을 수 있었다. 고객은 분석해서 사용할 수 있는 "배출된 데이터"의 흔적을 만들며, 카메라는 고객의 행위, 즉 해당 사이트를 방문할 때마다 남기는 데이터와 대조될 수 있는 데이터의 클라우드다.
이런 애플리케이션 대부분의 공통된 특징은 바로 사용자로부터 수집된 데이터에서 부가적인 가치가 나온다는 것이다. 데이터가 검색어가 되었든, 음성 샘플이 되었든, 제품 리뷰이든 간에, 사용자는 사용하는 제품에 기여하는 피드백 루프에 놓이게 된다. 이것이 데이터 과학의 시작이다.
지난 몇 년간, 가용한 데이터의 양은 폭발적으로 증가했다. 웹 서버 로그, 트윗 스트림, 온라인 트랜잭션 레코드, "시민 과학", 센서를 통해 들어오는 데이터, 정부 데이터 등등, 어떤 데이터의 소스에 대해서든지, 데이터를 찾는 것이 문제가 아니라, 그 데이터를 가지고 무엇을 할 것인지 찾아내는 것이 문제다. 또한, 회사가 자체적으로 보유한 데이터나 사용자가 기여한 데이터를 사용하는 것만이 전부가 아니다. 여러 소스로부터 데이터를 섞는 것이 갈수록 일반화되고 있다. "
Data Mashups in R"에서는 필라델피아 카운티의 모기지 압류를 카운티 지사에서 공개한 보고 자료에서 주소를 추출하고 그 주소를 야후를 이용해 위도와 경도로 바꾼 다음 지도자료를 이용해 압류물의 위치를 지도(또 다른 데이터 소스)에 나타내고, 이들을 이웃, 시세, 이웃의 일인당 소득, 등의 사회 경제적인 요소들을 이용해 그룹화하는 방식으로 분석했다.
커뮤니티의 관심을 끌고 싶은 오늘날 모든 회사, 신생 기업, 비영리 단체, 프로젝트가 당면하고 있는 문제는 조직이 가진 데이터 뿐 아니라 모든 관련 가용 데이터를 어떻게 효율적으로 사용할지에 대한 문제이다. 데이터를 효율적으로 사용하기 위해서는 정장을 입은 보험계리사가 하는 신비롭지만 꽤 잘 정의된 종류의 분석 같은 전통적인 통계와는 구별되는 다른 무언가가 필요하다. 데이터 과학과 통계학을 구분 짓는 차이점은 데이터 과학은 전체론적 접근법이라는 것이다. 가공되지 않은 자연 상태의 데이터를 서서히 발견해 나가고 있으며 데이터 과학자는 그 데이터를 수집하고 다루기 쉬운 형태로 메시지화하고, 데이터로부터 이야기를 듣고 그 이야기를 다른 이에게 전해주는 일을 맡는다.
어떤 기술이 요구되는지 감을 잡기 위해, 데이터는 어디에서 오는지, 어떻게 사용할지, 그리고 어디로 가는지 데이터의 생명주기를 살펴보자.
데이터는 어디에서 오는가
데이터는 도처에 있다. 정부에, 웹서버에, 사업 파트너에, 심지어는 우리 신체에도 있다. 우리가 데이터의 바다에 빠져 익사하기 전에, 거의 모든 것들이 계기를 장착할 수 있다는 것을 (또는 이미 장착되어 있다는 것을) 알아냈다. 오라일리(O"Reilly)에서는 주기적으로
닐슨 북스캔(Nielsen BookScan)에서 받아오는 출판업 데이터에 우리가 가지고 있는 매출 데이터, 공개되어있는 아마존의 데이터, 그리고 심지어는 출판업계에서 벌어지는 일을 알 수 있도록 취업 데이터까지를 취합한다.
인포침프(Infochimps)와
팩츄얼(Factual) 같은 사이트는 기상 데이터, 마이스페이스(MySpace) 활동 스트림, 스포츠 경기의 게임 로그를 포함해 수 많은 거대 데이터셋에 접근할 수 있게 해준다. 팩추얼은 사용자가 내분비학에서 하이킹 코스에 이르기까지의 다양한 주제를 다루는 데이터셋을 업데이트하고 개선할 수 있도록 해준다.
우리가 현재 다루는 수 많은 데이터는 바로 웹 2.0의 직접적인 결과이며 데이터에 대해 무어의 법칙(Moore"s Law)을 적용한 결과이다. 사람들은 웹에서 더 많은 시간을 보내고 가는 곳 마다 데이터의 흔적을 남긴다. 모바일 애플리케이션은 데이터의 흔적를 더욱 풍부하게 남긴다. 많은 애플리케이션이 지리정보를 포함하고 있거나 비디오나 오디오를 수반하고 있고 이 모든 것이 분석 가능하기 때문이다. 판매(POS) 단말기와 단골의 카드를 통해 온라인 판매 트랜잭션 뿐만 아니라 모든 판매 트랜잭션을 얻을 수 있다. 그런데 이 모든 데이터를 저장할 수 없다면 이는 무용지물인데, 여기에서 무어의 법칙을 연관지을 수 있다. 80년대 초기부터 프로세서 속도는 10MHz에서 3.6GHz까지 360배(비트 수 증가와 코어 개수 증가는 고려하지 않았음) 증가했다. 반면 저장 용량은 매 단계마다 훨씬 크게 증가했음을 알 수 있다. 램은 MB 당 백만원에서 대략 GB 당 이만오천원까지 4만배 정도 가격이 싸졌으며 두말 할 것도 없이 부피도 작아지고 속도도 빨라졌다. 히타치(Hitachi)는 1982년에 최초의 기가바이트 디스크 드라이브를 만들었는데, 그 무게가 약 113 킬로그램에 달한다. 지금 테라바이트 드라이브가 일반 소비자용 장비이며 32GB microSD 카드는 0.5그램 정도 된다. 그램당 비트를 보나 비트당 비용을 보나, 성능을 보나, 스토리지는 CPU 속도 증가 보다 훨씬 빠른 추세를 유지하고 있다.
<그림2> 1956년도의 디스크 드라이브 - IBM의 최초의 상용 디스크 드라이브 중 하나. 5MB 용량을 가졌으며 화려한 냉장고의 크기 정도 되는 캐비닛에 보관된다. 대조적으로 32GB microSD 카드는 5/8 x 3/8 인치이며 무게는 약 0.5 그램 정도이다. - 사진: 마이크 루키데스(Mike Loukides). 사진의 디스크 드라이브는 IBM 알마덴(Almaden) 연구소에 있다.
데이터에 무어의 법칙을 적용할 때 중요한 것은 단지 괴짜의 현란한 솜씨일 뿐만이 아니다. 데이터는 저장할 공간만 있으면 확장해서 이를 채운다. 보다 많은 스토리지를 사용할 수 있게 되면 이를 채워 넣을 보다 많은 데이터를 찾게 된다. 웹을 돌아다닐 때마다, 페이스북에서 친구를 맺을 때 마다, 동네 슈퍼마켓에서 물건을 살 때마다 남기는 데이터들이 모두 세세히 수집되고 분석된다. 저장 능력이 늘어나면서 그런 데이터를 분석하고 사용하는 세련된 방식이 요구되고 있다. 이것이 데이터 과학의 토대이다.
그래서, 데이터를 유용하게 하려면 어떻게 해야 할까? 모든 데이터 분석 프로젝트의 첫 단계는 "데이터 컨디셔닝" 즉, 가용한 상태로 데이터를 바꾸는 것이다. Atom 데이터 피드, 웹 서비스, 마이크로포맷, 그 밖에 기계가 직접 처리 가능한 데이터 형식을 제공하는 새로운 기술들 같은 소비하기 쉬운 형태의 데이터가 더 많아졌다. 그러나 구식의 화면 저장 방식도 끝나지 않았으며 앞으로도 계속 유지될 것이다. "가공되지 않은 자연 상태의 데이터"의 소스는 대체로 엉망진창이다. 이런 것들은 모든 메타데이터가 제자리에 잘 위치해서 잘 작동하는(well-behaved) XML 파일이 아니다. "Data Mashups in R"에서 사용된 압류 데이터는 필라델피아 카운티 보안관 웹사이트에 게시된 내용이다. 이 데이터는 아마도 스프레드시트에서 자동으로 생성해준 것 같은 HTML 파일 형식이었다. 엑셀에서 생성한 HTML을 본적이 있는 사람은, 이걸 처리하는 일이 흥미로울 것이라는 걸 알 것이다.
데이터 컨디셔닝은
Beautiful Soup 같은 도구를 갖고 복잡한 HTML을 정리하거나, 영어나 기타 언어로 된 텍스트 파일을 이해하기 위해 자연어 처리하거나, 사람이 수작업을 해야 하기도 하는 작업을 수반한다. 아마도 제각각 다른 형태의 데이터 소스를 한 무더기 다루게 될 것이다. 이 작업을 하기 위한 표준 도구가 있으면 좋겠지만 그런 건 없다. 데이터 컨디셔닝을 하려면, 어떤 데이터가 들어오든지 처리할 수 있는 준비가 되어있어야 하며 오래된 유닉스 유틸리티인 awk 부터 XML 파서와 기계 학습 라이브러리에 이르기까지 어떤 것이든 사용할 각오를 해야한다. 펄(Perl)과 파이썬(Python) 같은 스크립트 언어는 필수다.
일단 이 데이터를 파싱한 다음에는, 데이터의 품질에 대해 생각해야 한다. 데이터는 가끔 빠진 부분이 있거나 앞뒤가 안 맞기도 한다. 데이터가 빠졌다면 간단히 빠진 부분을 무시하면 되는 걸까? 언제나 그렇진 않다. 데이터가 앞뒤가 맞지 않는다면, 이렇게 엉망인 데이터를 보고 무언가 잘못되었다고(아무래도, 장비가 고장났다고) 판단할 것인가, 아니면 이 데이터가 보다 흥미로운 무언가를 이야기해주고 있다고 판단할 것인가? 오존층 파괴의 발견이 지연된 것은 너무 낮은 수치는 버리고 읽어들이는 자동화 데이터 수집 도구 때문이라고 알려져 있다. 데이터 과학에서는, 때로 가지고 있는 것이 얻을 수 있는 전부이기도 하다. "더 나은" 데이터를 얻는 것이 불가능하기도 하며, 주어진 데이터 이외의 대안이 없을 때도 있다.
사람의 언어를 포함시키면, 데이터를 이해하는 문제에 또 다른 차원이 더해진다. 오라일리에서 데이터 분석 그룹을 담당하는 로저 마굴라스(Roger Magoulas)는 최근 지리정보 관련 기술을 요하는 애플의 구인 목록 데이터베이스를 검색했다. 단순한 일일 것 같지만, 사과 농가의 구직 공고와 "애플"사의 구직 공고를 구분하는 요령이 필요했다. 이를 하기 위해서는 구인 공고의 문법적 구조를 잘 이해해야 하는데 즉, 영어를 구문 분석할 수 있어야 한다. 그리고 이 문제는 갈수록 자주 발생할 것이다.
카산드라(Cassandra) 데이터베이스나 파이썬 언어에 어떤 일이 있는지를 알아보기 위해 구글 트렌드 검색을 써보면 이런 문제에 대해 감이 잡힌다. 구글은 큰 뱀에 대한 많고 많은 웹 사이트를 색인해놓고 있다. 모호함을 없애기란 절대 쉬운 일이 아니지만 자연어 처리 도구 라이브러리를 사용하면 이를 보다 단순화 시킬 수 있다.
자연어 처리가 실패해도, 인공지능을 사람의 지능으로 대체할 수 있다. 아마존의
Mechanical Turk 같은 서비스가 여기에서 나왔다. 업무를 쉽게 설명할 수 있는 많은 하위 업무로 쪼갤 수 있다면, Mechanical Turk의 장터에서 싼 값에 인력을 이용할 수 있다. 예를 들어, 구인 공고를 살펴보며 어떤 공고가 애플사에서 낸 것인지 알아내려면, 이런 분류를 하는 인력을 대략 한 분류당 십원에 고용할 수 있다. 애플이라는 단어가 있는 만 개의 공고로 양을 줄여놓았고, 이를 사람이 분류하도록 하는데 건당 십원이라면 단지 십만원 밖에 들지 않는다.
규모가 있는 데이터 다루기
"빅 데이터(big data)"에 대해 많이 들어봤을 것이다. 하지만 "빅(big)"이란 단어에 현혹되면 안된다. 정유 회사, 통신사, 그 밖에 다른 데이터 중심의 산업은 이미 오랜 기간 어마어마한 데이터셋을 가지고 있었다. 또한 스토리지 용량은 꾸준히 늘어나고 있기 때문에, 오늘의 "빅"은 확실히 내일 "미디움(medium)"이 될 것이며 다음 주에는 "스몰(small)"이 될 것이다. 필자가 들어본 중 가장 의미심장한 정의는 데이터의 크기 그 자체가 문제의 일부가 될 때가 "빅 데이터"라는 것이다. 우리는 기가바이트부터 페타바이트에 이르는 데이터 문제에 대해 논하고 있다. 언젠가는, 데이터를 다루는 고전적인 기술이 시류에서 사라질 지도 모른다.
데이터로 무엇을 또 달리 해볼 수 있을까? 제프 해머바처(Jeff Hammerbacher, @hackingdata)에 따르면, 우리는 정보 플랫폼 즉, 데이터스페이스(dataspace)를 만들고 있다고 한다. 정보 플랫폼은 전통적인 데이터 웨어하우스와 비슷하지만 차이가 있다. 정보 플랫폼은 풍부한 API를 공개하고, 전통적인 분석과 보고를 위해서라기 보다는 데이터를 탐색하고 이해하기 위해서 설계되었다. 정보 플랫폼은 가장 복잡한 형태를 포함한 모든 데이터 형식을 수용하고 그 데이터의 스키마는 데이터의 변화를 이해하면서 진화한다.
데이터 플랫폼을 구축한 대부분의 조직은 관계형 데이터베이스 모델 이상의 무언가로 옮겨갈 필요성을 느꼈다. 전통적인 관계형 데이터베이스 시스템은 이 규모에서는 더 이상 효율적이지 못하다. 거대한 데이터베이스 서버 간 샤딩(sharding) 및 리플리케이션(replication)은 어렵고 느리다. 미리 스키마를 정의해야하는 일은 데이터를 분석하기 전에 어떤 것이 중요한지 알 수 없는 다양하고 구조화되지 않은 데이터 소스의 현실과 충돌한다. 관계형 데이터베이스는 복잡한 연산의 일부라도 실패하면 쉽게 돌아갈 수 있는 복잡한 트랜잭션을 지원할 수 있도록 일관성을 고려해 설계되었다. 견고한 일관성은 많은 애플리케이션에서 결정적이지만, 여기에서 논하고 있는 분석 같은 작업에서는 반드시 필요하지 않다. 트위터 팔로워가 1,010명이든, 1,012이든 이런 것이 중요할까? 정밀도는 매력적이지만, 금융이 아닌 대부분의 데이터 주도 애플리케이션에서 그런 매력은 현혹일 뿐이다. 대부분의 데이터 분석은 상대적이다. 북유럽에서의 판매량이 남유럽에서의 판매랑보다 빠르게 증가하는지가 궁금하다면, 연간 성장률 5.92 퍼센트와 5.93 퍼센트의 차이에 신경쓰지는 않을 것이다.
큰 데이터셋을 효과적으로 저장하기 위해 새로운 종류의 데이터베이스가 등장했다. 이들은 NoSQL 데이터베이스 또는 비-관계형 데이터베이스라고 부르곤 하는데, 두 용어 모두 썩 유용하지는 않다. 기본적으로 이게 무엇이 아닌지를 말해주어 기존 제품과 유사성이 없는 제품으로 그룹화된다. 이들 데이터베이스 중 다수는 논리적으로 구글의
빅테이블(BigTable)과 아마존의
다이나모(Dynamo)의 자식들이며 많은 노드에 분산되도록 설계되어 절대적인 일관성이 아닌 "결과적 일관성(eventual consistency)"을 제공하며 매우 유연한 스키마를 갖는다. 스물다섯 남짓한 제품이 있기는 하지만 (이들 대부분은 오픈 소스이다), 소수의 리더만이 그 지위를 확고히 하고 있다.
- 카산드라(Cassandra): 페이스북에서 개발, Twitter, Rackspace, Reddit 등의 큰 사이트에서 제품에 사용된다. 카산드라는 고 성능, 신뢰성, 자동 복제에 맞추어 설계되었다. 아주 유연한 데이터 모델을 갖는다. 신생 업체인 Riptano 가 상업 지원을 한다.
- HBase : 아파치 하둡 프로젝트의 일부이며 구글의 BigTable 을 모델로 했다. 심하게 큰 데이터베이스(수십억 개의 행, 수백만 개의 열)에 적합하며 수 천개의 노드에 분산된다. 하둡과 함께 클라우데라(Cloudera)사가 상업 지원을 한다.
그래도 데이터를 저장하는 것은 데이터 플랫폼을 구축하는 일부이다. 데이터로 뭔가를 할 수 있어야만 유용한 것인데 거대한 데이터셋은 계산하는데 문제가 있다. 구글은 극단의 대규모 문제를 극단의 대규모 컴퓨팅 클러스터를 통해 분산시키는 분할 정복(divide-and-conquer) 전략을 기본으로 하는
맵리듀스(MapReduce) 접근법을 대중화시켰다. "맵(map)" 단계에서, 프로그래밍 태스크는 수많은 개별 하위 태스크로 나뉘어 다수의 프로세서로 분산된다. 중간단계 결과는 단일 리듀스 작업으로 취합한다. 이를 알고 보면, 맵리듀스는 구글의 가장 큰 문제인 대규모 검색을 하는데 있어 명백한 해법인 것 같다. 검색을 수천개 프로세서에 분산시키고 그 결과를 단일한 답의 집합으로 통합하기 쉽기 때문이다. 구글 건 만큼 확실하지는 않지만, 검색부터 기계 학습에 이르기까지, 많은 대규모 데이터 문제에 맵리듀스가 널리 적용 가능하다는 것이 증명되었다.
가장 유명한 맵리듀스의 오픈소스 구현은 하둡 프로젝트이다. 야후!는 만개의 코어에서 리눅스를 돌리는 세상에서 가장 큰 하둡 애플리케이션 제품을 구축했다고 발표해서 이를 무대 중심에 세웠다. 핵심 하둡 개발자는 상업 지원을 하는 클라우데라에 기반을 두고 있다. 아마존의 일래스틱 맵리듀스(Elastic MapReduce)는 아마존 EC2 클러스터에 맞추어 기설정된 하둡 이미지를 제공해서 수 많은 리눅스 머신을 사는데 투자하지 않고 하둡으로 일하기 쉽게 해준다. 사용한 만큼만 비용을 지불하고 필요한 만큼 프로세서를 할당하고 해제할 수 있다.
하둡은 단순한 맵리듀스 구현(다양한 맵리듀스 구현 중)을 능가한다. 그것이 바로 데이터 플랫폼의 핵심 요소이다. 대용량 데이터셋에 대한 성능과 신뢰성 요구사항에 초점을 맞추어 설계된 분산 파일 시스템인
HDFS와 HBase 데이터베이스, 개발자가 하둡 데이터셋을 SQL 비슷한 쿼리를 사용해 탐색할 수 있는
Hive, 고수준 데이터플로우 언어인
Pig 등등의 컴포넌트가 있다. 원스톱 정보 플랫폼이란게 있다면 하둡이 바로 그것이다.
하둡은 "애자일"한 데이터 분석을 가능하게 하는 기능이 잘 갖추어져 있다. 소프트웨어 개발시, "애자일 프랙티스"는 보다 빠른 제품 사이클, 개발자와 고객간 보다 긴밀한 상호작용, 테스팅에 관련이 있다. 전통적인 데이터 분석은 결과를 얻을 때까지 시간이 심하게 오래 걸려서 곤란하다. 연산을 시작하면, 한 시간은커녕 하루가 지나도 안 끝나기도 한다. 그런데 하둡(특히 일레스틱 맵리듀스)을 사용하면 긴 데이터셋을 빨리 계산할 수 있는 클러스터를 쉽게 구축할 수 있다. 보다 빠른 연산은 새로운 가설, 데이터셋, 알고리즘을 쉽게 시험해볼 수 있게 해준다. 옳은 질문을 하고 있는 것인지 알려주어 고객과 상담하기 쉬워지며 시간이 없어서 포기할 뻔한 흥미로운 가능성을 추구할 수 있게 된다.
하둡은 기본적으로 배치 시스템이지만,
하둡 온라인 프로토타입(HOP)은 스트림 처리 기능을 갖는 실험적인 프로젝트이다. 하둡은 데이터가 도착하자마자 처리하고 중간 결과를 (근)실시간에 제공한다. 근 실시간 데이터 분석은 트위터 사이트의 유행 주제 같은 기능을 가능하게 해준다. 이런 기능은 연성 실시간(soft real-time)을 요한다. 유행 주제를 보고하는데 있어 밀리초 단위의 정확도는 필요하지 않다. 트위터의 팔로워(followers)의 수와 마찬가지로, "유행 주제"도 오분이나 한시간 동안의 결과만 보고하면 된다.
bit.ly의 데이터 과학자, 힐러리 매이슨(Hilary Mason, @hmason)에 따르면, 많은 양의 계산을 미리 해두었다가 이 경험을 실시간 맵리듀스에 이용해서 어디든 내놓을 만한 결과를 얻을 수 있다.
데이터 과학자에게 기계 학습은 또 다른 핵심적인 도구다. 이제 우리는 웹과 모바일 애플리케이션이 추천 엔진과 통합되길 기대한다. 추천 엔진은 으뜸에 꼽히는 인공 지능 문제이다. 요즘 웹 애플리케이션을 조금만 찾아보아도 분류하고, 에러를 찾고, 이미지를 일치시키고(
Google Goggles 와
SnapTell에 사용된), 휴대전화로 찍은 누군가의 사진을 이용해 온라인상의 신상 정보를 찾아볼 수 있는 경솔한 모바일 애플리케이션인 얼굴 인식 기능을 확인할 수 있다. 앤드류 엔지(Andrew Ng)의 기계 학습 강의는 스탠포드 컴퓨터 과학부 수백 명의 학생이 수강한 가장 유명한 강의 중 하나다(
이 강의 동영상을 강력히 추천한다).
파이썬으로 작성된
PyBrain, 자바로 작성된
Elefant,
Weka, 그리고
Mahout(하둡과 연결되는) 같이 기계 학습을 하기 위한 많은 라이브러리가 있다. 구글은 기계 학습 알고리즘을 RESTful 인터페이스를 통해 공개적으로 노출시키는
Prediction API를 얼마전에 발표했다. 컴퓨터 영상관련,
OpenCV 라이브러리는 사실상 표준(de-facto standard)이다.
Mechanical Turk는 또한 도구의 중요한 부분을 차지한다. 기계 학습은 거의 항상 "훈련용 데이터셋"이나 알려진 데이터의 눈에 띄는 본문을 요구한다. Turk는 훈련용 데이터셋을 개발하기에 훌륭한 방법이다. 일단 훈련용 데이터(아마도 트위터를 통한 공개된 사진 모음 같은)를 수집하고 나면, 사람이 그 데이터를 싼 값에 카테고리 별로 분류하거나, 얼굴이나 자동차 같이 관심있는 사물에 원을 그리는 방식으로 분류하게 할 수 있다. 몇 천 건의 데이터를 건당 몇 센트의 비용으로 분류하는 것은 훌륭한 방법이다. 상대적으로 큰 건이라고 하더라도 몇 백 달러 들지 않는다.
개인적으로 고전적인 통계학 때문에 스트레스를 많이 받기는 하지만, 어떠한 데이터 분석에 있어서든지 통계적 모델을 구축하는 것은 중요한 역할을 차지한다. 마이크 드리스콜(
Mike Driscoll , @dataspora) 에 따르면 통계는 "데이터 과학의 문법"이다. "데이터가 똑부러지게 말할 수 있도록 하는 것"이 결정적이다. 피클을 먹으면 죽는다는 농담이 있다. 피클을 먹은 사람은 누구나 죽기 때문이다. 이런 농담은 상관 관계(correlation)를 이해하는 사람에게는 통하지 않는다. 덧붙이자면, "R in a Nutshell"의 어떤 광고 하나가 다른 광고보다 2 퍼센트 더 구매를 이끌어낸다는 것은 쉽게 알 수 있다. 그러나 이 차이가 중요한 차이인지, 아니면 단지 랜덤한 변동인지 알려면 통계학이 필요하다. 데이터 과학은 데이터의 유무에 대한 것이 아니며 그 데이터가 의미하는 바가 무엇인지 추측해내는 것도 아니다. 가설을 실험하고 데이터로부터 그려내고 있는 결론이 유효한지를 확신하는 것에 대한 것이 데이터 과학이다. 통계학은 전통적인 비즈니스 인텔리전스(BI) 부터 구글의 광고 경매가 어떻게 돌아가는지를 이해하는 전 분야에 걸쳐 자리한다. 통계학은 기본기가 되었다. 통계학은 기계 학습과 다른 분야에서 나온 새로운 기술로 대체되지 않으며 이를 보완한다.
수 많은 상업용 통계 패키지가 있지만, 오픈 소스인
R 언어와 R언어의 포괄적인 패키지 라이브러인
CRAN은 핵심 도구다. R이 특히 컴퓨터 과학에 배경을 가진 사람들에게는 비록 모자라고 이상한 언어이지만, 대부분의 통계적 작업에 대해 "원스톱 쇼핑" 같은 기능(훌륭한 그래픽 기능을 가졌으며 CRAN은 많은 종류의 데이터에 대한 파서를 포함하며, 보다 새로운 확장 기능으로 R을 분산 컴퓨팅에 확장시킴)을 제공하면서 친밀하게 다가온다. 통계 작업의 시작부터 끝까지 모든 해법을 제공하는 툴을 하나 꼽으라면 그건 바로 R 이다.
데이터가 이야기하도록 하기
천 개의 단어를 사용한 글이 그림보다 나을 수도 있고 아닐 수도 있지만, 그림은 확실히 숫자 천 개보다 낫다. 대부분의 데이터 분석 알고리즘은 한 무더기의 숫자를 만들어 낸다는 것이 문제다. 그 숫자가 무엇을 의미하는지, 다시 말해 숫자들이 들려주는 이야기를 이해하려면 그래프를 그려볼 필요가 있다. 에드워드 터프트(Edward Tufte)의 수량적 정보의 시각적 디스플레이(
Visual Display of Quantitative Information)는 데이터 시각화 부문의 고전이며 데이터 과학을 수련하는 누구에게나 기본적인 교재다. 아무튼, 여기서 정말 중요한 건 이게 아니다. 시각화는 데이터 과학자의 모든 단계에서 핵심적이다. 마틴 와튼버그(Martin Wattenberg, @wattenberg,
Flowing Media 창립자)에 따르면 시각화는 데이터 컨디셔닝의 핵심이라고 한다. 가지고 있는 데이터가 얼마나 나쁜지를 알아내려면 그래프를 그려보면 된다. 시각화는 분석의 첫 단계가 되곤 한다. 힐러리 매이슨은 새로운 데이터셋을 얻게되면, 열 장이 넘는 분포도를 그리는 것으로 시작해서 흥미로운 것이 무엇인지 알아내고자 한다고 한다. 일단 데이터가 해주는 이야기를 듣고 힌트를 얻고 나면, 보다 자세한 분석에 들어갈 수 있다.
데이터로 그래프를 그리고 표현하는 많은 패키지가 있다.
GnuPlot 은 아주 효율적이다. R은 꽤 포괄적인 그래픽 패키지를 포함하고 있다. 캐시 리아스(Casey Reas)와 벤 프라이(Ben Fry)의 Processing 은 예술의 경지이다. 특히 시간의 흐름에 따라 데이터가 어떻게 바뀌는지를 보여주는 애니매이션을 만들 때 좋다. IBM의 Many Eyes는 많은 시각화에 상호작용 애플리케이션이 온전히 적용된다.
나단 여우(Nathan Yau)의
FlowingData 블로그는 창의적인 시각화를 살펴보기에 훌륭한 곳이다. 시간의 흐름에 따른 월마트의 성장에 대한 애니메이션은 개인적으로 가장 좋아하는 작품 중 하나이다. 또한 이는 시각화 자체의 미학은 물론 아니라 어떻게 이해할 것인지에 대한 부분에도 "예술"이 관련되는 부분이다. 신체에서 암이 퍼지는 모습이나 아니면 사람들 사이에서 독감 바이러스가 퍼지는 모습처럼 보이지 않는가? 데이터가 말하도록 하는 것은 단지 결과를 보여주는 문제가 아니다. 연결을 만들고 다른 데이터 소스로 돌아가서 이를 검증하는 일을 수반한다. 성공적인 소매 체인이 전염병처럼 퍼지는가, 만약 그렇다면 경제가 어떻게 돌아가는지에 대한 어떤 새로운 통찰력을 주지는 않을까? 몇 년 전만 해도 이런 질문은 해볼 수도 없었다. 컴퓨터의 계산 능력이 부족했고, 데이터는 개인이나 회사가 독점적으로 소유하고 있었으며, 데이터를 다루는 도구도 충분하지 못했다. 지금은 우리가 일상적으로 하고 있는 질문이 되었다.
데이터 과학자
데이터 과학자는 전통적인 컴퓨터 과학에서부터 수학에서 예술에 이르는 범위의 기술이 필요하다. 제프 해머바처(Jeff Hammerbacher)가 페이스북에서 몸담았던 데이터 과학 그룹(아마도 소비자 위주의 웹 자산에서는 최초의 데이터 과학 그룹일 듯)을 다음과 같이 소개했다.
…언제든, 팀원은 파이썬으로 다단계 처리 파이프라인을 작성하고, 가설 시험을 설계하며, R을 가지고 데이터 샘플의 회귀분석을 수행하고 데이터 위주의 제품이나 하둡 서비스를 가지고 알고리즘을 구현해내며 우리의 분석 결과를 가지고 다른 팀원과 소통할 수 있었다.
이런 팔방미인을 어디에서 찾을 수 있을까?
링크드인의 수석 과학자 디제이 파틸(DJ Patil, @dpatil)에 따르면, 최고의 데이터 과학자는 "견실한 과학자", 특히 컴퓨터 과학 전공자보다는 물리학자인 경향이 있다고 한다. 물리학자는 컴퓨터 과학자보다 견고한 수학적 배경, 계산 능력을 가지고 있으며 데이터로부터 최고의 것을 얻어내야만 살아남는 원칙에서 나온다. 이들은 큰 그림과 큰 문제에 대해 생각해야 한다. 데이터를 생성하는데 무지막지한 비용을 썼다면, 만족할 만큼 깨끗한 데이터가 나오지 않았다고 해서 그 데이터를 버릴 수는 없다. 그 데이터들이 이야기를 하도록 만들어야 한다. 데이터가 말하는 바가 생각했던 바와 다른 경우 창의력을 발휘해야 한다.
과학자는 큰 문제를 어떻게 작은 문제로 나누는지를 알고 있다. 파틸은 링크드인에서 그룹 추천 기능을 만드는 과정을 설명했다. 이는 수천 시간의 개발자 시간에 링크드인 맴버쉽에 걸쳐 어마어마한 대조 연산 시간을 잡아먹는 엄청나게 형식적인 개발 프로젝트가 되기 쉬웠다. 그런데 이 과정은 조금 달랐다. 회원의 프로파일을 통해 적절한 추천을 해주는 간단한 프로그램으로 비교적 작게 시작했다. 코넬에 입학했다구요? 그럼 코넬 동문회에 가입하고 싶겠군요. 이와 같이 물어보면서 말이다. 이는 점진적으로 가지를 쳐나가기 시작했다. 프로파일을 보는 것 이외에, 링크드인의 데이터 과학자는 회원이 참석하는 이벤트를 살펴보기 시작했다. 그리고 멤버의 서재에 있는 책을 살펴보았다. 결과는 큰 데이터베이스를 분석했지만 그렇게 느껴지지 않았으며, 가치있는 데이터 상품이 되었다. 작게 시작했고, 점진적으로 가치를 더해나갔다. 거대한 산과 같은 데이터를 한 번에 밀어붙이기보다 목표를 향한 유연한 프로세스가 점진적으로 구축되는 애자일이었다.
이게 바로 파틸이 말하는 다루기 힘들 것 같은 크고 어려운 문제를 푸는데 도움이 되는 작은 문제를 사용하는 "데이터 주지츠"의 핵심이다. CDDB는 데이터 주지츠의 훌륭한 예이다. 음악을 구별하기 위해 오디오 스트림을 직접 분석하는 일은 아주 어려운 문제이다(불가능 하지는 않다. 예를 들어,
midomi 참고). 그러나 CDDB 관계자는 창의적으로 데이터를 사용해서 보다 다루기 쉬운 문제를 해결하고 같은 결과를 냈다. 트랙의 길이에 기반해서 시그너처를 계산하고 이를 데이터베이스에서 검색하는 건 정말 간단하다.
<그림3> 데이터 과학 부문의 채용 경향 - 데이터 과학 분야의 직업을 다루는게 쉬운 일은 아니다. 하지만 오라일리 연구소에서 발표한 자료에서 해마다 전체 "데이터 과학" 시장에 대한 좋은 대표 사례인 하둡과 카산드라 구인 공고가 꾸준히 증가하고 있음을 알 수 있다. 이 그래프는 시간이 갈수록 카산드라 일자리과 카산드라 전문가에 대한 구인 공고가 늘어나고 있음을 보여준다.
기업정신은 퍼즐의 또 다른 조각이다. "데이터 과학자를 고용할 때 어떤 부류의 사람을 찾나요?" 라는 질문에 대한 파틸의 첫 번째 대답은 놀랍게도 "회사를 같이 차릴 사람이요."였다. 이는 아주 중요한 점을 시사하는데, 데이터 위에 지어진 상품의 시대에 접어들고 있다는 것이다. 이런 상품이 무엇인지 아직 알지 못하지만, 승자는 이런 상품을 찾아내는 개인이며, 회사일 것이다. 힐러리 매이슨도 같은 결론에 도달했다. Bit.ly 의 과학자로써 그녀의 과업은 bit.ly에 만들어 내는 데이터를 조사하고 이로부터 어떻게 흥미로운 상품을 만들어낼 것인지 찾아 내는 것이다. 초기의 데이터 산업계에서는 누구도 2012년형 닛산 스탄자(Stanza)나 오피스 2015를 만들려고 하지 않는다. 이들은 물리학자, 수학자, 프로그래머, 아티스트일 뿐만 아니라 기업가이다.
데이터 과학자는 인내의 기업정신에 데이터 상품을 점진적으로 만들어 내고자 하는 의지, 탐구 능력, 해법을 반복할 능력을 겸한다. 이들은 본래 서로 다른 분야에 걸쳐진다. 초기 데이터 수집과 데이터 컨디셔닝부터 결론을 그려내기 까지 문제의 모든 측면에 맞붙을 수 있다. 문제를 보는 새로운 방법을 알아내거나 아주 광범위하게 정의된 문제, "여기 데이터가 많은데, 이걸로 뭘 할 수 있을까?" 를 해결하기 위해 기존의 틀에서 벗어나는 생각을 할 수 있다.
미래는 데이터를 어떻게 모으고 사용하는지를 성공적으로 찾아내는 회사의 것이다. 구글, 아마존, 페이스북, 링크드인이 데이터스트림의 물꼬를 트고 성공의 핵심으로 일구어냈다. 이들이 선봉에 섰고 bit.ly 같은 신생 회사들이 그 뒤를 따른다. 개인 신상을 뒤지거나, 수백만의 여행자의 경험을 공유하는 지도를 만들거나, 다른 사람들에게 전달한 URL을 연구하거나, 차세대 성공 사업은 데이터를 둘러싸고 지어질 것이다. 아무도 기억 못하는
핼 배리언(Hal Varian)의 인용문의 일부이다.
데이터를 취하는 능력(데이터를 이해하고, 처리하고, 가치를 뽑아내고, 시각화하고, 소통할 수 있는)은 다음 세기에서 어마어마하게 중요해질 것이다.
데이터는 진정 새로운 Intel Inside 다.