I have a number of boolean data sets, like:
Books:
book_id user_id
1 1
2 1
3 1
3 2
3 3
and
Movies:
movie_id user_id
1 1
1 2
1 3
2 5
This means, that user_id represent the same entity across all datasets (user id:1 from books is the same user id:1 from movies).
What I need is to create a list of suggested Users (preferable ordered and with a visible percentage), based on the input, which includes ids of both movies and books.
Like:
input: [movie1_id, movie2_id, book1_id]
result: [user1_id, user5_id ..]
Entities (books and movies) ids are not unique, that's why we store theses datasets separately (in DB tables, and I use BooleanPref);
That's clear how to have per-entity recommendation with, for example, GenericBooleanPrefItemBasedRecommender
.
Is it possible to handle it using Mahout (0.9 to be specific), and have this kind of multi-input recommendations?
Thank you!
So you are recommending users to movies. Movies are "users" in the model and users are "items". You can use any algorithm to handle this kind of recommender problem.
You want to add books to the mix. It sounds like you just also want books in the model, also as "users" that you can recommend to. If so, just do that. You will need a scheme to map book and movie IDs to identifiers that do not overlap.