item predictions taking into account ratings as input....

23 views
Skip to first unread message

pierre-henri

unread,
Sep 23, 2016, 5:02:01 AM9/23/16
to MyMediaLite
Hi,

I'd like to get as recommendations a list of items for each user. This is what propose "item_recommendation.exe" if I specify a prediction-file for instance.
But in my case, I'd like to have such output (i.E list ranked of item for each user) but with an algorihtm taking into account the rating (not Positiv Only PO input).
Indeed I have available these ratings (so this is more information than PO) in input (and I do not want to turn it in PO with a threshold)

So how can I do that with Mymedialite (of course I can ask for each rating of couple (user, item)  - but it is reallly lot of data - and after sorted for each user upon predicted rating) . But maybe is it possible to that in a simpler way ?

Best regards.

Zeno Gantner

unread,
Sep 29, 2016, 7:00:33 PM9/29/16
to mymed...@googlegroups.com

Hi Henri,

Am 23.09.2016 11:02 vorm. schrieb "pierre-henri" <boardw...@gmail.com>:
>
> Hi,
>
> I'd like to get as recommendations a list of items for each user. This is what propose "item_recommendation.exe" if I specify a prediction-file for instance.
> But in my case, I'd like to have such output (i.E list ranked of item for each user) but with an algorihtm taking into account the rating (not Positiv Only PO input).
> Indeed I have available these ratings (so this is more information than PO) in input (and I do not want to turn it in PO with a threshold)

You can have a look at the executable for rating-based ranking. It at least allows you to evaluate rating predictors with top-n metrics.

It may not be what you are looking for, though.

In principle, a RatingPredictor could be trained not to be good mostly at predicting ratings for arbitrary given user-item pairs, but instead let its output score express the probability that a user will really interact with the item.

BPR can be naturally extended to support different ratings/relevance levels. WRMF is actually already defined in a way (in the paper, not in MyMediaLite's implementation) to make use of non-binary things like access counts, playing times, or ratings.

> So how can I do that with Mymedialite (of course I can ask for each rating of couple (user, item)  - but it is reallly lot of data - and after sorted for each user upon predicted rating) . But maybe is it possible to that in a simpler way ?

Do you are basically looking for a way to reduce the number of candidates?

You could eg use a user-based kNN model to get the items accessed by the given user's neighbors. This is currently not implemented in MyMediaLite, but very easy to do.

One could introduce an ICandidateGenerator interface with 1 (or 2) method(s) GenerateCandidates(user) and let some of the kNN methods implement it, and at it to the 2 top-n programs, with a parameter --candidate-generator and a similar infrastructure as the one used for --recommender.

There are also other ways to reduce the number of candidates:
- uniform sampling
- sampling by popularity
- filtering by genre or other attributes
- sampling by novelty, access recency, etc.
- geographic filtering
... depending on your application.

I hope that helps. Let me know if you have further questions.

Cheers,
   Z.

pierre-henri

unread,
Nov 10, 2016, 8:47:07 AM11/10/16
to MyMediaLite
Thanks.
Being able to evaluate rating-predictors results with top-n metrics is helpful for my case.
I intend to look at into the code to check how the program manage to order results with the predicted ratings (and perform top-n metrics).

No, at this stage, I am not interested at limiting the number of candidates (if I need, I will simply order them and cut @n)

Best regards.
Reply all
Reply to author
Forward
0 new messages