How to use the demo

Welcome to SIRUP, the profile-based book recommender!


This demo allows to explore book recommendations, which are produced based on the given textual user profile and situative context (such as user query).
In this demo you can examine two book review communities: Goodreads and Amazon; you can switch between them using the menu above.
To get the personalized recommendations follow these steps:

Step 1: define the user profile

The user profile is a concise text (128-token long), which summarizes the reader's book interests and is used by the downstream recommender to personalize the predictions.
You can choose between predefined users or manual user mode.

Predefined users mode

In this mode you can use a dropdown to select one of the readers from the original book community (Goodreads/Amazon).
To help you with the choice, we asked ChatGPT to generate a punchy one-line description for each user, characterizing their reading preferences.
In addition to that, we indicate how much each reader reviewed, splitting them in three groups: novices, fans and ambassadors.
After the user is chosen, you can see the entirety of their reviews on the bottom of the page.

Next, select a method, which will be used for text compression, to turn all user's reviews into a concise 128-token profile ("Select text selection method" dropdown).
We offer the following profile construction options: The input field for the profile will be automatically populated with the resulting profile text, and you can move to next step!

Manual mode

In this option you can simply type in your profile, by selecting "Option 1: Input text profile". Be aware, that the inputs longer than 128 tokens will be truncated.

Alternatively, you can input the reviews for the books one by one, by selecting "Option 2: Input reviews".
You will see a table in which you can specify the title of the book you have reviewed (optionally with the help of autocomplete) and the review of this book.
Add as many reviews as you like and press the "create profile" button to see your resulting profile. Note, that some methods use only review or only title text.

Additionally you can export and upload the reviews you just entered, so that you have them stored on your device. To upload the reviews, make sure the file is formatted as a two-column .csv

Step 2: define the search context

In this step you can define the situative context of the recommendations you would like to see, following your current information needs.
There are several modes for that available in the demo ("How to make a prediction" dropdown):
There also two context-free modes:
Finally, select the pretrained recommender model that you are going to use ("select a model" dropdown). They differ in the profile selection methods they were trained on (consequently they have same names).
We generally recommend selecting the same prediction model as the selected profile creation method.

After all that you can finally press the button PREDICT and get your recommendations!

Investigating recommendations

The results that you get consist of two parts.
First, we show the saliency of profile input terms, that were guiding the model's prediction. The show them with colors, where the darker words are more important.
You can also hover over the words to see the exact normalized weight given by the model.

The main result is a list of recommended books, each with image, title, categories and description. You can click on the tile with the book to get to the page of the item on the original website (Goodreads/Amazon).
Alongside, we show the scores from the recommender model and the book's rank (the list is already sorted by rank).
In cases where BM-25 contextualized recommendations were used, we also show the book's rank according to BM-25. This can give you an insight, how using the profile text can influence the ranking.

Background

We use two-tower BERT as a backbone recommendation model; we fine-tune it end-to-end on the text-rich data from our datasets (for more details on the dataset, press "Dataset statistics" button).