Building a recommendation system using the trained model
In this section, we create a recommendation system in the form of a function that returns a list of movie titles as recommendations for a given user. As shown in Figure 18.7, we first fetch all movies not seen by the user. Each of these movies is fed along with the given user as input to the EmbeddingNet, producing the respective predicted ratings. The movies are then sorted in decreasing order of rating, and the top-k movies are returned as recommendations.
Figure 18.7: Schematic representation of a movie recommendation system that uses an EmbeddingNet under the hood to generate ratings on movies not seen by a user
The following function performs the steps outlined in Figure 18.7:
def recommender_system(user_id, model, n_movies):
seen_movies = set(X[X['user_id'] == user_id]['movie_id'])
user_ratings = y[X['user_id'] == user_id]
top_rated_movie_ids = X.loc[(X['user_id...