amazon machine learning · • デプロイと管理...
TRANSCRIPT
© 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
September 3rd, 2015
Amazon Machine Learning
Danny Lange
General Manager, Amazon Machine Learning
3種類のデータ駆動型開発
遡及的な分析と
レポーティング
Amazon RedshiftAmazon RDS Amazon S3
Amazon EMR
3種類のデータ駆動型開発
遡及的な分析と
レポーティング
即時の判断リアルタイム処理とダッシュボード
Amazon Kinesis Amazon EC2 AWS Lambda
Amazon Redshift, Amazon RDS Amazon S3
Amazon EMR
3種類のデータ駆動型開発
遡及的な分析と
レポーティング
即時の判断リアルタイム処理とダッシュボード
予測スマートアプリケーションを作成可能に
するAmazon Kinesis Amazon EC2 AWS Lambda
Amazon Redshift, Amazon RDS Amazon S3
Amazon EMR
機械学習とスマートアプリケーション
機械学習はデータから自動的にパターンを発見し、それを新しいデータが発生した時に予測として使うためのテクノロジー
データ + 機械学習 = スマートアプリケーション
主な活用カテゴリー
詐欺の検知 不正取引の検知、 スパムeメールのフィルタリング、 疑わしいレビューのマーキング …
パーソナライゼーション コンテンツのレコメンデーション、予測的なコンテンツロード、 ユーザエクスペリエンスの改善 …
ターゲットマーケティング オファーとお客様のマッチング、 マーケティングキャンペーンの選択、クロスセリングやアップセリング …
コンテンツ分類 ドキュメントのカテゴリー分類、履歴書と採用マネージャのマッチング …
離反予測 サービスを使うのを止めそうなお客様の検知、無料ユーザからアップグレードのオファー …
カスタマーサポート お客様からのメールの適切な転送先推測、ソーシャルメディアリスニング …
スマートアプリケーション開発は大変
専門家 技術 使いやすさ
データサイエンティストの人数は限られる
多くの選択肢があるが決定的なものが無い
複雑で間違いを起こしやすいワークフロー
外注するのは高くつく 使いこなし、スケールさせることが困難
特殊なプラットフォームとAPI
カスタムソリューションを作成するために多くの細かい作業が毎回必要になる
モデルライフサイクル管理を無駄に再発明
もし、より良い方法があったら?
Amazon MLの登場
使いやすく、マネージド
開発者のために作られた機械学習サービス
Amazon内部のシステムで利用されていた堅牢でパワフルな機械学習の技術
AWSクラウドにすでに格納されているデータを元にモデルを作成可能
モデルを一瞬で本番環境に適用できる
使いやすく、開発者にとって扱いやすい
直感的でパワフルなサービスコンソールを使って初期モデルの作成、調査
• データの取得• モデルのトレーニング、クオリティ評価、チューニング
• デプロイと管理
フル機能のAPIとSDKでモデルのライフサイクルを自動化
• Java, Python, .NET, JavaScript, Ruby, PHP
スマートiOS, AndroidアプリケーションをAWS Mobile SDKで作成可能
パワフルな機械学習テクノロジー
Amazonで鍛えられた百戦錬磨の内部テクノロジーがベース
アルゴリズムだけの提供ではなく:• スマートなデータ変換
• データ入力およびモデルクエリーのアラート
• 業界のベストプラクティスを内蔵
ニーズに合わせて成長• 最大100GBまでのトレーニングデータに対応
• 10億個の予測を生成
• バッチもしくはリアルタイムに予測を取得
Amazon MLにおける3種類の予測機能
Binary Classification(二項分類): Yes/No質問に対する予測
- この注文は詐欺ではないか?
- このお客さまは購入されるか?
- 次にどちらの品物をお奨めすべきか?
Multi-class classification(多項分類): リストから正しいカテゴリーを予測
- この映画はどのジャンル?
- このお客さまとのコンタクトのおおもとは何?
Regression(回帰分析): 値を予測
- 来週このアイテムは何個売れるのか?
- このユーザセッションは、あとどれくらい続くのか?
Amazon MLを利用したスマートアプリケーションの構築
1.対象となるデータをAmazon S3、Amazon Redshift、またはRDSへ格納
2. Amazon MLで提供されるウィザードを使って:1.Amazn MLにデータソースを作成2.モデルを作成3.モデルを評価4.必要に応じて繰り返し(モデル再作成)
3.作成したモデルを使って予測を実行1.Amazon MLを用いたバッチ予測2.SDKを用いたリアルタイム予測
Amazon Machine Learning APIs
データソースを作成する
>>> 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)
データを調査し、理解する
モデルをトレーニング(学習)する
>>> 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')
モデルを評価する
モデルの解釈を調整する
バッチ予測
非同期、巨大なボリュームに対しての予測生成
サーバコンソールもしくは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/’)
リアルタイム予測
同期、短い遅延、高いスループットで予測を生成
サービス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’
}
}
}
スマートアプリケーションのためのアーキテクチャパターン
EMRを使用したバッチ予測
Amazon ML batch APIで予測をクエリーするEMRで処理
S3にある生データ 集計済データをS3に 予測データをS3に
アプリケーション
Amazon Redshiftを使ったバッチ予測
Amazon Redshiftに構造化データ
Amazon Redshiftに予測データをLOAD
-もしくは-S3から直接、
予測データを読み取り
S3上の予測データ
Amazon ML batch APIで予測をクエリーする
アプリケーション
インタラクティブアプリケーション用のリアルタイム予測
アプリケーション
Amazon ML Real-Time APIで予測をクエリーする
既存データフローに予測を追加する
アプリケーションAmazon
DynamoDB
AmazonML
+
Lambdaでイベントトリガー+
Amazon ML Real-Time APIで予測をクエリーする
AmazonLambda
Try Amazon Machine Learning ataws.amazon.com/machine-
learning
Learn more at the AWS Big Data Blog
Danny Lange
General Manager, Amazon Machine Learning