implicit v0.5.0 Release Notes

  • ๐Ÿ’ฅ Breaking API Changes

    The API for implicit has substantially changed in v0.5.0 - and any code written for the previous API will need to be rewritten:

    • ๐Ÿ”„ Change model.fit to take a user_items sparse matrix #484
    • Return numpy arrays from recommend methods #482
    • Don't require empty rows in user_items and item_users parameters #526
    • Unify API for rank_items/recommend/recommend_all #489

    ๐ŸŽ Performance Improvements

    • Speedup evaluation by using batch recommend functions #520
    • ๐Ÿ‘‰ Use FAISS for GPU inference #506
    • Multithreaded speedups for CPU models #517
    • ๐Ÿ‘‰ Use thrust::binary_search to verify negative samples on GPU #524
    • ๐Ÿš€ Release GIL on GPU calls #528

    ๐Ÿ†• New Features

    • โž• Add incremental retraining support for ALS models #527
    • Add filtering for similar_items and similar_users #488
    • โž• Add support for recalculate_users/items on the GPU #515
    • โž• Add methods for converting MF models to/from gpu #521
    • โž• Add a tutorial notebook for the lastfm example #529
    • Approximate nearest neighbour for BPR/LMF and GPU models #487
    • Dynamically detect CUDA availability #174