MLlib and Distributing the Singular Value Decomposition - Reza Zadeh

UN
Uni24h
0 次下载
42
0

资料内容

第 2 页

Outline Example Invocations Benefits of Iterations Singular Value Decomposition All-pairs Similarity Computation MLlib + {Streaming, GraphX, SQL} Future Directions

第 4 页

A General Platform Standard libraries included with Spark Spark MLlib Spark SQL Streaming" GraphX machine structured graph real-time learning … Spark Core

第 5 页

MLlib History MLlib is a Spark subproject providing machine learning primitives Initial contribution from AMPLab, UC Berkeley Shipped with Spark since Sept 2013

第 6 页

MLlib: Available algorithms classification: logistic regression, linear SVM," naïve Bayes, least squares, classification tree regression: generalized linear models (GLMs), regression tree collaborative filtering: alternating least squares (ALS), non-negative matrix factorization (NMF) clustering: k-means|| decomposition: SVD, PCA optimization: stochastic gradient descent, L-BFGS

第 12 页

Optimization At least two large classes of optimization problems humans can solve: - Convex Programs - Singular Value Decomposition

第 13 页

Optimization - LR data = spark.textFile(...).map(readPoint).cache() w = numpy.random.rand(D) for i in range(iterations): gradient = data.map(lambda p: (1 / (1 + exp(-­‐p.y * w.dot(p.x)))) * p.y * p.x ).reduce(lambda a, b: a + b) w -­‐= gradient print “Final w: %s” % w

第 14 页

MR PageRank Repeatedly multiply sparse matrix and vector Requires repeatedly hashing together page adjacency lists and rank vector Same file grouped over and over Neighbors (id, edges) Ranks (id, rank) … iteration 1 iteration 2 iteration 3

第 15 页

Spark PageRank Using cache(), keep neighbor lists in RAM Using partitioning, avoid repeated hashing partitionBy Neighbors (id, edges) Ranks (id, rank) … join join join

第 16 页

Spark PageRank Using cache(), keep neighbor lists in RAM Using partitioning, avoid repeated hashing partitionBy Neighbors (id, edges) same" node Ranks (id, rank) … join join join

第 17 页

Spark PageRank Using cache(), keep neighbor lists in RAM Using partitioning, avoid repeated hashing partitionBy Neighbors (id, edges) Ranks (id, rank) … join join join

第 18 页

PageRank Code # RDD of (id, neighbors) pairs links = spark.textFile(...).map(parsePage) .partitionBy(128).cache() ranks = links.mapValues(lambda v: 1.0) # RDD of (id, rank) for i in range(ITERATIONS): ranks = links.join(ranks).flatMap( lambda (id, (links, rank)): [(d, rank/links.size) for d in links] ).reduceByKey(lambda a, b: a + b) Generalizes to Matrix Multiplication, opening many algorithms from Numerical Linear Algebra

第 19 页

PageRank Results 200 171 Hadoop 150 Basic Spark 100 72 Spark + Controlled Time per iteration (s)50 23 Partitioning 0

显示前 19 页。下载资料查看完整内容。

评论 (0)

登录 以加入讨论

暂无评论。快来抢沙发吧!