Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
김일호, Solutions Architect
17-May-2016
Amazon Mach...
Agenda
Machine Learning 이란?
Machine Learning 적용 예제(아이템 이벤트 타겟유저)
Amazon Machine Learning (Amazon ML) 특징, 장점
Demo 
Amazon ...
데이터 기반 개발의 세 가지 방법
Retrospective
분석 또는 보고
Amazon Redshift,
Amazon RDS
Amazon S3
Amazon EMR
데이터 기반 개발의 세 가지 방법
Retrospective
분석 또는 보고
Here-and-now
실시간 분석/처리
또는 대쉬보드
Amazon Kinesis
Amazon EC2
AWS Lambda
Amazon Redsh...
데이터 기반 개발의 세 가지 방법
Retrospective
분석 또는 보고
Here-and-now
실시간 분석/처리
또는 대쉬보드
Predictions
보다 스마트한
서비스 개발
Amazon Kinesis
Amazon ...
Machine learning, 보다 스마트한 서비스
Machine Learning 은 데이터에서 새로운
패턴과 의미를 발견하고, 그 예측된 값을 새로운
데이더로 활용할 수 있다.
Machine learning, 보다 스마트한 서비스
Machine Learning 은 데이터에서 새로운
패턴과 의미를 발견하고, 그 예측된 값을 새로운
데이더로 활용할 수 있다.
Your data + machine l...
Your data + machine learning = +
Machine Learning 를 이용한 예제
Based on what you
know about the user:
이 아이템에 사용자가
정말 매력을 느낄까?
Based on what you
know about an o...
Machine Learning 적용 아이디어
Fraud detection 정상적인 Transaction인가?, 의심가는 사용자 패턴 인식,
위험 사용자 태깅 …
Personalization 유져가 좋아할만한 아이템, 미...
”이번 이벤트는 장비셋으로 합시다”
모든 고객님,
어버이날 감사 이벤트
$49.99 장비셋
….
…
타겟 유저를 뽑아 봅시다.
SELECT c.ID
FROM customers c
LEFT JOIN orders o
ON c.ID = o.customer
GROUP BY c.ID
HAVING o.date > GETDATE(...
조금 좁혀서 타겟 유저를 뽑아 봅시다.
SELECT c.ID
FROM customers c
LEFT JOIN orders o
ON c.ID = o.customer
GROUP BY c.ID
HAVING
AND o.date...
더 좁혀서 타겟 유저를 뽑아 봅시다.
SELECT c.ID
FROM customers c
LEFT JOIN orders o
ON c.ID = o.customer
GROUP BY c.ID
HAVING o.category ...
더 좁혀서 타겟 유저를 뽑아 봅시다.
SELECT c.ID
FROM customers c
LEFT JOIN orders o
ON c.ID = o.customer
LEFT JOIN products p
ON p.ID = o...
타겟 유저가 너무 적다. 더 뽑아 봅시다.
SELECT c.ID
FROM customers c
LEFT JOIN orders o
ON c.ID = o.customer
LEFT JOIN products p
ON p.ID ...
타겟 유저가 너무 적다. 더 뽑아 봅시다.
SELECT c.ID
FROM customers c
LEFT JOIN orders o
ON c.ID = o.customer
LEFT JOIN products p
ON p.ID ...
타겟 유저가 정말 구입 가능성이 높은 유저인가?
SELECT c.ID
FROM customers c
LEFT JOIN orders o
ON c.ID = o.customer
LEFT JOIN products p
ON p....
Machine Learning 적용이 쉬운 문제일까?
1. Machine learning 전문가가 적다.
2. 확장 가능한 Machine learning 아키텍쳐를 구성하기
어렵다
3. 모델링과 서비스를 연동하는게 많은...
Machine Learning을 쉽게
적용할 수 있는 방법이 없을까?
Amazon Machine Learning
• 간단히 생성, 쉬운 사용법
• AWS에서 관리하는 제공하는 Machine Learning 서비스
• API로 개발자도 쉽게 사용
• Amazon 내부의 시스템위에서 빠른 M...
개발자들이 쉽게 접근하여 사용 가능
쉽게 접근 및 사용할 수 있는 Console로 직접 ML
모델링
• 데이터 소스 지정 및 생성
• ML 모델 생성, 모델 품질 측정, 튜닝
• 배포 및 관리
자동화된 관리와 API, ...
신뢰할 수 있는 machine learning technology
Amazon 내부의 Data Scientist들이 사용한 기술과
동일하고 확장성이 높은 입증된 Machine Learning을
기술을 기반으로 합니다.
...
AWS 의 다른 서비스과 연계
S3에 저장된 데이터를 직접 접근하여 활용하며,
Amazon Redshift에 저장된 데이터를 편리하게
가져와 모델링 가능
예측 결과 파일을 간단히 S3에 저장하여 활용
가능
AWS Ide...
AWS에서 관리하고 제공하는 서비스
직접 Machine learning을 위한 시스템을
관리하거나 배포할 필요가 없음
클릭 몇 번으로 Production 배포 가능
API를 통해 모델링과 쿼리에 대한 Workflow
자...
Build
model
Evaluate and
optimize
Retrieve
predictions
1 2 3
Amazon Machine Learning 사용하기
Train
model
Evaluate and
optimize
Retrieve
predictions
1 2 3
Amazon Machine Learning 사용하기 1
- 데이터 소스로 부터 DataSource 생성
- 데...
데이터로부터 Datasource 생성
>>> import boto
>>> ml = boto.connect_machinelearning()
>>> ds = ml.create_data_source_from_s3(
data_...
데이터 내용과 스키마 확인
데이터 모델 생성
>>> import boto
>>> ml = boto.connect_machinelearning()
>>> model = ml.create_ml_model(
ml_model_id=’my_model',
...
Train
model
Evaluate and
optimize
Retrieve
predictions
1 2 3
Amazon Machine Learning 사용하기 2
- 생성된 모델의 품질 확인
- 모델에 해석 상세 조절
모델 결과 및 품질 확인
모델 해석 상세 조절
모델 해석 상세 조절
Train
model
Evaluate and
optimize
Retrieve
predictions
1 2 3
Amazon Machine Learning 사용하기 3
- 배치를 통한 예측
- 실시간 예측
배치(Batch)방식 예측
비동기적으로 대량의 예측 결과 필요 시 사용
Console, API를 통해 요청 가능
많은 양의 데이터를 한 번에 처리하여 결과를 S3에 저장
>>> import boto
>>> ml = bo...
실시간(Real-time) 예측
동기적으로 빠르게 예측 결과를 바로 사용 가능
API, SDK를 통해 요청
각각의 데이터를 실시간으로 서비스에서 요청하여 사용
>>> import boto
>>> ml = boto.con...
Demo 
“과연 사용자가 이벤트 결제를 할까?”
“과연 어떤 요소가 결제에 영향을
줄까?”
Amazon Machine Learning
활용 아키텍쳐
Query for predictions with
Amazon ML batch API
Process data
with EMR
Raw data in S3
Aggregated data
in S3
Predictions
in S...
Query for predictions with
Amazon ML batch API
IDC
Aggregated data
in S3
Predictions
in S3
Your Game
IDC의 데이터를 S3로 저장 후 활용...
Structured data
In Amazon Redshift
Load predictions into
Amazon Redshift
-or-
Read prediction results
directly from S3
Pre...
Your Games
Query for predictions with
Amazon ML real-time API
API를 이용한 실시간 예측
Amazon
DynamoDB
+
Trigger event with Lambda
+
Query for predictions with
Amazon ML real-time API
Your Games
DynamoDB의 데이터를...
Thank you!
Amazon Machine Learning 게임에서 활용해보기 :: 김일호 :: AWS Summit Seoul 2016
Amazon Machine Learning 게임에서 활용해보기 :: 김일호 :: AWS Summit Seoul 2016
Upcoming SlideShare
Loading in …5
×

Amazon Machine Learning 게임에서 활용해보기 :: 김일호 :: AWS Summit Seoul 2016

3,802 views

Published on

5월 17일 서울COEX에서 열린 AWS Summit Seoul 2016에서 김 일호 솔루션즈 아키텍트 님이 발표하신 "Amazon Machine Learning 게임에서 활용해보기" 발표자료입니다.

Published in: Technology

Amazon Machine Learning 게임에서 활용해보기 :: 김일호 :: AWS Summit Seoul 2016

  1. 1. © 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 김일호, Solutions Architect 17-May-2016 Amazon Machine Learning 게임에서 활용해 보기
  2. 2. Agenda Machine Learning 이란? Machine Learning 적용 예제(아이템 이벤트 타겟유저) Amazon Machine Learning (Amazon ML) 특징, 장점 Demo  Amazon Machine Learning 활용 아키텍쳐
  3. 3. 데이터 기반 개발의 세 가지 방법 Retrospective 분석 또는 보고 Amazon Redshift, Amazon RDS Amazon S3 Amazon EMR
  4. 4. 데이터 기반 개발의 세 가지 방법 Retrospective 분석 또는 보고 Here-and-now 실시간 분석/처리 또는 대쉬보드 Amazon Kinesis Amazon EC2 AWS Lambda Amazon Redshift, Amazon RDS Amazon S3 Amazon EMR
  5. 5. 데이터 기반 개발의 세 가지 방법 Retrospective 분석 또는 보고 Here-and-now 실시간 분석/처리 또는 대쉬보드 Predictions 보다 스마트한 서비스 개발 Amazon Kinesis Amazon EC2 AWS Lambda Amazon Redshift, Amazon RDS Amazon S3 Amazon EMR
  6. 6. Machine learning, 보다 스마트한 서비스 Machine Learning 은 데이터에서 새로운 패턴과 의미를 발견하고, 그 예측된 값을 새로운 데이더로 활용할 수 있다.
  7. 7. Machine learning, 보다 스마트한 서비스 Machine Learning 은 데이터에서 새로운 패턴과 의미를 발견하고, 그 예측된 값을 새로운 데이더로 활용할 수 있다. Your data + machine learning = smart applications
  8. 8. Your data + machine learning = +
  9. 9. Machine Learning 를 이용한 예제 Based on what you know about the user: 이 아이템에 사용자가 정말 매력을 느낄까? Based on what you know about an order: 전에 비슷한 아이템을 구매했는가? Based on what you know about a news article: 이 사용자는 다른 정보가 아이템 구매와 관련이 있을까?
  10. 10. Machine Learning 적용 아이디어 Fraud detection 정상적인 Transaction인가?, 의심가는 사용자 패턴 인식, 위험 사용자 태깅 … Personalization 유져가 좋아할만한 아이템, 미션 추천… Targeted marketing 유져마다 각각 다른 이벤트 제안, 다른 형식의 마케팅 진행, 크로스 셀링, 업 셀링… Content classification 개인에 맞는 스킬 셋, 장비 셋 제안… Churn prediction 예상 탈퇴 또는 미사용자 검색, 공짜에서 유료 사용자로 전환 타이밍 감지… Customer support 고객 이메일, 게시판 등에서 예상될 이슈 감지 및 경고…
  11. 11. ”이번 이벤트는 장비셋으로 합시다” 모든 고객님, 어버이날 감사 이벤트 $49.99 장비셋 …. …
  12. 12. 타겟 유저를 뽑아 봅시다. SELECT c.ID FROM customers c LEFT JOIN orders o ON c.ID = o.customer GROUP BY c.ID HAVING o.date > GETDATE() – 30 최근 30일 내에 아이템을 구매한 유저분들에게 제안한다.
  13. 13. 조금 좁혀서 타겟 유저를 뽑아 봅시다. SELECT c.ID FROM customers c LEFT JOIN orders o ON c.ID = o.customer GROUP BY c.ID HAVING AND o.date > GETDATE() – 30 무기 외에 방어구만 구매한 유저만을 뽑아본다.
  14. 14. 더 좁혀서 타겟 유저를 뽑아 봅시다. SELECT c.ID FROM customers c LEFT JOIN orders o ON c.ID = o.customer GROUP BY c.ID HAVING o.category = ‘ARMOR’ AND (COUNT(*) > 2 AND SUM(o.price) > 200 AND o.date > GETDATE() – 30) ) 방어구 중에 최근 두 달간 갑옷 종류를 구매한 유저만을 뽑아본다….
  15. 15. 더 좁혀서 타겟 유저를 뽑아 봅시다. SELECT c.ID FROM customers c LEFT JOIN orders o ON c.ID = o.customer LEFT JOIN products p ON p.ID = o.product GROUP BY c.ID HAVING o.category = ‘toys’ AND ((p.description LIKE ‘% %’ AND o.date > GETDATE() - 60) OR (COUNT(*) > 2 AND SUM(o.price) > 200 AND o.date > GETDATE() – 30) ) 부츠는? 헬멧은? 쿼리 조건을 다시 추가…? ‘% %’ ‘% %’
  16. 16. 타겟 유저가 너무 적다. 더 뽑아 봅시다. SELECT c.ID FROM customers c LEFT JOIN orders o ON c.ID = o.customer LEFT JOIN products p ON p.ID = o.product GROUP BY c.ID HAVING o.category = ‘ARMOR’ AND ((p.description LIKE ‘%PLATE%’ AND o.date > GETDATE() - ) OR (COUNT(*) > 2 AND SUM(o.price) > 200 AND o.date > GETDATE() – 30) ) 60일이 아니라 120일전 기록까지 뽑아본다.
  17. 17. 타겟 유저가 너무 적다. 더 뽑아 봅시다. SELECT c.ID FROM customers c LEFT JOIN orders o ON c.ID = o.customer LEFT JOIN products p ON p.ID = o.product GROUP BY c.ID HAVING o.category = ‘ARMOR’ AND ((p.description LIKE ‘%PLATE%’ AND o.date > GETDATE() - 120) OR (COUNT(*) > 2 AND SUM(o.price) > 200 AND o.date > GETDATE() – ) ) $200이상 유저는 30일에서 40일전까지…
  18. 18. 타겟 유저가 정말 구입 가능성이 높은 유저인가? SELECT c.ID FROM customers c LEFT JOIN orders o ON c.ID = o.customer LEFT JOIN products p ON p.ID = o.product GROUP BY c.ID HAVING o.category = ‘ARMOR’ AND ((p.description LIKE ‘%PLATE%’ AND o.date > GETDATE() - ) OR (COUNT(*) > 2 AND SUM(o.price) > 150 AND o.date > GETDATE() – 40) ) 누군가 의미있는 연관성과 패턴을 찾아 구매 가능성이 가장 높은 유저 리스트를 뽑아주면 정말 좋겠다! Machine Learning!
  19. 19. Machine Learning 적용이 쉬운 문제일까? 1. Machine learning 전문가가 적다. 2. 확장 가능한 Machine learning 아키텍쳐를 구성하기 어렵다 3. 모델링과 서비스를 연동하는게 많은 비용과 시간이 든다.
  20. 20. Machine Learning을 쉽게 적용할 수 있는 방법이 없을까?
  21. 21. Amazon Machine Learning • 간단히 생성, 쉬운 사용법 • AWS에서 관리하는 제공하는 Machine Learning 서비스 • API로 개발자도 쉽게 사용 • Amazon 내부의 시스템위에서 빠른 Machine Learning 기술 사용 • 이미 AWS 에 저장된 데이터를 바로 사용하여 데이터 모델링 • 바로 Production으로 사용할 수 있도록 배포(Endpoint)
  22. 22. 개발자들이 쉽게 접근하여 사용 가능 쉽게 접근 및 사용할 수 있는 Console로 직접 ML 모델링 • 데이터 소스 지정 및 생성 • ML 모델 생성, 모델 품질 측정, 튜닝 • 배포 및 관리 자동화된 관리와 API, SDK를 이용하여 쉽게 활용 • Java, Python, .NET, JavaScript, Ruby, Javascript AWS Mobile SDK를 통해 Android, iOS 앱에서도 쉽게 사용 가능
  23. 23. 신뢰할 수 있는 machine learning technology Amazon 내부의 Data Scientist들이 사용한 기술과 동일하고 확장성이 높은 입증된 Machine Learning을 기술을 기반으로 합니다. 알고리즘외의 편리한 기능: • 간단한 데이터 타입 변환, 스키마 생성 • 원본 데이터와 모델에 대한 품질 평가 확장 가능한 Pay as use 모델 • 100GB 데이터 모델링 가능 • 배치를 통한 예측 지원 • 실시간 예측 지원
  24. 24. AWS 의 다른 서비스과 연계 S3에 저장된 데이터를 직접 접근하여 활용하며, Amazon Redshift에 저장된 데이터를 편리하게 가져와 모델링 가능 예측 결과 파일을 간단히 S3에 저장하여 활용 가능 AWS Identity and Access Management (IAM)를 활용하여 서비스에 접근 권한 제어 가능
  25. 25. AWS에서 관리하고 제공하는 서비스 직접 Machine learning을 위한 시스템을 관리하거나 배포할 필요가 없음 클릭 몇 번으로 Production 배포 가능 API를 통해 모델링과 쿼리에 대한 Workflow 자동화 가능 Amazon CloudWatch를 통한 모니터링 제공
  26. 26. Build model Evaluate and optimize Retrieve predictions 1 2 3 Amazon Machine Learning 사용하기
  27. 27. Train model Evaluate and optimize Retrieve predictions 1 2 3 Amazon Machine Learning 사용하기 1 - 데이터 소스로 부터 DataSource 생성 - 데이터 내용과 스키마 확인 - 모델링 진행
  28. 28. 데이터로부터 Datasource 생성 >>> import boto >>> ml = boto.connect_machinelearning() >>> ds = ml.create_data_source_from_s3( data_source_id = ’my_datasource', data_spec= { 'DataLocationS3':'s3://bucket/input/', 'DataSchemaLocationS3':'s3://bucket/input/.schema'}, compute_statistics = True)
  29. 29. 데이터 내용과 스키마 확인
  30. 30. 데이터 모델 생성 >>> import boto >>> ml = boto.connect_machinelearning() >>> model = ml.create_ml_model( ml_model_id=’my_model', ml_model_type='REGRESSION', training_data_source_id='my_datasource')
  31. 31. Train model Evaluate and optimize Retrieve predictions 1 2 3 Amazon Machine Learning 사용하기 2 - 생성된 모델의 품질 확인 - 모델에 해석 상세 조절
  32. 32. 모델 결과 및 품질 확인
  33. 33. 모델 해석 상세 조절
  34. 34. 모델 해석 상세 조절
  35. 35. Train model Evaluate and optimize Retrieve predictions 1 2 3 Amazon Machine Learning 사용하기 3 - 배치를 통한 예측 - 실시간 예측
  36. 36. 배치(Batch)방식 예측 비동기적으로 대량의 예측 결과 필요 시 사용 Console, API를 통해 요청 가능 많은 양의 데이터를 한 번에 처리하여 결과를 S3에 저장 >>> import boto >>> ml = boto.connect_machinelearning() >>> model = ml.create_batch_prediction( batch_prediction_id = 'my_batch_prediction’ batch_prediction_data_source_id = ’my_datasource’ ml_model_id = ’my_model', output_uri = 's3://examplebucket/output/’)
  37. 37. 실시간(Real-time) 예측 동기적으로 빠르게 예측 결과를 바로 사용 가능 API, SDK를 통해 요청 각각의 데이터를 실시간으로 서비스에서 요청하여 사용 >>> import boto >>> ml = boto.connect_machinelearning() >>> ml.predict( ml_model_id=’my_model', predict_endpoint=’example_endpoint’, record={’key1':’value1’, ’key2':’value2’}) { 'Prediction': { 'predictedValue': 13.284348, 'details': { 'Algorithm': 'SGD', 'PredictiveModelType': 'REGRESSION’ } } }
  38. 38. Demo  “과연 사용자가 이벤트 결제를 할까?” “과연 어떤 요소가 결제에 영향을 줄까?”
  39. 39. Amazon Machine Learning 활용 아키텍쳐
  40. 40. Query for predictions with Amazon ML batch API Process data with EMR Raw data in S3 Aggregated data in S3 Predictions in S3 Your Game EMR을 같이 이용한 배치방식
  41. 41. Query for predictions with Amazon ML batch API IDC Aggregated data in S3 Predictions in S3 Your Game IDC의 데이터를 S3로 저장 후 활용 DashBoard
  42. 42. Structured data In Amazon Redshift Load predictions into Amazon Redshift -or- Read prediction results directly from S3 Predictions in S3 Query for predictions with Amazon ML batch API Your Game Amazon Redshift를 활용한 배치 프로세싱
  43. 43. Your Games Query for predictions with Amazon ML real-time API API를 이용한 실시간 예측
  44. 44. Amazon DynamoDB + Trigger event with Lambda + Query for predictions with Amazon ML real-time API Your Games DynamoDB의 데이터를 Source로 실시간 예측
  45. 45. Thank you!

×