Methods for Recommendations and Boosting
This topic provides an overview of different methods for generating recommendations and boosts. "Content-based" and "collaborative" recommendations are two broad categories. More specific recommendation methods are also explained.
Content-based vs collaborative recommendations
Recommendation methods can be divided into two broad categories: collaborative recommendations and content-based recommendations.
Collaborative recommendations always require signals. Some also require a job that pre-computes a matrix of values that can be queried. When these values are used for boosting, then certain query pipeline stages are needed as well.
Method | Requires aggregated signals | Required job | Boosting stage |
---|---|---|---|
Collaborative recommendations These methods analyze how users have interacted with documents. |
|||
✓ |
Recommend Items for Item (ALS)
or
|
||
✓ |
|||
✓ |
|||
✓ |
|||
✓ |
|||
✓ |
|||
Content-based recommendations These methods analyze the content of documents or queries. |
|||
Fusion recommendation and boosting methods
This section provides an overview of each method, with links to more detailed topics.
Collaborative recommendations | Content-based recommendations |
---|---|
When you enable recommendations, this automatically enables the items-for-user and items-for-item recommendation methods. To use additional recommendation methods, you must configure them separately.
Items-for-item recommendations
Items-for-item recommendations present items that are similar to a specified item. For example, when the user is viewing a BMX bicycle, Fusion can recommend other BMX bicycles. Similarity can be based on different criteria, such as click patterns, people who bought this also bought that, percentage match of document tags, and so on.
See Items-for-Item Recommendations for details.
Items-for-user recommendations
Items-for-user recommendations use the Recommend Items for User query stage to present items that are similar to ones in which the user has previously shown interest, based on the user’s search history, browsing history, purchase history, and so on. This is one type of collaborative recommendation.
See Items-for-User Recommendations for details.
Items-for-query recommendations
The Items for Query recommender is the primary algorithm that supports recommendations on the search results page.
Items-for-query recommendations are based on how other users interacted with search results from the same query. This is one type of collaborative recommendation.
For example, if users have searched for "titanic" in the past and many of them clicked on the search result for the DVD of the movie Titanic (as opposed to books or memorabilia), then this method boosts the DVD item on subsequent searches for "titanic".
See Items-for-Query Recommendations for details.
Queries-for-query recommendations
Queries-for-query recommendations are queries performed by other users who also performed the current query. For example, when a user searches for "madonna", your app may also suggest searches for "evita", "a league of their own", "lady gaga", and so on.
See Queries for Query for details.
Boost with signals
The Boost With Signals query pipeline stage performs automatic boosts based on the contents of the aggregated signals collection. For this type of boosting, signals must be enabled but recommendations need not be.
See Boost With Signals for details.
Users-for-item recommendations
Users-for-item recommendations retrieve the set of users who have interacted with an item, weighted by the number of interactions. This can be useful for community-driven use cases or for marketing campaigns. For example, on your organization’s intranet, clicking a search result could display the item plus a list of colleagues who have interacted with the same item.
See Users-for-Item Recommendations for details.
Boost documents
The Boost Documents query pipeline stage adds boosting parameters to matched documents based on user-defined rules. Boosts are defined with a term value to boost and the boost factor to add. The boosting parameters are added to the bq
Solr query parameter.
See Boost Documents for details.
Parameterized boosting
The Parameterized Boosting query pipeline stage reads the boostValues
(in List<DocumentResult>
format) from the context variable (added by a Rollup Aggregation stage or a JavaScript stage), and adds boosts to the main query using bq
or boost
based on the stage configuration. The weights for the boost values can also be scaled.
See Parameterized Boosting for details.
More Like This
This stage uses the content of the current document to query for similar documents, using Solr’s MoreLikeThis component.
This stage provides content-based recommendations. For collaborative recommendations, use the Recommend Items for Item stage.
See Solr MoreLikeThis for details.
Business rules
Business rules are manually-created formulas for rewriting queries. This is the most versatile strategy for creating custom query rewrites. It supports a variety of conditions and actions to address a wide range of use cases. When you need a very specific query rewrite, this is the best strategy.
Business rules are applied in the Apply Rules stage of the query pipeline.
See Business Rules to learn how to create, edit, and publish business rules. See Query Rewriting for additional query rewriting methods.
Choosing between ALS and BPR algorithms
When configuring items-for-item, items-for-user, or user-for-item recommendations, you can choose between two jobs: one that uses the Alternating Least Squares (ALS) algorithm and another that uses a Bayesian Personalized Ranking (BPR) algorithm. The BPR job is recommended for better results and a shorter running time. It is available in Fusion 5.2 and later.
BPR algorithm
The Bayesian Personalized Ranking (BPR) algorithm is used to configure items-for-item, items-for-user, or user-for-item recommendations. The BPR job generates effective results in a short run time. See the BPR Recommender for more information.