데이터지능 S2E12: Product Analytics Playground (PAP) 운영진과 함께하는 온라인 서비스 분석 이야기

데이터 사이언스의 여러 분야 가운데 온라인 서비스의 성장, 평가 문제해결을 위한 분석에 대해서는 Product Analytics라는 이름으로 활발한 연구와 논의가 이루어지고 있습니다. 오늘은 Product Analytics Playground (PAP) 라는 이름으로 페북, 스터디 및 이벤트 등을 통해 활발히 활동중이신 PAP의 최보경, 이민호, 윤석진님을 모시고 이야기를 나눠볼까 합니다.

  • 9:00 Product Analytics(PA)의 핵심
  • 18:00 공유하고 싶은 PA 프로젝트
  • 30:00 가장 중요하게 보는 지표들
  • 51:30 내가 소개하고 싶은 PA.툴
  • 61:30 반복되는 PA 작업을 효율화하는 방법
  • 78:00 우리 팀 자랑 & 지원 요령
  • 86:00 PA 시작하는 분들께 드리는 말씀
  • 95:30 마무리

PAP 관련 링크:
Facebook Group : https://www.facebook.com/groups/talkinpap
Blog : http://playinpap.github.io/
Youtube (컨퍼런스 세션 보기) : https://www.youtube.com/channel/UCRvudwkTe1FeqUoWrbIIAMQ
LinkedIn : https://www.linkedin.com/company/playinpap/
Product Analytics 강의 (Class101) : https://class101.page.link/Lm7M

Product Analytics / Retention 분석 툴:​

최보경님 Blog Post:

데이터 사이언스 자동화의 추세와 전망, 그리고 인간의 역할

최근 CACM에 데이터 사이언스 자동화에 대한 아티클이 나왔다. 최근 쓴 커리어 관련 글에서 비슷한 주제를 언급하기도 했고, 평소에 관심있는 주제라 아티클 내용 소개 및 저의 의견을 적어볼까 한다.

데이터 사이언스 자동화?

분야를 막론하고 자동화는 반복적인 일을 기계에게 맡기고 이를 통해 비용을 아끼고 좀더 생산적인 업무에 집중하는 것을 가능하게 한다. 데이터 사이언스 업무에도 반복되는 부분이 많고, 최근 치솟는 연봉이나 채용의 어려움을 감안하면 분명 자동화에 대한 큰 인센티브가 존재한다.

하지만 자동화가 모든 문제에 적용되는 해결책은 아니다. 자동화를 위한 솔루션이 아예 존재하지 않거나, 자동화에 따른 비용이 효용을 넘어서는 경우도 존재한다. 이처럼 비용 혹은 기타 문제로 자동화가 불가능하거나 구현 범위가 제한되는 경우도 있다. 다음과 같은 조건을 만족해야 자동화가 가능하거나, 자동화에 따른 혜택을 누릴 수 있을 것이다.

일반적인 자동화의 조건

또한 ‘자동화’라는 용어가 인간의 노력을 기계가 100% 대체한다는 의미는 아니다. 데이터 사이언스의 자동화는 가장 루틴한 부분부터 자동화된 알고리즘 및 시스템이 차근차근 개발되고, 이를 통해 데이터 사이언티스트 및 엔지니어의 업무가 더 효율화되는 과정에 가깝다. 따라서 오히려 지루하고 반복되는 작업이 줄어들고, 그 자리를 좀더 창의적인 문제해결이 채울 것이다.

데이터 사이언스 자동화의 영역별 차이

이를 염두에 두고 데이터 사이언스의 각 영역을 살펴보자. 앞서 소개한 아티클에서는 데이터 사이언스를 아래 네가지 축으로 분류하고 있다. (아래 사분면의 X/Y축은 위에서 소개한 기준 1/2에 해당한다.) 그리고 저자의 설명에 따르면 분명한 정답이 (레이블 및 평가 척도) 존재하며 비교적 도메인의 영향을 덜 받는 모델링이 가장 자동화가 쉬운 부분이며, 정답을 정의하기 어려우며 도메인 지식이 필요한 탐색적 분석이 자동화가 어려운 부분이라고 한다.

자동화의 관점에서 살펴본 데이터 사이언스의 네 영역

영역별 자동화에 대한 전망

위에서 소개한 영역별로 자동화의 진행 상황 및 전망을 생각해보자. 먼저 각 분야별로 위 아티클 저자의 전망을 소개한다. (기계번역 결과라 일부 매끄럽지 못한 부분 양해를 구한다)

위 그림에서 우리는 모델 구축 이 자동화가 가장 직접적인 영향을 미칠 것으로 예상할 수 있는 곳임을 알 수 있습니다. 이는 실제로 자동화된 기계 학습(AutoML)의 성공 사례입니다. 그러나 이러한 영향의 대부분은 지도 학습을 기반으로 하는 모델링 접근 방식에서 발생했으며 자동화는 다른 종류의 학습 또는 모델링 작업에 대해 훨씬 덜 개발되었습니다.

데이터 엔지니어링 작업은 일반적인 데이터 분석 프로젝트에서 인간 노력의 80%를 차지하는 것으로 추정됩니다. 결과적으로 자동화가 이러한 인간의 노력을 줄이는 데 중요한 역할을 할 수 있다고 예상하는 것은 당연합니다. 그러나 데이터 엔지니어링 작업을 자동화하려는 노력은 모델 구축 을 자동화하려는 노력에 비해 현재까지 성공률이 낮습니다.

데이터 탐색에는 데이터 세트가 주어진 관련 질문 식별, 데이터 구조 해석, 도메인에서 제공하는 제약 조건과 데이터 분석가의 배경 및 의도 이해, 데이터 윤리, 개인 정보 보호 및 공정성과 관련된 문제 식별이 포함됩니다. 배경 지식과 인간의 판단은 성공의 열쇠입니다. 결과적으로 데이터 탐색이 자동화가 어려운 부분인 것은 놀라운 일이 아닙니다.

마지막으로 리포팅 및 의사결정 (Exploitation) 은 실행 가능한 통찰력과 예측을 결정으로 바꿉니다. 이는 조직에 상당한 영향을 미칠 수 있으므로 일정 수준의 감독과 사람의 개입이 종종 필수적입니다. 예를 들어 새로운 AI 기술은 결과 보고 및 설명을 자동화하는 데 새로운 기회를 제공할 수 있습니다.
Source: Automating Data Science (CACM March 2022)

여러분은 저자의 의견에 동의하는가? 필자는 대체로 동의하지만 의견이 다른 부분도 있다. 아래는 각 영역별 자동화에 대한 필자의 전망이다. 아래 영역명 옆에 ‘자동화 전망’은 자동화의 효용과 비용을 고려했을때 얼마나 자동화가 가능할지에 대한 예측치로 ‘하’에서 ‘상’으로 갈수록 자동화가 용이하고 그 범위도 넓을 것으로 본다는 의미다.

데이터 엔지니어링 (자동화 전망: 하)

기계가 여러 원본 유형의 데이터와 다양한 요구사항을 수합하여 복잡한 데이터 파이프라인을 만들 수 있을까? 세상에 존재하는 다양한 데이터와 조직별로 다른 요구사항을 고려할때, 필자 역시 데이터 엔지니어링이 완전히 자동화되는 세상은 가까운 미래에는 오지 않을 것이라고 생각한다. 또한 데이터 파이프라인은 보통 수년 단위의 수명을 가지며, 망가졌을때 데이터 유실 및 비즈니스 영향이 아주 크다. 자동화해서 싸게 만드는 것 보다는 노력을 들여 제대로 만들어야 하는 부분이다.

따라서 데이터 엔지니어링에서의 자동화는 전체적으로 인간의 개입을 없애는 방향보다는, 부분적으로 반복적이고 루틴한 영역을 자동화하는 방향을 진행될 것으로 보인다. 위 아티클에서는 데이터 병합시 스키마 매칭의 문제를 해결해 주는 FlashExtract라는 연구의 사례를 들고 있는데, 이외에도 원본 데이터 및 처리 결과에서의 오류 발견, 자동화된 메타데이터 생성 등 실무에서 자동화의 효과를 볼 수 있는 다양한 영역을 생각해볼 수 있다.

자동 스키마 추출 사례 (FlashExtract)

탐색적 분석 (자동화 전망: 중)

탐색적 분석은 주어진 데이터셋을 검증하고, 다양한 관점에서 문제에 대한 가설 및 패턴을 추출하는 단계다. 이 영역 역시 세상에 존재하는 데이터셋과 문제만큼이나 다양한 접근 방법이 있으니 완전한 자동화는 힘들것이다. 특히 발견가능한 수많은 패턴 중에 어떤 패턴이 다음 단계에 유용할지는 도메인 지식이 필요한 부분이다. 하지만 데이터의 유형 및 발견 대상이 되는 패턴의 종류에 대한 몇가지 가정을 한다면 상당 부분 자동화가 가능하다.

예를 들어 테이블 형태의 데이터라면 데이터의 검증은 개별 컬럼의 분포 및 이상값을 보는 것으로, 데이터에서의 패턴 발견은 컬럼간의 상관도 계산 및 관계에 대한 시각화를 해보는 것을 시작할 수 있다. 이 부분에 대한 자동화 만으로도 시간과 노력을 절감할 수 있으며, 이미 파이썬 및 R 기반으로 기본적인 EDA를 자동화하는 다양한 솔루션이 있다. 아래 그림은 pandas-profiling 라이브러리에서 자동 생성된 리포트에 대해 다양한 분석을 수행하는 과정을 보여준다. (Source: Medium)

pandas-profiling과 같은 자동 EDA 툴은 분석가의 노력을 많이 줄여준다.

예측 모델링 (자동화 전망: 상)

위 아티클 저자도 밝혔지만 흔히 데이터 사이언스의 가장 ‘섹시한’ 부분으로 생각하는 (따라서 많은 사람들이 하고싶어하는) 예측 모델링은 역설적으로 가장 쉽게 자동화될 수 있는 부분이다. 충분한 양의 클린 데이터와 목적 함수가 주어진다면 가능한 모델 및 하이퍼파라메터를 탐색해서 최적의 예측 모델을 만드는 것은 현재 기술로도 충분히 가능하며, AutoML등의 이름으로 이 과정을 더 효율화하려는 연구도 계속 진행중이기 때문이다.

단 검색 및 추천과 같은 온라인 서비스 환경에 모델을 적용해본 사람이라면 예측 모델을 만드는 것이 생각보다 쉽지 않다는 것을 잘 알고 있을 것이다. ‘충분한 양의 클린 데이터’라는 조건에 부합하는 상황도 생각보다 많지 않고 (보통 사용하는 클릭 데이터는 richness bias / position bias등 상당한 노이즈를 안고 있다), 실무에서 필요한 요구사항을 모두 만족시키는 모델은 특정 목적함수의 최적화로 만들어지지 않는 것이 보통이다. (관련해서 필자의 이전 글 참조)

따라서 많은 경우 개별 요구사항에 맞는 모델을 만들어 이를 조합하는 방식으로 최종 예측결과를 만들게 되며, (관련 LinkedIn Blog Post) 이 과정에서 개별 모델을 어느 단위로 나누고 그 결과를 어떻게 조합할지는 모델러의 영역이며, 실제로는 이 과정에서 다양한 오프라인 (레이블 기반) / 온라인 (실사용자 로그 기반) 평가가 필요하다. (예: 문서 추천 결과에 너무 저품질 (e.g. clickbait) 결과가 많으니 품질 피쳐를 추가하자)

요약하면 실서비스에 들어가는 모델을 만드는 일은 ‘요구사항 수집 >> 모델 개발 >> 오프라인 평가 >> 디버깅 및 조율 >> 온라인 평가’의 사이클이 반복되는 과정이며, 이 과정에서 모델링 팀과 분석 팀이 타이트하게 협업하는 것이 필수적이다. 따라서 모델링의 전 과정이 자동화되기는 어렵겠지만, 이 가운데 실제 ‘모델 개발’은 현재도 오랜 시간이 걸리지 않으며, 앞으로 더 자동화될 여지가 많은 영역이다. (Time Series 모델링의 자동화 사례는 Automatic Statistician이라는 시스템을 참고하자; 아키텍쳐 설명 부분 아래 그림에 발췌)

리포팅 및 의사결정 (자동화 전망: 중)

데이터 사이언스 조직의 결과물은 실 서비스에 직접 반영되어 차질없이 운영되거나 이해당사자의 의사결정에 영향을 줄 수 있도록 대시보드 혹은 리포트 형태로 전달되어야 한다. 이중 리포팅은 많은 분석가들이 업무 시간의 상당 부분을 투자하며, 특히 그 결과를 전달받는 의사결정권자의 위치가 높을수록 더 많은 수고가 들어가는 경향이 있다. (문서 포맷도 더 신경을 쓰고, 결과도 높은 분이 놀라시지 않게 윤색해야 하니 말이다.)

하지만 필자는 이처럼 경영진을 위한 리포팅에 많은 시간과 노력이 들어가는 것은 데이터 기반 조직으로서의 성숙도가 떨어지기 때문이라고 생각한다. 잘 문서화된 대시보드나 사용성이 좋은 분석 도구가 잘 갖추어져 있어 조직의 누구나 제품이나 서비스의 현황에 대해 손쉽게 파악할 수 있다면 정기 리포팅에 많은 노력을 투자할 필요가 있을까? 차트나 수치를 만져서 경영진이 듣고 싶은 이야기만 듣도록 하는 것이 조직의 미래에는 오히려 해가 되지 않을까?

이야기가 잠깐 옆으로 샜는데, 리포팅 업무 가운데 조직 구성원에게 현재 서비스의 현황을 전달하는 업무는 자동화될 수 있을 것이며, 서비스의 건강에 영향을 끼치는 여러 이슈 역시 자동화된 이상탐지 등으로 조기에 발견될 수 있을 것이다. 하지만, 이런 다양한 데이터 소스에서 경영진이 서비스의 개선 및 전략 수립을 위해 알아야 할 방향성을 찾아 설득력 있게 전달하는 일은 먼 미래에도 데이터 사이언티스트 고유의  업무로 남을 것이다.

맺음말

지금까지 데이터사이언스 자동화의 전망과 방향성을 정리해 보았다. 정확한 타임라인을 예측할수는 없지만 데이터 사이언스의 중요성과 전세계적으로 이루어지고 있는 연구개발 투자와 노력을 고려할때 매년 수많은 혁신이 등장하여 업계를 바꿔놓을 것이라는 점은 분명해 보인다. 데이터 사이언스 업계 종사자로서 꾸준히 신기술을 따라잡고 이를 통해 담당 업무를 개선하려는 노력을 기울여야 하는 이유가 여기에 있다.

이외에도 시사점을 몇가지 정리하면 1) 신규 개발 보다는 운영 및 유지보수 업무에서 자동화 기회가 훨씬 많다는 점 2) 종류에 관계없이 데이터 사이언스 업무 자동화에 코딩 및 머신러닝이 필수라는 점 3) 영역을 관계없이 완전 자동화보다는 업무의 부분적인 효율화를 통해 생산성을 높이는 방향으로 진행될 것이라는 점을 들고 싶다. 앞서 소개한 CACM 아티클에는 관련 레퍼런스도 많으니 꼭 읽어보기를 바란다.

주니어 데이터사이언티스트에게 하고 싶은 이야기들

최근에 채용 관련해서 많은 주니어/시니어 데이터 사이언티스트 / 엔지니어를 만나고 있다. 경험상 팀에 지원을 하기 전에 Hiring Manager와 대화를 나누면서 서로 알아가고, 팀과 개인의 fit을 점검하는 과정을 중요시하기 떄문에 채용 후보자와 가급적 면담을 꼭 하려고 한다. 줌으로 30분~1시간 정도를 투자해서 미래의 동료를 더 잘 이해할 수 있다면 이보다 더 중요한 일이 있을까.

이들과 대화하면서 공통적으로 드러나는 몇가지 테마를 엮어서 글로 써두면 좋겠다는 생각을 했다. 비슷한 연차 및 업계 사람들이 하는 고민은 대개 비슷하기 마련이다. 최대한 일반화될 수 있는 주제로 한정했지만, 데이터의 세계는 넓고, 필자의 경험은 제한되어 있으니, 해석은 여러분에게 맡기겠다. (필자가 채용중인 네이버 서치 Data&Analytics팀에 국한된 내용은 팀 블로그의 별도 FAQ에 정리했다.)

어떤 역량을 특화할 것인가?

데이터 사이언티스트에게 요구되는 역량의 종류 만큼이나 다양한 성장 경로가 있다. 필자가 생각하는 주된 성장 경로는 1) 도메인 전문성과 네트워크를 키워 PM 혹은 경영자와 같은 도메인 전문가의 길 2) 통계 및 머신러닝 방법론에 특화된 분석 전문가의 길 3) 개발 및 시스템 역량을 키워 분석 역량을 갖춘 엔지니어로서 성장하는 길 등이다. 여기에 업종 및 기업 규모라는 변수를 더하면 세상에는 정말 다양한 성장의 기회가 존재한다.

개인에 따라 이중 여러가지를 겸할수도 있고, 여러 회사를 거치며 장기적으로는 다양한 역량을 쌓을 수 있지만, 커리어 및 배움의 방향성이라는 측면에서는 한번에 하나씩 선택해서 집중하는 것을 권하고 싶다. 스스로 원하는 성장 경로를 안다면 회사에서 담당 프로젝트를 선택할 때에도, 이직 시기 및 직종을 고민할 때도, 자기 개발을 위해 시간과 노력을 투자할 때도 훨씬 손쉽게 결정할 수 있을 것이기 때문이다. 물론 동시에 여러 기회를 제공하는 포지션도 있을 것이고, 이를 모두 잡는 것은 본인의 역량에 달린 문제다.

이렇게 커리어의 방향성을 결정하면 자신에게 맞는 기회를 찾는 과정이 더 쉬워진다. 예를 들어 데이터 역량을 갖춘 도메인 전문가의 길을 간다면 해당 업종 내에서 다양한 비즈니스 문제를 접하며 좀더 전문성을 쌓을 수 있는 방법을 고민해야 할 것이다. 반면 분석 혹은 엔지니어로서의 성장을 원한다면, 해당 기술의 트렌드를 선도하는 프로젝트를 할 수 있는 환경을 찾아서 전문 역량을 키우는 편이 바람직할 것이다. 여기에는 대규모 데이터와 폭넓은 첨단 기술을 경험할 수 있는 빅테크 기업, 혹은 AI나 시각화 등 특정 분야의 기술 솔루션을 제공하는 기업들이 포함된다.

여기서 추가적으로 고민할 부분이 커리어에서의 깊이와 넓이의 균형인데, 특정 도메인의 전문가가 되기 위해 깊이를 쌓는 노력과 기술 및 시장 트렌드 변화에 대응하기 위해 두루두루 배우고 경험을 쌓는 노력간의 균형이다. 필자의 경우 첫 경력은 웹검색엔진(Microsoft Bing)에서의 품질 평가 기법의 연구, 두번째 경험은  소셜네트워크(Snapchat)에서의 UX 및 추천시스템 성장 및 개선을 위한 프로덕트 데이터 사이언스로, 상당히 다른 문화를 가진 두 회사에서 일을 하면서도 온라인 서비스 개선을 위한 데이터 사이언스라는 테마를 놓지 않았던 점이 지금 생각하면 좋은 결정이었던 것 같다.

어떤 업계/회사/팀에 지원할 것인가?

자신에게 맞는 기회를 찾아야 한다는 상식적인 이야기를 앞서 했으니, 이제 좀더 구체적으로 데이터 사이언티스트가 일하기 좋은 회사에 대해 생각해보자. 필자가 생각하는 가장 중요한 조건은 회사의 미래에 데이터 활용이 얼마나 중요한 전략적 위치를 점하는지다. 요즘 데이터에 관심이 없는 회사는 없겠지만, 업계 및 회사의 사정에 따라 얼마나 큰 투자가 이루어지는지, 이런 투자가 가치를 만들어낼 수 있는지는 다른 문제이기 때문이다. 이를 판별하는 손쉬운 방법은 채용 규모가 어떤지, 혹은 매니저와 팀원을 동시에 뽑는지 등을 확인하는 것이다.

데이터 활용을 중요하게 생각하는 회사라도 가치를 만들기까지는 여러 단계를 거쳐야 한다. 따라서 두번째로 확인할 부분은 내가 조인해서 가치를 만들 수 있는 포지션인지다. 업무를 시작한 후 살펴보니 쓸만한 데이터도 없고 이를 모을 방법도 없다면 데이터 전문가로서 할 수 있는 일이 없을 것이다. 또한 분석 쪽에 특화된 역량을 갖춘 사람이 데이터 파이프라인 버그를 고치는데 대부분의 시간을 써야 한다면, 혹은 엔지니어링 역량을 키우고픈 사람이 인프라를 아웃소싱하는 팀에 조인한다면 가치를 만들기가 더 어려울 것이다. 이를 확인하는 방법은 인터뷰에서 팀의 현재 니즈 및 전략적 방향에 대해 상세히 물어보는 것이다.

마지막으로 회사가 얼마나 기술적인 성장에 초점을 맞추는지도 장기적인 커리어 성장의 관점에서 중요한 문제다. 기껏 어렵게 조인한 회사에서 주어진 업무가 레거시 파이프라인을 유지보수하는 일이거나 매일 수동으로 아무도 읽지 않는 리포트를 작성하는 일이라면, 그리고 이를 새로운 기술 도입이나 자동화를 통해 개선하겠다는 노력도 묵살된다면 회사나 개인이나 밝은 미래를 장담하기 어려울 것이다. 이를 확인하기 위해서는 채용 공고에 나타난 회사의 기술 스택이 어떤지, 혹은 회사의 기술 역량이 외부적으로 공유된 자료가 있는지 보면 된다.

위에서 신기술 도입을 언급했지만 수많은 하입(Hype)이 명멸하는 데이터 업계에서 신기술에 전혀 관심을 기울이지 않는것 만큼이나 위험한 것이 신기술을 무조건 추종하는 것이다. 기술의 도입은 장기적인 비즈니스 가치를 만들기 위한 최적의 수단인지의 관점에서 고민해야 할 부분이며, 유행을 쫒기 위한 위한 기술 도입 혹은 연구를 위한 연구 프로젝트 등은 가치를 파괴하는 일이기 때문이다. 그리고 당연한 이야기지만 지속적인 비즈니스 가치를 만들어내지 못하는 회사나 조직은 장기적인 생존을 보장받지 못한다. 그런 관점에서 지원하는 조직이 회사에 어떤 기여를 하고 있는지, 스타트업이라면 비즈니스 성장 커브 및 건강성은 어떤지 따져볼 일이다.

코딩과 모델링은 얼마나/무엇을/왜 잘 해야 할까?

이제 데이터 사이언티스트의 시장 가치에 대해 논의해보자. 한국이나 미국이나 데이터 분석가와 데이터 사이언티스트를 비슷한 의미로 사용하는 것 같은데, 필자는 일반적으로 ‘분석가’라는 타이틀을 좋아하지 않는다. ‘분석가’라는 단어가 이미 존재하는 데이터 파이프라인 및 인프라에서 SQL등을 사용해서 데이터를 뽑고 리포팅하데 그치는 역할로 들리기 때문이다. 물론 리포팅은 데이터 사이언스 업무의 핵심 중 하나이고, 도메인 지식 및 데이터에 대한 이해가 기반이 된 제대로 된 리포팅을 하는 것은 매우 어렵고 그만큼 많은 가치를 만들어내는 일이다.

하지만 직업이 아니라 커리어라면 시장에서의 자신의 가치를 지속적으로 키울 수 있는 기회를 제공해야 할 것이며, 필자는 특수한 경우를 제외하고 (예: 법률이나 의료와 같이 접근이 제한된 도메인 지식을 필요로 하는 경우) 리포팅이 업무의 거의 100%를 차지하는 포지션은 이런 기회를 제공할 수 없다고 생각한다. 데이터 분석과 관련된 인프라와 툴은 계속 좋아지고 있으며, 최근에는 데이터에서 인사이트를 자동으로 뽑아주는 다양한 기법도 연구 개발되고 있기 때문이다. 따라서 단순 리포팅 업무는 마치 오피스 작업과 같이 고등 교육을 받은 사람이라면 누구나 할 수 있는 업무가 되어가고 있다. (이런 변화는 AutoML 등의 기술이 활발히 연구되는 머신러닝에도 비슷하게 적용될 것이다.)

이런 상황에서 데이터 사이언티스트가 지속적인 가치를 만들어낼 수 있는 방법은 무엇일까? 필자는 분석의 스케일링과 자동화라고 생각한다. 분석의 스케일링은 개발된 분석 기법을 다른 사람들을 쓸 수 있도록 라이브러리 및 템플릿을 만들거나 인프라에 해당 기능을 추가하는 것이다. 이를 통해 데이터팀의 일원이 아니라도 필요에 따라 분석을 수행할 수 있다. 다른 방법은 반복되는 의사결정을 단순화 및 자동화할 수 있는 모델을 만드는 것이다. 예를 들어 지표 이상을 모니터링하고 알람을 주는 알고리즘은 매일 대시보드를 보는 수고를 덜어줄 것이다. 그리고 이런 분석의 스케일링 및 자동화를 위해서는 데이터 사이언티스트의 개발 및 모델링 역량이 필수적이며, 이런 인력들은 사내 모든 구성원이 분석가의 역할을 수행하는 것을 가능하게 한다.

예를 들어 AB테스트의 결과를 제대로 분석하기 위해서는 최소 수십, 수백개의 지표의 움직임을 이해하고, 개별 지표에 대해 전체 혹은 일부 사용자 그룹이 어떻게 반응하는지에 대한 분석을 수행해야 한다. 그리고 AB테스트 도입 초기에는, 혹은 중요한 테스트에 대해서는 이런 분석을 분석가가 직접 수행하는 것이 필수적이다. 하지만 AB테스트 도입이 가속화되어 수많은 실험이 수행되는 환경에서는 비슷한 유형의 실험에 대한 분석은 템플릿화 및 자동화되고, 분석 조직의 역량은 새로운 지표나 좀더 도전적인 분석 기법 개발에 집중되어야 한다. 이처럼 실무에서는 이런 분석가의 노력과 자동화가 유기적으로 결합될 때 최선의 결과가 나온다.

물론 이런 분석의 스케일링과 자동화가 개인의 노력으로 이루어지지는 않는다. 이를 위해서는 신뢰할 수 있는 인프라 및 데이터 파이프라인, 분석 코드의 라이브러리화 및 재사용을 강조하는 문화, 이 모든 것을 뒷받침하는 데이터 엔지니어와 분석가의 협업이 필요하다. 많은 데이터 팀이 엔지니어 혹은 분석가로만 구성된 것을 보는데, 이 경우 기껏 만들어진 인프라가 제대로 활용되지 않거나, 제대로 된 인프라 서포트가 없어 분석가들이  반복되는 데이터 오류 검증 및 리포팅 작업에 지치게 될 것이다.  따라서 이 글의 마지막 조언은 실력있는 엔지니어과 분석가들이 함께 일할 수 있는 환경을 찾으라는 것이다.

인터뷰는 어떻게 준비할 것인가?

마지막으로 인터뷰에 대한 이야기로 이 글을 마무리할까 한다. 우선 필자가 채용 후보자들을 만나면서 놀라는 점은 생각보다 많은 후보자들이 지원하려는 회사와 제품, 팀에 대해서 이해하려는 충분한 노력을 기울이지 않는다는 점이다. 최근에 많은 회사에서 기술 블로그 등에 팀의 기술적 상태와 첼린지에 대해 공유하는 추세인데도 말이다. 예를 들어 최근 채용 인터뷰에서 아래와 같은 질문에 대해서 충분히 생각을 해보고 인터뷰에 임했는지 생각해보자.

  • 이 회사에서 나는 어떤 인프라와 데이터를 사용하게 될 것인가?
  • 지원하는 팀이 당면한 분석 및 엔지니어링 문제는 무엇인가?
  • 이 중 내 스킬셋과 관심사에 부합하는 부분은 무엇일까?
  • 지원 회사/팀/분야에 대한 공개된 자료는 어디서 찾을 수 있을 것인가?
  • 내 성장 목표는 지원 회사/조직의 중장기 목표와 얼라인(align)되는가?

채용 인터뷰는 지원자의 기본 소양과 함께 함께 일하는 동료로서 어떤 모습을 보일지 예측하는 과정이다. 특히 많은 회사의 데이터 사이언스 / 엔지니어링 인터뷰는 가상의 케이스에 대한 문제 해결력을 평가하는 방식으로 이를 예측하려고 한다. 따라서 위와 같은 질문에 대해 생각과 조사를 하고 인터뷰에 임하는 후보자와 그렇지 않은 후보자 사이에는 비슷한 역량을 가정했을 때 인터뷰 퍼포먼스에 큰 차이가 있지 않을까. 이렇게 준비된 후보자가 태도 면에서도 좋은 점수를 받을 확률도 높을 것이다.

또한 이력서 작성의 요령 및 경력 사항에 대한 질문을 준비하는 과정도 다시 한번 짚고 넘어가자. 보통 이력서가 길고 화려할수록 좋다고 생각하는데, 채용하는 입장에서는 지원자의 경험과 역량을 가늠할 수 있는 핵심적인 이력 몇개가 있는지가 더 중요하며, 관련성이 떨어지는 경력 사항이 많이 보일수록 이런 ‘핵심’을 발견하기가 어려워진다. 따라서 이력서는 자신의 경력에 대한 검색 결과 페이지를 만든다고 생각하고, 여기서 Precision을 Recall만큼이나 중요하게 여기는 것을 추천하고 싶다.

또한 이력서에 적은 모든 사항은 심층 탐구를 위한 질문이 들어왔을때 방어할 수 있어야 한다. 본인이 핵심적인 역할을 담당한 개발 및 분석 프로젝트에서 핵심적인 디자인 결정에 대한 답변이 미흡하거나, 머신러닝 프로젝트에서 사용한 모델 및 평가 기법에 대한 답변이 제대로 이루어지지 않으면 해당 경력을 제대로 된 성과로 인정받기 어렵다. 이력서를 최대한 핵심만으로 간결하게 유지하고, 자신이 면접관의 어떤 질문에도 대답할 수 있는 항목만 남겨야 하는 또다른 이유다.

맺음말

오늘은 최근 자주 만나는 주니어 데이터사이언티스트들에게 하고 싶은 이야기를 적어 보았다. 필자의 경험 가운데 일반화가 가능한 부분을 최대한 간결하게 전달하려고 했지만, 이런 이야기의 특성상 필자의 주관이 많이 섞일 수밖에 없으니, 각자 처한 상황에 맞게 해석하시면 좋겠다. 이 글에 적은 ‘좋은 데이터 조직’의 조건을 필자가 이끄는 조직에 최대한 구현하려고 노력하고 있지만 아직도 갈 길이 멀다는 반성도 든다. 그럼 오늘도 데이터 분석과 개발의 현장에서 땀흘리시는 여러분들의 건투를 빈다!

온라인서비스를 위한 데이터사이언스 // DnA@2022

올해 결심으로 매주 글을 쓰겠다고 했는데, 다행히 1월 동안은 잘 지켰습니다. 온라인서비스를 위한 데이터사이언스라는 주제로 현장감있는 글을 써보려고 했는데, 이제 서론은 어느정도 마친 것 같습니다. (지금까지의 글을 잘 읽으셨다면 Like나 Comment부탁드려요!)

https://brunch.co.kr/@lifidea/44 (데이터 조직으로의 변화 시나리오)
https://brunch.co.kr/@lifidea/45 (온라인 서비스 분석이 어려운 이유)
https://brunch.co.kr/@lifidea/46 (데이터 사이언스 현장의 안티패턴들)

작년에 이어 올해도 Data&Analytics 팀에서는 네이버 서치의 개선을 위한 다양한 Data Science & Engineering 프로젝트를 진행하고 있습니다. 작년에 기반 플랫폼 만드는데 집중했다면, 올해는 본격적으로 지표 개발과 데이터 플랫폼 및 분석 방법론 고도화에 노력을 기울이려 합니다.

이를 위해 아직 10명대 초반인 팀을 2–3배로 키우는 채용 목표를 갖고 있습니다. 3000만명이 매일 쓰는 네이버 검색 서비스의 사용 패턴을 분석하고, 이를 개선하기 위한 평가 및 실험 지표를 개발하고, 이 모든 일을 훌륭한 동료들과 빠르게 성장하는 팀에서 함께하실 여러분을 기다립니다!

데이터 조직으로의 변화 과정: 시나리오

본격적인 논의에 앞서 우리가 해결하고자하는 문제를 좀더 상세히 정의해 보도록 하자. 우리의 목표는 다양한 유형의 데이터를 모으고 활용하여 온라인 서비스 개발 과정에서의 다양한 문제를 해결하는것이다. 여기에는 서비스 성장 극대화를 위한 개발 방향설정, 신규피쳐 런치 의사결정, 서비스 상태 모니터링 및 이슈 해결등이 포함된다.

좀더 구체적인 논의를 위해 IT 교육용 컨텐츠를 모아 유료로 제공하는 IT4U라는 서비스가 있다고 가정하자. 창립 1년만에 비대면 교육 붐을 타고 월간 1백만명의 사용자를 모은 IT4U는 향후 지속적인 성장을 위해 데이터 및 분석 (Data & Analytics) 팀을 만들기로 했고, 당신은 새롭게 만들어진 팀의 리더를 맡았다. 어디서부터 시작해야 할까?

분석을 위한 기초 만들기

데이터 관련 업무 경험을 바탕으로 당신은 우선 양질의 데이터를 쌓는 것이 우선순위라는 결론을 내리고, 기존 앱 데이터 로깅 및 데이터 파이프라인을 점검해 보았다. 그 결과 앱 사용자의 이동 경로를 추적하는데 필요한 항목이 로깅에서 빠져 있다는 것을 발견했다. 또한 데이터 조인 과정에서 레코드의 중복이 생기는 문제도 발견되었다.

이런 문제를 해결하기 위해 DnA팀에서는 기존에 개별 개발자들이 나름의 방식으로 하고 있던 앱 로그 데이터 형식에 대한 표준 가이드라인을 마련하고, 데이터 파이프라인 개발 및 관리에 Airflow와 같은 일관된 워크플로우 툴을 도입했다. 이를 통하여 파이프라인 장애가 났을때 바로 알람을 받을 수 있고 손쉽게 복구할 수 있는 인프라를 갖추게 되었다.

DnA팀의 노력으로 IT4U는 앱 사용자들이 어떤 경로로 접속하여 어떻게 앱을 사용하고 나가는지에 대한 기본적인 통계를 모을 수 있었다. 이를 바탕으로 개발팀이 앱 네비게이션의 몇가지 문제를 해결한 이후에 서비스 접속 후 컨텐츠 소비까지 이어지는 사용자의 비율을 대폭 올릴 수 있었고, 이 결과는 새로 생긴 DnA팀이 경영진의 신뢰를 얻는 계기가 되었다.

품질 개선을 위한 A/B테스트

이런 초기 성과에 여러 팀에 알려지게 되었고, 그중 컨텐츠 추천을 담당하는 팀에서 당신에게 고민을 털어놓았다. 그 팀에서 여러 추천 모델을 연구해서 실서비스에 적용해 보았지만 장기적인 지표 상승을 경험할 수 없었다는 것이다. 추천 팀에서는 추천 모델 변경 전/후의 총 컨텐츠 소비량 및 매출을 기준으로 서비스 개선 여부를 판단하고 있었다.

당신은 모델 변경 전/후의 비교 결과에는 모델 품질의 차이 이외에도 컨텐츠의 수급이나 요일별 컨텐츠 소비 패턴이 영향을 끼친다고 설명을 하고, 제대로 된 서비스 개선 평가를 위해서는 A/B테스트를 수행할 것을 권고했다. 추천 팀에서는 A/B테스트를 수행하기에 충분한 트래픽이 없다고 생각했지만, 몇몇 지표에 대해 Power Analysis를 해본 결과 어느정도 의미있는 실험이 가능한 것으로 나타났다.

마침 DnA팀 내에서 A/B테스트를 위한 기본적인 프레임워크를 만들어놓았기 떄문에, 여기 추천 팀의 지표를 추가하여 몇 주 뒤에 A/B테스트를 수행할 수 있었다. 이 테스트 결과 최근에 개발한 모델이 실제로 컨텐츠 소비를 유의미하게 증가시킨다는 결과를 얻은 추천팀은 신규 모델을 안심하고 서비스에 적용할 수 있었다. 서비스 적용 과정에서도 A/B테스트 프레임워크를 사용하여 지표를 확인하면서 서서히 대상 사용자의 범위를 늘릴 수 있었다.

하지만 몇주안에 새로 런칭한 추천 모델에 대한 불만이 접수되지 시작했다. IT4U에 컨텐츠를 공급하는 파트너들 가운데 상당 수의 매출이 뚝 떨어진 것이다. 컨텐츠 소비 패턴을 분석한 결과 추천 모델 신규 적용 이후 인기 컨텐츠가 추천 결과에서 노출되는 비율이 예전보다 훨신 증가했는데, 그 결과 상대적으로 덜 인기를 얻는 카테고리의 컨텐츠들이 노출되는 비중이 줄어들게 된 것이다.

이 분석 결과를 바탕으로 DnA팀에서는 컨텐츠 공급 파트너들이 최소한의 사용자 트래픽을 얻을 수 있는 방향으로 추천 모델을 개선하기로 하고, A/B테스트 결과에서도 컨텐츠의 소비량과 함께 파트너간 컨텐츠 노출의 공정성을 측정하는 지표를 추가하여 향후 모든 실험에서 이를 확인하도록 하였다.

신규 개발된 모델은 기존 모델 대비 컨텐츠 소비량을 해치지 않으면서 컨텐츠 노출의 공정성을 확 끌어올리는 결과를 가져왔으며, 이 모델이 적용된 이후에는 컨텐츠 파트너들의 불만도 잦아들었다. 당신은 모델 평가에는 단순 매출을 높이는 것 이외에도 고려할 것이 많다는 점을 배우게 되었다.

분석의 품질과 효율 높이기

추천 팀의 A/B테스트 결과를 들은 사내 다른 팀들도 DnA팀의 A/B 테스트 프레임워크에 대해 문의하기 시작했다. DnA팀은 이에 대응하기 위해 테스트 프레임워크의 안정성을 개선하고, 개별 파트너가 직접 실험을 분석할 수 있는 분석 툴 개발에 착수했다. 이와 함께 사내 모든 팀이 A/B테스트 분석 결과를 논의할 수 있는 정기 회의도 만들어서 운영하기 시작했다.

이런 노력 끝에 A/B테스트는 IT4U의 대부분의 팀이 사용하는 서비스로 자리잡게 되었다. 처음에는 대규모 UX 변경이나 추천모델 변경에만 A/B테스트를 적용했지만, 나중에는 Back-end 개선이나 리펙토링 등에도 사용자에게 끼치는 문제가 없다는 부분을 확인하기 위한 A/B테스트를 활용이 표준으로 자리잡았다. 그동안 A/B테스트 인프라의 개선으로 이런 테스트 사례의 증가는 팀에게 큰 부담을 주지 않게 되었다.

또한 팀간에 서로 영향을 주는 피쳐를 개발할 때도 각자 A/B 테스트를 수행하여 필요한 부분을 조율하는 프로세스가 자리를 잡게 되었다. 서로 목소리를 높이다가 결국 직위가 높은 사람의 의견을 따르던 회의는, 각자 가져온 실험 결과를 논의하고 이를 바탕으로 사용자에게 최선의 결과가 무엇인지 고민하는 시간으로 바뀌었다. 상명하복의 기업 문화가 누구나 아이디어를 제안하고 실험해볼 수 있는 방향으로 바뀐 것이다.

이렇게 A/B테스트가 전사 표준으로 자리를 잡으면서 IT4U의 피쳐 개발 방식에도 변화가 생겼다. 예전에는 개별 팀에서 몇 개의 새 피쳐를 개발했는지를 가지고 평가를 받았다면, 어느새부터인가 개별 피쳐의 A/B테스트를 통해 지표가 얼마나 향상되었는지가 평가 기준이 되었다. 또한 이에 따라 피쳐 개발 초기에 이를 어떻게 평가할 것인지를 먼저 논의하고 필요한 로깅이나 지표를 먼저 추가하는 방식으로 개발 패러다임이 바뀌게 되었다. 데이터와 지표가 개발의 시작이자 끝이 된 것이다.

이런 문화 변화에 따라 DnA팀의 역할도 계속 진화해갔다. 처음에는 개별 조직의 지표 개발과 분석을 일일이 지원해주는데 많은 시간을 투자해야 했지만, 틀과 인프라가 개선됨에 따라 점차 기존의 도구를 더 잘 쓸 수 있도록 교육하고 새로운 데이터 사이언스 기법을 사내 여러 비즈니스 문제에 적용하는 방법을 연구하는 기능이 강화되었다. 단순히 데이터 및 분석을 담당하는 역할에서 데이터를 바탕으로 서비스의 방향을 제시하고 조직 전체가 이를 달성하는 것을 지원하는 역할을 맡게 되었다.

이렇게 몇년간 전사적인 투자와 변화의 노력 끝에 IT4U는 지속적인 성장을 거듭할 수 있었다. 온라인 교육 시장에도 경쟁이 치열해지고 사용자들의 취향도 바뀌어 갔지만, 조직 구성원 각각이 여러 아이디어를 내고 이를 지표와 분석을 바탕으로 평가하여 의사결정을 하는 것이 체질화된 IT4U는 이런 변화에 기민하게 대응하면서 시장을 선도해 갔다. 또한 종종 발생하여 사용자들의 원성을 사던 시스템 장애 역시 이상 신호를 조기에 포착하여 신속하게 해결함으로써 서비스 영향을 최소화할 수 있었다.

맺음말

지금까지 IT4U라는 스타트업에서 데이터 활용 방식이 어떻게 바뀌었는지를 알아보았다. 처음에 데이터 인프라의 검증과 구축부터, 개별 팀의 평가 및 분석 업무 지원을 통한 신뢰 쌓기, 그리고 데이터 기반 개발 문화의 전사적인 확산에 이르기까지 기업에서 데이터를 제대로 활용하는 과정이 하루 아침에 이루어지지는 않는다는 교훈을 얻으셨으리라 생각한다.

데이터 조직으로의 변화는 이런 기술적, 업무적, 문화적인 변화가 꾸준히 쌓여 선순환을 만들며 점진적으로 이루어진다. 기술적으로 훌륭한 분석 및 평가 시스템이 갖추어졌다고 해도 구성원들의 일하는 방식이 바뀌지 않으면 제대로 활용되지 않을 것이며, 반대로 구성원들의 의지가 있더라도 제대로 된 인프라와 분석 시스템이 없다면 이는 오래 지속되지 못할 것이다.

데이터 기반 조직으로 가는 선순환의 고리

따라서 데이터 문화를 만들고자 하는 조직에서는 긴 호흡을 가지고 선순환의 고리를 하나씩 만들어나가야 할 것이다. 처음에 기본적인 분석과 평가 인프라의 바탕을 갖추고 작은 규모에서 성공 사례를 만든 후, 전사 확산을 위해 자동화 및 업무 프로세스가 정의되고, 이를 통해 효과적인 의사결정을 내리는 경험이 반복되면서 신뢰가 쌓이고 기업 문화가 바뀌는 것이 여기서 말하는 선순환의 모습이다.

마지막으로 데이터 기반 조직으로 가는 길은 일회성 이벤트가 아니라 지속적인 과정임을 기억하자. 애써 만들어놓은 데이터 인프라와 평가 시스템이 고객과 서비스의 변화하는 요구사항에 따라 바뀌어야 한다. 환경이 바뀌었는데 의사결정 지표와 프로세스가 이를 반영하지 못한다면 오히려 조직의 변화를 가로막는 결과를 낳을 수도 있다. 그래서 데이터 기반 조직의 핵심 프로세스에는 이런 내/외부적인 변화에 대응하여 데이터와 의사결정 기준을 검증하는 과정이 꼭 포함된다.

데이터지능 S2E11: 네이버 클로바 Document Intelligence팀 전희원님의 검색엔진, 데이터사이언스, 딥러닝 이야기

안녕하세요, 데이터 지능 청취자 여러분, 이번에는 오랫동안 데이터사이언스 및 AI 분야에서 경력을 쌓으시면서 고감자라는 필명으로 좋은 글도 많이 쓰시고 오픈소스 활동도 꾸준히 해오신 전희원님을 모셨습니다. 희원님은 야후 코리아, NexR, SKT를 거쳐 최근에는 네이버 클로바에서 Document Intelligence팀 리더로 새로운 시작을 하셨는데요, 그 과정에서의 배움과 앞으로의 계획을 여러분들과 공유하신다고 합니다. Back-end / Front-end 엔지니어 채용도 진행중이시라니 많은 지원 바랍니다! (아래 지원 정보)

관련 링크:
https://tinyurl.com/docuintel
http://freesearch.pe.kr/
https://github.com/haven-jeon
https://www.linkedin.com/in/gogamza

‘온라인서비스를 위한 데이터사이언스’ 시리즈를 시작하며

필자의 첫 책인 헬로데이터과학 출간후 6년이 지났다. 그동안 데이터 세상의 화두는 빅데이터에서 인공지능으로 넘어갔고, 대부분의 서비스는 모바일 환경에서 클라우드와 인공지능을 결합한 형태로 개발되고 있거나, 이런 방향으로의 진화를 고민하고 있다. 모바일, 클라우드, 인공지능의 결합은 이론적으로 사용자의 취향과 컨텍스트에 맞는 지능화 및 개인화된 서비스를 컴퓨팅파워의 제약 없이 제공할 수 있다는 것을 의미한다.

현대적인 온라인 서비스란?

모바일, 인공지능, 클라우드 — 언뜻 별 관련이 없어 보이는 이 세가지 키워드의 공통 분모는 데이터의 가능성을 더 확장시킨다는 점이다. 모바일 환경은 사용자에 대한 더 많은 데이터를 수집할 수 있도록 해주고, 인공지능 기술은 이렇게 수집된 데이터를 바탕으로 지능화된 서비스를 제공할 수 있도록 해주고, 마지막으로 클라우드는 이런 데이터 스토리지와 서비스에 필요한 인프라를 제공하니 말이다. (아래 그림은 필자의 최근 발표에서 발췌)

현대적인 온라인 서비스의 3요소

따라서 이런 패러다임 시프트는 데이터를 제대로 활용하는 조직과 그렇지 못한 조직간의 격차가 점점 벌어진다는 것을 의미하기도 한다. 모바일 앱 사용자에게서 서비스 개선에 필요한 데이터를 모으는 일, 이를 바탕으로 사용자가 만족할만한 인공지능 서비스를 제공하는 일, 서비스의 성장에 발맞추어 적절한 의사결정을 내리고 이를 뒷받침하는 인프라를 제공하는 일은 데이터 관련 여러 분야의 전문성을 필요로 하기 때문이다.

실제로 대부분의 빅테크 회사들은 자신들의 도메인에서 데이터 활용을 극대화하기 위해 꾸준한 연구 개발을 이어가고 있다. 모바일 환경에서 사용자의 영향을 최소화하는 로깅, 조직 전체의 필요에 따라 유연하게 성장하고 변화할 수 있는 데이터 파이프라인, 새로운 피쳐 개발 및 서비스 반영에 필요한 다양한 의사결정을 지원하는 지표와 실험 기법, 그리고 데이터 및 이에 기반한 인사이트의 개발 및 활용을 극대화하는 조직 문화들이 여기에 포함된다.

데이터사이언스의 역할

이렇게 변화된, 그리고 끊임없이 진화하는 환경에 과거의 경험이 아닌 새롭게 수집된 데이터를 바탕으로 적절히 대응하는 것을 가능하게 하는 것이 데이터 사이언스의 역할이다. 온라인 서비스를 위한 데이터 사이언스의 역할에 대해 이야기할 기회가 있을때, 필자는 서비스의 개발 및 지속적인 개선을 위한 방향을 설정하고, 이를 바탕으로 조직 전체가 일관되게 움직이는 것을 가능케하는 신경망을 만드는 일이라고 이야기한다.

동물의 신경계가 주위 환경으로부터 개체의 생존에 필요한 각종 정보를 수집하여 의사결정을 내리고 이에 근거하여 행동에 옮기듯이, 효과적인 데이터사이언스 조직/플랫폼/프로세스는 서비스 내 외부의 각종 데이터를 수집하고, 이를 바탕으로 각종 리포팅과 분석을 수행하고, 이를 바탕으로 서비스 개선에 직결되는 각종 의사결정을 내리고 관련 팀이 움직이는 것을 가능하게 하기 때문이다.

기업의 데이터사이언스는 조직 전체가 하나의 유기체처럼 움직이는 것을 가능케한다

단일 개체의 신경망과 달리 조직 내의 데이터사이언스가 갖는 어려움은 정보와 지식의 생산 및 전달이 개별 구성원 및 조직간에 원활히 일어나기 힘들다는 점이다. 데이터 팀의 분석 결과가 현업 부서에서 제대로 활용되지 못하는 문제, 개별 팀에서 서로 다른 지표와 의사결정 기준을 가지고 움직이는 문제 등이 다 여기 해당한다. 따라서 조직에서의 데이터 사이언스는 이런 소통 및 공유의 문제를 해결하고, 조직 전체가 데이터에 기반한 지식의 생산 및 축적, 이에 기반한 의사결정 프로세스를 만드는데 초점을 맞추어야 한다.

시중에는 이미 많은 데이터사이언스 관련 자료가 있지만 대부분은 입문서이거나 학술 논문과 같은 기술 중심의 전문적인 자료이다. 또한 데이터사이언스 교과서에서 나오는 이야기를 실제 업무 환경에 적용하는 과정에서 겪는 다양한 어려움에 대한 자료는 전무하다시피하다. 따라서 온라인 서비스를 실제로 개발해서 운영한 경험을 바탕으로 현업에서 바로 적용할 수 있는 가이드를 만드는 것이 가치가 있겠다는 생각을 했다.

집필을 결심한 이유

그동안 필자는 마이크로소프트 및 스냅에서 검색엔진, 추천시스템 관련된 다양한 데이터 사이언스 문제를 접했고, 현재는 네이버의 검색 품질 관리 및 개선에 바탕이 되는 데이터 사이언스 및 엔지니어링 문제를 해결하는 Data&Analytics팀을 이끌고 있다. 처음에는 검색 연구자로 시작하여, 현업 데이터 사이언티스트를 거쳐 현재는 데이터 및 분석 조직을 맡고 있으니 나름 여러 관점에서 데이터 관련 업무를 경험한 샘이다.

이 시리즈의 많은 부분은 필자가 이끌고 있는 네이버 서치의 Data&Analytics(DnA)팀의 업무에 기반하고 있으며, DnA팀은 이미 다양한 데이터와 지표를 바탕으로 네이버 서치가 다음 단계로의 진화를 위한 뱡향을 수립하고 앞으로 나아가는데 중추적인 역할을 수행하고 있다. 물론 앞으로도 계속 새로운 기술의 등장에 발맟추어 꾸준히 업데이트해야겠지만, 그동안 팀으로서 함께 배우고 경험한 것을 정리하는 것도 의미있는 경험이라는 생각을 했다.

물론 필자가 다년간 데이터지능 팟캐스트를 진행하며 느꼈듯이, 데이터 세상은 넓고 고수는 많다. 필자가 알고 경험한 영역보다 훨씬 넓은 세상이 있으며, 이런 부분을 훌륭한 Data&Analytics 팀원분들이나 외부 게스트 필자를 섭외하여 채울 생각이다. 앞으로 본 시리즈가 온라인서비스를 위한 데이터사이언스라는 영역에 종사하는 여러분들의 집단지성이 모이는 장이 되기를 희망한다.

p.s. 앞으로 이 시리즈는 필자의 블로그미디엄브런치 및 메일링 리스트를 통해서 보실 수 있습니다. 글에 대한 피드백이나, 게스트 필진 참여, 혹은 DnA팀에서 네이버 검색과 추천서비스의 미래를 만들어가실 분은 jin.y.kim at navercorp.com으로 연락 바랍니다!

온라인 서비스 개선을 위한 데이터 사이언스: 문제와 해법

외부에서 저희 Data&Analytics팀에 대해 이야기를 할 때에 종종 정확히 어디까지가 데이터 사이언스 및 엔지니어링의 영역인지에 대해 궁금해 하시는 경우가 종종 있습니다. 특히 요즘처럼 머신러닝/인공지능이 뉴스를 많이 타는 시점에는 머신러닝만 잘 하면 되는게 아냐? 이렇게 생각하시는 경우도 종종 접합니다.

최근 시애틀의 한인 테크 커뮤니티인 창발에서 주최한 컨퍼런스에서 이런 질문에 대한 대답이 될만한 내용을 발표했습니다. (글미에 발표 영상 및 자료 포함) 저희 Data&Analytics 팀의 현재 프로젝트 및 내년 계획에도 대부분 포함된 내용이니 관심있게 보시면 좋겠습니다.

현대적인(modern) 온라인 서비스란?

우선 현대적인 온라인 서비스의 3요소인 인공지능 / 클라우드 / 모바일의 관점에서 왜 데이터 사이언스가 필요한지 생각해 봅시다. 주된 서비스의 형태가 모바일 앱이 된 상황은 서비스에서 사용자에 대한 데이터를 더 많이 모을 수 있다는 것을 의미하고, 이렇게 수집된 데이터를 클라우드에 저장하면 저비용으로 강력한 컴퓨팅 파워를 활용할 수 있습니다. 마지막으로 인공지능은 이런 데이터를 활용해 다양한 지능형 서비스를 제공하는 것을 가능하게 합니다.

What constitutes a modern online service?

온라인 서비스가 당면한 첼린지들

여기까지 보면 완성된 그림처럼 보입니다. 하지만 데이터를 수집해서 클라우드에 넣고 AI모델을 만들어 돌리면 성공적인 서비스의 런치, 그리고 지속적인 성장이 보장되는 걸까요? 아마 온라인 서비스를 만들어 보신 분이라면 현실은 그렇게 녹록치 않다는 점을 잘 아실 것이라 생각합니다.

기회 분석: 어떤 방향으로 서비스를 만들고 발전시켜야 하나?

우선 이런 첼린지의 큰 부분은 인공지능(=AI) 기술의 본질과 한계에 기인합니다. 흔히 AI라면 ‘내가 원하는 것을 정확히 가져다주는 마법같은 기술’로 생각하는 경향이 있고, 서비스 사용자 관점에서는 그런 경험을 제공되는 성공사례도 (주로 검색 및 추천 서비스의 형태로) 많이 있습니다.

하지만 서비스를 만드는 관점에서는 인공지능은 입력값에 따라 출력값을 내놓는 수학적 알고리즘에 지나지 않습니다. 그리고 구체적으로 이 알고리즘은 주어진 데이터를 바탕으로 개발자가 지정한 목적함수를 최적화하는 모델을 (정확히 말하면 이미 정해진 모델의 파라메터를) 학습합니다.

What AI algorithm does: model fitting based on data & objective function.

여기서 우리가 알 수 있는 것은 AI에게 데이터와 목적함수를 주는 것이 개발자의 역할이라는 것입니다. 따라서 AI 개발자는 AI가 어떤 모델을 학습해야 할지에 대한 방향을 목적함수 및 제약조건의 형태로 제공해야 합니다. 그리고 이런 방향성은 결국 고객의 요구사항을 정확히 이해하는데서 나옵니다.

따라서 제대로 된 온라인 서비스를 개발하는 조직에서는 고객의 목소리, 혹은 경쟁사와의 비교 결과를 개발 프로세스에 반영할 수 있는 방법이 필요합니다. 이를 위해서는 사용자들이 서비스를 사용하는 과정에서 남기는 로그를 바탕으로 퍼널 및 코호트 분석 등 다양한 형태의 기회 분석(Opportunity Analysis)을 할 수 있습니다.

Where do users come & go? Funnel Analysis

발표에서는 기본적인 퍼널 분석과 함께 Snapchat에서 논문화한 사용자 Journey분석 및 사용자 이탈 예측 모델링 프로젝트도 간단히 소개합니다. 논문에서 발췌한 아래 결과를 보시면 아시겠지만, 최근에서는 사용자의 행동을 모델링하는 프로젝트에도 다양한 딥러닝 모델을 활용하는 것이 추세입니다.

Use DNN models to predict and optimize user satisfaction / retention

또한 검색엔진과 같이 사용자의 검색 질의어에 따라 대체로 검색 페이지에 나오는 결과물이 결정되는 경우 다음과 같은 Side-by-side 비교를 통해 경쟁사 대비 서비스의 품질 분석을 수행하는 방법도 존재합니다. (관련 논문)

Competitive Analysis of Service Quality: Side-by-Side Evaluation

품질 평가: 개발한 서비스가 기존 서비스보다 더 나을까?

서비스가 개발된 이후에는 개발된 서비스가 기존 서비스보다 (혹은 경쟁사보다) 더 나은지를 평가해야 합니다. 질의어에 대한 문서별 품질 레이블 및 클릭 데이터에 기반한 평가가 비교적 용이한 검색엔진의 경우 이런 평가 기법이 수십년전부터 연구 개발되어 왔습니다.

저희 Data&Analytics팀에서 현재 주로 하고 있는 프로젝트가 이런 품질 평가 프로세스를 네이버 검색 조직 전체에 대해 플랫폼화하여 자동화 및 고도화하는 업무입니다. 이를 위해 저희는 올해 하반기에 레이블 기반의 검색 품질 평가 시스템 및 사용자 로그 기반의 검색 품질 평가 시스템을 개발하였으며, 그중 로그 기반의 A/B 평가 시스템은 최근 블로그 포스트에서 소개한 바 있습니다.

이중 A/B 평가 시스템은 한번에 여러 variant의 비교를 가능하게 하고, 실험 버전 관리를 통해 개발 프로젝트에 대해 기능 추가 및 버그 수정을 위해 여러 차례 iterate하는 것을 가능하게 하지만, 종종 수백 수천개의 파라메터 가운데서 최적값을 찾아야 하는 검색 및 추천시스템의 최적화에는 직접 활용하기 어려운 측면이 있습니다. 이를 해결하기 위해 주어진 컨텍스트에 (사용자 질의어 혹은 프로필) 대해서 사용자의 피드백을 기반으로 최적의 파라메터를 동적으로 탐색하는 Contextual Bandit 기법이 최근에는 각광을 받고 있습니다. 이를 통해 사용자의 피드백을 기반으로 스스로 개선하는 시스템을 만들 수 있기 때문에 최근 검색 및 추천 시스템에 널리 활용되고 있는 기술입니다.

Converge to the best action (max. reward) given a context for Parameter Optimization

또한 과거에는 사용자의 만족도 및 활동(engagement)을 최대화하는 시스템을 만드는 것이 개발자들의 주된 관심사였다면, 최근에는 상품 혹은 컨텐츠를 제공하는 공급자 및 시스템이 속한 사회에 미치는 영향까지 고려한 시스템 개발을 요구받고 있습니다. 검색 및 추천시스템이 더 널리 사용됨에 따라 잘못된 정보를 퍼트리고 사회적 약자에 대한 편견 및 차별을 조장하는 부작용에 대한 인식이 확산된 까닭입니다. 좀더 자세한 내용은 올해 여름에 제가 발표한 아래 내용을 참조하시기 바랍니다.

발표 영상은 여기서 보실 수 있습니다: http://naversearchconf.naver.com/

저희 팀에서는 현재 검색 평가 분야의 석학이신 와세다 대학의 Tetsuya Sakai교수님을 Research Advisor로 모셔 검색 결과의 공정성을 평가하고 개선하기 위한 연구 프로젝트를 진행하고 있습니다. 연구의 주 아이디어는 공정성을 요구받는 검색 결과의 속성과 우리가 원하는 노출 비율을 미리 정하고 (예: 뉴스 사이트에서 보수와 진보 성향의 기사가 5:5로 나와야 한다) 이를 평가할 수 있는 지표를 개발하는 것입니다. 내년 SIGIR 컨퍼런스에서 관련 성과를 공유할 수 있기를 기대해 봅니다.

품질 모니터링: 서비스의 장애를 바로 감지하고 대응할 수 있을까?

이렇게 엄밀한 평가를 거쳐 좋은 서비스를 내놓고 잊어버릴 수 있다면 좋겠지만, 현실적으로 이미 잘 돌아가고 있는 서비스의 품질을 위협하는 다양한 요소가 상존합니다. 사용자의 행동 패턴의 변화, 네트워크 및 기타 시스템 장애, 모델 및 피처 개선 과정에서의 문제 등 이런 요인은 어디선가 나타나 서비스의 안녕을 위협할 수 있습니다. 이런 장애에 제대로 대응하지 못하면 매출의 손실은 물론 서비스의 생존까지 위협받을 수 있습니다.

따라서 서비스의 장애가 있을 때 이를 바로 인식하고 대응할 수 있는 품질 모니터링이 장기적으로 지속가능한 서비스 운영을 위해 필수적인 컴포넌트가 됩니다. 모니터링 시스템은 서비스의 각종 지표를 지켜보다가 이상 징후가 보이면 담당자에게 연락을 하는 식으로 작동하는데, 여기서 어려운 점은 이상이 아닌 부분을 이상으로 리포팅하는 False Alarm과 실제 이상 현상을 놓치는 Missing Alarm을 최소화하는 부분입니다. 아래 Microsoft에서 발표한 논문은 이런 시스템을 구현하는 좋은 사례를 보여줍니다.

Source: KDD’20 Paper from Microsoft

맺음말

이번 글에서는 온라인 서비스 운영의 각 단계에서 나타날 수 있는 데이터 사이언스 문제를 설명하고, 현재까지 나온 여러가지 해결책을 소개했습니다. 이 글을 통해 온라인 서비스를 제대로 기획하고, 개선하고, 운영하기 위해서는 데이터 활용이 중요하다는 인식이 조금이나마 확산되었으면 하는 바램입니다.

Data Science Problems & Solutions by Service Lifecycle: Each stage present different analysis and decision problems, with corresponding data science solutions

아래 발표자료 및 동영상을 같이 공유하니 필요한 분께서는 참고하시기 바랍니다. 언제나처럼, 네이버 Data&Analytics에서는 이렇게 다양하고 흥미진진한 문제를 같이 푸실 데이터 사이언티스트와 엔지니어 분들을 모시고있습니다!

데이터지능 S2E10 이정윤님 (2) – 캐글 마스터의 커리어 이야기

오늘은 지난번에 소개한 캐글 마스터 이정윤님의 스타트업과 대기업을 넘나드는 커리어 이야기를 들어보도록 하겠습니다.

1:30 대학원 & 첫 직장 (컨설팅) 경험
11:15 LA에 정착하신 이유
16:15 스타트업 (컨버전 로직) 경험
28:00 마이크로소프트에서의 경험
38:30 우버에서의 경험
49:30 데이터 사이언티스트가 코드에 신경을 써야 하는 이유
61:00 우버에서의 데이터 사이언스 오픈소스 패키지 만드신 경험
68:00 넷플릭스에서의 경험
76:00 넷플릭스의 회사/개발팀
85:30 원격근무에 대한 생각

마지막으로, 정윤님께서 청취자분께 전하고 싶으신 말씀을 글로 남겨주셔서 여기 공유합니다:

DS/ML 분야에서 경력을 개발하고자 하는 분들께 드리고 싶은 말은 회사나 직급보다 배움과 경험에 집중하시라고 말씀드리고 싶습니다. 물론 좋은 회사에 좋은 직급으로 일을 하시면서 많이 배우고 다양한 경험을 쌓을 수 있으면 좋겠지만, 여러 사정상 그렇지 못하는 분들이 더 많겠지요.

DS/ML 분야는 다행히도 꼭 핫한 대기업의 연구개발 직군이 아니더라도 많은 기회들이 있습니다. 다양한 인더스트리에 걸쳐 많은 회사들이 DS/ML 분야의 인력을 필요로 하고 있구요. 또한 회사 밖에서도 캐글과 같은 대회에 참가하거나 오픈소스에 기여하면서 전문성을 키우고 검증 받을 수 있는 기회들이 있습니다.

이렇게 꾸준히 다양한 문제와 방법론들을 배우고 경험하며 실력을 키우다보면 어느 순간 전문가가 되어있는 자신을 발견할 수 있으실 겁니다.

관련 링크

데이터지능 S2E9 이정윤님 (1) – 캐글 마스터 & KDD컵 우승까지

안녕하세요, 이번에는 캐글(Kaggle) 마스터 및 2015년 KDD컵 우승에 빛나는 데이터 사이언스 컴피티션의 대가 이정윤님을 모셨습니다. 정윤님은 또한 스타트업 & 대기업 (우버/넷플릭스) 에서 데이터 사이언스와 머신러닝을 넘나드는 다양한 업무를 수행하셨고 5남매의 아버지이시기도 한데요, 오늘은 정윤님과 주로 캐글을 중심으로한 DS 컴피티션 이야기를 나누어 보았습니다.

오디오 목차
4:20 DS 컴피티션 참석하계된 계기
12:30 컴피티션에 계속 참석하는 이유
15:00 가장 기억에 남는 컴피티션 (2015년 KDD컵)
22:30 컴피티션 우승의 비법은? (2015년 / 그리고 그 이후)
33:30 컴피티션 경험이 업무에 적용되는 부분? 적용되지 않는 부분?
41:15 컴피티션이 보여주는 DS / ML 트랜드
49:00 캐글 경험이 취업에 주는 도움?
51:00 캐글을 시작하는 방법?
63:00 향후 계획 & 컴피티션의 미래

관련 링크

광고

저는 올해 4월부터 네이버 서치에서 근무를 하고 있고요, 저와 함께 한국/미국에서 네이버 검색 및 추천시스템의 사용자 만족도 및 결과의 공정성 평가 및 개선을 위해 일하실 데이터 사이언티스트 및 엔지니어를 모시고 있습니다. 관심있으신 분께서는 지금 진행 중인 네이버 월간채용에 지원하시거나 (Search CIC밑에 Data / Back-end), 저에게 직접 메일을 주시면 (jin.y.kim at navercorp dot com) 됩니다.