How to handle new or uninteracted items in Pinsage
Hi, I have the data of interactions along with the user and item features for those interactions only. How can I add uninteracted or new items into the recommendations?
Do you want to recommend items that a user has not interacted with before? This is the default case since the filter_consumed parameter in the recommend_user method is True by default.
No, I have this interactions data with user and item features. In this data I have the items that have interactions with atleast one user right? But items with zero interactions gets skipped out of this data but they are part of our system/application. My question is how can we make these items(skipped items) as part of our recommendations ? Do we have something in the library or what should be the best way to handle this scenario?
OK, i get it. This is basically an item cold-start problem, but this library can't deal with this since the algorithms require some kind of interaction for items.
The common way is using content-based methods, which recommend items with similar features. In your data, user 2 has liked item 130 which has category 20.0, so you can recommend zero interaction items with the same category for this user. If you can't get features for zero interaction items, random recommendations may be the only way to get interactions for them.
The bottom line is getting interactions for these zero interaction items as soon as possible without hurting user satisfaction too much since we can only train items with interactions.
So you may combine normal and content recommendations together. Say u want to recommend 10 items for one user, 8 of them can come from PinSage, with the remaining 2 drawn from the content-based approach.
In my case hundreds of items gets deleted and added daily so trying to get the interactions for the zero interaction items does not seem a good way to handle item cold start. Second options seems better. Anyother good content based recommendation library that can work with the pinsage from this library? Thanks
This is highly related to your specific scenario, so I don't think general-purpose open-source libraries can help with that...