Code Monkey home page Code Monkey logo

Comments (9)

yihong-chen avatar yihong-chen commented on August 20, 2024

I think NCF addresses implicit feedback as well. For dataset only containing interactions between users and items, you can try to use BPR(Bayesian Personalized Ranking) criterion as the loss function. Specifically, the existing interactions are positive samples while the negative ones are sampled manually.

from neural-collaborative-filtering.

RuihongQiu avatar RuihongQiu commented on August 20, 2024

According to the origin paper, NCF is proposed to deal with implicit feedback. May I ask why this repo used normalization to process ratings?

from neural-collaborative-filtering.

yihong-chen avatar yihong-chen commented on August 20, 2024

Negative items get 0 ratings in this repo. And I normalized the ratings into [0, 1]. I think it is fine if you do not normalize the rating. But it might be hard to tune the hyper-params then.

from neural-collaborative-filtering.

RuihongQiu avatar RuihongQiu commented on August 20, 2024

Negative items get 0 ratings in this repo. And I normalized the ratings into [0, 1]. I think it is fine if you do not normalize the rating. But it might be hard to tune the hyper-params then.

I take a look at the implementation by the authors and found the function here. They just set all negative items to 0 and all other items interacted with users to 1 rather normalizing them (implicit feedback V.S. explicit feedback).

from neural-collaborative-filtering.

yihong-chen avatar yihong-chen commented on August 20, 2024

@RuihongQiu Thank you for reporting the bug. I added support for implicit feedback in the latest commit. Could you check if it works well? I only tested the GMF .

from neural-collaborative-filtering.

RuihongQiu avatar RuihongQiu commented on August 20, 2024

@LaceyChen17 I will check it out soon.

Thanks a lot! I think the new code works.

I have checked all the experiments with new rating settings.
image

The first two experiments are actually explicit feedback with normalization on ratings.
Filenames ended with "implicit" are the result of the newest commit.

I also implement a new binarize method which just works as how "_normalize" works. It avoids the many lines change of codes compared to the newest version.
image

The results of binarize methods are filenames ended with "binarize".
If you would'n mind, I can pull a request.

from neural-collaborative-filtering.

yihong-chen avatar yihong-chen commented on August 20, 2024

Pull requests are extremely welcome!!! BTW Could you also share your training curves by updating README.md ?

from neural-collaborative-filtering.

RuihongQiu avatar RuihongQiu commented on August 20, 2024

I've opened a pull request for update.

from neural-collaborative-filtering.

yihong-chen avatar yihong-chen commented on August 20, 2024

Merged. Thank you so much!

from neural-collaborative-filtering.

Related Issues (19)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.