SlideShare ist ein Scribd-Unternehmen logo
1 von 42
Downloaden Sie, um offline zu lesen
独)産業技術総合研究所 情報技術研究部門
油井 誠
m.yui@aist.go.jp, @myui
Hivemall: Apache Hiveを用いたスケーラ
ブルな機械学習基盤
Hadoop Conference Japan 2014
English-version of this slide available on
bit.ly/hivemall-slide
1 / 42
発表の構成
• What is Hivemall
• Why Hivemall
• What Hivemall can do
• How to use Hivemall
• How Hivemall works
• イテレーションへの対処方法(Sparkと比較)
• 性能評価
• まとめ
Hadoop Conference Japan 2014
基本的にHadoop Summit 2014, San Jose
で喋った内容を踏襲しております
2 / 42
What is Hivemall
• Hiveのユーザ定義関数またはユーザ定義テーブル
生成関数として実装された機械学習ライブラリ
• クラス分類と回帰分析
• 推薦
• K近傍探索
.. and more
• オープンソースプロジェクト
• LGPLライセンス
• github.com/myui/hivemall (bit.ly/hivemall)
• コントリビュータは現在4人
Hadoop Conference Japan 2014
3 / 42
リリースへの反応
Hadoop Conference Japan 2014
4 / 42
リリースへの反応
Hadoop Conference Japan 2014
5 / 42
Hadoop Conference Japan 2014
Motivation – 何故新しい機械学習基盤?
Mahout?
Vowpal Wabbit?
(w/ Hadoop streaming)
Spark MLlib?
0xdata H2O? Cloudera Oryx?
既に巷にあるHadoopと協調動作する機械学習
フレームワーク
Quick Poll:
現在いずれかのレームワークを使っていますか?
6 / 42
Framework User interface
Mahout Java API プログラミング
Spark MLlib/MLI Scala API プログラミング
Scala Shell (REPL)
H2O R プログラミング
GUI
Cloudera Oryx Http REST API プログラミング
Vowpal Wabbit
(w/ Hadoop streaming)
C++ API プログラミング
コマンドライン
Hadoop Conference Japan 2014
Motivation – 何故新しい機械学習基盤?
既存の分散機械学習フレームワークは利用するの
にプログラミングが必要で敷居が高い
7 / 42
Hadoop Conference Japan 2014
Mahoutを利用したクラス分類
org/apache/mahout/classifier/sgd/TrainNewsGroups.java
Find the complete code at
bit.ly/news20-mahout
8 / 42
Hadoop Conference Japan 2014
Why Hivemall
1. 利用が簡単
• プログラミング不要
• 全ての機械学習のステップがHiveQLクエリで完結
• コンパイルやパッケージングが不要
• 既存Hiveユーザにフレンドリー
• 5分もあればHivemallの簡易例を実行可能
• インストールは次のとおり簡単
9 / 42
Hadoop Conference Japan 2014
Why Hivemall
2. データに対してスケーラブル
• 訓練事例/テスト事例の数に対してスケーラブ
ル
• 特徴数に対してスケーラブル
• Feature hashingと呼ばれるテクニックによる特徴数
の削減をサポート
• 学習モデルのサイズに対してスケーラブル
• 200ラベル* 1億の特徴 ⇒ 150GBのメモリが必要
• Hivemallは学習時やテスト時に予測モデル全体がメ
モリに収まる必要がない
• 特徴エンジニアリングに関してもHiveを利用した
並列処理によってスケーラブルに実行可能
10 / 42
Hadoop Conference Japan 2014
Why Hivemall
3. 計算資源に対してスケーラブル
• HadoopとHiveの利点を活用
• Amazon Elastic MapReduce(EMR)によ
る機械学習サービスのProvisioningが
可能
➞ EMRのHive環境にHivemallを自動セット
アップするEMR bootstrapを用意している
Find an example on
bit.ly/hivemall-emr
11 / 42
Hadoop Conference Japan 2014
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
12 / 42
Hadoop Conference Japan 2014
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
Confidence Weighted (CW) 0.9656
AROW [1] 0.9660
SCW [2] 0.9662
精度が
良い
4. 最新のオンライン学習アルゴリズムを
サポート(クラス分類)
CWやその改良は賢いオンライン機械学習アルゴリズム
13 / 42
Hadoop Conference Japan 2014
CWの精度が何故よいか?
文章をpositiveかnegativeかに分類する二値分類
を想定してみる
→ 単語(特徴)ごとに重みを計算する
I like this authorPositive
I like this author, but found this book dullNegative
Label Feature Vector(特徴ベクトル)
ナイーブな学習手法では重み を同様に更新するWlike Wdull
CWでは重みごとに異なる更新を行う
14 / 42
Hadoop Conference Japan 2014
CWの精度が何故よいか?
weight
weight
重みを更新する
重みと確信度を
更新する
0.6 0.80.6
0.80.6
At this confidence,
the weight is 0.5
共分散
(確信度)
0.5
15 / 42
Hadoop Conference Japan 2014
Why Hivemall
4. 最新のオンライン学習アルゴリズムをサ
ポート(クラス分類)
• 学習の収束速度が早い
• 確信度が十分な重みについては小さな
更新を行う
• 確信度が低い重みについては大きな更
新を行う (e.g., 学習の初期)
• 極少ないイテレーションで収束する
16 / 42
発表の構成
• What is Hivemall
• Why Hivemall
• What Hivemall can do
• How to use Hivemall
• How Hivemall works
• イテレーションへの対処方法(Sparkと比較)
• 性能評価
• まとめ
Hadoop Conference Japan 2014
17 / 42
Hadoop Conference Japan 2014
What Hivemall can do
• クラス分類(二値分類/多値分類)
 Perceptron
 Passive Aggressive (PA)
 Confidence Weighted (CW)
 Adaptive Regularization of Weight Vectors (AROW)
 Soft Confidence Weighted (SCW)
• 回帰分析
 確率的勾配降下法に基づくロジスティック回帰
 PA Regression
 AROW Regression
• K近傍法 & レコメンデーション
 Minhashとb-Bit Minhash (LSH variant)
 類似度に基づくK近傍探索(cosine similarity)
• Feature engineering
 Feature hashing
 Feature scaling (normalization, z-score)
18 / 42
Hadoop Conference Japan 2014
How to use Hivemall
Machine
Learning
Training
Prediction
Prediction
Model
Label
Feature Vector
Feature Vector
Label
Data preparation
19 / 42
Hadoop Conference Japan 2014
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でパース可能な)任意フォー
マットのデータを利用可能
20 / 42
Hadoop Conference Japan 2014
How to use Hivemall
Machine
Learning
Training
Prediction
Prediction
Model
Label
Feature Vector
Feature Vector
Label
Feature Engineering
21 / 42
Hadoop Conference Japan 2014
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の範囲に変換
22 / 42
Hadoop Conference Japan 2014
How to use Hivemall
Machine
Learning
Training
Prediction
Prediction
Model
Label
Feature Vector
Feature Vector
Label
Training
23 / 42
Hadoop Conference Japan 2014
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側で並列に処理
24 / 42
Hadoop Conference Japan 2014
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クラス分類器による学習
25 / 42
Hadoop Conference Japan 2014
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でまとめる
26 / 42
Hadoop Conference Japan 2014
How to use Hivemall
Machine
Learning
Training
Prediction
Prediction
Model
Label
Feature Vector
Feature Vector
Label
Prediction
27 / 42
Hadoop Conference Japan 2014
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によって行う
予測モデル全体をメモリに載せる必要がない
28 / 42
発表の構成
• What is Hivemall
• Why Hivemall
• What Hivemall can do
• How to use Hivemall
• How Hivemall works
• イテレーションへの対処方法(Sparkと比較)
• 性能評価
• まとめ
Hadoop Conference Japan 2014
29 / 42
ユーザ定義テーブル生成関数として機械学習を実装し
ている
Hadoop Conference Japan 2014
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を
減らす(ランダムフォレストの決定木で過
学習が減るのと同様の理屈)
30 / 42
Hadoop Conference Japan 2014
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によってスループットが律速される
メモリ消費量
が増える
並列度が
下がる
31 / 42
如何に反復処理と向き合うか
機械学習ではよい予測精度を得るためには反復
処理が不可欠
• MapReduceはIN/OUTがHDFSを介すために反復処理には適
さない(注: Tezを利用した場合はHDFSのIN/OUTがスキップ可能)
• Sparkはオンメモリ処理によって効率的に反復を扱う
iter. 1 iter. 2 . . .
Input
HDFS
read
HDFS
write
HDFS
read
HDFS
write
iter. 1 iter. 2
Input
Hadoop Conference Japan 2014
32 / 42
val data = spark.textFile(...).map(readPoint).cache()
for (i <- 1 to ITERATIONS) {
val gradient = 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
勾配の計算に使う訓練例は反復ごとに異なるものを利用する
必要がある(そうしないと精度がでないし、より多くの反復が必要となる)
Hadoop Conference Japan 2014
33 / 42
Hadoop Conference Japan 2014
Spark Mllibでは実際どうなっている?
Val data = ..
for (i <- 1 to numIterations) {
val sampled =
val gradient =
w -= gradient
}
サンプリングを利用したMini-batch勾配降下法
それぞれのイテレーションではデータの一部だけを
利用するため、反復処理は学習の収束に不可欠
GradientDescent.scala
bit.ly/spark-gd
データのサブセットをサンプリング
Spark MapReduceを利用してSampled[1..N]の勾配をN個のワー
カで並列に計算してN個の予測モデルを構築し、N個のご予測モデルを
マスターノードで(逐次的に)マージ
34 / 42
Wは次のイテレーションで各ワーカに送信される
Hivemallでどのように反復に対処?
Hivemallでは、複数のMapReduce Jobを利用した反復
処理なしに機械学習における反復学習の効果をエミュ
レートするためにamplify UDTFを提供
SET hivevar:xtimes=3;
CREATE VIEW training_x3
as
SELECT
*
FROM (
SELECT
amplify(${xtimes}, *) as (rowid, label, features)
FROM
training
) t
CLUSTER BY RANDOM
Hadoop Conference Japan 2014
入力データを増幅してshuffleする
35 / 42
Map-only shuffling and amplifying
rand_amplify UDTFはmapタスク内で入力され
た訓練事例を増幅&shuffleする
CREATE VIEW training_x3
as
SELECT
rand_amplify(${xtimes}, ${shufflebuffersize}, *)
as (rowid, label, features)
FROM
training;
Hadoop Conference Japan 2014
36 / 42
map-local shuffleを利用した場合の実行プラン
…
Shuffle
(distributed by feature)
Reducetask
Merge
Aggregate
Reduce write
Maptask
Table scan
Rand Amplifier
Map write
Logress UDTF
Partial aggregate
Maptask
Table scan
Rand Amplifier
Map write
Logress UDTF
Partial aggregate
Reducetask
Merge
Aggregate
Reduce write
スキャンされた行が
増幅されて
バッファリングされて
shuffleされる
なお、このオペレータは
パイプライン処理される
Rand amplifierオペレータがテーブルスキャンオペレータと
学習を行うオペレータの間に挿入される
Hadoop Conference Japan 2014
37 / 42
Hadoop Conference Japan 2014
Method 実行時間(秒)
AUC
(予測精度)
Plain 89.718 0.734805
amplifier+clustered by
(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を利用することで受容可能な
オーバヘッドで予測精度が向上
38 / 42
発表の構成
• What is Hivemall
• Why Hivemall
• What Hivemall can do
• How to use Hivemall
• How Hivemall works
• イテレーションへの対処方法(Sparkと比較)
• 性能評価
• まとめ
Hadoop Conference Japan 2014
39 / 42
性能評価
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
Hadoop Conference Japan 2014
40 / 42
Hadoop Conference Japan 2014
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)
がよい
学習時間(秒)
が短い
41 / 42
Hadoop Conference Japan 2014
本日のまとめ
Hiveのユーザ定義関数またはユーザ定義テーブル
生成関数として実装されたオープンソースの機械学
習ライブラリ
 利用が簡単
 計算資源に対してスケールする
 Amazon EMRでも動作する
 最先端のオンライン機械学習をサポート
 Spark SQLでの動作を検証予定
 Apache Incubator化(するかも?) コントリビュータ募集
プロジェクトサイト:
github.com/myui/hivemall or bit.ly/hivemall
最後に: 是非Hivemallをご自身で評価ください
5分もあればクイックスタートは動かせるはずです 
Slide available on
bit.ly/hcj14-hivemall
42 / 42

Weitere ähnliche Inhalte

Was ist angesagt?

第2回 R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜相関分析による需要予測編〜
第2回 R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜相関分析による需要予測編〜第2回 R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜相関分析による需要予測編〜
第2回 R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜相関分析による需要予測編〜Yasuyuki Sugai
 
性能測定道 事始め編
性能測定道 事始め編性能測定道 事始め編
性能測定道 事始め編Yuto Hayamizu
 
Azure Machine Learning services 2019年6月版
Azure Machine Learning services 2019年6月版Azure Machine Learning services 2019年6月版
Azure Machine Learning services 2019年6月版Daiyu Hatakeyama
 
レコメンドバッチ高速化に向けたSpark/MapReduceの機械学習ライブラリ比較検証
レコメンドバッチ高速化に向けたSpark/MapReduceの機械学習ライブラリ比較検証レコメンドバッチ高速化に向けたSpark/MapReduceの機械学習ライブラリ比較検証
レコメンドバッチ高速化に向けたSpark/MapReduceの機械学習ライブラリ比較検証Recruit Technologies
 
Treasure Data × Wave Analytics EC Demo
Treasure Data × Wave Analytics EC DemoTreasure Data × Wave Analytics EC Demo
Treasure Data × Wave Analytics EC DemoTakahiro Inoue
 
R超入門機械学習をはじめよう
R超入門機械学習をはじめようR超入門機械学習をはじめよう
R超入門機械学習をはじめよう幹雄 小川
 
Spark/MapReduceの 機械学習ライブラリ比較検証
Spark/MapReduceの 機械学習ライブラリ比較検証Spark/MapReduceの 機械学習ライブラリ比較検証
Spark/MapReduceの 機械学習ライブラリ比較検証Recruit Technologies
 
Sparkでレコメンドエンジンを作ってみた
Sparkでレコメンドエンジンを作ってみたSparkでレコメンドエンジンを作ってみた
Sparkでレコメンドエンジンを作ってみたfujita_s
 
ML Pipelineで実践機械学習
ML Pipelineで実践機械学習ML Pipelineで実践機械学習
ML Pipelineで実践機械学習Kazuki Taniguchi
 
R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜機会学習・データビジュアライゼーション事始め〜
R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜機会学習・データビジュアライゼーション事始め〜R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜機会学習・データビジュアライゼーション事始め〜
R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜機会学習・データビジュアライゼーション事始め〜Yasuyuki Sugai
 
データ分析チームの振り返り
データ分析チームの振り返りデータ分析チームの振り返り
データ分析チームの振り返りSatoshi Noto
 
SparkMLlibで始めるビッグデータを対象とした機械学習入門
SparkMLlibで始めるビッグデータを対象とした機械学習入門SparkMLlibで始めるビッグデータを対象とした機械学習入門
SparkMLlibで始めるビッグデータを対象とした機械学習入門Takeshi Mikami
 
Spark MLlibでリコメンドエンジンを作った話
Spark MLlibでリコメンドエンジンを作った話Spark MLlibでリコメンドエンジンを作った話
Spark MLlibでリコメンドエンジンを作った話Koki Shibata
 
Inspection of CloudML Hyper Parameter Tuning
Inspection of CloudML Hyper Parameter TuningInspection of CloudML Hyper Parameter Tuning
Inspection of CloudML Hyper Parameter Tuningnagachika t
 

Was ist angesagt? (15)

第2回 R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜相関分析による需要予測編〜
第2回 R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜相関分析による需要予測編〜第2回 R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜相関分析による需要予測編〜
第2回 R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜相関分析による需要予測編〜
 
性能測定道 事始め編
性能測定道 事始め編性能測定道 事始め編
性能測定道 事始め編
 
Azure Machine Learning services 2019年6月版
Azure Machine Learning services 2019年6月版Azure Machine Learning services 2019年6月版
Azure Machine Learning services 2019年6月版
 
レコメンドバッチ高速化に向けたSpark/MapReduceの機械学習ライブラリ比較検証
レコメンドバッチ高速化に向けたSpark/MapReduceの機械学習ライブラリ比較検証レコメンドバッチ高速化に向けたSpark/MapReduceの機械学習ライブラリ比較検証
レコメンドバッチ高速化に向けたSpark/MapReduceの機械学習ライブラリ比較検証
 
Treasure Data × Wave Analytics EC Demo
Treasure Data × Wave Analytics EC DemoTreasure Data × Wave Analytics EC Demo
Treasure Data × Wave Analytics EC Demo
 
R超入門機械学習をはじめよう
R超入門機械学習をはじめようR超入門機械学習をはじめよう
R超入門機械学習をはじめよう
 
Spark/MapReduceの 機械学習ライブラリ比較検証
Spark/MapReduceの 機械学習ライブラリ比較検証Spark/MapReduceの 機械学習ライブラリ比較検証
Spark/MapReduceの 機械学習ライブラリ比較検証
 
Sparkでレコメンドエンジンを作ってみた
Sparkでレコメンドエンジンを作ってみたSparkでレコメンドエンジンを作ってみた
Sparkでレコメンドエンジンを作ってみた
 
ML Pipelineで実践機械学習
ML Pipelineで実践機械学習ML Pipelineで実践機械学習
ML Pipelineで実践機械学習
 
R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜機会学習・データビジュアライゼーション事始め〜
R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜機会学習・データビジュアライゼーション事始め〜R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜機会学習・データビジュアライゼーション事始め〜
R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜機会学習・データビジュアライゼーション事始め〜
 
What makes Apache Spark?
What makes Apache Spark?What makes Apache Spark?
What makes Apache Spark?
 
データ分析チームの振り返り
データ分析チームの振り返りデータ分析チームの振り返り
データ分析チームの振り返り
 
SparkMLlibで始めるビッグデータを対象とした機械学習入門
SparkMLlibで始めるビッグデータを対象とした機械学習入門SparkMLlibで始めるビッグデータを対象とした機械学習入門
SparkMLlibで始めるビッグデータを対象とした機械学習入門
 
Spark MLlibでリコメンドエンジンを作った話
Spark MLlibでリコメンドエンジンを作った話Spark MLlibでリコメンドエンジンを作った話
Spark MLlibでリコメンドエンジンを作った話
 
Inspection of CloudML Hyper Parameter Tuning
Inspection of CloudML Hyper Parameter TuningInspection of CloudML Hyper Parameter Tuning
Inspection of CloudML Hyper Parameter Tuning
 

Andere mochten auch

Mahoutによるアルツハイマー診断支援へ向けた取り組み (Hadoop Confernce Japan 2014)
Mahoutによるアルツハイマー診断支援へ向けた取り組み (Hadoop Confernce Japan 2014)Mahoutによるアルツハイマー診断支援へ向けた取り組み (Hadoop Confernce Japan 2014)
Mahoutによるアルツハイマー診断支援へ向けた取り組み (Hadoop Confernce Japan 2014)Hadoop / Spark Conference Japan
 
「PV、UBなどの数値からでは見えてこないユーザー行動の可視化」#yjdsw2
「PV、UBなどの数値からでは見えてこないユーザー行動の可視化」#yjdsw2「PV、UBなどの数値からでは見えてこないユーザー行動の可視化」#yjdsw2
「PV、UBなどの数値からでは見えてこないユーザー行動の可視化」#yjdsw2Yahoo!デベロッパーネットワーク
 
FluentdやNorikraを使った データ集約基盤への取り組み紹介
FluentdやNorikraを使った データ集約基盤への取り組み紹介FluentdやNorikraを使った データ集約基盤への取り組み紹介
FluentdやNorikraを使った データ集約基盤への取り組み紹介Recruit Technologies
 
Hadoopカンファレンス20140707
Hadoopカンファレンス20140707Hadoopカンファレンス20140707
Hadoopカンファレンス20140707Recruit Technologies
 
Treasure Data on The YARN - Hadoop Conference Japan 2014
Treasure Data on The YARN - Hadoop Conference Japan 2014Treasure Data on The YARN - Hadoop Conference Japan 2014
Treasure Data on The YARN - Hadoop Conference Japan 2014Ryu Kobayashi
 
実践機械学習 — MahoutとSolrを活用したレコメンデーションにおけるイノベーション - 2014/07/08 Hadoop Conference ...
実践機械学習 — MahoutとSolrを活用したレコメンデーションにおけるイノベーション - 2014/07/08 Hadoop Conference ...実践機械学習 — MahoutとSolrを活用したレコメンデーションにおけるイノベーション - 2014/07/08 Hadoop Conference ...
実践機械学習 — MahoutとSolrを活用したレコメンデーションにおけるイノベーション - 2014/07/08 Hadoop Conference ...MapR Technologies Japan
 
Shib: WebUI tool provides crossover of Hive and MPP
Shib: WebUI tool provides crossover of Hive and MPPShib: WebUI tool provides crossover of Hive and MPP
Shib: WebUI tool provides crossover of Hive and MPPSATOSHI TAGOMORI
 

Andere mochten auch (9)

Mahoutによるアルツハイマー診断支援へ向けた取り組み (Hadoop Confernce Japan 2014)
Mahoutによるアルツハイマー診断支援へ向けた取り組み (Hadoop Confernce Japan 2014)Mahoutによるアルツハイマー診断支援へ向けた取り組み (Hadoop Confernce Japan 2014)
Mahoutによるアルツハイマー診断支援へ向けた取り組み (Hadoop Confernce Japan 2014)
 
「最近傍検索とその応用」#yjdsw2
「最近傍検索とその応用」#yjdsw2「最近傍検索とその応用」#yjdsw2
「最近傍検索とその応用」#yjdsw2
 
Gwt sdm public
Gwt sdm publicGwt sdm public
Gwt sdm public
 
「PV、UBなどの数値からでは見えてこないユーザー行動の可視化」#yjdsw2
「PV、UBなどの数値からでは見えてこないユーザー行動の可視化」#yjdsw2「PV、UBなどの数値からでは見えてこないユーザー行動の可視化」#yjdsw2
「PV、UBなどの数値からでは見えてこないユーザー行動の可視化」#yjdsw2
 
FluentdやNorikraを使った データ集約基盤への取り組み紹介
FluentdやNorikraを使った データ集約基盤への取り組み紹介FluentdやNorikraを使った データ集約基盤への取り組み紹介
FluentdやNorikraを使った データ集約基盤への取り組み紹介
 
Hadoopカンファレンス20140707
Hadoopカンファレンス20140707Hadoopカンファレンス20140707
Hadoopカンファレンス20140707
 
Treasure Data on The YARN - Hadoop Conference Japan 2014
Treasure Data on The YARN - Hadoop Conference Japan 2014Treasure Data on The YARN - Hadoop Conference Japan 2014
Treasure Data on The YARN - Hadoop Conference Japan 2014
 
実践機械学習 — MahoutとSolrを活用したレコメンデーションにおけるイノベーション - 2014/07/08 Hadoop Conference ...
実践機械学習 — MahoutとSolrを活用したレコメンデーションにおけるイノベーション - 2014/07/08 Hadoop Conference ...実践機械学習 — MahoutとSolrを活用したレコメンデーションにおけるイノベーション - 2014/07/08 Hadoop Conference ...
実践機械学習 — MahoutとSolrを活用したレコメンデーションにおけるイノベーション - 2014/07/08 Hadoop Conference ...
 
Shib: WebUI tool provides crossover of Hive and MPP
Shib: WebUI tool provides crossover of Hive and MPPShib: WebUI tool provides crossover of Hive and MPP
Shib: WebUI tool provides crossover of Hive and MPP
 

Ähnlich wie Hcj2014 myui

TokyoWebminig カジュアルなHadoop
TokyoWebminig カジュアルなHadoopTokyoWebminig カジュアルなHadoop
TokyoWebminig カジュアルなHadoopTeruo Kawasaki
 
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]David Buck
 
Hadoopトレーニング番外編 〜間違えられやすいHadoopの7つの仕様〜
Hadoopトレーニング番外編 〜間違えられやすいHadoopの7つの仕様〜Hadoopトレーニング番外編 〜間違えられやすいHadoopの7つの仕様〜
Hadoopトレーニング番外編 〜間違えられやすいHadoopの7つの仕様〜Cloudera Japan
 
#jjug_ccc #ccc_f1 広告システム刷新の舞台裏 - PHPからJavaに変えてみました
#jjug_ccc #ccc_f1 広告システム刷新の舞台裏 - PHPからJavaに変えてみました#jjug_ccc #ccc_f1 広告システム刷新の舞台裏 - PHPからJavaに変えてみました
#jjug_ccc #ccc_f1 広告システム刷新の舞台裏 - PHPからJavaに変えてみましたYahoo!デベロッパーネットワーク
 
OCL in Papyrus Introduction
OCL in Papyrus IntroductionOCL in Papyrus Introduction
OCL in Papyrus IntroductionAkira Tanaka
 
Rails初心者レッスン lesson4 2edition
Rails初心者レッスン lesson4 2editionRails初心者レッスン lesson4 2edition
Rails初心者レッスン lesson4 2editionSatomi Tsujita
 
【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例
【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例
【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例LIFULL Co., Ltd.
 
20150131 ChugokuDB-Shimane-MySQL
20150131 ChugokuDB-Shimane-MySQL20150131 ChugokuDB-Shimane-MySQL
20150131 ChugokuDB-Shimane-MySQLRyusuke Kajiyama
 
【de:code 2020】 アマダの Azure への取り組みと DevOPS・MLOPS 環境の構築と運用
【de:code 2020】 アマダの Azure への取り組みと DevOPS・MLOPS 環境の構築と運用【de:code 2020】 アマダの Azure への取り組みと DevOPS・MLOPS 環境の構築と運用
【de:code 2020】 アマダの Azure への取り組みと DevOPS・MLOPS 環境の構築と運用日本マイクロソフト株式会社
 
最新版Hadoopクラスタを運用して得られたもの
最新版Hadoopクラスタを運用して得られたもの最新版Hadoopクラスタを運用して得られたもの
最新版Hadoopクラスタを運用して得られたものcyberagent
 
今、最も勢いのあるWebフレームワーク「fuel php」
今、最も勢いのあるWebフレームワーク「fuel php」今、最も勢いのあるWebフレームワーク「fuel php」
今、最も勢いのあるWebフレームワーク「fuel php」Soudai Sone
 
分散処理基盤ApacheHadoop入門とHadoopエコシステムの最新技術動向(OSC2015 Kansai発表資料)
分散処理基盤ApacheHadoop入門とHadoopエコシステムの最新技術動向(OSC2015 Kansai発表資料)分散処理基盤ApacheHadoop入門とHadoopエコシステムの最新技術動向(OSC2015 Kansai発表資料)
分散処理基盤ApacheHadoop入門とHadoopエコシステムの最新技術動向(OSC2015 Kansai発表資料)NTT DATA OSS Professional Services
 
Apache drillを業務利用してみる(までの道のり)
Apache drillを業務利用してみる(までの道のり)Apache drillを業務利用してみる(までの道のり)
Apache drillを業務利用してみる(までの道のり)Keigo Suda
 
[D22] Pivotal HD 2.0 -業界最高レベルSQL on Hadoop技術「HAWQ」解説- by Masayuki Matsushita
[D22] Pivotal HD 2.0 -業界最高レベルSQL on Hadoop技術「HAWQ」解説- by Masayuki Matsushita[D22] Pivotal HD 2.0 -業界最高レベルSQL on Hadoop技術「HAWQ」解説- by Masayuki Matsushita
[D22] Pivotal HD 2.0 -業界最高レベルSQL on Hadoop技術「HAWQ」解説- by Masayuki MatsushitaInsight Technology, Inc.
 
Developr Camp 2012 Japan Fall Day1 Session2 Visual Studio 2012 価値を提供し続けるための真の...
Developr Camp 2012 Japan Fall Day1 Session2 Visual Studio 2012 価値を提供し続けるための真の...Developr Camp 2012 Japan Fall Day1 Session2 Visual Studio 2012 価値を提供し続けるための真の...
Developr Camp 2012 Japan Fall Day1 Session2 Visual Studio 2012 価値を提供し続けるための真の...Developer Camp 2012 Japan Fall
 
Open stack reference architecture v1 2
Open stack reference architecture v1 2Open stack reference architecture v1 2
Open stack reference architecture v1 2Dell TechCenter Japan
 
Reco choku tech night #09 -reinvent2018報告会-
Reco choku tech night #09 -reinvent2018報告会-Reco choku tech night #09 -reinvent2018報告会-
Reco choku tech night #09 -reinvent2018報告会-recotech
 
WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料Recruit Technologies
 
オラクル・データベース・クラウド~さらなる進化のご紹介(Oracle Cloud Days Tokyo 2015)
オラクル・データベース・クラウド~さらなる進化のご紹介(Oracle Cloud Days Tokyo 2015)オラクル・データベース・クラウド~さらなる進化のご紹介(Oracle Cloud Days Tokyo 2015)
オラクル・データベース・クラウド~さらなる進化のご紹介(Oracle Cloud Days Tokyo 2015)オラクルエンジニア通信
 

Ähnlich wie Hcj2014 myui (20)

TokyoWebminig カジュアルなHadoop
TokyoWebminig カジュアルなHadoopTokyoWebminig カジュアルなHadoop
TokyoWebminig カジュアルなHadoop
 
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
 
Hadoopトレーニング番外編 〜間違えられやすいHadoopの7つの仕様〜
Hadoopトレーニング番外編 〜間違えられやすいHadoopの7つの仕様〜Hadoopトレーニング番外編 〜間違えられやすいHadoopの7つの仕様〜
Hadoopトレーニング番外編 〜間違えられやすいHadoopの7つの仕様〜
 
#jjug_ccc #ccc_f1 広告システム刷新の舞台裏 - PHPからJavaに変えてみました
#jjug_ccc #ccc_f1 広告システム刷新の舞台裏 - PHPからJavaに変えてみました#jjug_ccc #ccc_f1 広告システム刷新の舞台裏 - PHPからJavaに変えてみました
#jjug_ccc #ccc_f1 広告システム刷新の舞台裏 - PHPからJavaに変えてみました
 
OCL in Papyrus Introduction
OCL in Papyrus IntroductionOCL in Papyrus Introduction
OCL in Papyrus Introduction
 
Rails初心者レッスン lesson4 2edition
Rails初心者レッスン lesson4 2editionRails初心者レッスン lesson4 2edition
Rails初心者レッスン lesson4 2edition
 
【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例
【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例
【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例
 
20150131 ChugokuDB-Shimane-MySQL
20150131 ChugokuDB-Shimane-MySQL20150131 ChugokuDB-Shimane-MySQL
20150131 ChugokuDB-Shimane-MySQL
 
Oracle Database 12c Release 1 PSR 12.1.0.2 のご紹介
Oracle Database 12c Release 1 PSR 12.1.0.2 のご紹介Oracle Database 12c Release 1 PSR 12.1.0.2 のご紹介
Oracle Database 12c Release 1 PSR 12.1.0.2 のご紹介
 
【de:code 2020】 アマダの Azure への取り組みと DevOPS・MLOPS 環境の構築と運用
【de:code 2020】 アマダの Azure への取り組みと DevOPS・MLOPS 環境の構築と運用【de:code 2020】 アマダの Azure への取り組みと DevOPS・MLOPS 環境の構築と運用
【de:code 2020】 アマダの Azure への取り組みと DevOPS・MLOPS 環境の構築と運用
 
最新版Hadoopクラスタを運用して得られたもの
最新版Hadoopクラスタを運用して得られたもの最新版Hadoopクラスタを運用して得られたもの
最新版Hadoopクラスタを運用して得られたもの
 
今、最も勢いのあるWebフレームワーク「fuel php」
今、最も勢いのあるWebフレームワーク「fuel php」今、最も勢いのあるWebフレームワーク「fuel php」
今、最も勢いのあるWebフレームワーク「fuel php」
 
分散処理基盤ApacheHadoop入門とHadoopエコシステムの最新技術動向(OSC2015 Kansai発表資料)
分散処理基盤ApacheHadoop入門とHadoopエコシステムの最新技術動向(OSC2015 Kansai発表資料)分散処理基盤ApacheHadoop入門とHadoopエコシステムの最新技術動向(OSC2015 Kansai発表資料)
分散処理基盤ApacheHadoop入門とHadoopエコシステムの最新技術動向(OSC2015 Kansai発表資料)
 
Apache drillを業務利用してみる(までの道のり)
Apache drillを業務利用してみる(までの道のり)Apache drillを業務利用してみる(までの道のり)
Apache drillを業務利用してみる(までの道のり)
 
[D22] Pivotal HD 2.0 -業界最高レベルSQL on Hadoop技術「HAWQ」解説- by Masayuki Matsushita
[D22] Pivotal HD 2.0 -業界最高レベルSQL on Hadoop技術「HAWQ」解説- by Masayuki Matsushita[D22] Pivotal HD 2.0 -業界最高レベルSQL on Hadoop技術「HAWQ」解説- by Masayuki Matsushita
[D22] Pivotal HD 2.0 -業界最高レベルSQL on Hadoop技術「HAWQ」解説- by Masayuki Matsushita
 
Developr Camp 2012 Japan Fall Day1 Session2 Visual Studio 2012 価値を提供し続けるための真の...
Developr Camp 2012 Japan Fall Day1 Session2 Visual Studio 2012 価値を提供し続けるための真の...Developr Camp 2012 Japan Fall Day1 Session2 Visual Studio 2012 価値を提供し続けるための真の...
Developr Camp 2012 Japan Fall Day1 Session2 Visual Studio 2012 価値を提供し続けるための真の...
 
Open stack reference architecture v1 2
Open stack reference architecture v1 2Open stack reference architecture v1 2
Open stack reference architecture v1 2
 
Reco choku tech night #09 -reinvent2018報告会-
Reco choku tech night #09 -reinvent2018報告会-Reco choku tech night #09 -reinvent2018報告会-
Reco choku tech night #09 -reinvent2018報告会-
 
WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料
 
オラクル・データベース・クラウド~さらなる進化のご紹介(Oracle Cloud Days Tokyo 2015)
オラクル・データベース・クラウド~さらなる進化のご紹介(Oracle Cloud Days Tokyo 2015)オラクル・データベース・クラウド~さらなる進化のご紹介(Oracle Cloud Days Tokyo 2015)
オラクル・データベース・クラウド~さらなる進化のご紹介(Oracle Cloud Days Tokyo 2015)
 

Mehr von Makoto Yui

Apache Hivemall and my OSS experience
Apache Hivemall and my OSS experienceApache Hivemall and my OSS experience
Apache Hivemall and my OSS experienceMakoto Yui
 
Introduction to Apache Hivemall v0.5.2 and v0.6
Introduction to Apache Hivemall v0.5.2 and v0.6Introduction to Apache Hivemall v0.5.2 and v0.6
Introduction to Apache Hivemall v0.5.2 and v0.6Makoto Yui
 
Introduction to Apache Hivemall v0.5.0
Introduction to Apache Hivemall v0.5.0Introduction to Apache Hivemall v0.5.0
Introduction to Apache Hivemall v0.5.0Makoto Yui
 
Idea behind Apache Hivemall
Idea behind Apache HivemallIdea behind Apache Hivemall
Idea behind Apache HivemallMakoto Yui
 
Introduction to Apache Hivemall v0.5.0
Introduction to Apache Hivemall v0.5.0Introduction to Apache Hivemall v0.5.0
Introduction to Apache Hivemall v0.5.0Makoto Yui
 
What's new in Hivemall v0.5.0
What's new in Hivemall v0.5.0What's new in Hivemall v0.5.0
What's new in Hivemall v0.5.0Makoto Yui
 
What's new in Apache Hivemall v0.5.0
What's new in Apache Hivemall v0.5.0What's new in Apache Hivemall v0.5.0
What's new in Apache Hivemall v0.5.0Makoto Yui
 
Revisiting b+-trees
Revisiting b+-treesRevisiting b+-trees
Revisiting b+-treesMakoto Yui
 
Incubating Apache Hivemall
Incubating Apache HivemallIncubating Apache Hivemall
Incubating Apache HivemallMakoto Yui
 
Hivemall meets Digdag @Hackertackle 2018-02-17
Hivemall meets Digdag @Hackertackle 2018-02-17Hivemall meets Digdag @Hackertackle 2018-02-17
Hivemall meets Digdag @Hackertackle 2018-02-17Makoto Yui
 
Apache Hivemall @ Apache BigData '17, Miami
Apache Hivemall @ Apache BigData '17, MiamiApache Hivemall @ Apache BigData '17, Miami
Apache Hivemall @ Apache BigData '17, MiamiMakoto Yui
 
機械学習のデータ並列処理@第7回BDI研究会
機械学習のデータ並列処理@第7回BDI研究会機械学習のデータ並列処理@第7回BDI研究会
機械学習のデータ並列処理@第7回BDI研究会Makoto Yui
 
Podling Hivemall in the Apache Incubator
Podling Hivemall in the Apache IncubatorPodling Hivemall in the Apache Incubator
Podling Hivemall in the Apache IncubatorMakoto Yui
 
Dots20161029 myui
Dots20161029 myuiDots20161029 myui
Dots20161029 myuiMakoto Yui
 
Hadoopsummit16 myui
Hadoopsummit16 myuiHadoopsummit16 myui
Hadoopsummit16 myuiMakoto Yui
 
HadoopCon'16, Taipei @myui
HadoopCon'16, Taipei @myuiHadoopCon'16, Taipei @myui
HadoopCon'16, Taipei @myuiMakoto Yui
 
3rd Hivemall meetup
3rd Hivemall meetup3rd Hivemall meetup
3rd Hivemall meetupMakoto Yui
 
Recommendation 101 using Hivemall
Recommendation 101 using HivemallRecommendation 101 using Hivemall
Recommendation 101 using HivemallMakoto Yui
 
Hivemall dbtechshowcase 20160713 #dbts2016
Hivemall dbtechshowcase 20160713 #dbts2016Hivemall dbtechshowcase 20160713 #dbts2016
Hivemall dbtechshowcase 20160713 #dbts2016Makoto Yui
 
Introduction to Hivemall
Introduction to HivemallIntroduction to Hivemall
Introduction to HivemallMakoto Yui
 

Mehr von Makoto Yui (20)

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

Hcj2014 myui

  • 1. 独)産業技術総合研究所 情報技術研究部門 油井 誠 m.yui@aist.go.jp, @myui Hivemall: Apache Hiveを用いたスケーラ ブルな機械学習基盤 Hadoop Conference Japan 2014 English-version of this slide available on bit.ly/hivemall-slide 1 / 42
  • 2. 発表の構成 • What is Hivemall • Why Hivemall • What Hivemall can do • How to use Hivemall • How Hivemall works • イテレーションへの対処方法(Sparkと比較) • 性能評価 • まとめ Hadoop Conference Japan 2014 基本的にHadoop Summit 2014, San Jose で喋った内容を踏襲しております 2 / 42
  • 3. What is Hivemall • Hiveのユーザ定義関数またはユーザ定義テーブル 生成関数として実装された機械学習ライブラリ • クラス分類と回帰分析 • 推薦 • K近傍探索 .. and more • オープンソースプロジェクト • LGPLライセンス • github.com/myui/hivemall (bit.ly/hivemall) • コントリビュータは現在4人 Hadoop Conference Japan 2014 3 / 42
  • 6. Hadoop Conference Japan 2014 Motivation – 何故新しい機械学習基盤? Mahout? Vowpal Wabbit? (w/ Hadoop streaming) Spark MLlib? 0xdata H2O? Cloudera Oryx? 既に巷にあるHadoopと協調動作する機械学習 フレームワーク Quick Poll: 現在いずれかのレームワークを使っていますか? 6 / 42
  • 7. Framework User interface Mahout Java API プログラミング Spark MLlib/MLI Scala API プログラミング Scala Shell (REPL) H2O R プログラミング GUI Cloudera Oryx Http REST API プログラミング Vowpal Wabbit (w/ Hadoop streaming) C++ API プログラミング コマンドライン Hadoop Conference Japan 2014 Motivation – 何故新しい機械学習基盤? 既存の分散機械学習フレームワークは利用するの にプログラミングが必要で敷居が高い 7 / 42
  • 8. Hadoop Conference Japan 2014 Mahoutを利用したクラス分類 org/apache/mahout/classifier/sgd/TrainNewsGroups.java Find the complete code at bit.ly/news20-mahout 8 / 42
  • 9. Hadoop Conference Japan 2014 Why Hivemall 1. 利用が簡単 • プログラミング不要 • 全ての機械学習のステップがHiveQLクエリで完結 • コンパイルやパッケージングが不要 • 既存Hiveユーザにフレンドリー • 5分もあればHivemallの簡易例を実行可能 • インストールは次のとおり簡単 9 / 42
  • 10. Hadoop Conference Japan 2014 Why Hivemall 2. データに対してスケーラブル • 訓練事例/テスト事例の数に対してスケーラブ ル • 特徴数に対してスケーラブル • Feature hashingと呼ばれるテクニックによる特徴数 の削減をサポート • 学習モデルのサイズに対してスケーラブル • 200ラベル* 1億の特徴 ⇒ 150GBのメモリが必要 • Hivemallは学習時やテスト時に予測モデル全体がメ モリに収まる必要がない • 特徴エンジニアリングに関してもHiveを利用した 並列処理によってスケーラブルに実行可能 10 / 42
  • 11. Hadoop Conference Japan 2014 Why Hivemall 3. 計算資源に対してスケーラブル • HadoopとHiveの利点を活用 • Amazon Elastic MapReduce(EMR)によ る機械学習サービスのProvisioningが 可能 ➞ EMRのHive環境にHivemallを自動セット アップするEMR bootstrapを用意している Find an example on bit.ly/hivemall-emr 11 / 42
  • 12. Hadoop Conference Japan 2014 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 12 / 42
  • 13. Hadoop Conference Japan 2014 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 Confidence Weighted (CW) 0.9656 AROW [1] 0.9660 SCW [2] 0.9662 精度が 良い 4. 最新のオンライン学習アルゴリズムを サポート(クラス分類) CWやその改良は賢いオンライン機械学習アルゴリズム 13 / 42
  • 14. Hadoop Conference Japan 2014 CWの精度が何故よいか? 文章をpositiveかnegativeかに分類する二値分類 を想定してみる → 単語(特徴)ごとに重みを計算する I like this authorPositive I like this author, but found this book dullNegative Label Feature Vector(特徴ベクトル) ナイーブな学習手法では重み を同様に更新するWlike Wdull CWでは重みごとに異なる更新を行う 14 / 42
  • 15. Hadoop Conference Japan 2014 CWの精度が何故よいか? weight weight 重みを更新する 重みと確信度を 更新する 0.6 0.80.6 0.80.6 At this confidence, the weight is 0.5 共分散 (確信度) 0.5 15 / 42
  • 16. Hadoop Conference Japan 2014 Why Hivemall 4. 最新のオンライン学習アルゴリズムをサ ポート(クラス分類) • 学習の収束速度が早い • 確信度が十分な重みについては小さな 更新を行う • 確信度が低い重みについては大きな更 新を行う (e.g., 学習の初期) • 極少ないイテレーションで収束する 16 / 42
  • 17. 発表の構成 • What is Hivemall • Why Hivemall • What Hivemall can do • How to use Hivemall • How Hivemall works • イテレーションへの対処方法(Sparkと比較) • 性能評価 • まとめ Hadoop Conference Japan 2014 17 / 42
  • 18. Hadoop Conference Japan 2014 What Hivemall can do • クラス分類(二値分類/多値分類)  Perceptron  Passive Aggressive (PA)  Confidence Weighted (CW)  Adaptive Regularization of Weight Vectors (AROW)  Soft Confidence Weighted (SCW) • 回帰分析  確率的勾配降下法に基づくロジスティック回帰  PA Regression  AROW Regression • K近傍法 & レコメンデーション  Minhashとb-Bit Minhash (LSH variant)  類似度に基づくK近傍探索(cosine similarity) • Feature engineering  Feature hashing  Feature scaling (normalization, z-score) 18 / 42
  • 19. Hadoop Conference Japan 2014 How to use Hivemall Machine Learning Training Prediction Prediction Model Label Feature Vector Feature Vector Label Data preparation 19 / 42
  • 20. Hadoop Conference Japan 2014 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でパース可能な)任意フォー マットのデータを利用可能 20 / 42
  • 21. Hadoop Conference Japan 2014 How to use Hivemall Machine Learning Training Prediction Prediction Model Label Feature Vector Feature Vector Label Feature Engineering 21 / 42
  • 22. Hadoop Conference Japan 2014 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の範囲に変換 22 / 42
  • 23. Hadoop Conference Japan 2014 How to use Hivemall Machine Learning Training Prediction Prediction Model Label Feature Vector Feature Vector Label Training 23 / 42
  • 24. Hadoop Conference Japan 2014 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側で並列に処理 24 / 42
  • 25. Hadoop Conference Japan 2014 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クラス分類器による学習 25 / 42
  • 26. Hadoop Conference Japan 2014 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でまとめる 26 / 42
  • 27. Hadoop Conference Japan 2014 How to use Hivemall Machine Learning Training Prediction Prediction Model Label Feature Vector Feature Vector Label Prediction 27 / 42
  • 28. Hadoop Conference Japan 2014 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によって行う 予測モデル全体をメモリに載せる必要がない 28 / 42
  • 29. 発表の構成 • What is Hivemall • Why Hivemall • What Hivemall can do • How to use Hivemall • How Hivemall works • イテレーションへの対処方法(Sparkと比較) • 性能評価 • まとめ Hadoop Conference Japan 2014 29 / 42
  • 30. ユーザ定義テーブル生成関数として機械学習を実装し ている Hadoop Conference Japan 2014 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を 減らす(ランダムフォレストの決定木で過 学習が減るのと同様の理屈) 30 / 42
  • 31. Hadoop Conference Japan 2014 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によってスループットが律速される メモリ消費量 が増える 並列度が 下がる 31 / 42
  • 32. 如何に反復処理と向き合うか 機械学習ではよい予測精度を得るためには反復 処理が不可欠 • MapReduceはIN/OUTがHDFSを介すために反復処理には適 さない(注: Tezを利用した場合はHDFSのIN/OUTがスキップ可能) • Sparkはオンメモリ処理によって効率的に反復を扱う iter. 1 iter. 2 . . . Input HDFS read HDFS write HDFS read HDFS write iter. 1 iter. 2 Input Hadoop Conference Japan 2014 32 / 42
  • 33. val data = spark.textFile(...).map(readPoint).cache() for (i <- 1 to ITERATIONS) { val gradient = 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 勾配の計算に使う訓練例は反復ごとに異なるものを利用する 必要がある(そうしないと精度がでないし、より多くの反復が必要となる) Hadoop Conference Japan 2014 33 / 42
  • 34. Hadoop Conference Japan 2014 Spark Mllibでは実際どうなっている? Val data = .. for (i <- 1 to numIterations) { val sampled = val gradient = w -= gradient } サンプリングを利用したMini-batch勾配降下法 それぞれのイテレーションではデータの一部だけを 利用するため、反復処理は学習の収束に不可欠 GradientDescent.scala bit.ly/spark-gd データのサブセットをサンプリング Spark MapReduceを利用してSampled[1..N]の勾配をN個のワー カで並列に計算してN個の予測モデルを構築し、N個のご予測モデルを マスターノードで(逐次的に)マージ 34 / 42 Wは次のイテレーションで各ワーカに送信される
  • 35. Hivemallでどのように反復に対処? Hivemallでは、複数のMapReduce Jobを利用した反復 処理なしに機械学習における反復学習の効果をエミュ レートするためにamplify UDTFを提供 SET hivevar:xtimes=3; CREATE VIEW training_x3 as SELECT * FROM ( SELECT amplify(${xtimes}, *) as (rowid, label, features) FROM training ) t CLUSTER BY RANDOM Hadoop Conference Japan 2014 入力データを増幅してshuffleする 35 / 42
  • 36. Map-only shuffling and amplifying rand_amplify UDTFはmapタスク内で入力され た訓練事例を増幅&shuffleする CREATE VIEW training_x3 as SELECT rand_amplify(${xtimes}, ${shufflebuffersize}, *) as (rowid, label, features) FROM training; Hadoop Conference Japan 2014 36 / 42
  • 37. map-local shuffleを利用した場合の実行プラン … Shuffle (distributed by feature) Reducetask Merge Aggregate Reduce write Maptask Table scan Rand Amplifier Map write Logress UDTF Partial aggregate Maptask Table scan Rand Amplifier Map write Logress UDTF Partial aggregate Reducetask Merge Aggregate Reduce write スキャンされた行が 増幅されて バッファリングされて shuffleされる なお、このオペレータは パイプライン処理される Rand amplifierオペレータがテーブルスキャンオペレータと 学習を行うオペレータの間に挿入される Hadoop Conference Japan 2014 37 / 42
  • 38. Hadoop Conference Japan 2014 Method 実行時間(秒) AUC (予測精度) Plain 89.718 0.734805 amplifier+clustered by (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を利用することで受容可能な オーバヘッドで予測精度が向上 38 / 42
  • 39. 発表の構成 • What is Hivemall • Why Hivemall • What Hivemall can do • How to use Hivemall • How Hivemall works • イテレーションへの対処方法(Sparkと比較) • 性能評価 • まとめ Hadoop Conference Japan 2014 39 / 42
  • 40. 性能評価 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 Hadoop Conference Japan 2014 40 / 42
  • 41. Hadoop Conference Japan 2014 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) がよい 学習時間(秒) が短い 41 / 42
  • 42. Hadoop Conference Japan 2014 本日のまとめ Hiveのユーザ定義関数またはユーザ定義テーブル 生成関数として実装されたオープンソースの機械学 習ライブラリ  利用が簡単  計算資源に対してスケールする  Amazon EMRでも動作する  最先端のオンライン機械学習をサポート  Spark SQLでの動作を検証予定  Apache Incubator化(するかも?) コントリビュータ募集 プロジェクトサイト: github.com/myui/hivemall or bit.ly/hivemall 最後に: 是非Hivemallをご自身で評価ください 5分もあればクイックスタートは動かせるはずです  Slide available on bit.ly/hcj14-hivemall 42 / 42