Integers casted to float32 can lose precision
When receiving IDs for users and items, they get casted to float32. For values above 2^23 (around 8.3 million), the conversion might be imprecise, since not all integers higher than that are possible to represent exactly in float32, and thus some user and items might get mixed up with others or might get their IDs reassiged, which is problematic when predicting.
How do you recommend we solve?
Easiest way would be to change the interfaces towards passing three arrays instead (user, item, rating).
Can you reference a link to the particular conversion that you think is concerning
Also if you write a fix for this I will merge. Sorry about the delay on your last one, I'm going to try to maintain this repo better from now on.
I think lets keep the python interface the same, but yea we could change whats passed to the c++ bindings under the hood.
@david-cortes the better solution might be to do arr.astype(np.int32). I don't see why that won't work, but still need to look at this - its been a moment.