Recommending new items excludes other known information

User 3224 | 3/14/2016, 4:08:59 PM

I am sure that I am missing something obvious, but I have a question on recommending new items after fitting a new recommender model.

In short, I held out a sample of users/items. After training the model, I want to pass in those users/items and recommend new items based on that model, however, we are only passing the user to the recommend method. I would have expected that recommend method would have used the known information from the holdout group to find similar users that were part of the training process, and then recommend new items from there. If we are just passing a set of user ids with no other information, what is the recommendation based off of?

Like I said, I am sure that I am missing something obvious, but any help is much appreciated.



User 1207 | 3/14/2016, 6:27:26 PM

Hello @BrockTibert,

By default, the recommend() uses all the data stored in the model -- that passed in to the create function -- to build the recommendations, but it can use new data as well. This can be passed in to the recommend function using new_observation_data as an additional argument to the recommend function.

Hope that clears things up!

Thanks! -- Hoyt

User 3224 | 3/14/2016, 7:27:47 PM

Thanks, I appreciate the quick feedback. To clarify, if I put the data in the new_user_data argument, it will leverage the known user/item pairs with applying the model to personalize those recommendations to items not already rated/known by the user?

User 1207 | 3/14/2016, 7:41:25 PM

Yes, that's correct. newuserdata is user-specific side information that is taken into account in making predictions, and is meant to update the user_data argument that can be passed in to create. In that regard, it replaces information passed in as user_data originally, or uses the old data if nothing new is present. new_observation_data allows you to pass in new user-item interactions.

-- Hoyt