Cambridge Analytica라는 AdTech 스타트업이 있었다. 페이스북 유저들이 Like를 누른 정보들을 모은 다음, 각 유저별 성향을 뽑아내고, 그 성향에 맞춰서 타겟팅된 메세지를 보낼 수 있는 서비스였다. 수천만명의 유권자들에게 공통된 메세지가 아니라, 그 사람들의 스타일에 맞춰서 다른 메세지를 보낸다니, 이거 꿈 같은 미래형 서비스 아닌가?

근데 “있었다“라니? 왜 과거형일까?

트럼프 대통령의 2016년 선거 캠페인은 유저별로 다른 광고를 내보낼 수 있는 플랫폼을 찾는데 혈안이 되어있었다. 그들 눈에 들어온 Cambridge Analytica는 입맛에 딱 맞는 서비스였고, 트럼프 대통령의 선거 캠페인은 (자신이 Fake News라고 주장하는) 각종 언론사들의 비협조로 굉장히 힘들게 진행되고 있었던 탓에, 페이스북 유저 데이터를 가져오는게 불법인지 여부를 확인할 여유도 없이 그 서비스를 갖다 쓸 수 밖에 없었다. 선거가 끝나고 결국 데이터 불법 수집을 이유로 회사 관계자는 모조리 처벌을 받았고, 회사는 흔적도 없이 사라졌다. 페이스북은 개인 정보 보안에 소홀했다는 책임을 표명했고, 마크 주커버그는 상원의원들의 한심, 멍청, 답답한 질문을 몇 시간 동안 무덤덤한 표정으로 대답해주는 고역을 치르기도 했다.

(Source: CNBC.com)

2016년 미 대선 선거전이 한창이던 이 시점에 위와 같은 서비스가 완전히 충격적인 새 서비스였을까?

당시 한참 인기를 끌었던 미국 정치 드라마인 House of Cards에는 Data Scientist들을 활용해서 인터뷰에서 무슨 단어를 어떤 어조로 이야기해야 대중의 호응을 이끌어 낼 수 있는지를 실시간으로 분석할 수 있다는 걸 알려주는 장면도 등장하고, 어떤 소스였는지는 끝까지 비밀로 밝히면서 몇 백만명의 중립성향 유권자 전화번호를 뽑아와 선거 팀에 넘기는 장면도 나온다. 당시 워싱턴 DC쪽에 Data Scientist 자리에 지원하면 이런 Sentimental analysis는 해봤냐, Natural Language Process는 잘 아느냐, Network theory는 어떤 방식으로 적용해봤냐는 질문을 수도없이 들었을 것이다. 물론 그 회사들 상당수가 페이스북의 (어쩌면 고의적이었을지도 모르는) 보안 미비를 이용해 데이터를 긁어 모았다는 사실은 공공연한 비밀이었다.

 

Psychographic targeting의 역사

각 유저별로 성향을 파악해서, 그 유저에게 적합한 형태로 광고 메세지를 조절한다는 서비스는 2016년에 갑자기 등장한게 아니다.

가끔 별 대단치 않아보이는 질문 10개 남짓을 받고, 뭘 좋아하는지 대답해주고 나면 당신은 어떤 성향입니다는 평가를 해 주는 서비스를 봤던 적이 있을 것이다. 실제로 심리학에서 Big 5라고 부르는 인간의 성향 그룹이 있다.

심리학에서 정한 이런 기본적인 성향 이외에, Attitude, Interest, Opinion (AIO) 등등 다양한 종류의 성격 구분 방식이 있는데, 광고심리학을 하시는 분들이 썼던 사례가 있기는 하지만, 아무래도 정확도에 한계가 있고, 인간 성격을 저렇게 단순하게 구분할 수 있을까에 대한 의구심이 있었기 때문에 널리 활용되지는 못했다.

 

Demographic targeting과의 차이점

온라인 광고 시장에서 제일 먼저 나온 “타게팅” 광고는 인구통계학적인 정보를 이용하는 방식이었다.

성별, 연령, 결혼 유무, 거주 지역 등등의 정보는 위의 Big 5나 AIO처럼 뭔가 뜬구름 잡는다는 느낌도 없고, 눈에 확실하게 보였기 때문이다. 예를 들어, 우리 회사 상품은 30대 남성들이 주로 구매한다는 정보를 갖고, 30대 남성들이 자주 들어가는 커뮤니티에 집중 광고를 하는 방식이 보편화된 것이 바로 이런 이유 때문이다.

그런데, 사회경제문화적인 발전이 계속되면서 인간의 선호는 너무 복잡해졌다. 30대 남성이 자주 쓰는 제품을 40대나 50대 남성이 쓰지 말라는 법이 없고, 같은 연령대의 여성이 쓰지 말라는 법도 없다. 반대로 20대 여성들이 주로 쓰는 상품을 남성들도 많이 쓴다며 이른바 “유니섹스” 형태의 상품 구매 패턴을 볼 수 있다는 신문 기사가 나온지 이미 수십년이 지났다.

말을 바꾸면, 인구통계학적인 정보만을 바탕으로 한 광고 타게팅 너무 구식이라는 것이다.

 

Behavioral targeting과의 차이점

최근 들어 “인공지능”을 이용한 맞춤형 상품을 보여준다는 서비스가 우후죽순처럼 생겨나고 있다. 언론 플레이를 위해 “인공지능”이라는 단어를 썼지만, 사실은 Look-a-like 유저를 찾는 단순한 알고리즘이다. 상품 A-B-C-D를 보고 E를 구매한 유저 정보가 10명 정도 있었다면, 그 후부터는 A-B-C 상품을 보고 있던 유저에게 D-E 상품 그룹을 추천해주는 방식의 서비스인데, 이걸 해쉬 태그 방식의 검색어로 처리하면 Google 등이 쓰고 있는 검색 서비스가 되고, 쇼핑몰 상품 추천이나 광고 노출에 쓰면 “인공지능”의 탈을 쓴 Behavioral targeting이 된다.

이런 타게팅 방식의 가장 큰 문제는 특정 영역에서만 작동된다는 점이다. 쇼핑몰 “가”에서 어떤 유저가 A-B-C 상품을 보고 있다는 이유로 D-E 상품을 추천해줬는데, 쇼핑몰 “나”로 오면 “가”에서 쓰던 정보가 아무런 도움이 안 된다. 거기다 데이터를 공유하려고하면 쇼핑몰 “가”는 손해보는 장사를 해야된다. 설령 “가”와 “나”가 서로 유저 검색 데이터를 공유하기로 했다고해도, 단순히 상품을 본 기록 뿐만 아니라, 그 상품의 카테고리, 가격 등등 세부 정보를 모두 공유해야 진정한 데이터 공유가 된다.

쇼핑몰 “가”와 “나”가 그런 업무 협조를 맺는데 걸리는 시간을 생각해보자. 우리나라에만 온라인 쇼핑몰이 얼마나 많을까? 더 유저가 많은 쇼핑몰일 수록 손해를 보는데, 쉽게 협상이 될까?

쇼핑몰이 아닌 다른 서비스에서 쇼핑몰 검색 정보를 쓸 수 있는 방법은 없을까? 분명히 특정 상품 군을 많이 샀던 유저라면 자기네 서비스에도 관심이 있을거라는 짐작을 할 수 있을텐데, 이런 데이터 공유는 한계가 있을 수 밖에 없다.

차라리 미국의 Amazon처럼 1개 쇼핑몰이 시장을 사실상 반독점 형태로 운영하면서 모든 유저 검색 정보를 다 갖고 있다고 해도 쇼핑몰을 넘어선 다른 서비스에 적용하려면 같은 한계를 넘어야한다.

 

카드사에서 대량 구매한 데이터

국내외에 카드사에서 데이터를 대량으로 구매하고, 그 정보들을 이용해서 유저 프로파일링을 하겠다는 서비스를 꽤나 봤던 적이 있다. 만약 그들이 갖고 있는 정보가 “영수증” 급으로 상세한 정보라면 좀 말이 되겠지만, 많은 경우 전체 합계 금액 이상의 정보가 없다. 쇼핑몰들 입장에서도 상세 정보를 내부적으로는 갖고 있으면서 유저들의 행동 패턴을 볼 인센티브가 있을지는 몰라도, 카드사에게 상세 정보를 주는 건 불편할 것이다.

당장 마트에서 10개 상품을 구매한다음에 1개만 반품처리를 해 보시라. 아마 전체 환불을 한 다음에 다시 9개 상품에 대해서 재결제를 할 것이다.

더 나아가서 위의 데이터는 결제 여부만 알 수 있고, 정작 결제 전에 어떤 행동을 했을지에 대해서는 제한적인 정보 밖에 없다. 식당 A에서 점심 식사를 했는데, 그 전에 식당 B와 C를 들러서 빈 자리가 없었기 때문에 A에서 식사를 했다면 A는 선호되는 식당이 아님에도 불구하고, 카드사 기록만 놓고보면 그 고객은 식당 A를 좋아하는 사람이라고 인식하게 될 것이다.

요컨대, Flow를 볼 수 없는 데이터, Snapshot만 보는 데이터로 타게팅을 한다는 건 한계가 있을 수 밖에 없다.

 

Psychographic targeting이란?

다시 트럼프 대통령의 사례로 돌아와보자.

Cambridge Analytica는 유저 성향에 따라 완전히 다른 배너를 보여줬다.

정치적 성향은 중립이지만 애완동물을 좋아하는 사람에게는 상대 후보가 표정 찌부리며 애완동물을 피하는 모습을 보여줬고, 반대로 애완동물을 싫어하는 사람에게는 트럼프 대통령이 애완동물을 달가워하지 않는 사진이 들어간 광고 배너를 노출시켰다. 비슷한 맥락으로, 주제별로 세분화된 선호도에 따라 정부 예산을 더 들여서 커뮤니티 센터를 지어야한다는 뉴스 클립과 세율을 낮춰야한다는 상반된 메세지를 인구통계학적으로는 거의 같은, 하지만 지역 이슈에 대한 견해가 미세하게 다른 그룹에게 뿌린 기록도 찾아볼 수 있다.

아래의 좀 더 간단한 예시를 보자.

(Source: Wishpond blog)

위의 두 여성은 40대 초반, 중산층, 어린 자식이 2명이고 직장인 여성이라는 공통점을 갖고 있다. 아마 인구통계학적인 정보만을 활용했다면 둘에게 같은 광고가 나가게 될 것이다. 그러나 Psychographic targeting을 하고 있으면 첫번째 여성분께는 요리 재료 광고가 나가고, 두번째 여성분께는 배달음식 광고가 나가게 된다.

정치나 쇼핑에만 그런 서비스가 쓰이는게 아니다. Porsche 자동차 광고에 쓴 사례를 보면, 같은 고급 차량을 부잣집 아드님 스쿨버스라고 설명하는 광고도 있고, 하이킹 같은 야외 활동을 좋아하는 사람들에게 딱 맞는 차라는 광고도 있다. (아래 광고 시즌이 겨울이었다면 아마 스키 관련된 이미지와 결합되었을 것이다.)

 

Psychographic targeting을 위한 도전

당장 우리 Pabii의 서비스를 기획하면서 유사한 서비스를 한국 시장에서 찾아봤다.  없더라. 페이스북에서 Like값들을 이용해 약간 시도할 수 있는 정도다.

평소 웹서핑 중에 보는 모든 광고를 우리가 Porche 911처럼 초미세 타게팅해서 보여드리려는 서비스를 만들고 있는데, 그래서 스마트폰을 쓰는 모든 분들이 우리의 고객분이 되는 걸 목표로 하는데, 광고 타게팅에 협조해주신 부분에 대한 보상액이 크게 느껴지는 분들과 작게 느껴지는 분들에게 다른 메세지를 보내고 싶어도 뾰족한 방법이 없다. 기껏해야 직장인과 비직장인을 구분하기 위해 인구통계학적 정보를 쓰는게 전부인 상태더라.

사실 이 서비스를 처음 기획하면서 가장 직접적으로 직면했던 도전은 “돈”이 아니라 “데이터”였다. 위의 Cambridge Analytica 사례에서 봤듯이, 개인의 선호 같은 데이터를 동의없이 훔쳐(?)가면 엄연히 불법이고 처벌을 받게된다. 그렇다고 다른 데이터를 구매하려니 위에 쇼핑몰, 카드사 예시에서 언급했듯이 우리가 원하는 레벨의 데이터는 없다.

어차피 유저 특성을 뽑아내고나면 기초 데이터 (Raw data)는 더 이상 쓸모가 없어서 버리게 될텐데, 그럼 개인정보보호법을 위반하지 않는데, Pabii가 기대하는 수준의 데이터가 있어야 그런 데이터 가공이 유의미할 수 있다는 판단이 섰다.

그래서 우리는 합법적인 수준에서 데이터를 받아오는 앱을 직접 만들고 있다. 내부적으로 걱정하는 부분은 이 앱을 출시해도 사용자 숫자가 일정 수준이 되기 전까지는 유저 특성을 뽑아내는 고급 통계학 알고리즘이 작동하기 어렵겠다는 점, 그리고 광고주가 없어서 유저들에게 적절한 보상을 돌려드리기 어렵겠다는 점이다.

이런 문제를 해결하기 위해 다른 보상형 광고 앱들처럼 과다보상으로 유저 유입을 유도하는 방식을 택하는 대신, 우리 앱에서 받은 돈을 쓸 수 있는 생태계를 만드는 방식으로 문제를 극복하려고 한다. 그래서 무모하다는 욕을 먹어가며 우리가 직접 SNS를 만들고, 쇼핑몰을 만들고 있다. (그렇다고 Instagram과 Amazon을 만드는 건 아니다ㅋㅋ)

(Source: SciELO)

 

데이터 가공이란?

회사 이름 P.A.B.I.I는 Psychographic Analytics by Integrated Intelligence의 약자다. Psychographic analytics가 작동하기 위해서는 Integrated Intelligence가 뒷받침되어야하는데, 이게 바로 유저 데이터를 1명, 1명만 봐서는 아무런 의미가 없고, 수백만명의 데이터를 묶었을 때만 의미가 있다는 말이다. 모두의 힘이 모여야 되는 윈기옥 같은 서비스다.

페이스북에서 유저들의 Like를 그대로 긁어온 Cambridge Analytica와 가장 크게 다른 점은, 우리는 그런 Like 정보를 활용하지 않는다는 것이다. 우리는 그런 뻔한 눈에 보이는 데이터를 쓰는 쉬운 길을 택할 생각이 없다. 남들이 금방 카피해서 따라올 수 있다는 걸 알기 때문이다. 우리는 유저들의 평소 앱 활동 내역 정보들을 Factor analysis같은 고급 통계학을 이용해 가공해서 남들이 찾아낼 수 없는 유저 특성을 도출할 것이다. Factor를 도출하는 순간부터 기초 데이터를 더 이상 쓰지 않아도 되는 서비스를 만든다는게 바로 여기에 기반한다. 그렇게 통계 모델링에 자신 있는데 왜 유저 데이터에 목을 매냐고? Integrated Intelligence가 필요한 부분, 좀 더 정확하게는 Factor라는 가상 변수의 정확도는 데이터에서 볼 수 있는 패턴 다양성의 폭과 깊이에 크게 달려있기 때문이다.

DSP 방식의 보상형 광고 서비스를 만들면서, 어쩌면 우리는 의적 홍길동을 꿈꾸고 있지 않나는 생각도 해 봤다. 그동안 광고주의 이익을 위한 서비스를 제공하면서 온라인 광고 플랫폼의 모든 주체들이 이익을 보고 있었는데, 정작 데이터를 제공했던 유저들은 보상을 받질 못했다. 일부 보상형 광고들이 있었지만 체리피커들 때문에 광고 효율성이 악화되면서 핵심 서비스로 남을 수는 없었다. 우리는 더 이상 광고주들이 체리피커를 문제삼지 않아도 되는, 그렇지만 데이터 제공자인 유저들이 합리적인 보상을 받을 수 있는 시스템을 만들려고 한다.

광고주님들, 데이터는 유저가 만들어 드리거든요?

 

나가며 – Why Pabii is different

전직 야X 코리아 출신으로, 현재 어느 온라인 광고 스타트업 CTO로 계신 분이 했던 말이다.

“데이터 사이언스는 데이터라는 바다에서 금을 찾는 작업이다”

말을 그렇게 해 놓고는 타게팅 알고리즘에 대해서 설명해달라는 10가지 다른 종류 질문을 하니 땀을 뻘뻘 흘리며 “와X다 대학교에 계신 교수님께서 연구를 하시는데…”로 대답만 하는 걸 봤었다.

그 발표가 끝나고나니 옆에 앉은 친구 하나는 “와X다 대학교가 타게팅 알고리즘으로 좋은 학교야?”라고 묻더라. 자기도 미국에서 석사 유학까지 하며 연구라는게 어떻게 돌아가는지 맛보기라도 한 녀석이….

그런 답답한 지식 수준으로 타게팅 한다는 광고 스타트업 CTO를 하면서 회사 모델 설명회를 열고 있는 사람이나, 담당 교수의 논문 실적과 연구 수준과 깊이 대신 현재 재직 중인 학교의 명성을 묻고 있는 사람이나, 그런 시간 낭비하는 프리젠테이션에 참석하고 그런 깝깝한 질문하는 친구를 둔 나 자신이나, 누가 누구를 욕하랴~

그 와X다 대학에 계신다는 분의 논문도 읽어보고, 개인적으로 수소문한 정보를 모아봤는데, 그 분 역시도 기술적으로 데이터를 처리하려는 엔지니어고, 모델링에 기반한 데이터 전처리에 깊은 관심이 있는 분은 아니라는 사실을 알게 되었다. 그 광고 스타트업이 퍼포먼스 마케팅을 한다고 주장하는데 퍼포먼스에 해당하는 광고 효율성이 전혀 느껴지지 않는 근본적인 이유일 것이다.

우리 Pabii는 그들과 완전히 다른 데이터, 완전히 다른 사업 모델, 그리고 완전히 다른 Data Science 내공으로 승부하려 한다.

 


공지1: 여러 곳에서의 요청에 따라 7월, 8월에 데이터 사이언스 강의 및 데이터 사이언스 모델링 강의를 개설합니다. 잠정적으로 7월 말 ~ 8월말 주말을 이용할 예정입니다.

공지2: RTB 시스템 개발을 위해 대용량 트래픽 처리에 관심있는 개발자 분을 모십니다. 제 타게팅 알고리즘이 시스템 내부에서 실시간으로 계산처리될 수 있도록 Memory DB 커스터마이징을 많이해야하는 업무를 맡으실 겁니다. 현재 저희가 내부에서 확정한 기술 스펙은 HAproxy, NginX, Kafka, ELK 등이고, Memory DB쪽은 Amazon DynamoDB는 비용 문제로 고려대상이 아니고, Redis, MongoDB, Cassandra보다 Couchbase나 YugabyteDB 같은 한국에서 흔히 쓰이지 않았던 스펙으로 만들 예정입니다. Memory DB쪽 경력 있으신 분, 초당 1백만 이상의 트래픽을 감당할 수 있다고 도전하시려는 개발자분 우대합니다.

가까운 친구 하나가 아래의 스크린 샷을 보내왔다. 코멘트를 달란다. 어지간하면 친구에게 짧은 답장해주는 걸로 무시하려고 했는데, 저 글 쓰신 분이 “나름 업계의 네임드”란다. 정말 저런 수준으로 네임드가 될 수 있는 한국 시장의 세태가 너무도 개탄스러워 친구에게 보냈던 메세지를 그대로 블로그에 공개한다.

(주의: 아래는 매우 심한 폭언이 담겨 있습니다. 포스팅 당사자의 이름 및 Like를 누르신 분들의 이름을 지웠으니 독자분들의 양해 바랍니다.)

(Source: 가까운 친구가 스크랩 해 준 어느 페이스북 포스팅)

 

답장:

무식하게 Hidden Layer를 주먹구구식으로 집어넣는 것 밖에 모르는 수준이라면 딱 저렇게 보이겠지.

너 혹시 Taylor’s Expansion 기억나냐?

고차항으로 Non-linear function (Log 함수 같은거) 비슷하게 맞춰보려고 하던거, 우리 학부 1학년 때 배운거 있짆냐.

그거 Neural Network 모델에 Single Layer 놓고 Node 점점 추가하는 걸로 똑같이 돌아가는거 보여주면 저런 사람들 눈이 똥~ 그랗게 되더라.

Taylor’s Expansion은 미분과 수식이 눈에 보이니까 수학이나 알고리즘이라고 생각하는걸테고, Network 모델은 미분과 수식이 눈에 안 보이니까, TensorFlow 같은 패키지 안에 포함되어 있으니까, 학교에서 저걸 수식으로 풀어서 증명하는 과정을 안 겪어봤으니까 그냥 코딩이라고 생각하는 거겠지.

구글에서 Universality Theorem Neural Network로 검색해봐.

Taylor’s Expansion의 Network 버전을 구경할 수 있을거다.

딥러닝, 딥러닝 노래 부르는 인간들치고 블랙박스라고 우기지 않는 사람 없고, 정작 제대로 수식 써 가며 증명해본적 있는 사람 없을꺼야.

전에 말했듯이, 제대로 통계학 배우고 이쪽에 발 들였으면 Deep Neural Net이 Logit 여러개를 Decision Tree 비슷하게 결합하는데, 작동 방식이 Gradient Boosting과 Random Forest의 결합이라는걸 바로 이해하게 됨. 그런 사람들이 당연히 딥러닝 딥러닝 노래를 부를 이유가 없지. 기존 모델들의 장점만 다 모이는게 아니라, 단점도 다 같이 결합되는걸 이해하는 사람이 딥러닝 좋다고 저렇게 글을 쓴다?

저렇게 제대로 교육 받은 적도 없이 코딩으로 업계의 “네임드”가 된 사람들이 싸그리 퇴출되어야 우리나라가 2류에서 하다못해 1.5류라도 될 기회가 생기는거 아니겠냐 ㅋㅋ

늦은 시간에 메일 보내는 점 죄송스럽게 생각합니다. 블로그 글을 정독하다 지금까지 깨있게 되었습니다.

 

이번 프로젝트 주제를 머신 러닝 / 강화 학습을 주제로 프로젝트를 진행을 하며 책, 웹 검색 등으로 학습 해가며 밤새 공부하면서 구현을 하고 있습니다.

원래도 이 주제에 흥미가 있어 학부내에서 들을수 있는 모든 관련 과목인 데이터마이닝, 바이오데이터마이닝, 빅데이터SNS분석, 인공지능, 지능형시스템 이란 수업을 들었습니다.

유독 머신러닝 랩 부분 교수분의 수업인지능형시스템바이오데이터마이닝의 경우 공부를 하면서도 이게 머신러닝과 무슨 연관이 있는 내용이지? 하면서 공부를 하였습니다.

지능형시스템의 경우는 R을 사용해서 R의 여러가지 함수설명과 통계학적 지식을 알려주는 수업이었고

바이오데이터마이닝의 경우는 대표님께서 추천해주신 책인 ISLR로 선형회귀, SVM, Random Forest 등 통계학과 관련된 수업만 진행 했습니다.

 

그래서 수업을 들을때는 이게 연관이 있는 부분인가 하고 그냥 열심히 들었는데 대표님 블로그글들을 정독해 나가면서 수업이 그랬던 이유를 깨닫게 되었습니다.

솔직히 처음에는에서를 창조하는 마법과 같은 기술이라고 생각했지만에서 더 좋은를 찾아 나간다는 기술이란 것을 알게되었습니다.

여전히 이 길로 가고 싶고 컴퓨터쪽 지식은 좋은편이라 생각하지만 현재 지식에서 좀더 나에게 부족한 통계학을 공부하고 싶은 열망이 생겼습니다.

그래서 현재 파비에서 진행하시는 강의를 들으려고 했는데 더이상 진행하지 않으신다는걸 알게 되었습니다. 그래서 몇가지 질문 사항이 있습니다. 여유가 되신다면 답변해주시면 감사하겠습니다.

 

1. 집안사정상 석사과정까지 거치기가 힘들 것 같습니다. 정말 석사를 하면서 배워보고 싶지만 4학년 학부생으로써 석사 못지 않은 커리어를 쌓을 방법이 있을까요?

2. 혹시 강화학습을 공부하는데 더 도움이 될만한 책이나 강의가 있을까요? 현재 도서관에서 빌린 책은 있지만 그저 구현에 집중한 copy & paste 위주 책입니다

 

읽어주셔서 감사합니다. 여유가 될때 답변해 주신다면 정말로 감사합니다

 


안녕하세요 XXX님,

 

부족한 블로그를 새벽까지 읽어주셔서 감사합니다.

아래에 짧게 답변드립니다.

 

1. 한국에서 석사를 해 본적이 없어서, 특히 컨설팅 회사식으로 돌아간다는 공대의 석사 프로그램을 직접 경험해본적이 없어서 해외 석사 프로그램과 얼마나 퀄리티가 차이날지는 모르겠습니다만, 제 경험상 학부 수준과 석, 박 수준은 매우 많이 다릅니다. 저는 학부출신이 아무리 경력이 길게 쌓여도 데이터 사이언스 관련한 중요한 일을 시킬 생각이 없습니다.

 

2. 강화학습이라는 단어에 매몰되고 있는걸보면 아직까지 공부가 부족한 듯 보입니다. 핵심은 그 안에 쓸 Supervised learning 모델을 어떻게 만드는가에 달려있기 때문에, 결국은 석사 이상 레벨에서 Hamiltonian optimization을 공부해야 강화학습이라는게 결국은 stochastic optimization 계산을 iteration으로 하는데 n개 이상의 uncertainty를 포함시킨 것에 불과하다는 걸 이해하게 되실겁니다. 이건 Model-Free로 계산한다는 Q-learning도 크게 다르지 않습니다. 단지 N개 Uncertainty 를 Grid search 하는 시뮬레이션으로 처리하는 작업에 불과합니다. 블로그에서 계속 이야기하고 있는대로, 공학도들이 흔히 빠져있는 함정인 컴퓨터(or 계산기)가 알아서 계산해주겠지라는 마인드를 빨리 버리시킬 바랍니다. 일단 방정식을 정의해야 계산기도 작동하잖아요. (계속 함정 안에 머물러 있으면 제가 “공돌이”라고 폄하하는 사람들이 됩니다 ㅋㅋ)

 


원 글 내용을 일부 수정했습니다.

Computer Science 학계에서 (Computer Engineering 말고) 머신러닝이라는 계산 알고리즘에 관심을 가진 적이 대략 3번 정도 된다. 70년대 후반에 대기업 및 학교들이 대형 컴퓨터들을 비치해서 펀치 기계로 이런 저런 명령어를 입력하는 단순 알고리즘을 만들 때가 첫번째고, 90년대 중반에 메모리 가격 폭락으로 하드웨어 가성비가 좋아졌을 때가 두번째, 그리고 2008년 이래 이미지 인식 정확도가 눈에 띄게 좋아지고 난 다음에 세번째라고 보면 될 것 같다.

구글의 이미지 서칭 기능이 엄청난 정확도를 보여주면서 CS 학계에서 이미지 인식 알고리즘에 대한 또 한번의 “혁신(?)”이 생기는거 아닌가는 바람이 불 뻔 했지만, 얼마지나지 않아 그 정확도의 상당 부분은 이미지 데이터 베이스 정리로 나온 결과물이지, 정작 이미지 인식 알고리즘에서 혁신이 있어서는 아니라는 말이 돌면서 분위기가 많이 시들해졌던 걸 들었다.

요즘 일반에 쓰이고 있는 이미지 인식 알고리즘은 이미 2010년 이전에 나온, 데이터 처리라는 측면만 놓고 봤을 때는 PCA 구조에서 크게 벗어나지 않는 알고리즘이 쓰이는 것으로 알고 있다. 아래의 그림은 최근에 구글 이미지 인식을 이용한 장난질(?)의 결과물이다. 보시다시피 데이터 베이스가 잘 갖춰져있지 않은 경우에는 비교 이미지 인식률이 뚝 떨어진다. (상황이 이런데 중국에서는 마트에 가면 사람 얼굴을 인식해서 자동으로 결제도 되고, 교통 법규를 위반하면 벌금도 매기고… 라는 말을 하더라…)

(Source: Google.com)

 

인공지능 (X), 패턴인식 (O)

알파고가 이세돌을 제압했을 때부터 지금까지 줄곧 주장한대로, 인공지능이라고 불리는 컴퓨터 알고리즘은 Self-learning을 하는 구조가 아니라, 단순히 데이터 속의 패턴을 인식하는 여러가지 계산법 중 하나에 불과하다. 이런 인식이 시장에 널리 퍼지지 않은 탓에, 여전히 많은 사람들이 인공지능에 대한 막연한 기대가 있고, 밑도 끝도 없이 무조건 AI라는 듣기 매우 거북한 단어를 IT업계 곳곳에서 계속해서 들을 수 밖에 없다.

그런 믿음을 깨주는 재밌는 Joke를 하나 가져와봤다.

(9gag.com)

부모님: 니 친구들이 다 우물에 뛰어들면 너도 따라갈래?

아이: 아니요!

머신러닝 알고리즘: 예!

우습게 들릴지 모르겠지만, 이게 머신러닝 알고리즘의 현실이다. 우물에 뛰어들면 죽는다는 지식을 갖고있는 인간은 독립적인 선택을 하겠지만, 외부 입력 정보 없이 구조화된 입력 데이터에만 기반한 패턴 매칭 알고리즘인 머신러닝은 독립적인 선택이 아니라 데이터 의존적인 선택을 한다. 말을 바꾸면, 기존의 데이터에서 가장 자주 나타나는 패턴, 혹은 지정하는 패턴을 그대로 따라가도록 만드는, 지극히 통계학적인 계산 결과물에 불과하다. 가끔 이런말을 하면 무개념인 사람들이 “딥러닝은 다르다”는 망발을 하는데, 그거 그냥 Tree 방식으로 계산하는 머신러닝의 여러 계산법 중 하나다.

 

스타트업 사기꾼들

얼마전 모 대기업의 고위직 분께서 시간을 좀 내달라고 여러 채널로 부탁하시길래 계속 거절하기 죄송한 마음에 식사 자리에 나간 적이 있다. 자기네 회사가 어느 스타트업을 인수하려고 하는데, 이 회사가 기술력이 있는 회사인지 도무지 알 방법이 없다며 도움을 요청하시더라. 뭐하는 스타트업이길래 그렇게 큰 금액을 들여서 인수하시려고 하냐고 여쭤봤더니, 자연어를 처리해서 기존의 콜 센터를 없애버릴 수 있을만큼 실시간 대화가 가능하도록 만들어 준단다.

순간 아래의 사건이 생각났다.

(Sixthtone.com)

중국의 어느 스타트업이 자연어 처리 (속도)의 끝판왕이라고 할 수 있는 실시간 통역 or 동시통역을 할 수 있는 알고리즘을 만들었고, 그 정확도가 매우매우매우 높다는 홍보가 있었다. 요즘 다들 중국의 대국굴기에 놀라고, 중국에서 여러 놀랄만한 기사가 나오고 있기 때문에 관심이 많았던 것 같은데, 필자는 그 말을 듣는 내내 갸우뚱~ 했다. 일상 회화들을 데이터 베이스에서 불러와서 바로바로 처리하기도 버거울텐데, 전문 용어까지 세부 전공 분야를 바로바로 찾아내고 척척 바꿔줄 수 있다고?

예를 들어, Finance에서 Security라는 단어는 주식, 채권 같은 “증권”이다. 근데 비 관계자들은 이 단어를 “보안” or “안전”과 관계된 단어로 이해할 것이다. 이런 영어 단어가 하나 둘이 아닌데, 거기다 전문 용어는 데이터 베이스 만들려면 엄청난 번역 데이터를 새로 만들어넣고, 경우의 수가 훠얼씬 더 많아질텐데, 실시간 처리를 다 할 수 있다는게 충분히 놀랍지 않나? 당장 전문 용어 번역 데이터 베이스를 만들었다는 사실이 너무 쇼킹했었다. 기초 데이터를 만들기 위해서 초특급 전문가들을 번역에 투입시켜야할텐데, 전문가 1-2명 뽑아서 몇 시간 일 시키기도 비용이 만만치 않은데, 그 비용을 감당할 수 있다니ㄷㄷㄷㄷ

누군가 “머신러닝이 아니라 딥러닝으로 하면 데이터 없이도 다~ 됩니다”같은 망발을 했겠지. 이게 무슨 시뮬레이션 데이터 넣어서 해결할 수 있는 문제도 아니고….하~

아니나 다를까, 장막 뒤에 동시통역사 한 명을 불러놓고 시연을 했다는 기사가 났다. (위의 뉴스 스크랩 참조)

(AI 때문에 사람이 직장을 잃는 4차산업혁명말고, 사람 때문에 AI가 직장을 잃는 5차산업이라는 저 드립은 재밌어서 국내 유머사이트에서 퍼왔다. 출처가 기억나지 않아서 원 저작자분께 Credit을 드리지 못함을 미리 사과드린다.)

요즘 생각해보면, 소위 말하는 스타트업 사기꾼들이 인공지능에 대한 과장된 기대를 더 증폭시킨 것 같다. 사실 인공지능이 별 거 없는 패턴 매칭이라는 사실을 VC들이 제대로 인지하고 나면 투자를 안 할 것이고, 언론 입장에서는 독자를 끌어들일 수 없는 구조인데, 마침 검증 제대로 안 된 스타트업들이 이것저것 다 된다고 썰만 풀고 돈만 받고 먹튀하는 일이 자주 생기니까, 먹튀했다는 뒷 이야기를 언론이 제대로 전달해주지 않으면 일반인들은 인공지능이라는 단어만 기억할밖에.

스타트업하고 있는 필자 입장에서 말이 조심스럽지만, 그동안 만나봤던 VC들 숫자가 상당한데, 당장 우리회사의 비지니스 모델도 제대로 이해 못하는 VC들이 거의 대부분이었던 걸 생각해보면 더 화려한 결과물이 나온다는 주장은 제대로 이해 못한채 눈에 보이는 부분에만 혹해서 투자금을 밀어넣은 경우가 꽤나 될 것 같다.

-중국의 AI 차량 시연 영상: 자동감지 도어 (좌), 자동정지하는 자율주행차 (우)

 

AI마케팅, 거대한 사기의 끝

알파고를 7천억(?)에 구글에 팔았던 데미스 하사비스의 최근 인터뷰 하나를 봤다. 그 기사 아래의 댓글을 보면, “저 인간은 알파고 이후로 일을 안 하는거 같다. 2-3년 안에 다른 분야에 다 인공지능이 적용될 것처럼 말하더니 아직도 단순한 게임 몇 개에 겨우 적용하는 수준이잖아.”라는 식의 혹평이 달려있더라.

그 인터뷰에서 데미스 하사비스는 자기들이 했던 Neural Net 기반의 계산법으로 “강”인공지능을 만드는건 매우 어려워보인다고 솔직하게 시인을 하더라.

아마 당사자는 구글에 알파고 알고리즘을 팔 때부터 알고 있었을 것이고, 구글 CEO도 딥마인드를 인수하면서 그런 지식을 갖고 있었을 것이라고 생각한다. (아니 그렇게 믿고 싶다. 필자같은 초짜도 단번에 알았던 거니까)

굳이 따지자면, 아직도 게임 몇 개에 겨우 적용하는 수준이라고 답답하다는 혹평 댓글을 달았던 분은 속았던 것이다. 구글의 AI 마케팅이라는 거대한 사기에, 알파고라는 대형 퍼포먼스에 완벽하게 속아 넘어갔던 것이라고 봐야한다. (어느 스타트업 관계자 친구는 사람들이 AI가 조류독감이라고 하질 않는 것만해도 구글의 AI마케팅은 자기 할 일을 다 한 거란다ㅋㅋㅋ)

사실 구글만 AI마케팅을 했던 것도 아니고, 위에 언급한대로 수많은 스타트업과 VC들이 자신들의 이익을 위해 과장된 AI마케팅을 진행해왔다. 블록체인 마케팅이 끝물에 다다른 것처럼, AI마케팅도 슬슬 동력을 잃는 느낌이다.

 

나가며 – What’s Next

약 2년 남짓 동안 통계학 공부를 열심히 해야 머신러닝을 제대로 이해할 수 있다고 블로깅을 해 왔다. 전문 블로거가 아님에도 꽤나 긴 시간 이렇게 장문의 글을 써 올 수 있었던 에너지는 거대한 사기에 속아넘어가는 일반인들에 대한 안타까움(?), 교육자적인 열정(?), and/or 배운 사람의 노블리스 오블리주(?)였다기보다, 사업하면서 만나는 VC, 개발자, 꼰대를 비롯한 “통계학 모르는 사람들“의 속을 긁는 오해로 촉발된 활화산같은 분노였었다고 솔직하게 고백한다.

필자의 분노 섞인 블로깅과 관계없이, 그들이 말하는 AI가 더 이상 자신들이 기대했던 인공지능이 아니라는 걸 인지하시는 분들이 점점 늘어나고 있다. 최소한 기업들과의 외부 미팅에서 “통계학 모르는(데 끝까지 AI전문가인체 하는) 사람들“을 만나는 비중이 확확 줄어드는걸 느낀다.  (제발.. 누울 자리를 보고 발을 뻗으시면 안 될까요?ㅋㅋ) 물론 그들 대다수가 “해봤더니 안 된다며?” 라던가, “AWS에 있는 알고리즘 복사해서 붙여넣어봤는게 샘플 데이터에서만 작동하고 딴 데는 안 되던데요?” 같은 경험적 반증에 기반해있지 이론적인 이해와 논리적인 결론에 근거하고 있지 않다는 점이 좀 아쉽기는 하지만, 거대한 사기에 대한 필자의 주장에 공감해주시는 분들이 늘어나는 점은 반갑게 보고 싶다.

이게 “신기술“이 아니라, 인류가 오랫동안 알고 있었지만 쓸 곳이 별로 없었던 좀 복잡한 “계산방법” 중 하나라는 사실이 곧 대중들에도 널리 알려질 것이라고 본다. 오늘 신문지상에 나오는 인공지능이란 표현은, 수학과 통계학은 깊이있게 모르지만 어찌됐건 꿰어맞춰서 이 세상 모든 것을 다 자동화 시켜버리고 싶다는 공돌이들의 환상과 대용량 데이터를 처리할 수 있는 하드웨어적, 소프트웨어적인 지원이 맞아들어가는 몇몇 영역을 비지니스에 활용한 마케팅에 불과했다.

그동안 본 블로그를 통해 수학, 통계학 모르면서 전문가라고 우기는 집단을 “공돌이”라는 속어를 써서 비아냥거린 점에 좀 무거운 책임감이 느껴지지만, 다른 한편으로는 박사시절 만났던 스탠X드 공대 출신 지도교수부터 그 이후로 학회에서, 연구소에서, 직장에서, 비지니스 미팅에서 만났던 “공돌이”들 중에 수학, 통계학적으로 존경을 받을 수 있는 수준의 지식을 갖춘 상태로 “인공지능”이라는 단어를 읊는 사람을 여태 본 적이 없었다는 변명을 끝으로 이제 분노의 블로깅은 그만 정리할 생각이다.

앞으로는 회사 사업 모델과 관련된 AdTech, MarTech 비지니스 이야기에 초점을 맞춘 스타트업 블로그 본연의 모습으로 운영된다.

우리 회사 서비스 곧 출시될텐데, 많은 분들께서 써 주시면 좋겠다.

 


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

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

몇 달전, 약학 관련 전공으로 연구직에 계신 분이 한 달 수업을 들으셨다. 이해가 부족한 것 같아 재수강을 하고 싶다고 하시던데, 처음에는 흔쾌히 승낙했다가, 질문하시는 내용이나, 나중에 메일 주신 내용들을 한참동안 다시 생각해보니 아무리봐도 이해가 부족한 부분을 다시 듣는다고 메워질 것 같지가 않더라. 제 수업을 다시 듣는 것보다, 당장은 수학과 통계학 공부를 더 많이 하시는게 맞는 것 같습니다. 같은 회귀분석이어도 교수님마다 수업 스타일이 다를테니, 그런 수업들 몇 개를 우선 찾아서 듣고 난 다음에 다시 찾아오시는 쪽을 추천드립니다고 메일을 썼다.

솔직히 말해서, 수업에서 만나는 분들 거의 대부분이 재수강한다고 수업 이해도가 높아질 분보다 당장 수학, 통계학 기초부터 다져야 될 것 같은 경우가 더 많다. 특히 (수리)통계학 훈련이 많이 안 된 수강생일수록 이런 문제를 더 강하게 느낄 수 밖에 없다.

이 분들의 본래 의도와 생각이 어땠는지는 모르겠지만, 필자의 눈으로 볼 때 “기존의 통계학보다 머신러닝 방법론을 쓰면 더 결과값이 좋다, 더 쿨(Cool)해 보인다, 더 저널에 퍼블리쉬하기 쉽다”는 정보만 입력된 상태지, 정작 머신러닝 방법론들이 모두 통계 방법론이라는 사실을 제대로 인지하고 있는 것 같지 않아 보인다.

 

왜 데이터 사이언티스트 연봉은 높을까?

크X 브라우저 첫 화면에 유저의 검색 기록과 매칭되는 신문기사 글, 블로그 글이 추천되어 있는 경우가 있다. Referrer 로그에는 googleapis.com으로 남는데, 우리 Pabii 블로그에 대한 외부 유입 중 상당수가 한국어 크X 브라우저에 노출된 블로그 글을 타고 들어오기도 한다.

필자는 스마트폰 셋팅이 영어라서 항상 영문 글이 추천 목록에 떠 있는데, 얼마전에 KDNuggets.com 이라는 꽤 유명한 데이터 사이언스 관련 블로그에서 “왜 데이터 사이언티스트 연봉은 높을까?”에 대한 글을 봤다.

글에서 든 근거들을 보면,

  • 공급이 없는데 – 학교들이 DS 석사를 겨우 20-30명 밖에 안 뽑는다
  • 수요는 넘쳐나니까 – 그런데 회사들은 너도나도 뽑으려고 아우성이다

그래서 내놓은 해결책이라는게

  • MOOC 강의 공급을 통한 대규모 교육
  • 자동화 알고리즘 도입

정도이다.

솔직히 문제 인식이나 해결책이 모두 마음에 안 드는데 (언제는 KDNuggets.com에서 본 글이 맘에 든 적이 있었냐만은…), 일단 필자가 좋아하는 경제학 용어인 수요-공급으로 정리를 해 놨으니, 본 글에서도 이 문제를 인재의 공급과 인재에 대한 수요라는 측면으로 나눠서 생각해보자.

 

데이터 사이언티스트 공급 시장

착각 1. MOOC 교육을 통해 데이터 사이언티스트 교육이 가능하다

사람들이 착각하는 것 중 가장 큰 착각을 딱 하나만 고르라면, 데이터 사이언티스트가 시장의 단순 교육으로 충분히 공급될 수 있다는 것이다. 어마어마한  착각이라고 할 수 있다.

왜? Pabii에서 지난 1년 반동안 나름대로 고급 퀄리티의 데이터 사이언스 강의를 운영해봤다. 일단 수학, 통계학 모르면 애시당초 오지마라고 딱 자르기도 했고, 대략 200명 남짓의 수강생 중에는 현직 교수, 연구원, 자연과학 및 공학 박사 과정생, 석사 이상 직장 경력자 등등 우리나라에서 상위 1% 급 (아니, 0.1% 급..)의 뛰어난 인재 분들이 30~40% 정도였다. 그 중 필자의 수업을 알아먹고, 이걸 당장은 아니어도 매우 가까운 시일내에 자기 커리어에 활용할 수 있을 것 같아 보이는 정말 뛰어난 인재의 최소 학력은 통계학 학부 이상, 타 전공 석사 이상인 분들이었다고 생각한다.

말을 바꾸면, 기존에 수학, 통계학 훈련이 탄탄하게 되어 있지 않은 인재 분들께 필자의 수업은 좌절감만 심어주는 강의였을 확률이 높다는 뜻이다. 학부 통계학 전공은 아니지만 개인적으로 공부를 많이 하신 분들 거의 대부분은 “앞으로 얼마나 더 공부해야할지 까마득해보이지만, 일단 공부할 방향을 잡은 것에 만족한다” 정도의 답변을 주셨던 것이 무리는 아닐 것이다.

Pabii의 데이터 사이언스 강의보다 퀄리티가 낮은 대다수의 MOOC 강의들 몇 개를 듣고 데이터 사이언스를 제대로 이해하고 활용하는건 더더욱 어려운 일일 것이다.

 

착각 2. 데이터 사이언스 교육 과정을 거쳐야 데이터 사이언티스트가 될 수 있다.

위의 DS 석사 프로그램 학생 숫자 20-30명 이야기에 대한 정면 반박이 될 수 있을 것 같은데, 사실 필자가 실리콘밸리에서 면접볼 때 만났던 사람들 중에 Quantitative PhD 학벌이 없는 사람은 아예 없었고, 모두가 Quantitative PhD에서 배운 내용을 자기 업무에 쓰고 있었다. 말을 바꾸면, 데이터 사이언스 석사 레벨이 아니라, 수리통계학을 자기 학문에 응용하는 훈련을 박사 수준으로 했던 사람들이 그냥 이쪽 분야에 흘러들어와서 일을 하고 있었다는 것이다.

냉정하게 말해서 DS 석사 이후에 직장 생활을 시작하면 Multi-task learning 모델 개발을 담당하는게 아니라, 아마 A/B 테스트 계정 수십개를 떠맡아서 결과값 정리하는 Data Analyst 같은 업무를 하게 될 것이다. 배운 수리통계학 모델링 격차가 어마어마할텐데, 어떻게 복잡한 모델링을 그대로 맡길 수가 있을까?

예전에는 수학과 공학 일부 PhD 과정 중에 자기 학문에 흥미를 잃은 사람들 중 일부가 Wall Street에 몰려갔었다. (사실 돈을 많이주니까ㅋㅋ) 그 동네 Quant가 원하는 Stochastic Calculus 문제를 풀어내려면 동일한 종류의 수학 훈련을 받았어야하는데, 물리학이나 기계공학 같은 전공 일부가 그 방법론으로 자기네 모델을 만들었기 때문이다.

같은 맥락으로 요즘은 박사 연구과정 중 통계학, 특히 계산 통계학 방법론을 써 봤던 사람들이 전공에 관계없이 Data Scientist 포지션에 지원을 하고 있다.

정리하면, DS 석사 프로그램의 학생 숫자가 적어서 공급이 부족한 것이 아니라, 이런 종류의 Academic 훈련을 받은 사람들이 흔치 않기 때문에 공급이 적은 것이다. 그리고, 배워보고 가르치며 양쪽을 다 경험한 입장에서 이런 훈련을 단순히 MOOC 교육으로 해결하는 것은 거의 불가능에 가깝다고 생각한다.

 

데이터 사이언티스트 수요 시장

착각 1. 우리 회사에 Data Scientist가 오면 대변혁이 일어날 것이다

일부 Data Scientist들이 몇몇 과제들에서 이런 대변혁을 일으킬 수 있다는 걸 인정한다. 특히 필요한 데이터를 잘 갖춰놨고, 그 Data Scientist의 역량과 매칭이 잘 되면 빠른 시간내에 좋은 성과가 있을 수 있다는 걸 몇차례 눈으로 본 적도 있다.

그러나, 현실은 녹록치 않다. 거의 대부분의 회사들이 쓸모없는 데이터들만 쌓아놓고 우리회사는 빅데이터 시스템을 갖추고 있다고 주장하고 있고, 또 많은 데이터 사이언티스트들이 모든 것을 전지전능하게 다 알고 있는 Grand Master 급이 아니다. (그런 분이 과연 있을까….)

빅데이터 시스템을 갖추고 있다고 우기기를 시전하는 회사들에 대한 불평불만은 본 블로그에서 여러차례 노출했으니, 시장에서 흔히 만날 수 있는 데이터 사이언티스트들이 어떤 사람들인지부터 짚고 넘어가자.

우선, Data Engineer, Data Analyst들을 제대로 솎아낸 Pool이라고 해도 밖에서 데이터 사이언티스트라고 부르는 사람들 중에 데이터 모델링이 가능한 인재는 극소수다. 데이터 모델링이 가능한 인재들은 보통 학계에 자기 전공의 문제만 붙잡고 앉아있고, 학교가 아니면 연구소에 모여 있을 것이다. 자기 전공의 문제 하나를 해결하고, 그런 지식을 적용하는 부분에서 충분한 금전적인 보상을 받고 있고, 사회적인 지위도 높다. 굳이 연봉 1-2억에 자기 전공 밖의 문제를 다루며 스트레스 받아야하고, 언제 짤릴지도 모르는 사기업의 전쟁터로 발을 내디딜 필요를 못 느낄 것이다. (뭐… 한국 기준으로 3-4억 이상의 연봉이라면 생각해볼 모델러가 일부 있을지도…)

그리고, 설령 그런 모델러 한 두명이 시장에 진입한다고해도, 이 분들과 의사소통이 너무 어렵다. 교육받은 사람들끼리는 단어 한 두개로 설명하고 넘어갈 상황을 비전문가에게 설명하려면 몇 분 이상 대화를 해야하는 경우가 허다하다. 그 뿐이랴? 데이터로 뭔가 만들었다는걸 보여줘야하는데, 관련된 수학 개념 하나 제대로 이해하는 사람도 없는 회사에서 그런 설명을 하는건 시간낭비가 될 가능성이 높다. 결과물만 볼려고 하겠지. 이런 모델러와의 커뮤니케이션을 지원하겠다고 Data Visualization쪽 전문가를 뽑는 회사도 봤었는데, 이런식으로 Data Scientist 팀을 하나 구성하려면 1-2명을 뽑아서 될 문제가 아니라, 평균 연봉 3억 이상인 전문가 열댓명으로 한 팀을 만들어야 한다.

한국에서 그 정도 비용을 들어가며 팀을 운영하고, 보고 받은 내용을 소화할 수 있는 보스가 있는 회사가 몇 개나 될까? 근데, 그 정도 팀을 만들기 전까지는 Data Scientist 한 명으로 “대변혁”을 만들어내는 건 거의 불가능에 가깝다.

 

착각 2. 설령 Data Scientist를 뽑지 못하더라도 곧 자동화 알고리즘으로 해결될 것이다

실리콘밸리에서 모든 데이터 사이언스 작업을 자동으로 처리해줄 수 있다고 주장하는 스타트업이 나타났다. MindsDB라는 회사다. 필자와 배경지식이 비슷하신 분들은 바로 감을 잡겠지만, 그냥 사기꾼 하나 등장했구만이라는 생각을 바로하게 될 수 밖에 없는 회사 소개였는데, 실제 결과물도 크게 다르지 않다. 문장을 입력하면, 그 문장을 자연어 처리해서 이해한다음, 그 내용을 바탕으로 쿼리를 때려서 데이터를 추출해주는 서비스였는데, SQL 쿼리 치는 작업은 Data 관련 업무하는 사람들 모두에게 가장 기본적인 지식이고, 이거 배우는데 며칠 걸리지도 않는다.

이런식으로 그럴듯한 말로 상품을 팔아치우는 회사들 뿐만 아니라, 간단한 통계학 알고리즘이나 이미지 인식, 자연어 처리 프로세스를 이용한 서비스는 이미 많이들 나와있다. 그 서비스들을 이용한 앱들이 출시되는 경우도 있고, 라이센스 Fee 주기 싫다고 자기네가 직접 그런 알고리즘을 만드는 경우도 흔히들 본다. 대부분의 서비스들이 복잡하지 않은 알고리즘을 쓰고 있기 때문에, 복제가 그렇게 어렵지 않다.

이런 일들이 비일비재하다보니 곧 자동화 알고리즘으로 모든 문제가 한번에 뚝딱 해결될거라고 생각하는 분들이 참 많은데, 제발 그런 알고리즘 좀 나와서 필자가 하고 있는 데이터 전처리도 쓱싹쓱싹 해결해주고, Factor extraction 작업이나 모델링 작업도 알아서 척척척 해 줬으면 좋겠다. 근데, 자동화 알고리즘이 필자의 머릿속 생각을 바로바로 구현해 줄 수 있는 세상이 오면 이 세상에 있는 거의 모든 박사 과정 프로그램들이 없어질 것이다. 아니, 인간은 더 이상 학문을 공부할 필요가 없어질 것이다.

바꿔 말하면, 그런 자동화 알고리즘 따위는 없다. 냉수 한잔 마시고 정신들 차리시라.

 

나가며 – 데이터 사이언티스트 연봉은 높을 수 밖에 없다

데이터 사이언티스트, 특히 빅데이터를 이용해 모델을 만들고, 그 모델을 사업에 적용하는 계산/논리 알고리즘의 형태로 뽑아낼 수 있는 능력을 가진 사람들은 박사 과정 훈련을 통해서만 양성되고, 그 사람들은 이미 자기 학문의 영역에서 괜찮은 대접을 받고 있다. DS 석사에게 이런 능력을 기대할 수 없고, 당연하겠지만 MOOC 강의 몇 개 들었다고 그런 모델링 작업을 요청하는건 일종의 도박에 가까운 일이다.

경제학 박사했던 친구들이 국책 연구소만 가도 연봉이 억대가 넘고, 파이낸스 박사 했던 친구들 중에 Quant 계열인 친구들은 최소 20-30만불 연봉으로 자기 커리어를 시작한다. 필자가 잘 모르는 몇몇 자연계열, 공학계열 박사 친구들도 상황은 크게 다르지 않을 것이다. 그 중에서도 수학, 통계학 훈련을 제대로 받은 사람들이 도전할 수 있는 업무인데, 연봉을 아껴서 어떻게 좋은 인재를 뽑을 수 있을까?

그런데, 모든 증권사에서 Quant가 필요했던게 아니라, 관련 금융 상품을 직접 만들던 몇몇 회사만 그런 고급 인력을 썼던 걸 생각해보면, IT업계에서도 단순히 우리 회사 데이터 많다는 이유로 무작정 Data Scientist를 뽑아야하는지도 잘 모르겠다. 위에 썼듯이, 제대로 돌아가는 팀을 만들려면 노동비가 엄청나게 들어갈텐데, 그런 비용을 들여서 회사가 얻을 수 있는 부분이 별로 없다면 굳이 Data Scientist를 뽑아야할 필요가 있을까?

Pabii가 집중하고 있는 DSP 사업을 비롯해서 몇몇 서비스들은 필수불가결하게 고급 Data Scientist 팀이 있어야겠지만, 그외의 거의 대부분의 IT 서비스들은 단발성으로 외주를 주는 방식으로 인력을 구성하는게 맞지 않을까 한다.

 

Pabii에서 데이터 사이언티스트 인턴을 채용합니다.

 

주요 업무

Pabii의 출시 예정 앱에 들어가는 모델링 작업 지원

기타 회사 잡무

 

필수조건

학부 수준의 선형대수학, 회귀분석

Pabii의 데이터 사이언스 강의 수준의 머신러닝 지식

데이터 모델링 경험 (*본 블로그에서 인정 받을 수 있는 모델링 경험)

(정규 데이터 사이언티스트에게 요구하는 필수 지식 사항 참조 링크)

 

우대조건

Pabii의 데이터 사이언스 강좌 수강생

Pabii의 모델링 강좌 수강생

각 대학 별 계량 마케팅 과목 수강생

온라인 광고 시장에 대한 (수학적, 통계학적, 경제학적) 이해도

다수의 데이팅 앱 실제 사용 경험자

 

기타사항

업무 시간: 오전 9시 ~ 오후 6시 (각각 +-1시간), No 야근, No 회식

근무 기간: 3개월 ~ 최장 6개월

정직원 승격: 개인 능력에 따라 인턴 기간 종료 후 Data Analyst (not Scientist)로 채용

 

주의사항

R, Python, Julia 등의 코딩 실력에 관심없습니다.

수학, 통계학, 머신러닝에 대한 이론적인 이해도와 모델링 센스에 대한 지식만 확인합니다.

 

지원방식

간단한 블로그 감상평 (you can be critical, if you can)

1-pager resume and 1-pager only

이메일: [email protected]

 

채용 완료 시 삭제합니다.

개발자 면접을 보다보면, 파비의 사업모델은 뭐냐, 기술 역량은 얼마나 뛰어나냐,  비지니스 철학은 뭐냐 같은 종류의 질문을 받는 경우가 있다. (더불어서 돈 많냐, 월급 떼어먹는거 아니냐 등등의 스타트업이 으레 받을법한 부끄러운 질문도 가끔 받는다ㅋㅋ 우리 돈 많다ㅋㅋ) 보안 이슈 때문에 이미 회사 홈피나 다른 블로그 글에 다 공개되어 있는 부분 이상으로 딱히 더 설명해 줄 부분은 없는데, 그래도 좋은 인재를 잡고 싶은 마음에 이것저것 설명을 좀 더 깊게 해 주기도 한다. 보통은 회사 홈피와 블로그를 자세히 안 보고 온 티가 나는게 설명이 좀 더 깊어지면 눈빛이 흐려지고 무슨 말인지 잘 모르는 표정들이 된다.

그렇게 사업모델을 설명하다보면 참 재밌는 현상을 볼 수 있는데, 설명 초반부에 개발자들 표정이 참 밝다. 그 정도는 나도 만들 수 있다는 자신감의 발로일 것이다. 가끔은 여기 나가면 내가 당장 그거 만들어서 니네 사업모델 뺏들어야겠다는 느낌의 표정을 짓는 분들도 있다.

그런 자신감 or 거만함 넘치는 표정이 좀 보기 불편해져서 유저들간 동질성 / 이질성을 구분해내는 Homogeneity index를 찾아내는 아이디어로 박사시절에 은행별 포트폴리오의 유사성을 잡아내던 Dummification, Weighting matrix 계산 같은 걸 슬쩍 언급하면 그 개발자들의 표정이 갑자기 매우매우매우 어두워진다. 표정 변화를 보고 있으면 은근히 재미있다 ㅋㅋ

사실 그렇게 눈에 보이는 계산식 부분은 아무것도 아니고 (그 정도는 Pabii의 데이터 사이언스 기본 수업에서 다 가르쳐주는 부분이다), 그 전에 데이터 전처리해야할 부분에 대한 고민으로 매일같이 머리가 깨지는 고통을 겪고 있다. 아마 수업을 찾아오셨던 분들은 여기서 말하는 데이터 전처리라는게 NA 메워넣는 작업이 아니라, 데이터 재구성이라는 점을 말해주지 않아도 이해하실 것이다.

그런 데이터 전처리 중에 그나마 좀 쉽게 이해될만한 내용만 몇 가지 정리해보자.

 

2-Stage-Least-Square

연말 보너스 산정을 하는데, 우리 팀이 지난 1년간 온갖 열정 (이라 쓰고 야근, 주말 출근이라 읽는다)을 쏟은 끝에 매출액이 급상승 했으니 우리 팀원에게 좀 넉넉하게 보너스를 주고 싶다는 주장을 하는 팀장님이 있다고 생각하자.

그 회사 인사팀에서는 올해 그 팀에서 설비를 5대나 사들여 놓은 탓에 매출액이 폭증한거지, 정작 인력 투입으로 얻은 성과는 그렇게 크지 않다며 보너스 요구를 받아들이지 않는 상황이 생기면 어떻게 될까?

누가 맞는걸까? 이런 “논리”의 싸움은 맞다, 틀리다를 알 수 없으니 그냥 적당히 타협하는 보너스를 주자고하면 될까? 그럼 납득을 못하는 팀원들의 불만은 어떻게 잠재울 수 있을까? 그 팀에 보너스가 간다고 기분 나쁜 다른 팀들의 불만은 어떻게 잠재워야할까?

사실 이런 상황은 정말 간단한 2-stage-least-square를 이용해서 맞다, 틀리다를 말할 수 있다.

에이~ 수학으로 설명하면 누가 받아들이냐고?

매출액이라는 종속변수 (y)는  분명히 우리 팀원들의 열정(….)과 설비 5대의 결합물일 것이다. (물론 운, 시장 트렌드 등등의 외부적인 요소가 끼여들었을 여지는 인정한다.) 여기서 설비 5대가 정말로 효과가 있었는지를 “수학적”으로 어떻게 검증하냐고? 설비 5개 증가값을 X1으로 우리팀의 노동력 투입을 X2로, 나머지 변수들 X3으로 놓고, Y를 X1으로 Regression 한 다음 (1st-stage), 잔차항을 다시 X2, X3으로 Regression하면 된다 (2nd-stage). 만약 X1의 기여도가 컸다면 매출액 증가분 (y값의 상승분)이 X1으로만 설명되는 현상이 나타날 것이다.

그런 수학식이 무조건 맞다는 법이 어딨냐고? 매출액이라는 데이터도 결국은 N차원의 Vector고, 모든 Vector들은 여러개의 다른 Vector들의 합성으로 표현될 수 있다. 고등학교 수학이다. 그렇게 벡터를 쪼개보는 방식으로 지구 자전 & 공전 중에 위성 발사의 궤도가 어떤 영향을 받을지도 계산하고, 핵무기를 실은 대륙간 탄도탄 미사일의 궤도도 오차범위 5m 내외의 무서운 정확도로 계산할 수 있다. 그런 우주적인 힘의 영향을 높은 정확도로 계산하는 작업쯤 되어야 “수학”을 붙이지, 겨우 매출액 같은 단순 그래프를 여러개의 Vector로 쪼개는 작업에 “수학”이라는 명칭을 붙이는 것도 민망하다.

 

Instrumental variable (IV)

빅데이터 시대가 왔다고 데이터가 넘쳐난다고들 말이 많은데, 정작 데이터 사이언티스트 입장에서 필요한 데이터는 항상 없다. 예를 들어, Pabii의 사업 모델에서 유저들의 온라인 구매 데이터 유무는 우리 회사 상품 라인업을 바꾸고, 심하게는 사업의 존폐에 영향을 끼칠만큼 중요한 정보다. 근데, 쇼핑몰들, 카드사들에게 돈을 주고 그 정보를 사지 않는 이상, 유저들의 구매 데이터를 구할 방법이 없다. 거기다 그렇게 제 3자에게 데이터를 파는 것은 원칙적으로 불법이다. (이 문제를 어떻게 해결하고 있는지는 회사 기밀이므로 여기에 따로 공개하지는 않는다.)

위의 문제를 해결하는 실마리가 될만한 간단한 사례를 하나만 쉐어해보자. 과금형 게임을 하는 유저들 중, 장시간 게임을 하는 유저들 대부분은 아이템을 돈 주고 구매 (속칭 “현질”)하지 않는다. 반면, 짧게 짧게 플레이해서 스트레스를 해소하려는 목적으로 게임하는 유저들은 괜히 경험치 끌어올리려고 밤을 새느니 그냥 아이템을 사고 마는 경우가 잦다. 자, 이런 정보가 있다면 게임 하는 시간을 “어떻게, 잘” 이용하면 현질유저인지, 경험치 노가다 유저인지 구분할 수 있지 않을까? (물론 정확도가 100%는 아니겠지만…)

이런식으로 실제 필요한 데이터는 없지만, 유사한 정보를 보여줄 수 있는 데이터를 도구 변수 (Instrumental variable, IV)라고 한다. 수학적으로 표현하면, 특정 데이터 셋이 보여주는 Vector Space와 유사한 Vector Space를 재구성해 줄 수 있는 데이터 셋이라고 생각할 수 있다.

가만히 보면 우리가 갖고 있는 데이터들 상당수가 이런 방식으로 데이터 처리만 잘 하면 Vector Space 메워넣기가 가능한 경우가 많다. 이걸 단순히 Neural Net에 집어넣으면 알아서 척척척 해주는거 아닌가요라고 묻는 특정군의 사람들이 있다는 걸 알지만, 학부 선형대수학 수준의 지식만 있어도 그런 마구잡이식 Network 모델이 아니라 합리적인 데이터 재구축 및 변수 선정이 필수적이라는 걸 이해하실 것이다.

실제로 IV를 쓰는 것을 수학적인 “결례”라고 생각하고 폄하하는 통계학자들도 있고, IV없이 연구가 거의 불가능한 사회과학 문제를 붙잡고 계신 연구자 분들도 있다. (가까운 친구 중엔 IV로 졸업 논문쓰고 박사 받은 친구들도 꽤 된다.) Vector Space를 완벽하게 보정해주지도 않고, A변수랑 B변수랑 연관 있을 것 같아서 이렇게 IV를 골랐습니다와 같은 주먹구구식 설명에 회의감을 느끼는 분들께는 대단히 죄송하지만, AdTech 비지니스를 하다보면, 특히 법적 제약의 범위 안에서 쓸 수 있는 데이터만 갖고 고민하다보면, IV를 어떻게 찾아야할까, 어떻게 구성해야할까에 대한 고민이 깊어지는 경우가 많다. 위의 과금형 게임 유저 찾기는 하나의 작은 예시일 뿐이다.

 

Dummification by Tree

Tree 계열 모델 (Decision Tree, Random Forest, Gradient Boosting 등)을 언제 쓰는게 더 합리적일까? 단순히 결과값이 잘 나올 때 쓰는거 아니냐고?

Tree 모델의 계산 방식, 정확하게는 Tree가 추가되는 과정을 하나하나 살펴보면, Monotonic increase/decrease가 있는 데이터 셋에서는 크게 효과를 보지 못할 계산법이라는 걸 바로 파악할 수 있다. (설명 타이핑하기 귀찮으므로 2019년 1월 수강생 후기 참조ㅋ. 신진수 님 설명 감사합니다.)

비슷한 예제를 이전 글에서도 공유했었는데, 약품 투약의 효과가 혈당 수치 x1 ~ x2 구간, x5 ~ x6 구간에서만 긍정적으로 나타나고, 나머지 구간에서는 전혀 효과를 못 본다는 연구 결과가 있다고 하자. 아마 x2 ~ x5 사이의 혈당 수치를 가진 환자 분께는 그 약품 대신 다른 약품을 써야할 것이다. 이런 식으로 특정 기제의 효과가 지속적으로 상승/하락하지 않는 경우가 위에 말한 Monotonic increase/decrease에 해당하는 사례인데, 이럴 때 데이터 처리를 전혀 하지 않는다고 가정하면 당연히 Regression 계열의 모델들보다 Tree계열의 모델이 훨씬 더 Fitting에 적합할 것이다.

Tree가 하나하나 추가될 때마다 x1 ~ x2 구간, x5 ~ x6구간에서 1, 나머지 구간에서 0인 것을 세세하게 구분할 것이기 때문이다. 반면 Regression 모델로 Fitting 작업을 했으면 x2 ~ x5 구간에서 효과가 없었던 탓에 평균적으로는 그 약품의 효과가 별로 안 좋았다는 결론이 나올 가능성이 높아진다.

그래서 앞으로는 Tree모델을 쓴다고 결론내리면 될까?

Tree 모델로 데이터의 구조가 이렇다는 걸 파악하고나면 필자는 혈당수치 값을 Dummification한다. (머신러닝하는 친구들은 이걸 One-Hot-Encoding이라고 부른다.)

왜? Regression으로 계산하는게 각 변수별 효과를 컨트롤하기도 좋고, 내 모델이 어떻게 돌아가는지 하나하나 짚고 가기 훨씬 더 효율적인 구조를 갖고 있는데, 혈당수치1구간, 5구간만 0/1로 놓는 방식으로 데이터 구조를 바꾸고나면 굳이 Tree한테 맡겨놓고 알아서 계산해주겠지라며 넋놓고 기다리는 짓(?)을 안 해도 되기 때문이다. (같은 맥락에서 Neural Net을 무조건 쓸게 아니라, 데이터 구조를 파악하고나면 굳이 그런 Computationally heavy한 계산법을 피할 수 있는 경우도 많다)

이런 Computational approach를 깊이있게 공부하신 분들은 다 알겠지만, 계산속도 느리고, 데이터 셋 바뀔 때마다 모델 변형이 잦고, 구조적으로 컨트롤이 안 되는 모델은 언제나 연구자들에게 차선책에 불과하다. 데이터 구조만 살짝 바꾸면 굳이 Tree를 안 써도 되는데 굳이???

 

나가며 – 1류 Data Scientist란?

전공마다 상황은 조금씩 다르겠지만, 필자가 있었던 Mathematical Finance 전공에서 “데이터를 이용한~”이라는 접근 방법, 통칭 “Empirical research”는 홀대를 받는 정도에 그치는게 아니라, 아예 리그가 낮은 연구자들이나 하는 작업이라는 이미지가 강했다. 쉽게 말하면 수학 모델링을 이용해 우리 전공의 문제를 풀어내면 메이저리그고, 데이터로 그런걸 보여주는 연구자들은 마이너리그 취급을 받았다. 왜냐고? (머리 많이 쓰는) 수학 모델링 작업은 (별로) 없고, (머리 별로 안 써도 되는) 데이터 전처리하다가 세월 다 보내는 경우가 허다했기 때문이다.

물론 그런 Empirical research하는 분들도 우리 필드의 그 누구도 생각해내지 못한 기발한 방법으로 모델을 만들거나, 데이터를 완전히 다른 방식으로 변형해서 상상하지도 못한 함의를 이끌어내는 분들도 있었기 때문에, 배우는 입장에 있던 필자는 특별히 Empirical research를 무시하거나 하진 않았다. (오히려 더 좋아했던 것 같다^^) Empirical 이라고 무시당하던 분들은 보통 하늘에서 뚝 떨어진 방정식 하나를 주장하는 분들이었지, 수학적인 아이디어를 교묘하게 활용해 데이터를 색다르게 쓰시는 분들은 굳이 마이너리그 대접을 받지는 않았다. 왜? 그 분들은 (수학적으로) 머리를 많이 써야되는 데이터 전처리를 하셨기 때문이다.

학계의 분위기를 소개하는 이유는, 요즘 머신러닝을 이용한 어쩌고, 딥러닝을 이용한 어쩌고라는 서비스 만든다는 분들께도 직접적으로 해당되는 사례이기 때문이다. 별 생각없이 데이터를 무작정 입력하기만 하면, 정말 마이너리그 취급이나 당하는 이른바 “2류 연구자” or “2류 데이터 사이언티스트”밖에 안 될 것이다. 정말 “1류”가 되고 싶다면, Empirical research로도 존경받는 그 연구자 분들처럼 데이터를 활용하는 방식에 대한 고민이 담긴 결과물을 비지니스에 가지고 올 수 있어야 한다. 그래야 남들이 따라할 수 없는 결과물을 만들어내는 “몸 값하는” 데이터 사이언티스트가 되는 것이다.

그런 데이터 전처리를 잘 하려면 위의 모델들만 몇 개 골라서 공부하면 되냐고? 글쎄다. 저건 필자가 대학원에서 몇 년동안 통계학 공부한 지식을 실제 데이터 전처리를 하던 중에 적용해 본 몇 가지 사례들에 불과하다. 데이터 사이언스 공부하고 싶으시거든 구글 검색창에 “최신 인공지능 계산법” 같은 낯뜨거워지는 검색어 입력하시지말고, 통계학 교과서를 다시 펼쳐보시는건 어떨까?

 

데이터 컨설팅 요청을 받는 경우가 있다. 단순하게 주가 예측하는 알고리즘 만들어달라거나, 비트코인 가격 맞출 수 있게 해달라거나 하는 둥의 황당한 요청이야 단번에 거절하는데, 때때로 최소한 말은 되는 데이터 사이언스 급의 프로젝트를 들고 오시면 일단 답변은 드린다. 근데, 다들 생각하시는게 무슨 개발 프로젝트 발주하는 마인드인 것 같아서 황당할 때가 많다.

얼마전에 Android 개발자 포지션에 지원하신 분의 메일 내용 일부가 이 글의 주제와 맞닿아 있는 것 같아서 살짝 소개만 해 본다.

인공지능 회사에 안드로이드 개발자로 입사…. 개발한 어플을 홍보할 마케팅 비용이 없다는 이유로 정부 프로젝트를 회사에서 진행…. 인공지능 키워드로 홍보를 하는 회사인 만큼 인공지능 기능이 들어간 정부 프로젝트에 참여하게 되었는데, 해당 프로젝트에 참여하게 되면서 문제가 발생하게 됩니다.

평소에 수학적인 기반 지식이나 인공지능 및 데이터 관련 기반 지식이 전혀 없던 저는 해당 업무는 저의 업무가 아니며, 내가 맡을 경우 결과가 좋지 않을 것이다라고 강하게 어필하였으며 연구인력이 필요하다고…. 실제로 회사에 있는 연구 인력이나 데이터 사이언티스트는 너 개발자인데 왜 못해라는 분위기로 억지로 저에게 일을 떠넘겼고….

내가 무능하고 잘못생각한건가라고 헷갈리기 시작했습니다… 뭔지도 모르는 수식들을 봐가며 이해하기를 시도하다 포기하고 코드들을 단순히 복붙하였고… 그림찾기 수준으로 같은 데이터만 수집하는 매크로를 작성하여 데이터 셋을 가공했고…. 결과가 왜 그렇게 나오는지 알지도 못한채, 내가 학습하는 알고리즘이 무슨 알고리즘인지도 알지도 못한채….

블로그의 글을 (중략) 이런 분이 운영하는 회사에서 업무를 하게 된다면 적어도 내가하는 안드로이드 개발 업무 외에 다른 업무를 말도 안 되는 이유도 맡게될 이유는 없겠구나는 생각…. (중략)

매일같이 보고 듣고, 가끔은 매우 가까이서 보고 듣게 되는 현실이다. 경력 3년차 안드로이드 앱 개발자에게 저런걸 시켜서 정부 프로젝트라는 허명아래 세금 낭비를 하고 있는데, 내 입장에서는 안타까울 뿐이다.

저런 프로젝트들만 보고 연락을 주셔서 그런지는 모르겠는데, 데이터 컨설팅 요청을 하는 사람들에게서 대화가 안 된다는 느낌을 강하게 받은 에피소드 몇 개만 소개한다.

 

모 게임사 Case – 개발자 한 명이랑 너랑 하면 되는거 아냐?

어느 중견 게임사, 아마 게임 업계 계신 분들이면 이름 듣고 아~ 정도가 나올만한 회사의 서울 지사장이라는 분이 연락을 주셨다. 자기네 특정 서비스가 인간이 풀어낼 수 있는 건지 아닌지, 꼼수로 풀어낼 수 있는건지 아닌지를 알아낼 수 있는 “인공지능” 알고리즘을 만들 수 있냐고 하시더라.

몇 차례 메일을 주고 받은 끝에, Reinforcement learning을 시켜야하고, 시뮬레이션 기반으로 Model-Free (속칭 Q-learning)으로 모델을 만들어야한다는 사실을 깨달았다. 거기다, 게임 중에 랜덤으로 추가되는 변수들이 스테이지 별로 점점 더 많아지는 구조라 더더욱 알고리즘 개발에 시간이 많이 걸린다고 알려드렸다. 저런 랜덤 요소들을 무작정 변수들로 추가하기 시작하면 시뮬레이션으로 모든 Grid를 다 찾아야하기 때문에 Learning 작업이 아예 안 끝날테니, 뭔가 합리적인 규칙을 이용해서 랜덤 변수들을 최소화할 수 있는 조건식을 찾아봐야할 것 같다고 수학적인 설명을 해 줬다. (당연히 못 알아들었을 것이다.)

그 서울 지사장이라는 분은 자기네 회사에 병특으로 와 있는 K모 대학 출신 개발자가 매우 똑똑한 인재니까 필자에게서 저런 “수학 모델링” 작업을 훔쳐(?) 배우면 몇 달안에 저런 “인공지능 알고리즘”이 뚝딱~ 개발이 될 것이라고 생각하고 있으시더라.

이건 Bellman equation으로 모델을 만들어서 손으로 풀 수 있는 부분 (Analytic solution)이 최대한 많아지도록 모델을 설계해야한다고, 필자와 비슷한 수준으로 Bellman equation에서 2개, 3개 이상의 random state variable이 있는 경우를 풀어본 경험이 있는 사람이 몇 명 붙어서 이런저런 고민을 길게해야한다고 설명을 해 줬는데, 정말 전혀 못 알아 듣는 표정이더라. (사실 여기서 대화를 접었어야 했다.)

끝까지 자기네 개발자를 투입시키면 비용이 절감될텐데 왜 다른 박사를 불러올려고 하느냐면서 말을 잡아 끌다가, 나중에는 다른 수학과 교수들과 연락하고 있다는 식으로 가격 협상을 하려고 하셨다. 외람되지만 수학과 교수님들 중에 Bellman equation 으로 모델 만들고, 그 때 state variable이 너무 많다는 이유로 손으로 푸는 대신 컴퓨터의 Trial-and-error 방식으로 문제를 풀어보신 분은 아마도… 없을 것이다. 물리학 하시는 분들이나 기계공학 하시는 분들이 비슷한 작업을 하시는걸 본 기억은 난다. (그런 수학 방법론을 쓰셨다는 이야기지 머신러닝에 활용했다는 이야기 하는건 아니다.)

나중엔 Proto-type을 만드는 견적을 달라고 하시던데, 이건 뭐, 저런 연구과제가 어떻게 돌아가야되는지 전혀 모르는 분이나 하는 질문이 아닐까? 금액을 불렀더니 아예 답장도 안 주더라. 답장도 안 하는 정도의 무례한 사람에게 왜 내가 시간 낭비를 했을까?

 

모 의학 스타트업 Case – 사업 아이디어를 전부 만들어주세요

어느 의학 스타트업에서 생체데이터와 자기들 내부 데이터를 “분석”하여 모델 구축 후 (“분석”이라는 단어를 쓴 것부터 이미 이 블로그를 대충 봤다는 티가 났었다), 그 데이터를 리얼타임으로 “분석”하면서 의사결정을 예측하는 앱을 개발하고 싶단다. 그러면서 마지막에 앱 만드는 부분만 자기가 할테니 앞 부분을 다 만들 수 있냐, 가격은 얼마냐는 질문을 받았다.

그 스타트업 관계자의 익명성을 위해서 구체적으로 무슨 데이터였는지에 대한 정보는 생략한다.

이 회사의 홈페이지를 들어가면 딱 저 사업 모델로 “혁신”을 갖고 온다고 써 놨다. 설립일이 2018년 2월로 되어 있고, 약 30억 정도의 투자금을 받았던데, 위의 요구사항 메일을 봤을 때 1년동안 저걸 시도해보다가 내부적으로 실패하고 “실력자(?)”로 짐작되는 사람에게 외주를 주는 방식으로 해결하려고 한다는 사실을 감 잡을 수 있다. (관계자님, 제 짐작이 틀렸다면 사과드립니다.)

완전히 남의 사업 모델을 하나 다 만들어달라는 급의 요구를 하는데, 의학 데이터는 필자가 잘 모르는 분야이기도 하고, Pabii 사업이 바빠 시간을 쓰고 싶진 않았지만 그래도 돈 없는 스타트업 입장에서 직원 분들 월급도 주고, 설비도 들여놓고, 외부 마케팅 비용도 벌어야되니 돈만 많이 주면 해 주겠다고 크게 양보를 했다.

사업 모델을 들어봤을 때, 그들이 말하는 데이터가 리서치 할 수 있는 수준으로 이미 확보되어 있다는 전제아래, 1단계 모델링 작업, 2단계 실시간 처리용 개발작업, 3단계 앱 개발 작업으로 나뉜다고 말씀드렸더니, 그럼 (돈 좀 아끼고 싶으니까) 1단계만 부탁하고 싶단다. 근데 실시간 처리용 개발하려면 서버에 저 모델을 어떻게 얹어야하고, DB는 어떻게 설계해야하는지 계속 저랑 커뮤니케이션해야될텐데요? 그건 공짜로???

우리 Pabii의 DSP 사업 모델만해도 최소 10억 이상의 초기 투자금이 필요한 서비스다. 그 사이에 이것저것 돈 들어갈 일이 많고, 솔직히 말해서 10억원도 턱없이 부족하다고 생각한다. 그나마 다행인 부분은 연구, 개발 분야에 외주 줄 필요가 없을만큼의 인력이 모여있기 때문에 “도전” 부분에서는 비용이 절감(?)될 뿐이다.

반면, 저 의학 스타트업은 자기네의 핵심 모델을 개발하는 작업을 완전히 외주줘야할만큼 연구 수준이 낮은, 말 그대로 “이빨로 투자받은” 상태인데, 이런 외주에는 얼마를 쓰는게 맞을까?

필자가 같은 상황이었으면 아예 창업을 하지 않았거나, 아무리 많은 돈이 필요해도 저런 모델링을 할 수 있는 데이터 사이언티스트 찾아 삼만리를 했을 것이다.

필자가 잠깐 겪었던 미국의 어느 스타트업은 이름만 파이낸스 박사지 사실 세부 전공은 아무 관련이 없는 교수 하나를 감사로 임명하고, 통계학 석사 출신 중국인 하나에게 특정 모델을 만들라고 시켰다가 그 중국인이 탈출하고 필자를 뽑았었다. 면접 숙제라고 나오는 내용들이 모조리 경쟁사 모델 replication인데 가이드가 너무 없어서 이상하다고 생각했다가, 회사 들어가자마자 이 사람들이 모델도 없고, 나한테 모델 만들라고 할꺼면서 지분을 0.0x%만 주려는 무개념 욕심꾸러기라는 사실을 깨닫고 탈출했었다. (그리고 그 회사는 얼마전 투자금을 다 소진하고 청산 절차를 밟았더라.)

앱 하나 만들면서 몇가지 알려진 기능을 구현해달라고 개발자를 찾는 것도 아니고, Seed에 30억이 넘는 투자금액이 들어오는 “상상속의 도전”을 시도하는 회사가 자기네 연구 능력 부족으로 외주를 주게되면 얼마를 써야할지 지금도 잘 모르겠다. 모르긴 몰라도 전세계에 당신들이 원하는대로 연구 결과물을 뽑아낼 수 있는 사람이 몇 명 없을 것이다.

 

어느 대기업(들) – 데이터 사이언티스트 있는 스타트업 하나 인수하면 되는거 아냐?

최소 2개의 국내 대기업들에서 만났던 편견이다. 데이터 사이언티스트라고 뽑은 인력들이 사실은 Data Engineer거나, Data Analyst라고 냉정하게 평가해줬더니, 그럼 데이터 사이언스 프로젝트 외주 주지말고 아예 Data Scientist 있는 스타트업 하나 인수하면 되는거 아니냐는 식으로 전략을 바꾸더라.

처음 겪었던 대기업 1번은 학부생들이 우리 페X스북에서 인턴해봤던 데이터 사이언티스트에요~ 라고 팀 만들어놓은 걸 보고, “Acqui-hire” (인재 고용을 위해서 신생 스타트업 팀을 통째로 인수하는 것)를 시도하고 있더라. 당시 그 분들이 옵션 중 하나로 뒀던 중형급 스타트업은 핵심 사업 모델을 모 대학교에 있는 어느 교수한테 외주를 주고 있는데, 그 교수는 그쪽 시장이 어떻게 움직이는지에 대해서 굉장히 얊은 이해를 가진 분이었고, Acqui-hire 하려고 했던 그 학부생 스타트업은 학부 수준 통계학을 이것저것 적용해본 걸로 블로깅하는 기초 수준이었다. 더불어 고민하셨던 투자 옵션이 관련 비지니스를 몇 달동안해서 이것저것 개발해봤다는 초짜 개발자들 스타트업에 지분 투자하는 거였던걸로 기억한다.

참고로 관련 비지니스를 몇 달동안 해 봤다는 그 스타트업은 비지니스 모델이 제대로 안 돌아가니 국내 유명 K대학 학부생 동아리!!!!! 애들과 업무 협조를 해서 “인터넷으로 배운” 비지니스 모델을 구현하겠다고 시도하고 있었다. (후에 관계자에게 뒷 이야길 들어보면 동아리!!!!!와는 결별했고, 인터넷으로 배운 탓에 Client쪽 서비스를 어떻게 만들어야하는지를 모른채 2년을 허비했단다. 연구 프로젝트를 인터넷으로 배우고, 학부 동아리!!!!! 와 업무 협조로 풀어낸다고??? 도대체 어떤 전공이 이런 수준으로 연구를 하나??)

대기업 2번은 인력 채용이 힘들다고 실리콘밸리까지가서 소형 스타트업 하나를 인수했다. 그 스타트업이 뭔가 데이터가 엄청나게 많은 것처럼 주장하고, 사업 모델이 빵빵한 것처럼 이야기했지만, 정작 제대로 된 데이터 사이언티스트 하나 없이 엔지니어들이 글 첫머리의 안드로이드 개발자 사례처럼 이것저것 주워붙이기 하던 상황이었고, 그나마 좀 똘똘했던 중국인 데이터 사이언티스트는 인수된 후 얼마 지나지 않아 다른 회사로 이직해버렸다고 하더라. 결국 데이터 사이언티스트 하나 없는 쭉쩡이 스타트업을 인수한 꼴이 됐다.

저 위의 2개 대기업은 모두 오너 레벨에서 데이터 인력을 키워야한다고 목소리를 높이고, 외부 인재를 열심히 영입하고 있는걸로 유명한 회사들이다. 그런데, 이렇게 말해서 정말 미안하지만 필자가 보기에 저정도면 잘하겠다 싶은 데이터 사이언티스트 뽑은 걸 아직 못 봤다.

 

나가며 – 개발? 연구!!

1년 반쯤 전에, 데이터 컨설팅 회사에 재직 중이라는 통계학과 졸업생을 만난적이 있다. 자기네 회사에 통계학 교수와 공학 교수가 Co-founder이기 때문에 믿고 왔는데, 정작 회사에는 공대 분들이 통계학적으로 틀린 작업들을 코드 복붙해서 하고 있고, 교수님들은 이해를 못하는건지 관심이 없는건지, 이름 값으로 프로젝트 따는데만 관심이 있는건지, 결과물은 그냥 그 상태로 고객사에 전달되고 있단다. 자기는 아무 말도 못하고 따라만 가고 있을 수 밖에 없는 사실이 너무 괴롭다며 불평을 했었다.

아마 필자를 찾아왔던 저 위의 회사들 중 상당수가 필자가 부른 “견적”에 깜놀!하고 그 통계학과 졸업생 분이 계신 데이터 컨설팅 회사 수준의 인력에게 외주 프로젝트를 맡기고 있을 것이다. 그리고 결과물이 마음에 안 들면 데이터 사이언스라는거 그거 별거 없는거라고 불평불만을 털어놓으시겠지.

직장 초년병 시절에 있었던 외국계 증권사의 IBD팀은 M&A건당 엄청난 금액의 수수료를 요구했었고, 당시 필자와 비슷한 인력 풀의 친구들이 들어갈려고 갈망했던 외국계 전략 컨설팅 회사들도 파트너 급들이 국내 대기업들에게 깜놀!!할 자문료를 요구했던 기억이 생생하다. 인턴도 한 두달 훈련만 시키면 했던 수준의 외국계 증권사 업무나 전략 컨설팅 업무도 아니고, 그들보다 훨씬 더 Academic challenge의 레벨이 높고, 단순한 “직장 경력”만으로는 명함도 못 내미는 연구 프로젝트들을 외주로 맡기려고 하면서, 심지어 자기들은 퀄리티의 차이도 잘 인지 못하면서, 왜들 저렇게 푼돈으로 해결하려고 하는걸까?

푼돈으로 외주 주려다가 피본 사례 중 IT업계 예시가 아닌, 실제 눈으로 보고 겪은 사례 하나만 여담으로 공유한다. 2008년, D모 외국계 증권사 IBD 막내 시절, 지방의 어느 백화점 업체가 매물로 나온 모 화장품 업체 인수전에 뛰어들겠다고 당시 재직 회사를 찾아왔었다. 시장에서 예상했던 딜 사이즈가 대략 3천~4천억 정도였는데, 그에 맞춰 우리 수임료를 불러주니 놀란 황소 눈이 되었던 그 회사 담당자의 눈이 아직도 선하다. 결국 무늬만 IB고 자금 지원 능력이나 딜리버리 능력이 전혀 없는 어느 국내 증권사를 선임해서 인수전에 뛰어들었던 게 기억난다. 당시 인수 후보가 많았던 탓에 1차, 2차 라운드로 인수 후보들을 걸렀는데, 첫 라운드에 떨어져 나가더라. (담당자들의 뒷 이야기를 들어보면 아예 서류조차 제대로 읽지 않았던 후보란다.) 당시에 윗 분들이 “우리랑 팀을 짜도 힘들었을텐데 겨우 국내 증권사 써서 되겠냐 쯧쯧”이라고 혀를 찼었다. 그로부터 3년도 지나지 않아 서울의 대형 백화점들이 지방 상권을 싹 장악하면서 그 지방 백화점은 몰락의 길을 걸었다. 당시에 회사의 생존을 위해서 사생결단을 내렸어야했던 타이밍인데, 겨우(?) 몇 십억의 수임료를 아끼려다가 지방 유지 3대가 평생을 바쳐 일궜던 사업체는 백발과 주름살에만 흔적이 남은 회사가 되어 버렸다.

한국의 Software Engineering 관련 비지니스 대부분이 건설업의 그것처럼 하청, 하청의 하청 같은 방식으로 운영되는걸 자주 듣는다. 근데, 위에 예시를 든 Data Science 프로젝트 대부분이 개발 인력 몇 명으로 해결되는게 아니라, 똑똑이들 잔뜩 모아놓은 스타트업들의 운명을 걸고 해야하는 수준의 대형 연구 과제급 사업모델이라는 걸 인지하고나도 여전히 개발 외주 주듯이 후려치기를 할까? 아예 몇 백억을 주고 Acqui-hire를 해도 핵심 인력인 Data Scientist가 이직해버리는 판국인데?

전관 예우를 받는 변호사를 고용하고, Track record가 엄청난 외국계 증권사를 고용할 때, 그 때 만나던 지적 능력과 희소성을 갖춘 인력들에게 외주를 줘야한다는 사실, 당신이 원하는걸 해 줄 수 있는 사람이 거의 없다는 사실을 좀 인지하고 외주 프로젝트 이야기를 꺼냈으면 좋겠다.

“몇 천만원 정도 쓰면 되나요?”라는 (모욕적인) 질문은 그만 받았으면 한다.

 


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

얼마전 의학 연구직으로 있는 학창 시절 친구를 만났다. 자기네가 데이터 작업을 하고 있는데, 여기에 머신러닝인지 인공지능인지라는걸 쓰면 뭔가 좀 더 획기적인 정보를 찾아낼 수 있냐고 묻더라.

논문을 한 번 읽고, 두 번 읽고, 세 번 읽고, 아무리 생각해봐도 별 대단할게 없는 사회학자들 데이터 리서치하는 수준의 정보들인데, 여기에 머신러닝을 어떻게 써보겠다는건지 잘 이해가 안 되더라. Pabii 수업 시간에 계속 주장하는대로, 데이터에 Non-linear 패턴이 없으면 머신러닝이라는 계산 작업은 아무런 의미가 없다. Linear 관계를 찾는 작업, 특히 데이터 샘플이 랜덤 오차를 갖고 있는 경우라면 단순한 OLS가 최적의 Estimation 방법이기 때문이다.

굳이 뭔가 더 작업을 해 보겠다면 Latent variable을 찾아내기 위해서 Factor Analysis를 해 볼 수는 있다. 근데, 그렇게 찾아낸 Factor들에 이름을 달아주지 않고 의학 저널에 논문을 Publish 할 수 있을까? 적어도 내 연구 필드에서는 (거의) 불가능한 부분이었기 때문에, 의학 저널들이 제대로 통계 스터디를 한 논문에게만 bar를 넘을 수 있도록 해 준다면 어렵지 않을까 싶다.

(Source: Powerful Medical)

 

그럼 좋은 논문이란 뭘까?

몇 달 전에 수업에 찾아오셨던 약학 전공자 분이 수업 끝에 Nature 논문 하나를 보여주시던데, 거기에 딱 위의 Factor Analysis 개념을 활용한 Neural Network 모델이 있었다. 참고로 이런 모델의 공식 명칭은 Auto-encoder다.

약학 쪽 지식을 하나도 안 갖고 있기 때문에 무슨 말인지는 몰랐지만, 어쨌건 입력 변수 n개는 매우 많았는데, 이걸 5개의 Key element들로 추려내려고 Auto encoder를 활용했고, 그래서 이전과는 다른 결과값을 찾아냈다는게 논문의 요지였다.

분명히 그들이 찾아낸 결과값이 충격적이었기 때문에 Nature라는 어마어마한 저널에 출판이 되었을 것이라고 생각한다. 여기서 Auto encoder의 역할은 통계학 수업 때 배우는 Factor Analysis를 좀 더 그래픽 모델 스럽게 구현한 것에 불과하다. (좀 더 수학적으로 정확하게 이야기하면, Latent variable을 찾아내는 계산을 Linear말고 Non-linear하게 했다는 뜻이다.) 말을 바꾸면, Auto encoder를 썼기 때문에 그 논문이 Nature에 나가는 대박 논문이 된게 아니라, (Non-linear) Factor Analysis 덕분에 남들이 그 동안 찾지 못했던 결과를 찾아낸 것이라고 봐야한다.

글 첫머리에 이야기한 그 의학 연구직에 있는 친구가 필자를 찾아온 것은 아마도 본말이 전도된 정보를 들었기 때문일 것이다. 의학 분야에서 도메인 지식이 하나도 없는 필자가 그 친구를 도와줄 수 있는 것은 모델 코드를 쳐 주고, 특정 모델이 왜 작동하지 않는지, 어떤 모델을 쓰는게 논리적으로 맞는 건지에 대한 통계학적 경험을 전달해 줄 수 밖에 없다.

아주 최근에는 비슷한 일을 의학 교수님 한 분과도 겪어 봤다. 특별히 대단할 것 없는 Non-linear regression을 돌린 모델이 들어간 논문인데, 그 분야에서는 뭔가 중요한 결론이었을지 모르지만, 통계 모델만 봤을 때는 “오~ 여기에 머신러닝의 Ensemble 모델을 쓰면 결과를 완전히 뒤 엎을 수 있습니다” 따위의 코멘트는 할 수 없는 논문이었다. 기대한 것과 다르다고 불편한 답장을 보내셨는데, 뭐라 할 말이 없더라. (Pabii 수업까지 한 달 들으신 분인데, 이분 수업 헛들었다는 생각이 들어서 메일 받고 좀 기분이 나빴다.)

아마도 거의 대부분의 연구들이 다루는 데이터가 Non-linear 패턴을 갖고 있는 데이터가 아닐 것이다. 빅데이터 정의하는 글을 이미 여러번 썼지만, 데이터가 랜덤 오차를 갖고 있으면 Linear 계산법이 맞고, 당연하겠지만 머신러닝 모델을 쓸 수 있는 여지는 확 줄어든다.

 

머신러닝 방법론을 쓴다는 (양산형) 논문들

설령 Non-linear 계산법들 (속칭 머신러닝 계산법)을 써서 약간 더 Fitting이 좋게 나왔다고 해도, 그 방법론에 절대적인 믿음을 가지지는 말았으면 하는게, 모든 데이터는 약간의 오차를 항상 갖고 있고, 그 오차 때문에 일부 Non-linear 모델들의 Fitting이 좀 더 좋게 나오는게 그렇게 놀라운 일은 아니다. 다만, 데이터 셋이 바뀔 때마다 Fitting이 더 잘 나왔던 모델이 지속적으로 높은 Fitting을 보여줄 확률은 매우 낮다. 약간의 오차를 더 잘 잡아내는데는 도움이 되었지만, 오차의 형태가 바뀌면 더 이상 Fitting을 높게 유지할 수 없기 때문이다.

가끔씩 받는 의학 분야 저널 논문을 보면, 거의 대부분이 Multivariate Linear regression vs. 머신러닝 계산법 10가지 비교를 통해, 머신러닝 계산법 중 어떤 특정 계산법이 제일 좋더라는 결론을 내고 있다. 이해가 되는 부분은, 그 분들이 다루는 데이터 중 일부는 구간별로 유의미함이 달라지는 경우 (ex. 5~10, 20~30 구간만 영향을 주고, 나머지는 효과 x)이거나 , 병이 걸린 환자들을 대상으로한 데이터이기 때문이다. 앞의 경우는 Tree 계열 모델들이 Euclidean space에서의 계산법보다 더 fitting이 잘 나오는게 당연하고, 뒤의 경우는 데이터 자체가 이미 Multi-pattern을 갖고 있다고 봐야한다. 머신러닝 계산법 10가지를 다 써보고 그 중에 어떤 방법이 제일 낫더라는 결과론적인 계산값들을 공유한 기초적인 논문들이 SCI 논문이라고 나오는걸 보면 내 입장에서는 황당할 수 밖에 없다.

정말 제대로 된 리서치라고 하려면, 데이터의 형태에 맞춰 Tree 계열 모델을 써야할지, Euclidean space 기반의 모델을 써야할지에 대한 적절한 판단을 내려서, Tree 계열 모델을 쓰기로 결론 내렸으면 어떤 계산법을 써야하고, 데이터는 어떻게 처리하는게 맞는지에 대한 고민을 해야하지 않을까? 머신러닝 모델 10개를 다 써 봤더니 뭐가 제일 좋더라….는 정말 심각하게 잘못된, 학부 수준도 안 되는 적용방법이다. 머신러닝 모델 10개를 우리 데이터 셋에 맞게 어떻게 고친 상태에서 돌려봤더니 어떤 모델이 제일 좋더라고 하면 백번 양보해서 타협할 수 있다. 그 전에 데이터 전처리가 더 우선이기는 하겠지만… 의학을 하나도 모르는 통계학자는 그 동네 상황을 잘 모르니 데이터 전처리를 함부로 할 수 없다. 의학 하시는 분들이 방법론을 공부하거나, 통계학 하시는 분들이 의학 공부를 하시는 수 밖에.

 

계산법을 갖다쓰지말고 데이터를 전처리하면?

공학이나 사회학으로 가도 상황이 비슷비슷하더라. 필자가 위의 구간별 유의미성이 다른 데이터를 다루고 있었으면, 어떤 형태로 튀어나올지 예측 불가능한 Non-parametric 모델 (ex. Tree 계열 모델들)을 쓸게 아니라, 데이터를 가공했을 것이다. 효과가 있는 투약 구간이 5~10, 20~30이면, 그 구간에 걸리는 대상들을 1, 나머지는 0으로 놓는 Dummy 변수를 하나 더 추가하면 기존의 Multivariate regression 모델로 충분히 좋은 결과를 낼 수 있다.

Multivariate Regression 계열의 모델들은 어떤 변수가 어느 정도의 효과를 갖는지를 눈으로 직접 보고 직관적으로 쉽게 확인할 수 있다는 장점이 있기 때문에 글로벌 IT회사들이 Classification을 할 때 괜히 복잡한 Kernel SVM이나 Tree기반 Random Forest, Gradient Boosting을 쓰는대신 Logistic regression을 쓴다. (사실 그런 Kernel function을 쓰는 작업도 데이터 전처리로 치환할 수 있으니까.) 위와 같이 데이터 전처리를 살짝만 하면 충분히 Logit을 쓸 수 있다는 사실을 인지하고 있고, Logit이 관리에 더 적합한 모델이라는 사실을 아는 사람들이 굳이 다른 모델들에 관심을 가질까?

머신러닝 방법론을 쓴다는 양산형 논문들이 가지는 가장 큰 문제가 바로, “잘 모르니까 덮어놓고 이것저것 다 써 봤더니 어떤게 제일 좋더라”는 저급한 이해도에서 출발했다는 점이다. 학위 과정 중에, 평소에 데이터로 공부하는 중에 한번이라도 데이터의 형태를 변형해서 원하는 모델과 매칭시키는 작업을 해 봤다면 저런 논문을 쓰게 될까?

저런 계산법만 갖다써서 Non-linear 계산법 중 어떤 방법이 더 좋다는 결론을 특정 데이터 셋에서 얻어내고 난 다음 스텝은 뭘까? 다른 데이터 셋에서는 그 계산법과 유사하지만 다른 계산법이 더 Fitting이 좋다는 결론이 얼마든지 나올 수 있는데?

비슷한 여러개의 샘플에서 지속적으로 특정 군의 계산법이 더 Fitting이 좋게나오면, 이 데이터는 어떤 특정한 구조를 갖고 있겠구나는 결론을 내리고, 그 구조를 찾아내서, 그동안은 못 찾았던 병리학적인 원인-결과 관계를 찾아내는게 더 적합한 “연구”가 아닐까? 위의 약학에서 Autoencoder 썼다는 논문에서 저자들의 의도가 정말로 그랬는지는 모르겠지만, 결과론적으로 봤을 때는 100개가 넘는 변수들은 결국 5개의 Factor들로 정리될 수 있다는 결론, 그게 특정 약의 적용 기제와 연결되어 있다는 걸 알려줬기 때문에 Nature라는 초특급 저널에 실릴 수 있었을 것이라고 생각한다.

이래서 머신러닝에서 쓰는 계산법을 소개하는 수업 대신 기본적인 통계학 훈련을 더 받아야한다고 주장하는 것이다.

 

나가며 – 머신러닝? 데이터 전처리와 모델링이 먼저다!

뱅킹 시절 인턴으로 썼던 학부 후배가 모 투자사에 있어 Pabii의 사업 모델을 이야기 한 적이 있다. 스마트폰에 앱을 깔고, 그 데이터들을 가공해서 광고주들이 원하는 사람에게 Target 광고를 뿌릴 수 있도록 해 준다는 단순 요약한 아이디어를 던졌더니, 왜 고생스럽게 스마트폰에 앱을 깔게 하느냐, 그냥 광고주들한테 데이터 받으면 되는거 아니냐는 반문을 받았었다. 그거 남들이 이미 다 하고 있다고, 근데 그런 데이터로 할 수 있는 작업이 한계가 있어서, 아예 개인 스마트폰에서 더 핵심적인 데이터를 받아와야 시장 구조를 바꿀 수 있다고 설명해줬는데, 왜 그런 데이터가 필요한지 도무지 이해를 못 하는 표정이어서 좀 안타까웠다.

위의 의학 연구직군 분들이 데이터 사이언스에 대한 과도한 기대를 갖고 있는 부분과 Pabii 사업모델에 학부 후배가 던진 반문의 공통점은 뭘까? 어떤 데이터가 있어야, 어떻게 전처리해야 데이터 사이언스 모델이 파워를 발휘할 수 있는지에 대한 이해가 좀 더 깊었다면 그런 대화를 굳이 하지 않았어도 되었을 것이다.

수업시간 마지막에 잠깐 이야기하지만, 결국은 계산법 싸움이 아니라 데이터 싸움, 모델링 테크닉 싸움이고, 데이터를 많이 갖고 있다의 싸움이 아니라, 필요한 데이터를 갖고 있느냐의 싸움, 그 데이터를 어떻게 가공해서 적절한 모델을 만들어 낼 수 있느냐의 싸움으로 귀결이 된다. (수학적으로는 Target vector space를 커버할 수 있는 Data를 갖고 있느냐, 필요에 따라 vector space를 Kernel transformation할 수 있느냐, 그 kernel처리된 vector space를 설명하는 방정식을 찾을 수 있느냐로 바꿔 쓸 수 있겠다.)

데이터 사이언스의 어떤 테크닉(계산법, ex. Deep Learning)을 이용하면 대박이 난다는 단순한 관점에서 벗어난 사람들이 좀 많아졌으면 좋겠다.

아마존(Amazon.com)이 인공지능 인력 채용 프로그램을 폐기했다는 신문 기사가 떴다. 짜놓은 알고리즘을 따라가면 여성 지원자들을 안 뽑는 방식으로 결론이 나온단다.

(Source: Reuters)

저 프로세스에 대한 기술적인 평가나 도덕적인 판단을 내리기 전에, 일반적인 서류 선별 (Resume screening) 작업을 한번 생각해보자.

대학 졸업반 시절에 B 모 전략컨설팅 회사에서 잠깐 인턴을 했던 적이 있다. 그만 둘 날짜가 며칠 안 남은 상황이었는데, 우리 팀 Associate (말단 컨설턴트)이 HR팀 데스크에 잠깐 가서 산더미처럼 쌓여있는 Resume들을 휙휙휙휙휙휙~~~ 손으로 넘겨보더라. 최소한 2, 300장은 쌓여있었던거 같은데, 그 분이 스캔하는 시간은 1분이 채 지나지 않았다. (한 장에 1분이 아니라, 300장 전체에 1분..) 5장 정도를 뽑더니, HR 팀 담당자한테 전화 인터뷰 스케줄 잡아달라고 부탁하는 모습을 봤었다.

뱅킹 일하던 시절에 너무 심하게 개인 소개로 추천 받은 분들 중에서만 인턴을 뽑는 것 같아서 모교 게시판에 한번 Job Posting을 한 적이 있었는데, 정말 하룻밤만에 100명이 넘는 지원 메일을 받았었다.

그런 경험을 미뤄볼 때, Amazon같은 회사가 Job Posting을 하나 올리면, 아무리 요구 스킬을 맞추기 어려워도 1주일 안에 최소 몇 백명이 지원서를 날릴 것이라는데 의구심의 여지가 없다.

저런 Resume들을 하나하나 꼼꼼하게 봐주는게 지원자에 대한 예의겠지만, 다른 한편으로 회사 입장에서도 HR 프로세스를 최대한 효율적으로 해야할 필요가 있다.

이런 상황에서 당신이 오너라면 어떤 결정을 내리겠나? 연봉 15만불을 주고 있는 Associate에게 일하는 시간을 쪼개서 면접 보라고 하는 것도 돈 아까운 판국에, Resume screening 하고 있으라고 하고 싶은가? 면접은 몰라도 Resume screening 만큼은 돈 or 시간을 아끼고 싶은게 당연지사라고 본다. (자본주의 사회니까)

 

자동화 알고리즘 Recruiter 1 – 영문 이력서의 특징

아마존의 AI Recruiter 프로그램은 그런 이유 때문에 만들어졌을 것이다. 지원자의 Resume에 있는 단어들을 scrapping해서 연봉 협상 단계까지 간 그룹(1)과 면접 중에 탈락했던 그룹(0) 데이터로 or 일 잘해서 내부 성과 평점을 높게 받은 직원 그룹 (1)과 아닌 그룹 (0)으로 정리한 데이터로 모델을 만들었을 것 같다. 단어 처리를 어떻게 했을지는 구체적으로 알 수 없지만, 아마도 중요 단어 or 문장이 resume에 적혀있는지 여부에 따라서 0~1 사이의 특정 점수를 각각의 Resume에 부여했을 것이다. 챗봇도 아니고, Resume에 들어가는 단어의 종류가 많지 않으니 Natural Language Process (NLP) 치고 꽤나 가벼운 모델이었을 것이라고 짐작된다.

참고로, 영어권의 Resume는 우리나라 이력서처럼 생기지 않았다. 어느 직장에서 어떤 Role을 했는지를 쓰는게 아니라, 어떤 Project를 하면서 뭘 배웠고, 무슨 기여를 했는지를 짧은 2-3개 Bullet point로 정리해놓은게 일상이다. 학교 어디나왔다는 이야기 쓸 때도 마찬가지다. 우리나라처럼 X대 Y학과 몇 년도 졸업을 쓰고 끝내는게 아니라, 무슨 specialty로 공부했고, 어떤 부분에 특화된 공부를 했는지, 재학 중에 무슨 Project를 했는지 등등을 쓴다. 모든 걸 다 떠나서 한국처럼 사진 넣은 이력서는 진짜 아무도 안 쓴다 ㅋㅋ (평생 한국말로 이력서를 써 본적이 없어서 pabii 사람 뽑는데 가끔 그런 이력서 받으면 놀란다.  헉~)

우리나라처럼 여학교 출신 인력이 상당수를 차지하는 나라도 아니고, 전공 선택을 하는데 이슬람 국가처럼 남자들이 하는 전공이 따로 있다고 강제하지도 않는다. 그런데도 불구하고 남/녀 차별이 있었다면 그건 순전히 단어와 문장 구성의 차이에서 비롯된 것이라고 봐야한다.

(Source: itakeactions.org)

 

자동화 알고리즘 Recruiter 2 – 상관관계 vs. 인과관계

자기 Resume에 쓴 단어로 불합격자 or 합격자 스타일이라는 결론을 내리는 것과 성별로 차별하는 것과의 연관관계는 무엇일까? 둘의 상관관계 (Correlation)는 굉장히 높았을지 모른다. 저런 언론 기사를 보면 꽤나 높았나보다. 근데, 상관관계와 별개로 내가 선택한 단어와 성별간의 인과관계 (Causation)는 없어야 한다. 남녀간 능력의 차이가 없다면 말이다.

우리나라 사람들이 유학갈 때 유학원의 도움을 받은 Essay를 보면 천편일률적이고 비슷한 단어들 판박이다. 그런데 영어권에서는 그런 Cookie-cutter essay (틀에 박힌 구조의 에세이)를 심한경우에는 표절(Plagiarism)로 생각한다. 그런 문화권에서는 자기 이력서는 당연히 자기가 작성하고, 자기만의 스타일이 녹아날 수 밖에 없다.

자기 스타일이 녹아들어가 있는 이력서가 Amazon 기준에서 합격자들 스타일이 아니라고 판단을 내리는건데, 여성이 대부분 배제되었다는 이유로 여성 차별로 몰고 갈 수 있을까?

내가 이력서에 선택한 단어와 문장 구조는 내 능력을 보여주는 지표 중 하나다. 내 성별을 보여주는 지표가 아니라.

결과적으로 여성 인력이 배제되었다는 이유로 모델링 과정에서 여성을 차별했다고 판단해서는 안 된다.

 

자동화 알고리즘 Recruiter 3 – 데이터 Feeding / Classification

국X일보 사설에서 “여성차별하는 AI”라고 지적하신 분은 Amazon이 남성 인력을 잔뜩 보유한 회사이기 때문에, IT업계에 남성 인력이 압도적으로 많기 때문에, 그런 데이터만 이용해서 모델을 만들면 당연히 저런 결론이 나온다고 하셨다.

저 가정에 대한 대답을 하기 전에, IT회사들 인력 상황을 간단하게 살펴보자. IT업 특성상 “개발자”라고 불리는 직군의 비중이 크다. 어느 회사를 가나 개발 직군에 있는 여성 인력을 만나기는 쉽지 않다. 근데, UI/UX 담당팀, 세일즈 팀 같은데를 가 보면 정반대다. 여성 인력이 상당하다. IT업계도 사업하는 회사기 때문에 여러 직군의 일이 다 있고, 아마존이 최소한의 합리성을 갖고 저 AI Recruiter라는 걸 만들었다면 당연히 직군별로 다른 값을 넣거나, 다른 모델을 썼을 것이다.

IT업계에 남성 인력이 압도적으로 많기 때문에 남성 위주의 알고리즘이 만들어졌을 것이라는 주장이 맞으려면 팀 구분없이, 개발자들만 왕창있는 회사들 기준으로 모델이 만들어졌어야한다. 위에 링크를 건 Reuter 기사에 따르면 Amazon 전체로 보더라도 여성인력이 최소한 30%는 된다.

성차별적인 데이터를 입력했던 것이 아니라, 성별에 관계없이 문자열만 넣은 데이터에서 나온 결론이 하필이면 성차별적인 결론과 인과관계도 아니고 상관관계만 높았던 것에 불과하다.

 

나가며 – 모델링에 대한 잘못된 이해

한국에서 자연어처리 (NLP) 과정을 제대로 이해 못 하는 사람들이 저런 “Resume screener”를 만들었다면 어땠을까? 예전에 어느 인사팀에서 비슷한 일을 하는 걸 봤었는데, 인력의 신상명세에 해당하는 정보들을 전부 Column으로 만들어놨더라. 예를 들면 성별, 전공 종류, 학점, 입사 후 평가, 직급, 직책 등등의 정보들 몇년 치를 입력해놨었다. 아마 그 DB 만들었던 팀이 엄청나게 고생했을 것이다.

그렇게 구성한 데이터로 (Logistic) Regression 기반의 모델을 만들었다면 어떻게 되었을까?

성별 정보가 들어갔기 때문에 분명히 남, 여에 따라 결과값이 다르게 나왔을 때 모델의 성 차별적인 부분에 대한 지적이 가능할 것이다.

그런데, 위의 Amazon 모델은 단순하게 Resume에 쓴 단어들로 자연어처리만 했다. 영문 Resume 어디에도 성별을 구체적으로 써 놓거나, 심지어 짐작할 수도 없는데, 어떻게 남녀 차별적인 AI라고 할 수 있을까? 위에 언급했던대로 상관관계 (Correlation)가 있다는 이유로 인과관계 (Causation)가 있다는 결론을 내릴 수는 없다.

이 블로그에서 줄곧 이야기한대로, 저런 Resume screener가 “인공지능”이라고 생각하지는 않지만, 최소한 “남녀 차별적인”이라는 설명은 좀 억울한 설명일 것 같아 보인다.

어쩌다가 언론에 흘러나오게 되었는지, 또 무슨 이유로 더 이상 안 쓴다는 식으로 언론 플레이를 하고 있는지는 모르겠지만, 최소한 누명은 좀 벗겨 주고 싶었다. 데이터로 모델링하는 사람 입장에서 모델링 방식에 따라 충분히 편견을 배제한 모델링을 할 수 있는데, 너무 결과값만 놓고 상관관계와 인과관계를 혼동하며 누명을 씌우지는 말았으면 한다.