How it was tested
Each of 610 MovieLens members had a random 20% of their ratings hidden. Every model then picked 10 films per member from about 9,700 they hadn't rated, and a pick counted when the member had given the hidden film 4 stars or more.
The rating predictors were the wrong tool. Models built to guess star ratings had the lowest error ( RMSE), but their top 10s almost never held a film the member went on to rate highly. Just recommending the most-rated films beat them.
Learning from what people watch fixed it. Implicit ALS treats every rating as "watched this", with stars as confidence. Its picks land more often than most-popular's, and come from × more of the catalogue.
Checked against Spark. The Scala ALS is written from scratch and lands within of Spark MLlib's on NDCG@10. The batch job that writes every member's picks runs on Spark itself.
What isn't on the shelf. Only titles at least people rated, so every recommendation rests on enough data.
MATINEE VIDEO
TEST RUN · 601 MEMBERS
9,724 TITLES · TOP 10 EACH
Test results by model
| MODEL | P@10 | NDCG | RMSE |
P@10 = share of picks rated 4+
NDCG = same, hits near the top count more
RMSE = star-rating error, lower is better
THANK YOU · PLEASE REWIND