Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added SimpleSGD item recommender #447

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

joaoms
Copy link
Contributor

@joaoms joaoms commented Jul 18, 2014

Hey Zeno.
I've been working on this algorithm. It's been published at UMAP this year (2014).
It's a really simple approach. It still has some problems, i'm dealing with right now, so i'll be contributing with more related to this.

PS: I don't really get most of the changes in the project file, maybe it's some kind of architecture issue...

Cheers,
João Vinagre

@zenogantner
Copy link
Owner

Hi João, thank you for the pull request.
I have 2 questions and 1 comment:

  1. What is the objective function that is optimized? I guess quadratic error. So it would be interesting to know how this compares to other approaches that optimize the same error, e.g. WRMF. Maybe this can be documented in the file (optional).
  2. What are the problems? I think we should know this when integrating it into the project.
  3. You still have commented-out print statements. These must go away before I merge the pull request ;-)

- Removed commented out debugging code
@joaoms
Copy link
Contributor Author

joaoms commented Jul 18, 2014

Hi Zeno,

  1. Yes it's the quadratic error, however i never compared it with WRMF. I've been using prequential evaluation (possibly a future contribution here, too) on the hit rate of recommendations themselves so i don't have a clue how the measure being optimized actually performs.
  2. I put the issues in the class comments. Basically the main issue is that the model (factor) saturates around a single prediction value and gradually loses predictive ability. I'm working on that issue in my PhD project, so i'll probably contribute with some more code in a few months (at most).
  3. Commented out devel code remains were removed.

I'm not in a hurry or anything, so if you feel like this needs improving before merging, that's ok with me ;)

@zenogantner
Copy link
Owner

Thank you for your answers.
You should definitely compare with WRMF, even on the non-incremental scenario.
The method should be roughly as good as WRMF, otherwise there is something wrong with the implementation.
Actually, such SGD methods have been used by almost all participants in the Yahoo! KDD Cup a few years back.

@zenogantner
Copy link
Owner

I will check out your repo and test it this weekend.
I will also read the paper.
Let me know if you have more information.

@joaoms
Copy link
Contributor Author

joaoms commented Jul 18, 2014

Ok thanks. If you find any issue just let me know.

* RAISGD.cs: Added algorithm: RAISGD

* ISGD.cs: - Removed unused libraries
- Updated link to article
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants