amazon machine learning · • デプロイと管理...

27
© 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. September 3 rd , 2015 Amazon Machine Learning Danny Lange General Manager, Amazon Machine Learning

Upload: others

Post on 31-Dec-2019

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Amazon Machine Learning · • デプロイと管理 フル機能のAPIとSDKでモデルのライフサイク ルを自動化 • Java, Python, .NET, JavaScript, Ruby, PHP スマートiOS,

© 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

September 3rd, 2015

Amazon Machine Learning

Danny Lange

General Manager, Amazon Machine Learning

Page 2: Amazon Machine Learning · • デプロイと管理 フル機能のAPIとSDKでモデルのライフサイク ルを自動化 • Java, Python, .NET, JavaScript, Ruby, PHP スマートiOS,

3種類のデータ駆動型開発

遡及的な分析と

レポーティング

Amazon RedshiftAmazon RDS Amazon S3

Amazon EMR

Page 3: Amazon Machine Learning · • デプロイと管理 フル機能のAPIとSDKでモデルのライフサイク ルを自動化 • Java, Python, .NET, JavaScript, Ruby, PHP スマートiOS,

3種類のデータ駆動型開発

遡及的な分析と

レポーティング

即時の判断リアルタイム処理とダッシュボード

Amazon Kinesis Amazon EC2 AWS Lambda

Amazon Redshift, Amazon RDS Amazon S3

Amazon EMR

Page 4: Amazon Machine Learning · • デプロイと管理 フル機能のAPIとSDKでモデルのライフサイク ルを自動化 • Java, Python, .NET, JavaScript, Ruby, PHP スマートiOS,

3種類のデータ駆動型開発

遡及的な分析と

レポーティング

即時の判断リアルタイム処理とダッシュボード

予測スマートアプリケーションを作成可能に

するAmazon Kinesis Amazon EC2 AWS Lambda

Amazon Redshift, Amazon RDS Amazon S3

Amazon EMR

Page 5: Amazon Machine Learning · • デプロイと管理 フル機能のAPIとSDKでモデルのライフサイク ルを自動化 • Java, Python, .NET, JavaScript, Ruby, PHP スマートiOS,

機械学習とスマートアプリケーション

機械学習はデータから自動的にパターンを発見し、それを新しいデータが発生した時に予測として使うためのテクノロジー

データ + 機械学習 = スマートアプリケーション

Page 6: Amazon Machine Learning · • デプロイと管理 フル機能のAPIとSDKでモデルのライフサイク ルを自動化 • Java, Python, .NET, JavaScript, Ruby, PHP スマートiOS,

主な活用カテゴリー

詐欺の検知 不正取引の検知、 スパムeメールのフィルタリング、 疑わしいレビューのマーキング …

パーソナライゼーション コンテンツのレコメンデーション、予測的なコンテンツロード、 ユーザエクスペリエンスの改善 …

ターゲットマーケティング オファーとお客様のマッチング、 マーケティングキャンペーンの選択、クロスセリングやアップセリング …

コンテンツ分類 ドキュメントのカテゴリー分類、履歴書と採用マネージャのマッチング …

離反予測 サービスを使うのを止めそうなお客様の検知、無料ユーザからアップグレードのオファー …

カスタマーサポート お客様からのメールの適切な転送先推測、ソーシャルメディアリスニング …

Page 7: Amazon Machine Learning · • デプロイと管理 フル機能のAPIとSDKでモデルのライフサイク ルを自動化 • Java, Python, .NET, JavaScript, Ruby, PHP スマートiOS,

スマートアプリケーション開発は大変

専門家 技術 使いやすさ

データサイエンティストの人数は限られる

多くの選択肢があるが決定的なものが無い

複雑で間違いを起こしやすいワークフロー

外注するのは高くつく 使いこなし、スケールさせることが困難

特殊なプラットフォームとAPI

カスタムソリューションを作成するために多くの細かい作業が毎回必要になる

モデルライフサイクル管理を無駄に再発明

Page 8: Amazon Machine Learning · • デプロイと管理 フル機能のAPIとSDKでモデルのライフサイク ルを自動化 • Java, Python, .NET, JavaScript, Ruby, PHP スマートiOS,

もし、より良い方法があったら?

Page 9: Amazon Machine Learning · • デプロイと管理 フル機能のAPIとSDKでモデルのライフサイク ルを自動化 • Java, Python, .NET, JavaScript, Ruby, PHP スマートiOS,

Amazon MLの登場

使いやすく、マネージド

開発者のために作られた機械学習サービス

Amazon内部のシステムで利用されていた堅牢でパワフルな機械学習の技術

AWSクラウドにすでに格納されているデータを元にモデルを作成可能

モデルを一瞬で本番環境に適用できる

Page 10: Amazon Machine Learning · • デプロイと管理 フル機能のAPIとSDKでモデルのライフサイク ルを自動化 • Java, Python, .NET, JavaScript, Ruby, PHP スマートiOS,

使いやすく、開発者にとって扱いやすい

直感的でパワフルなサービスコンソールを使って初期モデルの作成、調査

• データの取得• モデルのトレーニング、クオリティ評価、チューニング

• デプロイと管理

フル機能のAPIとSDKでモデルのライフサイクルを自動化

• Java, Python, .NET, JavaScript, Ruby, PHP

スマートiOS, AndroidアプリケーションをAWS Mobile SDKで作成可能

Page 11: Amazon Machine Learning · • デプロイと管理 フル機能のAPIとSDKでモデルのライフサイク ルを自動化 • Java, Python, .NET, JavaScript, Ruby, PHP スマートiOS,

パワフルな機械学習テクノロジー

Amazonで鍛えられた百戦錬磨の内部テクノロジーがベース

アルゴリズムだけの提供ではなく:• スマートなデータ変換

• データ入力およびモデルクエリーのアラート

• 業界のベストプラクティスを内蔵

ニーズに合わせて成長• 最大100GBまでのトレーニングデータに対応

• 10億個の予測を生成

• バッチもしくはリアルタイムに予測を取得

Page 12: Amazon Machine Learning · • デプロイと管理 フル機能のAPIとSDKでモデルのライフサイク ルを自動化 • Java, Python, .NET, JavaScript, Ruby, PHP スマートiOS,

Amazon MLにおける3種類の予測機能

Binary Classification(二項分類): Yes/No質問に対する予測

- この注文は詐欺ではないか?

- このお客さまは購入されるか?

- 次にどちらの品物をお奨めすべきか?

Multi-class classification(多項分類): リストから正しいカテゴリーを予測

- この映画はどのジャンル?

- このお客さまとのコンタクトのおおもとは何?

Regression(回帰分析): 値を予測

- 来週このアイテムは何個売れるのか?

- このユーザセッションは、あとどれくらい続くのか?

Page 13: Amazon Machine Learning · • デプロイと管理 フル機能のAPIとSDKでモデルのライフサイク ルを自動化 • Java, Python, .NET, JavaScript, Ruby, PHP スマートiOS,

Amazon MLを利用したスマートアプリケーションの構築

1.対象となるデータをAmazon S3、Amazon Redshift、またはRDSへ格納

2. Amazon MLで提供されるウィザードを使って:1.Amazn MLにデータソースを作成2.モデルを作成3.モデルを評価4.必要に応じて繰り返し(モデル再作成)

3.作成したモデルを使って予測を実行1.Amazon MLを用いたバッチ予測2.SDKを用いたリアルタイム予測

Page 14: Amazon Machine Learning · • デプロイと管理 フル機能のAPIとSDKでモデルのライフサイク ルを自動化 • Java, Python, .NET, JavaScript, Ruby, PHP スマートiOS,

Amazon Machine Learning APIs

Page 15: Amazon Machine Learning · • デプロイと管理 フル機能のAPIとSDKでモデルのライフサイク ルを自動化 • Java, Python, .NET, JavaScript, Ruby, PHP スマートiOS,

データソースを作成する

>>> 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)

Page 16: Amazon Machine Learning · • デプロイと管理 フル機能のAPIとSDKでモデルのライフサイク ルを自動化 • Java, Python, .NET, JavaScript, Ruby, PHP スマートiOS,

データを調査し、理解する

Page 17: Amazon Machine Learning · • デプロイと管理 フル機能のAPIとSDKでモデルのライフサイク ルを自動化 • Java, Python, .NET, JavaScript, Ruby, PHP スマートiOS,

モデルをトレーニング(学習)する

>>> 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')

Page 18: Amazon Machine Learning · • デプロイと管理 フル機能のAPIとSDKでモデルのライフサイク ルを自動化 • Java, Python, .NET, JavaScript, Ruby, PHP スマートiOS,

モデルを評価する

Page 19: Amazon Machine Learning · • デプロイと管理 フル機能のAPIとSDKでモデルのライフサイク ルを自動化 • Java, Python, .NET, JavaScript, Ruby, PHP スマートiOS,

モデルの解釈を調整する

Page 20: Amazon Machine Learning · • デプロイと管理 フル機能のAPIとSDKでモデルのライフサイク ルを自動化 • Java, Python, .NET, JavaScript, Ruby, PHP スマートiOS,

バッチ予測

非同期、巨大なボリュームに対しての予測生成

サーバコンソールもしくはAPIからリクエスト

データソースをバッチで取得するアプリケーションに適している

>>> 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/’)

Page 21: Amazon Machine Learning · • デプロイと管理 フル機能のAPIとSDKでモデルのライフサイク ルを自動化 • Java, Python, .NET, JavaScript, Ruby, PHP スマートiOS,

リアルタイム予測

同期、短い遅延、高いスループットで予測を生成

サービス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’

}

}

}

Page 22: Amazon Machine Learning · • デプロイと管理 フル機能のAPIとSDKでモデルのライフサイク ルを自動化 • Java, Python, .NET, JavaScript, Ruby, PHP スマートiOS,

スマートアプリケーションのためのアーキテクチャパターン

Page 23: Amazon Machine Learning · • デプロイと管理 フル機能のAPIとSDKでモデルのライフサイク ルを自動化 • Java, Python, .NET, JavaScript, Ruby, PHP スマートiOS,

EMRを使用したバッチ予測

Amazon ML batch APIで予測をクエリーするEMRで処理

S3にある生データ 集計済データをS3に 予測データをS3に

アプリケーション

Page 24: Amazon Machine Learning · • デプロイと管理 フル機能のAPIとSDKでモデルのライフサイク ルを自動化 • Java, Python, .NET, JavaScript, Ruby, PHP スマートiOS,

Amazon Redshiftを使ったバッチ予測

Amazon Redshiftに構造化データ

Amazon Redshiftに予測データをLOAD

-もしくは-S3から直接、

予測データを読み取り

S3上の予測データ

Amazon ML batch APIで予測をクエリーする

アプリケーション

Page 25: Amazon Machine Learning · • デプロイと管理 フル機能のAPIとSDKでモデルのライフサイク ルを自動化 • Java, Python, .NET, JavaScript, Ruby, PHP スマートiOS,

インタラクティブアプリケーション用のリアルタイム予測

アプリケーション

Amazon ML Real-Time APIで予測をクエリーする

Page 26: Amazon Machine Learning · • デプロイと管理 フル機能のAPIとSDKでモデルのライフサイク ルを自動化 • Java, Python, .NET, JavaScript, Ruby, PHP スマートiOS,

既存データフローに予測を追加する

アプリケーションAmazon

DynamoDB

AmazonML

+

Lambdaでイベントトリガー+

Amazon ML Real-Time APIで予測をクエリーする

AmazonLambda

Page 27: Amazon Machine Learning · • デプロイと管理 フル機能のAPIとSDKでモデルのライフサイク ルを自動化 • Java, Python, .NET, JavaScript, Ruby, PHP スマートiOS,

Try Amazon Machine Learning ataws.amazon.com/machine-

learning

Learn more at the AWS Big Data Blog

Danny Lange

General Manager, Amazon Machine Learning