SlideShare a Scribd company logo
独)産業技術総合研究所情報技術研究部門 
データサイエンス研究グループ主任研究員油井誠 
m.yui@aist.go.jp 
Hivemall: Apache Hiveを用いたスケーラ ブルな機械学習基盤 
ACM SIGMOD 日本支部第57回支部大会 1 
1 / 66
自己紹介 
学部 
修士 
博士 (NAIST) 
ポスドク (CWI) 
産総研 
Web 2.0/AJAXの流行による 
データベースへの 
トランザクションの急増 
大量データの価値化 
・PostgreSQLを改造して 
XML取り扱い機能を付与 
・フロムスクラッチから XML専用のDBを開発 
・メニーコアを活かした 超並列DBの研究開発 
・ロックフリーのページ 置換アルゴリズムの開発 
従来の関係データベースでは 
上手く扱えない 
XMLデータが増加 
・DWHの並列処理 
・大規模機械学習の並列処理 
github.com/myui/hivemall 
2 
もともとデータベースの研究ばかりやっていたが,DWHに求められ る分析処理の高度化の流れや産業貢献が強く求められる所属組織の 研究方針から機械学習の並列処理の研究にシフト 
ACM SIGMOD 日本支部第57回支部大会 
2 / 66
発表の構成 
•What is Hivemall 
•Why Hivemall 
•What Hivemall can do 
•How to use Hivemall 
•How Hivemall works 
•イテレーションへの対処方法(Sparkと比較) 
•性能評価 
•DEMO 
•Hivemallについてのまとめ 
•データベース屋から見た機械学習の研究課題 
ACM SIGMOD 日本支部第57回支部大会 3 
基本的にHadoop Summit 2014, San Jose 
で喋った内容を踏襲しております 
3 / 66
What is Hivemall 
•Hiveのユーザ定義関数またはユーザ定義テーブル 生成関数として実装された機械学習ライブラリ 
•クラス分類と回帰分析 
•推薦 
•K近傍探索 
.. and more 
•オープンソースプロジェクト 
•LGPLライセンス 
•github.com/myui/hivemall(bit.ly/hivemall) 
•コントリビュータは現在5人 
ACM SIGMOD 日本支部第57回支部大会 4 
4 / 66
ACM SIGMOD 日本支部第57回支部大会 5 
Hadoop HDFS 
分散ファイルシステム 
MapReduce 
(MRv1) 
Hive/PIG 
クエリ処理系 
Hivemall 
機械学習ライブラリ 
Apache YARN 
リソース管理システム 
Apache Tez 
DAG処理系 
Apache MESOS 
Apache Spark 
DAG処理系 
Spark MLlib 
機械学習ライブラリ 
MRv2 
Hivemallのソフトウェアスタック 
SparkSQL 
クエリ処理系 
5 / 66
R 
ACM SIGMOD 日本支部第57回支部大会 6 
M 
M 
M 
M 
HDFS 
HDFS 
M 
M 
M 
R 
M 
M 
M 
R 
HDFS 
M 
M 
M 
M 
M 
HDFS 
R 
MapReduce and DAG engine 
MapReduce 
DAG engine 
Tez/Spark 
6 / 66
リリースへの反応 
ACM SIGMOD 日本支部第57回支部大会 7 
7 / 66
リリースへの反応 
ACM SIGMOD 日本支部第57回支部大会 8 
トレジャーデータや複数の広告関連企業(ロックオン,フリークアウト, スケール アウト)が広告のクリック率推定やコンバージョン率推定に利用 
8 / 66
ACM SIGMOD 日本支部第57回支部大会 9 
InfoWorld最優秀オープンソフトウェア賞 
InfoWorld の最優秀オープンソフトウェア賞–Bossie (Best of Open Source Software Awards)は、エンドユーザ、業務およびITの専門家向けの最も優 秀なオープンソースソフトウェアに対して授与されるもの 
bit.ly/hivemall-award 
9 / 66
ACM SIGMOD 日本支部第57回支部大会 
Motivation –何故新しい機械学習基盤? 
Mahout? 
Vowpal Wabbit? 
(w/ Hadoop streaming) 
Spark MLlib? 
0xdata H2O? 
Cloudera Oryx? 
既に巷にあるHadoopと協調動作する機械学習 フレームワーク 
Quick Poll: 
現在いずれかのレームワークを使っていますか? 
10 
10 / 66
Framework 
User interface 
Mahout 
Java API プログラミング 
Spark MLlib/MLI 
Scala API プログラミング 
Scala Shell (REPL) 
H2O 
R プログラミング 
GUI 
Cloudera Oryx 
Http REST API プログラミング 
VowpalWabbit 
(w/ Hadoop streaming) 
C++ API プログラミング 
コマンドライン 
ACM SIGMOD 日本支部第57回支部大会 
Motivation –何故新しい機械学習基盤? 
既存の分散機械学習フレームワークは利用するの にプログラミングが必要で敷居が高い 
11 
11 / 66
ACM SIGMOD 日本支部第57回支部大会 
Mahoutを利用したクラス分類 
org/apache/mahout/classifier/sgd/TrainNewsGroups.java 
Find the complete code at 
bit.ly/news20-mahout 
12 
12 / 66
ACM SIGMOD 日本支部第57回支部大会 
Why Hivemall 
1.利用が簡単 
•プログラミング不要 
•全ての機械学習のステップがHiveQLクエリで完結 
•コンパイルやパッケージングが不要 
•既存Hiveユーザにフレンドリー 
•5分もあればHivemallの簡易例を実行可能 
•インストールは次のとおり簡単 
13 
13 / 66
ACM SIGMOD 日本支部第57回支部大会 
Why Hivemall 
2.データに対してスケーラブル 
•訓練事例/テスト事例の数に対してスケーラブ ル 
•特徴数に対してスケーラブル 
•Feature hashingと呼ばれるテクニックによる特徴数 の削減をサポート 
•学習モデルのサイズに対してスケーラブル 
•200ラベル* 1億の特徴⇒150GBのメモリが必要 
•Hivemallは学習時やテスト時に予測モデル全体がメ モリに収まる必要がない 
•特徴エンジニアリングに関してもHiveを利用した 並列処理によってスケーラブルに実行可能 
14 
14 / 66
ACM SIGMOD 日本支部第57回支部大会 
Why Hivemall 
3.計算資源に対してスケーラブル 
•HadoopとHiveの利点を活用 
•AmazonElastic MapReduce(EMR)によ る機械学習サービスのProvisioningが 可能 
➞EMRのHive環境にHivemallを自動セット アップするEMR bootstrapを用意している 
Find an example on 
bit.ly/hivemall-emr 
15 
15 / 66
ACM SIGMOD 日本支部第57回支部大会 
Why Hivemall 
4.最新のオンライン学習アルゴリズムをサポー ト(クラス分類) 
•ハイパーパラメータ/設定の細かい調整をしなくて も十分な精度が出る(確率的勾配降下法ベースの場 合は学習率の調整が困難) 
•CW, AROW[1], SCW[2]のような最先端の機械学 習アルゴリズムはMahout/Sparkではサポートさ れていない 
•学習の収束が高速 
•一般的には10イテレーションが必要なところでもCW以 降では2~3イテレーションもあれば収束する 
1.Adaptive Regularization of Weight Vectors (AROW), Crammer et al., NIPS 2009 
2.Exact Soft Confidence-Weighted Learning (SCW), Wang et al., ICML 2012 
16 
16 / 66
ACM SIGMOD 日本支部第57回支部大会 
Why Hivemall 
Algorithms 
News20.binary 
Classification Accuracy 
Perceptron 
0.9460 
Passive-Aggressive 
(a.k.a. Online-SVM) 
0.9604 
LibLinear 
0.9636 
LibSVM/TinySVM 
0.9643 
ConfidenceWeighted (CW) 
0.9656 
AROW [1] 
0.9660 
SCW [2] 
0.9662 
精度が 
良い 
4.最新のオンライン学習アルゴリズムを サポート(クラス分類) 
CWやその改良は賢いオンライン機械学習アルゴリズム 
17 
17 / 66
ACM SIGMOD 日本支部第57回支部大会 
CWの精度が何故よいか? 
文章をpositiveかnegativeかに分類する二値分類 を想定してみる 
→ 単語(特徴)ごとに重みを計算する 
I like this author 
Positive 
I like this author, but found this book dull 
Negative 
Label 
Feature Vector(特徴ベクトル) 
ナイーブな学習手法では重みを同様に更新する 
WlikeWdull 
CWでは重みごとに異なる更新を行う 
18 
18 / 66
ACM SIGMOD 日本支部第57回支部大会 
CWの精度が何故よいか? 
weight 
weight 
重みを更新する 
重みと確信度を 
更新する 
0.6 
0.8 
0.6 
0.8 
0.6 
At this confidence, 
the weight is 0.5 
共分散 
(確信度) 
0.5 
19 
19 / 66
ACM SIGMOD 日本支部第57回支部大会 
Why Hivemall 
4.最新のオンライン学習アルゴリズムをサ ポート(クラス分類) 
•学習の収束速度が早い 
•確信度が十分な重みについては小さな 更新を行う 
•確信度が低い重みについては大きな更 新を行う(e.g., 学習の初期) 
•極少ないイテレーションで収束する 
20 
20 / 66
発表の構成 
•What is Hivemall 
•Why Hivemall 
•What Hivemallcan do 
•How to use Hivemall 
•How Hivemallworks 
•イテレーションへの対処方法(Sparkと比較) 
•性能評価 
•DEMO 
•Hivemallについてのまとめ 
•データベース屋から見た機械学習の研究課題 
ACM SIGMOD 日本支部第57回支部大会 21 
21 / 66
ACM SIGMOD 日本支部第57回支部大会 
What Hivemall can do 
•クラス分類(二値分類/多値分類) 
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 
22 
22 / 66
ACM SIGMOD 日本支部第57回支部大会 
What Hivemall can do 
•K近傍法& レコメンデーション 
Minhashとb-Bit Minhash (LSH variant) 
類似度に基づくK近傍探索(cosine similarity) 
•Feature engineering 
Feature hashing 
Feature scaling (normalization, z-score) 
TF-IDF vectorizer 
… 
23 
23 / 66
ACM SIGMOD 日本支部第57回支部大会 
How to use Hivemall 
Machine 
Learning 
Training 
Prediction 
Prediction 
Model 
Label 
Feature Vector 
Feature Vector 
Label 
Data preparation 24 
24 / 66
ACM SIGMOD 日本支部第57回支部大会 
Create external table e2006tfidf_train ( 
rowidint, 
labelfloat, 
featuresARRAY<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でパース可能な)任意フォー マットのデータを利用可能 
25 
25 / 66
ACM SIGMOD 日本支部第57回支部大会 
How to use Hivemall 
Machine 
Learning 
Training 
Prediction 
Prediction 
Model 
Label 
Feature Vector 
Feature Vector 
Label 
Feature Engineering 
26 
26 / 66
ACM SIGMOD 日本支部第57回支部大会 
create viewe2006tfidf_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の範囲に変換 
27 
27 / 66
ACM SIGMOD 日本支部第57回支部大会 
How to use Hivemall 
Machine 
Learning 
Training 
Prediction 
Prediction 
Model 
Label 
Feature Vector 
Feature Vector 
Label 
Training 
28 
28 / 66
ACM SIGMOD 日本支部第57回支部大会 
How to use Hivemall -Training 
CREATE TABLE lr_modelAS 
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側で並列に処理 
29 
29 / 66
ACM SIGMOD 日本支部第57回支部大会 
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による学習 
投票に基づきPositiveor Negativeな 
重みの平均 
+0.7, +0.3, +0.2, -0.1, +0.7 
CWクラス分類器による学習 
30 
30 / 66
ACM SIGMOD 日本支部第57回支部大会 
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でまとめる 
31 
31 / 66
ACM SIGMOD 日本支部第57回支部大会 
How to use Hivemall 
Machine 
Learning 
Training 
Prediction 
Prediction 
Model 
Label 
Feature Vector 
Feature Vector 
Label 
Prediction 
32 
32 / 66
ACM SIGMOD 日本支部第57回支部大会 
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によって行う 
予測モデル全体をメモリに載せる必要がない 
33 
33 / 66
発表の構成 
•What is Hivemall 
•Why Hivemall 
•What Hivemallcan do 
•How to use Hivemall 
•How Hivemallworks 
•イテレーションへの対処方法(Sparkと比較) 
•性能評価 
•DEMO 
•Hivemallについてのまとめ 
•データベース屋から見た機械学習の研究課題 
ACM SIGMOD 日本支部第57回支部大会 34 
34 / 66
ユーザ定義テーブル生成関数として機械学習を実装し ている 
ACM SIGMOD 日本支部第57回支部大会 
Hivemallでどのように学習が行われるか 
+1, <1,2> 
.. 
+1, <1,7,9> 
-1, <1,3, 9> 
.. 
+1, <3,8> 
tuple 
<label, array<features>> 
tuple<feature, weights> 
Prediction model 
UDTF 
Relation 
<feature, weights> 
param-mix 
param-mix 
Training 
table 
Shuffle 
by feature 
train 
train 
Hiveのリレーショナル問合せ処 理エンジンに適している 
•結果として出力される予測モ デルは特徴とその重みから なるリレーション 
Embarrassingly parallel 
•Mapper数とreducer数はそれ ぞれ設定可能 
Baggingと似た効果 分類器の学習結果のvarianceを 減らす(ランダムフォレストの決定木で過 学習が減るのと同様の理屈) 
35 
35 / 66
ACM SIGMOD 日本支部第57回支部大会 
train 
train 
+1, <1,2> 
.. 
+1, <1,7,9> 
-1, <1,3, 9> 
.. 
+1, <3,8> 
merge 
tuple 
<label, array<features > 
array<weight> 
array<sum of weight>, 
array<count> 
Training 
table 
Prediction model 
-1, <2,7, 9> 
.. 
+1, <3,8> 
final merge 
merge 
-1, <2,7, 9> 
.. 
+1, <3,8> 
train 
train 
array<weight> 
Why not UDAF 
4 ops in parallel 
2 ops in parallel 
No parallelism 
機械学習を集約関数として実行するアプローチ 
Madlib、Bismarckなどの機械学習on RDBMSはこのアプローチ 
Final mergeがボトルネックになる 
Final mergeのFan-outによってスループットが律速される 
メモリ消費量 
が増える 
並列度が 下がる 
36 
36 / 66
如何に反復処理と向き合うか 
機械学習ではよい予測精度を得るためには反復 処理が不可欠 
•MapReduceはIN/OUTがHDFSを介すために反復処理には適 さない(注: Tezを利用した場合はHDFSのIN/OUTがスキップ可能) 
•Sparkはオンメモリ処理によって効率的に反復を扱う 
iter. 1 
iter. 2 
. . . 
Input 
HDFSread 
HDFSwrite 
HDFSread 
HDFSwrite 
iter. 1 
iter. 2 
Input 
ACM SIGMOD 日本支部第57回支部大会 37 
37 / 66
valdata = spark.textFile(...).map(readPoint).cache() 
for (i<-1 to ITERATIONS) { 
valgradient = data.map(p => 
(1 / (1 + exp(-p.y*(w dot p.x))) -1) * p.y* p.x 
).reduce(_ + _) 
w-= gradient 
} 
反復的なMapReduceで 
勾配降下を行う 
個々のノードで担当パーティ ションをメモリにキャッシュ 
これは単なるtoy example! Why? 
Sparkにおける反復学習 
Logistic Regression example of Spark 
勾配の計算に使う訓練例は反復ごとに異なるものを利用する 
必要がある(そうしないと精度がでないし、より多くの反復が必要となる) 
ACM SIGMOD 日本支部第57回支部大会 38 
38 / 66
ACM SIGMOD 日本支部第57回支部大会 
Spark Mllibでは実際どうなっている? 
Val data = .. 
for (i <-1 to numIterations) { 
valsampled = 
valgradient = 
w -= gradient 
} 
サンプリングを利用したMini-batch勾配降下法 
それぞれのイテレーションではデータの一部だけを 
利用するため、反復処理は学習の収束に不可欠 
GradientDescent.scala 
bit.ly/spark-gd 
データのサブセットをサンプリング 
Spark MapReduceを利用してSampled[1..N]の勾配をN個のワー カで並列に計算してN個の予測モデルを構築し、N個のご予測モデルを マスターノードで(逐次的に)マージ 
Wは次のイテレーションで各ワーカに送信される 
39 
39 / 66
Hivemallでどのように反復に対処? 
Hivemallでは、複数のMapReduce Jobを利用した反復 処理なしに機械学習における反復学習の効果をエミュ レートするためにamplifyUDTFを提供 
SET hivevar:xtimes=3; 
CREATE VIEW training_x3 
as 
SELECT 
* 
FROM( 
SELECT 
amplify(${xtimes}, *) as (rowid, label, features) 
FROM 
training 
) t 
CLUSTER BY RANDOM 
ACM SIGMOD 日本支部第57回支部大会 
入データを増幅してshuffleする 
40 
40 / 66
Map-only shuffling and amplifying 
rand_amplifyUDTFはmapタスク内で入力され た訓練事例を増幅&shuffleする 
CREATE VIEWtraining_x3 
as 
SELECT 
rand_amplify(${xtimes}, ${shufflebuffersize}, *) 
as (rowid, label, features) 
FROM 
training; 
ACM SIGMOD 日本支部第57回支部大会 41 
41 / 66
map-local shuffleを利用した場合の実行プラン 
… 
Shuffle 
(distributed by feature) 
Reduce task 
Merge 
Aggregate 
Reduce write 
Map task 
Table scan 
Rand Amplifier 
Map write 
LogressUDTF 
Partial aggregate 
Map task 
Table scan 
Rand Amplifier 
Map write 
LogressUDTF 
Partial aggregate 
Reduce task 
Merge 
Aggregate 
Reduce write 
スキャンされた行が 
増幅されて 
バッファリングされて 
shuffleされる 
なお、このオペレータは 
パイプライン処理される 
Rand amplifierオペレータがテーブルスキャンオペレータと 
学習を行うオペレータの間に挿入される 
ACM SIGMOD 日本支部第57回支部大会 42 
42 / 66
ACM SIGMOD 日本支部第57回支部大会 
Method 
実行時間(秒) 
AUC(予測精度) 
Plain 
89.718 
0.734805 
amplifier+clusteredby(a.k.a.global shuffle) 
479.855 
0.746214 
rand_amplifier(a.k.a. map-local shuffle) 
116.424 
0.743392 
Amplifiersの性能への影響 
map-local shuffleを利用することで受容可能な オーバヘッドで予測精度が向上 
43 
43 / 66
発表の構成 
•What is Hivemall 
•Why Hivemall 
•What Hivemallcan do 
•How to use Hivemall 
•How Hivemallworks 
•イテレーションへの対処方法(Sparkと比較) 
•性能評価 
•DEMO 
•Hivemallについてのまとめ 
•データベース屋から見た機械学習の研究課題 
ACM SIGMOD 日本支部第57回支部大会 44 
44 / 66
性能評価 
Hivemallと最先端の機械学習フレームワークの 性能を比較 
•比較対象 
•Vowpal Wabbit、Bismarck、Spark 1.0 MLlib 
•データセット KDD Cup 2012, Track 2データセット 中国の検索エンジンプロバイダから提供された実データセット 機械学習のPublicなデータセットとしても最も大きい規模のもの 
•訓練データは2億レコード以上(33GB) 
•特徴数は5千万以上 
•タスク 検索エンジン広告の広告クリックスルー率(CTR)推定 
•テスト環境 33のコモディティサーバからなるインハウスのクラスタ 
•32ノードがHadoopのSlaveノード 
•個々のノードは8物理コアと24GBの主記憶からなる 
bit.ly/hivemall-kdd-dataset 
ACM SIGMOD 日本支部第57回支部大会 45 
45 / 66
ACM SIGMOD 日本支部第57回支部大会 
116.4 
596.67 
493.81 
755.24 
465 
0 
100 
200 
300 
400 
500 
600 
700 
800 
Hivemall 
VW1 
VW32 
Bismarck 
Spark 1.0 
0.64 
0.66 
0.68 
0.7 
0.72 
0.74 
0.76 
Hivemall 
VW1 
VW32 
Bismarck 
スループット: 2.3 million tuples/sec on 32 nodes 
レイテンシ: 235 million records(33GB)の学習に2分以内 
性能比較 
予測性能(AUC) 
がよい 
学習時間(秒) 
が短い 
46 
46 / 66
DEMO 
ACM SIGMOD 日本支部第57回支部大会 47 
WikipediaのJustice, Wisdom, Knowledgeエントリ 
のTF-IDF値を算出する 
47 / 66
ACM SIGMOD 日本支部第57回支部大会 48 
TF-IDF vectorizer (1) 
푡푓푖푑푓푡,푑=푡푓(푡,푑)∙푖푑푓(푡) 
푖푑푓푡=log 푁 푑푓(푡) +1 
文書d内のある単語tの出現頻度(term frequency) 
푡푓(푡,푑) 
単語tの文書頻度df(document frequency)の逆数 
create temporary macro idf(df_t INT, n_docs INT) 
(log(10, CAST(n_docs as FLOAT)/max2(1,df_t)) + 1.0); 
create temporary macro tfidf(tf FLOAT, df_t INT, n_docs INT) 
tf * idf(dt_f, n_docs); 
TFを並列計算するUDAFとTF-IDFを計算するmacroを定義 
48 / 66
Docid, wordからなるTable/Viewを用意する 
ACM SIGMOD 日本支部第57回支部大会 49 
TF-IDF vectorizer (2) 
create external table wikipage ( 
docid int, 
page string 
) 
ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' 
STORED AS TEXTFILE; 
create or replace view wikipage_exploded 
as 
select 
docid, 
word 
from 
wikipage LATERAL VIEW explode(tokenize(page,true)) t as word 
where 
not is_stopword(word); 
49 / 66 
自分で形態素解析して用意してももちろんよい
ACM SIGMOD 日本支部第57回支部大会 50 
TF-IDF vectorizer (3) 
create or replace view term_frequency 
as 
select 
docid, word, freq 
from ( 
select 
docid, 
tf(word) as word2freq 
from 
wikipage_exploded 
group by 
docid 
) t 
LATERAL VIEW explode(word2freq) t2 
as word, freq; 
create or replace view document_frequency 
as 
select 
word, 
count(distinct docid) docs 
from 
wikipage_exploded 
group by 
word; 
TF, DFのビューを定義する 
文書d内のある単語tの出現頻度 
푡푓(푡,푑) 
単語tの文書頻度 
푑푓(푡) 
50 / 66
ACM SIGMOD 日本支部第57回支部大会 51 
TF-IDF vectorizer (4) 
select 
tf.docid, 
tf.word, 
tfidf(tf.freq, df.docs, ${n_docs}) as tfidf 
from 
term_frequency tf 
JOIN document_frequency df ON (tf.word = df.word) 
order by 
tfidf desc; 
docid/wordごとのTF-IDF値をTF-IDF値の降順に 表示する 
51 / 66
ACM SIGMOD 日本支部第57回支部大会 
ここまでのまとめ 
Hiveのユーザ定義関数またはユーザ定義テーブル 生成関数として実装されたオープンソースの機械学 習ライブラリ 
利用が簡単 
計算資源に対してスケールする 
Amazon EMRでも動作する 
最先端のオンライン機械学習をサポート 
Spark SQLでの動作を検証予定 
Apache Incubatorに提案予定 
プロジェクトサイト: 
github.com/myui/hivemall or bit.ly/hivemall 
是非Hivemallをご自身で評価ください 5分もあればクイックスタートは動かせるはずです 
52 
52 / 66
発表の構成 
•What is Hivemall 
•Why Hivemall 
•What Hivemallcan do 
•How to use Hivemall 
•How Hivemallworks 
•イテレーションへの対処方法(Sparkと比較) 
•性能評価 
•DEMO 
•Hivemallについてのまとめ 
•データベース屋から見た機械学習の研究課題 
ACM SIGMOD 日本支部第57回支部大会 53 
53 / 66
•イテレーションの扱い 
•HaLoop、Twisterなど繰り返し処理向けにHadoopを改善する 既存研究多数 
•機械学習のための宣言的言語 
•SystemMLなど 
•M/RまたはDAGエンジンで機械学習処理を実行 
•繰り返し処理の最適化機構(e.g., Loop-invariant code motion or 遅延評価) 
•学習途中のパラメタ交換 
•AllReduce, Parameter Server 
•Stale Synchronous Parallel 
•GPUの利用 
•BidMachなど 
ACM SIGMOD 日本支部第57回支部大会 54 
データベース屋から見た並列処理の 
機械学習の研究課題 
54 / 66
機械学習におけるパラメタ交換 
ACM SIGMOD 日本支部第57回支部大会 55 
55 / 66
1.Parameter server 
•分散KVS等による分散共有メモリ機構 
•MIXの単位:特徴ごと、通信の頻度:高い、同期処理のlatency:小 
•ローカルにモデルを持たない、グローバルなモデルを全員が共有 
•Variants 
•KVSに対して非同期または同期的に更新を行うもの 
•Stale Synchronous Parallelと呼ばれるBSPの同期制約を緩めたもの(on KVS) 
•グローバルなモデルは持たず、各ワーカのモデルをレプリケートするもの 
2.Parameter mixing 
•MIX処理用のプロトコル.モデルは保持されない 
•MIXの単位:全ての特徴、通信の頻度:低(一定間隔EPOCHごと)、同期処 理のlatency:大 
•各学習器がローカルなモデルを持つ 
•本来全ての特徴を交換する必要がないが,全てを交換するため冗長な計 算が発生 
•Variants 
•AllReduce (a kind of BSP)、Butterfly mixing 
•ランダムにMIXでデータを集めるサーバを選択(Jubatus) 
56 
機械学習におけるパラメタ交換 
ACM SIGMOD 日本支部第57回支部大会 
56 / 66
Parameter Server 
Stale Synchronous Parallel (SSP)Parameter Server, NIPS 2013. 
Bulk Synchronous Parallelの同期制約に緩めたもの 
ACM SIGMOD 日本支部第57回支部大会 57 
http://www.cs.cmu.edu/~qho/ssp_nips2013.pdf 
より抜粋 
57 / 66
AllReduce 
ACM SIGMOD 日本支部第57回支部大会 58 
http://cilvr.cs.nyu.edu/diglib/lsml/lecture04-allreduce.pdf より抜粋 
58 / 66
•Bulk-Synchronous Parallel(BSP)並みの硬い同期モ デル 
•タスクが早く終えたノードも他のノードの処理を待つ必要 がある 
•計算途中のノードの追加や離脱に対応できない 
•投機実行が扱えない 
•M/Rのタスクスロット以上のタスクに対応できない 
ACM SIGMOD 日本支部第57回支部大会 59 
AllReduceの問題点 
59 / 66
1.Parameter server 
•分散KVS等による分散共有メモリ機構 
2.Parameter mixing 
•MIX処理ようのプロトコル.モデルは保持されない 
3.Mixing Server (Hivemallで新規提案/採用) 
•parameter serverのように見えるが似て非なるもの 
•MIX用のプロトコルの一種 
60 
機械学習におけるパラメタ交換 
ACM SIGMOD 日本支部第57回支部大会 
60 / 66
・・・・・・ 
Model updates 
Asyncadd 
AVG/ArgminKLD 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 
61 
MIX Serverの概要 
ACM SIGMOD 日本支部第57回支部大会 
61 / 66
Model 
updates 
Propagate every update 
asynchronously 
feature 
weight[] 
clock[] 
min covar 
total clock 
Diff=|total clock –local clock| 
total clock += lock clock 
Average accumulator 
feature 
sum mean div covar 
sum invcovar 
min covar 
total clock 
argminKL-divergence 
accumulator 
feature 
weight 
Covariance 
clock 
Mix serv. 
62 
最新の値を保持する パラメタサーバと異な り、モデル平均化処理 のためのaccumulator 
Global clockとlocal clockがズレてきたら 
ローカルモデルに平 均化処理した結果を 反映 
ACM SIGMOD 日本支部第57回支部大会 
62 / 66
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; 
ACM SIGMOD 日本支部第57回支部大会 63 
MIX Serverの利用 
このように学習器の呼び出しで 
Mix serverをオプション指定する 
63 / 66
Model Averaging Issues 
Model 
ServerA 
Server B 
ServerC 
weight 
10.0 
50.0 
30.0 
clock 
2 
4 
3 
Avg=sum weight/count=(10+50+30)/3=30 
WeightedAvg=(10*2/9)+(50*4/9)+(30*3/9)=34.44.. 
Problem: 
AVG(μ) is argminEuclid distance, 
not considering covariance 
(a confidence parameter of weights) 
64 
Solution: 
argminKL-distance 
ACM SIGMOD 日本支部第57回支部大会 
64 / 66
DBと機械学習で境界領域で活躍してい る注目の研究者(1) 
スタンフォード大Christopher Ré教授 
http://cs.stanford.edu/people/chrismre/ 
Hogwild: A lock-free approach to parallelizing stochastic gradient descent, Proc. NIPS, 2011.が有名.確率的勾配降下法の並列処 理を共有メモリ並列計算機上で効率的に行う手法 
65 
2014の発表: 
DimmWitted: A Study of Main-Memory Statistical Analytics. Proc. PVLDB, 2015. 
An Asynchronous Parallel Stochastic Coordinate Descent Algorithm. Proc. ICML 2014. 
Beyond Worst-case Analysis for Joins using Minesweeper. Proc. PODS 2014. 
Materialization Optimizations for Feature Selection. Proc. SIGMOD 2014. Best paper 
ACM SIGMOD 日本支部第57回支部大会 
65 / 66
DBと機械学習で境界領域で活躍してい る注目の研究者(2) 
カリフォルニア大学バークレー校John Canny教授 
http://www.cs.berkeley.edu/~jfc/ 
CHIコミュニティで有名な先生(らしい)だが,近年 BIDMACHプロジェクトでButterfly MixingやKylixなどGPU を利用した機械学習処理で興味深い成果を挙げている 
66 
Kylix: A Sparse AllReduce for Commodity Clusters. Proc. Int. Conf. on Parallel Processing (ICPP) 2014. 
BIDMach: Large-scale Learning with Zero Memory Allocation. Proc. NIPS BigLearnWorkshop 2013. 
A Multi-Teraflop Constituency Parser using GPUs. Proc. EMNLP 2013. 
Big Data Analytics with Small Footprint: Squaring the Cloud. Proc. ACM KDD 2013. 
Butterfly Mixing: Accelerating Incremental-Update Algorithms on Clusters. Proc. SIAM Data Mining 2013. 
ACM SIGMOD 日本支部第57回支部大会 
66 / 66

More Related Content

PDF
Hcj2014 myui
Makoto Yui
 
PDF
HivemallとSpark MLlibの比較
Makoto Yui
 
PDF
Hivemall v0.3の機能紹介@1st Hivemall meetup
Makoto Yui
 
PDF
Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習
Katsushi Yamashita
 
PDF
hscj2019_ishizaki_public
Kazuaki Ishizaki
 
PDF
SparkTokyo2019NovIshizaki
Kazuaki Ishizaki
 
PDF
性能測定道 事始め編
Yuto Hayamizu
 
PDF
性能測定道 実践編
Yuto Hayamizu
 
Hcj2014 myui
Makoto Yui
 
HivemallとSpark MLlibの比較
Makoto Yui
 
Hivemall v0.3の機能紹介@1st Hivemall meetup
Makoto Yui
 
Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習
Katsushi Yamashita
 
hscj2019_ishizaki_public
Kazuaki Ishizaki
 
SparkTokyo2019NovIshizaki
Kazuaki Ishizaki
 
性能測定道 事始め編
Yuto Hayamizu
 
性能測定道 実践編
Yuto Hayamizu
 

What's hot (8)

PDF
2016-02-08 Spark MLlib Now and Beyond@Spark Conference Japan 2016
Yu Ishikawa
 
PDF
Deep Dive into Spark SQL with Advanced Performance Tuning
Takuya UESHIN
 
PDF
レコメンドバッチ高速化に向けたSpark/MapReduceの機械学習ライブラリ比較検証
Recruit Technologies
 
PPTX
Sparkでレコメンドエンジンを作ってみた
fujita_s
 
PDF
HiveとImpalaのおいしいとこ取り
Yukinori Suda
 
PPTX
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
Yu Ishikawa
 
PDF
Spark/MapReduceの 機械学習ライブラリ比較検証
Recruit Technologies
 
PDF
Hive on Spark を活用した高速データ分析 - Hadoop / Spark Conference Japan 2016
Nagato Kasaki
 
2016-02-08 Spark MLlib Now and Beyond@Spark Conference Japan 2016
Yu Ishikawa
 
Deep Dive into Spark SQL with Advanced Performance Tuning
Takuya UESHIN
 
レコメンドバッチ高速化に向けたSpark/MapReduceの機械学習ライブラリ比較検証
Recruit Technologies
 
Sparkでレコメンドエンジンを作ってみた
fujita_s
 
HiveとImpalaのおいしいとこ取り
Yukinori Suda
 
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
Yu Ishikawa
 
Spark/MapReduceの 機械学習ライブラリ比較検証
Recruit Technologies
 
Hive on Spark を活用した高速データ分析 - Hadoop / Spark Conference Japan 2016
Nagato Kasaki
 
Ad

Similar to Hivemall Talk@SIGMOD-J Oct.4, 2014. (20)

PDF
Panel Discussion@WebDB forum 2014
Makoto Yui
 
PDF
Hivemall LT @ Machine Learning Casual Talks #3
Makoto Yui
 
PPTX
1028 TECH & BRIDGE MEETING
健司 亀本
 
PDF
HiFF 講演資料(エコモット)
MichihiroSHONAI
 
PDF
MapReduceによる大規模データを利用した機械学習
Preferred Networks
 
PDF
Log解析の超入門
菊池 佑太
 
PDF
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
Yu Ishikawa
 
PDF
Session4:「先進ビッグデータ応用を支える機械学習に求められる新技術」/比戸将平
Preferred Networks
 
PDF
Jubatusにおける大規模分散オンライン機械学習
Preferred Networks
 
PDF
SparkMLlibで始めるビッグデータを対象とした機械学習入門
Takeshi Mikami
 
PPTX
2014 11-20 Machine Learning with Apache Spark 勉強会資料
Recruit Technologies
 
PDF
Amazon SageMaker: 機械学習の民主化から工業化へ(in Japanese)
Toshihiko Yamakami
 
PPTX
20140711 evf2014 hadoop_recommendmachinelearning
Takumi Yoshida
 
PDF
Apache Drill でたしなむ セルフサービスデータ探索 - 2014/11/06 Cloudera World Tokyo 2014 LTセッション
MapR Technologies Japan
 
PDF
Jubatus: 分散協調をキーとした大規模リアルタイム機械学習プラットフォーム
Preferred Networks
 
PDF
[Developers Summit 2017] MicrosoftのAI開発機能/サービス
Naoki (Neo) SATO
 
PDF
明日から役立つ BigQuery ML 活用 5 つのヒント | Google Cloud INSIDE Games & Apps: Online
Google Cloud Platform - Japan
 
PPT
Big data解析ビジネス
Mie Mori
 
PPTX
実践:今日から使えるビックデータハンズオン あなたはタイタニック号で生き残れるか?知的生産性UPのための機械学習超入門
健一 茂木
 
PDF
[CTO Night & Day 2019] ML services: MLOps #ctonight
Amazon Web Services Japan
 
Panel Discussion@WebDB forum 2014
Makoto Yui
 
Hivemall LT @ Machine Learning Casual Talks #3
Makoto Yui
 
1028 TECH & BRIDGE MEETING
健司 亀本
 
HiFF 講演資料(エコモット)
MichihiroSHONAI
 
MapReduceによる大規模データを利用した機械学習
Preferred Networks
 
Log解析の超入門
菊池 佑太
 
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
Yu Ishikawa
 
Session4:「先進ビッグデータ応用を支える機械学習に求められる新技術」/比戸将平
Preferred Networks
 
Jubatusにおける大規模分散オンライン機械学習
Preferred Networks
 
SparkMLlibで始めるビッグデータを対象とした機械学習入門
Takeshi Mikami
 
2014 11-20 Machine Learning with Apache Spark 勉強会資料
Recruit Technologies
 
Amazon SageMaker: 機械学習の民主化から工業化へ(in Japanese)
Toshihiko Yamakami
 
20140711 evf2014 hadoop_recommendmachinelearning
Takumi Yoshida
 
Apache Drill でたしなむ セルフサービスデータ探索 - 2014/11/06 Cloudera World Tokyo 2014 LTセッション
MapR Technologies Japan
 
Jubatus: 分散協調をキーとした大規模リアルタイム機械学習プラットフォーム
Preferred Networks
 
[Developers Summit 2017] MicrosoftのAI開発機能/サービス
Naoki (Neo) SATO
 
明日から役立つ BigQuery ML 活用 5 つのヒント | Google Cloud INSIDE Games & Apps: Online
Google Cloud Platform - Japan
 
Big data解析ビジネス
Mie Mori
 
実践:今日から使えるビックデータハンズオン あなたはタイタニック号で生き残れるか?知的生産性UPのための機械学習超入門
健一 茂木
 
[CTO Night & Day 2019] ML services: MLOps #ctonight
Amazon Web Services Japan
 
Ad

More from Makoto Yui (20)

PDF
Apache Hivemall and my OSS experience
Makoto Yui
 
PDF
Introduction to Apache Hivemall v0.5.2 and v0.6
Makoto Yui
 
PDF
Introduction to Apache Hivemall v0.5.0
Makoto Yui
 
PDF
Idea behind Apache Hivemall
Makoto Yui
 
PDF
Introduction to Apache Hivemall v0.5.0
Makoto Yui
 
PDF
What's new in Hivemall v0.5.0
Makoto Yui
 
PDF
What's new in Apache Hivemall v0.5.0
Makoto Yui
 
PDF
Revisiting b+-trees
Makoto Yui
 
PDF
Incubating Apache Hivemall
Makoto Yui
 
PDF
Hivemall meets Digdag @Hackertackle 2018-02-17
Makoto Yui
 
PDF
Apache Hivemall @ Apache BigData '17, Miami
Makoto Yui
 
PDF
機械学習のデータ並列処理@第7回BDI研究会
Makoto Yui
 
PDF
Podling Hivemall in the Apache Incubator
Makoto Yui
 
PDF
Dots20161029 myui
Makoto Yui
 
PDF
Hadoopsummit16 myui
Makoto Yui
 
PDF
HadoopCon'16, Taipei @myui
Makoto Yui
 
PDF
3rd Hivemall meetup
Makoto Yui
 
PDF
Recommendation 101 using Hivemall
Makoto Yui
 
PDF
Hivemall dbtechshowcase 20160713 #dbts2016
Makoto Yui
 
PDF
Introduction to Hivemall
Makoto Yui
 
Apache Hivemall and my OSS experience
Makoto Yui
 
Introduction to Apache Hivemall v0.5.2 and v0.6
Makoto Yui
 
Introduction to Apache Hivemall v0.5.0
Makoto Yui
 
Idea behind Apache Hivemall
Makoto Yui
 
Introduction to Apache Hivemall v0.5.0
Makoto Yui
 
What's new in Hivemall v0.5.0
Makoto Yui
 
What's new in Apache Hivemall v0.5.0
Makoto Yui
 
Revisiting b+-trees
Makoto Yui
 
Incubating Apache Hivemall
Makoto Yui
 
Hivemall meets Digdag @Hackertackle 2018-02-17
Makoto Yui
 
Apache Hivemall @ Apache BigData '17, Miami
Makoto Yui
 
機械学習のデータ並列処理@第7回BDI研究会
Makoto Yui
 
Podling Hivemall in the Apache Incubator
Makoto Yui
 
Dots20161029 myui
Makoto Yui
 
Hadoopsummit16 myui
Makoto Yui
 
HadoopCon'16, Taipei @myui
Makoto Yui
 
3rd Hivemall meetup
Makoto Yui
 
Recommendation 101 using Hivemall
Makoto Yui
 
Hivemall dbtechshowcase 20160713 #dbts2016
Makoto Yui
 
Introduction to Hivemall
Makoto Yui
 

Hivemall Talk@SIGMOD-J Oct.4, 2014.

  • 1. 独)産業技術総合研究所情報技術研究部門 データサイエンス研究グループ主任研究員油井誠 [email protected] Hivemall: Apache Hiveを用いたスケーラ ブルな機械学習基盤 ACM SIGMOD 日本支部第57回支部大会 1 1 / 66
  • 2. 自己紹介 学部 修士 博士 (NAIST) ポスドク (CWI) 産総研 Web 2.0/AJAXの流行による データベースへの トランザクションの急増 大量データの価値化 ・PostgreSQLを改造して XML取り扱い機能を付与 ・フロムスクラッチから XML専用のDBを開発 ・メニーコアを活かした 超並列DBの研究開発 ・ロックフリーのページ 置換アルゴリズムの開発 従来の関係データベースでは 上手く扱えない XMLデータが増加 ・DWHの並列処理 ・大規模機械学習の並列処理 github.com/myui/hivemall 2 もともとデータベースの研究ばかりやっていたが,DWHに求められ る分析処理の高度化の流れや産業貢献が強く求められる所属組織の 研究方針から機械学習の並列処理の研究にシフト ACM SIGMOD 日本支部第57回支部大会 2 / 66
  • 3. 発表の構成 •What is Hivemall •Why Hivemall •What Hivemall can do •How to use Hivemall •How Hivemall works •イテレーションへの対処方法(Sparkと比較) •性能評価 •DEMO •Hivemallについてのまとめ •データベース屋から見た機械学習の研究課題 ACM SIGMOD 日本支部第57回支部大会 3 基本的にHadoop Summit 2014, San Jose で喋った内容を踏襲しております 3 / 66
  • 4. What is Hivemall •Hiveのユーザ定義関数またはユーザ定義テーブル 生成関数として実装された機械学習ライブラリ •クラス分類と回帰分析 •推薦 •K近傍探索 .. and more •オープンソースプロジェクト •LGPLライセンス •github.com/myui/hivemall(bit.ly/hivemall) •コントリビュータは現在5人 ACM SIGMOD 日本支部第57回支部大会 4 4 / 66
  • 5. ACM SIGMOD 日本支部第57回支部大会 5 Hadoop HDFS 分散ファイルシステム MapReduce (MRv1) Hive/PIG クエリ処理系 Hivemall 機械学習ライブラリ Apache YARN リソース管理システム Apache Tez DAG処理系 Apache MESOS Apache Spark DAG処理系 Spark MLlib 機械学習ライブラリ MRv2 Hivemallのソフトウェアスタック SparkSQL クエリ処理系 5 / 66
  • 6. R ACM SIGMOD 日本支部第57回支部大会 6 M M M M HDFS HDFS M M M R M M M R HDFS M M M M M HDFS R MapReduce and DAG engine MapReduce DAG engine Tez/Spark 6 / 66
  • 7. リリースへの反応 ACM SIGMOD 日本支部第57回支部大会 7 7 / 66
  • 8. リリースへの反応 ACM SIGMOD 日本支部第57回支部大会 8 トレジャーデータや複数の広告関連企業(ロックオン,フリークアウト, スケール アウト)が広告のクリック率推定やコンバージョン率推定に利用 8 / 66
  • 9. ACM SIGMOD 日本支部第57回支部大会 9 InfoWorld最優秀オープンソフトウェア賞 InfoWorld の最優秀オープンソフトウェア賞–Bossie (Best of Open Source Software Awards)は、エンドユーザ、業務およびITの専門家向けの最も優 秀なオープンソースソフトウェアに対して授与されるもの bit.ly/hivemall-award 9 / 66
  • 10. ACM SIGMOD 日本支部第57回支部大会 Motivation –何故新しい機械学習基盤? Mahout? Vowpal Wabbit? (w/ Hadoop streaming) Spark MLlib? 0xdata H2O? Cloudera Oryx? 既に巷にあるHadoopと協調動作する機械学習 フレームワーク Quick Poll: 現在いずれかのレームワークを使っていますか? 10 10 / 66
  • 11. Framework User interface Mahout Java API プログラミング Spark MLlib/MLI Scala API プログラミング Scala Shell (REPL) H2O R プログラミング GUI Cloudera Oryx Http REST API プログラミング VowpalWabbit (w/ Hadoop streaming) C++ API プログラミング コマンドライン ACM SIGMOD 日本支部第57回支部大会 Motivation –何故新しい機械学習基盤? 既存の分散機械学習フレームワークは利用するの にプログラミングが必要で敷居が高い 11 11 / 66
  • 12. ACM SIGMOD 日本支部第57回支部大会 Mahoutを利用したクラス分類 org/apache/mahout/classifier/sgd/TrainNewsGroups.java Find the complete code at bit.ly/news20-mahout 12 12 / 66
  • 13. ACM SIGMOD 日本支部第57回支部大会 Why Hivemall 1.利用が簡単 •プログラミング不要 •全ての機械学習のステップがHiveQLクエリで完結 •コンパイルやパッケージングが不要 •既存Hiveユーザにフレンドリー •5分もあればHivemallの簡易例を実行可能 •インストールは次のとおり簡単 13 13 / 66
  • 14. ACM SIGMOD 日本支部第57回支部大会 Why Hivemall 2.データに対してスケーラブル •訓練事例/テスト事例の数に対してスケーラブ ル •特徴数に対してスケーラブル •Feature hashingと呼ばれるテクニックによる特徴数 の削減をサポート •学習モデルのサイズに対してスケーラブル •200ラベル* 1億の特徴⇒150GBのメモリが必要 •Hivemallは学習時やテスト時に予測モデル全体がメ モリに収まる必要がない •特徴エンジニアリングに関してもHiveを利用した 並列処理によってスケーラブルに実行可能 14 14 / 66
  • 15. ACM SIGMOD 日本支部第57回支部大会 Why Hivemall 3.計算資源に対してスケーラブル •HadoopとHiveの利点を活用 •AmazonElastic MapReduce(EMR)によ る機械学習サービスのProvisioningが 可能 ➞EMRのHive環境にHivemallを自動セット アップするEMR bootstrapを用意している Find an example on bit.ly/hivemall-emr 15 15 / 66
  • 16. ACM SIGMOD 日本支部第57回支部大会 Why Hivemall 4.最新のオンライン学習アルゴリズムをサポー ト(クラス分類) •ハイパーパラメータ/設定の細かい調整をしなくて も十分な精度が出る(確率的勾配降下法ベースの場 合は学習率の調整が困難) •CW, AROW[1], SCW[2]のような最先端の機械学 習アルゴリズムはMahout/Sparkではサポートさ れていない •学習の収束が高速 •一般的には10イテレーションが必要なところでもCW以 降では2~3イテレーションもあれば収束する 1.Adaptive Regularization of Weight Vectors (AROW), Crammer et al., NIPS 2009 2.Exact Soft Confidence-Weighted Learning (SCW), Wang et al., ICML 2012 16 16 / 66
  • 17. ACM SIGMOD 日本支部第57回支部大会 Why Hivemall Algorithms News20.binary Classification Accuracy Perceptron 0.9460 Passive-Aggressive (a.k.a. Online-SVM) 0.9604 LibLinear 0.9636 LibSVM/TinySVM 0.9643 ConfidenceWeighted (CW) 0.9656 AROW [1] 0.9660 SCW [2] 0.9662 精度が 良い 4.最新のオンライン学習アルゴリズムを サポート(クラス分類) CWやその改良は賢いオンライン機械学習アルゴリズム 17 17 / 66
  • 18. ACM SIGMOD 日本支部第57回支部大会 CWの精度が何故よいか? 文章をpositiveかnegativeかに分類する二値分類 を想定してみる → 単語(特徴)ごとに重みを計算する I like this author Positive I like this author, but found this book dull Negative Label Feature Vector(特徴ベクトル) ナイーブな学習手法では重みを同様に更新する WlikeWdull CWでは重みごとに異なる更新を行う 18 18 / 66
  • 19. ACM SIGMOD 日本支部第57回支部大会 CWの精度が何故よいか? weight weight 重みを更新する 重みと確信度を 更新する 0.6 0.8 0.6 0.8 0.6 At this confidence, the weight is 0.5 共分散 (確信度) 0.5 19 19 / 66
  • 20. ACM SIGMOD 日本支部第57回支部大会 Why Hivemall 4.最新のオンライン学習アルゴリズムをサ ポート(クラス分類) •学習の収束速度が早い •確信度が十分な重みについては小さな 更新を行う •確信度が低い重みについては大きな更 新を行う(e.g., 学習の初期) •極少ないイテレーションで収束する 20 20 / 66
  • 21. 発表の構成 •What is Hivemall •Why Hivemall •What Hivemallcan do •How to use Hivemall •How Hivemallworks •イテレーションへの対処方法(Sparkと比較) •性能評価 •DEMO •Hivemallについてのまとめ •データベース屋から見た機械学習の研究課題 ACM SIGMOD 日本支部第57回支部大会 21 21 / 66
  • 22. ACM SIGMOD 日本支部第57回支部大会 What Hivemall can do •クラス分類(二値分類/多値分類) 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 22 22 / 66
  • 23. ACM SIGMOD 日本支部第57回支部大会 What Hivemall can do •K近傍法& レコメンデーション Minhashとb-Bit Minhash (LSH variant) 類似度に基づくK近傍探索(cosine similarity) •Feature engineering Feature hashing Feature scaling (normalization, z-score) TF-IDF vectorizer … 23 23 / 66
  • 24. ACM SIGMOD 日本支部第57回支部大会 How to use Hivemall Machine Learning Training Prediction Prediction Model Label Feature Vector Feature Vector Label Data preparation 24 24 / 66
  • 25. ACM SIGMOD 日本支部第57回支部大会 Create external table e2006tfidf_train ( rowidint, labelfloat, featuresARRAY<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でパース可能な)任意フォー マットのデータを利用可能 25 25 / 66
  • 26. ACM SIGMOD 日本支部第57回支部大会 How to use Hivemall Machine Learning Training Prediction Prediction Model Label Feature Vector Feature Vector Label Feature Engineering 26 26 / 66
  • 27. ACM SIGMOD 日本支部第57回支部大会 create viewe2006tfidf_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の範囲に変換 27 27 / 66
  • 28. ACM SIGMOD 日本支部第57回支部大会 How to use Hivemall Machine Learning Training Prediction Prediction Model Label Feature Vector Feature Vector Label Training 28 28 / 66
  • 29. ACM SIGMOD 日本支部第57回支部大会 How to use Hivemall -Training CREATE TABLE lr_modelAS 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側で並列に処理 29 29 / 66
  • 30. ACM SIGMOD 日本支部第57回支部大会 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による学習 投票に基づきPositiveor Negativeな 重みの平均 +0.7, +0.3, +0.2, -0.1, +0.7 CWクラス分類器による学習 30 30 / 66
  • 31. ACM SIGMOD 日本支部第57回支部大会 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でまとめる 31 31 / 66
  • 32. ACM SIGMOD 日本支部第57回支部大会 How to use Hivemall Machine Learning Training Prediction Prediction Model Label Feature Vector Feature Vector Label Prediction 32 32 / 66
  • 33. ACM SIGMOD 日本支部第57回支部大会 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によって行う 予測モデル全体をメモリに載せる必要がない 33 33 / 66
  • 34. 発表の構成 •What is Hivemall •Why Hivemall •What Hivemallcan do •How to use Hivemall •How Hivemallworks •イテレーションへの対処方法(Sparkと比較) •性能評価 •DEMO •Hivemallについてのまとめ •データベース屋から見た機械学習の研究課題 ACM SIGMOD 日本支部第57回支部大会 34 34 / 66
  • 35. ユーザ定義テーブル生成関数として機械学習を実装し ている ACM SIGMOD 日本支部第57回支部大会 Hivemallでどのように学習が行われるか +1, <1,2> .. +1, <1,7,9> -1, <1,3, 9> .. +1, <3,8> tuple <label, array<features>> tuple<feature, weights> Prediction model UDTF Relation <feature, weights> param-mix param-mix Training table Shuffle by feature train train Hiveのリレーショナル問合せ処 理エンジンに適している •結果として出力される予測モ デルは特徴とその重みから なるリレーション Embarrassingly parallel •Mapper数とreducer数はそれ ぞれ設定可能 Baggingと似た効果 分類器の学習結果のvarianceを 減らす(ランダムフォレストの決定木で過 学習が減るのと同様の理屈) 35 35 / 66
  • 36. ACM SIGMOD 日本支部第57回支部大会 train train +1, <1,2> .. +1, <1,7,9> -1, <1,3, 9> .. +1, <3,8> merge tuple <label, array<features > array<weight> array<sum of weight>, array<count> Training table Prediction model -1, <2,7, 9> .. +1, <3,8> final merge merge -1, <2,7, 9> .. +1, <3,8> train train array<weight> Why not UDAF 4 ops in parallel 2 ops in parallel No parallelism 機械学習を集約関数として実行するアプローチ Madlib、Bismarckなどの機械学習on RDBMSはこのアプローチ Final mergeがボトルネックになる Final mergeのFan-outによってスループットが律速される メモリ消費量 が増える 並列度が 下がる 36 36 / 66
  • 37. 如何に反復処理と向き合うか 機械学習ではよい予測精度を得るためには反復 処理が不可欠 •MapReduceはIN/OUTがHDFSを介すために反復処理には適 さない(注: Tezを利用した場合はHDFSのIN/OUTがスキップ可能) •Sparkはオンメモリ処理によって効率的に反復を扱う iter. 1 iter. 2 . . . Input HDFSread HDFSwrite HDFSread HDFSwrite iter. 1 iter. 2 Input ACM SIGMOD 日本支部第57回支部大会 37 37 / 66
  • 38. valdata = spark.textFile(...).map(readPoint).cache() for (i<-1 to ITERATIONS) { valgradient = data.map(p => (1 / (1 + exp(-p.y*(w dot p.x))) -1) * p.y* p.x ).reduce(_ + _) w-= gradient } 反復的なMapReduceで 勾配降下を行う 個々のノードで担当パーティ ションをメモリにキャッシュ これは単なるtoy example! Why? Sparkにおける反復学習 Logistic Regression example of Spark 勾配の計算に使う訓練例は反復ごとに異なるものを利用する 必要がある(そうしないと精度がでないし、より多くの反復が必要となる) ACM SIGMOD 日本支部第57回支部大会 38 38 / 66
  • 39. ACM SIGMOD 日本支部第57回支部大会 Spark Mllibでは実際どうなっている? Val data = .. for (i <-1 to numIterations) { valsampled = valgradient = w -= gradient } サンプリングを利用したMini-batch勾配降下法 それぞれのイテレーションではデータの一部だけを 利用するため、反復処理は学習の収束に不可欠 GradientDescent.scala bit.ly/spark-gd データのサブセットをサンプリング Spark MapReduceを利用してSampled[1..N]の勾配をN個のワー カで並列に計算してN個の予測モデルを構築し、N個のご予測モデルを マスターノードで(逐次的に)マージ Wは次のイテレーションで各ワーカに送信される 39 39 / 66
  • 40. Hivemallでどのように反復に対処? Hivemallでは、複数のMapReduce Jobを利用した反復 処理なしに機械学習における反復学習の効果をエミュ レートするためにamplifyUDTFを提供 SET hivevar:xtimes=3; CREATE VIEW training_x3 as SELECT * FROM( SELECT amplify(${xtimes}, *) as (rowid, label, features) FROM training ) t CLUSTER BY RANDOM ACM SIGMOD 日本支部第57回支部大会 入データを増幅してshuffleする 40 40 / 66
  • 41. Map-only shuffling and amplifying rand_amplifyUDTFはmapタスク内で入力され た訓練事例を増幅&shuffleする CREATE VIEWtraining_x3 as SELECT rand_amplify(${xtimes}, ${shufflebuffersize}, *) as (rowid, label, features) FROM training; ACM SIGMOD 日本支部第57回支部大会 41 41 / 66
  • 42. map-local shuffleを利用した場合の実行プラン … Shuffle (distributed by feature) Reduce task Merge Aggregate Reduce write Map task Table scan Rand Amplifier Map write LogressUDTF Partial aggregate Map task Table scan Rand Amplifier Map write LogressUDTF Partial aggregate Reduce task Merge Aggregate Reduce write スキャンされた行が 増幅されて バッファリングされて shuffleされる なお、このオペレータは パイプライン処理される Rand amplifierオペレータがテーブルスキャンオペレータと 学習を行うオペレータの間に挿入される ACM SIGMOD 日本支部第57回支部大会 42 42 / 66
  • 43. ACM SIGMOD 日本支部第57回支部大会 Method 実行時間(秒) AUC(予測精度) Plain 89.718 0.734805 amplifier+clusteredby(a.k.a.global shuffle) 479.855 0.746214 rand_amplifier(a.k.a. map-local shuffle) 116.424 0.743392 Amplifiersの性能への影響 map-local shuffleを利用することで受容可能な オーバヘッドで予測精度が向上 43 43 / 66
  • 44. 発表の構成 •What is Hivemall •Why Hivemall •What Hivemallcan do •How to use Hivemall •How Hivemallworks •イテレーションへの対処方法(Sparkと比較) •性能評価 •DEMO •Hivemallについてのまとめ •データベース屋から見た機械学習の研究課題 ACM SIGMOD 日本支部第57回支部大会 44 44 / 66
  • 45. 性能評価 Hivemallと最先端の機械学習フレームワークの 性能を比較 •比較対象 •Vowpal Wabbit、Bismarck、Spark 1.0 MLlib •データセット KDD Cup 2012, Track 2データセット 中国の検索エンジンプロバイダから提供された実データセット 機械学習のPublicなデータセットとしても最も大きい規模のもの •訓練データは2億レコード以上(33GB) •特徴数は5千万以上 •タスク 検索エンジン広告の広告クリックスルー率(CTR)推定 •テスト環境 33のコモディティサーバからなるインハウスのクラスタ •32ノードがHadoopのSlaveノード •個々のノードは8物理コアと24GBの主記憶からなる bit.ly/hivemall-kdd-dataset ACM SIGMOD 日本支部第57回支部大会 45 45 / 66
  • 46. ACM SIGMOD 日本支部第57回支部大会 116.4 596.67 493.81 755.24 465 0 100 200 300 400 500 600 700 800 Hivemall VW1 VW32 Bismarck Spark 1.0 0.64 0.66 0.68 0.7 0.72 0.74 0.76 Hivemall VW1 VW32 Bismarck スループット: 2.3 million tuples/sec on 32 nodes レイテンシ: 235 million records(33GB)の学習に2分以内 性能比較 予測性能(AUC) がよい 学習時間(秒) が短い 46 46 / 66
  • 47. DEMO ACM SIGMOD 日本支部第57回支部大会 47 WikipediaのJustice, Wisdom, Knowledgeエントリ のTF-IDF値を算出する 47 / 66
  • 48. ACM SIGMOD 日本支部第57回支部大会 48 TF-IDF vectorizer (1) 푡푓푖푑푓푡,푑=푡푓(푡,푑)∙푖푑푓(푡) 푖푑푓푡=log 푁 푑푓(푡) +1 文書d内のある単語tの出現頻度(term frequency) 푡푓(푡,푑) 単語tの文書頻度df(document frequency)の逆数 create temporary macro idf(df_t INT, n_docs INT) (log(10, CAST(n_docs as FLOAT)/max2(1,df_t)) + 1.0); create temporary macro tfidf(tf FLOAT, df_t INT, n_docs INT) tf * idf(dt_f, n_docs); TFを並列計算するUDAFとTF-IDFを計算するmacroを定義 48 / 66
  • 49. Docid, wordからなるTable/Viewを用意する ACM SIGMOD 日本支部第57回支部大会 49 TF-IDF vectorizer (2) create external table wikipage ( docid int, page string ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE; create or replace view wikipage_exploded as select docid, word from wikipage LATERAL VIEW explode(tokenize(page,true)) t as word where not is_stopword(word); 49 / 66 自分で形態素解析して用意してももちろんよい
  • 50. ACM SIGMOD 日本支部第57回支部大会 50 TF-IDF vectorizer (3) create or replace view term_frequency as select docid, word, freq from ( select docid, tf(word) as word2freq from wikipage_exploded group by docid ) t LATERAL VIEW explode(word2freq) t2 as word, freq; create or replace view document_frequency as select word, count(distinct docid) docs from wikipage_exploded group by word; TF, DFのビューを定義する 文書d内のある単語tの出現頻度 푡푓(푡,푑) 単語tの文書頻度 푑푓(푡) 50 / 66
  • 51. ACM SIGMOD 日本支部第57回支部大会 51 TF-IDF vectorizer (4) select tf.docid, tf.word, tfidf(tf.freq, df.docs, ${n_docs}) as tfidf from term_frequency tf JOIN document_frequency df ON (tf.word = df.word) order by tfidf desc; docid/wordごとのTF-IDF値をTF-IDF値の降順に 表示する 51 / 66
  • 52. ACM SIGMOD 日本支部第57回支部大会 ここまでのまとめ Hiveのユーザ定義関数またはユーザ定義テーブル 生成関数として実装されたオープンソースの機械学 習ライブラリ 利用が簡単 計算資源に対してスケールする Amazon EMRでも動作する 最先端のオンライン機械学習をサポート Spark SQLでの動作を検証予定 Apache Incubatorに提案予定 プロジェクトサイト: github.com/myui/hivemall or bit.ly/hivemall 是非Hivemallをご自身で評価ください 5分もあればクイックスタートは動かせるはずです 52 52 / 66
  • 53. 発表の構成 •What is Hivemall •Why Hivemall •What Hivemallcan do •How to use Hivemall •How Hivemallworks •イテレーションへの対処方法(Sparkと比較) •性能評価 •DEMO •Hivemallについてのまとめ •データベース屋から見た機械学習の研究課題 ACM SIGMOD 日本支部第57回支部大会 53 53 / 66
  • 54. •イテレーションの扱い •HaLoop、Twisterなど繰り返し処理向けにHadoopを改善する 既存研究多数 •機械学習のための宣言的言語 •SystemMLなど •M/RまたはDAGエンジンで機械学習処理を実行 •繰り返し処理の最適化機構(e.g., Loop-invariant code motion or 遅延評価) •学習途中のパラメタ交換 •AllReduce, Parameter Server •Stale Synchronous Parallel •GPUの利用 •BidMachなど ACM SIGMOD 日本支部第57回支部大会 54 データベース屋から見た並列処理の 機械学習の研究課題 54 / 66
  • 55. 機械学習におけるパラメタ交換 ACM SIGMOD 日本支部第57回支部大会 55 55 / 66
  • 56. 1.Parameter server •分散KVS等による分散共有メモリ機構 •MIXの単位:特徴ごと、通信の頻度:高い、同期処理のlatency:小 •ローカルにモデルを持たない、グローバルなモデルを全員が共有 •Variants •KVSに対して非同期または同期的に更新を行うもの •Stale Synchronous Parallelと呼ばれるBSPの同期制約を緩めたもの(on KVS) •グローバルなモデルは持たず、各ワーカのモデルをレプリケートするもの 2.Parameter mixing •MIX処理用のプロトコル.モデルは保持されない •MIXの単位:全ての特徴、通信の頻度:低(一定間隔EPOCHごと)、同期処 理のlatency:大 •各学習器がローカルなモデルを持つ •本来全ての特徴を交換する必要がないが,全てを交換するため冗長な計 算が発生 •Variants •AllReduce (a kind of BSP)、Butterfly mixing •ランダムにMIXでデータを集めるサーバを選択(Jubatus) 56 機械学習におけるパラメタ交換 ACM SIGMOD 日本支部第57回支部大会 56 / 66
  • 57. Parameter Server Stale Synchronous Parallel (SSP)Parameter Server, NIPS 2013. Bulk Synchronous Parallelの同期制約に緩めたもの ACM SIGMOD 日本支部第57回支部大会 57 http://www.cs.cmu.edu/~qho/ssp_nips2013.pdf より抜粋 57 / 66
  • 58. AllReduce ACM SIGMOD 日本支部第57回支部大会 58 http://cilvr.cs.nyu.edu/diglib/lsml/lecture04-allreduce.pdf より抜粋 58 / 66
  • 59. •Bulk-Synchronous Parallel(BSP)並みの硬い同期モ デル •タスクが早く終えたノードも他のノードの処理を待つ必要 がある •計算途中のノードの追加や離脱に対応できない •投機実行が扱えない •M/Rのタスクスロット以上のタスクに対応できない ACM SIGMOD 日本支部第57回支部大会 59 AllReduceの問題点 59 / 66
  • 60. 1.Parameter server •分散KVS等による分散共有メモリ機構 2.Parameter mixing •MIX処理ようのプロトコル.モデルは保持されない 3.Mixing Server (Hivemallで新規提案/採用) •parameter serverのように見えるが似て非なるもの •MIX用のプロトコルの一種 60 機械学習におけるパラメタ交換 ACM SIGMOD 日本支部第57回支部大会 60 / 66
  • 61. ・・・・・・ Model updates Asyncadd AVG/ArgminKLD 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 61 MIX Serverの概要 ACM SIGMOD 日本支部第57回支部大会 61 / 66
  • 62. Model updates Propagate every update asynchronously feature weight[] clock[] min covar total clock Diff=|total clock –local clock| total clock += lock clock Average accumulator feature sum mean div covar sum invcovar min covar total clock argminKL-divergence accumulator feature weight Covariance clock Mix serv. 62 最新の値を保持する パラメタサーバと異な り、モデル平均化処理 のためのaccumulator Global clockとlocal clockがズレてきたら ローカルモデルに平 均化処理した結果を 反映 ACM SIGMOD 日本支部第57回支部大会 62 / 66
  • 63. 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; ACM SIGMOD 日本支部第57回支部大会 63 MIX Serverの利用 このように学習器の呼び出しで Mix serverをオプション指定する 63 / 66
  • 64. Model Averaging Issues Model ServerA Server B ServerC weight 10.0 50.0 30.0 clock 2 4 3 Avg=sum weight/count=(10+50+30)/3=30 WeightedAvg=(10*2/9)+(50*4/9)+(30*3/9)=34.44.. Problem: AVG(μ) is argminEuclid distance, not considering covariance (a confidence parameter of weights) 64 Solution: argminKL-distance ACM SIGMOD 日本支部第57回支部大会 64 / 66
  • 65. DBと機械学習で境界領域で活躍してい る注目の研究者(1) スタンフォード大Christopher Ré教授 http://cs.stanford.edu/people/chrismre/ Hogwild: A lock-free approach to parallelizing stochastic gradient descent, Proc. NIPS, 2011.が有名.確率的勾配降下法の並列処 理を共有メモリ並列計算機上で効率的に行う手法 65 2014の発表: DimmWitted: A Study of Main-Memory Statistical Analytics. Proc. PVLDB, 2015. An Asynchronous Parallel Stochastic Coordinate Descent Algorithm. Proc. ICML 2014. Beyond Worst-case Analysis for Joins using Minesweeper. Proc. PODS 2014. Materialization Optimizations for Feature Selection. Proc. SIGMOD 2014. Best paper ACM SIGMOD 日本支部第57回支部大会 65 / 66
  • 66. DBと機械学習で境界領域で活躍してい る注目の研究者(2) カリフォルニア大学バークレー校John Canny教授 http://www.cs.berkeley.edu/~jfc/ CHIコミュニティで有名な先生(らしい)だが,近年 BIDMACHプロジェクトでButterfly MixingやKylixなどGPU を利用した機械学習処理で興味深い成果を挙げている 66 Kylix: A Sparse AllReduce for Commodity Clusters. Proc. Int. Conf. on Parallel Processing (ICPP) 2014. BIDMach: Large-scale Learning with Zero Memory Allocation. Proc. NIPS BigLearnWorkshop 2013. A Multi-Teraflop Constituency Parser using GPUs. Proc. EMNLP 2013. Big Data Analytics with Small Footprint: Squaring the Cloud. Proc. ACM KDD 2013. Butterfly Mixing: Accelerating Incremental-Update Algorithms on Clusters. Proc. SIAM Data Mining 2013. ACM SIGMOD 日本支部第57回支部大会 66 / 66