[패캠] 데이터 사이언티스트 하용호님 강의 요약 정리
Prog. Langs & Tools

[패캠] 데이터 사이언티스트 하용호님 강의 요약 정리

최근에 패스트캠퍼스 더 레드 강의를 하나 들었다. 나는 사실 데이터 사이언티스트는 아니고, 이 강의를 실무에서 당장 쓸 일이 있어서 듣게 된 것은 아니다. 사실 회사에서 데이터 팀이 제대로 잘 꾸려져 있지 않은 상황에서 일을 하다보니 더 결핍을 느끼는 것일 수도 있는데, 데이터를 어떻게 모아야 하고 봐야 하는지에 대해서 궁금했다. 그리고 이걸 어떻게 비즈니스를 가속화 하는데 잘 사용할 수 있을지에 대해서도 막연하게만 듣기만 했지 조금 실질적인 방법들에 대해서는 아직 지식과 경험이 부족함을 느꼈다. 그래서 이번 강의를 수강하게 되었고, 주요 내용들을 간단하게 정리해 보려고 한다. (패스트캠퍼스에서 유료로 판매중인 강의고, 나도 직접 비용을 지불하고 들었으며, 저작권 이슈도 있기 때문에 모든 내용을 자세하게 정리하기는 어려울 것 같다는 점을 미리 말씀드린다.)

 

총 세 개의 챕터로 이루어져 있는데, 나는 두 번째 챕터인 데이터로 일하는 데 필요한 기술 밖의 기술들에 대해 공부한 내용을 정리해 보고자 한다.


진짜 필요한 데이터가 제대로 남겨지게 만들기

우리가 잘 모르는 사실이 대부분 회사는 쓸 수 있는 데이터가 없다. 따라서 처음에 해야 하는 일은 데이터를 존재하게 하는 일이다.

회사에서 제일 중요한 것은 돈을 버는 것이며, 그러려면 고객이 필요하고 특히 돈을 내는 고객이 필요하다. 그러면 관련된 데이터를 모아야 하는데 예컨데 결제 데이터의 경우 단순 결제 내역만 있으면 그건 무의미하다. 결제를 한 고객 데이터가 쌓여 있다면 그나마 최악의 상황은 면할 수 있다.

만약 데이터가 쌓여는 있는데 어떻게 써야 할지를 잘 모르는 상황이라면 가장 먼저 해야 하는 일은 모든 데이터를 관통할 ID 키 값을 만드는 일이다. AARRR이라고 부르는 퍼널 전체 관점에서 우리 회사 전체를 관통하고 분석 전체를 관통할 고객 ID를 만들어야 한다.

  • Acquistion : 방문자 수
  • Activation : 가입자 수
  • Retention : 리텐션
  • Referral : K-factor
  • Revenue : 매출

최신의 트렌드는 Amplitude이다. Amplitude는 이벤트 기반 디자인으로 되어있고, 아무런 제반 지식이 없다고 가정할 때 훨씬 직관적이다. 반면 GA(Google Analytics)는 pageview 기반이다.

트래커를 어디에서 달아야 할까? 많이 달수록 좋지만 일단 아래 두 가지는 최소한으로 갖추어야 한다.

  • 우리 회사의 핵심 비즈니스 코스 (critical path)
  • T자로 모으기 (가로 : 첫 화면, 세로 : 우리에게 이득을 주는 C-Path)

예를 들어 세탁기를 생각해 보면 세탁기에 많은 버튼이 있지만 사람들은 대부분 전원 버튼, 세탁 버튼만을 사용한다. 우리 서비스의 전원 버튼과 세탁 버튼은 무엇인지 고민을 해야 한다. 다른 버튼은 사람들이 거의 잘 안쓴다.

또한 데이터를 꼭 디지털로부터 얻으려는 편견은 버리는 것이 좋다. 초기 서비스에는 유저가 편향된 경우가 많아서 착각에 빠지기 쉽다. 데이터는 닫힌 질문에 대한 대답(ex. 유저가 A → B 누름)을 하기 때문에, 경우에 따라 가능하면 실제 오프라인에서 사용자를 통해서 고객의 피드백을 듣는 편이 더 나을 수도 있다.

인간의 평균은 중/고등학생 정도라고 한다. 컴퓨터 안에 갇혀서 사고하지 말아야 한다.

처음에는 NUX에 집중할 것을 권장한다.

  • 방문/재방문을 확인할 수 있는 ID 체계와
  • 처음에 유저가 만나는 첫 N개의 화면들과
  • 우리에게 이익을 만들어 주는 끝판까지의 크리티컬 패스

유저들이 잘 넘어가다가 갑자기 탈출하는 부분이 있는데 그 부분은 빠르게 문제를 해결하자. 새 로그 추가해야 하는데 로그는 시간이 지나면 상하게 된다. 

모든 부서가 같이 보는(개발자, 기획자, 데이터 분석가 등) 로그 모니터링 도구가 필요하다. 로그 모니터링 시스템을 구축하면 틀어지는 데이터들을 찾아내고 알려주며, deprecated 된 로그를 정리하기 수월하다.


좋은 데이터팀은 어떻게 일하는가

강의에서는 데이터 팀을 총 6단계로 구분했다.

Passive Lv. 1 : 데이터 확충 + 리포트 수령

  • 데이터 팀이 막 발족한 상태
  • 사내에 쌓여 있는 로그가 없거나, 쓸 수 없는 상태
  • 백엔드 개발자와 데이터 엔지니어의 활약
  • 꽤 긴 시간이 지나야 쓸 수 있게 됨
  • 도대체 우리 고객이 누구였나 하는 오래된 의문을 해결하기 시작
  • 기획과 영업의 질문들이 직접 들어옴. 건마다 리포트를 만들게 됨

Passive Lv. 2 : 대시보드 수렁의 시작

  • 비슷한 레포트를 반복해서 찍다가 대시보드를 도입하게 된다.
  • 지표를 볼 수 있는 페이지와 slack bot이 등장한다.
  • 반복 요청이 줄어드나 싶지만, 이제는 안 보던 부서에도 요청이 들어온다.
  • 저번에 도입했던 지표가 상하는 현상이 발생하기 시작
  • 이전보다 조금 더 고급 분석 요청이 들어오기 시작
  • 대시보드로 확보한 시간을 고급 분석을 처리하는데 쓸 수 있다.
  • 현업의 데이터 직접 접근 니즈가 점차 커진다.

Passive Lv. 3 : 데이터 현업 보급 + 여력 확보

  • 내부 데이터 파이프라인 성숙화
    • 대부분의 데이터가 SQL로 접근 가능하게 정리됨
    • 자체적으로 구축하거나 BigQuery, Redshift로 가게 된다.
  • 대시보드보다는 자세히 보려는 현업이 나타나며, 직접 만지려는 사람들이 늘어남
    • tableau, superset, redash, kibana, hue 등의 현업용 분석 도구 도입
    • 왼쪽일수록 편하고 오른쪽일수록 좀 더 어렵지만 원천데이터에 접근
  • 데이터 팀은 대시보드 지옥을 벗어나 여력이 생김. 이 여력으로 Active로 가자!

데이터 팀은 수동 조직(돈을 쓰는 조직)에서 공격 조직(돈을 버는 조직)으로 거듭나야 회사에서 인정받을 수 있다.

Active Lv. 1 : A/B 테스트의 시작 + 우리편 확보

  • 분석만 해서는 수동조직을 피할 수 없음
  • A/B test : 공격수가 되어야 한다. 변화를 드라이브 해야 한다.
  • 처음에는 기능 테스트 말고 외부 마케팅 요소(웹사이트, 푸시 메시지, 이메일) 테스트가 편함
  • 첫 번째 실험, 결과 잘 나올 때 까지 조용히 현업과 진행
  • 잘 나온 결과로 우리가 공격/실험한다! 크게 사내 마케팅, 다른 부서에서 연락이 오기 시작.

Active Lv. 2 : A/B 테스트 본격 도입 + 실험 지옥

  • 좀 더 구체적이고 어려운 A/B 테스트 요청이 오기 시작
  • 외부 제품의 고급 (유료) 기능을 쓰거나, 자체 A/B 테스트 플랫폼을 구축
  • 내부 데이터를 활용한, 특정 유저 세그먼트를 대상으로 하는 A/B 테스트 요청이 많아짐
  • UX를 벗어나, 새 기능이나, 어떤 컨텐츠를 보여줄 것인가에 대한 앱/서버의 test가 시작됨
  • 점차 실험수가 늘어남. 주당 동시 실험수가 1→N개로 늘어난다.

Active Lv. 3 : 데이터 일의 분권화 + 자동화 + ML

  • 데이터로 일하는 방식은 사내에 많이 보급됨
  • 회사 비즈니스 코어를 데이터나 알고리즘으로 최적화, 자동화 하자는 대표님의 의견
  • 이외에도 여러 일을 자동화, 최적화 하는 일이 많아짐 + 머신러닝 엔지니어의 일이 많아짐
  • 데이터 팀은 회사의 메인 비즈니스를 만지고 있고, 우리는 보람을 느끼며 일하고 있음!

 

OMTM, NorthStar Metric

그래서 이쪽에서는 항상 가장 중요한 지표를 고르라고 합니다. 그걸 OMTM(One Metric That Matters, 가장 중요한 한 가지 지표)이라고 부르기도 하고 NSM(North Star Metric, 북극성 지표)이라고 하기도 합니다. 일반적으로,

  • NSM → 전사적인 목표
  • OSTM → 팀별로 가지고 있는 목표

를 의미한다. 그렇다면 과연 어떤 OMTM을 정해야 하나?

  • 회사의 이익(매출)과 관련 있을 수록 좋다.
  • 갱신 주기가 빠를 수록 좋다. 더 발생 건수가 많을 수록 좋다.
  • 후행지표(ex. 영어 점수 결과)가 아니라 선행지표(ex. 일주일 영어 공부 시간)에 해당하는 것일 수록 좋다.
  • 우리가 조정의 핸들을 가지고 있어서, 변화를 만들기 쉬울 것이 좋다.

OMTM을 찾는 기술적 방법은 다음과 같다.

  • 회사의 가장 중요한 매출 + 그 외 회사의 중요 지표들을 일정 기간 추린다.
  • 이들 간의 상관관계 매트릭스를 그려본다.
  • 그 중에서 매출과 가장 연관관계가 높은 지표를 선정한다.
  • 지표가 후행지표이거나 우리가 컨트롤 할 수 없다면, 이를 대신할 선행하는 2차 대리(proxy) 지표를 찾아 선정한다.
  • 여러 후보 중에는, 더 많은 유저 데이터가 포인트를 남기는 지표를 택한다.

 

좋은 지표들은 업의 본질에 대한 분석에서 나온다. 예를 들어 다음 회사들이 중요하게 보는 지표를 주목해 보자.

  • 이베이 : 아이템 등록한 판매자 수
    • 등록한 아이템 수
    • 구매자 수
    • 성공적인 거래 수
  • 아마존 : 상품 종류 확장
    • 제품 페이지당 트래픽
    • 구매 전환
    • 평균 구매 가치
    • 반복 구매 행동
  • 우버 : 운전자의 수
    • 승객의 수
  • 페이스북 : 사람들이 공유하는 아이템의 양
    • 뉴스피드에 머무르는 시간

 

고객은 고객생애가치(LTV)로 보자. 고객생애가치는 고객 한 명이 우리에게 벌어다 주는 이익 = 한 번에 주는 마진*생애 기간 이다. 그리고 나서 서비스의 리텐션을 구한다. (ex, 20%) 라이프 타임은 고객의 리텐션이 r 이라고 했을 때 1/(1-r) ex. 1/(1-0.2) = 1.25

한 번에 사는 평균 구입 금액이 30000원이면, 순수 마진율 20%라 했을 때 남는 금액 6000원

6000*1.25(LTV) = 7500

한 명 와서 얻는 마진 > 한 명 얻어오는 비용

→ 이렇게 될 경우 비즈니스 성립, 그러면 우리는 한 명 얻어오는데 7500원까지는 써도 된다는 뜻이다. 한 명의 고객을 끌어오는데 사용하는 이 비용을 CAC(Customer Acqusition Cost)라고 한다.

 

유저라고 다 같은 유저가 아니다.

  • 쌩쌩하며 비싼 고객 잘 유치하기
    • 돈 많이 쓰는 애들이 찾아오는 채널이 있다.
    • 우리 LTV 높은 고객은 주로 어디서 오는 지 살펴보자
    • MCF는 대체로 크게 고민 안 해도 된다.
  • 그들의 활동성 유지시키기
    • 훌륭한 고객들도, 언젠가 이탈할 것 같은 유저가 된다.
    • 죽은 다음 약을 먹이는 것은 소용 없다. 죽기 전에 처방해야 한다.
    • 전통적인 RFM(Recency, Frequency, Monetary)로 판단해도 일단 동작
    • 죽을 것 같다면 큰 쿠폰을 뿌려 다시 잡아오자.
    • 파레토라는 것은 전체의 10%라는 것이고, 전체의 10%에겐 과한 보상을 주어도 괜찮다.
      • ex. 통신사, 신규 및 번호 이동에만 혜택 많이 주기
  • 이탈 방지를 위한 보상에 대한 경험
    • 의외로 선물이 크다고 돌아오는 것은 아님
    • 동시에 선물이 작다고 안 돌아오는 것도 아님
    • 아래 위로 하방 상방이 존재
  • 갓 가입한 사람은 허니문 기간이 있다.
    • 이메일 하나를 보내도, 열어보고 사이트를 방문하고 푸시 메시지 하나에도 반응
    • 이 기간은 6달이 한계, 첫 1달에서 승부가 난다
    • 이들에게 전체와 같은 메시지를 보내면 안 된다.
    • 호감이 있을 때 잘 꼬셔야 한다.
      • 마치 대학원생에 오라고 꼬시는 교수님 같다.
  • New User Experience 디자인
    • 시나리오 베이스 세그먼트, 그 세그먼트에 행할 액션 설계
    • 처음 가입 시 우리 회사의 가장 매력적인 상품을 못 봤다면 해당 내용 메일로 보냄
    • 특정 기능을 써 봤을 때 진성 고객이 되는데
    • 일주일이 지나도 안 써보았을 경우, 해당 기능을 팝업을 띄운다.
    • 위와 같이 이 사람이 어디까지 Lock-in 되었는가를 보면서 NUX 개선
  • Multi Armed Bandit
    • 더 좋은 성과를 보이는 녀석에게 더 많은 물량 배정
    • 결론 빨리 나오며, 결론까지 과정 이익 최대화
    • 많은 알고리즘이 있지만, 최근 결론은 톰슨 샘플링

잘 된 실험은 빠르게 외부에 알리고, 잘 안 된 실험은 빠르게 버리고 이 과정을 더 빠르게 돌려 나가는 것이 필요하다. (가능하다면) 데이터 분석 수준을 높이고 데이터를 보는 직원 수를 늘리자.


현실에서의 머신러닝

추천, 광고 등은 사실 엄청난 데이터가 필요하다. 해당 행위가 의미 있기 위한 최소 볼륨이 필요하다. 추천 기준으로는 MAU 20만 (다운로드 기준 100만) 정도가 필요하며, 광고 기준으로는 MAU 200만 (다운로드 기준 1000만) 정도가 필요하다. 따라서 추천, 광고 등으로 재미 보는 회사는 정해져 있다. 이러한 회사들의 공통점은 어제 온 유저가 오늘도 오고 내일도 온다는 것이며, 그래서 다음에 온 유저가 만족할 만한 것을 보여주는 것이 중요하다.

머신러닝을 도입하기 전에 회사의 본질을 고민해 보아야 한다. 우리 비즈니스가 추천과 광고에 적합한 비즈니스인가? 기본적으로 업의 본질과, 고객의 방문주기가 ML과 맞아야지 그게 의미가 있다. 머신러닝을 우리 문제에 억지로 끼워넣게 되는 순간 많은 사람들이 힘들어지고 문제가 생긴다. 실패할 확률이 높다.

 

메인 비즈니스의 벨류 체인에서 비효율 구간을 찾는다.

머신러닝의 역할은, 인간의 선택지를 줄여서 혹은 수작업을 줄여서 메인 비즈니스를 가속화, 고속화 하는 데에 있다. 복잡한 방법으로 80만큼의 이득을 얻는 것보다는, 심플한 방법을 찾아서 60짜리 이득을 빠르게 많이 얻어보는 방향을 선택하자.

기본적인 구분법은 남/여, 연령별(10대, 20대, 30대, 40대, 50대) 구분이며 네이버 웹툰도 이 방법을 쓴다. 이 말은 아직 많은 비즈니스에 워킹한다는 의미, 그 좋은 많은 추천 알고리즘을 배제하고 쓸 정도라면 말이다.

 

회사의 데이터의 특성은 일반적으로 다음과 같다.

  • 회사의 데이터는 대부분 테이블로 정리된 데이터들
  • 그 양이 엄청 많지가 않음
  • 대부분 imbalanced data
  • T/F 중 한쪽 레이블이 압도적으로 많음
  • 제일 쉬운 방법은 많은 쪽을 적은 쪽에 맞춰서 줄여주는 subsampling
  • 그러면서 학습할 수 있는 데이터가 줄어듦

현업과 커뮤니케이션 할 때, MSE(Mean Square Error)의 개선도로 말하면 어려워하신다. 합의된 기준 안에서 "이정도 오차 안에 들어오면 맞는 거고, 벗어나면 틀린 거에요" 저 기준 하에서 정확도(Accuracy)로 변환해서, 말씀드려야 저번보다 얼마다 개선되었는지 체감을 한다. 체감이 중요하다.

 

요즘 비즈니스에서 사용되는 머신러닝의 주요 키워드는 다음과 같다.

  1. AutoML
  2. 머신러닝 데이터 파이프라인 (MLOps)

특히 MLOps라는 포지션이 하는 역할은 다음과 같다.

  • 데이터 수집이 별다른 이상없이 (특히 빠지는 일 없이 그대로 되는지)
    • 다음 릴리즈일 때, 수집단 트래커가 빠지는 경우가 많다.
  • 데이터 디펜던시가 별 문제 없이 해결되는지
  • 피처스토어가 잘 돌아가는지
  • 모델 성능이 예전과 비슷하게 나오는지
  • 튜닝한 새 모델을 얹을 때, 스무스하게 교체가 가능한지
  • 모델링 - AutoML 등의 발전으로 모델링의 고급화는 시간의 문제로 수렴

자신있는 머신러닝 전통 기법을 한 개는 익혀두자. 그리고 요즘 주목해야 할 모델 중 하나는 GPT-3이다. GPT-3는

  • Open AI
  • 범용 자연어 처리 도구
  • GPT-2를 개량
  • 모델 학습에만 150억원

이며 지금 GPT-4가 연구 진행중이라고 한다.