>RE::VISION CRM

빅데이터

[빅데이터 : 작성중] 역습 시즌 2 : 데이터의 역습

YONG_X 2015. 12. 29. 16:02

[작성중] 역습 시즌 2 : 데이터의 역습

=========================

since 2015. 12. 29

last update 2016. 1. 4


전용준 . 경영학박사 . 리비젼컨설팅 대표 

(xyxonxyxon@empal.com)



난 몇년간 우리는 빅데이터에 열광해왔다. 빅데이터라는 새로운 유행어에 처음부터 일관되게 거부감을 표하는 이들 조차 그 존재 자체에 대해 근본적인 부정은 하지 못한다는 것이 빅데이터에 대한 열광의 존재를 오히려 더 강하게 지지한다.

인터넷이 제공하는 연결에 스마트폰이라는 혁신적 디지털 단말기의 보급까지 더해지면서 이전에는 상상조차 할 수 없었던 대량의 데이터가 생겨났고 이제 그 것으로 모든 문제를 풀 수 있을 것이라는 기대가 있었기 때문이다.

그렇다면 과연 빅데이터가 그 자체로서 우리가 원하는 성과를 보장하는가?

만일 그 것 만으로는 부족하다고 한다면, 빅데이터의 뒤를 이어 주목받고 있는 데이터 사이언스가 모든 것을 해결해 줄 것인가? 그 것도 아니라면 가장 최근에 핫한 알고리즘 내지는 기계학습은 자동적으로 필요한 모든 분석을 해줄 수 있을까?

무언가 진정 핵심이 되는 부분을 이해하지 못한 채로 겉모습만으로 환상을 가지고 있는 것은 아닐까? 환상과 희망을 가지는 것 자체는 문제가 아니라 하더라도 그에 따른 불필요한 시행착오로 또 한번의 큰 낭비를 겪어야만 하지는 않을까?




** [1월 22일 세미나 행사 안내] 예측분석 실전 세미나 - 리비젼아카데미

http://revision.co.kr/bbs/board.php?bo_table=tb02_01&wr_id=188



빅데이터와 기계학습, 알고리즘 등을 통해 우리가 얻고자 하는 것은 무엇인가?

예측, 개인화, 이상탐지, 최적화 등으로 크게 구분해 볼 수 있는 <분석>이다. 물론 분석 그 자체는 의사결정과 그 내용의 실행이라는 과정을 거치기 이전에는 실질적인 가치로 연결되지 못한다. 그러나 의사결정과 실행은 사람과 조직의 몫이라고 본다면 빅데이터 등으로부터 우리가 기대하는 것은 정교한 분석, 의사결정에 유용한 정확도 높은 정보다. 

그러나, 빅데이터, 기계학습, 알고리즘, 이 모두를 가졌다고 해도 분석의 완성도가 흡족한 수준이 될 것이라는 확신이 바로 생기지 않는 것이 사실이다. 

분명 지금의 논의에는 확신을 줄 수 있는 결정적인 큰 덩어리가 빠져있다.


2년전인 2014년 초에는 <스몰 데이터의 역습>이라는 제하의 글을 쓴 적이 있다. 빅데이터가 의미하는 바는 단지 절대량이 많은 것에 국한되지 않으며, 활용 과정의 현실성과 비용, 분석의 깊이가 데이터의 절대량 보다 중요하다는 현실적인 측면의 지적을 위한 것이었다. 벌써 그로부터 2년이 지났고 이미 많은 이들이 데이터 량에 대한 과다한 집착을 버린 시점에서, 이번에는 빅데이터와 알고리즘과 관련된 환상에 대한 데이터 그 자체의 본질이 가하는 역습에 대한 이야기가 필요해 보인다.


* 빅데이터는 사실상 분석보다는 데이터의 수집과 기초적인 처리에 촛점을 맞추어져 있다. 기계학습이나 알고리즘은 분석을 의미하지만 어떤 데이터가 투입되는가에 대한 관심을 충분히 담지 않고 있다. 이 두 가지 끊어진 다리를 연결시켜줄 무엇인가가 필요해 보인다.


<그림> 데이터 분석 프로세스에서 데이터 확보의 위치


CRISP-DM에서 business understanding -- <data acquisition> -- data understanding -- data preparation





데이터 확보와 준비는 데이터 분석의 전제사항이다. 처음부터 빅데이터가 손에 있었다는 가정은 현실적이지 않다. 어딘가에서 포착하거나 어딘가에서 입수해야한다. 그리고, 그 데이터가 일차가공을 거쳐 즉, 데이터 준비 과정을 거쳐 모델링이나 알고리즘 적용으로 연결된다.

따로 구분하지 않았지만, 데이터 확보의 선행단계는 데이터 발견 (data discovery)이며 이는 데이터의 존재 자체를 인식하는 단계로 Business Understanding의 일부이거나 별도의 후속 단계일 수 있다.

과거 CRISP-DM이 제안되던 시기(1990년대 후반)에는 필요성이 있다해도 새로운 데이터의 포착이나 외부로부터의 입수 여지가 물리적으로나 경제적으로나 사실상 크지 않았다. 때문에 데이터 확보의 중요성에 대한 인식이 높지 않았다. 하지만, 최근의 상황은 이와 크게 달라져 필요하다면 새로운 데이터를 포착하기 위한 새로운 장치나 프로세스를 만드는 것 까지를 선택가능한 옵션으로 여기는 시대가 열렸다. 데이터 발견과 데이터 확보의 중요성이 다른 어느 단계 못지않게 중요해지게된 것이다. 

여기서 기억할 부분은 그림상의 네 단계가 순서대로만 진행되지는 않는다는 것이다. 필요한 데이터라도 확보가 어렵다면 전체 방향이 수정되어야 하며, 데이터 준비의 결과가 데이터에 대한 재검토가 아니라 전체 방향의 수정 즉 Business Understanding으로 크게 되돌아야 가는 것일수도 있다. 



<그림> 빅데이터와 알고리즘간의 연결 - 광의의 데이터 준비?


광의의 데이터 준비 = 데이터 확보 + 데이터 이해 + 데이터 준비




광의의 데이터 준비는 데이터의 확보와 확보된 데이터에 대한 이해, 그리고 통상적인 데이터 준비까지의 과정을 모두 포함하는 것으로 볼 필요가 있다. 데이터의 확보는 빅데이터 이전에 전제되어야할 사항이며, 그 대상 데이터의 특성에 대한 이해는 데이터의 구축에 대한 전제가 된다. 그리고 협의의 데이터 준비 즉 흔히 말하는 데이터 준비(CRISP-DM에서의 데이터 준비와 같은 개념)는 확보된 데이터를 알고리즘에 투입하기 위한 선행단계이다.

이와 같은 광의의 데이터 준비 단계는 빅데이터와 기계학습 또는 알고리즘을 잇는 연결고리의 기능을 담당한다. 실제 데이터에서 분석까지로 연결되는 과정에서는 작든 크든 이 과정이 수행될 수 밖에 없으나 어느 정도의 완성도와 깊이를 가지는가에 따라 전체 분석결과에 지대한 영향을 미치게 된다.

오랜동안 실전 데이터 분석을 경험해온 분석가들은 이미 이 단계의 중요성에 대해 상당부분 경험적으로 인지하고 있다. 그럼에도 불구하고 의외로 이 과정의 중요성을 강조하고 세부적인 접근방법을 소개하는 자료를 접하기 쉽지 않다는 점이 처음 입문하는 이들의 시행착오를 불러오는 한 원인으로 작용해왔다.



[1] 원시 데이터 자체가 아니라 분석에 투입되는 일차가공된 데이터가 분석의 성패를 좌우한다


원유를 자동차에 넣는다고 차가 달릴 수 없다. 빅데이터를 21세의 원유라고 이야기하는 이들 스스로가 정작 <원유>라는 표현을 사용했다는 점에는 주목하지 않는다. <원유>는 정제를 거치지 않은 상태이기에 유용성이 없다. 원유는 당연히 제대로된 정제를 거친다는 전제를 가정하에서 그저 잠재적인 가치를 가지고 있을 뿐이다. 

빅데이터라고 말 할때의 데이터는 오직 현상의 표면을 보여줄 뿐이다. 가공되지 않은 원시 재료에 불과하기에 많은 경우 그 안에서 필요한 부분을 제대로 정제해 내어야 활용가치가 생겨난다. 우리가 알고자 하는 특정한 현상이나 사실에 대한 중요한 힌트를 담고 있다고 해도 적절한 가공 없이는 그 가치를 제대로 추출하기 어렵다.


이 때문에 실전에서 데이터 분석의 핵심은 변수 설계(variable design)라고 할 수 있다. 변수 설계라는 단어 자체는 흔히 사용되는 용어이기도 하고 이미 오래전부터 이야기 되어 온 것이라 그리 신선한 것은 아니다. 변수 도출(variable identification)이나 최근 사용되고 있는 속성에 대한 엔지니어링(feature engineering)이라는 용어도 변수 설계와 대체적으로 사용되는 것들이다.  



변수 설계는 크게 입력(input) 변수에 대한 것과 출력(output) 변수에 대한 것으로 구분될 수 있다. 단, 감독학습(supervised learning) 형태의 분석이라면 출력 변수가 존재하지만 무감독학습 형태에서는 출력변수는 존재하지 않는다.


변수 설계과정에서는 어떤 형태로든 조작적 정의(operational definition)가 사용된다. 우리가 분석하고자 하는 것은 대개가 개념적인 것이기 때문에 데이터로 표현하기 위해서는 그 개념을 구체화한 정의가 따라야 한다.

사람 얼굴 이미지를 분류하는 분석과정을 생각해보면, 얼굴이라는 것을 정의하기 위해 눈, 코, 이마와 같은 언뜻 상식적으로 보이지만 실제로는 주관적인 개념일 뿐인 것들을 구분하기 위한 기준의 정의가 먼저 이루어 져야한다. 개념을 데이터와 매칭 시킬 수 있게끔 하는 정의가 없다면 눈, 코, 입이라는 것은 기본적으로는 자동 생성될 수 없다. (* 알고리즘이 데이터로부터 패턴을 추출하여 이와같은 구성요소들을 자동 생성하는 것이 일부가능하지만 그 것 역시 사람들이 생각하는 눈, 코, 입과는 정확히 일치하는 개념이 되지 않는다는 것이다.)


모기업의 사람 얼굴 이미지 식별 관련 딥러닝 적용사례에서 아프리카계 여성의 얼굴을 고릴라고 식별했다는 에피소드가 있었다. 물론 데이터가 부족해서 벌어진 예상 못했던 해프닝일 수도 있으나, 사람의 얼굴이라는 식별 대상을 정의하는 조작적 정의의 과정에서 미흡함도 일부 영향을 주었을 것으로 추측된다.

사물을 구분하는 정도의 비교적 일반상식적인 유형의 문제에서는 이 문제가 그리 크게 이슈가 되지 않을 가능성도 있으나, 좀 더 복잡한 비지니스 문제에서라면 이 문제는 매우 크게 분석의 최종결과에 영향을 줄 가능성이 높다.

 [딥러닝 관련 보충설명 is to be Here]

딥러닝의 경우에서 국지적 최적화를 방지하고 학습시간을 단축하기 위해 활용되는 무감독학습 방식의 전처리(preprocessing)만 하더라도, 무감독 학습 방식이 적용된다는 것 자체가 어떤 변수를 학습에 투입하는가에 따라 판이한 결과가 나온다는 본질적인 특성에 대한 고민이 빠져서는 안될 것이다.



파생변수(derived variable)의 의미와 가치


예를들어 고객의 성별은 고객으로부터 입수한 그 상태 그대로의 값이므로 원시(raw) 데이터라 할 수 있다. 그 자체를 데이터 분석에 변수 또는 차원(dimension)으로 사용할 수 있다. 그러나 만일 고객의 성별이 변경된다면 한 고객은 두개의 성별을 속성으로 가지게 된다. 변경된 시점과 변경의 방향성이 가지는 의미까지를 반영하고자 한다면 <최근성별지속기간> 이나 <최근성별> 과 같은식으로 추가적인 정보를 담은 변수를 사람이 생성해주어야 한다. 

성별의 변경은 매우 극단적인 예로 볼 수 있으나, 휴대전화 통화기록으로부터 사용패턴을 추출하는 일상적인 경우라도 마찬가지이다. 통상 휴대전화 통화에 대한 기록은 통화의 시작시점과 종료시점을남기는 방식으로 이루어진다. 이 때 시작시점과 종료시점은 상대적으로 원시 데이터가 된다. 몇 분 몇 초라고 하는 통화시간은 계산에 의한 파생변수이다. 다만 이는 누구나 이 이터로부터 추출하고자할 기본적인 항목일 것이다. 그러나, 시작시점과 종료시점이 같은 날에 속하는가를 변수화한다면 이는 이미 일(day)이라는 이동통신 이용에 중요한 영향을 주는 업무구조와 규칙에 대한 이해를 바탕으로 <설계>를 시도하고 있는 것이다.

또다른 예로, 채용후보자 이력서상의 근무경력으로부터 <경력공백기간>을 구하는 것도 생각할 수 있다. 좀 더 나아가서 경력공백기간이 1년이상이었는가의 여부를 구하는 것도 필요할 수 있을 것이다. 


흔히 파생변수의 도입은 분석이 내놓아야하는 결과물을 보다 직접적으로 표현하는 효과를 제공한다. 수많은 원시데이터 항목들을 나열해도 복잡할 뿐 명확하게 드러나지 않던 패턴을 한번에 보여주는 것을 기대할 수 있으며, 이는 모델을 만드는 경우에서는 간결성과 정확성을 동시에 향상시켜주기도 한다.


분석대상의 범위 설정


분석의 대상에서 제외되어야 하는 것들이 존재한다. 예를들면 도시가 아닌 지역에서의 인구밀도는 중요한 의미를 가지지 않는다. 그렇다면, 인구밀도에 대한 분석에서는 도시가 아닌 지역이 제외될 필요가 있다. 흔히 이루어지는 고객의 이탈에 대한 행동분석의 예를 생각해보면 분석 대상에 불가피한 비자발적인 이탈의 경우를 포함시키는가 아닌가에 따라서 전혀 다른 분석 결과를 얻게 된다. 일반소비자에 대한 분석을 하는 경우 직원인 고객이나 사업자 성격의 고객을 대상에서 제외하는 것도 좋은 결과를 줄 수 있다.


이 처럼 파생변수를 등장시켜야 하고, 분석 대상을 조절해야하는 등 다양한 부가적 요건을 가지고 있기에 변수 설계과정은 결국 인간에 의해 이루어 질 수 밖에 없다. 알고리즘은 사람과 다른 동물을 구별하라고 지정하면 그대로 수행할 뿐, 무엇을 구별할 것인지를 스스로 결정하지 않는다. 데이터 분석이라는 업무의 완전자동화는 상상이야 해볼 수 있으나 적어도 아직까지는 요원한 것이라는 사실을 깨닫게 된다. 



[2] 관련성(Relevance)이 있는 데이터가 존재해야 한다


빅데이터라는 단어가 모든 데이터가 이미 우리 손에 있다는 착각을 불러일으키지만, 여전히 필요한 데이터 중 상당부분이 확보되지 않은 경우가 많다.

빅데이터의 가장 흔한 적용분야인 마케팅 분석을 예로 들어보자. 대량의 거래 데이터가 발생되는 수퍼마켓체인의 경우라면 이미 가지고 있던 거래 데이터에 더하여 온라인 또는 모바일 사이트에 접속한 이력이나 소셜미디어를 통해 직접적으로 해당 유통사에 흔적을 남긴 것, 좀 더 나아가서는 매장내에 설치된 비컨을 통해 남기는 동선에 대한 데이터 까지를 모두 모아서 데이터 분석을 실시할 수 있다. 여기에 지역이나 상권에 관한 외부 데이터를 입수하여 결합할 수 도 있다.


일단 양적으로 많아진 것은 분명하다. 또 어느 정도 다양한 데이터가 모인 것도 사실이다. 그러나 이 것으로 필요한 모든 데이터가 모였다고 판단할 수 있을까? 정작 왜 구매하는가? 왜 방문했는가? 방문에 만족했는가? 어떤 경험을 했는가? 어떤 잠재적인 욕구를 가지고 있는가? 이런 사항들에 대해서도 세부적이고 충분한 힌트가 제공 될 것을 기대할 수 있을까?


이 수퍼마켓체인의 예에서 이야기한 각각의 데이터 유형들이 불충분한 이유는 무엇인가? 무엇이 빠져있는가? 


또 많은 량의 데이터를 가지고 있으나 그 자체가 편중(biased)되었을 가능성은?

이미 빅데이터의 전설이 되어 버린 이야기, 구글은 모든 것으로 알고 있고 독감의 확산을 정확하게 예상할 수 있었다는. 그러나 사후확인 결과 구글은 독감 감염율을 두배 이상 높게 예측했었다고 한다. 왜 이런 문제가 발생되었을까? 여러 이유가 함께 작용했겠지만, 그 중에 크게 영향을 미쳤을 부분이 바로 구글이 확보하는 데이터가 전체 인구를 대변하지 못하는 왜곡된 것이었다는 점일 것이다. 대다수의 구글 사용자는 스마트폰을 가지고 있는 사람들이며, 정작 독감에 취약한 아이들과 노인들은 구글 이용률이 낮을 것이다.


또 다른 유형의 이슈는 가장 중요한 데이터가 전혀 존재하지 않거나 존재해도 확보하기 불가능한 경우이다. 보험회사가 보험사기를 적발하는 분석을 하고 싶다고 해도 정작 보험사기의 실제 사례는 가지고 있지않은 경우라면 그 어떤 모델과 알고리즘이 보험사기의 징후를 자동발견해낼 수 있겠는가? 이는 마치 어깨나 허리의 모습만을 가지고 사람의 눈이 큰지 작은지를 알아내겠다는 것과 다를 바 없다. 그럼에도 의외로 이 유형의 이슈를 무시하고 데이터가 존재하지 않음에도 분석을 하겠다는 사례를 흔히 볼 수 있다.


가지고 있는 모든 데이터라는 것과 필요한 모든 데이터라는 것이 일치하지 않을 가능성에 주목해야한다. 데이터가 없다면 패턴을 찾는 것은 불가능한 것이다("If it's not there, you can't find it."). 확보된 데이터의 집합과 확보되지 못한 집합의 경계선, 그리고 그에 따른 결과물의 한계점을 이해해야 확보한 빅데이터(?)의 효용을 최대로 꺼낼 수 있을 것이다. 필요한 모든 데이터를 확보하는 것이 현실적으로 가능하지 않기 때문에 이 부분이 더더욱 중요한 것이다.



<그림> 확보여부와 관련성에 따른 데이터 구분




[3] 데이터 과학과 알고리즘의 한계는 무엇인가?


데이터 과학이라는 단어는 과하게 포장된 채로 받아들여지고 있다. 데이터 과학을 하는 사람 즉 데이터 사이언티스트가 기술과 그것도 다양한 기술과 동시에 분석하고자 하는 대상 업무에 대한 전문지식도 보유하거나 또는 매우 빠른 속도로 해당 전문지식을 습득하는 것을 가정한다. 이 부분이 매우 비현실이라는 점을 애써 부정하려고들 노력해왔다. 데이터 과학이라는 개념이 과거의 데이터 분석에 비해 폭넓은 범위의 기술과 업무 범위를 데이터 분석가에게 요구한다는 점은 한편으로는 혁신적이기도 하고 자동화를 통한 데이터 분석 생산성 향상이라는 진취적 목표를 가지고 있지만, 회계나 감사, 의학과 같은 전문분야에 대한 깊은 지식이 마치 무용지물인 것 같은 착각을 들게한 점은 과해보인다.


데이터 과학에서 핵심인 알고리즘은 통상 매우 일반적인 것이다. 어떤 데이터가 투입되어 어떤 결과가 나올 것인가에 대해서 특정한 경우 보다는 여러 경우에 널리 사용될 수 있는 형태로 만들어진다.


업에 대한 이해는 어떠한 문제에 대해서든 그 해결을 위해 매우 중요한 부분이다. 데이터를 활용해 문제를 해결하고자 한다면, 데이터가 반영하고 있는 업(domain)의 규칙과 그 분야 내에서의 개념과 상식은 문제 해결의 핵심적 열쇠가 된다.

데이터는 업의 특징을 담고 있고, 특정한 데이터 구조와 구성을 전제로한 알고리즘, 즉 특정한 범위의 데이터에 종속적인 알고리즘이 아니라면 최대의 잠재력을 발휘할 수 없다는 사실은 매우 상식적인 것이다. 데이터 자체만으로는 데이터에 대한 데이터 즉 메타데이터(meta data) 까지를 파악할 수 있다는 보장이 없다. 특정한 대상업무 범위내에서의 데이터에 대한 원시 데이터와 더불어 그로부터 파생될 수 있는 데이터와 그 데이터들의 의미를 규정하는 메타 데이터까지를 포함하는 집합을 확보하고, 그에 특화되어 최적으로 문제를 해결할 수 있도록 다듬어진 알고리즘을 만들어가는 과정, 즉 영역별 특화된 데이터 사이언스 과정이 더 나은 답을 더 효율적으로 생산할 수 있으리라는 사실은 분명해 보인다. 



<그림> 분석에 요구되는 데이터의 구성






빅데이터, 데이터 사이언스, 알고리즘, 이 모두의 궁극적인 과제는 좋은 분석결과물을 내놓는 것이다. 좋은 결과물이 나오려면 좋은 재료가 필요하고, 적절한 가공작업이 필요한 것이다. 빅데이터라는 이름만으로 무조건 좋은 재료가 충분히 존재한다는 것이 보장되지 않는다. 좋은 재료가 있다고 해도 다듬지 않은 상태에서 바로 좋은 작품이 되지도 않는다. 짜장면을 만들기 위해 까지 않은 양파를 넣는 것을 상상해보라. 또 짜장면에 양파 대신 대파를 넣는 것을 상상해보라. 또는 짬뽕을 짜장면이라고 부르면서 만드는 것은 또 어떤가? 아무리 좋은 주방기구도, 뛰어난 솜씨의 셰프도 이 문제를 근본적으로 해결하는 것은 불가능하다. 위에서 살펴본 몇 가지들, 즉 데이터의 의미와 활용방법에 대한 몰이해는 환상과 저조한 성과, 그리고 실망과 불필요한 시행착오의 축적이라는 악순환을 불러올 것이다.


<데이터의 역습 (Data Strikes Back)> 이라는 문구를 꺼내든 이유가 여기에 있다. 빅데이터와 알고리즘이라는 새로운 세력에 대한 환상에 대해 <데이터> 그 자체가 담고 있는 특성과 조건에 대한 재조명이라는 역습을 가하고자 하는 것이다. 빅데이터와 데이터 과학 그리고 알고리즘, 그 중 어느 것도 필요없는 것은 없다. 단지 이 새롭고 거대한 기회와 무기들을 그저 핵심이 무엇인가를 이해하지 못하는 우둔함으로 인해 바다속에 잠긴 머신건으로 전락시키는 우를 범하지 않을 것을 주문하는 것이다.


- 끝 - 


** 독자를 위한 참고 사항: 이 글은 아직 완성되지 않은 상태이기에 지속 갱신될 것입니다.