Keras expects float in model training so model definition should be;
train model
history = train_model(GMF_model, 'adam', BATCH_SIZE, EPOCHS, VAL_SPLIT,
inputs=[df_train.userId.values.astype(np.float32), df_train.movieId.values.astype(np.float32)],
outputs=df_train.rating.values)