How to proceed after building an accurate collaborative filtering model?

I have successfully created a collab_learner model for users and items. I would like to go through my users and see which products I should recommend to them. Intuitively, I think of collaborative filtering as cross-tabular data. In my I head, I can see that if I had this table in front of me it would be very easy to look at weather or not user u would like item i. But I don’t think it’s very feasible or useful to make a cross-tabular data table since I have 60 users (rows) and around 20k items (columns). Currently, to see if user u would like item i, I do:
users_embedding = to_np(learn.model.u_weight.weight)
items_embedding = to_np(learn.model.i_weight.weight)
np.matmul(users_embedding[u],items_embedding[i])

While it’s cool to see the relationship between user u and item i in this way, I:

  1. Gain no insight into the table as a whole, and it wouldn’t really be possible to go through the whole matrix of 120k fields. I’d pretty much just be guessing random users and items and looking at their relationship.
  2. Don’t even know what item i is and who user u is because they’re just indices and the names aren’t attached (I’m less worried about this problem because I assume I can just map the indices to the names in the original dataset)

Anyone with experience with collaborative filtering, do you have any advice on how to proceed after building the model? Thank you!

1 Like