10
情強アルゴリズム DIMSUM Sampling 棚橋 耕太郎 2015.10.30

情強アルゴリズムDIMSUM

Embed Size (px)

Citation preview

Page 1: 情強アルゴリズムDIMSUM

情強アルゴリズム DIMSUM Sampling

棚橋 耕太郎

2015.10.30

Page 2: 情強アルゴリズムDIMSUM

MLlibとは• spark付属の機械学習ライブラリ • 最新バージョンは1.5 • ストリーミングにも対応 • 最近はアルゴリズムの種類が増えてきている例) L1,L2線形回帰、ロジスティック回帰、ALS(MF)、All-pair similarities、gradient boosting、ランダムフォレスト、Word2Vec、LDA、PCA、SVD、SVM、K-means、GMM、SGD、LBFGS

Page 3: 情強アルゴリズムDIMSUM

レコメンデーション

• MLlibでs3のデータに対してレコメンデーションの計算処理を行い,結果をs3に書き出す.

kunuk.wordpress.com

item-item距離行列 を作るのが大変

Page 4: 情強アルゴリズムDIMSUM

MLlibを使ったレコメンデーション

 def  main(args:  Array[String])={          val  conf  =  new  SparkConf().setMaster("yarn-­‐client").setAppName("MllibTest")          val  sc  =  new  SparkContext(conf)          val  INPUT_FILENAME  =  "s3n://{bucket-­‐name}/spark/vec.npy"          val  rows  =  sc.textFile(INPUT_FILENAME).map  {  line  =>              val  values  =  line.split('\t').map(_.toDouble)              Vectors.dense(values)          }          val  mat  =  new  RowMatrix(rows)          val  simsPerfect  =  mat.columnSimilarities()          simsPerfect.entries.saveAsTextFile("s3n://{bucket-­‐name}/spark/sim")      }  

行列に変換し、アイテム同士の コサイン類似度を計算

Page 5: 情強アルゴリズムDIMSUM

columnSimilarities()

0.0 1.1 3.0 1.1 2.0 1.8 0.2 3.1 6.2 7.7 2.7 8.3

a b c

a・b/|a||b|=0.3 a・c/|a||c|=0.2 b・c/|b||c|=0.5

all-pair

m~10^13

n~10^4

Page 6: 情強アルゴリズムDIMSUM

情弱(Naive)な方法

Zadeh, Reza Bosagh, and Gunnar Carlsson. "Dimension independent matrix square using mapreduce." arXiv preprint arXiv:1304.1467 (2013).

シャッフルサイズ=>O(mL^2) m:行数,L:非ゼロ要素の個数

m~10^12, L~100くらいで計算不可能に

Page 7: 情強アルゴリズムDIMSUM

情強な方法 DIMSUM Sampling

0.0 1.1 3.0 1.1 2.0 1.8 0.2 3.1 6.2 7.7 2.7 8.3

ri

aij

cj

Zadeh, Reza Bosagh, and Gunnar Carlsson. "Dimension independent matrix square using mapreduce." arXiv preprint arXiv:1304.1467 (2013).

シャッフルサイズ=>O(nLγ) m~10^13, n~10^4

Page 8: 情強アルゴリズムDIMSUM

DIMSUM code

一部抜粋

Page 9: 情強アルゴリズムDIMSUM

性能

のとき、計算精度は保存される

• うまく近似計算はできている

Page 10: 情強アルゴリズムDIMSUM

proofmultiplicative Chernoff boundを使う

Zadeh, Reza Bosagh, and Gunnar Carlsson. "Dimension independent matrix square using mapreduce." arXiv preprint arXiv:1304.1467 (2013).