빅데이터 “Integrated Intelligence”를 이용한 비지니스 모델

Pabii 블로그의 가장 큰 흐름을 2개만 잡으라면 하나는 수학과 통계학같은 기초학문이 탄탄해야 요즘 인공지능이라고 불리는 데이터 사이언스 작업을 이해할 수 있다는 포인트와, 빅데이터란 용량만 많은 데이터가 아니라 많은 사람들의 행동 패턴을 추적할 수 있는 데이터라는 포인트다. 그 중 빅데이터에 대한 관점을 좀 전문 용어를 빌려쓰면 집단지성 (Collective Intelligence)통합지성 (Integrated Intelligence)의 구분을 활용해볼 수 있을 것 같다.

요즘 인구에 회자되지만 정작 용어에 대한 정의에 여러가지 혼선이 있는 빅데이터라는 개념은 1,000명의 샘플 유권자 대신 백만명 정도의 유권자들을 대상으로 조사하면 대통령 선거 결과를 좀 더 정확하게 예측할 수 있다는 집단지성의 접근법에서 벗어나, 백만명 각각의 행동패턴 데이터를 따라다니면서 그들의 유사함과 차이점들을 바탕으로 정치 선호를 가늠하는 통합지성의 맥락에서 바라봐야한다.

이전의 다른 글에서 언급했듯이, 통계학 샘플링을 조금만 공부하면 1,000명의 유권자 대신 백만명의 유권자들을 대상으로한 설문조사에서 나오는 장점이 그렇게 많지 않다는 것을 이해할 것이다. 다른 글 링크를 따라가기 귀찮은 분들을 위해서 간단 요약을 하면, 유권자 숫자를 1,000배 늘려봐야 표준오차가 1000분의 1이 될 것을, 32분의 1로 줄이는 정도에 불과하다. 1,000배나 더 많은 사람들에게 설문조사하려고 들어갈 돈을 생각하면, 그리고 적절한 표준 샘플링이 실패할 가능성을 생각해보면 왜 설문조사 기관들이 1,000(+n)명의 유권자들 기반으로 조사하는지 알 수 있게 된다.

반면 통합지성의 맥락에서 바라보면 유권자의 숫자가 많을수록, 그들의 행동 패턴에 대한 데이터가 많을수록 다양한 행동 패턴과 정치 성향을 연결지어볼 수 있다. 특정 후보 A를 지지하는 사람 모두가 동질적인 (Homogeneous) 사람이 아니고, 특정 연령, 성별, 지역만으로만 정치 성향을 함부로 단정지을 수도 없다. 오히려 어떤 웹 컨텐츠를 더 소비하고, 어떤 사회적 지위에 있고, 어떤 사람들과 어울리냐가 훨씬 더 중요한 정보인 경우가 대부분이다. 그런데, 집단지성 기반의 데이터로 어떤 웹 컨텐츠를 더 소비하는지를 추적할 수 있나? 웹 컨텐츠 종류를 잡아내기 위해서는, 그리고 그런 웹 컨텐츠가 정말 정치성향과 맞물려있다는 결론을 내리기 위해서는 많은 사람들의 온라인 행동 패턴을 통해 “학습 (Learning)”한 모델이 있어야한다. 그게 개개인의 단독 데이터였다면 큰 쓸모가 없을 수도 있지만, 많은 숫자의 사람들의 데이터를 모으게 되면 유사한 그룹을 묶고, 그 그룹과 일치하는 성향을 찾아내는 작업이 가능해진다.

이래서 빅데이터통합지성 기반의 데이터라고 부르는 것이다.

(Source: Human Mind Project)

 

통합지성을 이용한 비지니스 모델 1 – SNS

회사 이름 pabii의 마지막 두 개 I는 Integrated Intelligence (통합지성)의 약어다. 개인에게는 단순한 경험적 지식이 서로서로 공유되면 집단의 경험으로 바뀌어서 다른 종류의 “지성”으로 바뀐다는 맥락이다. 다른 글에서 소개한대로, 교통 상황 실시간 업데이트를 보여주는 앱들이 모든 유저로부터 정보를 받고, 그 유저들의 위치와 움직임을 바탕으로 현재 교통 상황을 바로바로 보여줄 수 있는 서비스를 내놓고 있는게 딱 Integrated Intelligence의 좋은 예시라고 할 수 있다.

얼마전 비슷한 서비스를 우연히 알게 되었다. AroundUS (어라운드어스)라는 스타트업이다. 참고로 필자는 이 회사와 아무런 관련이 없다. 단지 검색 중 우연히 알게된 서비스임을 다시 한번 강조하고 시작한다.

서비스 내용은 간단하다. 프리랜서들이 경험했던 프로젝트들을 올려놓고, 서로가 서로에게 레퍼런스를 달아줄 수 있는 플랫폼이다. 보통 면접은 이력서 한 장으로 보지만, 구직시에 경력 증명을 위해서 건강보험 가입 증명서를 요구하기도 하고, 아는 사람을 건너건너서 이전 직장의 뒷 이야기 같은 정보를 구하려고들 한다. 그나마 큰 기업체들에서 장기 근속하신 분들에게는 이런 방식이 꽤나 유용하지만, 프리랜서들에게는 사실 좀 어려운 구석이 있었다.

이 서비스에서 Integrated Intelligence가 들어간 부분은 서로간 Cross-check을 해 주는 부분이다. 프리랜서 개발자 A가 2017년 상반기 6개월간 기업 B의 데이터 베이스 설계 작업 업무에 투입되었다고 해 보자. 그 때 같이 일했던 분들, 혹은 그 프로젝트 결과물을 바탕으로 다음 프로젝트를 진행했던 분들에게 분명히 개발자 A의 업무 퍼포먼스에 대한 정보가 있을 것이다. 업무 기간이 겹쳤다면 같이 일한거 맞다는 인증을 해주고, 일 잘하는 사람이었다면 “님 좀 짱짱맨” 같은 댓글도 달아줄 수 있단다.

이게 왜 Facebook, Instagram 같은 대형 SNS와 다르냐고 물어보니, 업무 관련해서, 특히 프리랜서들 대상으로 특화된 서비스라서 다르다고 하는데, 얼마나 다른지는 직접 관계자가 아니니 함부로 말할 수 없지만, 비지니스 모델을 보는 순간 딱 Integrated Intelligence가 눈에 보여서 소개해본다.

 

통합지성을 이용한 비지니스 모델 2 – 경험담 게시판

비슷한 종류의 서비스를 미국에서 본 적이 있다. 변호사, 회계사 등의 전문직 프리랜서들의 모임 페이지였는데, 그 웹페이지 상에서 서로 계약을 맺고, 비용정산을 다 해주고, 소비자들의 후기가 상세하게 적혀있더라. 그런 후기만 적혔으면 보통의 서비스 페이지에 불과했을텐데, 소비자들끼리 서로 대화도 나누고, 서비스 제공자들이 그 부분은 이해를 잘못했었다, 어떻게 해결하면 된다 등등의 “결합형 후기”가 계속해서 생성되는게 꽤나 놀라웠다.

전문직들도 영업을 직접 뛰러다니는 것보다 그런 플랫폼을 이용하는게 비용이 적게 들어서 좋고, 소비자들도 다양한 경험을 서로 공유하면서 계속 지식이 축적되니 전문직 프리랜서들의 고객응대가 더 좋아질 수 밖에 없는 구조였다. 예를들면, 변호사 1명이 자신의 Forum을 갖고 있고, 거기에 Thread 하나에 사건 하나씩 걸어놓으니 그 변호사에 대해서 궁금한 사람들, 혹은 그런 종류의 사건 해결 방식에 대해서 궁금한 사람들이 관심을 갖고 찾아갈 수 밖에 없는 형태의 정보가 축적되고 있었다. Forum과 Thread 형식의 게시판을 운영하는 영어권 커뮤니티들의 특징을 잘 살린 사례라고 생각한다. 우리나라에도 비슷한 시스템을 구축하면 참 좋을텐데, 게시판 형태가 다르니 약간 방식을 바꿔야할 것 같기는 하다. ㅎㅎ

실제로 머리 아픈 계약서를 쓰다가 이건 전문가의 손을 빌려야겠다는 생각에 변호사 친구한테 적합한 변호사 한 분 소개해달라는 부탁을 했더니,

“무조건 유명한 법무법인 출신이라고 해서 잘 하는 변호사 아닌건 알지? 니가 쓰는 계약서 관련해서 내가 아는 A급 전문가 소개시켜주면 되는거지?”

라고 하더라. 잘 모르는 외부인 입장에서야 단순하게 대형 로펌이 제일 좋지 않을까 생각했는데, 뒷 이야기를 들어보니 사정이 참 달랐다. 고액 수임을 하는 수요자 상당수가 기업체라서 변호사들 대상으로 한 저런 서비스가 한국에서 얼마나 유저 풀을 끌어모을 수 있을지는 모르겠지만, 친구의 말을 듣는 순간 예전에 봤던 영어권의 어느 게시판이, 그리고 Integrated Intelligence가 오버랩이 되더라.

변호사 한 명과 소비자 한 명간의 계약관계로 끝날 수도 있었던 비지니스를 온라인에 공유형으로 바꿔버리고, 모두가 그런 공유를 하면 서로에게 도움이 되는 정보로 바뀌는 것이다. 변호사 A가 변호사 B를 소개해주고 소개비를 받는게 불법으로 알고 있는데, 이렇게 경험 공유형 플랫폼을 쓰면 법적인 이슈도 덩달아 해결되지 않을까? (물론 불평불만 댓글에 소송하실 변호사 님도 있을 것 같아서 현실화하기는 좀 어려울지도 모르겠다 ㅋㅋ)

(Source: Victoria Prooday)

 

통합지성을 이용한 비지니스 모델 3 – 개인맞춤형 서비스

요즘 여러 회사들이 경쟁적으로 시도하고 있는 “개인맞춤형 서비스”들도 모델링 방식에 따라 Integrated Intelligence에 기반할 수 있다. 기존의 고객관리 (CRM)은 고객 A가 뭘 많이 했으니, 고객 집단 B가 뭘 많이 할 것 같으니 그에 맞춰서 마케팅 비용을 쓰자는 방식으로 진행되었다. 여기에 머신러닝 방법론이 도입되면서, 좀 더 세분화된 패턴 매칭이 가능해졌고 (Recommendation Engine, 장바구니 분석 등등), 고객 X, Y, Z가 했던 것과 비슷한 행동을 취하고 있는 고객 M이 곧 고객 X, Y, Z와 같은 결론을 내릴 것이라는 판단아래 선제적인 대응을 할 수 있게 되었다. 기존의 고객 X, Y, Z의 행동 패턴 기록은 각각만 놓고보면 단순한 CRM 데이터 포인트에 불과하지만, 모두를 모아놓고 보면 Integrated Intelligence 서비스가 된다.

주의 사항을 몇 개 던지자면, 꼭 고객 X, Y, Z, M이 같은 성별, 같은 연령대, 같은 지역 사람일 이유는 없다. 기존의 CRM은 행동 패턴 데이터를 DB에 쌓아놓고 이런 패턴 매칭 작업을 하지 않았기 때문에, 인구통계학적인 정보들에 의존하는 경우가 많았다. 꼭 인구통계학적 정보를 쓰는게 구시대적이고 틀렸다고 생각하지는 않지만, 나이, 성별, 지역 같은 내용에 국한되지 않는 개개인의 특성들을 행동으로 잡아낼 수 있으면 굳이 그런 정보에 의지할 필요가 없는 것이다.

실제로 온라인 쇼핑몰 운영하는 기업들에 강의를 나가보면,

“이번에 출시되는 갤X시 노X 구매할 사람들을 찾으려고 하는데, 무슨 특징을 기반으로 골라내야할까요?”

“무조건 특정 연령, 성별, 지역 같은 정보로 구분하는건 이런 상품 살 것 같은 사람 골라내는데는 별로 의미 없지 않나요?”

같은 종류의 질문을 자주 받게 된다.

파비의 사업 모델도 마찬가지다. 이용자의 인구통계학적 데이터나 가장 최근에 어떤 쇼핑몰의 무슨 상품을 봤는지를 이용하는 개인맞춤형이 아니라, 유저 A가 어떤 타입의 사람인지 다른 유저들과의 비교 나열하고, 그에 따라 적절한 광고 매칭을 해주는 서비스다. 개인맞춤형 서비스가 인구통계학적 타게팅에서 지면 콘텐츠에 맞춘 타게팅으로, 그리고 구매를 유도하는 행동 타게팅으로 진화하고 있는데, 한발 더 나가서 개인의 특성을 잡아내는 (Psychographic) 타게팅을 하는 방식으로 Integrated Intelligence를 쓰는 레벨이 점점 더 올라가고 있다.

(Source: Mind Futures)

 

 

나가며 – 빅데이터 as in 통합지성

빅데이터는 데이터의 특성을 의미하는거고 집단의 행동특성은 분석에 해당되는거라 구분이 필요하실거 같습니다

최근에 위의 댓글을 봤다.

빅데이터에 대해 모두에게 공통적으로 받아들여지는 정의가 없는 상황이고, 누구나 자신만의 정의를 가질 수 있기 때문에 틀렸다고 하지는 않겠다. 다만 저런 정의로는 요즘의 “빅데이터”가 이전 시절의 “스몰데이터”에 비해서 특별히 다른 통계툴을 써야할 이유가 없다. 마찬가지의 맥락에서 집단의 행동특성을 잡아내는 작업을 “분석”이라고 부르는 것도 기존의 데이터 “분석”하는 작업의 구태에서 벗어나지 못했기 때문에 나오는 정의가 아닐까 싶다.

빅데이터는 통합지성을 활용할 수 있는 형태의 데이터, 많은 수의 사람들이 보여주는 행동패턴을 담은 데이터라는 관점에서 바라보면, 데이터를 더 이상 “분석”한다는 표현을 쓰기가 어렵게 된다. 타입 A는 결론 C를, 타입 B는 결론 D를 낸다는 이야기를 하는데서 그치는게 아니라, A-B-C-D 체인과 B-C-D-A 체인간의 차이에서 나오는 결과값과 X-Y-Z-M 체인과 Y-Z-M-X 체인간의 차이에서 나오는 값들이 전체 큰 그림에서 티끌만한 일부의 영역인 데이터를 “분석”으로 접근하기에는 어렵지 않을까 싶다. 이래서 더 높은 차원의 모델링이라는 개념이 들어오는 것이다.

가끔 “이런 데이터 어쩌고, 인공지능 어쩌고 하는 이야기들이 그냥 트렌드 용어가 아니라 정말 10년, 20년 후에도 쓰일만한 지식인가요?”라고 묻는 분들이 있다. 집단지성 vs. 통합지성, 대용량 데이터 vs. 행동패턴 데이터, 분석 vs. 모델링 같은 관점에서 바라보면, “코드만 카피하시는 분들께는 아니겠지만, 기초지식을 탄탄히 하시는 분들은 10년, 20년 후가 아니라 그 이후에도 계속 같은 지식을 쓰실 수 있을 겁니다”라고 대답하겠다.

 

 


공지1: 2019년 3월 29일을 끝으로 데이터 사이언스 주제의 포스팅은 종료됩니다. 이 후에는 파비의 스타트업 운영 관계된 포스팅만 월 1회 작성됩니다.

공지2: 위와 같은날을 기준으로 댓글을 모두 삭제합니다. 추후에는 댓글 서비스를 제공하지 않습니다.

제조업체에 근무하시는 분들이 수업에 찾아오거나, 빅데이터 컨설팅을 의뢰하는 경우가 꽤나 있다. 수업에 오신 분들이 수업 막바지에

“그 동안 IT나 Finance쪽 예시는 여러번 들어주셨는데, 제조업에 쓸 부분은 없나요?”

라고 질문하시는 경우가 있는데, 솔직히 말해서 별로 쓸 구석을 많이 못 만났다. 제조업 공정에서 이미지 인식으로 불량을 찾아내는 부분, 설비 노화의 정도를 예측하는 부분 정도가 겪어본 프로젝트이기 때문에 얼핏 떠오르는데, 앞의 예제는 빅데이터 활용이라기 보다는 20년전부터 있었던 불량율 찾는 자동화 시스템이고, 뒤의 예제는 센서 신호 데이터 처리하는 응용통계학 작업이다.

얼마전에 반도체 공정에서 생기는 불량을 잡아낼 수 있는 사람 추천해달라는 요청을 받은 적이 있는데, 반도체가 불량이 어디서 생기는지를 잘 알고 있는 Domain 전문가와 그런 지식을 모델로 바꿀 수 있는 모델러 능력이 결합된 사람이 얼마나 되겠냐고 반문해봤다. 이런 쪽으로 서비스가 있다는 것도 알고, 대기업들이 이미지 인식 쪽으로 석사 이상 공부한 인재들을 영입한 다음에 저런 업무를 주고 있다는 것도 안다. 잘 되고 있을까? 예상대로 직접 만나서 이야기를 들어보면 다들 Domain knowledge가 없어서 답답해하고, 현장에서 잔뼈가 굵으신 분들은 “뭐 딥러닝이라는거 쓰면 잘 된다던데요?”라는 반응들이다. 결국 이미지 인식해서 문제가 있을만한 부분이 얼마나 이상한지만 꼭꼭 집어내는 자동화 프로세스를 만드는 작업을 할 일인데, 인공지능이라고 그러니 알아서 척척척 찾아내 줄 거라고 착각들을 하는건지…

센서 신호 데이터 처리하는 프로젝트 했던 분과 이야기를 나눠보면, 예상대로 신호 데이터를 필터링 하려고 Kalman filter를 쓰고, 거기서 Sequence를 Frequency로 바꾸는 작업을 하셨더라. 오래전부터 있었던 전형적인 통계 모델링 작업의 일부다. 수업 시간에 말했던대로, 같은 아이디어와 방법론으로 센서 데이터만 처리하는게 아니라, IT나 Finance 쪽 데이터도 노이즈 제거 & 패턴 분석 용으로 자주 쓰인다. 냉정하게 말해서 “빅데이터”라는 타이틀을 달면 안 되는 작업들이다.

(Source: 네이버 웹툰, 가우스 전자)

 

빅데이터란?

그동안 줄곧 주장한대로, 빅데이터란 동적인 행동 패턴을 찾을 수 있는데, 이게 한 두명의 데이터가 아니라 수백만명의 데이터인 경우다. 그래서 동적 행동 패턴이 특정 집단에 나타나는 걸 잡아내는 계산을 쓰고, 이게 기존의 통계학 방법론들이 포커스 하던 부분 (수학적인 Elegancy)에서 벗어나 공학도들이 관심을 보이는 부분 (기계적인 패턴 일치율)에 활용되고 있는 맥락으로 이해하면 된다. 필자는 이런 데이터를 집단의 동적 행동 데이터라고 표현한다.

저 위의 웹툰에 나오는 정의는 필자의 관점에서 보면 틀린 정의다. 데이터 크기만 크고, 집단의 동적 행동을 볼 수 있는 데이터는 아니기 때문이다.

 

한국석유공사 – ‘국내유가예보서비스’

방송통신위원회나 한국인터넷진흥원 같은 정부기관들을 보면 빅데이터 시대를 준비해야한다며 빅데이터 사업단과 포럼을 만들어 놨다. 그런 기관 중 한 곳에 재직 중인 분이 수업에 오셔서 자기네 사람 뽑는 이야기도 해 주셨는데, 공학도를 뽑아야하는지, 통계학도를 뽑아야하는지 고민이 많다고 하시더라. 수업을 다 듣고는 이게 통계학이라는 것, 담당 업무가 통계학이라는 걸 깨닫고는 통계학과 출신을 뽑았다는 뒷 이야기를 전해주셨던 기억이 난다.

그런 기관들 중 하나로 한국석유공사가 ‘국내유가예보서비스’를 구축한 사례가 있다. SAS 수요예측 솔루션을 도입해, 국내 정유사와 주유소들의 판매가격을 예측할 수 있는 시스템을 구축했다고 하더라. 외부인은 어떻게 봤을지 모르지만, 필자의 눈에는 해외 원유가격, 국내 정유사의 생산비, 주유소별 마진율을 Input으로해서 주유소별 가격을 Output으로 뽑아내는 전형적인 통계 패키지 적용 사례였다. 아마 그런 데이터를 정리하기 위해서 주유소들더러 매일매일 가격을 시스템에 입력해라고 시키는 작업부터 그런 DB가 제대로 돌아가도록 하는 개발자들이 투입되는 비지니스적, 공돌이적 작업이 뒤에 있기는 했겠지만 말이다.

그런데 요즘 저 서비스 페이지에 들어가보면 “빅데이터 분석 사례”라고 크게 자랑을 해 놨다. 글쎄?

대략 4-5년 전 쯤에 주유소 별 유가를 보여주는 “가격비교” 서비스가 나왔을 때, 빅데이터 시대에는 정보가 잘 공유되어서 주유소들이 가격 책정도 경쟁적이 될 수 밖에 없다고 했던 때가 떠오른다. 그 시절에 비하면 위의 “예보 서비스”는 확실히 더 고급 서비스라고 생각한다. 단순히 숫자만 나열한게 아니라 최소한 (Non-)Linear Regression 모델은 한 번 돌린거니까.

어느 언론지를 보니 이걸 무슨 빅데이터 활용사례라고 하느냐고 비난조의 기사를 내놓으셨던데, 단순 가격비교 사이트가 시장의 수준이었음을 감안하면 충분히 박수를 받을만하지 않나? 문제점을 꼬집자면, 뭔가 대단히 복잡한 작업을 했던 건 아니고, 단순히 데이터 모아다가 SAS 패키지 하나 돌린 수준이면서 시대를 앞서가는 서비스인 것처럼 호들갑을 떠는것 정도랄까?

빅데이터 서비스라고 좀 더 자랑을 하려면, 주유소별 predatory pricing 으로 마진율을 역산해서 주유소들마다 등급을 매기는 작업, 유저들이 쓰고 있는 신용카드의 Cashback 서비스와 연동해서 실질적인 최저 가격 계산 작업 정도는 추가가 되었어야하지 않을까? 좀 더 나아가면, 이동 중에 이 서비스 앱을 켜면 전방 어느 지역에서 주유하면 실직적인 최저 가격이 된다는 추천이 되어야 엄지를 치켜세울 수 있는 서비스가 될 것 같다. (이런 서비스는 카드 결제 정보를 갖고 있는 회사들이면 지금도 충분히 시도해볼 수 있을 것 같다.)

물론 이런 계산 & 매칭 서비스를 내놓는데 딥러닝같은 무거운 계산 알고리즘을 써야할 필요도 없고, 철저하게 기획과 통계학적 모델링의 영역이다. 다 떠나서 이걸 “인공지능”이라고 포장하는 뻘짓은 정말 안 봤으면 좋겠다 ㅋㅋㅋ

 

(Source: 네이버 웹툰, 가우스 전자)

 

Smart factory 도입과 CRM과 빅데이터

“제조 공정에 인공지능을 도입하면 Six sigma보다 훨씬 더 효율적으로 공장이 돌아간다는 뜻인가요?”

가끔 이런 질문을 받으면 무슨 대답을 해야할지 잘 모르겠더라. 아래의 구질구질한 설명말고 한 줄 요약을 해 주실 수 있는 분께서 댓글로 어리석은 필자를 깨우쳐 주셨으면 한다.

솔직히 제조 공정에 별로 관심이 없던지라 처음에는 Six sigma가 뭔지도 몰랐다. 구글링을 해보니 Motorola에서 불량율 제로를 위한 컨설팅 회사스러운 Business process를 만들어 놨더라. 정규분포 기준으로 ±6σ는 0.000000000000003에 해당하는 값이다. 이거랑 인공지능 도입한다는 이야기가 어떻게 관련되는거지?

그런 대화 중에 받은 느낌은, DB에 쌓아놓은 데이터를 활용하면 인간이 직접 개입해서 Six sigma의 여러 작업 단계를 좀 더 효율적으로 진행할 수 있지 않냐는 기대감이었는데, 필자가 이해한 방식의 Six sigma는 공정에서 문제점이 있는 부분만 손을 댈 수 있도록 공정을 세분화하는 작업이었다. 근데…. 공정을 이렇게 운영하는게 당연한거 아닌가…요???

아모레퍼시픽에서 얼마전에 IBM의 컨설팅 지원을 받아 개인맞춤서비스를 만들었다고 한다. (11번가에서 비슷한 사업 중이라고 홍보했던 적도 있다.) 어느 제조사를 찾아갔더니, 그런 데이터가 있으면 아예 제조 공정에서 개인의 수요에 맞는 상품을 만들어낼 수 없냐고 하시더라. 그거랑 Six sigma가 연관있는건가?

아는대로 맥락을 이해해보면, CRM 최적화하는 “인공지능”을 제조공정 세분화에도 적용하면 재고 관리할 가능성이 낮아질만큼 쉽게 잘 팔리는 상품을 바로바로 만들어낼 수 있지 않느냐는 질문이었다는 짐작이 있는데, 화장품이나 간단한 소비재라면 가능할지도 모르겠지만 워낙 제조 공정이 어떻게 돌아가는지 알질 못하니 함부로 말을 못하겠다.

위에 들었던 그 언론지에서는 아모레퍼시픽이 IBM에서 컨설팅 받아서 내 놓은 개인맞춤서비스가 CRM 데이터를 효율적으로 쓰기 위한 (전통적인) 데이터 분류 작업에 지나지 않는데, 이게 무슨 빅데이터 활용 예시냐는 비판조였는데, 그것과 유사한 맥락으로 그 Smart Factory(?)에 대한 대답을 드리고 싶다. 소비자의 Needs를 분석해서 생산에 바로 연결시키겠다는 맥락은 하나도 변한게 없다고. 아마 CRM 데이터 분석이 좀 더 고도화될 수 있어서 좀 더 세분화된 소비자의 Needs를 알아낼 수 있는 가능성이 있다는 점, 소비자 별 특성을 알아내는데 매출액 레벨이 아니라 상품 클릭 레벨 단위까지 좀 더 구체적으로 볼 수 있다는 점을 제외하면 사실 큰 차이를 못 느끼겠다.

그나저나 공장에서 생산할 제품을 퐉퐉퐉~ 바꾸는거 그렇게 쉬운 일 아니지 않나? 원래 불량율이 ±6σ 수준이었던 공정들에 이런 종류의 Variation을 집어넣으면 불량율이 올라갈꺼 같은데…. 뭐 전문가가 아닌 관계로 요기까지.

(Source: 네이버 웹툰, 가우스 전자)

 

나가며 – “빅” + “데이터”  = 특정 집단의 동적 행동 데이터

빅데이터라는 용어에 대한 개념이 잘못 잡혀서인지, 무조건 데이터로 그래프만 그리면 “빅”을 갖다 붙히고 있는 상황이다. 그런 관점에서보면 잠깐 지나가는 비지니스 트렌드 용어로 끝나게 될 것 같다. 그런데, “빅” + “데이터”  = 특정 집단의 동적 행동 데이터 라고 바꿔서 이해하기 시작하면, 왜 DB 설계가 필요하고, 이걸 어떤 맥락에서 활용하게 될지에 대한 포인트가 확확 달라지게 된다.

대형 쇼핑몰 체인 Target에서 10대 소녀의 임신을 부모보다 먼저 알아냈다는 예시처럼 Retail 상품들의 종류가 다양하고, 그 상품들을 구매하는 패턴이 특정 집단에게 공통적으로 발생하는 일부 분야가 아니면 빅데이터 Hype은 사실 큰 쓸모가 없을 확률이 높다. 교보문고는 전자책 판매를 빅데이터 기반으로 하겠다고 나섰다가, 정작 활용한 방식은 아모레퍼시픽 스타일의 CRM이었는지 “별 다를거 없더라”며 예전 방식을 고수하겠다는 식으로 선회했다. 책이라는게 온라인 쇼핑몰만큼 구매가 자주 일어나지 않는 상품이니만큼 Conversion을 찾아서 패턴화하기 굉장히 어려웠을 것이다. 그냥 예전처럼 30대 남성, 20대 여성 같은 타겟팅을 좀 더 세분화하는 수준에서 그쳤을 것이라는게 충분히 짐작된다.

글 첫머리에 들었던 불량품 찾기, 센서 신호로 문제점 찾기 같은 작업이 사실은 이미지 인식이나 데이터 전처리라는 통계적인 모델링 스킬과 Domain Knowledge의 결합이라는 점에서 볼 수 있듯이, 빅데이터 기반 작업이라고 불리는 많은 업무들이 사실은 이전에 했던 일과 크게 다르지 않다. 제조업에서 빅데이터 모델링을 한다고 했을 때 정말 동적 행동 데이터를 갖고 있고, 그걸 활용해서 도움이 되는 회사는 과연 얼마나 될까?

IT나 Finance 데이터 이외에 다른 영역에서 이건 정말 빅데이터라는 느낌을 받은 데이터도 없고, 그걸 어떻게 적용해서 대박(?)을 낼 수 있는지도 잘 모르겠다. 첫째 수백만명의 데이터에서 수십만명씩의 특이 패턴을 분리할 수 있는 수준으로 데이터가 모이는 산업이 IT와 금융시장 이외에 존재하는지에 의문이 있으니까.

제조업에서 쓰겠다는 빅데이터는 혹시 “그런 단어 쓰면 이사진이 좋아하”기 때문이 아닐까 싶다.

소수 (Prime number)가 어떤 규칙을 가지는지, 가장 큰 소수는 얼마인지 등등에 대한 이론 연구를 하는 수학 전공이 있다. 정수론이라고 한다. 수학과 천재들 중에서도 최고들이 도전하는 분야다. 그런 정수론을 자기 평생의 연구 주제로 삼은 장이탕은 베이징대 수학과를 졸업하고, 나이 서른 여섯에 겨우겨우 퍼듀에서 수학 박사 학위 받고나서도 나이 50줄에 들어설 때까지 교수는 커녕 강사자리 하나 못 잡고 마트 캐셔로 살았었다. 그 천재가 쌍둥이 소수 (3과 5, 11과 13등 두 수의 차이가 일정한 소수들의 그룹)가 무한히 존재함을 증명하고, 하버드에서 강연을 한 적이 있었는데, Q&A 시간에 어느 분이 이렇게 질문하더라.

“암호학을 하는 사람 입장에서, 당신의 연구로 앞으로 10년간 암호 체계가 완전히 변할 것 같다는 느낌을 받는다. 그런데 이걸 주변 사람들이 알아듣기 쉽게 설명하기 너무 힘든데, 좀 좋은 아이디어가 있는가?”

보통 사람들은 “그런 2,3,5,7,11 같은 숫자 찾는 것도 연구가 있어?”, “그게 어디 쓰이는거야?”, “그냥 공대 나와서 기계 만드는게 백배 더 효율적인거 아냐?” 라고 할 것이다. 그러나 당신들이 알고 있는 그 공학의 기계 만드는 지식은 모두 수학에 의지하고 있고, 암호학, 슬롯 머신 등등 복잡한 조합으로 기계적인 해독이 불가능하도록 만드는 보안 시스템들은 소수에 규칙이 있다는게 알려지는 순간 원시시대에서 다시 시작해야할 수준으로 어마어마한 지식이다.

참고로, 컴퓨터가 만들어내는 랜덤 데이터는 엄밀히 말하면 랜덤이 아니고 나름대로의 규칙을 따른다. 아니라면 코딩할 때 랜덤 데이터 생성하면서 Seed 정해놓으면 같은 값이 나올 수가 있을까? 이런 약점이 있기 때문에 일본에서는 한동안 동네별 슬롯머신들의 승률 & 패턴을 알아내서 판매하는 잡지도 있었다. (자기들이 실컷 빼먹고 난 다음에 ㅋㅋ) 결국 저런 암호들은 초고난이도의 정수론에 대한 지식을 바탕으로 만들어진다. 기계 만드는 손 기술이 더 인류에게 유용한 지식이라고 판단하시는 분들, 자신만의 세계로 천재들의 연구가 가지는 가치를 함부로 재단하지 말아주셨으면 좋겠다.

아뭏튼, 장이탕 교수님의 그 대답 때문에 아직도 그 날의 Q&A를 생생하게 기억하고 있다.

“사람들은 모르는 이야기를 듣고 이해를 못 하면 자신의 부족함을 탓하는게 아니라, 화를 내더라. 설명하지 않는 걸 추천한다.”

문자로 옮겨놓으니 굉장히 거만해보이는데, 정작 강연 당일은 농담조의, 그렇지만 평생의 연구를 이해 못 해주는 사람들 속에서 좌절했던 천재 수학자의 비애가 느껴지는 말투였었다.

요즘 외부 미팅을 많이 하면서, Neural net 모델을 블랙박스 (Blackbox)라고 주장하는 사람들과 자주 부딪히게 된다. 그런 미팅을 하고 있으면 속이 답답해진다.

“블랙박스란 없습니다. 어떻게 계산되는지 모른다는건 자기가 몰라서 그런거에요. Neural net이 결국은 Logit을 여러개 엮어놓은건데, Logit이 학부시절 배우셨을 회귀분석 식이랑 생긴 형태가 같습니다. 곱하기 계산을 따라가기만하면 다 알 수 있는데, 자기들이 잘 모르는걸 감춘다고 블랙박스라는거에요.”

이런 대화를 할 때, 자기가 잘 몰랐다는 걸 인정하고 물러서는게 아니라, “이건 어떤 학교 교수가 이야기한 내용이다, 너는 교수 아니지 않냐”는 반응부터 시작해서 “나는 무조건 맞다”, “니가 좀 안다고 자랑하는거냐?”는 식의 불편한 표정을 만나게 되면 답답함^2이 된다.

네X버 어느 만화의 댓글을 봤더니 “상대에게 아무리 전달해줘도 변할 가능성이 없으면 더 이상 인생과 감정을 소모하지 않는게 현명하다”고 하던데, 그 장이탕 교수님의 비애 섞인 답변과 오버랩이 퐉~ 되더라. (정작 블랙박스 아니라는 설명은 쌍둥이 소수 무한개 증명과는 비교도 안 될만큼 쉬운 이야기인데도…)

 

1. 블랙박스 vs. 화이트박스

수업 시간에 설명용으로 쓰는 슬라이드 중 하나를 가져와 봤다.

복잡한 줄 알았던 Neural network 계산이 사실은 Logistic regression 몇 개의 결합에 불과하다는 걸 보여주는 슬라이드다. 물론 Neural net을 구성하는 구조, 이걸 응용하는 방식에 따라 다양한 종류의 variation이 생기겠지만, 어쨌건 원리는 크게 변하지 않는다.

수업을 들으신 분들은 알겠지만, 저런 계산 구조를 지탱하기 위해서 어떤 방식으로 컴퓨팅 자원을 활용하고, 계산 효율화를 위해서 어떻게 구조를 수정하는지, 계산 목적에 따라 어떤 타입의 네트워크를 고르는지는 단순한 지식도 아니고, 듣는다고 바로 이해하기도 어렵다는 걸 충분히 공감한다. 하지만, 큰 그림을 하나씩 쪼개보면 Logistic regression 이라는게 눈에 보이고, 그 Logistic regression이 학부 고학년 때 봤을 (쪼끔) 고급 통계학 수업에서 봤던 Linear regression의 응용 버젼인 걸 감안하면, 이걸 블랙박스라고 이야기하는 사람들은 정말 깊이 반성해야한다.

이런 글을 읽고서도 여전히 블랙박스라고 우긴다면, 진짜 “문과” or “코더”라서 저런 Regression을 한번도 해본적이 없거나, 아니면 학부 때 공부를 안 했던 걸 스스로 인증샷 날리는 것 아닌가?

지금도 블랙박스라고 우기고 계신 어느 학교의 교수님, 제가 미팅에서 만났던 어느 개발자가 봤다는 그 글을 쓰신 그 교수님, 지금이라도 글을 내려서 더 이상 쪽팔리는 일이 없으셨으면 좋겠습니다. 당신께서 학부 고학년도 이해할만한 내용도 모르고 쓰신 글 때문에, 연구하느라 고생하는 박사 시절 친구들이 도매금으로 싸잡혀서 무시당하는 걸 보기가 너무 안타깝습니다.

 

2. 연구과제

데이터 사이언스 강의에 학교 연구실에 있다는 학생들이 자주 찾아온다. 박사 연구생부터 석사 들어가서 연구 주제 찾고 있다는 학생, 심지어는 학부 고학년들도 심심찮게 보인다. 이 분들이 학교에서 다들 배우셔야되는 내용일텐데, 왜 외부에서 수업을 들어야겠다는 생각을 하게 되셨을까?

저 위에서 필자가 “깠던” 그 교수님이 특이한 케이스가 아니기 때문이라고 조심스레 짐작해본다.

건축물의 안전성 점검을 지진 측정하듯이 S파, P파 같은거 쏴서 테스트하는게 아니라, 저렴한 센서 몇 개만 설치하고 그 센서들의 정보를 머신러닝으로 처리해서 안전도 여부를 평가할 수 있다며 프로젝트를 땄던 어느 교수님 이야기를 들었다. (학생 당사자 분의 개인 정보 보호를 위해 적용 분야를 약간 바꾸었으니 양해바랍니다. 사실 이런 케이스가 벌써 여러 건 있어서 적용 분야를 바꾸면 자기 이야기처럼 들릴 수강생 분이 많을 것 같기는 하지만…)

  • 처음 수업에 왔을 때만해도, “교수님이 여기서 TensorFlow 쓰는 법 배워와서 적용하라고 하셔서요” 라던 수강생분.
  • 첫 주가 지나고 나니 “그럼 무슨 모델을 쓰는게 좋은건가요? 꼭 딥러닝 안 써도 될 수도 있겠네요?” 라고 질문이 바뀌고
  • 둘째 주가 지나고 나니 “모델을 어떤 걸 쓰느냐가 중요한게 아니네요, 데이터를 어떻게 처리하느냐가 훨씬 더 중요하네요”가 되고,
  • 셋째 주가 지나고 나니 “데이터 전처리가 어떤 모델을 쓰느냐랑 연관되어 있네요, 근데 데이터는 센서를 어디에 설치하느냐로 받는데….”
  • 넷째 주가 지나고 나니 “센서 위치, 데이터 처리, 모델 선정이 전부 다 도메인 지식이 필수인거 같은데, 이건 교수님께 여쭤봐야겠죠?”

수업 끝나고 한 달 쯤 지나고 난 다음에, 뭘해야할지 전혀 감이 잡히질 않는데, 교수님께서 하나도 안 도와주시고, 물어봐도 모르시는거 같고, 메일로 쓰기도 힘들어서 직접 찾아왔다고 연거푸 죄송하다는 말을 하더라. 진짜 안타까워서 아는 만큼 도와줬는데, 필자도 그 분의 전공 분야 지식 없이 데이터 모델링만 하는 사람이라 직접적인 도움이 될 수는 없었다.

왜 이런 이야기를 하느냐?

학교 교수님들이 “머신러닝”이라는 Buzzword를 이용해서 프로젝트를 따지만 정작 본인은 잘 모르는 상태인 경우가 많다는 것도 알고, 수업은 공부하다가 가르치는 상황이고, 그 공부도 통계학 깊이가 얕다보니 제대로 안 된 상태에서 학생들을 방황하게 만드는 경우가 많다는 걸 계속 목격하고 있기 때문이다.

블랙박스라고 언급하는 어느 교수의 글을 봤다는 그 분이 필자에게 우기기를 시전한건, 이런 관점에서 봤을 때 그렇게 놀랄만한 일도 아니다. 지식으로 사람들을 선도해야하는 자리에 계시는 분들이 알지도 못하고 블랙박스라니.

 

나가며 – 사상누각

단순히 데이터로 그래프 그려놓고 “빅데이터 분석”이라고 이름을 다는 신문기사가 은근히 많다. 언젠가 썼던 글처럼 빅데이터가 뭔지에 대한 정의조차도 모르는 상태에서 일단 잘 팔리니까 앞에 “빅”이라는 단어를 붙이고 보는걸로 밖에 안 보인다.

블랙박스라고 우기는 분들도 마찬가지다. 일단 딥러닝이라는 단어, 인공지능이라는 단어가 Buzzword니까, 그런 단어를 이용해서 세일즈를 하지만, 정작 이 계산을 잘 모르니까 그냥 모르는 건 블랙박스라고 퉁치자고 접근하는 것 같다.

친구들과 술자리에서 그런 분들을 “오스트랄로피테쿠스”라고 부른다. 무시하는 격한 표현에 기분 나쁘신가?

“사람들은 모르는 이야기를 듣고 이해를 못 하면 자신의 부족함을 탓하는게 아니라, 화를 내더라. 설명하지 않는 걸 추천한다.”

무시당하고 싶지 않으면 셋(넷) 중 하나를 해야한다.

  • 아는 체를 하지 말거나,
  • 몰랐던 티가 안 나도록 빨리 배우거나,
  • 최소한 모르는 걸 부끄러워 하거나
  • (잘 알고 있는 사람들 눈에 안 띄거나)

단순 이미지 인식, 문자 인식 예제 같은 정형화된 데이터들 말고, 정말 Live 데이터로 모델 만들어보고, 뭔가 부족한 것 같아서 이것저것 고민해본 사람들이라면 누구나 공감할 것이라고 생각한다. 화려해보이는 모델들을 많이 아는게 중요한게 아니라, 통계학이라는 기초 체력이 훨씬 더 중요하다는 걸. 아마 저 위에 나오는 스토리들에 등장하는 공학 교수님들의 문제의 근본 원인은 통계학이라는 기초 체력의 부족일 것이다. Neural net에 Boltzman을 어떻게 활용해서, 계산 알고리즘에 어떤 Monte Carlo를 더 추가해서, 어떤 이미지 인식에서 몇 %의 추가적인 성과를 얻어냈다고 이야기하는 논문을 정리하는 블로깅을 하는게 아니라, 계속해서 수리통계학적인 관점을 강조하는 블로깅을 하는 이유도 여기에 있다. 어차피 기초가 없는 대형 건물은 사상누각에 불과하니까.

아래는 어딘가에서 본 댓글인데, 블랙박스 정도의 하찮은 지식과 급은 다른 이야기지만 어쨌건 이 글 주제랑 참 닮은 것 같아서 긁어왔다. (참고로 필자의 네X버 아이디는 p로 시작하지 않는다. 오해 ㄴㄴ)

 

Criteo라는 리타게팅 광고회사 (유저별 행동에 맞춰 쇼핑몰 노출 상품을 골라주는 광고 상품)에서 Senior Data Scientist로 재직하던 시절, 외부 접촉이 있을 때마다 항상 위에서 “절대로 회사 알고리즘을 상세하게 공개하면 안 된다”는 경고를 받았다. 굳이 공개해야할 때는 Top-line info만 공개해라고 여러번 주의를 들었는데, 회사 그만둔지 1년이 지난 요즘도 여전히 그 모델을 제대로 따라가는 경쟁자가 별로 없는 것과, 모델을 보면서 느꼈던 내공의 깊이(?)를 봤을 때 top line 보다 더 공개해줘도 경쟁자들이 따라가기 쉽지 않을 것 같다(고 생각했었다).

회사 재직 중에 Google의 리마케팅 (매우 유사한 서비스)과 가끔 Head-to-head (H2H)로 맞상대한 적이 있었는데, 적어도 내 기억에는 한번도 H2H에서 져 본적이 없다. H2H는 글로벌 전체에 10명도 안 되는 Data Scientist들끼리 항상 예의주시하며 모니터링했던 업무였는데, 밀릴 것 같으면 꼼수(?)라도 써라고 농담을 들었지만, 맹세컨데 한번도 꼼수(?)를 써 본적이 없었다 ㅋㅋ (그만두고 나온 회사 홍보를 이렇게까지 하다니 ㅎㅎ)

덕분인지는 몰라도, 지난 1년간 이쪽 업계에서 Criteo 모델을 얼마나 알고 있냐고 묻는 헤드 헌터들의 연락이 꽤나 왔었다. 아마 “추천 알고리즘”이라는걸 만드는 회사들이 한계점에 봉착한 상태에서 자신들의 문제를 어떻게 뚫어야할지 내부적인 고민이 많았다는 뜻이겠지. 모르긴 몰라도 일반에 알려진 알고리즘을 카피하는 수준이었거나, 데이터 전처리 & 가공을 매우 조잡하게 하는 상태에서 모델링을 했기 때문일 것이다. 좀 더 냉정하게 이야기하면, 모델링이라는 개념없이, 데이터를 주먹구구식으로 쓰는 기초적인 단계를 못 벗어나고 있기 때문일 것이다고 할 수 있다. (이런게 바로 기술력의 차이다)

(Source: TechCrunch) – Instagram product lead, Julian Gutman

얼마전에 인스타그램이 어떤 기준으로 유저들에게 피드(Feed)를 노출하는지에 대해서 오픈 세미나를 진행했었는데, 내용을 들으면서 여기도 Top-line info만 공개해라는 주의를 많이 들었겠구나 싶더라. 그래도 설명을 들으면서 Criteo와는 다른 방식으로 유저 데이터를 쓰고 있겠다는 생각이 드는 부분이 몇 번 있었는데, 이번 포스팅에 필자 스타일로 수학적인 컨셉에 맞춰 정리해보고 싶다.

 

1. 인스타그램 알고리즘의 “Variable”

인스타그램의 서비스는 장기간 반복적으로 들어오는 유저들에게 새롭고, 재밌는 내용을 계속 보여줘서 그 유저가 장시간 인스타그램을 돌아다니도록 만드는데 있다. 그런데, 각각의 유저들이 서로 “Following”을 하면서 연관관계를 맺고 있고, 그 연관관계 덕분에, 단순히 컨텐츠만 맞춰주는 방식에서 벗어나 유저들로 구성된 네트워크를 만들었겠구나는 포인트가 눈에 보이더라. (Network Theory 또 등장한다 ㅋ)

  1. Interest: 유저의 컨텐츠별 흥미도
  2. Timeliness: 얼마나 최근 컨텐츠인가
  3. Relationship: 얼마나 친한 사람의 피드인가? Friends and family인가?
  4. Frequency: 얼마나 자주 인스타그램을 쓰는 유저인가?
  5. Following: 누구누구를 팔로잉하고 있는가?
  6. Usage: 얼마나 자주, 얼마나 오래 인스타그램을 쓰는 유저인인가?

인스타그램의 Product Lead를 맡고 있는 Julian Gutman이 발표에서 공개한 인스타그램의 피드 선정 기준들이다. 여기서 눈에 확 들어오는 포인트는 역시 3번 Relationship과 5번 Following이다. 쇼핑몰 광고주들에게 주력하는 타겟팅 광고 회사에 있을 때는 고려대상이 아니었던 포인트기 때문이다. 물론 “오~ 3번과 5번을 쓰는구나!”고 끝냈으면 Data Scientist 타이틀 달고 다니기 좀 쪽팔렸을 것이다.

한국와서 “추천 알고리즘” 만든다는 “개발자”들이 만들어놓은 결과물을 보고 필자가 한번도 칭찬을 하지 않았던 이유도 여기에 있다. 이 분들이 모델링을 한번도 해 본적이 없던 분이어서 그렇겠지만, 3번과 5번을 어떻게 활용해야하는지에 대한 “내공”을 거의 갖고 있지 않기 때문이다. (1,2,4,6번은 말할 것도 없다.) 보통 비슷한 사례를 한국에서 보면 얼마나 Feed를 자주 봤는지, 얼마나 Like를 많이 눌렀는지 등으로 단순 계산을해서 Relationship을 “추측”한다. 그리고 5번을 0/1의 Boolean 값으로 입력한다음, 3번에서 구한 값과 가중평균 곱셉을 한다. 굉장히 1차원적이다.

그럼 이걸 2차원, 3차원적으로 쓰려면 어떻게 해야하냐고?

 

2. 유저 네트워크의 구성 – complexity

(Source: ResearchGate)

 

위는 국가별 무역량을 간단한 네트워크로 표현한 그래프다. 인스타그램의 Follower들로 엮은 모델보다 훨씬 더 간단한 네트워크인데도 보면 좀 어지럽다. 그래서 이런 네트워크들을 간단한 행렬로 바꿔쓴다.

(Source: EMBL-EBI)

위와 같은 행렬로 표현하면 Complexity, Transivity, Centrality 등의 주요 정보들을 빠르고 효과적으로 계산할 수 있다. 참고로, 딥러닝이라고 불리는 (Deep) Neural network 모델의 계산 방식도, 비트코인 광풍을 불러왔던 블록체인 모델의 계산도, 모두 위와 같은 행렬로 변환되어서 처리된다.

저 위에 인스타그램에서 주요 변수로 삼는다는 Relationship과 Following 같은 정보가 위의 네트워크를 만들 수 있는 information set이 된다. 센스 있는 사람이라면 2번째의 Directed 같은 그래프가 following 용으로 쓰일 것이고, 3번째의 weighted가 relationship을 표현하는데 쓰인다는 것을 바로 이해할 것이다.

이렇게 그래프를 그려놓으면, (3번째 Network 기준) C, D, E와 G를 잇는 Walk은 3이어서 멀어보이지만, A와 F가 굉장히 친하기 때문에 (둘 사이의 두꺼운 Node) C의 피드가 A에게 노출되는 족족 바로 F에게 노출되고, 그 내용을 또 G가 쉽게 볼 수 있다는 것을 이해하게 된다. 같은 관점에서 B와 G는 Walk이 2 밖에 안 되지만, 정작 B의 피드가 G에게 노출될 확률이 훨씬 낮다는 것을 이해할 수 있다.

 

3. 유저 네트워크의 구성 – centrality

그럼 이 그래프에서 가장 중요한 사람은 누구일까?

3번째 네트워크에서 A가 사망 or 실종하게 되면 G – F (- B)를 잇는 짧은 네트워크 하나만 남는다. 말을 바꾸면 A가 이 네트워크의 핵심적인 존재다. 이걸 Centrality라고 하는데, walk이 1개인 값들만 모아서 계산하는 방식도 있고, walk을 무한대까지 다 고려한 계산 방식도 있다. (뒤의 경우를 직접 계산하려면 행렬을 무한대만큼 곱하면 된다. 단 convergence를 보장하기 위해서 0~1 사이의 가중치를 활용한다.)

무한대까지 고려하는 방식을 Eigenvalue centrality라고 하는데, 이게 (무식하게) 행렬을 무한번 곱해서 얻은 값을 쓰는게 아니라, 그 행렬의 벡터들이 만들어내는 벡터 공간 (Vector Space)이 행렬이 표현해낼 수 있는 모든 가능성이라는 관점에서 출발한다. (무한번 곱하면서 나온 모든 행렬을 합하면 전체 벡터 공간과 일치한다. “이거 다~ 선형대수학 교과서에 있는 내용인거 아시죠?”ㅋㅋㅋ)

Principal Component Analysis (PCA) 에서와 마찬가지로, 벡터 공간을 유지하면서 새롭게 만들어낸 Eigen-vector와 그에 대응하는 Eigen-value 값들이 새로운 축과 좌표값을 상징하고, 굉장히 복잡해 보이는 네트워크도 간략하게 추려서 볼 수 있다. Unsupervised learning이나 데이터 전처리에서 공부했던 그 PCA가 네트워크형 데이터 처리에서도 이렇게 쓰이는 것이다.

(P.S. 1: 이거 구글 검색시 페이지들이 노출되는 방식이기도 하다. 페이지 주소들을 network으로 묶은 다음, eigen centrality를 기준으로 한 index로 노출 순서를 정하는 것이다.)

(P.S. 2: 네트워크가 무한히 팽창한다고 해도 sum(walk)의 평균값은 크게 움직이지 않고, 그 때 walk의 값에 대한 Chernoff bounds라는 개념이 있다. Extended star network 또는 Scale free network를 만들어내려고 하는 블록체인 업그레이드 모델에서 네트워크의 복잡성을 컨트롤하는데 쓰이는 개념이기도 하다.)

 

3.1. Centrality for Group

이런 모델링 작업은 서로간 직간접적인 연결 고리만 따지는데, 사실 여러명이 동시에 어떤 행동을 취하는 경우들 (Synergy effect라고 부른다)을 무시할 수도 없다.

(Source: Wikipedia)

위의 V6, V7, V8이 결합해서 V1과 V2를 잇고 있는 걸 보자. 이중 V8은 아래 v11과 연결되어서 아래와 위를 연결해주는 연결 고리 역할을 하고 있으니 약간 다른 관점에서 볼 수 있지만, V6와 V7은 V8과 함께 팀을 이뤄서만 V1, V2와 연결 관계를 갖는다. 중복이 필요없다면 배제시켜야할 것인데, 반대로 항상 그룹으로만 움직여야한다면 어떻게 처리해야할까? 위의 PCA 작업을 하면 분명히 V6, V7의 Eigenvector는 V8에 포함되어 버리겠지만, 반드시 그룹으로 묶어야한다면 이야기가 달라진다.

쉬운 예제를 들면, 혼자서는 만날 수 없는 사람이지만 우리 팀 사람들 전체 모임과는 굉장히 친하게 지내는 높은 분과의 관계를 생각해보자. 그 분이 우리 팀과 친하게 지내는 이유가 팀의 결과물이 자신의 목표와 관계가 있어서일 뿐, 우리 팀원 각각과는 개인적인 관계를 갖고 싶지 않다면?

이런 네트워크에서 Centrality를 계산할 때는 게임이론에 기반한 Shapley Value를 활용한다. (물론 Shapley value 계산이 쉽지 않기 때문에 특정 network에 적합한 형태로 계산 법을 바꾸는 일이 많다.)

 

나가며 – Network theory를 배워야하는 이유

일전에 모교의 Computer Science 학부 고학년 수업 목록에서 Graph Theory라는 수업을 봤다. Graph가 다양하니 가르치는 주제는 교수들마다 조금씩 다르겠지만, 필자가 수학과에서 들었던 수업은 대부분 Tree model과 Network Theory 위주로 돌아갔었던걸 감안하면, 공대의 같은 수업도 크게 다르지 않을 것이다. 그러나 필자가 한국와서 만난 CS혹은 Math출신의 개발자 중에서 Graph Theory를 제대로 이해하고 있는 분은 (외람되지만) 단 한 분도 없었다.

설령 수업을 들었더라도 단순히 Complexity와 Centrality만 “들어봤다” 수준으로 직장생활을 시작했을 것이다. 요즘 좀 실제 데이터를 쓰면서 가르친다는 수업들 이야기를 들어봐도 기초적인 Network 그리기 연습만하고 끝나거나, Walk, Path, Diameter 같은 기본 개념을 살짝 응용하는정도에서 그치더라. 정작 이걸 Social Network Service에서 어떻게 활용할 수 있을지는 정말 무궁무진한데, 2차원, 3차원으로 쓸 수 있는 경험을 쌓게 해줘야할 수업이 제대로 돌아가질 않았거나, 아니면 아예 학생들이 제대로 배울 생각을 못했던 거겠지.

런던가서 고교 졸업반에 해당하는 학생들에게 경제학을 가르쳐주던 중, 높은 점수를 받았다는 답안지를 보고 충격을 먹었던 적이 있다. 수업에 나오는 개념들을 문제에 적용하면서 생기는 다양한 수학적 도전들을 모두 경제학으로, 실생활의 예제로 풀어서 써 놨더라. “내가 이런 교육을 어릴 때부터 받았었더라면 이렇게 고생하면서 석사공부하고 있지는 않았을텐데”라는 속쓰림을 오랫동안 지울 수 없었다.

추천 알고리즘을 만들겠다는 사용자는 “개발자”라는 사람에게 이걸 만들라고 시키고, 그 분들은 모델링이라는 관점은 거의 배제한채 기계적으로 코드만 갖다붙힌다. 추천 알고리즘을 가르친다는 교육기관에서도 코드 Copy & Paste하고 어떻게 수정하는지를 배우지, 정작 모델이 어떻게 구성되는지는 다루질 않는다. 한국 교육의 특징, 직장의 특징이다. 블록체인 기반의 SNS를 만들어서 컨텐츠를 퍼뜨리는 활동 모두에게 코인을 나눠준다는데, 정작 누구에게 얼마나 배분해주는 시스템을 짜야 시스템이 내부 붕괴하지 않고 돌아가는지 고민했냐고 물어보면 그건 “개발자”가 할 일이란다. 나 원 참~

위에 말했듯이 구글 검색의 노출 기준 중 하나는 Eigen-centrality다. 어떻게 쓰는지 궁금해서 Network Theory와 Network를 행렬로 만든 데이터를 Eigen Decomposition하는 작업과, 그 Eigen vector들로 여러 페이지 검색 데이터를 재구성하는 모델을 만들고 싶은가, 아니면 구글이 만들었다는 코드만 어떻게 좀 구해서 우리 회사 모델에 붙이고 싶은가?

참고로 앞의 작업을 R&D라고 하고, 뒤의 작업을 “도둑질”이라고 한다.

 

 

블록체인 시리즈

Criteo라는 리타게팅 광고회사 (유저별 행동에 맞춰 쇼핑몰 노출 상품을 골라주는 광고 상품)에서 Senior Data Scientist로 재직하던 시절, 외부 접촉이 있을 때마다 항상 위에서 “절대로 회사 알고리즘을 상세하게 공개하면 안 된다”는 경고를 받았다. 굳이 공개해야할 때는 Top-line info만 공개해라고 여러번 주의를 들었는데, 회사 그만둔지 1년이 지난 요즘도 여전히 그 모델을 제대로 따라가는 경쟁자가 별로 없는 것과, 모델을 보면서 느꼈던 내공의 깊이(?)를 봤을 때 top line 보다 더 공개해줘도 경쟁자들이 따라가기 쉽지 않을 것 같다(고 생각했었다).

회사 재직 중에 Google의 리마케팅 (매우 유사한 서비스)과 가끔 Head-to-head (H2H)로 맞상대한 적이 있었는데, 적어도 내 기억에는 한번도 H2H에서 져 본적이 없다. H2H는 글로벌 전체에 10명도 안 되는 Data Scientist들끼리 항상 예의주시하며 모니터링했던 업무였는데, 밀릴 것 같으면 꼼수(?)라도 써라고 농담을 들었지만, 맹세컨데 한번도 꼼수(?)를 써 본적이 없었다 ㅋㅋ (그만두고 나온 회사 홍보를 이렇게까지 하다니 ㅎㅎ)

덕분인지는 몰라도, 지난 1년간 이쪽 업계에서 Criteo 모델을 얼마나 알고 있냐고 묻는 헤드 헌터들의 연락이 꽤나 왔었다. 아마 “추천 알고리즘”이라는걸 만드는 회사들이 한계점에 봉착한 상태에서 자신들의 문제를 어떻게 뚫어야할지 내부적인 고민이 많았다는 뜻이겠지. 모르긴 몰라도 일반에 알려진 알고리즘을 카피하는 수준이었거나, 데이터 전처리 & 가공을 매우 조잡하게 하는 상태에서 모델링을 했기 때문일 것이다. 좀 더 냉정하게 이야기하면, 모델링이라는 개념없이, 데이터를 주먹구구식으로 쓰는 기초적인 단계를 못 벗어나고 있기 때문일 것이다고 할 수 있다. (이런게 바로 기술력의 차이다)

(Source: TechCrunch) – Instagram product lead, Julian Gutman

얼마전에 인스타그램이 어떤 기준으로 유저들에게 피드(Feed)를 노출하는지에 대해서 오픈 세미나를 진행했었는데, 내용을 들으면서 여기도 Top-line info만 공개해라는 주의를 많이 들었겠구나 싶더라. 그래도 설명을 들으면서 Criteo와는 다른 방식으로 유저 데이터를 쓰고 있겠다는 생각이 드는 부분이 몇 번 있었는데, 이번 포스팅에 필자 스타일로 수학적인 컨셉에 맞춰 정리해보고 싶다.

 

1. 인스타그램 알고리즘의 “Variable”

인스타그램의 서비스는 장기간 반복적으로 들어오는 유저들에게 새롭고, 재밌는 내용을 계속 보여줘서 그 유저가 장시간 인스타그램을 돌아다니도록 만드는데 있다. 그런데, 각각의 유저들이 서로 “Following”을 하면서 연관관계를 맺고 있고, 그 연관관계 덕분에, 단순히 컨텐츠만 맞춰주는 방식에서 벗어나 유저들로 구성된 네트워크를 만들었겠구나는 포인트가 눈에 보이더라. (Network Theory 또 등장한다 ㅋ)

  1. Interest: 유저의 컨텐츠별 흥미도
  2. Timeliness: 얼마나 최근 컨텐츠인가
  3. Relationship: 얼마나 친한 사람의 피드인가? Friends and family인가?
  4. Frequency: 얼마나 자주 인스타그램을 쓰는 유저인가?
  5. Following: 누구누구를 팔로잉하고 있는가?
  6. Usage: 얼마나 자주, 얼마나 오래 인스타그램을 쓰는 유저인인가?

인스타그램의 Product Lead를 맡고 있는 Julian Gutman이 발표에서 공개한 인스타그램의 피드 선정 기준들이다. 여기서 눈에 확 들어오는 포인트는 역시 3번 Relationship과 5번 Following이다. 쇼핑몰 광고주들에게 주력하는 타겟팅 광고 회사에 있을 때는 고려대상이 아니었던 포인트기 때문이다. 물론 “오~ 3번과 5번을 쓰는구나!”고 끝냈으면 Data Scientist 타이틀 달고 다니기 좀 쪽팔렸을 것이다.

한국와서 “추천 알고리즘” 만든다는 “개발자”들이 만들어놓은 결과물을 보고 필자가 한번도 칭찬을 하지 않았던 이유도 여기에 있다. 이 분들이 모델링을 한번도 해 본적이 없던 분이어서 그렇겠지만, 3번과 5번을 어떻게 활용해야하는지에 대한 “내공”을 거의 갖고 있지 않기 때문이다. (1,2,4,6번은 말할 것도 없다.) 보통 비슷한 사례를 한국에서 보면 얼마나 Feed를 자주 봤는지, 얼마나 Like를 많이 눌렀는지 등으로 단순 계산을해서 Relationship을 “추측”한다. 그리고 5번을 0/1의 Boolean 값으로 입력한다음, 3번에서 구한 값과 가중평균 곱셉을 한다. 굉장히 1차원적이다.

그럼 이걸 2차원, 3차원적으로 쓰려면 어떻게 해야하냐고?

 

2. 유저 네트워크의 구성 – complexity

(Source: ResearchGate)

 

위는 국가별 무역량을 간단한 네트워크로 표현한 그래프다. 인스타그램의 Follower들로 엮은 모델보다 훨씬 더 간단한 네트워크인데도 보면 좀 어지럽다. 그래서 이런 네트워크들을 간단한 행렬로 바꿔쓴다.

(Source: EMBL-EBI)

위와 같은 행렬로 표현하면 Complexity, Transivity, Centrality 등의 주요 정보들을 빠르고 효과적으로 계산할 수 있다. 참고로, 딥러닝이라고 불리는 (Deep) Neural network 모델의 계산 방식도, 비트코인 광풍을 불러왔던 블록체인 모델의 계산도, 모두 위와 같은 행렬로 변환되어서 처리된다.

저 위에 인스타그램에서 주요 변수로 삼는다는 Relationship과 Following 같은 정보가 위의 네트워크를 만들 수 있는 information set이 된다. 센스 있는 사람이라면 2번째의 Directed 같은 그래프가 following 용으로 쓰일 것이고, 3번째의 weighted가 relationship을 표현하는데 쓰인다는 것을 바로 이해할 것이다.

이렇게 그래프를 그려놓으면, (3번째 Network 기준) C, D, E와 G를 잇는 Walk은 3이어서 멀어보이지만, A와 F가 굉장히 친하기 때문에 (둘 사이의 두꺼운 Node) C의 피드가 A에게 노출되는 족족 바로 F에게 노출되고, 그 내용을 또 G가 쉽게 볼 수 있다는 것을 이해하게 된다. 같은 관점에서 B와 G는 Walk이 2 밖에 안 되지만, 정작 B의 피드가 G에게 노출될 확률이 훨씬 낮다는 것을 이해할 수 있다.

 

3. 유저 네트워크의 구성 – centrality

그럼 이 그래프에서 가장 중요한 사람은 누구일까?

3번째 네트워크에서 A가 사망 or 실종하게 되면 G – F (- B)를 잇는 짧은 네트워크 하나만 남는다. 말을 바꾸면 A가 이 네트워크의 핵심적인 존재다. 이걸 Centrality라고 하는데, walk이 1개인 값들만 모아서 계산하는 방식도 있고, walk을 무한대까지 다 고려한 계산 방식도 있다. (뒤의 경우를 직접 계산하려면 행렬을 무한대만큼 곱하면 된다. 단 convergence를 보장하기 위해서 0~1 사이의 가중치를 활용한다.)

무한대까지 고려하는 방식을 Eigenvalue centrality라고 하는데, 이게 (무식하게) 행렬을 무한번 곱해서 얻은 값을 쓰는게 아니라, 그 행렬의 벡터들이 만들어내는 벡터 공간 (Vector Space)이 행렬이 표현해낼 수 있는 모든 가능성이라는 관점에서 출발한다. (무한번 곱하면서 나온 모든 행렬을 합하면 전체 벡터 공간과 일치한다. “이거 다~ 선형대수학 교과서에 있는 내용인거 아시죠?”ㅋㅋㅋ)

Principal Component Analysis (PCA) 에서와 마찬가지로, 벡터 공간을 유지하면서 새롭게 만들어낸 Eigen-vector와 그에 대응하는 Eigen-value 값들이 새로운 축과 좌표값을 상징하고, 굉장히 복잡해 보이는 네트워크도 간략하게 추려서 볼 수 있다. Unsupervised learning이나 데이터 전처리에서 공부했던 그 PCA가 네트워크형 데이터 처리에서도 이렇게 쓰이는 것이다.

(P.S. 1: 이거 구글 검색시 페이지들이 노출되는 방식이기도 하다. 페이지 주소들을 network으로 묶은 다음, eigen centrality를 기준으로 한 index로 노출 순서를 정하는 것이다.)

(P.S. 2: 네트워크가 무한히 팽창한다고 해도 sum(walk)의 평균값은 크게 움직이지 않고, 그 때 walk의 값에 대한 Chernoff bounds라는 개념이 있다. Extended star network 또는 Scale free network를 만들어내려고 하는 블록체인 업그레이드 모델에서 네트워크의 복잡성을 컨트롤하는데 쓰이는 개념이기도 하다.)

 

3.1. Centrality for Group

이런 모델링 작업은 서로간 직간접적인 연결 고리만 따지는데, 사실 여러명이 동시에 어떤 행동을 취하는 경우들 (Synergy effect라고 부른다)을 무시할 수도 없다.

(Source: Wikipedia)

위의 V6, V7, V8이 결합해서 V1과 V2를 잇고 있는 걸 보자. 이중 V8은 아래 v11과 연결되어서 아래와 위를 연결해주는 연결 고리 역할을 하고 있으니 약간 다른 관점에서 볼 수 있지만, V6와 V7은 V8과 함께 팀을 이뤄서만 V1, V2와 연결 관계를 갖는다. 중복이 필요없다면 배제시켜야할 것인데, 반대로 항상 그룹으로만 움직여야한다면 어떻게 처리해야할까? 위의 PCA 작업을 하면 분명히 V6, V7의 Eigenvector는 V8에 포함되어 버리겠지만, 반드시 그룹으로 묶어야한다면 이야기가 달라진다.

쉬운 예제를 들면, 혼자서는 만날 수 없는 사람이지만 우리 팀 사람들 전체 모임과는 굉장히 친하게 지내는 높은 분과의 관계를 생각해보자. 그 분이 우리 팀과 친하게 지내는 이유가 팀의 결과물이 자신의 목표와 관계가 있어서일 뿐, 우리 팀원 각각과는 개인적인 관계를 갖고 싶지 않다면?

이런 네트워크에서 Centrality를 계산할 때는 게임이론에 기반한 Shapley Value를 활용한다. (물론 Shapley value 계산이 쉽지 않기 때문에 특정 network에 적합한 형태로 계산 법을 바꾸는 일이 많다.)

 

나가며 – Network theory를 배워야하는 이유

일전에 모교의 Computer Science 학부 고학년 수업 목록에서 Graph Theory라는 수업을 봤다. Graph가 다양하니 가르치는 주제는 교수들마다 조금씩 다르겠지만, 필자가 수학과에서 들었던 수업은 대부분 Tree model과 Network Theory 위주로 돌아갔었던걸 감안하면, 공대의 같은 수업도 크게 다르지 않을 것이다. 그러나 필자가 한국와서 만난 CS혹은 Math출신의 개발자 중에서 Graph Theory를 제대로 이해하고 있는 분은 (외람되지만) 단 한 분도 없었다.

설령 수업을 들었더라도 단순히 Complexity와 Centrality만 “들어봤다” 수준으로 직장생활을 시작했을 것이다. 요즘 좀 실제 데이터를 쓰면서 가르친다는 수업들 이야기를 들어봐도 기초적인 Network 그리기 연습만하고 끝나거나, Walk, Path, Diameter 같은 기본 개념을 살짝 응용하는정도에서 그치더라. 정작 이걸 Social Network Service에서 어떻게 활용할 수 있을지는 정말 무궁무진한데, 2차원, 3차원으로 쓸 수 있는 경험을 쌓게 해줘야할 수업이 제대로 돌아가질 않았거나, 아니면 아예 학생들이 제대로 배울 생각을 못했던 거겠지.

런던가서 고교 졸업반에 해당하는 학생들에게 경제학을 가르쳐주던 중, 높은 점수를 받았다는 답안지를 보고 충격을 먹었던 적이 있다. 수업에 나오는 개념들을 문제에 적용하면서 생기는 다양한 수학적 도전들을 모두 경제학으로, 실생활의 예제로 풀어서 써 놨더라. “내가 이런 교육을 어릴 때부터 받았었더라면 이렇게 고생하면서 석사공부하고 있지는 않았을텐데”라는 속쓰림을 오랫동안 지울 수 없었다.

추천 알고리즘을 만들겠다는 사용자는 “개발자”라는 사람에게 이걸 만들라고 시키고, 그 분들은 모델링이라는 관점은 거의 배제한채 기계적으로 코드만 갖다붙힌다. 추천 알고리즘을 가르친다는 교육기관에서도 코드 Copy & Paste하고 어떻게 수정하는지를 배우지, 정작 모델이 어떻게 구성되는지는 다루질 않는다. 한국 교육의 특징, 직장의 특징이다. 블록체인 기반의 SNS를 만들어서 컨텐츠를 퍼뜨리는 활동 모두에게 코인을 나눠준다는데, 정작 누구에게 얼마나 배분해주는 시스템을 짜야 시스템이 내부 붕괴하지 않고 돌아가는지 고민했냐고 물어보면 그건 “개발자”가 할 일이란다. 나 원 참~

위에 말했듯이 구글 검색의 노출 기준 중 하나는 Eigen-centrality다. 어떻게 쓰는지 궁금해서 Network Theory와 Network를 행렬로 만든 데이터를 Eigen Decomposition하는 작업과, 그 Eigen vector들로 여러 페이지 검색 데이터를 재구성하는 모델을 만들고 싶은가, 아니면 구글이 만들었다는 코드만 어떻게 좀 구해서 우리 회사 모델에 붙이고 싶은가?

참고로 앞의 작업을 R&D라고 하고, 뒤의 작업을 “도둑질”이라고 한다.

 

국내에서 데이터 사이언티스트로 성장하고 싶으면 어떤 커리어를 밟아야할까에 대한 질문을 많이 받는다. 개발자들이 Data Engineer쪽 커리어를 밟거나, BI들이 Data Analyst쪽 커리어로 나가는 건 이미 여러번 이야기를 했는데, 정작 Data Scientist로 성장하기 위해 한국에서 어떤 커리어를 밟아야할까에 대한 고민을 깊게 해 본적은 없었던 것 같다. Engineer나 Analyst는 학부 출신들이 전공만 맞다면 충분히 도전할 수 있는 영역이기 때문에 좀 더 쉽게 이야기할 수 있었던 것 같은데, Scientist쪽은 이름에서 보여주고 필요한 스킬셋에서 나타나듯 학부 전공만으로는 좀 부족하지 않나는 생각을 했기 때문인 것 같다.

덕분인지 모르지만, 한국 시장에 제대로 Data Science를 하는 직장을 만나본 적이 별로 없었다. 인공지능 랩이라고 이름 달아놓고는 정작 TensorFlow 어떻게 쓰는지 코드만 열심히 복붙하고 있는 곳도 봤고, 주먹구구식으로 구색만 맞춰놓고는 머신러닝 도입했다고 우기는 곳도 있었고, 스타트업 레벨로 내려오면 개발자들만 앉혀놓고 R&D 팀이라고 이름을 달더라. 그 중 어느 온라인 광고 회사는 광고 성과 분석을 위한 “인공지능 팀”의 서비스를 내세우는데 모델링에 대한 아이디어는 전혀없는 Last Click Attribution을 쓰고 있는 것도 봤다.

쉽게 말해서, 대기업을 가면 된다, 판교에 있는 대형 IT회사들에 가면 된다, 대형 스타트업을 가면 된다, 외국계 회사를 가면 된다는 식의 일반론이 먹힐만한 상황은 아닌 것 같다. 실리콘 밸리라고해서 딱히 상황이 다르지는 않다. 일전에 필자의 경험을 소개한대로 Correlation 구하는 공식도 모르는 사람들이 데이터 팀장을 하고 있는 경우도 많고, 요즘은 좀 상황이 나아졌지만 여전히 짬밥이 높은 데이터 엔지니어에게 데이터 사이언스 팀장을 시켜서 팀내 커뮤니케이션이 힘든 경우도 많다.

(Source: 매일경제신문)

시장이 좀 더 성숙해서 데이터 사이언스에 대해서 제대로 알고 있는 사람들이 팀장 이상 레벨로 자리잡기까지 국내외의 많은 회사들이 데이터 엔지니어 – 데이터 애널리스트 – 데이터 사이언티스트 를 뭉뚱그려놓고 불안한 동거를 시킬 수 밖에 없을 것이다. 너도나도 DB를 만들고 제대로 사업을 해보겠다고 나서는 마당이니 언젠가는 팀이 분리되면서 문제점이 해결되겠지만, 그 전에 구직자 입장에서 “괜찮은 자리”를 찾아가기란 참 쉽지 않다.

개발자 커뮤니티에서 커리어를 어떻게 쌓아야하는지, 어떤 직장을 찾아가야하는지에 대한 글을 본 적이 있는데, 데이터 사이언티스트에게도 비슷한 맥락이 많아 보여서 몇 가지 포인트를 소개한다.

 

20대 CTO가 있으면 가지마라

정확하게는 20대가 포인트가 아니라, 실력과 경험없는 보스 밑에 들어가지 마라는 말일 것이다. 20대 중후반의 개발자들이 만든 스타트업을 본 적이 있었는데, 뭔가 대학 동아리 같은 느낌을 받았었다. 갖고 있다고 주장하는 기술의 난이도는 굉장히 낮고, 어디서 오픈 소스 코드 긁어와놓고는 그걸 기술이라고 포장하는데, 새로 사람 뽑으려니 눈치 빠른 개발자들이 금방금방 도망가더라. 당연하겠지.

데이터 사이언티스트도 마찬가지라고 생각한다. 실력있는 Chief Data Scientist 를 찾아가는게 제일 중요하다. 어떤 비지니스에 뭘 적용했다, 무슨 모델을 만들었다는 말들은 그 사업을 깊게 알지 못하면 잘 따라갈 수가 없으니까, 구직자라면 그냥 기본적인 걸 보는게 맞지 않을까 싶다. 필자가 Correlation 공식도 모르는 보스에게 학을 떼고 도망나갔던 것처럼, 보스가 될 사람이 얼마나 수학, 통계학, 머신러닝 같은 기본 지식을 잘 갖추고 있는지에 대해서 최대한 많은 정보를 모아라. 면접 때 지원자와 10분만 대화해봐도 그 사람의 깊이를 알 수 있는 것과 마찬가지로, 본인이 어느정도 실력을 갖추고 나면 면접관이 어느 정도의 사람인지도 쉽게 알아낼 수가 있다.

물론 큰 회사, 명성이 있는 회사를 가면 20대 중후반이 Chief 타이틀을 달고 있는 경우가 없겠지만, 큰 조직은 많은 경우에 학벌과 경력만 화려하지 정작 실력은 없는 사람이 앉은 경우가 많다. 대기업가면 부장님 김장 도와주고, 등산 같이 가줘야 한다고 농담하던데, 그런 보스를 피하는 건 운일까, 실력일까? 용기있게 실력있는 보스가 있는 작은 회사 (or 심지어 스타트업)에 가는 경우도 종종 보는데, 그런 위험부담까지 해야하는지는 잘 모르겠다.

 

CEO가 비지니스 도메인 전문가인가를 봐라

대기업의 기획이나 스타트업의 비지니스 모델을 보면 그 회사의 깊이(?)라는게 보인다. 좀 미안한 말이지만, 대부분은 굉장히 피상적이다. 그나마 남들이 해본적이 없는 내용이면 다행이고, 아마도 남들에게 쉽게 카피당할 수 밖에 없는 가벼운 사업 모델일 것이라고 생각한다. VC들이 스타트업 CEO의 학벌과 업력을 그렇게 민감하게 보는 것도, 단순히 아이디어만 갖고 사업하는게 아니라, 예상가능한 문제들을 얼마나 꼼꼼하게 고민해봤는지, 현재 비지니스를 어떻게 바꿀려는 철학이 담겨있는지에 대한 고민이 묻어나오는 사업 모델에 투자를 하고 싶기 때문일 것이다.

개발자나 데이터 사이언티스트나 자신이 갖고 있는 핵심 스킬을 각각의 비지니스에 맞게 적용하는 업무를 하는 사람들이다. 단순한 사업 모델에 그런 스킬을 적용하는 것은 쉽다. 그러나 인생의 긴 커리어를 쌓는다고 했을 때, 그런 가벼운 프로젝트들은 인생에 큰 도움이 안 된다. 업력이 깊은 사람들이 신사업 모델을 적용하기 위해서 했던 여러가지 고민들을 뒤따라가며 내 핵심 스킬을 적용하는 경험을 해봐야 내가 배웠던 내용, 익혔던 내용이 이런 방식으로 사업에 활용되는구나는 큰 그림을 그릴 수 있게 된다. 본인의 실력도 덩달아서 늘겠지.

예전에 모 대기업 사내 벤쳐 팀원 4명이 일본에가서 2년 동안 사업을 시도하다가 결국 “말아먹었다”는 술자리 푸념을 들은 적이 있는데, 그 4명은 자기들이 들어가는 사업 분야에 대해서 2년 고생을 해 놓고도 알고 있는게 거의 없더라. 망할 수 밖에 없었다고 생각했었다. 한국에서 온라인 광고업으로 성장한 스타트업 Tech팀장들이 비지니스를 어떻게 확장할지에 대한 PT를 하는 걸 보고, 전 직장의 세일즈 팀장이 “저게 무슨 타게팅 광고냐? 10년전에 하던 연령, 성별 맞춰서 광고하던거 이름만 바꾼거 아냐?”라고 조소하는 걸 들었던 기억이 난다. 세일즈에게 무시당하는 “기술”을 가진 Tech팀장/Data Science 팀장이 되고 싶으신가?

 

대기업, 특히 SI업에 있지 마라 + 돈만 보고 움직이지 마라

필자의 눈에 개발자들에게 SI업 직장 경력은 무덤같은거다. 데이터 사이언스 영역에서 가장 비슷한 비지니스가 “데이터 컨설팅”일텐데, 시장이 어떻게 데이터를 쓰고 있다는 감을 잡는데는 좋을지 몰라도, 결국 고만고만한 테크닉들만 여러번 쓰다가 갈려나갈 것이다. (가까운 VC께서 “갈아만든 배”가 된다고 하시더라 ㅎㅎ)

필자도 사업 초기에 돈 좀 만져보겠다고 여러 회사에 “데이터 컨설팅” 이야기를 했었는데, SI성 사업으로 단순하게 접근하고, DB도 제대로 구축되어 있지 않은 상태에서 3달 안에 추천 알고리즘 적용까지 마무리를 해달라는 요구를 하는 경우를 여러번 봤다. 당신들에게 컨설팅 업무를 맡기는 대기업 담당자들은 당신의 지식을 이용하려고 할 뿐이지, 정작 당신이 한 단계 더 성장하도록 도와주지 않는다. 정말 하고 싶으시면 경력 좀 쌓고 나이먹은 다음에 솔루션 시장에 진입하시는 걸 강추한다. 멍청한 사람들은 당신의 기술이 얼마나 고급 기술인지 이해를 못하기 때문에 절대로 큰 돈을 쓰려고 하지 않을 것이다. 그런 업력과 내공을 쌓기 전엔 당신을 “싸게 베껴먹을”려고 하는 갑질 대마왕(but no knowledge)들에게서 스트레스만 받고, 시간만 버리고, 실력은 정체될 듯.

10년 전, 학부 졸업하던 시절에 글로벌 전략 컨설팅 회사 바람에 휩쓸려 갔던 학부 친구들이 이제와서 공통적으로 겪는 문제는, 컨설팅만 했지 정작 사업 운영을 안 해봐서 그 사업이 어떻게 돌아가는지 아는게 거의 없다는 거다. SI성 개발, SI성 데이터 컨설팅도 결국에는 같은 문제에 봉착할 수 밖에 없다. 실제로 글로벌 전략 컨설팅 회사 경력에 미국 탑 MBA를 졸업한 친구 하나가 스타트업을 세우고 “말아먹는”걸 옆에서 조용히 지켜봤던 다른 친구가 이렇게 혹평하더라. “컨설팅, MBA 같은 곳은 인재를 외화내빈으로 만드는 것 같다.”

 

유행하는 기술을 따라가지 마라 + 핵심에 더 집중해라

개발자들에게 블록체인 같은거, 머신러닝 같은거에 현혹되어서 따라가지 마라고 하시더라. 솔직히 좀 심하게 공감했었다. 개발자들이 수학, 통계학을 제대로 알고 있는 것도 아니고, 그냥 코드만 복붙해서 이런 작업을 하고 있기 때문에 꾸준히 비판(?)를 해왔는데, 어차피 기술은 도태되고 도메인은 급변한다면서 지금 배운 TensorFlow 코딩 방법을 3년 후에도 계속 쓸 수 있을 것이라는 기대는 안 하는게 좋다고 정리를 하시던데 속이 시원했다 ㅋㅋ

데이터 사이언티스트들에게도 똑같은 말을 전해주고 싶다. “Hadoop을 쓰면 빨리 처리가 된다”, “Spark를 쓰면 R과 연동하기 좋다” 같은 표현들, 신기술이라는 것들만 열심히 받아적기 바쁜 사람이 되지말고, 그런 보스가 있는 회사는 빨리 떠나라고. 본인이 수학과 통계학으로 단단한 내공을 갖추고 있으면 굳이 그런 트렌드에만 현혹되어 있을 필요가 없다. 새로운 기술이라는 건, 기존의 문제를 해결하기 위해서 수학과 통계학을 적절하게 결합해서 만든 제품이다. 원리를 이해하고, 내 비지니스에 어떻게 적용할지 고민해서 취사선택을 할 줄 아는 보스를 만나야한다. 당연히 본인도 그런 실력을 갖추고 있어야 그런 보스같은 사람으로 성장할 수 있다.

(Source: okky.kr)

위는 미적분 공부를 해야하나는 어느 초짜 개발자의 질문에 대한 답변이다. 피상적인 기술만 따라가다보면 “대충 보면 해먹을 수 있는 분야”는 줄어들 수 밖에 없다. 새로운게 계속 나올텐데, 기초가 튼튼하지 않다면 어떻게 될까? 결국 시장에서 조기퇴출될 것이다.

굳이 뭔가를 배워야할 것 같다, 이렇게 있어서는 안 될 것 같다는 생각이 들면, 남이 안 하는걸 해라고 권유하시던데, 필자도 생각이 똑같다. 연구실에서 아무도 안 하던 시뮬레이션, 패널 데이터, 네트워크 이론 덕택에 머신러닝, 딥러닝, 블록체인을 대충 보고 바로 이해할 수 있게 되었다. (그들이 틀린 부분도 지적할 수 있는 수업을 하게된 것도 같은 이유다.) 같이 연구실에서 Stochastic calculus로 머리를 쥐어짜던 친구들이 이제와서 필자가 했던 수학을 할 생각을 하면 얼마나 까마득할까?

 

나가며 – 보스들에게

쓰다보니 개발자나 데이터 사이언스 커뮤니티가 비슷한 구석이 참 많은 것 같다. 그 중에서 가장 크게 비슷한 부분은 노동 시장내 수요 – 공급 구조가 아닐까 싶다. 자리는 엄청나게 많은데, 대부분은 SI성 일회용 자리거나, 더 환경이 안 좋은 곳들이 수두룩하다. 그리고 실력있는 사람들은 거의 없다. 덕분에 이직도 (상대적으로) 쉽다. 또 그 직군 사람들끼리 상당히 좁은 커뮤니티가 구성되어 있고, 항상 여러가지 정보를 주고 받게 된다. 실력이 없으면 소문이 빠르게 날 수 밖에 없다.

어떻게 데이터 사이언티스트 직장을 찾아야하는지에 대한 글을 마무리 하기 전에, 데이터 사이언티스트가 들어오고 싶도록 만들려면 어떻게 해야할지 사용자나 팀장 이상의 고위직들에게 짧은 고언을 해보고 싶다. 데이터로 뭔가를 찾아내는 작업은 요술봉도 아니고, 데이터가 없으면 아무것도 못한다. 데이터 엔지니어들 팀을 제대로 만들고, DB라도 제대로 구성한 다음에 통계학 내공이 쌓인 데이터 사이언티스트를 찾으셔야 한다. 데이터 사이언티스트는 DB 만드는 것부터 통계학 모델링까지 모든 업무를 다 하는 Full Stack 개발자가 아니다. 필자도 DB만들어봤지만, 이건 전문가가 따로 있는 분야더라. 모델링이 따로 전문가가 있는 것처럼.

그리고, 현재 시장 상황상 열에 아홉은 당신들보다 더 똑똑한 사람이 부하직원으로 들어가게 될텐데 제대로 대접해주셔야 한다. 학부 4학년 때, 어느 글로벌 전략 컨설팅 회사 인턴으로 있던 시절, 이사님이 그러시더라. 똑똑한 애들을 밑에 두고 쓰려면 본인이 아주 똑똑해서 “나를 따르라~”고 할 수 있거나, 사회적 자본이 많아서 많은 기회를 줄 수 있거나, 이도저도 아니면 금전적인 보상이라도 후하게 해 줘야한다고. 필자는 그 다음날 그 인턴쉽을 그만뒀었다.

전편 링크

Google Analytics (GA)로 웹사이트 트래픽을 계속 모니터링 하는 중에, 갑자기 미국에서 어느 특정 페이지로 유입 숫자가 확 늘어난 것을 발견했다. 누군가 pabii.co 을 링크를 걸어놓은 모양인데, 미국에서 굳이 한국어로 된 블로그를 링크를 걸어야할 이유가 있나 싶어서 Referrer (특정 페이지 유입 직전 페이지)를 확인해봤더니, missycoupons.com 이라는 웹페이지였다.

미주 한인 여성 분들의 모임이던데, 통계나 데이터사이언스 하는 분들에게 공부하기 힘들다고 푸념(?)하는 글에 필자의 <데이터 사이언스 석사 – 이렇게 돌아간다> 는 글 링크를 누군가 댓글로 달아놓으셨더라. 뭐가 필요한지, 어떻게 접근해야하는지, 졸업하고 뭘 하게 되는지 등등에 대한 질문에 대한 답글 중에 “정보도 많고 유익”하다고 한 마디 덧달아 놓으셨던데, 정말로 정보도 많고 유익(?)한지는 모르겠지만…

사실 데이터 사이언스 석사 지원하고 싶다, 혹은 유사한 석사 프로그램을 졸업했는데 커리어에 어떻게 적용할지 모르겠다, 어떤 영역이 겹치고, 부족한 부분은 어떻게 준비하면 될까에 대한 질문들을 참 많이 받는다. 그 중에는 저 미주 한인 여성 커뮤니티의 글처럼 약간 하소연스러운 메일들도 있고, 또 정말 아무것도 몰라서 답답하니 그냥 막 던지듯이 질문하는 글도 있고, 또 정말 잘 준비된 분인데 데이터 사이언스 석사하려면 더 뭘 준비해야되냐고 묻는 겸손한 분들도 있다.

비슷한 질문을 하시는 분들이 많으니 이번 기회에 블로그에 짧게나마 한번 쯤 그동안의 답변들을 정리해보자.

 

1. 데이터 사이언스 석사 Admission

다른 글에서도 여러차례 언급했지만, 미쿡에서 석사 프로그램은 박사를 위한 전초전이 아니라, 취업을 위한 일종의 취업 사관학교 같은 방식으로 운영된다. 따라서 졸업생이 얼마나 연봉이 높은지, 어떤 종류의 직장을 찾았는지, 그래서 후배들에게 어떤 네트워크를 제공해줄 수 있는지가 석사 프로그램의 랭킹을 사실상 결정짓는다고 봐야한다.

이걸 누구보다도 잘 알고 있을 Admission Committee가 어떤 학생들을 제일 원할까? 미국에서 좋은 직장을 찾을 수 있는 학생들을 제일 먼저 뽑고 싶지 않을까? 그럼 미국의 좋은 직장들은 어떤 학생들을 원할까?

당연히 미국인이고, 미국에서 좋은 학교 학부를 나왔고, 네트워크가 빠방할 것 같은 사람, 면접을 쉽게 통과할 수 있을 것 같은 사람을 우선으로 뽑고 싶을 것이다.

일단 외국인이면 후순위로 밀린다는 걸 생각하면, 그나마 자기나라 출신들 네트워크를 잘 활용할 수 있는 인도계와 중국계아 아니면 힘들고, 영어 실력이 안 좋아 보인다면 (특히 학부를 미국에서 안 했다면) 더더욱 힘들 것이다. 연구해야하는 박사라면 영어 실력이 좀 덜 중요할지 몰라도, 취업해야하는 석사라면 영어로 의사소통이 전혀 문제가 없는 수준까지는 올라가야한다.

면접을 쉽게 통과할 수 있는 사람은 어떤 사람일까? 학부 시절에 비슷한 전공을 했고, 비슷한 종류의 직장 경험이나 프로젝트 경험이 있어서 면접 때 서류 광탈을 안 당할 것 같은 사람을 뽑아야하지 않을까?

혹시나 필자에게 데이터 사이언스 석사가고 싶다고 메일 쓰실 분들은 Admission Committee가 보기에 자기에게 무슨 강점이 있고, 무슨 약점이 있는지 좀 정리된 메일을 써 주시면 좋겠다. 항상 도전하는 사람들을 응원하고 싶지만, 도전할 준비가 안 된 상태에서 무모한 시도를 하는 것까지 응원해 줄 생각은 없다. 준비가 안 된 상태라면 쓰린 이야기를 듣고 스스로를 갈고 닦거나, 아니면 깔끔하게 포기하고 딴 길을 찾아야하지 않겠나?

 

2. 지원 준비

직군과는 별 관련없는 석사 프로그램인 MBA부터, 구체적으로 특정 직군을 위한 직업 훈련을 잘 시켜주는 각 전공별 석사 프로그램까지, 모든 프로그램들은 1학년이 끝나면 여름방학동안 학생들이 인턴쉽을 찾아가기를 원한다. 그리고 그 인턴쉽은 학교 입학하는 순간부터 찾아야하고, 그 해 겨울이 지나고 2학기가 시작하면 사실상 모든 인턴쉽은 자리가 꽉 찬다.

왜 석사 지원에 필요한 준비 이야기를 하는 섹션에서 인턴쉽 이야기를 하냐고? 석사 프로그램 갓 들어온 애들이 갖고 있는 스킬셋들은 석사 프로그램 1-2달 동안 배운 내용일까? 아니면 학부 때 배운 내용, 석사 들어오기 전에 다녔던 직장에서 배운 내용일까?

데이터 사이언스 석사라고 해서 특별히 다를 것은 없다. 석사 들어가서 배울 내용들을 이미 다 알고 있어서 업무에 바로 투입될 수 있는 초특급 인재라는 시그널을 줄 수 없다면 (그러면 석사 왜 들어가는거지? ㅋ), 그런 사람들과 최대한 비슷하게 보일 수 있도록 자기 자신을 꾸미는게 진짜 지원 준비라고 생각한다.

어떤 인도인은 학부 졸업하던 학기에 데이터 사이언스 관련 블로그를 만들어서, 석사 학위 중에 배우는 내용들을 자기 나름대로 소화하고 정리하는 블로깅을 꾸준히 하고, 그걸로 취업 면접에 활용하는 경우도 봤다.

웃긴 이야기지만, 석사 어드미션을 받는 순간, 이미 당신의 진로는 절반 쯤 결정되어 있다. 런던에서 경제학 석사 다니던 시절, 유럽인 동기 중 하나는 9월 개강 전에 이미 갈 직장이 결정되어 있었다. 필자는 1년간의 성적으로 박사 어드미션에 활용한다고 머리가 터지게 공부했고, 또 누군가는 열심히 직장을 찾아다니고 있었는데, 그 친구는 원하는 공부하겠답시고 여기저기 강연회 쫓아다니고, 들어갈 회사 사람들과 네트워킹 자리에만 열심히 참석하더라.

그 땐 그 친구가 참 부럽기도했고, 시샘도 났지만, 가만 생각해보니 그 친구는 이미 입학 전에 지원 준비가 넘칠만큼 완벽하게 됐던 친구였던 것 같다. 돌이켜 생각해보면, 진정한 지원 준비란 그 친구처럼 될 준비를 갖추는 것이다.

 

3. 필요한 수학, 통계학, 코딩

필자의 블로그에 꾸준하게 수학과 통계학을 강조하고, 코딩은 어느 수준까지만 하면 된다는 식으로 폄하(?)하는 글을 쓰고 있지만, 정작 사람 뽑겠다고 면접을 보고, 수업 교실에 가보면 수학, 통계학은 말할 것도 없고, 코딩도 제대로 못 하는 상태인 사람들이 대부분이다. 도대체 뭐가 어떻게 부족하니 얼마나 채워야한다고 말하기가 참 뭣한데, 이 질문에 대한 대답은 졸업하고 어떤 종류의 직장을 찾고 싶냐는 반문으로 답변을 시작하는 편이 맞을 것 같다.

데이터 사이언티스트라는게 그냥 하나의 직업이 아니라, 사실은 데이터 엔지니어, 데이터 분석, 데이터 모델링 등 다양한 세부 직군으로 나뉘어 있다는 사실은 이미 언급했으니 재론하지 않는다.

데이터 베이스를 구축하고, 관련된 개발을 계속하는 쪽 직업을 찾는다면 수학, 통계학에 대한 필요보다는 Java, C++를 비롯한 개발자용 코딩 언어를 잘 알고 있는 편이 맞을 것 같다. 코딩 실력 기반 위에 데이터 모델러가 갖고 오는 모델들을 개발 모듈에 얹을 수 있는 기본적인 수학, 통계학 지식이 갖춰지면 된다(고 본다).

데이터 분석쪽 업무 중에서 SQL로 자료만 뽑아내고 Tableau 같은 툴로 시각화만 하면 되는 직군에서는 오히려 비지니스 센스(?)라고 부르는 직관이 훨씬 더 중요하다고 생각한다. 코딩은 SQL만 잘하면 될 것이고, 수학과 통계학은 기초만 알고 있으면 될 것 같다. 오히려 이쪽 직업을 찾는 분은 학부 전공이 문과인 편이 유리할 것이다.

데이터 모델링을 하는 경우라면, 머신러닝을 돌리고 이해할 수 있는 통계학은 필수고, 관련해서 수학과 코딩을 어느정도 갖춰야 한다.

요새는 여기서 몇 발자국 더 나아가서, 업무 종류별로 추가적인 스킬셋을 요구한다. 예를 들어 필자처럼 온라인 유저 데이터로 마케팅에 적용하는 비지니스에 있는 사람이라면, 시계열 다루는 통계학 실력이 기본적인 개발 실력 위에 반드시 필요하고, 물론 온라인 마케팅이 어떻게 돌아가는지 알고 있거나 빨리 배울 수 있는 사람이 필요하다. 자연어 처리하는 분야로 가보면, (물론 한국어는 아직 걸음마 단계지만) LSTM 관련된 머신러닝 실력 위에 언어학 내공을 갖춘 사람을 원하는 경우도 봤다.

말은 이렇게 했지만, 정작 필자가 평소에 모든 걸 다 머리속에 집어넣은 상태로 일을 하고 있을까? 그럴리가…

기본적인 지식을 갖추고, 특정 사안에 필요한 수학과 통계학을 빠른 시간에 이해할 수 있을 정도로 훈련을 잘 받았기만 하면 어느 직장에서건 살아남을 수 있다고 생각한다. 예전에 누군가가 필자더러 통계학 공부를 어떻게 했냐고 묻길래, 하나만 깊게파서 제대로 이해하고 나니, 그 다음부터는 다른 주제들도 쉽게쉽게 이해할 수 있더라고 대답했던 적이 있다.

 

4. 통계학이 그렇게 중요한가?

데이터 사이언스는 통계학이랑 다르다? 반은 맞고, 반은 틀리다고 말하고 싶다.

데이터 엔지니어나 데이터 시각화 작업이 대부분인 직군에서는 사실 통계학이 그렇게 중요하다고 생각하지 않는다. 그러나 데이터 모델링을 하고 그 모델링을 바탕으로한 분석을 하는 “진짜” 데이터 사이언티스트라면 통계학을 매우 깊이 알아야 한다. 왜냐고? 통계학은 그들의 “언어”니까. 영어, 한국어 같은 그런 “언어”. (Understanding Statistics as a language 참조)

기존의 통계학은 1억명의 데이터를 6개 기간동안 살펴보는 Panel Data 분석과 2천명의 데이터를 6개월동안 매일같이 기록한 Time Series 분석을 위주로 했다. 그러나 빅데이터 시대가 오면서, 1억명의 데이터를 6개월동안 매초 단위고 기록한 Panel + Time Series인 데이터를 다뤄야하는 상황이 왔다. 그렇다고 이전에 썼던 통계학 테크닉들이 하나도 안 사용되고 완전히 새로운 통계학이 나올까?

아래를 보자.

검색어 트렌드를 캐쉬상에 자주 띄우는 유저들의 행동 패턴을 Herding behavior Index로 잡아내려고 할 때, 검색어별로 Hit 숫자의 cycle을 Frequency table로 옮겨서, unit circle 범위를 벗어나는 경우가 N번 이상 나타나는 경우를 검색어 트렌드라고 잡고, 같은 검색어를 cycle이 끝나기 전에 찾아보는지 여부를 Boolean으로 놓은 다음, 1개월간의 검색어 트렌드를 기준으로 1백만명의 Index를 잡는다고 생각해보자. Index를 상/하위로 나누는 2분법으로 접근할까, 1등부터 1백만등까지 서열을 나눌까, 아니면 반응하는 유저들에 한해서 서열을 나눌까? Activation function은 각각 Sigmoid, Softmax, Rectifier가 될 것이고, 그 전에 1백만명의 1개월간 snapshot 데이터를 갖고 특정한 조건이 영향을 미쳤는지를 알아내려면 Hausman test를, 그 조건을 배제시키고 모델링을 하려면 Fixed effect 모델을 만들어야 한다.

온라인 유저 데이터로 데이터 사이언스 상품을 만들어 내는 회의중에 잠깐 나올법한 이야기를 했는데, 이걸 알아들으려면 무슨 지식이 필요할까?

 

좀 불편할 이야기들

미쿡 직장에서는 인종 차별 없고, 성별 때문에 차별 받지 않는다는 뜬금없는 소릴하는 경우를 가끔 보는데, 필자는 더 이상 대화를 할 필요가 안 느껴져서 보통 피한다. 필자의 좁은 경험담이 전체를 커버할 수 없다는 것은 알지만, 적어도 보고, 듣고, 느끼고, 경험한 백인 사회에서 인종차별은 깊숙한 곳에 숨어있다고 자신있게 이야기할 수 있다.

실리콘밸리에서 한 때 “여자 스티브 잡스”라고 불폈던 Elizabeth Holmes가 왜 그렇게 쉽게 사람들의 시선을 끌어모을 수 있었을까에 대한 질문에 테라노스가 만들어낸 상품이 뛰어나서라고 대답할 수 있을까? 가지고 있다는 핵심 기술이 사기라고 판명되고 SEC에서 벌금까지 받은 판국에? 차라리, 그녀가 금발, 푸른 눈의 백인 여성이기 때문에, STEM 전공에 매우매우 드문 “여성”, “백인”을 다 갖췄기 때문이지 않냐는 이야기에는 많은 사람들이 수긍할 것이다.

N사 포털에서 우연히 테라노스의 성공과 실패에 관련된 글을 읽던 도중에 아래의 댓글을 봤다. (필자가 쓴 글이 아니니 절대 오해 No No!!)

좀 서글픈 현실이지만, 동양인 남성인 필자가 미국 사회에서 겪은 일들에 대한 솔직하고 적나라한 설명이라고 생각한다. 최소한 동양인 (특히 남성)들에게 STEM 전공의 전문지식에 대한 기대 수준은 굉장히 높지만 그만큼 대우 받기는 참 힘들다. (어차피 집 떠나면 고생이다.)

그래도 데이터 사이언스 석사를 졸업자들 대부분이 도전장을 내밀 실리콘 밸리로 가면, 워낙 아시아인 비율이 높아서 상대적으로 인종 차별을 덜 받더라. 뭐, 굳이 따지자면 한국에서 일한다고 해도 라인 못 타면 승진에서 낙오하는 경우가 수두룩한데, 타향에서 네트워크가 부족해서 못 살아남는 걸 인종차별이라고 탓해봐야 무슨 소용이 있을까?

 

빅데이터, 보험, 금융업

실리콘 밸리에서 면접 보던 시절에 Fitbit 데이터로 의학 관련 업무를 할려고 하는 스타트업을 본 적이 있다. Fitbit으로 맥박을 추적하면 한 개인의 건강과 생활 습관에 대해서 많은 정보를 얻을 수 있는데, 그걸 제약업체에 넘겨주기 위한 자료 처리를 하는 스타트업이었다. 필자가 워낙 의학 관련 지식이 없어서 솔직히 모르겠다고 대답하고는 더 이상 면접을 못 봤는데, 아쉬우면서도 한편으로는 꼭 그걸 제약업체만 쓸려고 할까는 의문이 들었다.

얼마전에 보니 John Hancock이라는 보험회사가 Fitbit을 사용하는 고객에게는 보험 프리미엄을 할인해주겠다고 광고를 냈더라. 정보경제학 이론에 따르면, 유전적으로 질병이 없는 사람과 있는 사람을 놓고 볼 때, 질병이 없는 사람이 보험을 가입하려는 의지가 낮고, 질병이 걸릴 것 같아 불안한 사람일수록 더 쉽게 보험을 가입하게 된다고 한다. 그래서 생명보험 가입하려면 우리나라 보험사들도 건강 진단 내역 확인을 요구하는 경우가 많다. 이제 거기서 한발자국 더 나가서, 보험회사들이 평소 행동 양태에 대한 엄청난 정보가 담긴 Fitbit 데이터까지 이용하겠다고 나선 것이다.

이런 예시를 보면 빅데이터가 앞으로 금융업을 여러가지로 바꿀 기회의 광산이라는 생각이 든다. 몇 가지 예상 가능한 것들, 혹은 이미 다른 나라들에서 진행되고 있는 것들을 좀 정리해보자.

 

1. 위험 관리 (Risk Assessment)

서두에 언급한 Fitbit같은 웨어러블 기기를 이용하면 인간의 다양한 행동 데이터를 효과적으로 추적할 수 있다. 필자가 스마트폰에 깔린 운동 추적앱으로 하루에 몇 걸음을 걸었는지, 조깅은 몇 키로를 뛰었는지, 그 데이터를 장기간 모으면 얼마나 주기적으로 운동을 하고 있는지 모두 파악할 수가 있다. 더군다나 손목에 차고 맥박을 계속 추적하는 기기를 쓰면, 언제 맥박이 올라가는지, 하루에 몇 번이나 올라가는지, 그 시간대가 보통 움직이는 시간대인 출근시간, 식사시간인지, 다른 시간대라면 혹시 사무실에서 업무가 맥박을 높이는 일은 아닌지 등을 추적할 수 있다. 그런 정보가 있으면, 생명보험 회사 입장에서는 보험 프리미엄을 정하기가 정말로 쉬워진다.

뿐만 아니라, 운전 실력을 쉽게 파악할 수 있고, 평소에 운전 습관도 쉽게 파악할 수 있다. 더군다나 GPS기능으로 자주가는 장소를 파악하고 나면, 그 지역이 우범지대인지, 보안이 잘 되어 있는 곳인지를 알 수가 있다. 자동차 보험회사에서 이런 정보를 다 갖고 있으면, 당연히 운전 실력이 미숙하고, 운전 습관도 거칠고, 우범지대에 자주 가는 사람에게 보험 프리미엄을 높게 매길 것이다. 지금까지의 자동차 보험료 산정 방식을 보면, 나이가 어린지, 자동차 차종이 뭔지, 결혼은 했는지 등이었다. 물론 이런 개인 정보를 바탕으로 만든 모델이 충분히 훌륭한 예측을 할 수 있겠지만, 웨어러블 기기를 통해서 얻는 데이터로 찾아낼 수 있는 개인 행동 데이터에서 얻을 수 있는 정보에 비하면 새발의 피가 아닐까?

실제 적용할 때는 웨어러블 기기를 자주 벗는 사람들이 생겨서 별로 좋은 데이터를 못 얻을 것 같기는 하다. (실제로 필자가 면접봤던 회사에서 가장 고민하는 문제도 그거였다. What to do with “Missing data”?)

 

 

2. 부정행위 탐지 (Fraud Detection)

갑자기 신용카드 회사에서 “방금 푸에르토리코에서 결제하신 내역 있으십니까?” 같은 연락을 받은 적이 있는가? 필자는 오밤중에 그런 연락을 받고, 지금 집에서 잘 자고 있는데 무슨 소리냐고 그랬더니 카드가 해킹된 것 같다고 바로 새 카드를 배송할테니 지금 갖고 있는건 오늘부터 쓰지말라고 하더라.

서울에 있는 사람이 지구 반대편에 있는 나라에서 뜬금없이 카드 결제를 할 가능성이 매우 낮으니 이런식으로 부정행위를 탐지하는 알고리즘을 만든 것 같은데, 이제 빅데이터 시대가 되면 이런 프로세스가 근본적으로 바뀌게 된다. 신용카드, 스마트폰 최근 사용내역과 GPS 데이터를 결합하면, 어젯밤까지 서울에서 결제를 했던 사람이 지구 반대편에서 그 다음날 새벽에 그것도 온라인 판매 상품이 아닌 상품을 결제하고 있다면? 새벽에 필자에게 전화해서 단잠을 깨울 필요도 없다. 그냥 결제 거절을 해 놓으면 된다.

보험사들은 어떨까? 사소한 차 사고에도 새로 싹 수리를 하는 사람들에게 울며 겨자먹기로 높은 가격의 보상을 해줘야했지만, 이제 그런 꼼수는 안 통하게 된다. 그런 뒷거래를 도와줄 수 있는 수리 센터 직원과 보험 가입자의 관계는 서로 모르는 사람일까? 아는 사람일 확률이 매우 높다. 그럼 당연히 SNS로 서로 연결되어 있을 것이고, 그 무렵에 개인적인 통화를 했을 것이고, 최소한 장기간 알고 지낸 기록을 찾을 수 있다. SQL 쿼리 몇 번이면.

무서워지시는가?

 

3. 마케팅 (Marketing)

보험사들이 가장 원하는게 뭘까? 신규 고객, 특히 장기간 보험료를 납입하는 고객이 찾아오도록 만드는 것이다. 그럼 제일 좋은 방법은? 그 고객이 원하는 상품을 최저가로 (그렇지만 이윤을 크게 손해보지 않으면서) 내미는 것이다. 마케팅에서 그런 말이 있다. Right person, Right time, Right product. 최적의 상품을 최적의 시간대에 딱 맞는 사람에게 들고 가는 것이다.

어떻게? 이 분 뭐하시는 분이고, 무슨 고민 있으실 분인지 매일의 데이터가 차곡차곡 쌓이는데 안 나올까? 새로 집을 사셨다. 그럼 집 보험을 들고 가면 된다. 새로 비싼 차를 살려고 여기저기 딜러들에게 전화문의도 넣고, 시승도 하고 있다. 어차피 그런 고가 상품은 단번에 구매를 안 하고 시간을 두고 고민을 할테니, 그 고민하는 기간에 자동차 보험을, 그것도 살려고 하는 차종에 딱 맞는 옵션을 넣어서 찾아간다.

 

4. 인공지능과 빅데이터의 만남

IBM이 내놓은 “왓슨”이라는 인공지능이 챗봇으로 강력한 성능을 보인다는 뉴스를 본 게 엊그제 같은데, 그 기술을 응용해서 보험 사정에 필요한 대부분의 작업을 할 수 인공지능이 나왔다는 기사가 떴다. 펀드 매니저들이 하는 일들을 대신해준다는 로보 어드바이저는 이미 상품으로 나와서 출시까지 된 상태다.

이거 전부 예전에 했던 자동화 시스템의 일부 아니냐는 분들이 있는데, 여태까지의 상품들은 새로운 지식을 배우는 “머신러닝”이 아니라 단순히 Hundreds of “IF”s 명령어를 쓰는 “짝퉁”이었다면, 빅데이터가 더 쌓이면서 정말로 인간이 해야된다고 했던 작업들이 “머신”이 빠른 속도로 배우고 있다.

뿐만 아니다. 필자가 직장 찾으려고 처음에 뉴욕에 있는 헤지펀드들 면접을 갔더니, 파생상품의 가치 계산하는데 쓰는 수학인 Stochastic calculus는 트렌드가 지났고, 이제 머신러닝 얼마나 아는지가 제일 궁금하다고 그랬다. 월마트 주가가 오르고 내리는 걸 예측하는데, 예전에는 월마트의 과거 주가만 사용했지만, 이제는 월마트 주차장에 차가 몇 대 들어오는지를 인공위성 사진을 읽어서 계산한단다. 한 대의 차가 평균적으로 얼마만큼의 금액을 쓰는지 나와있으면, 차량이 얼마나 많이 들어오는지가 월마트의 매출액과 직접적으로 연결된다고 생각하는 것이다. 말을 바꾸면, 머신러닝으로 빅데이터를 만들어내고, 그걸 다시 머신러닝에 적용시켜 주가를 예측하는 시스템이다.

 

끝으로

오늘 이 글의 제목은 “충격”이지만, 2-3년 후에 같은 글을 쓰게되면 “AI가 바꾼 우리 삶의 ‘현실’”이 될 것이고, 다시 2-3년이 더 지나면 “그땐 그랬지”가 될 지도 모른다.

 

밥 먹고 사는 타이틀을 데이터 사이언티스트로 달고 난 이래 줄곧 온라인 유저 데이터를 보고 살아온 탓에 “중독”증상이 좀 있는 것 같다. 처음 이 웹페이지를 만들고 난 다음에 제일 먼저 했던 일이 예쁘게 꾸미는 테마 구하는게 아니라, 데이터 추적하는 구글 애널리틱스 (Google Analytics)를 설치하고, 필자의 IP 주소를 블랙리스트 시켜서 숫자 합산에 포함되지 않도록 하는 일이었다. (필자는 이 페이지에 하루종일 접속해있으니 클린 데이터를 모으는데 방해가 된다ㅋ)

모르시는 분께 간략하게 설명을 드리면, 구글이 웹사이트 방문자들을 추적해서 그 페이지에 몇 명이나 왔고, 몇 페이지나 봤으며, 어디서 왔다가, 얼마나 있었는지, 처음 온 사람인지, 전에 왔던 사람인지 등등을 한 눈에 볼 수 있는 “공짜” 서비스를 제공하고 있다.

사용자마다 다르겠지만, 이게 필자에게 큰 도움이 되는 부분이 몇 가지 있는데, 간단하게만 정리해보자.

 

1. 어느 글이 흥하는지 알 수 있다

블로그로 “돈 안 들이고” 마케팅 할 수 있다는 글들 보면 하루에 한 개씩 꾸준히 좋은 글을 양산해내야지 검색 엔진 (구X, 네X버, 다X 등등)이 잡아내준다고 한다. 별 의미 없는 이야기고, 실제로는 좋은 글 하나에 유입량이 폭증하면 쉽게 노출 효과를 볼 수 있다는 걸 잘 알지만, 그래도 블로그 홍보를 위해서 할 수 있는 모든 걸 다해야겠다는 일념으로 하루에 하나 이상의 “매우 허접한” 글을 쓰고 있는 중이다.

주제를 R 코딩 위주로 잡으면 노출량이 많을까? 아니면 좀 더 일반 대중에게 다가갈 수 있는 코딩 없는 글이 더 좋을까? 일단 몇 개 써보니까 R 코딩 들어가면 Bounce rate (바로 튕겨나가는 비율)이 엄청 높아지더라. 그래서 맘을 바꾸고 코딩 없는 글을 좀 써봤는데, Bounce rate은 내려가는 대신, 찾아오는 사람들 숫자는 또 줄어들었다.

그렇게 글 하나하나마다 매일매일 몇 명이 읽었고, 평균 몇 초를 소비했고, 또 몇 명이 바로 빠져나갔는지에 대한 상세한 추적이 가능하다.

위의 스샷을 보면 수요일, 토요일 강의에 대한 선호도를 바로 파악할 수 있다. 수요일이 4.5%의 페이지 뷰, 토요일은 2.4%에 불과하다. 그리고 현재 올라와 있는 블로그 글 20개 중 “5가지 XX해라“, “5가지 XX하지마라” 같은 류의 글이 제일 많이 읽히고, 인공지능의 미래에 대한 글이 그 뒤를 따르고 있음을 알 수 있다. 필자가 정성 들여 쓴 K-means visualization (K개 중심점으로 데이터를 그룹화하는 방법), 신경망 모델 (딥러닝의 기본 모델)에 대한 R 코드를 넣은 글은 상위 20위권 밖에 있다. 코드가 예쁘게 들어가라고 워드프레스 유료 플러그인도 구매하고, 코드도 직접 몇 번이나 돌려보면서 더 쉽고 간단하게 설명할 방법은 없을까 고민한 글은 인기도가 하위권이다. 글을 잘 쓰는게 더 도움이 된다는 뜻이다.

이런 피드백(Feedback)을 보고나면, 글을 어떻게 써야될지에 대한 온갖 복잡한 생각들이 오간다.

필자가 글을 쓰는 걸 좋아하기는 하지만, 그래도 이 블로그는 R 코드를 설명해주는 글이 더 많아야할 블로그이지 않나? 고민이 많다.

 

2. 어떤 마케팅 채널이 더 흥하는지 알 수 있다.

이 블로그는 광고 달아서 돈 버는 사업 모델이 아니라, 어쨌건 방문자들이 강의를 듣도록 유도해서 강의에서 돈을 버는 사업 모델로 시작했다. 다른 블로그들처럼 검색 엔진이 날 발견해주기를 바라는 마음으로 글만 쓰고 있을 수가 없어서, 유명 광고 채널 몇 군데에 계정을 틀고 광고를 띄워봤다.

온라인 광고 시장에 맛 좀 봤다고 단가를 얼마정도를 제시해야 상위 노출이 되는지 감이 있으니까, 교육 회사들이 큰 돈을 지르는 걸 알고 그에 맞춰서 세게 질렀는데,

위에 보시다시피 우리나라 최대 검색엔진에서 키워드 광고에 3번째로 노출되어 있다. 참고로 키워드 광고는 특정 단어를 입력했을 때, 그 단어를 검색한 사람이 찾을 법한 내용 중 (1개 클릭당) 광고비를 많이 쓰는 광고를 상위권에 노출시키는 모델이다. “데이터 사이언스”라는 키워드에 필자의 광고가 노출되도록 XXXXXXX원의 클릭당 광고비를 책정했다. (7개의 X에는 앞에도 뒤에도 0이 섞여 있을 수 있다ㅋ)

아뭏튼, 얼마나 세게 질렀는데, 3위 노출이라니… 2개 회사나 필자보다 큰 돈을 질렀다는 뜻이다. 이 사람들 도대체 얼마를 지른거야…

강의를 처음 시작할 때, 필자가 벤치마킹을 했던 고가 정책의 경쟁사보다도 더 높은 위치에 키워드 광고를 배치시켰는데, 필자보다 훨씬 더 높은 광고금을 쏟아 붓고 있는 회사들이 있다는 이야기는 생각보다 이 시장의 경쟁이 치열하다는 뜻이다. 10주 3시간짜리 강의에 170만원씩되는 고가 정책을 하는 회사가 있길래, 경쟁이 없어서 지대(Rent)를 세게 받고 있나보다 생각했더만, 막상 발을 담궈보니 필자의 판단이 짧았다는 걸 알게 된 사건이었다.

근데 광고로 유입되는 숫자가 그렇게 많을까?

아래 스샷은 구글 애널리틱스에서 유입분석을 한 화면인데, 3번 Referral이 광고 유입을 이야기하는 것이다. 참고로 1번은 직접 검색한 사람이어서 눌러보면 어떤 키워드로 찾아왔는지를 보여주고 (예, 데이터 사이언스, 머신러닝, 빅데이터 등등), 2번은 직접 유입이라고해서, 어떤 페이지를 보고 갔는지만 보여준다. 4번은 소셜 네트워크를 통해서 유입된 경우로, 페XX북, 인X타X램 등등을 생각하면 된다. 아래에 보니 소셜 네트워크를 통해서 들어온 경우에 Bounce rate도 제일 높고, 반대로 머문 시간도 제일 길다. 진짜 관심 많은 사람과, 별로 관심없는 사람들, 두 그룹이 모두 소셜 네트워크로 유입되고 있다는 뜻이다. 별로 관심없는 사람들을 어떻게 분리해낼 수 있을까…..

자 그러면 3번 Referral을 눌러보면 어떤 화면이 나올까?

구글, 페이스북이 상위권에 있고, N사 유입은 전체의 3%도 안 된다. 심지어 일반 IT관련 커뮤니티에서 유입된 숫자보다 더 적다.

아마 데이터 사이언스라는 주제 자체가 N사 검색하는 유저에게는 흔하지 않은 주제일수도 있겠다 싶다.

아뭏튼, 광고비를 얼마나 많이 질렀는데…씁쓸하다. 앞으로 계속 광고비 태워야할까?

아래를 보라.

심지어 결제하는 사람들 구성까지도 N사 유입이 최저다. 이대로만 간다면 G사에 광고비의 절반 이상을 태워야될 것 같다.

 

3. 실시간 모니터링

오늘 글을 쓰기로 맘 먹은 이유가 바로 이 부분을 언급하고 싶어서였다.

주말이고 새벽이라 방문자 숫자가 거의 없는데 1명만 딱 https://pabii.co에 들어와 있더라. 그 때 Real-Time Report를 보면 아래의 화면이 뜬다.

서울에 살고 있는 유저고, 데스크탑으로 접속을 했다. 그리고 Top Referrals에 보면 어느 채널을 통해서 들어왔는지 알 수 있고, 가장 결정적으로 Top Active Pages에서 어느 페이지를 확인하고 있는지를 알 수 있다. 그런데 토요일 수업 페이지를 보고 있네?

이 유저는 결국 결제를 안 하고 페이지를 떠났다. 왜? 가격이 너무 비싸서? 다른 경쟁사에서 제공하는 수업이 더 좋아서? 필자가 별로 좋은 강사가 아닌 것 같아서? 아니면 그냥 실수로 눌러서 읽어봤다가 관심이 없어져서? 이유는 모른다.

어차피 필자야 학원 운영자도 아니고, 그냥 재능 기부라는 마음 가짐으로 블로그와 강의를 운영하고 있으니 크게 신경을 안 쓰지만, 아마 직접 학원을 운영하시는 분들이나 쇼핑몰 같은 사업을 하시는 분들이면 저런 시점에 떠나는 유저들을 붙잡고 물어보고 싶을 것이다. 뭐가 맘에 안 드세요?

불행히도 구글 애널리틱스는 추적 서비스만 제공할 뿐, 고객과 대화를 이어주지는 않는다.

 

4. 유저 행동론

찾아왔던 유저가 다른 페이지로 떠나고 나면, 한번 들어왔던 로그가 남아서 계속해서 추적을 할 수 있다. 그들에게 계속 상품을 배너나 텍스트 광고로 노출시키는 걸 리타게팅 광고라고 하는데, 쇼핑몰 같은데야 상품 종류가 다양하고 고객들이 원하는 내용이 약간씩 다를 수 있으니 머신러닝을 이용해 최적화된 상품을 보여줘야겠지만, 필자의 웹페이지같은 단순 상품은 머신러닝이 들어갈 것도 없이 그냥 여러번 노출시키기 말고는 딱히 방법이 없다.

그럼 리타게팅을 하는게 좋을지 말지 어떻게 알 수 있을까?

구글 애널리틱스를 통해서 전체 방문자 중 약 20% 정도가 필자의 웹페이지를 주기적으로 방문한다는 것을 알아냈다. 이들이 만들어내는 페이지 뷰(Page View)가 절반을 훨씬 넘는다. 이 중에서 강의 계획서 페이지를 본 사람들에게만 노출시키는 전략을 취해보면 어떨까? 강의 계획서 페이지를 본 사람들 중 비일회성 방문자가 몇 번째 재방문 이후에 강의 신청을 하고, 또 재방문을 하지 않게 되는지 비율을 보면, 지속적인 노출이 효과가 있을지 없을지에 대한 판단을 내릴 수 있다.

언젠가는 이정도로 웹사이트가 잘 돌아가는 날이 오겠지….

재방문자가 꾸준히 유입되면서 매출액이 낮은 경우와, 재방문자가 거의 없으면서 매출액이 안 나오는 경우를 비교해보자. 언뜻보면 후자쪽인 경우에 리타게팅 광고를 해야되는 것 아니냐고 생각할 수 있겠지만, 필자의 결론은 반대다. 재방문자가 거의 없다는 이야기는 상품의 매력이 떨어져서 매출액이 안 나오는 경우일 가능성이 높고, 반대로 구매 결정이 늦어진다는 건 고려해야할 변수가 많고, 고민을 많이 했다는 뜻이다. (이 때 대부분의 경우 가장 큰 변수는 “가격”이다.) 재방문자가 거의 없는 경우면 리타게팅 광고를 할게 아니라, 상품 경쟁력에 대한 고민을 해봐야 한다.

쇼 윈도우에 진열된 옷을 길거리에서 보고 지나가기만 며칠 째 반복하는 사람을 생각해보자. 그 며칠동안 계속 고민을 하고 있었는지, 아니면 그냥 가던 길에 걸려있어서 본 건지 어느 쪽인지 구별하는 문제는 그렇게 간단하지 않다. 이 때 일종의 “눈썰미”가 있는 매장 직원이라면, 그 잠재 고객이 고개를 슬쩍 돌려서 그 옷을 보고 갔는지, 잠시라도 시간을 내서 쇼 윈도우 앞에서 그 옷을 봤었는지를 보고 관심사의 정도를 파악할 수 있을 것이다.

구글 애널리틱스는 그런 정보를 제공해준다. 내 쇼핑몰 페이지에 누가 얼마나 오랫동안 있었는지, 또 얼마나 자주 찾아왔는지 등등, 오프라인에서 눈으로 볼 수 있는 관심의 정도를 온라인에서도 추적할 수 있도록 필요한 정보를 제공해 주는 것이다.

물론 구슬이 서말이라도 꿰어야 보배인 것 처럼, 그렇게 DB에 찍어놓은 데이터를 볼 줄 알아야 GA가 진정한 가치를 얻는 거겠지만…

데이터 사이언스는 죽었단다. (Data Science is Dead.)

자칭 데이터 사이언티스트 입장에서 읽기는 좀 불편하지만 공감할 수 밖에 없는 글을 하나 읽었다.

과학의 테두리 안에 들어가는 학문은 어떤 특성을 가지는가? 조건을 지정해서 실험을 하고 그 결과값을 바탕으로 가설을 검증하고, 새로운 가설을 찾는 과정이다. 데이터 사이언스 안에는 A/B Testing이 있지 않냐고 주장할 수도 있을텐데, 이미 데이터를 만드는 사람이 결정한 일을 그냥 해석만 하는 작업이지 실제로 데이터를 만들어내는 작업은 아니란다. A/B Test를 설정하는 역할까지 다 한다면? 그래도 모든 조건을 다 통제하는 실험실의 셋팅이 아니기 때문에 “Soft” Science란다. 대부분의 사회과학이 그렇지 않냐고 화끈하게 깎아내리네.

더 눈에 들어오는 부분은 전공 이름에 Science가 들어가 있으면 그건 과학이 아니기 때문에 그렇게 붙어있는 거란다. 대표적으로 Computer Science 전공을 들면서, 과학이 아닌 기술이 대학 전공인 것처럼 되어 있고, 노동 시장에서 수요는 많단다.

아래 스샷을 보면 참 Scientist 타이틀이 큰 풍자거리다ㅋ

데이터 사이언스는 죽은게 맞다

솔직히 다 맞는 말이라는 생각이 들어서 별로 반박하고 싶은 마음이 안 든다.

학창시절부터 CS 친구들이 자기네 공부가 제일 힘들다고 할 때마다 너네는 그냥 코딩하는거 아니냐고 드립질쳤던 기억이 생생하고, 데이터 사이언스 직장들 중에 거의 대부분은 SQL로 데이터를 뽑아서 Excel로 그리는 작업을 반복하는 경우가 많다. 사실 Data Analyst가 해야될 일을 좀 멋있게 보이고 싶어서 Data Scientist라는 타이틀로 이름만 바꾸는 편이 뽑는 쪽에서도, 뽑히는 쪽에서도 즐거울테니까, 그들에게는 윈-윈 게임이다.

필자가 실리콘 밸리에서 잡서칭을 할 때 제일 경계했던 부분도 바로 이 부분이었다. 대부분의 직장들이 타이틀은 Data Scientist이지만 정작 업무는 Data Analyst이거나 혹은 Data Engineer쪽 일이었다. 잡 타이틀에 Business Analyst라고 쓰면 너무 구식으로 느껴지고, 그래도 우리는 큰 용량의 데이터를 SQL로 뽑아서 쓰는 업무가 있으니 Data Scientist라고 주장할 수 있다고 생각하는 듯 했다. Engineering쪽 업무들도 Data Warehousing이나 Systems Analyst 같은 타이틀을 달면 뭔가 너무 개발자스러운 단어인 것 같아서 안 쓴다는 이야기도 들었다.

데이터 사이언스는 죽었다가 다시 태어났다

실리콘 밸리에서 필자가 Data Scientist 업무를 찾아다닐 때, 꼭 물어봤던 질문이 있다. “혹시 너네 팀에 경제학 박사 출신 있어?”

필자와 배경 지식이 유사할 것 같아서 이런 질문을 했기도 하지만, 이 질문의 본래 의도는 “너네 팀, 데이터로 모델링하고 계량 테스트하는 팀이야?”라는 뜻이었다.

데이터 사이언스는 죽었다고 일갈한 Miko Matsumura의 표현대로, 데이터 사이언스는 “Hard” Science가 아니라 “Soft” Science다. 실험실에서 조건을 강하게 컨트롤 한 상태에서 얻은 데이터로 작업을 하는 일이 아니라, 경제학 박사들처럼 현실 데이터를 나름대로의 모델로 분석하는 일을 해야한다. 굳이 차이가 있다면 경제학 박사가 다루는 데이터는 용량이 크고 작고의 차이만 있겠지만, 데이터 사이언티스트가 다루는 데이터는 유저의 행동 패턴을 초 단위로 추적하는, 이른바 “행동 데이터”라는 부분인 것 같다.

다루는 (빅)데이터가 다른 것만큼이나 다루는 통계학 모델도 달라서, 경제학자에게 수리통계학의 회귀분석이 핵심적인 기술이었다면, 데이터 사이언티스트에게 가장 핵심적인 통계학 기술은 머신러닝이 되었다.

지극히 필자의 주관적인 생각일지도 모르나, 진짜 데이터 사이언티스트는 수리통계학 훈련이 잘 된 경제학자가 SQL로 빅데이터를 뽑을 줄 알면서, 가설을 바탕으로 통계학 모델을 만들고, 그 모델을 테스트할 수 있는 머신러닝 (+다른 통계학 지식)을 할 줄 아는 사람이어야한다. 이렇게 말해놓고보니 보통의 경제학자는 그런 훈련을 안 받으니, 참 이런 사람 찾기 힘들겠다는 생각도 든다.

데이터 사이언스를 재정의하자

요즘 실리콘 밸리에서는 잘못 알려진 데이터 사이언스에 대한 비판과 새롭게 정의하자는 움직임이 일고 있다. (진작에 이랬어야했다.) 가장 눈에 띄는 정의는 HR회사인 Hired Brains에서 나온 내용인데 아래와 같다,

  • Type 1 – 알고리즘과 분석방법을 연구하고, 새롭게 만들어내는 전문가로 논문을 발표할 수 있는 사람
  • Type 2 – 수리통계 모델링 및 모형 개발 전문가로 Quantitative한 방법을 이해하고 모형을 설계, 시험 및 실전 배치할 수 있는 사람

Type 2의 예시로 나온 직업이 머신러닝과 통계 모형을 이용해서 패턴 감지 알고리즘을 개발하고, 빅데이터에서 유의미한 정보를 찾아내, 개발한 알고리즘으로 예측업무를 수행하는 사람이었고, 금융 사기나 고위험 담보 대출에 이런 모델을 적용시키는 내용이 주 업무였다. Type 1의 대부분은 아마 학계에 있을 가능성이 높다.

직장을 찾는데 타이틀은 Data Scientist이면서 정작 위의 업무가 Job Description에 없다면, 그건 아마도 Data Analyst이거나 Data Engineer일 것이다.

 

데이터 사이언스 아직 안 죽었다. 죽은 사람더러 데이터 사이언티스트라고 하지 말자.