A recommendation system with MLlib
Spark's MLlib implements a collaborative filtering algorithm called Alternating Least Squares (ALS) to build recommendation systems.
ALS models the rating matrix (R) as the multiplication of a low-rank user (U) and product (V) factors, and learns these factors by minimizing the reconstruction error of the observed ratings. The unknown ratings can subsequently be computed by multiplying these factors. In this way, we can recommend products based on the predicted ratings. Refer to the following quote at https://databricks.com/blog/2014/07/23/scalable-collaborative-filtering-with-spark-mllib.html:
"ALS is an iterative algorithm. In each iteration, the algorithm alternatively fixes one factor matrix and solves for the other, and this process continues until it converges. MLlib features a blocked implementation of the ALS algorithm that leverages Spark's efficient support for distributed, iterative computation. It uses native LAPACK to achieve high performance...