• What problem does collaborative filtering solve?
  • How does it solve it?
  • Why might a collaborative filtering predictive model fail to be a very useful recommendation system?
  • What does a crosstab representation of collaborative filtering data look like?
  • Write the code to create a crosstab representation of the MovieLens data (you might need to do some web searching!).
  • What is a latent factor? Why is it "latent"?
  • What is a dot product? Calculate a dot product manually using pure Python with lists.
  • What does pandas.DataFrame.merge do?
  • What is an embedding matrix?
  • What is the relationship between an embedding and a matrix of one-hot-encoded vectors?
  • Why do we need Embedding if we could use one-hot-encoded vectors for the same thing?
  • What does an embedding contain before we start training (assuming we're not using a pre-trained model)?
  • Create a class (without peeking, if possible!) and use it.
  • What does x[:,0] return?
  • Rewrite the DotProduct class (without peeking, if possible!) and train a model with it.
  • What is a good loss function to use for MovieLens? Why?
  • What would happen if we used cross-entropy loss with MovieLens? How would we need to change the model?
  • What is the use of bias in a dot product model?
  • What is another name for weight decay?
  • Write the equation for weight decay (without peeking!).