アルゴリズムから学ぶazure mlモジュールの使いこなし方 hd-insight編-

25
アルゴリズムから学ぶ Azure ML モジュールの使いこなし方 -- Azure Machine Learning との連携について学ぶ -- HDInsight 2015/11/27 株式 会社ネクストスケープ エバンジェリスト 上坂貴志 (@takashiuesaka)

Upload: -

Post on 03-Mar-2017

975 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-

アルゴリズムから学ぶ Azure ML モジュールの使いこなし方

-- Azure Machine Learning との連携について学ぶ --

HDInsight編

2015/11/27株式会社ネクストスケープ

エバンジェリスト 上坂貴志(@takashiuesaka)

Page 2: アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-

自己紹介

会社 株式会社ネクストスケープ

名前 上坂貴志(うえさかたかし)Twitter:@takashiuesaka

年齢 43歳

好き・興味ありAzure(Microsoft MVP)、機械学習、ソフトウェアアーキテクチャ、DDD、Scrum(認定スクラムマスター)

講演活動• FEST2015 登壇(Channel9で動画公開)• CloudDays2015東京・大阪 登壇• Developers Summit 2015 登壇

執筆活動• 人工知能アプリケーション総覧 寄稿(日経BP社、2015年9月30日発売)• ITPro:クラウドで機械学習を手近に、Azure Machine Learningの概要

Page 3: アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-

会社紹介

設立年月日 2002年4月10日資本金 1億5001万円主要株主 株式会社豆蔵ホールディングス

(東証一部上場)

〒163-0722東京都新宿区西新宿2-7-1小田急第一生命ビル22F03-5325-1301(代表)

Page 4: アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-

会社紹介

クラウド、デジタルマーケティング、システム構築に強み

(※2012年~2014年マイクロソフト パートナーズ オブ ザ イヤー)

2013 Microsoft Worldwide Partner Award において

Sitecore Of The Year Asia 2013において

Cloud Partner of the Year ファイナリスト選出

Best Japanese Siteを受賞

3年連続 Microsoft Azureパートナー アワード受賞

Page 5: アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-

会社紹介

タワーレコード様

「NO MUSIC, NO LIFE.」のキャッチフレーズでおなじみの、音楽エンタメ・小売り事業の大手。250万点もの商品を取り扱うオンラインショップ「TOWER RECORDS ONLINE」のCMSをSitecoreで構築。2010年当時に1日当たり100万強だったPVは、2014年4月時点で205万強まで倍増。https://www.sitecore.net/ja-jp/customers/e-commerce/towerrecords.aspx

エイベックス通信放送様(dTV powerd by BeeTV )

「dビデオ powered by BeeTV」は、スマートフォン利用者向けに映画、ドラマなどを視聴可能な国内最大規模の動画配信サイトとして注目を集めている。Microsoft Azureにて、高負荷・ハイパフォーマンスに耐えうるスケーラブルな配信インフラを構築。http://special.nikkeibp.co.jp/as/201207/mpncompetency/cs01.html

400万会員を超える動画サイトの配信インフラを構築

EC売上を3年間で2倍以上にしたタワーレコードの成長を支えたCMS基盤を導入

Page 6: アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-

HDInsightとの連携の前に

Page 7: アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-

そもそも機械学習とは何か

BigData

CRM

ソーシャルメディア

センサーデータ

企業内データ

クリックデータ

メール

ほしい結果を抽出

人間ルール

ほしかった結果

全ていらない結果ではない!

機械学習がない場合

Machine Learing

機械学習はここに適用する

ルール適用

ルール適用外

Page 8: アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-

そもそも機械学習とは何か

深層学習(DeepLearning)との違い

http://www.mizuho-ir.co.jp/publication/column/2013/1119.html

ディープラーニングの概念低レベルの特長量の組み合わせで高レベルの概念を表現

ニューラルネットワークモデルの多層化

「自ら仮説を立てて実証」によるモデル生成

特徴量の抽出を自ら行う(表現学習)

Page 9: アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-

典型的な機械学習構築のワークフロー

特徴量の抽出=前処理

特徴量の抽出 機械学習データ収集要件定義 評価・検証 ビジネス施策

Page 10: アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-

Hadoopとは

Page 11: アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-

なぜHadoopが必要とされたのだろうか

Hadoopが生まれた背景 膨大な「ログデータ」に対する対応の必要性

Google内部で「データ・処理」分散の仕組みが生まれた

指数関数的に増えるログ→だが追加できる容量には上限が

ログの増加に伴う処理速度の劣化→だが追加できるメモリ・CPUパワーには上限が

Googleは分散の仕組みを論文として発表

論文を元に作られたのがHadoop

Page 12: アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-

Hadoopの問題解決方法

データ容量問題

HDFS(Hadoop Distributed File System)

処理速度問題

MapReduce

Page 13: アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-

Hadoopの分散ファイルシステム

HDFSとは

HDFSファイル

PUT

GET

ファイル1

ノード1 ノード2 ノード3 ノード4

・・・ファイル2

ファイル3

ブロック1

ブロック1

ブロック1

ブロック2

ブロック2

ブロック2

ブロック3

ブロック3

ブロック3

ブロック4

ブロック4

ブロック4

Page 14: アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-

MapReduceとは

Hadoopの分散処理

ジョブ投入

ファイル1

ノード1 ノード2 ノード3 ノード4

・・・

ファイル2

ブロック1

ブロック1

ブロック2

ブロック2

ブロック3

ブロック3

ブロック4

ブロック4

クライアント

ヘッドノード

MapReduceApplication

MapReduceApplication

MapReduceApplication

MapReduceApplication

Page 15: アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-

Hadoopとは

現在のHadoopの形

つまりHadoopの得意分野は 大量のフラットファイルに対する順次走査 分散並列「バッチ」処理

でも人間というものは我儘にできている

Hadoop の進化 x エコシステム

Page 16: アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-

Hadoopの進化 x エコシステム

http://jp.hortonworks.com/hdp/

Page 17: アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-

エコシステムの代表格

Hive。HiveQLと呼ばれるSQLライクの構文を用いて、MapReduce処理をRDBのテーブル操作として扱える。ただし、更新はできない。あくまでHadoopをDWHとして扱う。スキーマ定義が必要。

Pig。パイプラインをつなげる形で処理を記載できるため、複雑なクエリもわかりやすく書ける。スキーマは有り無しどっちもいける。実行速度に難あり。

HBase。キー・バリュー型のNoSQLデータストア。SQLには対応していない。データ更新可能な点がHiveと大きく異なる。

Storm。リアルタイム処理を行うためにデータをストリームとして受け取り処理を行う。HadoopのMapReduceはBatch処理なので対象的なもの。Azure StremAnalyticsと同じ用途。

Spark。ポストHadoop?最近とても話題の高速インメモリ分散処理。ストリーム処理のAPIもある。BatchもリアルタイムもどちらもOK。

Page 18: アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-

HDInsight

Hadoop On Azure

Page 19: アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-

HDInsightの特徴

ディストリビューターはHortonworks

Windows, Linuxどちらでも稼働する

データの格納場所

BlogStorageと、HDFSと両方使用可能だが、Blobの使用を強く推奨

‣ Blogへファイルアップロードするだけでデータ投入可能

‣ HDInsightを削除しても、プロビジョニング時にBlob指定で環境復活

仮想ネットワークに配置可能

WebApps、VMからHDInsightのジョブを呼び出せる

HDInsightとSQLDatabaseやVM間でデータが直接転送できる

プロビジョニング

管理ポータルからでも、Powershell、Azure Cliどれからでも構築可能。

高可用構成

‣ ヘッドノード x2, データノード x 1以上が用意できる。

‣ Hbase, Storm, Sparkは Zookeeper x3

Page 20: アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-

HDInsightのHadoopエコシステム

YARN

HDFS

MapReduce

Hive

Ambari

HBaseMahout Spark

Page 21: アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-

Azure Machine LearningとHDInsight

Hiveを使用してHDInsightからデータを取得

Readerのプロパティに設定

HDInsightMachine

Learning

PropertyWebHCat

Page 22: アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-

接続設定の例

HDInsight

クラスタ名:nsuesaka

BlobStorage

アカウント名:nsuesakafor1127コンテナ名:hadoop

Machine Learning

Reader Hive設定Hive database query:

HCatalog:https://nsuesaka.azurehdinsight.netHadoop user account name:<<アカウント>>Hadoop user aacount password:<<パスワード>>Location of output data:AzureAzure storage account name:nsuesakafor1127Azure storage key:<<key>>Azure container name:hadoop

WebHCat

HCatalogのRestAPI 。API例https://nsuesaka.azurehdinsight.net/templeton/v1/status

稼働状況の結果をJSONで受け取れる

Page 23: アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-

DEMO

Page 24: アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-

まとめ

Hadoopについて

フラットファイルの処理ならHadoopの出番(構造化データなら素直にRDBMS)

大量データを扱う場合でないと、パフォーマンスは望めない(無駄に構成が大きい)

HDInsightについて

Azure Machine Learningとの接続は Hiveを使用

ストレージはBlobStorageを使うのがオススメ(処理していない時はクラスタ削除でお金を節約)

SparkもPublicPreview中だが、AzureMLへの対応はアナウンスされていない

Page 25: アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-

ありがとうございました

ネクストスケープ 上坂でした