Skip to main content

Bayesian Factorization Methods

Project description

GitHub Build Status Anaconda-Server Badge

What is Bayesian Matrix Factorization

Matrix factorization is a common machine learning technique for recommender systems, like books for Amazon or movies for Netflix.

Matrix Factorizaion

The idea of these methods is to approximate the user-movie rating matrix R as a product of two low-rank matrices U and V such that R ≈ U × V . In this way U and V are constructed from the known ratings in R, which is usually very sparsely filled. The recommendations can be made from the approximation U × V which is dense. If M × N is the dimension of R then U and V will have dimensions M × K and N × K.

Bayesian probabilistic matrix factorization (BPMF) has been proven to be more robust to data-overfitting compared to non-Bayesian matrix factorization.

What is SMURFF

SMURFF is a highly optimized and parallelized framework for Bayesian Matrix and Tensors Factorization. SMURFF supports multiple matrix factorization methods:

  • BPMF, the basic version;

  • Macau, adding support for high-dimensional side information to the factorization;

  • GFA, doing Group Factor Anaysis.

Macau and BPMF can also perform tensor factorization.

Examples

Documentation is generated from Jupyter Notebooks. You can find the notebooks in docs/notebooks and the resulting documentation on smurff.readthedocs.io

Installation

Using conda:

conda install -c vanderaa smurff

Compile from source code: see INSTALL.rst

Contributors

  • Jaak Simm (Macau C++ version, Cython wrapper, Macau MPI version, Tensor factorization)

  • Tom Vander Aa (OpenMP optimized BPMF, Matrix Cofactorization and GFA, Code Reorg)

  • Adam Arany (Probit noise model)

  • Tom Haber (Original BPMF code)

  • Andrei Gedich

  • Ilya Pasechnikov

  • Thanh Le Van (sythetic out-of-matrix prediction example)

  • Xiangju Qin (BPMF using posterior propagation)

Citing SMURFF

If you are using SMURFF in a scientific publication, please cite the following preprint plus the paper describing the corresponding algorithm:

SMURFF: a High-Performance Framework for Matrix Factorization arXiv preprint arXiv:1904:02514

When using pure Bayesian Probabilistic Matrix Factorization, please also cite:

Salakhutdinov R, Mnih A. Bayesian probabilistic matrix factorization using Markov chain Monte Carlo. In Proceedings of the 25th international conference on Machine learning (ICML ‘08), 2008. ACM, New York, NY, USA, 880-887.

When using Bayesian Factorization with Side Information, please also cite:

Simm J, Arany Á, Zakeri P, Haber T, Wegner JK, Chupakhin V, Ceulemans H, Moreau Y. Macau: Scalable Bayesian Factorization with High-Dimensional Side Information Using MCMC Proc. of the Machine Learning for Signal Processing (MLSP), 2017 IEEE 27th International Workshop on MLSP; 2017; Vol. 2017-September; pp. 1 - 6. Tokyo, Japan.

When using Group Factor Analysis, please also cite:

Klami A, Virtanen S, Leppäaho E, Kaski S., “Group Factor Analysis,” in IEEE Transactions on Neural Networks and Learning Systems, vol. 26, no. 9, pp. 2136-2147, Sept. 2015.

Acknowledgements

Over the course of the last 5 years, this work has been supported by the EU H2020 FET-HPC projects EPEEC (contract #801051), ExCAPE (contract #671555) and EXA2CT (contract #610741), and the Flemish Exaptation project.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

smurff-1.0-cp313-cp313-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.13Windows x86-64

smurff-1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

smurff-1.0-cp313-cp313-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

smurff-1.0-cp313-cp313-macosx_10_13_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

smurff-1.0-cp312-cp312-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.12Windows x86-64

smurff-1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

smurff-1.0-cp312-cp312-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

smurff-1.0-cp312-cp312-macosx_10_13_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

smurff-1.0-cp311-cp311-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.11Windows x86-64

smurff-1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

smurff-1.0-cp311-cp311-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

smurff-1.0-cp311-cp311-macosx_10_9_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

smurff-1.0-cp310-cp310-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.10Windows x86-64

smurff-1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

smurff-1.0-cp310-cp310-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

smurff-1.0-cp310-cp310-macosx_10_9_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

smurff-1.0-cp39-cp39-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.9Windows x86-64

smurff-1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.1 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

smurff-1.0-cp39-cp39-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

smurff-1.0-cp39-cp39-macosx_10_9_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

File details

Details for the file smurff-1.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: smurff-1.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for smurff-1.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 986be6bc84a909ec225c7e73320cc4138159fbc5ef23cb352960287cde1d004c
MD5 38c0ddf68496e858a8ddf53bfd1527c3
BLAKE2b-256 9ec4f4d655f1c8e7884c12da9d49e659f9bbf350dba0ec323972d2c2ba4d3448

See more details on using hashes here.

File details

Details for the file smurff-1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for smurff-1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 063c4113d7991b2fd6981d5f40f238a605b8fe747ce44312821ac27b8d6c2ab4
MD5 f8c46cf3189a7afdad9792aa44f19407
BLAKE2b-256 b00e6d82745569b62958bd975ac86ee36c0ad064858401f6f9d1e266060989a9

See more details on using hashes here.

File details

Details for the file smurff-1.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for smurff-1.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 62bb86e63ce9ea511d74e42a143e908bb496cede0b9aa0405063d3f3d395ad67
MD5 2c89562f647150b7a156afef7dabd95c
BLAKE2b-256 be6dc67bbf56207ed09925a3d99130e78373d66ed701bfbfc5da792f3d7b4aa8

See more details on using hashes here.

File details

Details for the file smurff-1.0-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for smurff-1.0-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 f2104e01bc24700ce8fcf0129f507fa5d13ed952b39b5e48bd4ab3cb2cd62cd7
MD5 6ec0c773a5e4285a669272ef1844f384
BLAKE2b-256 490dc913e620ca00d54890e4408ed962e94e1403830a94ac54d0881039e96cd2

See more details on using hashes here.

File details

Details for the file smurff-1.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: smurff-1.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for smurff-1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 7466f7eca44d91b574dab074e6b695430f0926e834de1a0aad2f3fdc87eca00d
MD5 63a0eac94dfc7f4833a3f57a83f49c72
BLAKE2b-256 5e6c30c4495f4e4fc18ae0fbc5124d41641dfcda7d3ff0ecd67f854eb85227d0

See more details on using hashes here.

File details

Details for the file smurff-1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for smurff-1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6d1125aab629861a484c958a44189dab0f061b50915a6ed75245be8797b47087
MD5 87660dc1731601b6006bad32e1da4ef4
BLAKE2b-256 d975cfad5fa9de8449cf6e4a9a0ef8d092f7091c48685a200ede811a65c04900

See more details on using hashes here.

File details

Details for the file smurff-1.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for smurff-1.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d7cb1118406403c80e57ea429ac85af0f09d1ab02fb44985928d9b650bbfa3bc
MD5 5bdb6fcd338233eb2a6dc0923fdf00bc
BLAKE2b-256 3e7b58e096ed57fb4a757fda45639a9c97c0a815974fbaf2057b1d88677b3c14

See more details on using hashes here.

File details

Details for the file smurff-1.0-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for smurff-1.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 180b1590432dc4ff0dc702b5d3e5ef4479910f62d2f1605d3c9cb3ab26036ccd
MD5 34c5a49289dc7aac2c79d9b0d6c1a4f0
BLAKE2b-256 967754b7f29f5508ff1dc8664ca6d32bed576bf57df99c26e318d10d8f665250

See more details on using hashes here.

File details

Details for the file smurff-1.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: smurff-1.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for smurff-1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 9d1923ec45277bff3fd11d632a37634f7e261c6558062f0bed1855a6f5e9e21c
MD5 342178d031e5c0085ec0a28502c066e0
BLAKE2b-256 ea8d2414cfbd5055f2ea69c2cdd20e8de883845fc69e10acd6a2e637c450976b

See more details on using hashes here.

File details

Details for the file smurff-1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for smurff-1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 911a70e1fceec8e5b3cfffa55aa766894991ac843a4e11d9241d310ffebc720c
MD5 affb442f855d54344e0622aba6069eee
BLAKE2b-256 c5c9961e5241dba2f700b0a50e70b0942b260f3811adeb337b8c0f3c954188a9

See more details on using hashes here.

File details

Details for the file smurff-1.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for smurff-1.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b52bfc8c2fc9da0f70186baae5e4b1aac6eebb5001b4f3c8ad2bfe15eb1336f0
MD5 a2260134b373c190ed4e5e68a2bd78cc
BLAKE2b-256 15972abebcc23185d40c8fd7e565a84919c81399ea0fc792f59e3f8c2b181f27

See more details on using hashes here.

File details

Details for the file smurff-1.0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for smurff-1.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a952f18982d56335734a4220e690b25030bc734a66d7bb262b6acdc33296ab28
MD5 b6f2de3e60b26233845c15e1c0eae633
BLAKE2b-256 8740f27b0172277bdb600b2329e1ecc44cf0a3d76cdab065c0b27d35ec85e767

See more details on using hashes here.

File details

Details for the file smurff-1.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: smurff-1.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for smurff-1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 cfd77bdfc97ed320898886ec07aa5e5594d3210d76b77682bc4d098cd2f97b7d
MD5 8e10d39497458964ab0b6cec11597d49
BLAKE2b-256 df1ce7fffb56cd672996a915fa1c6b391aba5e70ee01f8b2a6cdc57aca81ad0a

See more details on using hashes here.

File details

Details for the file smurff-1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for smurff-1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 094004a50590f5ad25d8284e5feffc1515b67381024d7a3fda0a8a6b1c581e83
MD5 6da2200f8480365f3100a9cbd6009fa4
BLAKE2b-256 9c98fc278b36e972a87bbb54c3ebc7584d16ab84b3494d6e8297af72838b0bf8

See more details on using hashes here.

File details

Details for the file smurff-1.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for smurff-1.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 68cb5927208998f35c9dbeb8a929c54620f912e6aa47ee82e8e280ec6249a1c4
MD5 9f1e9127130aa374b42138e257df29a0
BLAKE2b-256 3f350e79097dd4a1eedf4516d2ea4a01d2a7702464356d7394417e9b73a3ee49

See more details on using hashes here.

File details

Details for the file smurff-1.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for smurff-1.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 bdddcbd6873e2980967d547a95bc2210544892f4654302ac244f1adea69f5c8b
MD5 e0d7be90d667ce1923a6e05fed528b29
BLAKE2b-256 1f14e76f36d5921ed9367b44bd09d3ecf56a95fdddb0a6c67c9c7c70452241b6

See more details on using hashes here.

File details

Details for the file smurff-1.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: smurff-1.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for smurff-1.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 2efc6e4ffcb72a972bd247b2c3ccfa2f3bf2017c94a052c8ec1ac2b2d55e0f4c
MD5 c10e1aca125710691aa2c5f721b95ef1
BLAKE2b-256 62e66fb13fb91ed337d6aa5a4d6f6dedb9ef83e12132feae5839c989540aa294

See more details on using hashes here.

File details

Details for the file smurff-1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for smurff-1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 43868e0237cb994b1e20cb5d0d84f102549152cadea72163cd9d356998483587
MD5 e267f6c3e7489791201055d4ce1cac62
BLAKE2b-256 5e56f5908d2b7cd59aa8c1b9bfc05347718aefefb2b3e7f4099b8f7e8b22b671

See more details on using hashes here.

File details

Details for the file smurff-1.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

  • Download URL: smurff-1.0-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.9, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for smurff-1.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e856fe5a3067ae737c299dd46bf89040346578ab0caa8328a2a45ce53a587e1e
MD5 ee11bfe973a07b0c21208ea23e3388be
BLAKE2b-256 057e528812cd17ecb6af211f32407d1f3bcb33a987047ddb01745adf3ff641da

See more details on using hashes here.

File details

Details for the file smurff-1.0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: smurff-1.0-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 1.9 MB
  • Tags: CPython 3.9, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for smurff-1.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c834e3dfa3bc817dbc2ce73bb90a768baad30d4fe77b6af3d992f98b04d74717
MD5 d7b7b5769d042fb9179d5ad6da14f75c
BLAKE2b-256 d88dfc606c80065a8ccc82f5c90921294ae5aceef4f1130c8124e1282cacbaf9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page