김진영님 강연회 후기 (요약 등)
브런치, 팟캐스트를 통해 간접적으로 알고 있었던 김진영님께서 강연회를 한다고 해서 연말임에도 불구하고, 추운 날씨에도 불구하고 뚜벅뚜벅 세미나를 다녀왔다. (2019-12-30, 19:00)
세미나 제목이 ‘인공지능 시대의 데이터 사이언스’로 제목만 봐서는 어떤 내용일지 알 수는 없었으나, 기존 콘텐츠를 통해 내공이 워낙 있으신 분이란걸 알았기에 이참에 한번쯤 오프라인에서 세미나를 들어도 좋겠다 싶었다.
강연의 기본적인 내용은 데이터 사이언스 업무, 그 업무 단계에 따라 일을 잘할 수 있는 현업에서의 조언이었다.
데이터 사이언티스트, 데이터 분석가란 직무가 인기를 끌고 있고, 나름 두 개 직무 안에서 구분이 생기고는 있지만 (이것과 관련해서는 나중에 다시 글을 한번 쓰기로…), 두 직무 모두 데이터를 통해 비즈니스를 이해하고, 비즈니스의 이슈(문제)를 해결해 나가는 것을 목표로 한다.
강연회에서 김진영씨는 데이터 사이언스를 데이터에 다양한 기술을 적용하여 문제를 해결하는 것으로 정의했고, 컴퓨터 프로그래밍과 수학/통계학, 도메인 지식 3개의 영역이 중첩되어 있는 것으로 표현했다.
이 직군의 구체적인 업무 내용(프로세스)은 1. 데이터 준비 -> 2. 모델 만들기 -> 3. 모델 적용하기 정도로 구분할 수 있다. 사람들이 흔히 누군가가 “데이터 사이언스/분석가”라고 했을 때 두 번째 단계인 모델을 만드는 것을 생각한다. 최근에는 머신러닝을 적용해봤는지, 모델을 어디까지 만들 수 있는지 등을 주요하게 묻고 평가하는 척도가 되고 있는 것 같다.
그러나 실무에서는 모델을 만드는 것보다 1. 데이터를 준비하고, 3. 모델을 적용하는 것이 대부분의 업무를 차지한다. 물론 업무 세분화가 잘 되어있는 회사의 경우 예외일 수 있지만 그렇기에 멋지게 모델을 만드는 직군이라기 보다는 데이터를 준비하는 일종의 노가다 업무가 주 업무 비중을 차지한다.
강연회에서 그는 인공지능의 빛과 그늘이란 이야기를 하면서, 다음 사례들을 언급했다.
- 2020년 자율주행차를 완성하겠다고 했던 많은 업체들은 그 기한을 없앴다
- 지난 8년동안 IBM왓슨은 업계의 신뢰를 잃었다
- 아마존은 알고리즘에 의한 인재 선발을 포기했다
이러한 문제에 발생하는 이유에 대해 그는 다음을 지적했다.
1. 인공지능은 충분한 학습 데이터가 존재하는 상황에서만 동작한다(자동차 사고의 경우 잘 주행되는 경우랑 사고가 나는 경우 데이터가 충분히 있어야 하는데 이를 위해 사고를 일부러 낼 수는 없다).
2. 데이터 자체가 갖가지 편향을 그대로 반영한다(편향된 현실 세계에서 수집된다).
3. 학습된 데이터의 패턴을 벗어나는 상황에서 오류를 일으킨다(현실 세계에서 데이터의 분포는 항상 바뀐다).
이러한 문제를 해결해 나가는 과정은 크게
1. 모델을 개선하거나 (2. 모델 만들기)
2. 모델의 밖에서 모델의 문제를 해결하는 것(1. 데이터 준비하기 + 3. 모델 적용하기)
- 모델의 인풋을 개선하는 과정 - 데이터에 내재된 문제점 조기 발견 & 수정
- 모델이 아웃풋을 개선하는 과정 - 예측 결과의 적합성을 다양한 각도에서 평가
강연회에서 그가 강조한 부분은 1. 데이터 준비하기 단계, 3. 모델 적용하기 단계를 좀 더 개선해서 인공지능과 관련한 문제(모델의 현실 적용 실패)를 해결해 나갈 필요성, 일부 방법을 공유했다. 실제로 모델을 만드는 업무 자체는 시간이 지남에 따라 자동화가 가능한 부분이기 때문에, 데이터 사이언티스트/분석가로서 좀 더 전후 단계의 개선을 통해 실제적인 문제해결에 다가가는 것이 필요하다.
아래 내용은 이후 강연회 내용을 간단히 요약한 부분이다. PPT를 공유해주신다고 하셨으나 아직 공유가 되지 않아서 어디까지나 내가 듣고 이해한 부분만을 기록한 부분이다.
# 데이터 준비하기
1. 데이터 양이 너무 적은 경우
- 더 모은다
- 단순한 모델을 사용한다(선형모델이 신경망 모델보다 효과적일 수 있다)
- 데이터를 합성해서 만든다(컴퓨터 비전)
2. 데이터에 빠진 항목이 있는 경우
- 무작위로 빠진 경우 (missing at random) - 별이슈가 되지 않는다
- 빠진 항목에 패턴이 있는 경우 (ex, reporting bias) - KNN 등을 통해 해결
3. 데이터에 편향이 있어요
- 샘플 자체의 편향: 캐글 사용자가 업계 전체를 대표할 수 있는가?
- 레이블의 편향: 휘귀 질병을 찾아내는 분류기( 정상 >> 비정상 샘플)
- 해결책: SMOTE ( 마이너리티 데이터 중간 평균값을 생성해서 데이터 수를 늘린다 )
# 모델 적용하기
모델을 적용 평가하는 단계에서 confusion matrix 를 많이 사용하는데 이때 각 상황에 따라서 어떤 지표를 더 중요하게 볼 것인지를 잘 정의해야 한다. 어떤 유형의 에러가 더 문제가 되는가? 예측 성능에서 유의미한 차이가 나는가? 어느 모델이 더 단순하고 해석 가능한가?
# 이와 관련된 실전사례: 콘텐츠 추천 시스템(김진영님 업무 관련 내용)
일반적인 업무 진행 패턴
1. 모델 트레이닝: 사용자의 행동을 기반으로 레이블 추론
- 사용자가 몇초이상 시청한 콘텐츠: positive
- 사용자가 목록에서 보고 스킵: negative
2. 모델 평가: 오프라인으로 모델을 개발한 후 온라인 AB테스트
- 추천 결과의 정확성/참신성/다양성을 평가하는 Metrix를 개발
3. 모델을 업데이트
- 모델이 오래될수록 성능이 지속적으로 떨어짐
실무에서의 교훈
- 사용자 로그 데이터 파이프라인을 최대한 빨리 구축하여 데이터를 모은다.
- 성능 개선을 이끌 수 있는 좋은 지표를 디자인하고, 시스템 수명 주기에 따라 업데이트한다.
- 복잡한 블랙박스 모델 대신에 단순한 모델을 조합하여 사용한다.
- 한번에 최종결과를 내기 보다는 빠른 알고리즘으로 1차 결과를 내고 여기서 최종 결과를 도출한다. (핀터레스트 회사에서 발표한 논문, https://labs.pinterest.com/user/themes/pin_labs/assets/paper/p2p-www17.pdf )