빅데이터와 샘플링

한 번쯤 생각을 정리할 필요가 있다고 생각해서 포스팅하는 중이다.(이하 편의상 계속 존칭 생략)
이런 내용을 다루기에는 조심스럽고 복잡한 것이지만…

빅데이터 문제를 들면서 흔히 하는 말들이 기존에 알 수 없었던 것들을 많은 데이터 또는 많은 데이터에 어떤 방법론을 적용 또는 어떤 방법을 많은 데이터에 활용해 봄으로써 알아 낼 수 있다는 말들이다.
굉장히 그럴듯한 말인데 받아들이기에 따라 조금 위험하긴 하지만 사실 틀린 말은 아니다.
실제로 그런것과 샘플링을 통해서 그럴 것이라고 추정한 것에는 다를 수 있는 점이 있기 때문이다.
여기서 약간의 함정은 “다를 수도 있다”이다. (또는 조심스럽게는 다른 것이 많다라고 표현하기로 한다)
그리고 그 말을 반박하는 사람은 샘플링을 통한 전통적인 통계분석과 빅데이터를 통한 분석은 “별반 다르지 않다”라고 말한다.
이것이 논쟁의 포인트이다. 아직도 애매하고 논란의 대상이 된는 부분이다.
빅데이터를 통한 데이터분석이 전통적인 샘플링기반의 통계적 분석보다 더 나은 점이 어떤 것인지, 즉 이론적으로 어떻게 해서 그렇게 되는지 증명해봐라고 말한다면..

나는 못하겠다. 그냥 경험에 비추어 말하는 것이다. (아! 무책임한 나)

잠깐 옆으로 살짝 새서 통계쪽과 빅데이터, 샘플링에 대한 논점에 대해서 내 어프로치(approach)나 스탠스(stance)를 생각해 보면 “거의 모든 경우에 샘플링을 해서 거의 모든 문제를 해결 할 수 있다. 그렇지 않다”를 말하기는 조금 조심스럽다. 아니 상당히 조심스럽다. 이와 관련되어서 여러 관점을 가진 사람들이 달라붙어 말을 꺼내한 사람을 무지몽매한 사람처럼 취급하며 상대를 공격하기 시작하기 때문이다. 학문적 깊이와 고민이 없어서 이론적으로 논리적으로 경험적으로 응대할 수 있다면 이런 민감한 문제에 대해서는 입을 닫는 것이 처세에 유리할 수 있다.

최근의 나는 입을 닫는 쪽이다. 나는 시류에 편승하게 보이려고 노력하는 쪽이다.

통계적 방법론에서는 샘플링을 통한 방법과 샘플링을 통한 모델의 최적화 방법이나 추정방법이 잘 되어 있어서 꼭 전수검사를 하지 않아도 대략의 것은 맞아 떨어지거나 전수검사(또는 전수검사에 필적할 만큼 많은 검사)를 한 것과 샘플링을 한 것의 차이는 거의 없다.

위에서 말하는 것이 빅데이터의 “빈곤한 필요의 이유성”을 반박하는 쪽의 얘기다. 문제는 이것을 반박할 만한 뚜렷한 이론이나 논리나 경험을 내가 가지고 있지 않다는 것이다. 솔직히 잘 모르겠다. 나는 여기에 대한 깨달음이나 확고한 주관이 없다. 앞서에서 말한 내가 입을 닫는 이유이다. 아주 깊이 고민해 본적이 없고 나는 그 통계학을 조금이라도 기웃거리며 공부했다는 사람들은 다 안다는 중심극한원리도 끝까지 잘 이해를 하지 못하고 있다. – 노파심에 말하지만 아예 정의상 무엇이고 어떻게 돌아가는지를 모르는 것은 아니지만 기저의 원리를 완전히 이해 못했다는 말이다. 결국은… 그러니까 모른다는 말이다. –

그런것도 다 모른다는 사람이 이런 포스트를 건방지게 올리느냐라고 말한다면 조용히 다른 사이트로 이동해 주기를 정중히 부탁드린다.

그런데 생각해보면 말장난같긴 하지만 위에서 말한 샘플링 논쟁이 문제는 무엇을 하는데 샘플링을 한다. 안한다라는 말이 나오냐는 것이다.
데이터의 분포를 확인하기 위해서는 샘플링을 해도 충분하다는 것인지 예측모델을 만들기 위해서도 샘플링으로 충분하다는 것인지 살펴봐야 하는 대상이 롱테일에서의 테일 부분인데도 샘플링으로 충분한 것인지…
인터넷상에 떠도는 말이나 블로그등을 봐도 그런말에 대해서 잘 언급하지 않고 포괄적으로만 말한다. 물론 지면관계로 인해 그랬을 수 있다. 그런데 설명하지 않는 것도 문제가 있다. 그런 것쯤은 공부를 했다는 사람이면 충분히 기본으로 알고 논점에 들어가야 하는 것이 아닌가? 라고 되물을 수도 있을 텐데. 이것은 정말 말장난이라고 생각한다. 무엇에 대해서든지 정확히 뭘 하려고 하는지 말해야 한다. “상대가 무지해서 대화가 안돼!”라는 식의 태도는 교만함으로 인한 자신의 무지함을 감추기 위한 것이라고 생각한다. – 아닐 수도 있겠지만 대부분은 그렇다고 생각한다. –

통계적인 분야에 대해서는 깊이가 부족하지만 샘플링도 충분히 가능하지만 샘플링을 하지 않고 전수를 해 보려고 하는 이유는 노말(Normal)한 것들을 보지 않고 노말하지 않은 데이터들을 살펴보거나 혹시 나올 지도 모를 것들을 찾아 보겠다는 것이다. 전반적인 분포나 어떤 특성만 파악하려고 한다면 이런 자원소모가 큰 일은 잘 하지 않을 것이다.
노말한 것들, 직관적으로 쉽게 알 수 있는 것들은 이미 오래 연구가 되어 있거나 잘 알고 있는 것들이다.
더 해도 뚜렷한 성과를 보기 힘들다. 쉽게 성과를 보려면 (이런 생각 자체가 조금 무리이지만) 결국 남들이 보지 못한 것을 봐야 한다. 그것들은 정규분포의 가운데에 근처에 있는 것들이 아닐 가능성이 크다. 그리고 그런것들은 희소성을 가지고 있기 때문에 데이터가 많으면 많을 수록 더 잘 드러나고 제법 많은 양이 늘어나면 그것들 자체로도 어떤 규칙이나 특성들을 가지게 된다는 것을 발견할 수도 있다. (반대로 말하면 없을 수도 있다)
이 가능성 때문에 그 부분에 투자를 하는 것이다.
그런것이 없다고 확신할 수 있고 필요 없다고 생각하면 안하면 되는 것이다.

내가 지금까지 많이 봐왔는데 그건 안봐도 뻔해

라고 확신이 서면 안해도 될 것이다. 대신 일말의 아닐 가능성이나 다른 것이 발견될 가능성은 포기하는 것이다.

해 봤는데도 역시 잘 안나왔어

라는 말과는 다른 말이다. 이 경우에는 할 말이 별로 없다. 뭔가 잘 못한 것이 있을 것이다라는 말로 공격하기 전에. 가능성에 대한 도전을 해 본것과 아닌것의 차이는 크다고 생각한다. 그로 인해 생긴 시야가 당연히 달라져 있을 것이므로 결과가 같던 다르던 상관없이 의미가 있다. 물론 ROI나 output 측면에서 보면 후자쪽이 더 미련한 짓인 것처럼 보일 수 있다. 시간낭비만 한 것으로 보일 수도 있으므로. 하지만 내 경험상 그렇게 해서 괜찮은 것을 찾았다고 말하는 사람들이 꽤 있다. 사실 찾았어도 뭘 찾았는지는 잘 말해주지 않지만. – 이 경우는 아무런 득도 없었는데 무의미해 보이지 않으려고 한 거짓말 일 수도 있다 –

이 포스트에서는 통계적 관점보다는 우선 데이터마이닝관점에서 샘플링 논쟁이 어떤 부분에 해당이 될지에 대해 생각을 정리해 본 것이다. 어쨌든 나는 통계쪽에는 깊이가 별로 없는데다가 추정이니 다변량이니 분포니 이런 것은 머리아프다.

연관규칙탐사

연관규칙탐사는 보통 데이터마이닝 관련 서적의 초반부에 나온다. 쉽고 흥미 있는 주제라서 그런 것 같다.
데이터마이닝에서 샘플링을 안하고 하는 것이 기본적으로 유리한 것으로 우선 생각하는 것은 이 연관규칙탐사(Association Rule Mining)이다. 흔히 말하는 “장바구니탐색”이다. 이것은 논란의 여지가 별로 없을 것 같다. 컴퓨팅파워만 충분하다면 많은 양을 해보는 것이 여러모로 괜찮은 것을 발굴하기 좋은 방법이다.
이것은 빈발도(Frequency)기반이라 샘플링과 샘플링이 아닌 것의 결과의 차이가 굉장히 다르게 나타난다. 지지수(Support number)의 조절로도 많은 차이가 나는 것을 볼 수 있다. – 빈발도는 카운트이고, 지지도는 Threshold이다 – 작은 양의 데이터에서는 볼 수 없었던 특이한 그룹들의 데이터가 눈에 분명 보이는 때가 있다.

관점에 따라서 혹자는 이것을 노이즈라고 하고 혹자는 이것은 새로운 것을 발굴(Discovery)이라고 말한다.

어떤 사람들은

연관규칙탐사는 너무 단순하고 숫자세기 아닌가? 이 논점의 일부로 넣기에는 너무 조잡하고 수준 낮은 대상이다.

라고 말할 수도 있겠다. 샘플링이고 뭐고 이런 간단하고 무식한 것에 무슨 의미를 두드냐는 의미로 받아들인다. – 수준이 낮은 것이라는 말은 개인적으로 조금 거부감이 든다 – 실제로 해보지도 않고 “조잡하고 그런 쉬운것쯤이야”라고 말해 버리는데, 여기서는 의외성을 찾는데 샘플링이 그 의외성을 가리고 있을 가능성이 크다는 말이 하고 싶다. 어쨌든 이렇게 단순하고 조잡해 보이는 알고리즘도 실제로 극단적인 대상에 대해서 해 본 것과 그렇지 않은 것은 차이가 크다. 연관규칙에서 support number를 왜 조절하는지 곰곰히 생각해 보자.

“원래 outlier가 의외성 아닌가? 샘플링을 해도 outlier 영역은 있어서 확인이 가능하다. 앞뒤가 안 맞다” 라고 물으면 답변이 또 길어질 것 같다. 짧게 말하면 내 경험으로는 아닌 경우가 더 많았다. 혹자가 나는 별반 차이가 없는 경우가 더 많았다고 말한다면 나와는 다른 도메인 다른 상황에서 다른 뭔가를 봤을 것이고 그 경험도 당연히 맞을 것이다.

또 다른 질문으로

연관규칙탐사는 원래 샘플링 안하는 것이 아닌가? 샘플링하고 별반 상관 없는 것이 아닌가?

라고 지나가다가 묻는 사람도 있을 것이다. 교과서를 잘 읽어 보면 알겠지만 옜날 교과서는 샘플링을 하는 것을 기본으로 하고 있다. 최근 교과서는 그런 말을 아예 언급하지 않는다. 설명하려고 하는 것이 그런 것은 아니고 최근에는 그렇게까지 깊이 연구되는 쪽이 아니라서 그런 것 같기도 하다.

여하튼 보편적으로 샘플링을 하는 이유가 기본적으로

일일히 숫자세기가 어렵고 모든 모집단의 데이터를 다 얻기 어렵기 때문이다.

라는 데서 우선은 벗어나지 않았으면 좋겠다. 그리고 무엇을 보고 싶은지에 따라 샘플링하는 것과 아닌것도 달라져야 한다고 생각한다.
연관규칙탐사는 샘플링을 하지 않았을 때 유용한 것을 알아 낼 수 있는 대표적인 방법이고 특별히 유용하지 않는 그러니까 샘플링을 해도 충분히 알 수 있는 일반적인 사실을 알고 싶어했다면 샘플링을 하던 하지 않던간에 이것도 별 차이는 없다.

결론적으로 샘플링이고 뭐고 간에 연관규칙탐사에 있어서는 가능한 많은 데이터를 돌려 보면 볼만한 것이 많이 나온다.

지도학습 (Supervised Learning)

지도학습에서는 샘플링이 문제가 된다.
데이터마이닝에서 지도학습, 교사학습, Supervised Learning, 분류(Classification)는 같은 말이다. 용어 선택의 차이일 뿐이다.
이것은 학습데이터와 학습데이터로 만든 모델을 평가할 때 생기는 전반의 문제 때문인데, 샘플링 때문에 미지(Unseen)데이터에 대해 판별을 잘 하지 못하는 것에 대한 우려 때문이다. 샘플링의 문제에서 벗어날 수가 없다.
실제로도 샘플링을 어떻게 하느냐에 따라 결과의 차이가 심하게 난다.

지도학습에서 첫번째 샘플링을 하는 것은 EDA이다. 대충 데이터를 살펴보겠다는 것인데 이것은 다른 것에서도 다 하는 것이므로 넘어가자. – 데이터가 매우 많은 경우 모든 데이터를 사람이 일일히 다 살펴볼 수는 없다. – 그 다음에는 학습데이터(Training-set)을 얻기 위해서 하게 되는데, 정확히는 학습데이터에 레이블링(Labeling, Class를 부여)하기 위해서 이다. 학습을 시키기 위해서 데이터에 정답을 사람이 일일히 따주는 작업을 위한 것이다. 레이블 달 수 있는 적절한 분량만큼을 샘플링하는 것이고 샘플링한 데이터가 대상이 되는 데이터의 대표성을 잘 반영해야 한다. 개수로만 따질 문제는 아니다.
노파심에서 하는 말이지만 모든 데이터에 레이블이 이미 정확하게 다 달려 있다면 일반적으로 데이터마이닝에서 말하는 지도학습문제가 아니다. 모든 데이터에 레이블이 다 달려 있다면 지도학습을 할 필요가 없다.

그리고 만든 모델의 정확도를 판단하기 위해서 샘플링된 평가데이터(test set)등에 데이터를 대고 정확도를 점검한다. test-set은 때로는 training-set의 일부이기도 하고 아니기도 하다. – 보통은 training-set의 일부이다. –

이제 이렇게 만든 분류모델 -또는 예측모델 – 을 실제로 미지의 데이터에 적용하게 되는데 여기서는 실제로 평가데이터에 평가한 것 보다 대부분 결과가 안 좋게 나타난다. 여러가지 이유가 있을 것이다.
샘플링의 문제일 수도 있고 아닐 수도 있지만 결론은 어쨌든 미지의 데이터에 대해 예측을 잘 할 만큼 학습을 완벽하게 못한 것이다.

여기서 샘플링 문제라고 가정을 하고 극단적인 질문으로 학습데이터의 샘플링양을 늘리면 보편적으로 쉽게 잘 해결이 되느냐이다. 즉, 100억개의 모집단이 있고 이것을 위한 어떤 예측모델을 만드는데 학습데이터를 1000개를 쓰는 것보다 10000개를 쓰는 것이 더 유리하고 10000개 보다 100000개를 쓰는 것이 더 유리하냐는 것이다.
보편적으로는 그렇다라고 대답한다. 100억개의 다양성을 다 만족하기 위해서는 1000개나 10000개나 10만개도로 직감적으로도 적다는 것을 느낄 수 있다. 데이터가 아주 단조로운 데이터가 아니는 조건에서 말이다. – 물론 실제로 그 도메인에서 그런 것을 해봐야 알 것이다. 일반화하기는 다소 무리가 있다. – 그래서 10만개에서 100만개로, 100만개에서 1000만개로 학습데이터를 늘리면 다른 것 안해도 학습모델의 정확도가 더 좋아지냐? 가 사실 실제의 의문일 것인데.
모른다. 내 경험상 대부분 잘 안되기 쉽다.
100만개 이상의 학습데이터를 만드는 것 자체가 매우 불가능에 가까운 일이고 한다고 해도 그것을 제어하는 일이 거의 인간의 능력밖의 일이 된다. 100만개나 되는 데이터를 대표성을 가지게 잘 샘플링 하는 것 부터가 너무 어려운 문제이고 100만개를 태깅할 그럴 만한 돈이 현실적으로 없다. – 도메인에 따라서는 학습데이터가 수명을 가지는 경우도 많다. 오래되 면 못 쓰는 데이터가 생긴다는 것이다 –
결국 학습데이터를 늘리는 쪽을 기존 학습데이터를 이용해서 비슷한 데이터나 그렇지 부족한 영역의 데이터를 채워넣기 위해서 기계적인 방법을 이용하려고 하게 되고 그게 잘 알려진 Semi Supervised Learning이다. 이것을 준지도학습 또는 반지도학습이라고도 하는데 Semi Supervised Learning은 학습데이터가 부족한 경우외에도 학습데이터의 레이블이 심하게 불균형인 경우에도 사용한다.
Semi Supervised Learning에서 얼마만큼 어떻게 학습데이터를 기계적으로 채워넣어야 적절한지는 잘 모른다. 매우 어려운 문제이다. 나는 사실 이것을 제대로 해 본적이 없다. 내 능력의 제어권 밖이다.

그래서 지도학습에 있어서는

샘플링과 샘플링을 하지 않은 것의 비교는 불가능하고 원래의 논의 대상도 아니다. 그냥 이것은 뭘 어떻게 해도 다 샘플링이다.

데이터의 양의 차이가 있겠지만 샘플링에서 벗어날 수 없다.

비지도학습 (Unsupervised Learning)

클러스터링(Clustering) 또는 비교사학습, 비지도학습이라고한다.
학습데이터 없이 대충 알고리즘을 통해서 어떻게 데이터가 분류되는지를 보는 쪽이다. 결과에 대한 제어가 안된다. 다만 혹시 뭔가 다른 것을 볼 수 있지 않을까 호기심용으로 쓰이거나 대략 포괄적으로 뭔가 데이터를 분류해 보고 싶은데 어떤 기준으로 분류할지는 정해지지 않은 것을 할 때 쓴다.

이것도 샘플링과 관련이 있는가?

당연히 있다. 데이터베이스 내에 있는 전 사원을 분류해 보고 싶으며 샘플링이 아닌 것이고 고객의 일부 데이터나 전체 데이터를 이용해서 전체의 미지의 고객에 대한 분류를 해보 싶으면 샘플링이다. 또는 사내의 전 사원을 다 해보고 싶은데 양이 많아서 몇 명씩만 뽑아서 했다면 역시 샘플링이다.
알고리즘이나 알고리즘을 제어하기 이후의 문제로 데이터의 양으로 인해 군집화가 잘 되는지 알 안되는지는 차이가 있을 것이다. 클러스터링문제에 있어서 옳고 그름은 없다. 그냥 데이터의 양으로 인해 잘 드러나지 않은 군집이 드러나서 영향을 미치고 결과가 다르게 나올 수 있다.

결국 이것도 샘플링을 잘 하면 해결되는 문제가 아닌가?

라고 물을 수 있다. 분류된 군집의 개체수가 1개일 때와 10개일때와 100개일때의 의미가 없다라고 말한다면 그럴 수 있다. 하지만 대부분의 경우에는 의미가 있다. 이것은 데이터의 양에 따라 차이가 난다. 특별한 다수의 군집을 발견했는데 모두가 개체수가 1인 것과 10개인 것과 100개인것과 20인 것들의 차이가 있을때의 관찰자에게 생기는 시야의 차이는 있다. 물론 이것도 샘플링을 잘했을 때의 이야기라는데는 이견이 없다.
자세히 보고 싶다면 많으면 많을 수록 좋다. 그것이 아니라면 필요 없다.

샘플링을 안하는 것이 빅데이터가 아니라 샘플데이터가 많은 것도 빅데이터 문제이다.

비지도학습은 지도학습과는 달리 레이블링이 필요 없어서 데이터를 늘리는데 컴퓨팅 파워 외에는 문제될 것이 별로 없다. 다만 결과를 해석하고 반복하고 뭔가를 이해하려고 할 때 드는 부담이 매우 늘어날 뿐이다. 이것은 인간의 몫인데 슬슬 기계의 몫으로 넘기려고 하는 도전이 많다. 이것 또한 빅데이터 문제이다.

롱테일

롱테일, 파레토 법칙(Pareto law), 때로는 파워로우(Power law)까지를 잠깐 얘기해 보자.
파워로우는 잠깐 빼고 파레토쪽만 생각해 보면 80대 20으로 잘 알려진 이 문제는 데이터를 바라보는 관점과 해석하는 것에 따른 차이가 있다.
흔히 드는 얘가 대충 전체 매출의 80%를 만드는 것은 상위 20%의 고객이다라는 것으로 유력한 소수의 집단이 큰 흐름에 지대한 영향을 끼치는 것을 말한다. 앞서의 예에서는 두 가지 관점에서 데이터를 바라 볼 수 있는데

  • 전체 매출을 차지하는 20%의 개체들이 매우 중요하다고 보는 관점과
  • 20%의 대상은 소수이며 이미 잘 알려져 탐색이 된 상태이기 때문에 80%에 관심을 가져야 한다는 관점이다.

잘 생각해 보면 사실 이것은 샘플링을 하고 안하고의 문제와 관련이 없을 수 있다.

샘플링을 해도 20%가 80%의 매출을 차지하는 것과 같은 비중을 차지하는 것과 같은 패턴은 잘 달라지지 않는다. 안해도 결국 대부분 마찬가지이고. 80%의 매출을 일으키는 20%의 고객에게만 관심 있다면 이 문제에 있어서 빅데이터는 큰 문제가 아니다.
문제는 반대의 경우인데 이 경우에 20%의 매출을 만드는 80%의 고객들은

  • 영향략이 그리 크지 않지만 무시할 수준은 못된다.
  • 상위 20%의 고객에 대한 연구는 충분히 이루어졌고 더 할 것이 없어 보인다. 그래서 80%의 잉여스러운 존재에 대해서 눈을 돌리고 싶다.
  • 그러나 쪽수도 많고
  • 다양성 때문에 일일히 케어 하자면 너무 디테일 해져야 할 수도 있고
  • 잘 드러나지 않은 것들이 많아서 특성을 살피기에는 투자가 많이 필요하다.

라는 것이 문제다. 경쟁 우위를 확보하기 위해서 이 80%를 케어하기 시작한 것은 제법 오래되었다. 그런데 이런 디테일함을 케어하기 위해서는 사람이 다하기 어려우니 비교적 컴퓨팅파워를 이용해서 기계적으로 뭔가를 얻어내려한다. 이것도 빅데이터 문제다. 물론 이 문제도 대상을 정확하게 규명하고 하나씩 샘플링 해가면서 하면 되지 않느냐인데. 해도된다. 하지만 이제 그러기에는 데이터가 너무 많아지고 있다.

자질 추출 (Feature Extraction)

이 문제는 샘플링과 상관이 없을 가능성이 높다.
지도학습이던지 비지도학습이던지 알고리즘을 돌리고 모델을 만드려면 자질(Feature, 또는 attribute라고 한다. 통계학에서는 독립변수 또는 파생변수등의 변수라고 할 수 있겠다)을 추출해야 한다. – 베이지안 계열 중에는 이 과정이 단순히 카운트 세는 것으로 끝나는 경우가 있어 마치 이 과정이 없는 것처럼 보일 수도 있다. – 보통 ETL(Export, Transform, Loading)과정에서는 이것을 집계(Aggregation)라고도 말할 수도 있는데 컴퓨팅파워(Computation power)가 많이 소모되지만 최근에는 가능하면 많이 넣으려는 추세다. – 자질(Feature)을 많이 넣으면 많이 넣을 수록 좋다는 말이 절대 아니다. 교과서들에도 자주 나오지만 자질이 많다고 반드시 좋은 모델이 생성되는 것은 아니다 – 많은 자질들이 효과가 있는지 시도 해 보려고 한다는 것이고 단순하게 몇개만 해봐서는 성능향상이 더 이상 나오지 않는 것이 많다는 것이다. 자질 추출은 단순히 대상의 레코드 뿐만 아니라 전체의 레코드에 대해서 스캔을 다 해봐야 하는 경우도 의외로 많다.
검색엔진 같은 것에서 많이 쓰는 TFIDF같은 텀(Term)의 가중치를 추출하는 것이 그렇다. 컴퓨팅파워가 극도로 많이 소모되고 모델을 만들 때도 만든 모델을 적용할 때도 똑같이 필요한 과정이다. 그래서 컴퓨팅 파워가 많이 소모될 수 밖에 없는데 이 것은 그대로 빅데이터 문제가 되기 쉽다. 그리고 자질의 값들 중 일부는 연관이 있는 다른데이터의 샘플링을 하고나서 생성된 값을 쓰는 경우가 있다. 매우 데이터가 많고 복잡한 모델의 경우 이런 것도 하게 되는데 샘플링을 한 값을 자질로 넣기 위해서는 그것을 결정하는 사람이 매우 수준이 높고 연구를 많이 해야 하고 그것에 대한 전체 흐름과 영향에 대해서 완전히 파악하지 않으면 위험하기 짝이 없는 자질이 된다. 그럼 빅데이터 솔루션으로 샘플링하지 말고 다 하면 되겠네? 비꼬는 질문이 날아 올텐데 상황상 안되는 경우도 비일비재하고 데이터를 조인의 조인의 조인의…을 하다보면 자원이 천문적으로 필요한 도메인도 세상에는 존재한다. 어느 부분에 있어서도 데이터 처리의 문제는 샘플링 문제를 사실상 벗어나기 어렵다. 빅데이터를 한다고 해도 기본적으로 그 소양은 갖추고 있어야 유리하다는 것이다.

특별한 대상을 탐색하기 위한 수준 높은 샘플링

제대로 공부했고 제대로 훈련된 분석가라면 특별한 대상을 탐색하고 분석하기위해서 샘플링을 충분히 잘 할 수 있고 그것으로 해석이 가능하고 충분하다고 말할 수 있다. 샘플링을 충분히 잘 할 수 있으면 사람이 충분히 제어할 만한 수준이 되므로 모든 데이터를 또는 대용량의 데이터를 다 들여다 보지 않아도 충분하다라고 말할 수 있다.

샘플링을 제대로 하지도 못하면서 그냥 데이터만 막 들이밀면 문제가 잘 해결될 것 처럼 말하지 말라!

라는 말을 자주 들을 수 있다. 샘플링과 대용량 데이터에 대한 얘기가 나오면 피를 토하고 말씀하시는 분들의 요점은 이것인 것 같다.

맞는 말 같다.

정말 지당하게 맞는 말이라고 생각한다. 하지만 사실 나는 이것을 아주 잘하는 사람을 실제로 몇 명 보지 못했다. 그래서 잘 안되고 있다고 생각한다. 내가 많이 보지 못했기 때문에 그런 사람들이 드믈것이라고 말하는 것에 어폐가 있다고 할 수 있다. 인정한다.
하지만 그래도 반박하자면…
말로는 뭔들 못할까? 밥그릇 챙기기로 보이는 행위를 굳이 할 필요는 없다. 보여주면 되는 것이다. 나는 아직 그런분들을 많이 보지 못했다.
샘플링해서 분포를 보고 이 분포가 맞는지 안 맞는지 오차가 얼마인가를 생각하는 것 보다는 전체를 카운팅해서 집계(aggregation) 한 다음에 히스토그램(histogram) 그리는 것이 더 명확하고 쉽다.

외국계 IT포털에서 일하면서 많은 아이디어를 많은 데이터에서 단지 팩터(Factor)별로 카운트 해 보는 것만으로도 독특한 아이템이나 관점을 찾아내는 사람을 많이 봤다. 물론 막대한 양의 컴퓨팅 파워가 필요하기 때문에 이것 조차도 일반적인 환경으로는 쉽게 따라 할 수 없는 것이긴 하다.
이런 간단한 것들이 때로는 간단한 것이 회사의 매출에 지대한 영향을 끼치기도 했었다. 몇몇의 것들은 사실 별것 아닌 것 같으면서도 이런 것들이 이루어져서 새로운 거대한 흐름을 만들기도 했다. 보통 이런것들은 바깥세상에 숨기기 마련이다. 별것 아닌 것이서 그럴 수도 있고 알려지면 따라하기 때문에 그것이 곤란해서 일 수도 있다. 이런 간단하면서도 충격적인 것들은 사내에서도 대내 기밀인 경우도 많다. 알려지면 누구나 따라하기 때문에 알려지는 시점을 늦추고 최대한 시간을 벌려는 것이다. 알고 나면 정말 별거 아닌 것들이다. 먼저 알아내서 깃발 꽂으면 되는 것들.

구글의 페이지링크와 같은 것들처럼 알고 나면 별것 아닌 것이다.

알고 나면 별거 아닌 것 같은 콜럼부스의 달걀 같은 것이다.

남들도 알고 있고 나도 알고 있는 것은 경쟁에 있어서 무기가 되지 않는다.

그것을 위해서 수단 방법을 가리지 않는 것이고 샘플링을 하고 안하고의 이전에 있어서 현대에 기업이나 사업에서는 수단방법을 가리지 않으려고 한다. 그것이 샘플링이 되었던지 통계학의 깊은 수준의 지식이 필요하든지를 떠나서 말이다.

데이터와 정보처리에 있어 그 수단 중 하나가 빅데이터 솔루션이다. 우리가 어떤것에 대해서 얘기할 때 구체적으로 무엇에 대해서 얘기하고 있는지 곰곰히 생각해 볼 필요가 있다. 나는 빅데이터를 해도 샘플링을 해야 하는 문제는 결국 그럴 수 밖에 없다고 생각하는 주의이고 그 문제를 컴퓨팅 자원을 소모해서 쉽게 해결할 수 있다면 가능한 그 방법을 택하겠다는 주의이다. 나는 빅데이터가 기존의 통계학도들이나 빅데이터에 적응하지 않으려하는 데이터 분석가들의 밥줄을 끊던 말던 사실상 관심이 없다. 알아서 챙겨야 할 문제다.
이미 사회에 진출하는 많은 학생들이 빅데이터에 대한 학습도 많이 하고 진출하고 있다. 사실 나는 그들이 매우 두렵다.

통계쪽에 대해서는 얘기를 하지 않았지만 그래도 하고 싶은 말은 있다.
혹시 이 글을 읽는 분들 중에서 통계학에 정통을 했으며 샘플링 문제에 있어서 고수준의 지식을 가지고 있는 분들이 있고 솔직하게 생각해서 그런 분들이 어줍잖게 컴퓨터의 힘을 빌어 그런 깊은 지식에 대한 학습의 노력없이 당장 나온 결과만 보고 따라 오려는 사람들을 불편하게 생각하는 분이 있다면 그 분들도 더 노력을 해야할지 모르겠다. 기계가 어느 정도 많은 것을 해결해 주는 시기가 점점 오고 있다는 것은 분명하니까.

댓글 남기기