This example demonstrates Recommendation model training and inference
operations between distributed datasets. In this scenario, we will
utilize a movie ratings dataset which consists of columns:
userId, itemId , rating, timestamp with 100 thousand ratings.

These ratings will be distributed across 2 different clients with a small
portion of the dataset will be kept for inference. A model is
training using this data across multiple clients in a split learning
fashion. User ids are hashed because all future usage will be for lookups
and this will add privacy to the field. The model parameters chosen for this
example are learning_rate, hidden_dim (this will determine the size of the
model), and epochs.

Finally, we utilize the test data set aside earlier for inference. We pass
the test data with a user_id_column and top_n parameters specified. The top_n
parameter specified how many highest recommended items returned in order sorted.
