public class RescoringItemRecommender extends Object implements ItemRecommender
Item recommender that wraps a base item recommender and replaces its scores with those produced by another item scorer. The order from the original recommender is preserved.
For performance reasons, the scorer is only invoked by recommendWithDetails(long, int, Set, Set)
, because scores are not returend in the other recommendation operations. The results produced by this recommender are of type RescoredResult
; for any recommended item that the scorer cannot score, the result has no score.
Results.rescore(Result, Result)
Constructor and Description |
---|
RescoringItemRecommender(ItemRecommender rec,
ItemScorer score)
Create a new rescoring item recommender.
|
Modifier and Type | Method and Description |
---|---|
List<Long> |
recommend(long user)
Recommend all possible items for a user using the default exclude set.
|
List<Long> |
recommend(long user,
int n)
Recommend up to
n items for a user using the default exclude set. |
List<Long> |
recommend(long user,
int n,
Set<Long> candidates,
Set<Long> exclude)
Produce a set of recommendations for the user.
|
ResultList |
recommendWithDetails(long user,
int n,
Set<Long> candidates,
Set<Long> exclude)
Produce a set of recommendations for the user with additional details.
|
@Inject public RescoringItemRecommender(ItemRecommender rec, ItemScorer score)
Create a new rescoring item recommender.
rec
- The recommender.score
- The item scorer.public List<Long> recommend(long user)
ItemRecommender
Recommend all possible items for a user using the default exclude set.
recommend
in interface ItemRecommender
user
- The user ID.ItemRecommender.recommend(long, int, Set, Set)
public List<Long> recommend(long user, int n)
ItemRecommender
Recommend up to n
items for a user using the default exclude set.
recommend
in interface ItemRecommender
user
- The user ID.n
- The number of recommendations to return. Negative values indicate no preference of recommendation list size.ItemRecommender.recommend(long, int, Set, Set)
public List<Long> recommend(long user, int n, @Nullable Set<Long> candidates, @Nullable Set<Long> exclude)
ItemRecommender
Produce a set of recommendations for the user. This is the most general recommendation method, allowing the recommendations to be constrained by both a candidate set and an exclude set. The exclude set is applied to the candidate set, so the final effective candidate set is canditates minus exclude.
recommend
in interface ItemRecommender
user
- The user’s IDn
- The number of ratings to return. If negative, there is no specific recommendation list size requested.candidates
- A set of candidate items which can be recommended. If null
, all items are considered candidates.exclude
- A set of items to be excluded. If null
, a default exclude set is used.public ResultList recommendWithDetails(long user, int n, @Nullable Set<Long> candidates, @Nullable Set<Long> exclude)
ItemRecommender
Produce a set of recommendations for the user with additional details. This method functions identically to ItemRecommender.recommend(long, int, Set, Set)
, except that it may produce more detailed results. Implementations will return subclasses of ResultList
that provide access to additional details about each recommendation.
recommendWithDetails
in interface ItemRecommender
user
- The user’s IDn
- The number of ratings to return. If negative, there is no specific recommendation list size requested.candidates
- A set of candidate items which can be recommended. If null
, all items are considered candidates.exclude
- A set of items to be excluded. If null
, a default exclude set is used.Double.NaN
. For most scoring recommenders, the items will be ordered in decreasing order of score. This is not a hard requirement — e.g. set recommenders are allowed to be more flexible.