SlideShare a Scribd company logo
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/
Copyright  ©2015  Treasure  Data.    All  Rights  Reserved.
Ø2015/04  トレジャーデータ入社
Ø第1号のリサーチエンジニア
ØML  as  a  Service  (MLaaS)に従事
Ø2015/03  産業技術総合研究所 情報技術研究部
門 主任研究員
Ø大規模機械学習および並列データベースの研究に従
事
Ø2009/03  NAIST  博士課程修了 博士(工学)
ØXMLネイティブデータベースおよび超並列データベース
の研究に従事
ØH14未踏ユース第1期スーパクリエイタ
2
自己紹介
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社によって毎日送られてくるデータ
数字で見るトレジャーデータ
Copyright  ©2015  Treasure  Data.    All  Rights  Reserved.
数字で見る現在のトレジャーデータ
100+
日本の顧客社数
15兆
保存されている
データ件数
4,000
一社が所有する最大
サーバー数
500,000
1秒間に保存される
データ件数
4
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
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アプリケーション
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
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
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月中に
サポート予定
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
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
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
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
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
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
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
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
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
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
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
予測モデルテーブルの構成
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
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
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
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
Copyright  ©2015  Treasure  Data.    All  Rights  Reserved.
データ分析の分類とツール
25
MLCTでの@tokorotenさんのスライドより抜粋
「プロダクション環境でオンラインで機械学習を動かすにあたってツライ話」
http://www.slideshare.net/TokorotenNakayama/mlct/12
需要がない??
実は最も重要
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
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
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絡むに索引を
貼っておくと高速
Copyright  ©2015  Treasure  Data.    All  Rights  Reserved.
余談:  Amazon  Machine  Learningのコスト
Vowpal Wabbit(単一プロセス版?)ベースらしい
29
モデル構築や評価時
$0.42/インスタンス時
バッチ予測
$0.1/1000件
リアルタイム予測
$0.1/1000件(+キャパシティ予約のチャージ)
広告分野での利用だとリアルタイム予測をかなりの頻度
で行うのでモデルを取得できないと厳しい(!?)
Copyright  ©2015  Treasure  Data.    All  Rights  Reserved.
30
広告系でのHivemallの応用例
Hivemallで
予測モデル構築
Real-­‐time  prediction
on  a  RDBMS
*近々記事を書きます
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
Copyright  ©2015  Treasure  Data.    All  Rights  Reserved.
32
Matrix  Factorization
k個の潜在因子をもつ
行列P,Qで近似
Copyright  ©2015  Treasure  Data.    All  Rights  Reserved.
33
評価値の
平均
Matrix  Factorization
正則化項
ユーザおよび商品ごとの
評価バイアスを考慮
Biased  MFのSGDおよびAdagradによる最適化
Copyright  ©2015  Treasure  Data.    All  Rights  Reserved.
34
Matrix  Factorizationの学習
ローカルディスクに訓練事例を書き出すことで学習が収束するまでの
繰り返し学習に対応(全体最適化のためにパラメタ交換が必要)
Copyright  ©2015  Treasure  Data.    All  Rights  Reserved.
35
Matrix  Factorizationの予測/評価
Copyright  ©2015  Treasure  Data.    All  Rights  Reserved.
http://bit.ly/hivemall-­‐mf
交差検定の並列処理
各foldごとの訓練データ、テストデータのVIEWを
定義することでえ、学習モデルを並列に構築~
検定までを並列実行可能
36
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
Copyright  ©2015  Treasure  Data.    All  Rights  Reserved.
AdaGrad
確率的勾配降下法(SGD)のモデルパラメタの更新
学習率 勾配
学習率の指定方法が難しい→自動設定できないか?→AdaGrad
過去の勾配の二乗の総和を更新対象の特徴ごとに保存
学習率
学習率の減少を保障
AdaDeltaはAdaGradの定数αの手動設定の
問題と学習率がtが進むと小さくなりすぎる問題に対処
38
Copyright  ©2015  Treasure  Data.    All  Rights  Reserved.
機械学習におけるパラメタ交換
39
学習器1
学習器2
学習器N
パラメタ
交換
学習
モデル
分割された訓練例例
データ並列列
データ並列列
(モデルパラメタ)
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
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
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
Copyright  ©2015  Treasure  Data.    All  Rights  Reserved.
43
Feature  requests  to  Hivemall
Copyright  ©2015  Treasure  Data.    All  Rights  Reserved.
44
Treasure  Dataでは、機械学習の実装に強いエンジニア、
Kaggle Master/Data  Scientistsも募集しております!
(夏のインターン生も近いうちに募集します)
Hiringの一覧にはまだ出ていないので、興味のある方は
myui@treasure-­‐data.com または @myui に連絡ください
http://bit.ly/gmo0512
休憩時間などにアンケートにご協力よろしくお
願い致します

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 休憩時間などにアンケートにご協力よろしくお 願い致します