'데이터 과학'에 해당되는 글 3건

  1. 2016.10.04 데이터 비즈니스에 실패하는 회사들
  2. 2016.06.16 '데이터 사이언스' 다시 생각하기
  3. 2016.06.07 데이터 과학자의 실체
Share           Pin It

빅데이터의 시대를 지나 스마트 데이터 시대로 접어들고 있다. 주변에서 데이터가 중요하고 데이터 비즈니스를 하겠다고 하는 회사들은 많지만 정작 데이터 비즈니스에 성공한 회사들은 손에 꼽을만하다. 구글, 페이스북, 아마존 같은 세계적인 기업들이나 겨우 데이터 비즈니스에 성공했다. 아니면 아주 특수한 케이스나 기술에 두각을 보이는 잘 알려지지 않은 데이터/기술 스타트업정도만 생각날 뿐이다. 국내에서는 네이버가 그나마 앞서있는 축에 속하지만 기술에 의한 것인지 아니면 마켓파워 때문인지 구분이 조금 어려운 것도 사실이다. 카카오는 네이버에 비하면 데이터 비즈니스를 한다는 말을 꺼내는 것도 민망하다. 카카오가 다른 큰 회사들보다는 데이터 비즈니스를 위한 최소한의 여건을 갖춘 것은 맞지만, 데이터 비즈니스를 한다고 명함을 내밀만한 수준이 아니다. 단적으로 말해서 카카오가 데이터 비즈니스를 제대로 했다면 지금보다는 배이상의 매출이나 이익을 냈어야 한다고 본다.

원래는 조금 추상적인 수준에서 데이터 과학자 또는 조직이 필요한 것이라는 주제로 글을 적으려 했지만 생각을 전개하다보니 데이터 비즈니스를 제대로 못하는 것으로 생각이 바뀌었다. 그리고 이 글에서는 개인정보 보호나 보안과 같은 법적 외부요인은 고려하지 않는다.

어쨌든, 많은 회사들이 데이터 비즈니스를 하겠다고 선언하지만 가시적인 성과를 내지 못하고 흐지부지 시간만 허비하고 실패하는 것일까? 그런 회사들의 모든 사정을 소상히 알 수는 없지만 몇몇 사례들로 일반화해보려 한다. 왜 데이터 비즈니스에 실패하는 것일까?

첫째는 데이터가 없기 때문이다. 데이터 비즈니스에 필요한 데이터도 없으면서 데이터 비즈니스를 하겠다고 선언만하는 경우가 종종 있다. 데이터가 없다는 것은 말 그대로 아무런 데이터도 없는 경우도 있고, 의미있는 데이터가 없는 경우도 있고, 또 데이터 연동이 제대로 안 되는 경우도 있다. 데이터의 중요성을 간과해서 데이터를 남기는 것 자체가 부재했던 시절이 있었다. 데이터 분석할 사람은 뽑았는데 정작 분석할 데이터가 없는 웃지못할 일이 벌어지는 거다. 데이터가 없거나 어떤 데이터를 어떻게 수집할지 등의 대책없는 시작은 필패를 예약한 거나 다름없다.

그게 뭐냐면 여러분들은 데이터가 없어요 (이미지: 마리텔 캡쳐)


그러나 그동안 데이터가 중요하다고 많이들 떠들고 비즈니스 성공 사례들이 알려지면서 어떻게든 데이터를 남기고 있다. 그러나 막상 비즈니스에서 필요한 의미있는 데이터가 없는 경우가 다반사다. 그저 아파치 서버가 남기는 로그가 데이터의 전부인 경우도 허다하다. 이걸로는 방문자수 카운트 이외의 사실상 할 수 있는 것이 아무 것도 없다. 때로는 어디에 어떻게 사용할지도 모르면서 그냥 데이터를 쌓아두는 경우도 있다. 일단 쌓아두면 나중에 어딘가에는 쓰겠지라는 생각이다. 없는 것보다 있는 게 낫지만 고민없이 남긴 데이터는 결국 나중에 사용될 가능성이 낮다. 속된 말로 똥이다. 의미없이 데이터를 남기다 보면 관리가 허술해지고 또 빈 데이터만 남게 된다. (RDB처럼) 데이터 포맷이 정적이었던 시절에는 스키마 변경이 어려우니 처음 만들 때 일단 모을 수 있는 모든 데이터 필드를 만들고, 또 혹시 모르니 extra 필드를 여러 개 미리 만들어두던 것이 별로 오래전 얘기가 아니다. 분석이나 마이닝이 데이터 더미에서 의미를 찾아내는 것이지만, 무의미한 데이터에서 의미를 찾는 것은 마이닝의 할애비가 와도 안 된다.

의미있는 데이터를 남긴다고 해서 모든 게 해결된 것은 아니다. 여러 팀으로 나뉘어 다양한 서비스를 다루는 큰 회사의 경우 데이터 연동이 안 되는 경우가 많다다. 개별 서비스의 니즈에 맞도록 데이터를 남기다보니 형식이나 의미가 제각각인 데이터 사일로들만 존재한다. 그리고 물리적으로 개별 서비스의 로그를 한 곳에 모으는 것도 쉽지 않다. 주기적으로 데이터 허브 프로젝트를 시작하지만 몇몇 대표 서비스의 데이터는 연동하지만 마이너한 것들까지 싱크를 맞추지는 못한다. 그 사이에 새로운 기술과 서비스가 등장하면서 기존의 데이터와 호환되지 않는다. 설마 그렇기야 하겠어라고 생각하겠지만 이거 우리 이야기네라고 동감하는 사람들도 많을 거다. 데이터가 없거나 의미가 없거나 연동이 안 돼서 결국 데이터를 사용하지 못하는 회사는 데이터 비즈니스를 할 수 없다는 것은 자명하다.

두번째로 데이터를 다룰 사람이 없다. 데이터 엔지니어링 관점에서 각종 서비스에서 데이터를 수집하고 저장하는 인력이 부족한 경우도 있고, 수집된 데이터를 가공해서 의미를 찾아내는 데이터 분석가/사이언티스트가 없는 경우도 있고, 분석 이상의 해석이 부재하거나 분석 결과를 바탕으로 의사를 결정하고 실행하는 사람이 없는 경우도 있다. 다행인 점은 기술이 발전하면서 데이터를 수집하고 저장하는 것을 도와주는 다양한 오픈 소스들이 많이 나왔고 관련 기술이 나날이 발전하고 있다. 그럼에도 각자의 상황에 맞게 그런 기술과 오픈 소스를 자유자재로 다룰 수 있는 전문 인력은 여전히 부족하다.

이 단계를 넘어가면 분석할 사람이 없다. (개인적 생각으론) 분석을 굳이 학위를 가진 사람이 해야하는 것도 아니고, 다양한 분석 기술은 결국 인간의 공통된 사고 방식 heuristic을 정형화한 것에 불과하다. 분석 인력이 부족하다는 것은 결국 분석 기술을 가진 사람이 부족하다는 것보다는 자유로운 데이터 사고를 하는 사람이 부족하다는 뜻에 가깝다. 다행히 여러 데이터 분석 도구들이 개발돼서 일반인들도 쉽게 사용할 수 있게 됐다. 그러나 가장 우려되는 점은 선무당이 사람을 잡는다는 속담처럼 (쉬운) 분석툴들이 제공하는 기능과 속성의 의미를 모르고 기계적으로 데이터를 블랙박스에 넣어서 결과를 얻고선 모든 게 해결됐다고 생각하는 거다. 상황에 맞는 적정 도구를 선택하고 설정하는 것이 중요한데, 예를 들어 단순 선형회귀를 위해서 레이어가 10개가 넘는 인공망 (딥러닝)을 만드는 일이 벌어지지 않으라는 보장이 없다. 기술의 사용이 더 쉬워질수록 그것의 기저에 있는 기술과 의미를 더 잘 알아야 한다.

분석 인력이 보강돼든 분석 소프트웨어를 사용하든 데이터 (수치)가 주는 함의를 해석해야 한다. 해석은 공학이나 과학을 넘어선 영역이다. 그리고 결정을 내려야 하고, 결정에 따라서 실행해야 한다. 원했던 효과가 바로 나오지 않더라도, 다시 데이터를 모으고 분석/해석해서 결정을 내리고 실행해야 한다. 조금 개선이 되면 다른 방법으로 더 나은 것을 찾아야 한다. 하고 또 하고 또 하고… 데이터를 수집하고 분석하고 해석하는 전문 인력이 꼭 필요하지만, 결국에는 그걸 바탕으로 결정해서 실행하는 사람이 결정적이다. 비즈니스 레벨에서는 결국 권한을 가진 사람들의 역할이다. 여기서 세번째 이유와 연결된다.

셋째, 데이터 비즈니스가 실패하는 결정적인 이유는 많은 회사(경영진)들이 데이터 비즈니스를 지속시킬 의지가 없다는 거다. 아닌 말로 데이터가 없으면 지금부터 수집하면 되고 인력과 기술이 부족하면 채용하거나 오픈소스를 잘 이용하면 된다. 하지만 데이터 비전과 의지는 다른 차원의 문제다. 데이터 비즈니스는 겉절이 김치가 아니라 1~2년 묵힌 김치다. 단기간에 가시적인 성과를 내지 못할 수도 있다는 얘기다. 그리고 계속 실패하면서 방향을 수정하고 다른 시도를 계속해야 한다. 데이터 과학이라고 말하지만 똑부러진 법칙과 이론이 존재하는 과학이 아니라 실험과 검증의 지나한 과정을 거치는 방법론적 과학이다.

데이터 비즈니스를 하겠다고 선언을 했으면 지원을 하고 (인력을 보강해서 팀을 꾸리고 인프라를 구축하는 등), 그리고 인내해야 한다. 퀀텀 점프하듯이 바로 눈에 띄는 효과를 보이는 경우도 있지만, 대부분은 등락을 거듭하면서 서서히 점진적으로 효과가 나온다. 보통 경영진들도 계약직으로 단기 성과를 내야하는 사람들이기 때문에 짧게는 분기나 반기, 길게는 1~2년 내에 성과를 보여줘야 한다. 그러나 데이터 비즈니스는 그렇게 번개로 콩을 구워먹는 게 아니다. 의지를 가지고 장기적인 플랜에 따라서 하나씩 해결해야 겨우 성과가 나온다. 물론 얼마나 스마트하냐에 따라서 성과의 시기와 크기에 영향을 주겠지만…

데이터 비즈니스가 중요하다는 것은 이제 모두가 잘 안다. 하지만 그걸 성공하는 기업은 여전히 소수다. 데이터 비즈니스를 하겠다는 회사들은 먼저 의미있는 데이터를 확보하고 적정 기술을 가진 인력을 보강했다면, 의지와 인내를 가지고 멀리 보면서 실행하기 바란다. 현재는 직원으로서 카카오가 그랬으면 하는 것이 개인의 바람이고, 카카오를 떠나서 (Beyond Kakao, not leaving Kakao) -- 여전히 내가 데이터 과학을 하는 사람인지는 모르겠으나 오랫동안 데이터를 보는 것을 업으로 했던 사람으로서 -- 그런 조직의 일부가 된다면 기쁠 거다.


=== Also in...

F: https://www.facebook.com/unexperienced

댓글을 달아 주세요

Share           Pin It
데이터 과학 Data Science 또는 데이터 과학자 Data Scientist에 대해서 검색해보면 아래의 다이어그램 또는 비슷한 설명을 필히 보게 된다. 데이터 과학자는 프로그래밍 능력과 수학과 통계에 대한 지식과 도메인/비즈니스에 대한 이해가 있어야 한다는 내용이다. 물론 이 세가지 영역에서 모두 또는 특정 영역에서 확연히 뛰어나면 좋겠지만 전문 개발자들보다 프로그래밍에 능할 수 없고 수학만 파고든 사람들이나 한 분야에서 수년간의 경험을 쌓은 이들보다 더 뛰어날 수가 없다. 그러나 이 세분야에서 고른 지적 능력을 가져야 함을 부인할 수 없다. 

데이터 과학자는 어떤 능력이 필요한가? (출처. Quora, 아래링크)


데이터 과학에 대해서 더 자세히 알고 싶은 이들은 다음의 Quora 쓰레드를 참조하면 된다.

오늘 글을 적는 것은 단순히 위의 다이어그램을 소개하거나 각 영역에 대해서 자세히 알려주기 위함이 아니다. 페이스북을 통해서 수학을 전공하는 어느 대학생이 금융공학에서 데이터마이닝을 해보고 싶다는 진로 상담을 해왔는데, 질문을 제대로 읽지 않고 바삐 출근하는 길에 잠시 생각했던 생각을 적으려는 것이다.

질문을 제대로 읽기 전에는 이 세 영역의 중요성을 말해주면서 지금 어차피 수학을 전공하고 있으니 어떻게 해서라도 프로그래밍 언어 하나 정도는 마스터하라는 조언을 해줄 참이었다. 그리고 비즈니스/도메인 지식을 습득하는 것이 가장 중요하지만, 이것은 학부 과정 학생이 쉽게 얻을 수 있는 것도 아니고 나중에 대학원에 진학하거나 취직을 해서 여러 프로젝트에 참여하고 경력을 쌓다보면 자연히 얻게 되는 것이다정도로 조언을 해줄 참이었다. 물론 질문의 요지는 이게 아니었기 때문에 다른 대답을 해줬지만...

그런데, 프로그래밍, 수학/통계, 그리고 도메인 지식… 이 세 영역의 의미를 다시 생각하면서 데이터 과학에 대한 생각이 좀더 발전했다. 첫째, 수학/통계 지식은 데이터 과학의 원리나 기초를 제공해주는 것 같다. 소위 말하는 데이터 분석 또는 마이닝에서 (고급) 수학이 핵심이 되지 않는 경우가 많기는 하지만 -- 특히 데이터가 충분히 많은 경우 --, 적어도 데이터에 내재한 패턴/의미를 이해하는데 기초 수학과 통계는 원리적 가이던스를 제공하다.

둘째, 프로그래밍은 데이터 과학의 실행을 담당한다. 요즘은 많은 통계 및 분석 패키지나 오픈소스가 존재하기는 하지만, 여전히 많은 경우 코딩이라는 행위가 이뤄져야 한다. 수학 지식만으로 많고 다양한 데이터 속의 패턴과 의미를 밝혀낼 수가 없고, 많은 도메인 경험은 중요한 인사이트를 주지만 인사이트가 결론이 될 수가 없다. 결국 인사이트를 검증하기 위해서 데이터를 하나하나 캐나가는 과정이 필요한데 그 과정이 결국 코딩/프로그래밍의 도움없이 이뤄지지 않는다. 멋진 툴들이 이런 과정을 쉽게 해주기도 하지만, 아직 만능의 툴은 없다. 손으로 직접 해봐야 한다. 코드를 한 줄씩 짜가면서 실행해야 한다는 거다.

세째, 도메인 또는 비즈니스 지식은 경험이다. 이 경험이라는 것이 문제 (도메인)에 대한 경험일 수도 있고, 방법(분석/마이닝)에 대한 경험일 수도 있다. 그리고 앞서 말했듯이 경험은 인사이트라는 결실을 맺는다. 뛰어난 추론 능력과 실행 능력이 있더라도 인사이트가 없으면 삽질의 연속이다. 물론 그런 삽질을 통한 경험이 유능한 데이터 과학자를 만들어낼 수도 있지만… 내가 풀어야 하는 문제를 잘 이해하는 것 그리고 그걸 풀어가는 과정을 빨리 파악하는 것은 경험이 주는 귀한 선물이다.

위의 다이어그램은 데이터 과학을 설명하는데 유용하지만, 한가지 빠진 게 있다. ‘데이터’에 대한 직접적인 내용이 없다는 점이다. 도메인이 데이터를 약간 내포하고 있지만 명시적으로 데이터의 중요성이 그림에 나타나지 않는다는 거다. 데이터를 다루는 수학, 데이터를 다루는 프로그램밍, 데이터를 다루는 경험은 그냥 수학과 코딩과 도메인과 다를 수가 있다.

그리고, 수학/통계와 프로그래밍이 만나서 — 다이어그램에서는 ‘머신러닝'이라 표현했지만 — 알고리즘이 나온다. 데이터 분석 업무에서 (고급) 알고리즘이 불필요한 경우가 허다하지만 어쨌든 수학과 프로그래밍 양쪽을 마스터해야지 제대로된/쓸만한 알고리즘을 만들 수 있다. 그리고 이 알고리즘과 도메인 지식이 결합해서 일종의 지혜가 된다. 뭐, 그냥 데이터 지식이라고 말해도 된다. 데이터 과학은 결국 원리와 실행과 경험이 만나서 지혜를 구축해나가는 학문이다. 끊임없이...

===
F: https://www.facebook.com/unexperienced


댓글을 달아 주세요

Share           Pin It

지난주 금요일에 제주에서 대한인간공학회 춘계학술대회가 있었습니다. 프로그램을 준비하시는 분께서 '전문가 세션 > 빅데이터'에 발표해줄 연사가 필요하다고 해서 흔쾌히(?) 수락했습니다. 처음에는 단순히 다음이나 카카오에서 했던 다양한 분석 사례정도만 모아서 '카카오에서의 빅데이터 분석 및 활용' 정도로 발표하면 쉽게 될 거라 생각했습니다. 그런데 청자들이 데이터 분석을 담당하거나 적어도 프로그래머/개발자라면 쉬울 수 있는데, 대부분 인간공학 전공자들이라서 단순히 사례들만 모아서 장광설을 펼치면 죽도 밥도 안 될 것 같다는 두려움이 생겼습니다. 발표자료를 준비할 시간이 겨우 한달정도밖에 없었는데, 여러 고민을 하다가 인간공학을 전공하는 학생들에게도 도움이 될 수 있는 테스팅 방법론을 중심으로 준비하기로 마음을 정했습니다. 온라인 A/B 테스트에서부터 MAB (Multi-Armed Bandit)까지 다루면 될 것 같았습니다. 그런데 또 막상 자료를 준비하다보니 원래 취지가 '빅데이터'인데, 너무 지협적인 문제만을 다루는 듯해서 조금 일반화시켜서 '데이터 과학자의 삶: 신화와 실체'라는 제목으로 정했습니다. 발표자료에서는 '온라인 테스팅'을 중심으로 다뤘지만, 데이터 과학에서 가장 감추고 싶은 실체는 데이터 준비와 정제인데, 이 내용은 말미에 짧게 넣었습니다.

 
슬라이드에 설명이 없으니 짧게 정리하면..

데이터 과학자은 수학/통계 지식과 프로그래밍 능력을 활용해서 데이터에서 비즈니스적 가치를 찾는 사람이다. 그래서, 수학 통계 지식도 필요하고 프로그래밍 스킬도 필요하다. 뿐만 아니라, 도메인 지식이 필요하다. 그러면 데이터 과학자는 슈퍼맨인가? 아니다. 실제 데이터 과학자들이 하는 일은 SQL을 잘 짜서 데이터를 뽑는 일만 한다. 그것도 무한 반복해서... 요즘 회사에 출근해서 가장 많이 보는 화면이 Hue 시스템이다. 그나마 터미널에서 작업하지 않는 것과 Hive 때문에 자바 등의 직코딩을 안해도 되는 것이 참 행복하다.

중요한 파트라서 화면을 캡쳐했는데... 실제 데이터 과학자들은 'SQL과 Data' 사이의 왔다갔다함이 일의 대부분이다. 여기서 인사이트를 얻으면 구현해서 테스트하고 배포한다. 아주 가끔 회귀분석이나 클래시피케이션 같은 고급 알고리즘을 사용하기도 한다. (KR = Knowledge Representation)

'김제동의 톡투유' 장면을 캡쳐했는데, 일반인들이 '빅데이터'에 대해서 생각하는 게 이런 화면이다. 많은 다양한 데이터를 모아서 빨리 가공해서 단어의 출현 빈도나 트렌드, 또는 키워드맵을 만드는 정도... 그러나 데이터에서 가치를 찾아내는 것이 요즘은 더 중요하다. 그래서 빅데이터보다는 스마트데이터로 변하고 있다. 단순히 엔지니어링 문제를 과학으로 바꾸는 것은 결국 분석력이다.

데이터 과학이 과학인 이유는 '과학적 방법'을 사용하기 때문이다. 과학적 방법은 1. 이론으로 증명하든지 2. 실험으로 검증하든지... 그런데 이론은 어렵다. 발표는 테스팅에 집중한다.

보통 과학에서의 실험은 문제에 대한 가설을 세우고 실험해서 실패하면 다시 가설을 세우고 다시 실험하고 이 과정을 반복하다가 실험이 성공하면 가설대로 논문을 작성해서 졸업하면 되지만, 서비스에서는 가설과 검증보다는 관찰과 테스트/비교를 거친다. 그리고 테스트가 성공해서 성공적으로 서비스를 런칭하더라도 다시 처음부터 관찰과 테스트를 무한반복한다. 그리고 온라인 테스트와 오프라인 테스트를 분리해서 진행하는 점도 특이하다. (넷플릭스는 일주일 단위로 '코드 배포 - 오프라인 테스트 - 온라인 테스트 - 서비스 배포'를 반복한다. 넷플릭스 개발자의 발표에서 직접 들은 것)

온라인 테스트는 A/B 테스트 또는 버킷 Bucket 테스트라고 한다. 파란 약과 빨간 약을 실제 사용자들에게 선택하라고 두고 많이 선택하는 걸로 정하면 된다. (인간공학회라서) 아이트래킹으로 비교할 수도 있다. 그런데 나는 데이터 과학자니 데이터로 확인한다. (같은 광고를 다른 타겟 사용자들에게 노출시키고 반응을 확인함)

A/B 테스트를 할 때 트래픽 기반으로 할 수도 있고 사용자 기반으로 할 수가 있다. (귀찮아서 그냥 글로 표현함)

50:50으로 실험군과 비교군을 만들 수 없다. 처음 런칭하는 서비스라면 괜찮지만, 이미 운영중인 서비스의 50%의 트래픽에 검증이 안/덜된 화면을 보여줄 수 없기 때문에 일부 (보통 5~10%)만을 실험군으로 정한다. 바이어스를 없애기 위해서 랜덤군도 둔다. 실험해야할 것들은 산적해있는데 매번 A/B로 나눠서 테스트하는 것은 여러모로 리소스 낭비이므로 실험군을 여러 개를 동시에 적용하고 모니터링 한다.

여담으로 네이버의 상징색이 녹색이듯이 다음의 상징색은 파란색이다. 처음에는 빨간색으로 하자는 의견도 있었지만 실제 사용자 반응에서 파란색으로 했을 때 PV나 클릭률 등이 더 높았다. (입사하기 전에 했던 전설로 들려오는 사례). 여담2. 외국의 경우 보통 엔지니어 중심으로 서비스가 만들어져서 데이터 기반으로 UI/UX를 정하는 것이 좀 일반적인데, 국내의 경우 처음부터 기획자나 디자이너가 함께 일하기 때문에 데이터 기반으로 화면을 구성하는 것이 오히려 더 낯선 풍경이다. (이미 기획자 및 디자이너들은 전문성이 있기 때문에 단순한 수치로 그들의 전문성에 의문을 제기하기는 어렵다. 그래서 UI/UX보다는 랭킹 관련된 곳에만 보통 온라인 A/B 테스트가 적용된다.)

서두에 말했듯이... 데이터 과학자는 마치 꽃길만을 걸을 것 같지만 그렇지 않다. 그리고 데이터 과학에서 알고리즘보다는 데이터가 더 중요하다. 포브스의 기사에 이게 잘 나타나있다. 데이터 과학자들의 업부에서 20%는 데이터를 정의하고 수집하는데, 그리고 60%는 데이터를 정제하는데 사용한다. 그리고 이걸 가장 싫어한다. 그러나 이게 데이터 과학자들의 숙명이다. 이걸 얼마나 잘하느냐가 데이터 과학의 성패를 결정한다. 알고리즘은 중요하다. 그러나 데이터가 나쁘면 알고리즘은 그냥...

정리하면, 데이터 과학은 비즈니스 골을 획득하기 위해서 데이터를 해킹하는 것인데, '바른 데이터 > 바른 평가 > 바른 알고리즘'이다. 나는 데이터 과학자/해커지만, 여러분들은 이런 방법론이나 데이터를 사용해서 '인간 해커'가 되기를 바란다. 그리고 제주에서 즐거운 시간을...

=== Also in...


댓글을 달아 주세요