Metadata-Version: 1.1
Name: implicit
Version: 0.3.6
Summary: Collaborative Filtering for Implicit Datasets
Home-page: http://github.com/benfred/implicit/
Author: Ben Frederickson
Author-email: ben@benfrederickson.com
License: MIT
Description-Content-Type: UNKNOWN
Description: Implicit
        ========
        
        `Build Status <https://travis-ci.org/benfred/implicit>`__ `Windows Build
        Status <https://ci.appveyor.com/project/benfred/implicit>`__
        
        Fast Python Collaborative Filtering for Implicit Datasets.
        
        This project provides fast Python implementations of several different
        popular recommendation algorithms for implicit feedback datasets:
        
        -  Alternating Least Squares as described in the papers `Collaborative
           Filtering for Implicit Feedback
           Datasets <http://yifanhu.net/PUB/cf.pdf>`__ and `Applications of the
           Conjugate Gradient Method for Implicit Feedback Collaborative
           Filtering <https://pdfs.semanticscholar.org/bfdf/7af6cf7fd7bb5e6b6db5bbd91be11597eaf0.pdf>`__.
        
        -  `Bayesian Personalized
           Ranking <https://arxiv.org/pdf/1205.2618.pdf>`__.
        
        -  Item-Item Nearest Neighbour models using Cosine, TFIDF or BM25 as a
           distance metric.
        
        All models have multi-threaded training routines, using Cython and
        OpenMP to fit the models in parallel among all available CPU cores. In
        addition, the ALS and BPR models both have custom CUDA kernels -
        enabling fitting on compatible GPU’s. Approximate nearest neighbours
        libraries such as `Annoy <https://github.com/spotify/annoy>`__,
        `NMSLIB <https://github.com/searchivarius/nmslib>`__ and
        `Faiss <https://github.com/facebookresearch/faiss>`__ can also be used
        by Implicit to `speed up making
        recommendations <https://www.benfrederickson.com/approximate-nearest-neighbours-for-recommender-systems/>`__.
        
        To install:
        
        ::
        
           pip install implicit
        
        Basic usage:
        
        .. code:: python
        
           import implicit
        
           # initialize a model
           model = implicit.als.AlternatingLeastSquares(factors=50)
        
           # train the model on a sparse matrix of item/user/confidence weights
           model.fit(item_user_data)
        
           # recommend items for a user
           user_items = item_user_data.T.tocsr()
           recommendations = model.recommend(userid, user_items)
        
           # find related items
           related = model.similar_items(itemid)
        
        The examples folder has a program showing how to use this to `compute
        similar artists on the last.fm
        dataset <https://github.com/benfred/implicit/blob/master/examples/lastfm.py>`__.
        
        For more information see the
        `documentation <http://implicit.readthedocs.io/>`__.
        
        Articles about Implicit
        ^^^^^^^^^^^^^^^^^^^^^^^
        
        These blog posts describe the algorithms that power this library:
        
        -  `Finding Similar Music with Matrix
           Factorization <https://www.benfrederickson.com/matrix-factorization/>`__
        -  `Faster Implicit Matrix
           Factorization <https://www.benfrederickson.com/fast-implicit-matrix-factorization/>`__
        -  `Implicit Matrix Factorization on the
           GPU <https://www.benfrederickson.com/implicit-matrix-factorization-on-the-gpu/>`__
        -  `Approximate Nearest Neighbours for Recommender
           Systems <https://www.benfrederickson.com/approximate-nearest-neighbours-for-recommender-systems/>`__
        -  `Distance Metrics for Fun and
           Profit <https://www.benfrederickson.com/distance-metrics/>`__
        
        There are also several other blog posts about using Implicit to build
        recommendation systems:
        
        -  `Recommending GitHub Repositories with Google BigQuery and the
           implicit
           library <https://medium.com/@jbochi/recommending-github-repositories-with-google-bigquery-and-the-implicit-library-e6cce666c77>`__
        -  `Intro to Implicit Matrix Factorization: Classic ALS with Sketchfab
           Models <http://blog.ethanrosenthal.com/2016/10/19/implicit-mf-part-1/>`__
        -  `A Gentle Introduction to Recommender Systems with Implicit
           Feedback <https://jessesw.com/Rec-System/>`__.
        
        Requirements
        ^^^^^^^^^^^^
        
        This library requires SciPy version 0.16 or later. Running on OSX
        requires an OpenMP compiler, which can be installed with homebrew:
        ``brew install gcc``.
        
        GPU Support requires at least version 8 of the `NVidia CUDA
        Toolkit <https://developer.nvidia.com/cuda-downloads>`__. The build will
        use the ``nvcc`` compiler that is found on the path, but this can be
        overriden by setting the CUDAHOME enviroment variable to point to your
        cuda installation.
        
        This library has been tested with Python 2.7, 3.5 and 3.6 on Ubuntu, OSX
        and Windows.
        
        Benchmarks
        ^^^^^^^^^^
        
        Simple benchmarks comparing the ALS fitting time versus `Spark and QMF
        can be found
        here <https://github.com/benfred/implicit/tree/master/benchmarks>`__.
        
        Optimal Configuration
        ^^^^^^^^^^^^^^^^^^^^^
        
        I’d recommend configuring SciPy to use Intel’s MKL matrix libraries. One
        easy way of doing this is by installing the Anaconda Python
        distribution.
        
        For systems using OpenBLAS, I highly recommend setting ‘export
        OPENBLAS_NUM_THREADS=1’. This disables its internal multithreading
        ability, which leads to substantial speedups for this package. Likewise
        for Intel MKL, setting ‘export MKL_NUM_THREADS=1’ should also be set.
        
        Released under the MIT License
        
Keywords: Matrix Factorization,Implicit Alternating Least Squares,Collaborative Filtering,Recommender Systems
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Natural Language :: English
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Cython
Classifier: Operating System :: OS Independent
Classifier: Topic :: Software Development :: Libraries :: Python Modules
