Exclude items
Hi! Is there any way to exclude items from recommendations? Imagine an e-commerce app in which I want to specify that some items are no longer available, but I still want to use that data for similarity calculations. Thanks!
Perhaps we could add a blacklist, and filter right after the filter_by_previous_actions.
Hey,
So there is a plan to be able to mass expire one thing, so that if an item is no longer available (e.g. out of stock or black listed) it will not recommend it any more. This should happen over the next few months. However, I recommend asking HapiGER for more recommendations than are needed then having the majority of this application specific logic like filtering or reordering recommendations to be located inside the application.
The main issue is how much application specific logic should HapiGER contain. filter_by_previous_actions can be done easily with the information that HapiGER already has, but there are many such application filters or reordering that can be done. I prefer add the minimum amount of requirements so that HapiGER is most broadly usable.
That being said, if you submit a pull request (with tests) to HapiGER that implements the balcklist requirement without being too invasive, I will merge it :)
Graham
I also need something like a blacklist. Here is the scenario i'm puling in recommendations that a user can like or dislike.. and once they do either action i want to blacklist that recommendation so the user won't see it again for a period of time.
Also regarding your suggestion i don't think loading more recommendations and filtering in the the application would work. Another thing is you don't want to throw the load of filtering/reordering on the application when thats the database's job :) Think about this scenario
- Load Recommendations - Stack of 10
- getProfile(matches[0])
- likeUser(currentUser, match.id) // this would also pop the first item off the stack
- getProfile(matches[0]
- dislikeUser(currentUser, match.id) // pop the first item off the stack
- reload the app, now i'm going to see the same users i already took actions with but they're going to sorted in a different order because of the new match probability.
With that being said i think something along the lines of filterByBlacklist would solve the problem taking an array of ids and an expiry time.