빅 데이터, 머신러닝, 데이터 사이언스

인공지능이 대세다. 한낱 바둑 게임인 알파고가 바둑계의 전설인 이세돌 9단을 이긴게 불과 1년전인데, 지난 1년간 알파고에 쓰인 인공지능 방식을 적용한다는 사업체가 수십곳이나 생겨났다. 기업들은 인공지능 연구소를 설립하고, 정부는 인공지능에 5년간 1조원을 투자하겠다고 발표했고, 사설 강의 업체들 곳곳에서 데이터 사이언티스트 양성소라는 팻말을 달고 머신러닝, 데이터 사이언스 수업을 제공하고 있다. 최근에 만난 한 벤쳐 투자자는 머신러닝과 딥러닝의 차이는 뭔지, 데이터 사이언티스트인데 왜 컴퓨터 공학과 출신이 아닌지 한참을 질문해댔다. (참고로 글쓰는 저자의 학부 전공은 Economics, 석사 전공은 Financial Econometrics, 박사 전공은 Markov Chain Monte Carlo (MCMC) Simulation을 다루는 Financial Mathematics였다.)

불과 2000년대 초만해도 컴퓨터 공학에서 머신러닝 전공은 비주류였다. 필요한 수준의 컴퓨팅 파워가 부족하기도 했고, “머신”이 “러닝”해서 상품화할 수 있는 수준의 복잡도를 갖춘 엔진의 “러닝”에 필요한 “빅 데이터”가 부족했기 때문이다. 최근들어 머신러닝을 바탕으로 한 상품이 폭발적으로 쏟아져 나올 수 있는 것은 IT 기술이 발달하면서 컴퓨팅 파워 문제를 많이 극복했고, 관련 데이터가 폭발적으로 증가하고 있기 때문이다. (그리고 투자자들이 “알파고”라는 이름에 현혹되어 투자를 많이 하고 있기 때문이지 않을까 싶다.)

알파고로 인공지능의 가능성을 확인한 사람들이, 빅 데이터를 갖추고 있고, 머신러닝을 적용만하면 꿈같던 일들이 모두 현실화 될 것이라고 큰 기대를 품고 있는데, 데이터 사이언티스트 입장에서 대중의 기대에 일침을 놓는 글 시리즈를 드려볼까 한다. 첫번째 글은 빅 데이터, 머신러닝, 데이터 사이언스에 대한 일반의 오해를 푸는 목적의 글이고, 이후 장기 연재를 통해 Data Science의 아이디어를 ab180 사업에 적용하는 과정에서 필자가 겪은 난관, 관계되는 기술, 그리고 난제를 극복하면서 필자가 고민한 아이디어들을 차분하게 소개할 것이다. (이해에 필요한 R 코드를 첨부할 수는 있으나, 업무 보안과 관계되는 부분은 제외되니 독자분들의 양해를 먼저 구한다.)

Buzzword 1번. 빅 데이터

처음 빅 데이터에 대한 관심이 방향을 정한 곳은 돈이 가장 많이 모이는 곳, 금융 시장이었다. 여러 아이디어가 등장했지만, 가장 투자자들의 관심을 끌었던 것은, 일별 주가의 움직임을 보고 “기술적 분석”을 하던 투자자들에게 하루 중 주가의 움직임을 분, 초 단위로 보고 투자전략을 뽑아낼 수 있는 알고리즘이었다. 지금은 컨셉마저 달라져버린 High Frequency Trading (HFT)의 등장이었다. 언뜻보기에는 한 달에 20일 종가를 보고 뽑은 20개의 데이터 포인트보다 매 분 단위의 가격을 보고 뽑은 20 (일) x 6 (시간) x 60 (분) = 7,200 개의 데이터 포인트가 훨씬 더 많은 정보를 갖고 있고, 이런 데이터를 이용하면 더 큰 돈을 벌 수 있을 것 같은 기대감 때문에 HFT는 한 때 큰 반향을 불러 일으켰다.

그럼 HFT로 헤지펀드들은 큰 돈을 벌었을까?

HFT의 핵심은 분 단위(혹은 초 단위)의 데이터에 있는 정보들을 개별적으로 해석, 활용할 수 있느냐의 여부에 달려있다. 그 정보들을 활용하지 못하면 데이터 포인트가 아무리 많아도 데이터 분석의 결과는 동일하다. 쉬운 예시를 하나 들어보자.

3월 1일 아침 개장 시간에 투자해서 3월 31일 장 마감에 매도하려는 생각을 가진 투자자가 있다. 이 투자자에게 중요한 데이터 포인트는 딱 두 개다. 3월 1일 아침 개장 때 구매한 가격과 3월 31일 장 마감에 매도하는 가격. 그 사이 30일간 투자 포트폴리오의 가격이 어떻게 움직였는지는 전혀 중요하지 않다. 20 거래일 동안 20개의 데이터 포인트를 이용해 분석을 하건, 7,200개의 데이터 포인트를 이용해 분석을 하건 어차피 1달 투자 후의 수익률은 동일하다.

위의 예시에서 보듯이, 투자 기간을 3개 구간으로 쪼개거나 12개 구간으로 쪼개거나 상관없이 최종적으로 얻을 수 있는 이익은 동일하다. 결국 HFT로 추가 수익을 내기위해서는 분(초) 단위로 이익을 얻기 위해 가격 움직임을 예측해서 분(초) 단위로 남들보다 빨리 매수-매도할 수 있는 알고리즘이 도입되어야 한다. 그럼 가격 움직임은 어떻게 예측할까? 뉴스 같은 “재료”가 있을 때 투자자의 반응을 보고 움직이겠다는 생각은 분(초) 이하 단위에서는 통하지 않는다. "남들보다 더 빨리"가 사실상 불가능하기 때문이다. 따라서 HFT는 “재료”에 반응하는 투자전략이 아니라, 분(초) 단위의 과거 거래 가격에 기반한 패턴을 찾아내는, 예전부터 해오던 “기술적 분석”을 단지 더 짧은 시간 안에 해내겠다는 전략이라고 보면 된다. 말을 바꾸면, 기술적 분석을 하는 방식은 바뀐 부분이 없고, 데이터를 보는 기간 (Window)을 분(초) 단위로 좁혀서 투자를 하겠다는 이야기다.

이런 기술적 분석이 맞기 위해서는 거래 기록에서 찾는 패턴이 미래에도 반복되어야하는데, 안타깝게도 금융시장은 많은 경우 예측 범위를 벗어났다는 생각이 들만큼 “다이나믹”하게 움직인다. 아마 분(초) 단위에서 적용할 수 있는 패턴을 찾았다면, 같은 맥락에서 시간 단위, 일 단위, 월 단위로 보는 패턴도 합리적인 수준의 이익을 제공해야할 것이다. 필자의 박사 전공인 MCMC에서는 주가 수익률 움직임을 무한대로 쪼개서 각각의 조각들이 Random하게 결정된다고 가정한 모델로 시뮬레이션화 한다. 가능성의 조합은 당연히 무한대다. 실제 주가 움직임의 가능성도 무한대다. 투자 기간 (Window)이 월, 일에서 분(초) 단위로 내려간다고해서 주가 움직임의 가능성이 유한한 숫자로 내려오는 것도 아니다. 무한대를 나눠도 역시 무한대니까. 결국 HFT는 “예측” (좀 더 정확하게는 “도박”)용으로는 실패했다.

"빅 데이터"를 이용하는 이런저런 시도 끝에 오늘날 우리가 알고 있는 HFT 기반의 헤지펀드들은 여러개의 거래소들간 <가격, 물량> 차이가 발생하는 찰나의 순간을 활용하는 차익거래 (arbitrage trading) 모델에 안착했다. (한 거래소에서 모든 주문 물량을 소화 못 할 때 다른 거래소로 주문을 이전하는 그 순간 발생하는 가격 차이에서 차익을 얻는 거래법이다. 아쉽게도 주식, 채권 거래소가 하나뿐인 한국에서는 적용 못한다.) 쉽게 이야기하면, 빅 데이터를 쓰기는 하지만, 그 데이터로 미래를 “예측”하는 방식이 아니라 기술적인 한계를 “악용"하는 방식이다.

미국은 이미 1936년에 빅 데이터로 “예측”했었다

1936년 미 대선을 맞아 Literary Digest라는 잡지는 무려 240만명의 미국인을 대상으로 캔자스 주지사 Alfred Landon과 대통령 Franklin Delano Roosevelt에 대한 선호도 여부를 조사했다. 여론조사는 Landon의 압승을 예측했으나 정작 선거 결과는 Landon이 단 2개 주에서만 과반수를 차지하는 것으로 나왔다. 1936년 빅 데이터로 대 실패를 겪은 이후, 샘플 추출, 선택 편차 (Selection bias), 반응 오류 (Non-response error), 측정 오차 (Measurement error) 등 분석 이전에 데이터 자체의 퀄리티를 확보하는 연구가 진행되었고, 오늘날 선거 여론 조사는 기껏해야 1,000명 혹은 2,000명에 대한 샘플 조사로 결과를 예측하고, 240만명에 대한 여론조사보다 정확도는 훨씬 높아졌다. Reference

위의 1936년 미 대선은 데이터가 양적으로 방대하다고해서 예측이 정확해지는 것이 아니라, 얼마나 정확한 데이터를 갖고 있느냐가 예측 정확도를 담보할 수 있는지에 대한 대표적인 사례다. 가장 최근에 있었던 브렉시트 (Brexit), 2016년 미 대선 등은 속내를 밝히지 않는 유권자(속칭 Shy voter)들을 제대로 찾아낼 수 없으면 여론조사의 정확성이 떨어지는 한계를 보여주기도 했다. 혹자들은 Shy voter가 많으면 샘플을 늘리면 되지 않냐고 주장하는데, 1936년 대선에서 볼 수 있듯이, 데이터 자체에 오류가 있으면 샘플 숫자가 아무리 많이 늘어나도 결과의 정확도를 높일 수는 없다.

진짜 빅 데이터란?

빅 데이터의 핵심은 데이터의 크기가 아니라 데이터로 여태까지는 못했던 분석, 예측을 할 수 있는지, 그래서 정확도를 높일 수 있는지의 여부다. 위의 예시처럼 금융시장에서 엄청난 양의 데이터를 분석한다고 해도 분석 방식은 “기술적 분석”의 구태에서 크게 벗어나지 못하고, 당연히 예측의 정확도도 높아지질 않는다. 미 대선 사례들이나 브렉시트는 대용량 데이터도 정확하게 측정되지 않으면 예측력에 도움이 안 된다는 사실을 일깨워준다.

국내의 대형 IT회사들, 유망한 스타트업들이 몇 천만개의 디바이스를 추적하고 있고, 몇 백억개의 데이터 포인트를 보유하고 있다고 열심히 홍보를 하고 있는 경우를 본다. 그러나 대용량 데이터를 모아도 오류없이 깔끔하게 DB에 담아놓는 회사는 드물고, 각 디바이스 별 (혹은 유저별) 행동 패턴을 예측할 수 있는 근거로 쓸 수 있는 데이터를 DB화 해 놓은 회사는 더더욱 드물다. 웹 사이트 이용 정보를 모으는 쿠키는 수명이 짧아서 장기간 유저 행동 패턴을 제대로 추적할 수가 없는 경우가 많고, 모바일 데이터는 링크 찍고 다음 화면 뜨기 전에 뒤로 가기를 누르는, 소위 말하는 Bouncer들을 추적 못하는 경우가 허다하다. 이런 상황에 행동 패턴 예측을 위해서 그 유저의 웹 / 앱 내 페이지 이동 경로 같은 정보를 DB에 저장할 수 있는 회사가 얼마나 될까? 원하는 것들을 한참 늘어놓는 고객사에서 빅 데이터를 받고나면 필자는 대부분 이렇게 이야기한다. “데이터가 더 필요합니다. 안 갖고 계신 다른 데이터가요."

갑자기 간헐적인 클릭 이외에 다른 행동 패턴 데이터 없이 행동 패턴을 예측하는 모델을 만들고 싶다며 대용량 데이터를 제공해주던 매체사 하나가 생각난다.

Buzzword 2번. 머신러닝

요즘 머신러닝, 혹은 인공지능에 대한 글이 홍수처럼 쏟아지고 있다. 내용을 곰곰히 읽어보면 대체로 통계학은 구시대의 학문이고, 머신러닝은 21세기적인 기술이다, 혹은 머신러닝은 오래된 기술이고 딥러닝이라는 새로운 기술이 인공지능에 핵심이다는 류의 생각이 담겨있다. 좀 더 나아가면, 어느 회사의 머신러닝 기술이 다른 회사의 머신러닝 기술보다 좋다, 인공지능 분야에서 우리 회사가 앞선 기술력을 보유하고 있다는 표현도 자주 들었던 것 같다. 맞는 말일수도 있는데, 듣는 데이터 사이언티스트가 좀 답답하니 몇 마디만 해보고 싶다.

머신러닝은 통계학이다

일단 통계학 박사 친구들이나 머신러닝하는 컴퓨터 공학 박사 친구들 둘 다 화를 낼 것 같은 표현으로 시작해보자. 아마 석사 수준에서 머신러닝 수업을 들어가보면 처음 몇 시간은 통계학 강의를 잘못왔나는 생각이들만큼 통계학 방법론과 똑같은 내용이 반복될 것이다. Gradient Descent는 오차 제곱근의 최소치를 찾는 Least Square Regression과 개념적으로 동일하고 Classification에 나오는 테크닉들도 통계학에서 Logit, Probit 같은 확률치 예측하는 Regression이나 Separating Hyperplane Theorem (SHT) 같은 차원 평면을 쪼개는 아이디어들과 닮아있다. SHT는 머신러닝에서 Support Vector Machine (SVM) 으로 표현되고 있고, 수학적인 출발점은 같다.

사용하는 테크닉이 모두 통계학에 기초하고 있다는 점에서 머신러닝은 통계학의 아류라고 해야하겠지만, 두 학문이 데이터를 활용하는 방식은 철학적으로 크게 차이가 난다. 통계학은 데이터를 이해하고 분석하는 학문이라면, 머신러닝은 데이터라는 투입요소로 목표값의 최적 근사치를 찾으려는 기술이다. Neural Network에서 쓰는 Hidden layer(s)는 데이터의 상관관계를 표시하는 함수를 Non-parametric 방법으로 추측하는 통계학 방법의 공학적인 접근법이라고 보면 맥락이 맞다고 본다.

필자가 수업을 들을때만해도, Hidden layers의 숫자를 늘리면 최종 결과값의 정확도는 올라갈 수는 있지만, 계산 비용(Computation cost, 예. CPU, 메모리, 소요 시간 등)이 많이들어가기 때문에 교수님들이 추천하는 모델이 아니었다. 그러나 알파고의 성공이후 Hidden layers가 여러 층위로 들어간 Neural Network 모델이 “딥러닝”이라는 이름으로 세간에 알려지면서 요즘 필자가 만나는 고객들은 필자가 얼마나 “딥러닝”을 잘하는 사람인지 물어본다. 필자의 대답은 언제나 같다. 머신러닝 모델들은 이미 오픈 소스로 다 알려져 있다고. 누가 더 “딥러닝”을 잘하냐고 물으실게 아니라, 누가 더 “딥러닝”을 목적에 맞게 잘 쓸 수 있는 사람인지를 물어보셔야 한다고.

통계학과 시뮬레이션을 하다 머신러닝을 만난 필자같은 경우는 데이터로 내가 원하는 목적에 맞는 결과물을 만들어내기 위해 사용하는 하나의 테크닉이라는 관점에서 머신러닝에 접근한다. 샘플데이터로 집단의 특성을 파악해야할 때는 통계학을 유용하게 쓸 수 있고, 기존의 데이터를 바탕으로 미래에 발생 가능성 있는 사건들을 예측할 때는 시뮬레이션 모델을 쓰고, 무수히 많은 사건이 일어난 경우를 바탕으로 패턴을 찾아내는 작업을 해야할 때는 머신러닝을 쓴다. 당연하게도 시뮬레이션이나 머신러닝을 이용할 때 사용하는 방법론은 모두 통계학 수업에서 배운 아이디어의 응용이다. 그래서 필자는 시뮬레이션이나 머신러닝을 모두 "통계쓰는 기술”이라고 부른다.

머신러닝이 통계학보다 더 정확하다?

정답은 “No”다. 단기간의 행동 패턴을 보고 예측하는 모델을 만들 때 통계학 기본 모델들이 더 나은 예측력을 보이는 경우가 종종 있다. 경험상 monotonic function이 아닌 함수로 예측이 들어가야하는데, time-dependent 패턴을 쉽게 잡아낼 수 없으면서 계속해서 데이터가 쌓이는 경우에 neural network 같은 머신러닝 방법론이 효과를 발휘하는 경우를 많이 본다. 아래의 예시를 보자

Training set에서 Neural network (ANN)가 Logit (log)보다 더 정확한 결과값이 나오도록 Learning을 시킨 이후 Test set에 적용할 경우, 위에서 드러나듯이 일부구간에서 Logit이 Neural network보다 더 효율적이다. Neural network이 Logit보다 더 효율적인 결과를 얻기 위해서 필요한 데이터의 양 혹은 기간 (Learning period)가 일정 수준이 되지 않을 경우 Neural network가 좋은 선택은 아닐 수 있다.

인공지능이 곧 인류의 노동력을 대체할 것이다?

1920년대에 포드 공장에 있던 노동자가 2010년대 현대 자동차 공장의 자동화를 보면 아마 충격을 받을 것이다. 마찬가지로 언젠가는 인공지능이 잘 갖춰진 로봇이 인류의 노동력을 대체할 것이라는데는 필자도 의구심이 없다. 다만 머신러닝으로 로봇이 “알아서” “잘” 작동하는 가능성에는 열려있지만 머신러닝이 그 로봇을 만들어 내는 알고리즘을 “알아서” “잘” 짜게 되는데는 여전히 의구심이 가득하다. “러닝”을 할 수 있는 알고리즘을 효율적이고 정확도 높게 만드는 부분은 앞으로도 머신으로 완벽하게 대체하기 어려울 것이고, 무슨 역할을 하는 로봇을 만들어야하는지를 판단하는 능력은 오랫동안 인간의 영역이지 않을까 싶다.

위의 행동 패턴 데이터 없이 행동 패턴 예측해달라는 광고주의 요청을 받고 내가 처음 했던 일은 데이터의 재가공이었다. 하나의 예시로, 광고에 노출된 시간과 횟수를 통해 스마트폰 사용 패턴을 역추적해서, 심지어 동일 유저임에도 특정 시간대에만 광고에 반응하는 경우를 찾아내 A 타입 유저가 a 시간대와 b 시간대에 행동 패턴이 다를 수 있음을 찾아냈다. 두 개 이상의 클릭간 시간차가 많은 유저, 시간차가 적은 유저간 행동 패턴이 다를 수 있고, 산출된 행동 패턴을 바탕으로 몇 번째 노출에 반응하는지 유저별 차이를 다시한번 살펴보면 단순하게 몇 번 노출하는 상한선(Cap)을 설정하는 것보다 효율적으로 광고를 진행할 수 있다. 한번 해 본 프로세스기 때문에 앞으로 비슷한 작업은 프로그램을 짜서 반복할 수 있겠지만, 이런 아이디어 자체를 생산해내는 것은 머신이 할 수 있는 작업이 아니(라고 생각한)다. (반례로 Reinforcement learning 을 들어 아이디어 생산 자체도 필요없다고 주장하는 분들이 있으나, 이 부분 역시도 최초 설계 자체는 인간이 해야한다. 당장 테슬라의 인공지능 운전 시스템 역시도 설계 자체는 인간이 했다. 설계 이후 추가적인 Learning은 쌓이는 데이터에 따라 엔진이 하는 것이겠지만.)

머신러닝도 잘못 만들면 실패한다

머신러닝을 활용하는 데이터 사이언티스트, 혹은 개발자가 사실 더 걱정해야하는 부분은 모델을 잘못만들어서 머신이 잘못 러닝했을 때라고 생각한다. Fraud Click을 찾아내는 알고리즘을 만드는데 (자세한 내용은 추후 블로그에서 상세하게 설명한다.) Loss function을 교과서대로 잔차 제곱근의 합으로 잡을 경우, Fraud Click인데 못 잡아내는 경우(False negative)와 Fraud Click이 아닌데 맞다고 판단하는 경우(False positive) 모두 같은 값의 Loss를 계산하게 된다. 모델이 실제로 사용될 때는 False negative에 가중치를 둬야하고, Click 당 과금이 크면 클수록 가중치도 높게 가져가야한다. 따라서 Loss function은 아래의 (a) 타입이 아니라 (b) 타입으로 적용해야 모델의 목적에 부합할 것이다. Reference

(a) 모델을 쓸 경우 False negative에 낮은 가중치를, False positive에 높은 가중치를 두기 때문에 모델의 예측력 측면에서 Fraud Click을 잡아내는 비율이 훨씬 낮을 것이다. 더 자세한 내용은 Fraud Click을 추적하는 이후 연재에서 자세하게 소개하겠다.

한 마디로 정리하면, Machine learns. Only if the teacher designs it well.

Buzzword 3번. 데이터 사이언스

두 부류의 착각이 있다. 하나는 머신러닝을 하는 개발자가 데이터 사이언티스트라는 착각이고, 다른 하나는 대용량의 데이터를 많이 다룬 데이터 분석가가 데이터 사이언티스트라는 착각이다. 필자는 전자를 Data Engineer, 후자를 Data Analyst로 부른다. 둘 모두 고급 통계학에 대한 지식이 전무하다는 점에서 이 분들을 데이터 “Scientist" 그룹에 묶는 것이 타당한지 의구심이 든다.

위에서 줄기차게 이야기했던 것처럼, 머신러닝은 하나의 테크닉이다. 머신러닝을 잘한다는게, 딥러닝에 들어가는 Neural network의 계산 비용(Computation cost)가 줄어들 수 있는 모델 개조를 하는 능력일수도 있고, 어떤 문제에 적합하게 Neural network를 재구조화하는 능력일수도 있고, 아니면 자기네 회사 서버에 Tensor Flow 같은 머신러닝 솔루션을 잘 얹는 능력일수도 있다. 첫번째와 두번째 능력은 머신러닝 연구자들이 갖고 있는 능력이고 이런 능력이 머신러닝 실력을 보여주는 능력이다. 반면 세번째 능력은 머신러닝을 잘 하는게 아니라, 머신러닝을 잘 “활용”하는 “개발자”라고 보면되고, 이런 지식은 개발 언어에 함수 몇 개를 더 많이 아는 것과 같은 피상적인 지식이다.

데이터 분석가(Data Analyst) 라는 타이틀을 달고 있으신 분들이 필자에게 자신의 업무 능력을 강조하면서 항상 하는 말이 “몇 년”동안 “엑셀”이나 SPSS, SAS 같은 데이터 패키지를 다뤄봤고, “얼마나 큰” 데이터를 다뤄봤는지에 대한 부분이다. 본인이 센스가 뛰어나고 통찰력(Insight)이 넘치는 데이터 분석가라면 아마 그 “몇 년”의 시간을 바탕으로 데이터가 보여주는 산업의 특성을 잘 설명하실 수 있을 것이라는 부분에는 의구심이 없다. 다만 그 분들이 아무리 큰 데이터를 다뤄봤다고해도 데이터 “분석가”가 아니라 “Scientist”라는 타이틀을 가져가실 수 있는지는 잘 모르겠다. 이분들이 “Scientist”라는 타이틀을 받으실려면 뭐가 더 필요할까? 학위? R이나 Python같은 연구, 개발 툴에 대한 지식과 경험? 머신러닝 테크닉?

데이터 사이언티스트란?

모 벤쳐 투자사와 술자리에서 데이터 사이언티스트가 하는 일이 정확하게 뭔지 궁금하다는 질문을 받았다. 이 질문에 대한 가장 좋은 대답을 어느 협력사 플랫폼 기획자 분께 들었는데 이 글을 통해 많은 사람들과 공유하면 좋을 것 같다. 데이터 분석가는 자동차 수리공, 머신러닝 개발자는 자동차 엔진 개발자, 그리고 데이터 사이언티스트는 자동차 설계 및 디자이너라고. 참고로 여기서 엔진 개발자라는 분은 이미 만들어진 엔진을 차체에 이식시키는 수리공이 아니라, 4기통, 8기통 엔진을 직접 개발하는 엔지니어를 말한다. (한국에 있는 인공지능 기반 상품 회사에서 그런 능력을 갖추신 분을 별로 본 적이 없었다.)

숙련된 자동차 수리공은 자동차를 한번 운전해보고 엔진 소리를 들으면 어느 곳에 문제가 있는지 쉽게 파악해내고 적합한 솔루션을 제시할 수 있다. 머신러닝을 잘 활용하는 능력을 갖춘 개발자는 적절한 엔진을 장착시켜 자동차가 잘 나갈 수 있도록 해 줄 수 있다. 그러나 차를 설계하고 디자인해서 상품을 출시하는 것은 보다 근본적인 문제다. 필자는 데이터 사이언티스트에게 가장 핵심적인 스킬은 문제에 맞는 모델링을 하고 그 모델을 통계학, 시뮬레이션, 머신러닝 기술을 적절하게 조합해서 실제로 구현하는 능력이라고 본다.

위에서 예를 들었던 유저들의 행동 패턴을 예측하는 매체사 모델의 경우, 데이터 분석가는 유저의 연령, 성별, 지역 등등 식별화할 수 있는 정보들을 바탕으로 상호 연관관계를 잡아낼 수 있을 것이다. 온라인 광고 마케팅에 그 아이디어를 적용해 특정 유저군에게 광고 노출을 타겟하는 방식으로 광고를 진행할 수 있다. 머신러닝 개발자는 관계있는 변수들을 Tensor Flow에 얹어서 그 변수들과 매칭율이 높은 유저에게 적절한 광고를 노출할 수 있는 시스템을 만들 수 있을 것이다. 데이터 사이언티스트는 우선 앞의 두 가지를 모두 다 할 수 있어야한다. 나아가 위에 언급한 것처럼 변수가 될 가능성이 있는 데이터 가공 능력도 필수다. 단순히 DB에 저장된 데이터를 그대로 Tensor Flow에 얹는게 아니라, 다양한 테스트를 통해서 적절한 변수를 찾아낼 수 있어야한다. 변수들간의 상관관계가 목적에 부합하는지 테스트하는 능력도 필수다. 데이터에 오류가 있을때 나타나는 상관관계가 있을 경우, 데이터 오류의 영향을 제거할수도 있어야 한다. 더불어 주어진 광고 캠페인 데이터와 미래 트렌드를 적절하게 조합하는 시뮬레이션 모델로 광고주에게는 광고 예산을 예상할 수 있게, 매체사에는 광고 물량을 예상할 수 있도록 해 줘야 한다. 사실 이 리스트는 만들다보면 끝이 없다.

어느 데이터 사이언스 학회에서 들었던 문구다. Key word in “Data Science” is not Data, but Science. Reference

정리하면서

필자가 예전에 썼던 논문 하나를 소개하면서 글을 마무리할까 한다. 한 산업에서 기술 개발을 위한 Sunk Cost가 있는지, 그래서 경쟁 체제가 기술력 경쟁인지, 아니면 기술 개발보다 단순히 가격 경쟁으로만 산업 내 경쟁이 이뤄지고 있는지에 대한 테스트를 위해서 R&D 비용과 가격 경쟁용으로 쓰는 리베이트 비용을 놓고 Fixed effect (산업내 특성 있음) vs. Random effect (산업내 특성 없음)으로 Panel data regression을 돌린적이 있다. 이 산업은 우리나라 제약업계였고, 내 결론은 Fixed effect를 기각하는 것이었다. 같은 방식으로 글로벌 Top 10 제약 회사들로 다시 regression을 돌려보니 Fixed effect를 기각할 수가 없었다. 말을 바꾸면 우리나라 제역업계는 가격 경쟁을 하고 있고, 글로벌 Top 10 제약 회사들은 기술력 경쟁을 하고 있다는 뜻이다. 우리나라 제약업계의 리베이트 관행을 아는 사람이면 어느정도 예상할 수 있는 통계 분석이겠지만, 통계 모델로 직관을 증명해낸 그 순간의 “유레카!”는 지금도 잊을 수가 없다.

필자가 느끼는 “유레카!”의 감정을 본 블로그에 잘 공유하면, (그리고 많은 분들이 읽고, 이해하고, "쓴 소리"를 던져주시면) 언젠가 필자의 실력과 한국의 데이터 사이언스에 대한 이해도가 지금보다 훨씬 더 높아질 것이라고 굳게 믿는다. 아래는 그 희망을 담은 (예상) 연재 목차이다. (물론 필자의 생각과 회사 업무의 중요순위가 바뀌면 순서와 내용은 수정될 수 있음을 미리 공지한다.)

  1. 빅 데이터, 머신러닝, 데이터 사이언스에 대한 오해
  2. 데이터 시각화(Data visualization)
  3. 최적화 - CTR Optimizer
  4. 멀티 터치 어트리뷰션(Multi-Touch Attribution Model)
  5. 크로스 디바이스 매칭(Cross-Device Matching)
  6. RTB란?
  7. 시뮬레이션(Simulation)
  8. 머신러닝 1주차: Regression problems
  9. 머신러닝 2주차: Classification problems
  10. 사기 설치와 클릭(Fraud Installs & Clicks)

현재 저희 ab180과 함께 멋진 서비스를 만들어갈 개발자분들을 찾고 있습니다!

에이비일팔공은 데이터 회사로 사용자가 어디서 왔는지, 앱 안에서 어떤 행동을 하는지 수집하여 마케팅에 가장 손쉬운 형태로 제공하는 에어브릿지 애널리틱스는 서비스 반년 만에 230개 이상의 고객사를 확보하여 빠른 성장을 이뤄나가고 있습니다.

이와 동시에 사용자 행동 데이터를 기반으로 머신러닝과 딥러닝 기술을 통해 구매 가능성이 가장 높은 상품을 추천해주거나 재방문 가능성을 측정하는 모바일 광고 상품을 준비 중입니다.

사용자에게 가장 의미 있는 데이터를 제공하기 위한 우리의 연구는 오늘도 계속됩니다.


쉬운 앱마케팅을 위한 무료 그로스해킹 툴, 에어브릿지

에어브릿지는 앱마케팅 캠페인의 실시간 성과 측정부터 유입경로까지 분석가능한 원스톱 앱마케팅 솔루션입니다. 모바일 앱마케팅 분석, 지금 바로 무료로 시작하세요!