public abstract class AbstractItemRecommender extends java.lang.Object implements ItemRecommender
Base class to ease implementation of item recommenders.
| Constructor and Description |
|---|
AbstractItemRecommender() |
| Modifier and Type | Method and Description |
|---|---|
java.util.List<java.lang.Long> |
recommend(long user)
Recommend all possible items for a user using the default exclude set.
|
java.util.List<java.lang.Long> |
recommend(long user,
int n)
Recommend up to
n items for a user using the default exclude set. |
protected java.util.List<java.lang.Long> |
recommend(long user,
int n,
LongSet candidates,
LongSet exclude)
Primary method for implementing an item recommender without details.
|
java.util.List<java.lang.Long> |
recommend(long user,
int n,
java.util.Set<java.lang.Long> candidates,
java.util.Set<java.lang.Long> exclude)
Produce a set of recommendations for the user.
|
protected abstract ResultList |
recommendWithDetails(long user,
int n,
LongSet candidates,
LongSet exclude)
Primary method for implementing an item recommender.
|
ResultList |
recommendWithDetails(long user,
int n,
java.util.Set<java.lang.Long> candidates,
java.util.Set<java.lang.Long> exclude)
Produce a set of recommendations for the user with additional details.
|
public java.util.List<java.lang.Long> recommend(long user)
Recommend all possible items for a user using the default exclude set.
This implementation delegates to recommend(long, int) with a length of -1.
recommend in interface ItemRecommenderuser - The user ID.ItemRecommender.recommend(long, int, Set, Set)public java.util.List<java.lang.Long> recommend(long user,
int n)
Recommend up to n items for a user using the default exclude set.
This implementation delegates to recommend(long, int, Set, Set) with a length of -1 and null sets.
recommend in interface ItemRecommenderuser - The user ID.n - The number of recommendations to return. Negative values request as many recommendations as possible.ItemRecommender.recommend(long, int, Set, Set)public java.util.List<java.lang.Long> recommend(long user,
int n,
@Nullable
java.util.Set<java.lang.Long> candidates,
@Nullable
java.util.Set<java.lang.Long> exclude)
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 \(\mathcal{C}\) and an exclude set \(\mathcal{E}\). The exclude set is applied to the candidate set, so the final effective candidate set is \(\mathcal{C} \backslash \mathcal{E}\).
The recommender is not guaranteed to return a full n recommendations. There are many reasons why it might return a shorter list, including lack of items, lack of coverage for items, or a predefined notion of a maximum recommendation list length. However, a negative value for n instructs the recommender to return as many as it can consistent with any limitations built in to its design and/or supporting algorithms.
This implementation delegates to recommend(long, int, LongSet, LongSet).
recommend in interface ItemRecommenderuser - The user’s IDn - The number of ratings to return. If negative, the recommender will return as many recommendations as possible.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.protected java.util.List<java.lang.Long> recommend(long user,
int n,
@Nullable
LongSet candidates,
@Nullable
LongSet exclude)
Primary method for implementing an item recommender without details. The default implementation delegates to recommendWithDetails(long, int, LongSet, LongSet).
user - The user ID.n - The number of recommendations to produce, or a negative value to produce unlimited recommendations.candidates - The candidate items, or null for default.exclude - The exclude set, or null for default.recommend(long, int, Set, Set)public ResultList recommendWithDetails(long user, int n, @Nullable java.util.Set<java.lang.Long> candidates, @Nullable java.util.Set<java.lang.Long> exclude)
ItemRecommenderProduce 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 may return subclasses of ResultList that provide access to additional details about each recommendation.
recommendWithDetails in interface ItemRecommenderuser - The user’s IDn - The number of ratings to return. If negative, then the recommender will return as many recommendations as possible.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.protected abstract ResultList recommendWithDetails(long user, int n, @Nullable LongSet candidates, @Nullable LongSet exclude)
Primary method for implementing an item recommender.
user - The user ID.n - The number of recommendations to produce, or a negative value to produce unlimited recommendations.candidates - The candidate items, or null for default.exclude - The exclude set, or null for default.recommendWithDetails(long, int, Set, Set)