NicolasHug / Surprise

A Python scikit for building and analyzing recommender systems
http://surpriselib.com
BSD 3-Clause "New" or "Revised" License
6.4k stars 1.01k forks source link

An example of SVD++ for implicit dataset feedback? #366

Closed echatzikyriakidis closed 4 years ago

echatzikyriakidis commented 4 years ago

How SVD++ can work with implicit feeback?

An example would be perfect.

So far I was using the implicit library for implicit CF.

Does anyone has an example to share?

Thank you

NicolasHug commented 4 years ago

SVD++ uses the existence of a rating (whatever its actual value) as implicit feedback.

It can be extended to support "native" implicit ratings but this is not supported in surprise. Details may be found in the original paper(s) which are linked in the docs.

echatzikyriakidis commented 4 years ago

Hi,

I have only interactions of users and items.

No expicit ratings. No negative feedback.

I can create two dataset versions:

1) userId, itemId, 1

2) userId, itemId, number_of_times_the_interaction_happened

Will it work with any of the above approaches?

Some implicit algorithms (like ALS) set by default 0 to all interactions that haven't exist. This is how the implicitlib works. Will SVD++ will work also that way?

Thank you.

NicolasHug commented 4 years ago

There are extensions of SVD to handle pure implicit feedbacks but they're not implemented in surprise. You'll have better luck with other libraries like implicit which are specifically designed for these use-cases.

echatzikyriakidis commented 4 years ago

Thank you @NicolasHug !

I will go with implicit.

By the way implicit is a great library for implicit datasets but it does not have the out of the box candies you have:

Cross validation, GridSearch, etc.

You need to implement them manually.

Stay safe!