데이터 분석? 데이터 과학?

0
161

첫 직장인 D모 투자은행의 Investment Banking Division (IBD, 속칭 i-Banking) 사람들이 가장 싫어하는 단어가 “컨설팅”이었다. i-Banking 업무 자체가 기업을 사고 파는 업무(M&A)를 “컨설팅”해주는 업무임에도 불구하고, 전략 컨설팅 회사들 (McKinsey, Bain & Compnay, Boston Consulting Group 등)이 “컨설팅”이라는 단어를 선점한 상태인데다,  i-Banker들은 컨설턴트들이 숫자 읽을 줄 모르고 그림만 그린다면서 매우 깔보고 무시했기 때문이다. (뭐… 무시해야할 이유가 그것뿐인건 아니지만…) 무시하는 사람들과 같은 그룹으로 묶이게 되는 “컨설팅”이라는 단어에 거북해지는게 그들 입장에서는 당연하겠지만, i-Banking(아이뱅킹)이라는 용어를 잘 모르는 사람들이 많아 보통의 한국 사람들에게 업무를 설명하기 어려운 점이 적잖이 있었다. (덧붙여서, 일반 상업은행 – 국민,우리,신한,외환은행 등- 업무, 증권사의 투자 관련 업무랑 다르다고 자기들을 항상 “i-banker (아이뱅커)”라고 불렀다. 자부심 아주 쩐다ㅋㅋㅋ) 아무리 설명하기 어려워도 자존심에 끝까지 컨설팅이라는 이름을 쓰지 않았던 걸 생각해보면 ㅋㅋ

비슷한 맥락에서 요즘 “데이터 분석”이라는 단어를 들을 때 조심스러워진다. 보통 데이터에 “분석”이라는 용어를 붙이는 사람들이 가지는 관점이

  • 데이터로 작업하는데, 개발은 아닌 작업
  • 데이터로 작업하는데, 그래프 그려놓고 썰 푸는 작업
  • 데이터로 작업하는데, 데이터를 “잘 본다”고 주장하는 작업

이라고들 생각하는 경향이 짙다.

내 입장에선 그래프를 그린다는게 성장율 CAGR을 그린다거나하는 1차원 그래프가 아니라, 수학 모델을 만들어놓고 그 모델을 통해서 A 입력치가 변했을 때 B 결과가 어떻게 바뀌는지를 볼 수 있는, 추론의 결과를 가늠하는 시각 도구적인 관점이 강한데, 아무래도 보통 사람들이 그런 수학 모델을 만나는 일이 드물다보니 “분석”이라는 단어가 주는 뉘앙스가 내가 전달하고 싶지 않은 의미가 되어 버린 것 같다.

본의 아니게 “분석”이라는 단어를 회피하다보니 더더욱 Data “과학(Science)”이라는 표현을 더 쓸 수 밖에 없다. 위에 살짝 언급한 수학 모델 기반의 결과 시뮬레이션과 단순한 CAGR 그래프와는 급이 같은 업무는 아니라는 걸 강조하기에 달리 방법이 없어보인다.

 

Data Analysis vs. Data Science

용어가 혼선을 낳는 더 근본적인 이유는 역시 Data Science가 뭔지에 대한 제대로 된 관점이 잡혀있지 않기 때문이라고 생각한다. 우리는 계산통계학 (Computational Statistics)을 특정 업무 분야에 적용하는 사람들, 상황에 맞게 적절한 수(리통계)학 모델링을 하는 사람들인데, 외부인들에게는 아무래도 “데이터”가 더 크게 눈에 들어오지 “Science”가 더 크게 눈에 들어오지는 않는 것 같다.

얼마전 수업 시간에, 통계학에서 활용하는 Two Stage Least Square (2SLS, 회귀분석을 2단계로 돌리는 작업)을 선형대수학의 벡터 개념을 빌려서 설명한 적이 있다. 머신러닝 수업하는데 왜 이런 내용이 나오는지 의아한 분도 있겠지만, 여러개의 설명 변수(x값)들 중 일부의 효과를 배제한 상태에서 종속 변수(y값)을 설명하기에 굉장히 효율적인 계산법이다.

수업 중간에 이런 통계학의 회귀분석 내용을 왜 머신러닝 가르쳐 준다는 수업에서 배우고 있는지 의아한 분위기가 느껴지는 시점에

“이런 작업의 공식 명칭이 뭔 줄 아세요? ‘데이터 전처리’라고 하죠.”

라고 하니 정말 표정들이 일순간 강의실 전체가 충격의 도가니로 바뀌는 것을 느꼈다.

일전에 커닝 없이 시험 점수가 실력을 제대로 평가한 숫자인지를 확인하려는 예시에 관한 글을 쓸 때도 마찬가지고, 위의 2SLS 예시도 모두 수학적인 도구를 활용해 데이터 “분석”을 효과적으로 진행하기 위한 작업의 일환이다. 다만, 한국에서 일반적으로 “분석”이라는 단어를 쓰는 사람들이 2SLS를 쓸 줄 알기는 커녕, 들어본 적도 없는 사람들이 대부분이기 때문에, 어쩔 수 없이 저런 작업의 명칭을 “분석” 대신에 “고급 통계학” or 데이터 “Science” or 데이터 “모델링”이라는 표현을 쓰게될 수 밖에 없는 것이다.

 

의학계 vs. 금융권

예전에 Pabii 수업을 듣고 간 어느 산업공학과 학부생 하나가 대학원에 진학했는데, 의학 분야쪽에 머신러닝 적용한다는 교수님 연구실에 갔더니 기대한 것과 너무 다르다고 상담을 왔던 적이 있다. 자기가 원하는 지식이 뭔지 한참 설명을 듣고 나니, 어차피 한국의 어지간한 학교 대학원에서 원하는 걸 다 배우기는 어려워 보이고, 기술적으로 필요한 수학만이라도 챙겨주는 연구실을 찾아보라고 추천해 줄 수 밖에 없었다. 그렇게 고른 곳이 산업공학과에서 Finance 관련한 연구를 하고 계신 교수님의 연구실이더라.

필자가 Finance 출신이라서 편견이 있다고 볼 수도 있지만, 대체로 의학쪽 통계와 금융쪽 통계를 1:1로 비교해보면, 수학/통계학 필요 스킬 셋이 정말 하늘과 땅 차이로 큰 격차가 있다. 의학쪽 논문을 봐 달라는 요청이나, 필요한 코멘트를 해 주는 경우를 보면, 대부분 내가 연구하던 시절 사회학자라고 무시하고 폄하했던 친구들 수준의 통계 지식만을 갖고 논문을 써 놨다는 느낌이 든다. 반면, Finance 분야에서 그런 논문을 내면 학회에서 폭격을 맞기 전에, 동료 연구자들에게 먼저 비웃음을 산다.

Data “Analysis”와 Data “Science”의 차이점을 놓고 설명을 할 때 항상 마음 속에 떠오르는 것도 위의 두 분야에서 겪는 사건들이다. 의학쪽, 더 나아가 사회학적 통계 방법론을 쓰시는 분들이 아무리 노력해봐야 내 눈엔 “Analysis” 수준에 지나지 않는다. 이걸 “Science”의 영역으로 끌어들이려면 최소한 Toy model (단순한 모델을 학자들이 부르는 방식) 이라도 수학적인 모델을 갖고 입력값이 어떤 side effect과 함께 출력값을 내놓는지 확인할 수 있어야하지 않을까?

 

(데이터를 이용한) 모델링

Reinforcement Learning을 일반에서는 “인공지능”이라고 부른다. 바둑부터 다양한 종류의 게임을 풀어나가는 “지능”을 “학습”하는 것처럼 보이기 때문이다. 기존의 Reinforcement learning은 데이터 입력을 요구했는데, 이제는 기본 지식만 가르쳐주고나면 데이터 입력 없이도 알아서 척척척 Learning을 한다면서, 이제 “데이터”는 “인공지능”에 필요없다고 주장하는 댓글도 달린 걸 봤다.

이쪽 관련 모델링을 공부하신 분들은 알겠지만, State 1 -> State 2로 상태가 바뀌는 확률을 이용한 모델링 작업을 Markov Process라고 부르고, 이 때 참여자 (Agent)의 행동 (Action)이 확률이나 결과값에 영향을 줄 수 있으면 Markov Decision Process라고 부른다. 그 때 확률을 계산하는 방식이 기존의 Reinforcement learning에서는 과거 데이터를 활용했다면, 규칙만 알려주면 “데이터 없이” 스스로 Learning한다는 모델들은 데이터를 생성하는 시뮬레이션을 활용한다. 보통 주식 가격의 범위를 예측하는 (주식 가격을 예측하는게 아니다) 시뮬레이션 모델링을 할 때처럼 단순한 Factor (들)로 만든 모델도 시뮬레이션 필요 숫자가 10억개씩인 경우가 비일비재했었다. 근데, 스타크래프트 같은 게임으로 치면 가능성의 조합은 얼마나 많을까? 저 댓글을 잘 모르는 일반인이 썼다면 그러려니 했을텐데, 혹시나 싶어서 IP를 추적해보니 모교의 어느 연구실이더라. 이런 종류의 시뮬레이션에 필요한 Computational cost의 크기를 전혀 가늠하지 못하는 걸로 봐서 수학, 통계학, 물리학같은 자연대쪽이 아니라 공대쪽 석박 연구실 학생일 것 같은 느낌이 드는데, 이미 공대를 무시하고 폄하하는 글을 너무 많이 써 놨으니 여기까지만 쓴다.

기업들이 우리학교 이름만 보고 학교 연구실에 외주 프로젝트 주는 경우가 많을텐데…. 왜 Data Science 프로젝트들이 수(리통계)학 많이 쓰는 전공들로 가질 않고 공대쪽으로 가는지, 왜 우리나라만 요모양 요꼴인지…..

요즘 Reinforcement Learning을 연구하는 사람들의 숙제는 Game Theory를 어떻게 모델 내재화하느냐다. (애시당초 Game Theory를 이해할 수 있는 수준의 수학 모델링 공부를 하지 않는 공대생들 중심으로 돌아가는 한국의 Data Science 업계가 양적성장만 가능하고 질적성장이 불가능한 이유가 여기에 있다.) 시뮬레이션을 저렇게 무한대의 숫자로 다 하는 것은 아무리 Computing power가 좋아져도 한계가 있기 때문에, 필요한 최소한의 시뮬레이션을 하기 위해서 가능성이 있는 Path들만 뽑아내려는 작업을 한다는 뜻이다. 여태까지 Alpha-Go를 위시한 대부분의 “인공지능”들이 사실은 “컴퓨터 학대”였다는 사실을 인지하고, 이제 좀 더 복잡한 문제들을 풀기 위해서 컴퓨터를 효율적으로 쓸 수 있도록 인간이 문제를 효율적으로 Re-structuring해서 간략화한 계산을 컴퓨터에게 맡긴다고 생각하면 얼추 맞아들어갈 것 같다. (알파고 만들어서 큰 돈 벌었던 데미스 하사비스도 더 이상 꿈꾸는 소리는 못하겠는지 Reinforcement learning 방식으로 일반 인공지능을 만드는건 불가능하다고 인터뷰도 해 놨더라ㅋㅋ)

 

나가며 – Engineers and Analysts are Degrading Science

데이터의 종류마다 필요한 데이터 전처리가 다르고, 활용하는 모델도 달라진다는 이야기를 블로그에서도, 또 수업에서도 여러번 반복한다. 이미지, 자연어 등 데이터 자체가 특정한 체계를 갖추고 있는데, 그 구조가 계층적으로 복잡한 경우에 “딥러닝”이라는 모델이 잘 작동하고, 그 이외에는 괜히 계산 비용만 많이 들고 Overfitting이 생길 수 밖에 없다는 이야기를 여러번 한다. 어떤 모델도 모든 데이터 셋에서 항상 우월한 결과를 가질 수 없다는 머신러닝의 Fundamental theorem을 굳이 복잡한 수식을 이용해 증명하지 않더라도, 몇 번의 데이터 작업에서 “딥러닝”이 무조건적인 해결책이 아니라는 사실쯤은 한두번쯤 겪어 봤을 것이다.

이런 지식은 데이터 모델링을 공부한 사람들에게는 꽤나 상식적인 지식이다. 설령 자기 전공의 모델링에만 집중한 탓에 머신러닝이 적용되는 방식을 잘 몰랐다고해도, 간단한 설명만 들으면 충분히 이해하고 따라올 수 있을 것이다. 반대로, 모델링을 해 본적이 없었던 사람에게 이런 지식은 말 그대로 4차원의 지식일 수 밖에 없다.

앞으로 외부 미팅에서 “데이터 분석”과 (“데이터 엔지니어링”과) “데이터 과학”을 좀 명확하게 구분해주는 분들을 만날 수 있으면 좋겠다.

 


2019년 2월 3일 추가. 오랜만에 가까운 친구랑 연락하는데, “너네 연봉 엄청나게 주면서 ‘데이터 분석가’ 뽑더라?” 라고 하던데, 엄연히 데이터 “사이언티스트”라고 올려놨는데 그런 표현을 들으니 참 듣기가 거북하더라. 혹시나 우리회사 모시게 될 분들이 데이터 “분석가”라는 표현에 기분 안 나쁘셨으면 좋겠다. 워낙 모델러가 없는 시장, 석/박 교육 좀 받았다는 사람들이 할 수 있는 일이 겨우 “분석가” 밖에 안 되는 한국 시장의 현실이 좀 개탄스러울 뿐이다. 모델러를 흔히 만날 수 있는 시장, 그래서 친구들에게 “분석가 뽑더라?”는 질문을 안 받을 수 있는 시장은 언제쯤 만들 수 있을까?