현재 Rule 기반의 분류기나 하드코딩을 하면서 어떤 분류 작업을 하는건 이미 과거의 기술에 지나지 않아 보인다. 새로이 기계학습(Machine Learning)이라는 분야가 각광을 받으면서 두가지 기술을 병행해서 실제 성능을 많이 끌어올리는 사례들을 많이 볼 수 있다.
제목 그대로 이제는 데이터의 학습에 기반한 어떠한 프로세스를 행하는게 기본이 되어 버렸다. 왜냐면 데이터는 복잡해지고 로그도 다양해 지는데 그곳에서 객관적인 패턴을 추출하기란 이미 사람의 인지능력과 인내력의 범위를 벗어나는 것들이기 때문이다.
그리고 1과 0으로 표현되는 if …else 문들의 룰 베이스 기반의 분류에서는 정도를 의미하는 값을 도출하기 힘들기도 한 단점이 있다.
“스팸성이 90%네요… 60%네요…”
이런 말들이 룰베이스에서는 나오기 힘들다.
이런 ML방법을 쓰는데 초반의 가장 큰 문제는 ML관련 라이브러리를 설치하면 모든게 다 될거라는 생각을 한다는 것이다.
내가 볼때 라이브러리 설치는 전체 작업의 1%도 안되는 부분이다.
그래서 이런 라이브러리 설치를 하고 운용 방법을 알면 결론이 바로 나오는줄 안다.
다른 나라에서 이미 시행 했던 간단한 서비스에 적용하는 ML기반 분류기를 예로 들자면 이 프로젝트가 1년의 시간을 가지고 진행이 되었고 대부분의 시간이 golden set을 만들거나 여러 분류기를 다른 데이터를 입력해 만들고 테스트 하고 성능이 가장 좋은 것을 골라내고 treshold를 찾아내는 작업에 들어갔다.
그리고 이런 장기적인 데이터 핸들링에 대한 경험을 기반으로 추후 분류기를 어떤 데이터로 어떻게 운영해야 할지 정책적인 결정을 하게 된다. 그러나 아직 이런 경험이 없는 곳에서는 저런 프로세스에 대한 이해를 하지 못하고 있어서 참 안타깝다.
두번째로는 라이브러리의 내부로직에 대한 이해를 할 필요없이 플러그인처럼 가져다 쓰면 된다는 생각을 한다는것이다.
위에서 데이터를 핸들링해서 골든셋을 만들고 테스트와 학습을 반복하는 과정이 가장 많은 시간이 소요된다고 했는데 내부 로직에 대한 이해 없이 왜 이런 결과가 나오는지 유추하는건 불가능하다. 이해를 하지 못하면 테스트도 하지 못한다. 봉사 문고리 잡듯이 마구잡이로 수백번 수만번 테스트 해서 가장 좋은 데이터셋을 잡을지는 모르겠지만 이건 정말 비효율적일 것이다.
따라서 어떤 분류 알고리즘을 썼는지에 대한 충분한 이해가 없이는 데이터를 핸들링하기 힘들다. 따라서 이런것을 알기 위해서는 최소 ML관련 책은 봐야 한다.
세번째로는 ML이 미래의 예측 불가능한 새로운 패턴에 대한 결과를 예측하길 바란다는 것이다.
ML은 이미 봤던 데이터 셋에서 확률적인 계산을 해내 같은 패턴의 데이터가 들어 왔을때 분류를 한다. 절대 자신이 보지 못한 데이터에 대한 분류는 정확도를 기하기가 힘들다는 것이다.
물론 Bias가 큰 Decision Tree(pruning이 된것)의 경우에는 가끔 미지의 데이터에 정확한 분류 결과를 내기도 한다지만 이러한 경우는 미지의 데이터가 기존의 학습셋 기반에서 예측할 만한 것일 경우다.
ML은 Magic Library가 아니라, Machine Learning이다.
뭔가 가르침을 줘야 작동을 한다는 것을 명심해야 한다.
어느날 내가 잘 아는 대리님이 본사의 플랫폼을 설명하면서 이런 본사의 좋은 기술을 쓰기 위해서 가장 필요한 부분이 뭘까 하는 질문에 내가 이렇게 대답했다.
“경험이 많은 개발자(가방끈 긴 사람)가 필요하겠죠.”
그저 긴 가방 끈이 필요한게 아니라 가방끈 긴 사람이 위의 작업들에 대한 이해와 경험이 풍부할 가능성이 많기 때문이다.(특히 데이터 마이닝 박사님들…)
가방끈이 길지 않더라도 업무적으로 저런 경험이 있을만한 사람은 구글정도의 회사에만 있겠지?
그래도 다행인건, 글로벌하게는 이미 저런 방법론상으로 가고 있다는것과 글로벌리 경험이 풍부하다는것, 또한 내가 몸담고 있는 팀분들 다수와 팀장님 파트장님도 필요성에 대해서 인지하고 실제 개선하고 있다는 것이다.
얼마전에 방한한 수잔 데커 야후 사장이 personalization을 강조했는데. 미리 말하지만 ML기술 기반에서 개인화가 이루어 진다는 것을 미리 알았으면 좋겠다.
Machine Learning 기술을 실무에 쓸때 생기는 오해들 by from __future__ import dream is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.