zenogantner / MyMediaLite

recommender system library for the CLR (.NET)
http://mymedialite.net
499 stars 192 forks source link

Added SimpleSGD item recommender #447

Open joaoms opened 9 years ago

joaoms commented 9 years ago

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 commented 9 years ago

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 ;-)
joaoms commented 9 years ago

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 commented 9 years ago

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 commented 9 years ago

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 commented 9 years ago

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