Upload
Hivemall v0.3の機能紹介@1st Hivemall meetup
•
20 likes
•
8,251 views
Makoto Yui
Follow
Report
Share
Report
Share
1 of 44
Download now
Download to read offline
More Related Content
Hivemall v0.3の機能紹介@1st Hivemall meetup
1.
Copyright ©2015 Treasure
Data. All Rights Reserved. Treasure Data Inc. Research Engineer 油井 誠 @myui 2015/05/12 Hivemall meetup #1 1 Hivemall(v0.3)の機能紹介 http://myui.github.io/
2.
Copyright ©2015 Treasure
Data. All Rights Reserved. Ø2015/04 トレジャーデータ入社 Ø第1号のリサーチエンジニア ØML as a Service (MLaaS)に従事 Ø2015/03 産業技術総合研究所 情報技術研究部 門 主任研究員 Ø大規模機械学習および並列データベースの研究に従 事 Ø2009/03 NAIST 博士課程修了 博士(工学) ØXMLネイティブデータベースおよび超並列データベース の研究に従事 ØH14未踏ユース第1期スーパクリエイタ 2 自己紹介
3.
Copyright ©2015 Treasure
Data. All Rights Reserved. 3 0 2000 4000 6000 8000 10000 12000 Aug-‐12 Sep-‐12 Oct-‐12 Nov-‐12 Dec-‐12 Jan-‐13 Feb-‐13 M ar-‐13 Apr-‐13M ay-‐13 Jun-‐13 Jul-‐13 Aug-‐13 Sep-‐13 Oct-‐13 Nov-‐13 Dec-‐13 Jan-‐14 Feb-‐14 M ar-‐14 Apr-‐14M ay-‐14 Jun-‐14 Jul-‐14 Aug-‐14 Sep-‐14 Oct-‐14 (単位)10億レコード サービス開始 Series A Funding 100社導入 Gartner社「Cool Vendor in Big Data」に選定される 10兆件 5兆レコード 数字でみる トレジャーデータ (2014年10月): 40万レコード 毎秒インポートされるデータの数 10兆レコード以上 インポートされたデータの数 120億 アドテク業界のお客様1社によって毎日送られてくるデータ 数字で見るトレジャーデータ
4.
Copyright ©2015 Treasure
Data. All Rights Reserved. 数字で見る現在のトレジャーデータ 100+ 日本の顧客社数 15兆 保存されている データ件数 4,000 一社が所有する最大 サーバー数 500,000 1秒間に保存される データ件数 4
5.
Copyright ©2015 Treasure
Data. All Rights Reserved. 発表の構成 • Hivemallの概要 • How to use Hivemall • リアルタイム予測 w/ Hivemall and RDBMS • Hivemall v0.3の新機能紹介 • Matrix Factorization • AdaGrad/AdaDelta • Mix Server (Parameter Mixing) • HivemallへのFeature Requests 5
6.
Copyright ©2015 Treasure
Data. All Rights Reserved. Hivemallとは Apache Hadoopのエコシステム上に構築したオープン ソース(Apache license v2)の機械学習ライブラリ Hadoop HDFS MapReduce (MRv1) Hive/PIG クエリ処理系 Hivemall Apache YARN Apache Tez DAG処理系 MR v2 分散ファイルシステム リソース管理システム 並列処理フレームワーク 問合せ処理系 機械学習ライブラリ github.com/myui/hivemall 6 MapReduceもTezもYARN上の 1アプリケーション
7.
Copyright ©2015 Treasure
Data. All Rights Reserved. R M MM M HDFS HDFS M M M R M M M R HDFS M MM M M HDFS R MapReduce and DAG engine MapReduce DAG engine Tez/Spark ディスクにチェックポイントを とってもとらなくても再計算可能 7
8.
Copyright ©2015 Treasure
Data. All Rights Reserved. SQLベースの宣言的かつ容易な記述 Hivemallの特徴 何十行もの プログラム Mahoutによるプログラミング CREATE TABLE lr_model AS SELECT feature, -‐-‐ reducers perform model averaging in parallel avg(weight) as weight FROM ( SELECT logress(features,label,..) as (feature,weight) FROM train ) t -‐-‐ map-‐only task GROUP BY feature; -‐-‐ shuffled to reducers ü 一般的なエンジニアでも機械学習を扱える ü API抽象度がHiveQLと高いのでAPIがかなりstable (Sparkはまだ結構unstable) このような問合せを書くと学習処理が Hadoop上で並列実行される 8
9.
Copyright ©2015 Treasure
Data. All Rights Reserved. Hivemall v0.3で提供している機能 9 • クラス分類(二値分類/多値 分類) ü Perceptron ü Passive Aggressive (PA) ü Confidence Weighted (CW) ü Adaptive Regularization of Weight Vectors (AROW) ü Soft Confidence Weighted (SCW) ü AdaGrad+RDA • 回帰分析 ü 確率的勾配降下法に基づくロジス ティック回帰 ü PA Regression ü AROW Regression ü AdaGrad ü AdaDELTA • K近傍法 & レコメンデーション ü Minhashとb-‐Bit Minhash (LSH variant) ü 類似度に基づくK近傍探索 ü Matrix Factorization • Feature engineering ü Feature hashing ü Feature scaling (normalization, z-‐score) ü TF-‐IDF vectorizer トレジャーデータでもv0.3を5月中に サポート予定
10.
Copyright ©2015 Treasure
Data. All Rights Reserved. • Contribution from Daniel Dai (Pig PMC) from Hortonworks • To be supported from Pig 0.15 10 Hivemall on Apache Pig
11.
Copyright ©2015 Treasure
Data. All Rights Reserved. • On-‐going work by Takeshi Yamamuro https://github.com/maropu/hivemall-‐spark • Spark is not a Foe (敵) but a Friend (友達) of Hivemall J • Supports Hyper parameter optimization and model selection on Spark though Spark ML Pipeline More to be introduced by @maropu 11 Hivemall on Apache Spark
12.
Copyright ©2015 Treasure
Data. All Rights Reserved. 発表の構成 • Hivemallの概要 • How to use Hivemall • リアルタイム予測 w/ Hivemall and RDBMS • Hivemall v0.3の新機能紹介 • Matrix Factorization • AdaGrad/AdaDelta • Mix Server (Parameter Mixing) • HivemallへのFeature Requests 12
13.
Copyright ©2015 Treasure
Data. All Rights Reserved. How to use Hivemall Machine Learning Training Prediction Prediction Model Label Feature Vector Feature Vector Label Data preparation 13
14.
Copyright ©2015 Treasure
Data. All Rights Reserved. Create external table e2006tfidf_train ( rowid int, label float, features ARRAY<STRING> ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '¥t' COLLECTION ITEMS TERMINATED BY ",“ STORED AS TEXTFILE LOCATION '/dataset/E2006- tfidf/train'; How to use Hivemall – データの準備 訓練とテストデータ用のテーブルを定義 HDFSに置いた(HiveのSERDEでパース可能な)任意フォー マットのデータを利用可能 14
15.
Copyright ©2015 Treasure
Data. All Rights Reserved. How to use Hivemall Machine Learning Training Prediction Prediction Model Label Feature Vector Feature Vector Label Feature Engineering 15
16.
Copyright ©2015 Treasure
Data. All Rights Reserved. create view e2006tfidf_train_scaled as select rowid, rescale(target,${min_label},${max_label}) as label, features from e2006tfidf_train; Min-Max正規化による特徴量の正規化 How to use Hivemall -‐ Feature Engineering Target値を0~1の範囲に変換 16
17.
Copyright ©2015 Treasure
Data. All Rights Reserved. How to use Hivemall Machine Learning Training Prediction Prediction Model Label Feature Vector Feature Vector Label Training 17
18.
Copyright ©2015 Treasure
Data. All Rights Reserved. How to use Hivemall -‐ Training CREATE TABLE lr_model AS SELECT feature, avg(weight) as weight FROM ( SELECT logress(features,label,..) as (feature,weight) FROM train ) t GROUP BY feature ロジスティック回帰による学習 予測モデルを学習するmap-‐onlyのtask Featureの値によってmap出力結果をreducerにShuffle 特徴ごとに学習した重みの平均 を取る処理をreducer側で並列に処理 18
19.
Copyright ©2015 Treasure
Data. All Rights Reserved. How to use Hivemall -‐ Training CREATE TABLE news20b_cw_model1 AS SELECT feature, voted_avg(weight) as weight FROM (SELECT train_cw(features,label) as (feature,weight) FROM news20b_train ) t GROUP BY feature Confidence Weightedによる学習 投票に基づきPositive or Negativeな 重みの平均 +0.7, +0.3, +0.2, -‐0.1, +0.7 CWクラス分類器による学習 19
20.
Copyright ©2015 Treasure
Data. All Rights Reserved. 20 hive> desc news20b_cw_model1; feature int weight double hive> select * from a9a_model1 limit 10; 0 -0.5761121511459351 1 -1.5259535312652588 10 0.21053194999694824 100 -0.017715860158205032 101 0.007558753248304129 102 -0.277366042137146 103 -0.4896543622016907 104 -0.0955817922949791 105 0.12560302019119263 106 0.09214721620082855 How to use Hivemall -‐ Training 予測モデルテーブルの構成
21.
Copyright ©2015 Treasure
Data. All Rights Reserved. create table news20mc_ensemble_model1 as select label, cast(feature as int) as feature, cast(voted_avg(weight) as float) as weight from (select train_multiclass_cw(addBias(features),label) as (label,feature,weight) from news20mc_train_x3 union all select train_multiclass_arow(addBias(features),label) as (label,feature,weight) from news20mc_train_x3 union all select train_multiclass_scw(addBias(features),label) as (label,feature,weight) from news20mc_train_x3 ) t group by label, feature; アンサンブル学習 for stable prediction performance 個別に学習した予測モデルを Union allでまとめる 21
22.
Copyright ©2015 Treasure
Data. All Rights Reserved. How to use Hivemall Machine Learning Training Prediction Prediction Model Label Feature Vector Feature Vector Label Prediction 22
23.
Copyright ©2015 Treasure
Data. All Rights Reserved. How to use Hivemall -‐ Prediction CREATE TABLE lr_predict as SELECT t.rowid, sigmoid(sum(m.weight)) as prob FROM testing_exploded t LEFT OUTER JOIN lr_model m ON (t.feature = m.feature) GROUP BY t.rowid 予測はテスト事例と予測モデルの LEFT OUTER JOINによって行う 予測モデル全体をメモリに載せる必要がない 23
24.
Copyright ©2015 Treasure
Data. All Rights Reserved. 発表の構成 • Hivemallの概要 • How to use Hivemall • リアルタイム予測 w/ Hivemall and RDBMS • Hivemall v0.3の新機能紹介 • Matrix Factorization • AdaGrad/AdaDelta • Mix Server (Parameter Mixing) • HivemallへのFeature Requests 24
25.
Copyright ©2015 Treasure
Data. All Rights Reserved. データ分析の分類とツール 25 MLCTでの@tokorotenさんのスライドより抜粋 「プロダクション環境でオンラインで機械学習を動かすにあたってツライ話」 http://www.slideshare.net/TokorotenNakayama/mlct/12 需要がない?? 実は最も重要
26.
Copyright ©2015 Treasure
Data. All Rights Reserved. How to use Hivemall Machine Learning Batch Training on Hadoop Online Prediction on RDBMS Prediction Model Label Feature Vector Feature Vector Label Export prediction model 26
27.
Copyright ©2015 Treasure
Data. All Rights Reserved. リアルタイム予測 27 hive> desc news20b_cw_model1; feature int weight double #1 予測モデルのexport Any RDBMS TD export TDではモデル構築(SQL実行)結果 のexportを定期自動実行できる 103 -0.4896543622016907 104 -0.0955817922949791 105 0.12560302019119263 106 0.09214721620082855
28.
Copyright ©2015 Treasure
Data. All Rights Reserved. 28 hive> desc testing_exploded; feature string value float リアルタイム予測 #2 feature/valueからなるviewを作成 SIGMOID(x) =1.0 / (1.0 + exp(-‐x)) Prediction Model Label Feature Vector SELECT sigmoid(sum(t.value * m.weight)) as prob FROM testing_exploded t LEFT OUTER JOIN prediction_model m ON (t.feature = m.feature) #3 実際の予測を実行 例えばあるユーザの特徴ベクトルを selectしてexplodeする (SubqueryやWITH句でも良い) modelテーブルの feature絡むに索引を 貼っておくと高速
29.
Copyright ©2015 Treasure
Data. All Rights Reserved. 余談: Amazon Machine Learningのコスト Vowpal Wabbit(単一プロセス版?)ベースらしい 29 モデル構築や評価時 $0.42/インスタンス時 バッチ予測 $0.1/1000件 リアルタイム予測 $0.1/1000件(+キャパシティ予約のチャージ) 広告分野での利用だとリアルタイム予測をかなりの頻度 で行うのでモデルを取得できないと厳しい(!?)
30.
Copyright ©2015 Treasure
Data. All Rights Reserved. 30 広告系でのHivemallの応用例 Hivemallで 予測モデル構築 Real-‐time prediction on a RDBMS *近々記事を書きます
31.
Copyright ©2015 Treasure
Data. All Rights Reserved. 発表の構成 • Hivemallの概要 • How to use Hivemall • リアルタイム予測 w/ Hivemall and RDBMS • Hivemall v0.3の新機能紹介 • Matrix Factorization • AdaGrad/AdaDelta • Mix Server (Parameter Mixing) • HivemallへのFeature Requests 31
32.
Copyright ©2015 Treasure
Data. All Rights Reserved. 32 Matrix Factorization k個の潜在因子をもつ 行列P,Qで近似
33.
Copyright ©2015 Treasure
Data. All Rights Reserved. 33 評価値の 平均 Matrix Factorization 正則化項 ユーザおよび商品ごとの 評価バイアスを考慮 Biased MFのSGDおよびAdagradによる最適化
34.
Copyright ©2015 Treasure
Data. All Rights Reserved. 34 Matrix Factorizationの学習 ローカルディスクに訓練事例を書き出すことで学習が収束するまでの 繰り返し学習に対応(全体最適化のためにパラメタ交換が必要)
35.
Copyright ©2015 Treasure
Data. All Rights Reserved. 35 Matrix Factorizationの予測/評価
36.
Copyright ©2015 Treasure
Data. All Rights Reserved. http://bit.ly/hivemall-‐mf 交差検定の並列処理 各foldごとの訓練データ、テストデータのVIEWを 定義することでえ、学習モデルを並列に構築~ 検定までを並列実行可能 36
37.
Copyright ©2015 Treasure
Data. All Rights Reserved. Sparkのmatrix factorizationとの比較 • 精度面はほぼ同等(Movielens 10Mで評価時) • Qiitaに詳しい記事を載せている(Hivemall Qiita/Matrix Factorizationで検索) • Sparkの場合は100+行のScalaコーディングが必要 37 http://bit.ly/spark-‐mf
38.
Copyright ©2015 Treasure
Data. All Rights Reserved. AdaGrad 確率的勾配降下法(SGD)のモデルパラメタの更新 学習率 勾配 学習率の指定方法が難しい→自動設定できないか?→AdaGrad 過去の勾配の二乗の総和を更新対象の特徴ごとに保存 学習率 学習率の減少を保障 AdaDeltaはAdaGradの定数αの手動設定の 問題と学習率がtが進むと小さくなりすぎる問題に対処 38
39.
Copyright ©2015 Treasure
Data. All Rights Reserved. 機械学習におけるパラメタ交換 39 学習器1 学習器2 学習器N パラメタ 交換 学習 モデル 分割された訓練例例 データ並列列 データ並列列 (モデルパラメタ)
40.
Copyright ©2015 Treasure
Data. All Rights Reserved. create table kdd10a_pa1_model1 as select feature, cast(voted_avg(weight) as float) as weight from (select train_pa1(addBias(features),label,"-‐mix host01,host02,host03") as (feature,weight) from kdd10a_train_x3 ) t group by feature; MIX Serverの利用 このように学習器の呼び出しで Mix serverをオプション指定する 40
41.
Copyright ©2015 Treasure
Data. All Rights Reserved. ・・・・・・ Model updates Async add AVG/Argmin KLD accumulator hash(feature) % N Non-‐blocking Channel (single shared TCP connection w/ TCP keepalive) classifiers Mix serv.Mix serv. Computation/training is not being blocked MIX Serverの概要 41
42.
Copyright ©2015 Treasure
Data. All Rights Reserved. 発表の構成 • Hivemallの概要 • How to use Hivemall • リアルタイム予測 w/ Hivemall and RDBMS • Hivemall v0.3の新機能紹介 • Matrix Factorization • AdaGrad/AdaDelta • Mix Server (Parameter Mixing) • HivemallへのFeature Requests 42
43.
Copyright ©2015 Treasure
Data. All Rights Reserved. 43 Feature requests to Hivemall
44.
Copyright ©2015 Treasure
Data. All Rights Reserved. 44 Treasure Dataでは、機械学習の実装に強いエンジニア、 Kaggle Master/Data Scientistsも募集しております! (夏のインターン生も近いうちに募集します) Hiringの一覧にはまだ出ていないので、興味のある方は myui@treasure-‐data.com または @myui に連絡ください http://bit.ly/gmo0512 休憩時間などにアンケートにご協力よろしくお 願い致します
Download now