For many companies, recommendation systems solve important machine learning problems. But as recommendation systems grow to millions of users and millions of items, they pose significant challenges when deployed at scale. The user-item matrix can have trillions of entries (or more), most of which are zero. To make common ML techniques practical, sparse data requires special techniques. Learn how to use MXNet to build neural network models for recommendation systems that can scale efficiently to large sparse datasets.
2. What to Expect from the Session
Background on recommender systems and machine
learning.
Learn how to implement them on MXNet using p2
instances and the AWS Deep Learning AMI.
Explore several types of recommender systems, including
advanced deep learning ideas.
Learn tricks for handling sparse data in MXNet.
27. MF as a neural network (NN)
27
User embedding
UUser (1-hot)Item (1-hot)
Item Embedding
embed embed
Dot Product
Rating
28. Deep Learning AMI with p2
Pre-installed:
• MXNet & other popular deep learning frameworks
• GPU Drivers, CUDA, cuDNN
• Jupyter notebook & python libraries
37. Negative sampling
from mxreco import NegativeSamplingDataIter
train_data = NegativeSamplingDataIter(
train_data,
sample_ratio=5)
37
More details: BlackOut: Speeding up RNNLM w/ Very Large Vocabularies
Shihao Ji, S. V. N. Vishwanathan, Nadathur Satish, Michael J. Anderson, Pradeep Dubey
45. Inspirational References
Learning Deep Structured Semantic Models for Web
Search using Clickthrough Data
• Po-Sen Huang, Xiaodong He, Jianfeng Gao, Li Deng, Alex
Acero, Larry Heck, October, 2013
Deep Neural Networks for YouTube Recommendations
• Paul Covington and Jay Adams and Emre Sargin, 2016
Order-Embeddings of Images and Language
• Ivan Vendrov, Ryan Kiros, Sanja Fidler, Raquel Urtasun, March
2016
45
47. Predicting with embeddings
def movies_for_user(u):
scores = {}
for m in movies:
score[m.id] = predictScore(u,m)
top_movies = sorted(scores.items()…)
return top_moves
47
48. All content at once
def movies_for_user(u):
scores = userModel.predict(u)
top_movies = sorted(scores.items()…)
return top_movies
48
GPU
Cores
GPU
RAM
PCI:
~10 GB/s
CPU
240 GB/s
Ethernet
2.5 GB/s
49. Multi-label neural network
Output Bag of Movies
Input Bag of Movies
Hidden
Units
Movie Probabilities
Loss & Gradient
UxN
NxU
Sparse input
Sparse output
53. Trying it yourself
Launch Deep Learning AMI
https://aws.amazon.com/marketplace/pp/B01M0AXXQB
Try examples in
https://github.com/dmlc/mxnet/example/recommender