데이터 양을 늘릴것인가 vs. 알고리즘을 정교화할 것인가

20131031_232542_HDR알고리즘이 좋은 것보다 데이터가 많은 편이 더 효과적이라는 사실이 여실히 증명된 사례는 자연어 처리(natural language processing) 부문이다. 자연어 처리란 우리가 일상생활에서 사용하는 단어들을 컴퓨터가 어떻게 분석해야 하는지 연구하는 분야다. 2000년 경에 마이크로소프트의 연구원 미셸 방코(Michele Banko)와 에릭 브릴(Eric Brill)은 워드 프로그램에 사용하는 문법 검사기를 개선할 방법을 찾고 있었다. 두 사람은 기존 알고리즘을 개선하는 데 노력을 쏟아야 할지, 아니면 새로운 기술을 찾거나 더 세련된 기능을 추가해야 할지 확신할 수 없었다. 이 중 어느 하나의 방법으로 결정하기 전에 그들은 기존 방법에 더 많은 데이터를 추가하면 어떻게 되는지 한번 시험해 보기로 했다. 대부분의 기계 학습 알고리즘은 총 100만 개 이내의 단어로 된 말뭉치(corpus)를 사용했다. 방코와 브릴은 흔히 사용하는 네 개의 알고리즘에 데이터를 열 배씩 계속 늘려가며 추가해보았다. 각각 1,000만 단어, 1억 단어, 그리고 결국 10억 단어 수준까지 말뭉치의 크기를 늘렸다.

결과는 믿기 어려울 만큼 놀라웠다. 데이터가 추가되자 네 종류의 알고리즘 모두 성능이 극적으로 개선됐다. 실제로 50만 단어를 가지고 사용했을 때는 성능이 가장 형편없었던 단순한 알고리즘도 10억 개의 단어를 처리하자 다른 세 개의 알고리즘보다 더 나은 성능을 보였다. 정확도가 75%에서 95% 이상으로 올라간 것이다. 반대로 데이터가 적을 때 가장 높은 성능을 보였던 알고리즘은 더 많은 데이터를 처리하자 최하의 성능을 나타냈다. 물론 정확도가 86% 근처에서 약 94%까지 올라갔으니 다른 알고리즘들처럼 성능이 많이 개선된 것은 사실이지만 말이다. 방코와 브릴의 연구 논문은 ‘이런 결과는 우리가 시간과 돈을 알고리즘 개발에 투자해야 할지 말뭉치 개발에 투자해야 할지 재고해볼 필요가 있음을 시사한다’고 제안했다.

                      – 『빅 데이터가 만드는 세상』
(빅토르 마이어 쇤버거, 케네스 쿠키어 著, 이지연 譯)

이 글에서 핵심은 아마도

데이터 양을 늘릴 것인가  vs. 알고리즘을 정교화할 것인가 

정도로 요약 가능하겠다.

읽다 보니 자연스럽게 고개를 끄덕이게 됐다. 트리움 내부에서 빅데이터 분석을 진행하다가도, 데이터 양이 어느 정도를 넘어가고 나면 분석시간도 길어지고, 적당한 데이터량일 때에 비해 메시지도 지저분해(messy)지는 느낌이었달까. 우리 내부에서 개발/발전시켜오고 있는 분석 방법론들은 비교적 정교한 알고리즘에 속하는 편인데, 데이터량이 커질 때에도 더욱 더 빠르고 예리하게 인사이트를 뽑아낼 수 있게 하려면 어떤 접근이 필요할지 고민이 생긴다.

결국 선택지는

1. 훌륭한 알고리즘을 통해 좋은 표본 데이터를 추출해서 예리하게 분석한다

2. 데이터를 엄청나게 늘려서 마구 돌려 정확도를 높인다

3. 엄청나게 많은 데이터도 빠르게 분석할 수 있는 영리한 알고리즘을 개발한다

정도일 것 같다.

어느 쪽이 정답일지 A/B Test라도 해 봐야 할 듯.

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중