Upload
kotaro-tanahashi
View
297
Download
2
Embed Size (px)
Citation preview
情強アルゴリズム DIMSUM Sampling
棚橋 耕太郎
2015.10.30
MLlibとは• spark付属の機械学習ライブラリ • 最新バージョンは1.5 • ストリーミングにも対応 • 最近はアルゴリズムの種類が増えてきている例) L1,L2線形回帰、ロジスティック回帰、ALS(MF)、All-pair similarities、gradient boosting、ランダムフォレスト、Word2Vec、LDA、PCA、SVD、SVM、K-means、GMM、SGD、LBFGS
レコメンデーション
• MLlibでs3のデータに対してレコメンデーションの計算処理を行い,結果をs3に書き出す.
kunuk.wordpress.com
item-item距離行列 を作るのが大変
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") }
行列に変換し、アイテム同士の コサイン類似度を計算
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
情弱(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くらいで計算不可能に
情強な方法 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
DIMSUM code
一部抜粋
①
①
②
②
③
③
性能
のとき、計算精度は保存される
• うまく近似計算はできている
proofmultiplicative Chernoff boundを使う
Zadeh, Reza Bosagh, and Gunnar Carlsson. "Dimension independent matrix square using mapreduce." arXiv preprint arXiv:1304.1467 (2013).