[리뷰] 데이터 과학자와 데이터 엔지니어를 위한 인터뷰 문답집
in Review on Review, Book, 데이터사이언스, 인터뷰, 면접, 딥러닝, 머신러닝, 강화학습
제이펍
출판사의"데이터 과학자와 데이터 엔지니어를 위한 인터뷰 문답집(Hulu 데이터 과학팀 저/주거웨 편/김태헌 역)"
를 읽고 작성한 리뷰입니다.
본 도서는 HULU(넷플릭스 대항마로 월트 디즈니가 설립한 OTT 서비스 회사) 15명의 데이터 과학자가 공저하였다.
HULU는 개인화 추천, 검색, 컨텐츠 이해, 광고 예측과 타기팅, 의사결정 서프트 등에 특화된 AI 기술을 다루고 있고, 저자들이 탄탄한 연구 실적을 쌓아와서일까 책 내용의 깊이가 남다른 것 같다.
읽은 소감을 먼저 전하자면 15인의 전문가들이 마치 앙상블 방식으로 저술
한 점이 마음에 든다. 개개인의 튼튼한 수학 기초는 물론 알고리즘 및 모델에 대한 깊은 이해를 집단 지성으로 녹인 듯 하다. 개인적으로는 국내에 나온 관련 서적 중 손에 꼽을 수 있는 Top-Tier 레벨의 책이라는 생각이 들었다.
책의 내용을 전체적으로 정리해보고 싶은 욕심이 있었지만 리뷰 수준으로는 분량을 감당하기 어려워 책의 장점과 학습법을 위주로 몇가지 토픽들을 정리해보았다.
메타 지식
데이터 사이언스 분야는 공부할 것이 너무 많아 시간이 매우 부족하기에 속도 보다는 방향이 중요하다. 메타지식을 먼저 접하여 좋은 방향을 설정하는 것도 시간을 줄여줄 수 있는 좋은 방법이다.이 책은 실무에서
80%를 차지하는 20%의 지식
을 메타지식으로 잘 정리한 책이다. 가장 중요한 것을 먼저 배울 수 있다.개인적인 경험으로는 이 분야를 학습할 때 삼천포로 빠지지 않기 위해 많은 노력을 기울여야 한다.
남들이 좋다는 논문을 가리지 않고 리뷰하면 만족감이나 수박 겉 핥기 지식이 쌓이기는 하는데 배후의 원리나 철학은 블랙박스로 남아있거나 잘 기억이 나지 않을 수 있다.
혹은 선대, 미방, 확통의 중요성을 늘 들어왔기에 책도 보고 논문도 들춰본다. 처음 보는 수학기호를 만나면 아! 내가 수학 기초가 정말 부족하구나라고 중얼거리면서 정수론, 집합론, 해석학 책을 구매하기 시작한다.
시간을 헛되이 보내지 않은 것 같은 만족감이 나를 위로 하긴 하지만 다시 현실로 돌아가면 여전히 할 수 있는게 없다. 학습은 열심히 했는데 실전에선 영 시원찮다.
일종의 과적합에 빠진 것 같다. 과적합을 피하기 위한 좋은 기법 중 하나가 Dropout이다. 학습에도 가지치기가 필요하다. 너무 불필요한 노드까지 다 학습하면 시간은 다 증발하고 현실에서 성능을 발휘하지 못한다.
이 책에는 중요한 핵심이 잘 드러난다. QnA의 구성 덕분인지
두괄식으로 우선순위
에 따라 서술된다.배깅과 부스팅을 예로 들면 배깅은 분산을 낮추데 효과적이고, 부스팅은 편향을 낮추는데 효과적이라고 먼저 알려주어 숲을 파악하기 쉽게 해준다.
예전에 어떤 책을 따라하다 성능이 저조한데도 원인도 제대로 파악 못하고 편향을 낮춰야 하는데 배깅으로 끙끙대고 했던 기억이 있기에 이런 두괄식 구성이 눈에 띄였다.
만약 AI 분야로 진로를 정한 입문자라면 먼저 이 책을 볼 것을 권유드리고 싶다. AI 기술 분야별로 자신에게 소질이 있거나 적성이 있어 보이는 분야를 먼저 찾기에 용이하기 때문이다. 최소한 이건 내가 죽었다 깨어나도 못하겠다는 분야 정도는 찾을 수 있다.
난이도는 결코 입문자급도 아니고 쉽지 않다. 깊은 수학적 원리가 정리된 챕터 같은 경우 이미 실무에 종사하고 있는 전문가분들도 어렵다는 평을 들었다.
하지만 일단 메타지식을 쌓고 비벼볼만한 영역을 찾아 읽어나가다 막히는 부분이 생기면 다른 입문서를 참조하면 된다. Top-Down 방식처럼 말이다. 비록 과적합에 빠질지라도 가장 알짜배기를 모아놓은 책이기에 투자대비 위험 부담이 적다.
그렇게 노력하다보면 스스로 하고 싶은 연구 혹은 진로 분야가 명확해지지 않을까?
실무 스킬과의 연계
본 도서의 또 다른 장점은 실무에서 활용되는 예시가 자주 등장한다는 것이다. 그간 경험한 사례와 비추어 유용했던 몇 가지 예시를 정리해 보았다.RMSE(평균제곱근오차)와 특이점
이 문제는 내가 겪은 문제이기도 하고 누구나 초보 시절 한 번은 겪을 법한 문제인데 RMSE(평균제곱근오차)가
특이점
에 민감하다는 내용이다.이론을 아는 수준에서 그치고 넘어가면 실제 상황에는 잘 기억이 나지 않는다. 직접 당해보고 해결한 후에나 다음 번에 주의를 기울이게 되는데 업계의 사례가 구체적으로 제시되기에 미리 간접 경험을 할 수 있고 이해도 쉬워진다.
이런 현상이 발생하는 원인을 수식을 통해 풀어보며 원리 깊숙히 들여다보기도 하고 나아가 전처리 과정에서의 필터링, 예측 성능 향상, 평가지표를 견고하게 만드는 등 또 다른 해결책이 제시되는 유기적으로 이어진 구성이 마음에 든다.
LDA
PCA의 원리를 배우고 예제를 따라해보며 자신감을 얻은 후 실전에 적용해보니 원하는 대로 동작하지 않은 적이 있었다.나중에야 클래스가 다른 레이블들의 차원 축소에는 LDA라는 기법이 도움이 된다는 사실을 알았는데 당시에는 LDA 지식이 이론으로만 머리속에서 따로 놀아 실전에서 유용한 해결 기법으로 매칭되지 않았다.
해당 파트를 읽어보니 어떤 상황에서 써야 하는지가 자세히 소개되어 처음부터 이 책을 통해 LDA를 배웠다면 큰 도움을 받을 수 있을거라는 아쉬움이 들었다. 특히, QnA 방식 구성이 실전에 필요한 집중력을 높여주는 것 같다.
클러스터링 경향성 측정
양질의 데이터가 넘치는 기업은 드문데 내가 다니는 회사도 마찬가지이다. 결국 비지도 학습에서 인사이트를 얻고자 노력하는 편인데 라벨이 없는 상태에서 클러스터링을 비교하는 일은 지식이 부족해 주로 R스퀘어 값이 많이 의존하는 편이었다.본 파트 덕분에 그동안 몰랐던 지식을 체계적으로 이해할 수 있었다. 예전에 데이터의 분포가 랜덤을 띄는지 파악할 필요가 생겼는데 방법을 몰라 생략한 적이 있다.
아래는
홉킨스 통계
를 사용한 랜덤성 여부를 판단하는 과정인데 설명이 짧고 깔끔해 이해하기 쉽다.클러스터링 품질을 측정하는 방법으로 실루엣 계수, RMSSTD, 후버트 통계량 등 여러 가지 기법이 제시된 점, 이론적으로 깔끔하게 정리된 점이 마음에 들었다.
다양한 분야의 머신러닝, 딥러닝 지식이 폭넓게 담겨있어 실전에서 모델링 후
체크리스트
로 활용하기에 좋겠다는 생각도 든다.
아이디어의 근간이 되는 기초 과학과의 접목
사실 이 장점은 개인적으로는 너무 마음에 들지만 독자에 따라 상황에 따라 호불호가 갈릴 것 같다. 인터뷰를 준비하는 독자의 시점에서 너무 이론 중심으로 치우친 것은 아닌가 싶을 정도로 각 아이디어는 철저히 원리를 파헤친다.예를 들어 아래 그림은 GANs 가치함수에 대해 수식 전개는 물론 아이디어의 원리까지 꼼꼼히 설명하는 부분이다.
이어 대량 확률추론 계산을 피하는 법, 훈련 중 발생하는 이슈, 와서스타인 거리, 추론 네트워크 등이 소개되기에 GANs의 발전 과정과 핵심 아이디어를 유기적으로 배울 수 있다.
수식이 난무하고 원리를 대충 지나가는 법이 없으니 수월치 않은 것도 사실이지만 실전에서
나의 문제에만, 나의 데이터에만
발생하는 문제에 대응하기 위해서는 원리의 이해가 필수라 생각한다.인터뷰에서 이 정도 깊이의 문제가 나오면 얼마나 나오냐 부정적으로 볼 수도 있을텐데 흔히 접하는 80%의 문제는 잘 외우기만 하면 된다. 하지만 면접관 분들이 외워서 해결되는 문제만 질문할까?
본 책에서도 저자 중 한 사람인 천라밍의 경우 지원자들의 경험에 맞춰 맞춤형 문제를 미리 만들어 간다 했다.
흔히 마주치기 어려운 20%의 문제에 대한 어떤 아이디어가 있는지, 빨리 해결할 수 있는 능력이 있는지 파악하기 위해 응용뒤에 숨겨진 원리를 물어보게 될텐데 이에 대한 대답이 승부수가 아닐까 한다.
예전에 본 어떤 영화에서 A에서 D를 유추하기까지 일반인들은 A, B, C, D를 하나씩 단계적으로 배워가야 하지만 천재들은 A에서 바로 D가 나온다고 한 대사가 기억에 남는다.
비숍의 PRML이 다들 칭송하는 책임에도 생각보다 우리 곁에 오래 머물지 않는 이유도 마찬가지가 아닐까? 우리는 B, C 를 알아야 하는데 자꾸 D만 이야기 하니 말이다.
그렇다고 언제까지 B, C를 피할수도 없고 피해서도 안되며 즐길 수 있어야 한다. B, C를 알고 싶은 호기심은 데이터 사이언스 분야에서 일하는 이들의 원동력이기도 하다. 저자 중 한 사람인 쉬샤오란의 말처럼 공리적인 이유나 현란한 기술을 뽐내기 위해 이 분야에 들어왔다면 금방 지치고 말것이기 때문이다.
이 책은 그런 B, C의 과정을 익히는데 제격이라는 생각이 든다. 수학을 근간으로 하면서도 설명은 직관적으로 서술하고자 노력한 흔적이 돋보인다. 행렬 분해가 어디에 응용되는지 자꾸 언급되기에 자연스레 선형대수에 호기심이 생길 수 밖에 없다.
용어, 수학, 원리, 선행연구와 더불어 다들
왜 그렇게 만들고 돌리는지
명확하게 알고 있어야 나에게만 닥칠 혼돈 속에서 길을 잃지 않고 방향을 잡을 수 있지 않을까?그렇게 경험이 쌓여야 기존 학문의 진의를 깨치고, 나아가 기존 학술 연구에 존재하는 편견과 고정관념에서 탈피해 자유로운 상상력을 펼 수 있을 것 같다.
만들줄 안다고 제대로 알고 있는걸까?
좋은 모델을 설계할 수 있다고, 잘 구현할 수 있다고, 데이터 분석을 능숙하게 한다고 해도 과연 제대로 알고 있는 것인지반문
하는 것은 스스로의 발전에 정말 중요하다고 생각한다.이 책에는 그런 점에서 스스로의 실력을 되돌아 볼 만한 날카로운 질문과 그에 대한 해답이 등장한다.
- N차원 입력의 임의의 부울함수는 최소 몇 개의 노드와 층을 필요로 할까?
- 부트스트래핑 과정 중 n이 무한대로 커진다면 한 번도 추출되지 않는 데이터 수는 얼마나 될지?
- 수치형 데이터에 왜 정규화를 해야 하는지?
- 신경망의 가중치를 0으로 초기화하면 무슨일이 벌어지는지?
왜 해야 하는지도 모르고 했던 많은 작업들의 진의를 알 수 있다면 실무에서 간혹 발생하는 안개를 뚫고 지나갈 수 있는 묘안도 얻을 수 있을 것이다.
융합에서 얻는 아이디어
데이터 사이언스 분야는 컴퓨터 과학, 통계학, 심리학, 신경과학, 인지과학, 사회학 등 방대한 스펙트럼이 폭넓게 융합된 학문인지라 모든 분야를 다 잘하는 사람은 있을 수가 없다.마찬가지로 아무리 전문가라 할 지라도 이 책에서 다루는 모든 분야를 완벽하게 다 알고 있는 사람은 드물 것이다. 책을 통해 잘 모르는 분야를 빠르게 익힌다면 연구 및 실무에
새로운 아이디어
를 떠올릴 수 있는 계기가 될지도 모른다.마치 GANs과 CNN이 융합하여 DCGAN이 탄생한 것 처럼 말이다.
인터뷰와 커리어
이 책의 주된 관심사는 아마도인터뷰
일 것 이다. 본 도서에서 다루는 인터뷰 문제는 실제 HULU 채용에 활용되었던 문제들이기에 이미 검증된 셈이다.Tensorflow, Pytorch 등 특정 플랫폼이나 언어의 구현 방법이나 팁 등은 다루지 않아 불만인 분들도 있을 것 같다. 하지만 그런 부분들은 지면상 모두 언급될 수도 없거니와 사실 참고할 만한 도서도 많다.
42p에는 아래와 같이 인터뷰에 대한 팁도 나온다. 중요한 핵심을 모두 담고있는 유용한 팁이 아닐까?
이런 부류의 책들이 더 많이 출간되었으면 좋겠다. 참고로 개인적으로 유용했던 인터넷 정보들도 같이 정리해본다.
- 변성윤님의 블로그
- Data Scientist 면접 질문들
- Cracking the Facebook Data Scientist Interview
- glassdoor
- 그 외 하용호님, 남세동님의 글도 있었으나 원본 링크는 사라졌고 대신 위 변성윤님 블로그에 같이 포함되어있다.
그 외 책을 읽으며 느꼈던 전반적인 내용들을 정리해 보겠다. 7장 최적화 및 9장 피드 포워드 신경망은 보통 대부분의 분들이 딥러닝, 머신러닝을 통해 입문하시기에 가장 친숙하실 것 같다. 책이 본인에게 맞는지 판단하려면 서점에서 7, 9장을 먼저 확인해보는 것도 좋을 것 같다.
1, 2장은 피처 엔지니어링과 모델 평가를 다루는데 쉬워보이지만 언제나 활용되는 매우 중요한 개념들이 가득하다. 특히 케이스가 다양하여 이론과 실제를 연동하기 힘든 부분 임에도 적은 지면에 필요한 내용을 잘 정리한 느낌이었다.
AI 분야에 처음 발을 딛는 일반인 혹은 입문자 분들이라면 15명 저자의 에필로그, 14장 인공지능의 응용 현황 부터 읽으신다면 발걸음이 좀 가벼울 것이다. 이미 지식이 있는 분들이라면 목차를 보고 늘 궁금했던 질문 순서로 읽는 것도 좋은 방법일 것 같다.
더불어 번역의 질이 매우 뛰어나 읽는데 매우 편하다. 역자의 또 다른 역서 단단한 머신러닝도 번역이 잘 되어 읽기 좋았다. 최근에 출간된 퀀트 전략을 위한 인공지능 트레이딩의 저자이기도 하다. 이 책 또한 특유의 매끄러운 전개 방식과 뛰어난 가독성이 일품이다.
데이터 사이언스 인터뷰를 준비하시는 지원자, 면접관은 물론 AI 기술의 핵심을 빠르게 훑고 싶은 관리자, 사업가께도 좋은 책이라 생각한다. 더불어 새로운 주제를 찾는 연구자 분들께도 적합하며 난이도는 쉽지 않지만 메타 지식을 활용하기 위해 입문자 분들께 가장 추천드리고 싶다.