yihong-chen / neural-collaborative-filtering

pytorch version of neural collaborative filtering

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Missing layer and training workflow

karkawal opened this issue · comments

Hi,

Thank you for the work you have done. It is extremely useful and the code is very clean. I wish every paper implementation could be like this :) I have noticed three major discrepancies from what is written in the original paper. Could you explain to me if they are on purpose and if yes, what is the reasoning behind them?

  1. I think that in neuMF architecture you are missing one linear layer between embeddings and collective layer for GMF and MLP, according to paper schema there should be one.

  2. I am a bit lost with loading pretrained weights in MLP. I see that you offer a possibility to load pretrained GMF embeddings to MLP model. I believe that according to paper they are separate embeddings and are not mixed in the original work. Does this change provide noticable improvement?

Hi, Sorry for the late reply. Regarding your questions

  1. For there GMF, what you described is correct. But for NeuMF, according to Equation (12) in the paper, there is no such layer.

  2. Good question! I think, in Section 3.4.1 of the paper, the authors talked about pre-training in NeuMF. In my experiments, I found pre-training generally help the model converge earlier though not necessarily at a better performance.

Hi,

  1. Thank you for pointing that out, I have analyzed a paper and finally noticed it.
  2. I will take that into consideration and try to recreate them.

Thank you for your answers and putting some light on those matters!