Google Cloud Platform 1
빅데이타의 대중화조대협 , 구글 클라우드 엔지니어[email protected]
Google Cloud Platform 2
발표자 소개 조 대 협 본명 : 조병욱
회원 13 만명 온라인 개발자 커뮤니티 자바스터디 (www.javastudy.co.kr) 운영자 .. 한국 자바 개발자 협회 부회장 , 서버사이드 아키텍트 그룹 운영자 벤쳐 개발자
BEA 웹로직 기술 지원 엔지니어 장애 진단 , 성능 튜닝
NHN 잠깐 오라클 컨설턴트 (SOA,EAI,ALM,Enterprise 2.0, 대용량 분산 시스템 )
MS APAC 클라우드 수석 아키텍트 프리렌서 ( 잘나가는 사장님 ) 삼성전자 무선 사업부 B2B 팀 Chief Architect
피키캐스트 CTO
구글 클라우드 엔지니어
Google Cloud Platform 3Google Cloud Platform 3
비지니스 생태계의 변화
Google Cloud Platform 4
현대의 비지니스
경쟁제품 개선
민첩성 ( 스피드 )
고객 니즈 파악
Google Cloud Platform 5
고객의 니즈 파악
DAU,MAU
FUNNEL 분석A/B 테스팅
추천:
빅데이타 기술의 활용
Google Cloud Platform 6
알고리즘 대규모 인프라
어려운것“ ”기술
빅데이타 분석을 위해 필요한 것
Google Cloud Platform 7
오픈 소스를 통한 대중화
Google Cloud Platform 8Drew Conway's Data Scientist Venn Diagram: http://drewconway.com/zia/2013/3/26/the-data-science-venn-diagram
그러나 여전히 ...
어려운것“ ”
Google Cloud Platform 9
빅데이타란 과연 어렵기만 한것인가 ?
Google Cloud Platform 10
빅데이타 + 클라우드 컴퓨팅 = ?
Google Cloud Platform 11
빅데이타 분석의 종류● 기술 통계학 (Descriptive statistics)
“ 주어진 자료에서 합계나 평균과 같이 필요한 정보를 계산하는 등 , 자료를 수집 정리 요약하는 학문 "- 빅데이타를 분석을 통해서 , 통계를 내는 부분- 하둡 , OLAP,Spark 등을 이용한 데이타 통계
● 추론 통계학 (Inferential statistics)“ 표본에서 얻은 정보를 이용하여 모집단에 대한 정보를 예측하고 불확실한 사실에 대한 결론을 이끌어 내는 데 필요한 이론과 방법을 제시하는 학문 "- 빅데이타를 기반으로한 머신러닝- Tensor flow, Spark ML 등을 이용한 예측
Google Cloud Platform 12
빅데이타 분석
Google Cloud Platform 13Google for Mobile
모바일 데이타 분석의 기본 모델
● Acquisition ( 사용자 획득 ) - 사용자 유입 후 앱 설치 , 회원 가입 등 . 사용자 유치 단계 ● Retention ( 사용자 유지 ) - 유치 된 사용자가 떠나지 않고 머무르는 단계
( 앱 삭제 )
● Engagement ( 사용자 활동 ) - 사용자가 서비스를 사용하는 단계 ( 댓글 , 구매 )
● Monetize ( 수익화 ) - 실제 수익 발생 ( 광고나 구매 )
Google Cloud Platform 14Google for Mobile
단계별 분석 지표● Acquisition 단계
○ Download다운로드 수 삭제 후 재 설치가 있기 때문에 , 실제 사용자 수 와 일치하지 않음
○ New user앱을 설치하고 첫번째로 사용하는 사용자 수 프로모션등으로 인하여 설치후 실행 안하고 바로 지우는 사람들이 있음
○ Demographic info사용자에 대한 기본 정보 ( 나이 , 성별 , 지리적 위치 , 단말 종류 , 통신사 )
○ Install tracking어느 경로를 통해서 유입 되었는가 ? ( 페이스북 ? 웹 광고 ? 피쳐드앱 등 )
< Demographic info sample>
Google Cloud Platform 15Google for Mobile
단계별 분석 지표● Retention 단계
○ 신규 사용자의 재 방문율을 이용하여 측정
<Google analytics 를 이용한 Retention 분석>
“ 앱 설치 후 , 1 일차에 68% 이탈 , 2 일차에 , 85% ”이탈
Google Cloud Platform 16Google for Mobile
단계별 분석 지표● Engagement
○ User Path사용자가 어느 경로로 앱을 사용하는지 경로별 비중 측정
○ Active User단위 시간동안 서비스를 사용한 사용자 수 DAU (Daily Active User/ 일별 사용자 )MAU (Monthly Active User/ 월별 사용자 )
○ Session시스템에 접속해서 사용하고 있는 사용자 수
○ Session Length한번 접속 했을때 , 사용하는 기간
<Google analytics 를 이용한 User Path 분석>
Google Cloud Platform 17Google for Mobile
단계별 분석 지표● Engagement
○ Viral페이스북등 SNS 나 기타 매체의 공유 링크를 통해서 들어오는 트래픽의 수
○ Bounce rate이탈율 (Uninstall 수 )
○ Loyalty충성도를 측정하는 지표로 , 하루에 또는 일주일에 몇번 앱을 재 사용 했는 가
< 구글 플레이 스토어에서 일일 Uninstall 사용자 추적 예 >
Google Cloud Platform 18Google for Mobile
분석 방법● Cohort analysis ( 코호트 분석 )
○ 특정 지표에 대한 그룹별 분석 ( 나이 / 성별 등 )
● Funnel analytics ( 퍼넬 분석 )○ 특정 목표 ( 구매 도달 , 광고 클릭 도달등 ) 를
달성할때 까지 사용자의 잔존 비율을 단계별로 분석
< Google analytics 의 Funnel 분석 예 >
Google Cloud Platform 19Google for Mobile
모바일 터치 히트맵
출처 : https://blog.crazyegg.com/2016/09/22/local-mobile-landing-pages-convert/ https://www.appsee.com/?cpnid=701b0000000W1Gz
Google Cloud Platform 20Google for Mobile
AB 테스팅● AB 테스팅의 정의
○ 사용자를 A/B/C/.../N 군으로 분리한후 각각 다른 기능을 제공하여 사용자에 반응에 따라 좋은 기능을 선택하는 기법
○ 페이스북이 airlock 이라는 오픈소스를 이용하여 사용자 반응을 기반으로 서비스를 개선함● AB 테스팅 활용
○ UI 변경○ 기능 테스트
● AB 테스팅 인프라를 구축하려면○ 리모트로 사용자군을 나눠서 기능을 적용○ 통계 결과를 모니터링○ 최종 배포
파이어베이스 REMOTE CONFIG 를 이용하면 구현 가능
Google Cloud Platform 21Google for Mobile
게임 데이타 분석● Spatial analytics ( 지리 정보 분석 )
Chat log analytics(NLP API 를 이용하여 주요 채팅어를 지역별로 분석 )
Dead zone 분석 플레이어가 주로 죽는
부분의 플레이어와 NPC 레벨 분석
→ 난이도 조정
Google Cloud Platform 22Google for Mobile
추가적으로 유용한 지표● 앱 크래쉬 비율
○ 앱 크래쉬 비율 ( 사용자 Retention 에 영향이 큼 )
● 앱스토어 평가○ 앱스토어 평점 관리 ○ 잘 빼먹는 부분
< Google Firebase app crash report >
Google Cloud Platform 23Google for Mobile
구현 전략● 정보 모델 설계
○ 비지니스 의사 결정에 필요한 주요 지표를 선정 ( 많으면 오히려 혼선 )
○ 비지니스 성장 동력을 기준으로 한 관련 지표를 선택● 구현 방식 설계
○ 초기 : 무료 솔루션 위주 접근 (Google fire base, google analytics, Flurry,
Fabric etc)
○ 중기 : 무료 솔루션 + 자체 구축 솔루션 ● 공통 중요 사항
○ 데이타 분석을 시작하는 것이 중요○ 모든 데이타는 지금 분석하지 않더라도 모두 수집하여 저장
Google Cloud Platform 24Google for Mobile
람다 아키텍쳐● 트위터 Nathan Marz 에 의해 소개 (http://lambda-architecture.net/)
● 기본 개념예전 데이타는 배치로 통계 결과를 내서 저장배치 돌기 전의 최신 데이타와 , 배치로 연산된 통계 데이타를 조인하여 , 현재 데이타를 포함한 분석 리포팅 제공
Google Cloud Platform 25Google for Mobile
람다 아키텍쳐● 람다 아키텍쳐 구조
○ 배치 레이어 : 데이타를 저장하고 , 일정 기간을 주기로 배치 연산을 수행하여 계산○ 서빙 레이어 : 배치레이어에서 계산된 결과를 저장○ 스피드 레이어
실시간으로 들어오는 데이타에 대해서 , 연산 및 통계 저장 배치로 연산된 이전 데이타는 유지하지 않음
Google Cloud Platform 26Google for Mobile
람다 아키텍쳐● 람다 아키텍쳐의 일반적인 데이타 처리 구조
○ 데이타 인사이트 분석데이타 저장소에서 데이타 과학자들이 데이타를 샘플링하여 , 분석하여 인사이트 ( 의미 ) 를 찾아냄
○ 데이타 분석 알고리즘 작성인사이트를 기반으로 빅데이타 엔지니어가 알고리즘 (MR 코드 ) 등을 작성하여 배포
Google Cloud Platform 27Google for Mobile
람다 아키텍쳐● 오픈 소스 기반 솔루션 맵핑
○ 배치 레이어 : OLAP, Hadoop/HDFS or Spark○ 서빙 레이어 : HBase, SQL○ 스피드 레이어
■ 실시간 처리 : Spark Streaming, Apache Flink , Storm■ 실시간 뷰 : SQL, Redis
Google Cloud Platform 28Google for Mobile
오픈 소스 기반의 솔루션 아키텍쳐
Spark streaming Hadoop MRKafka
IpythonnotebookHadoop HDFS
User applicationLinux
Zeppelin
Spark
Fluentd
Google Cloud Platform 29Google for Mobile
오픈 소스 기반의 솔루션 아키텍쳐Programmin
g
Resource provisioning
Performance tuning
Monitoring
ReliabilityDeployment & configuration
Handling Growing
Scale
Utilization improvemen
ts
데이타 분석 자체 보다 .데이타 분석 인프라를 설치 운영 하는데 많은 리소스가 소요됨
Google Cloud Platform 30Google for Mobile
클라우드 기반의 솔루션 아키텍쳐
Cloud Dataflow BigQueryCloud Pub/Sub
DatalabCloud Storage
DataStudioVM or AppEngine
Google Cloud Platform 31Google for Mobile
클라우드 기반의 빅데이타 분석
비용(4TB, 1000억개 레코드 분석에 20$)
스케일(30초 동안 8600 개의 CPU, 3600 개의 디스크 )
No-Ops( 별도의 운영이 필요없음 )
클라우드 스케일의 성능(1000억 레코드 4TB 분석에 30초 )
Optimize yourtime to answer
Programming
Google Cloud Platform 33Google Cloud Platform 33
머신러닝
35
Smart reply in Inbox by Gmail
10%of all responses sent on mobile
Google Cloud Platform 36
머신 러닝의 분류● 학습 데이타에 따른 분류
• Supervised Learning (labeled data) • Un supervised learning
● 문제의 종류• Regression problem (continuous value)• Classification problem
Google Cloud Platform 37
Supervised learning vs unsupervised learning
Google Cloud Platform 38
Regression vs Classification
Regression problem Classification problem
● Not in unsupervised learning
Google Cloud Platform 39
거리에 따른 택시 요금 문제“ 수집된 거리에 따른 택시 요금 데이타를이용하여 , 거리에 따른 택시 요금 예측 모델을구현 "
Google Cloud Platform 40
가설의 정의 (Hyphothsis)
● 가설• 택시요금 = W*거리 + b• Hypothesis : y = Wx + b
“ 수집된 데이타와 가장 유사한 형태의 그래프를 그리기 위한 W 와 b 의 값은 얼마 일까 ?”
Google Cloud Platform 41
비용 함수 (Cost function)
● 임의의값 W 와 b 에 대해서 , 수집된 값과 가장 차이가 작은 W 와 b 를 찾는다 .● 임의의값 W 와 b 에 대해서 , 수집된 값과의 차이 = 비용 함수 (코스트 함수 )
Google Cloud Platform 42
비용 함수 (Cost function)
● 임의의값 W 와 b 에 대해서 , 수집된 값과 가장 차이가 작은 W 와 b 를 찾는다 .● 임의의값 W 와 b 에 대해서 , 수집된 값과의 차이 = 비용 함수 (코스트 함수 )
(ABS(d1)+ABS(d2)+..+ABS(dn) )/n 의 최소값을 찾는다 .
절대평균을 사용하는 대신 평균 제곱 오차를 사용
Google Cloud Platform 43
학습 결과W b
Google Cloud Platform 44
DEMOGOOGLE VISION API
http://vision-explorer.reactive.ai/#/galaxy?_k=8sf2uy
Google Cloud Platform 45
VISION API var vision = require('google-vision-api-client');var requtil = vision.requtil; //Prepare your service account from trust preview certificated projectvar jsonfile = '/Users/terry/dev/ws/nodejs/GoogleVisionAPISample/My Project-eee0a2d4532a.json'; //Initialize the apivision.init(jsonfile); //Build the request payloadsvar d = requtil.createRequests().addRequest(requtil.createRequest('/Users/terry/images/dale2.jpg').withFeature('FACE_DETECTION', 3).withFeature('LABEL_DETECTION', 2).build()); //Do query to the api servervision.query(d, function(e, r, d){if(e) console.log('ERROR:', e); console.log(JSON.stringify(d));});
22 LINE OF SOURCE CODE(node.js face detection, label detection)
Google Cloud Platform 46
Vision API
LabelDetection
LandmarkDetectionOCRc
LogoDetection
FaceDetection
Explicit Content
Detection
Google Cloud Platform 47
DEMOGOOGLE SPEECH API
Pre-trained models. No ML skill required
REST API: receives audio and returns texts
Supports 80+ languages
Streaming or non-streaming
Public Beta - cloud.google.com/speech
Cloud Speech API
Google Cloud Platform 49
머신러닝 API 활용 사례 - 트위터 트랜드 분석
Zeppelin(Detail analytics)
Datastudio(Dashboard)
Process statics in every 30 sec (realtime)
Can you believe it?“ It takes about 5 hours for coding.And 1 hours for reporting”Easy !!
Confidential & ProprietaryGoogle Cloud Platform 50
머신러닝 API 활용 사례 - 트위터 트랜드 분석
Confidential & ProprietaryGoogle Cloud Platform 51
머신러닝 API 활용 사례 - 트위터 트랜드 분석
9-12 16:00(india, flight,use)
9-12 23:00(boy)
Confidential & ProprietaryGoogle Cloud Platform 52
머신러닝 API 활용 사례 - 트위터 트랜드 분석
“ 혼자서 4 시간걸렸습니다 .”
Confidential & ProprietaryGoogle Cloud Platform 53
머신 러닝 분석 방법
TensorFlow Cloud Machine Learning ML API
Easy-to-Use, for non-ML engineers
Customizable, for Data Scientists
Google's open source library for machine intelligence
tensorflow.org launched in Nov 2015Used by many production ML projects
What is TensorFlow?
Portable and ScalableTraining on:
Mac/Windows
GPU server
GPU cluster / Cloud
Prediction on:
Android and iOS
RasPi and TPU
TensorFlow powered Cucumber Sorter
From: http://workpiles.com/2016/02/tensorflow-cnn-cucumber/
TensorFlow powered Cucumber Sorter
TV 아이돌 얼굴 인식
From: http://memo.sugyan.com/entry/2016/10/12/084751
라즈베리파이 3 과텐서 플로우를 이용한 자동 주행
From: https://github.com/zxzhijia/GoPiGo-Driven-by-Tensorflow
Google Cloud Platform 61Google for Mobile
활용 방안상품 이미지에서 상품 설명 ( 문자 ) 을 추출하여 검색 키워드로 사용
사진을 찍어서 쇼핑몰내 상품 검색 비디오 영상에서 , 각 프레임 마다 나오는
물체 와 장소를 인식하여 메타 정보화 ( 비디오 검색에 활용 )
Google Cloud Platform 62
감사합니다 !