fastFM icon indicating copy to clipboard operation
fastFM copied to clipboard

fm.predict gives nan values

Open chrisbangun opened this issue 7 years ago • 3 comments

Hi,

I follow the step-by-step provided in the test_ranking.py in order to use fastFM for ranking problem. Using my own dataset, the model returns nan prediction value.

fm = bpr.FMRecommender(n_iter=2000,
                           init_stdev=0.01, l2_reg_w=.5, l2_reg_V=.5, rank=2,
                           step_size=.002, random_state=11)

fm.fit(x_train_sp_matrix,compares)

y_pred = fm.predict(X_test)

the X_test is simply the copy of my training data. what would be the case where fm model returns nan? any help would really be appreciated. thanks

chrisbangun avatar Nov 28 '17 10:11 chrisbangun

I have the same problem but with sgd.FMClassification

todor-markov avatar Feb 26 '18 03:02 todor-markov

Is there anyone know how to solve it?

yushcs avatar Jun 11 '18 12:06 yushcs

Unfortunately many issues can lead to nan predictions.

  • Make sure you model inputs are sound.
  • If the predictions are nan check if the model parameter are nan too.
  • Both bpr.FMRecommender and sgd.FMClassification use stochastic gradient based solvers for the parameter estimation (fit). This means they are sensitive to the step_size and initial values init_stdev hyper-parameter. Getting this values wrong can often lead to 'nan' predictions.
  • The bpr implementation is not very robust and should currently only be used for small scale experiments.

@todor-markov I would recomment to use use the als/mcmc solver instead.

ibayer avatar Jun 11 '18 19:06 ibayer