{
  "_id": "6a495c9577d6db3f2f9648f1",
  "Package": "cmfrec",
  "Type": "Package",
  "Title": "Collective Matrix Factorization for Recommender Systems",
  "Version": "3.5.1-3",
  "Authors@R": "c(\nperson(given=\"David\", family=\"Cortes\", role=c(\"aut\", \"cre\", \"cph\"),\nemail=\"david.cortes.rivera@gmail.com\"),\nperson(given=\"Jorge\", family=\"Nocedal\", role=\"cph\",\ncomment=\"Copyright holder of included LBFGS library\"),\nperson(given=\"Naoaki\", family=\"Okazaki\", role=\"cph\",\ncomment=\"Copyright holder of included LBFGS library\"),\nperson(given=\"David\", family=\"Blackman\", role=\"cph\",\ncomment=\"Copyright holder of original Xoshiro code\"),\nperson(given=\"Sebastiano\", family=\"Vigna\", role=\"cph\",\ncomment=\"Copyright holder of original Xoshiro code\"),\nperson(given=\"NumPy\", family=\"Developers\", role=\"cph\",\ncomment=\"Copyright holder of formatted ziggurat tables\")\n)",
  "Maintainer": "David Cortes <david.cortes.rivera@gmail.com>",
  "URL": "https://github.com/david-cortes/cmfrec",
  "BugReports": "https://github.com/david-cortes/cmfrec/issues",
  "Description": "Collective matrix factorization (a.k.a. multi-view or\nmulti-way factorization, Singh, Gordon, (2008)\n<doi:10.1145/1401890.1401969>) tries to approximate a\n(potentially very sparse or having many missing values) matrix\n'X' as the product of two low-dimensional matrices, optionally\naided with secondary information matrices about rows and/or\ncolumns of 'X', which are also factorized using the same latent\ncomponents. The intended usage is for recommender systems,\ndimensionality reduction, and missing value imputation.\nImplements extensions of the original model (Cortes, (2018)\n<arXiv:1809.00366>) and can produce different factorizations\nsuch as the weighted 'implicit-feedback' model (Hu, Koren,\nVolinsky, (2008) <doi:10.1109/ICDM.2008.22>), the\n'weighted-lambda-regularization' model, (Zhou, Wilkinson,\nSchreiber, Pan, (2008) <doi:10.1007/978-3-540-68880-8_32>), or\nthe enhanced model with 'implicit features' (Rendle, Zhang,\nKoren, (2019) <arXiv:1905.01395>), with or without side\ninformation. Can use gradient-based procedures or\nalternating-least squares procedures (Koren, Bell, Volinsky,\n(2009) <doi:10.1109/MC.2009.263>), with either a Cholesky\nsolver, a faster conjugate gradient solver (Takacs, Pilaszy,\nTikk, (2011) <doi:10.1145/2043932.2043987>), or a non-negative\ncoordinate descent solver (Franc, Hlavac, Navara, (2005)\n<doi:10.1007/11556121_50>), providing efficient methods for\nsparse and dense data, and mixtures thereof. Supports L1 and L2\nregularization in the main models, offers alternative\nmost-popular and content-based models, and implements\nfunctionality for cold-start recommendations and imputation of\n2D data.",
  "License": "MIT + file LICENSE",
  "VignetteBuilder": "knitr",
  "RoxygenNote": "7.3.3",
  "NeedsCompilation": "yes",
  "Repository": "https://david-cortes.r-universe.dev",
  "Date/Publication": "2026-06-21 13:53:31 UTC",
  "RemoteUrl": "https://github.com/david-cortes/cmfrec",
  "RemoteRef": "HEAD",
  "RemoteSha": "aa46841a3c96c49ffa61933b5656523e3f759952",
  "Packaged": {
    "Date": "2026-06-24 04:42:52 UTC",
    "User": "root"
  },
  "Author": "David Cortes [aut, cre, cph],\nJorge Nocedal [cph] (Copyright holder of included LBFGS library),\nNaoaki Okazaki [cph] (Copyright holder of included LBFGS library),\nDavid Blackman [cph] (Copyright holder of original Xoshiro code),\nSebastiano Vigna [cph] (Copyright holder of original Xoshiro code),\nNumPy Developers [cph] (Copyright holder of formatted ziggurat tables)",
  "_user": "david-cortes",
  "_type": "src",
  "_file": "cmfrec_3.5.1-3.tar.gz",
  "_fileid": "https://r2.ropensci.org/ceb9f65cfa16c45fb3a375efe894f2482399e716b70c26a220063b23b257687f",
  "_filesize": 644074,
  "_sha256": "ceb9f65cfa16c45fb3a375efe894f2482399e716b70c26a220063b23b257687f",
  "_expires": "2026-10-12T19:18:43.000Z",
  "_created": "2026-06-24T04:42:52.000Z",
  "_published": "2026-07-04T19:18:45.221Z",
  "_jobs": [
    {
      "job": 85159878463,
      "time": 200,
      "config": "linux-devel-arm64",
      "r": "4.7.0",
      "check": "NOTE",
      "artifact": "7840346949"
    },
    {
      "job": 85159878530,
      "time": 190,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "NOTE",
      "artifact": "7840344542"
    },
    {
      "job": 85159878417,
      "time": 202,
      "config": "linux-release-arm64",
      "r": "4.6.0",
      "check": "NOTE",
      "artifact": "7840347176"
    },
    {
      "job": 85159878465,
      "time": 194,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "NOTE",
      "artifact": "7840345049"
    },
    {
      "job": 85159878544,
      "time": 99,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "NOTE",
      "artifact": "7840324727"
    },
    {
      "job": 85159878454,
      "time": 166,
      "config": "macos-oldrel-x86_64",
      "r": "4.5.3",
      "check": "NOTE",
      "artifact": "7840339415"
    },
    {
      "job": 85159878538,
      "time": 86,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "NOTE",
      "artifact": "7840322617"
    },
    {
      "job": 85159878559,
      "time": 272,
      "config": "macos-release-x86_64",
      "r": "4.6.0",
      "check": "NOTE",
      "artifact": "7840361890"
    },
    {
      "job": 85159878205,
      "time": 250,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7840304337"
    },
    {
      "job": 85159878318,
      "time": 209,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7840348308"
    },
    {
      "job": 85159878531,
      "time": 107,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "NOTE",
      "artifact": "7840326781"
    },
    {
      "job": 85159878539,
      "time": 99,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "NOTE",
      "artifact": "7840325162"
    },
    {
      "job": 85159878466,
      "time": 104,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "NOTE",
      "artifact": "7840326027"
    }
  ],
  "_host": "GitHub-Actions",
  "_buildurl": "https://github.com/r-universe/david-cortes/actions/runs/28075541948",
  "_status": "success",
  "_upstream": "https://github.com/david-cortes/cmfrec",
  "_commit": {
    "id": "aa46841a3c96c49ffa61933b5656523e3f759952",
    "author": "david-cortes <david.cortes.rivera@gmail.com>",
    "committer": "david-cortes <david.cortes.rivera@gmail.com>",
    "message": "fix doc links\n",
    "time": 1782050011
  },
  "_maintainer": {
    "name": "David Cortes",
    "email": "david.cortes.rivera@gmail.com",
    "login": "david-cortes",
    "description": "",
    "uuid": 11860098
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "Matrix",
      "role": "Suggests"
    },
    {
      "package": "MatrixExtra",
      "role": "Suggests"
    },
    {
      "package": "RhpcBLASctl",
      "role": "Suggests"
    },
    {
      "package": "recosystem",
      "version": ">= 0.5",
      "role": "Suggests"
    },
    {
      "package": "recommenderlab",
      "version": ">= 0.2-7",
      "role": "Suggests"
    },
    {
      "package": "MASS",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "kableExtra",
      "role": "Suggests"
    }
  ],
  "_owner": "david-cortes",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-25",
      "n": 2
    }
  ],
  "_tags": [],
  "_topics": [
    "cold-start",
    "collaborative-filtering",
    "collective-matrix-factorization",
    "openblas",
    "openmp"
  ],
  "_stars": 125,
  "_contributors": [
    {
      "user": "david-cortes",
      "count": 471,
      "uuid": 11860098
    },
    {
      "user": "nsonneborn",
      "count": 1,
      "uuid": 22140033
    }
  ],
  "_userbio": {
    "uuid": 11860098,
    "type": "user",
    "name": "david-cortes",
    "followers": 216
  },
  "_downloads": {
    "count": 315,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/cmfrec"
  },
  "_devurl": "https://github.com/david-cortes/cmfrec",
  "_searchresults": 24,
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/cmfrec.html",
    "extra/contents.json",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/david-cortes/cmfrec",
  "_realowner": "david-cortes",
  "_cranurl": true,
  "_releases": [
    {
      "version": "2.3.0",
      "date": "2020-11-23"
    },
    {
      "version": "2.3.2",
      "date": "2020-11-23"
    },
    {
      "version": "2.4.1",
      "date": "2021-01-06"
    },
    {
      "version": "2.4.2",
      "date": "2021-01-10"
    },
    {
      "version": "2.4.5",
      "date": "2021-03-01"
    },
    {
      "version": "3.1.0",
      "date": "2021-05-20"
    },
    {
      "version": "3.1.2",
      "date": "2021-06-28"
    },
    {
      "version": "3.2.1",
      "date": "2021-07-29"
    },
    {
      "version": "3.2.2",
      "date": "2021-07-30"
    },
    {
      "version": "3.2.2-1",
      "date": "2021-09-26"
    },
    {
      "version": "3.2.2-2",
      "date": "2021-11-07"
    },
    {
      "version": "3.3.0",
      "date": "2022-01-03"
    },
    {
      "version": "3.3.1",
      "date": "2022-01-05"
    },
    {
      "version": "3.4.1",
      "date": "2022-02-10"
    },
    {
      "version": "3.4.2",
      "date": "2022-02-10"
    },
    {
      "version": "3.4.3",
      "date": "2022-07-09"
    },
    {
      "version": "3.4.3-2",
      "date": "2022-10-25"
    },
    {
      "version": "3.5.0",
      "date": "2022-11-26"
    },
    {
      "version": "3.5.1",
      "date": "2023-03-08"
    },
    {
      "version": "3.5.1-1",
      "date": "2023-04-11"
    },
    {
      "version": "3.5.1-2",
      "date": "2023-11-28"
    },
    {
      "version": "3.5.1-3",
      "date": "2023-12-09"
    }
  ],
  "_exports": [
    "CMF",
    "CMF_implicit",
    "CMF.from.model.matrices",
    "ContentBased",
    "drop.nonessential.matrices",
    "factors",
    "factors_single",
    "imputeX",
    "item_factors",
    "MostPopular",
    "OMF_explicit",
    "OMF_implicit",
    "precompute.for.predictions",
    "predict_new",
    "predict_new_items",
    "swap.users.and.items",
    "topN",
    "topN_new"
  ],
  "_help": [
    {
      "page": "CMF.from.model.matrices",
      "title": "Create a CMF model object from fitted matrices",
      "topics": [
        "CMF.from.model.matrices"
      ]
    },
    {
      "page": "cmfrec",
      "title": "cmfrec package",
      "topics": [
        "cmfrec-package",
        "cmfrec"
      ]
    },
    {
      "page": "drop.nonessential.matrices",
      "title": "Drop matrices that are not used for prediction",
      "topics": [
        "drop.nonessential.matrices"
      ]
    },
    {
      "page": "factors",
      "title": "Calculate latent factors on new data",
      "topics": [
        "factors",
        "factors.CMF",
        "factors.CMF_implicit",
        "factors.ContentBased",
        "factors.OMF_explicit",
        "factors.OMF_implicit"
      ]
    },
    {
      "page": "factors_single",
      "title": "Calculate latent factors for a new user",
      "topics": [
        "factors_single",
        "factors_single.CMF",
        "factors_single.CMF_implicit",
        "factors_single.ContentBased",
        "factors_single.OMF_explicit",
        "factors_single.OMF_implicit"
      ]
    },
    {
      "page": "fit",
      "title": "Matrix Factorization Models",
      "topics": [
        "CMF",
        "CMF_implicit",
        "ContentBased",
        "fit_models",
        "MostPopular",
        "OMF_explicit",
        "OMF_implicit"
      ]
    },
    {
      "page": "imputeX",
      "title": "Impute missing entries in `X` data",
      "topics": [
        "imputeX"
      ]
    },
    {
      "page": "item_factors",
      "title": "Determine latent factors for a new item",
      "topics": [
        "item_factors"
      ]
    },
    {
      "page": "precompute.for.predictions",
      "title": "Precompute matrices to use for predictions",
      "topics": [
        "precompute.for.predictions"
      ]
    },
    {
      "page": "predict_new",
      "title": "Predict entries in new `X` data",
      "topics": [
        "predict_new",
        "predict_new.CMF",
        "predict_new.CMF_implicit",
        "predict_new.ContentBased",
        "predict_new.OMF_explicit",
        "predict_new.OMF_implicit"
      ]
    },
    {
      "page": "predict_new_items",
      "title": "Predict new columns of `X` given item attributes",
      "topics": [
        "predict_new_items"
      ]
    },
    {
      "page": "predict.cmfrec",
      "title": "Predict entries in the factorized `X` matrix",
      "topics": [
        "predict.cmfrec"
      ]
    },
    {
      "page": "print.cmfrec",
      "title": "Get information about factorization model",
      "topics": [
        "print.cmfrec"
      ]
    },
    {
      "page": "summary.cmfrec",
      "title": "Get information about factorization model",
      "topics": [
        "summary.cmfrec"
      ]
    },
    {
      "page": "swap.users.and.items",
      "title": "Swap users and items in the model",
      "topics": [
        "swap.users.and.items"
      ]
    },
    {
      "page": "topN",
      "title": "Calulate top-N predictions for a new or existing user",
      "topics": [
        "topN",
        "topN_new",
        "topN_new.CMF",
        "topN_new.CMF_implicit",
        "topN_new.ContentBased",
        "topN_new.OMF_explicit",
        "topN_new.OMF_implicit"
      ]
    }
  ],
  "_readme": "https://github.com/david-cortes/cmfrec/raw/HEAD/README.md",
  "_rundeps": [],
  "_sysdeps": [
    {
      "shlib": "liblapack",
      "package": "libopenblas0-pthread",
      "source": "openblas",
      "version": "0.3.32+ds-5",
      "name": "openblas",
      "homepage": "https://www.openblas.net/",
      "description": "Optimized BLAS (linear algebra) library (shared lib, pthread)"
    },
    {
      "shlib": "libblas",
      "package": "libopenblas0-pthread",
      "source": "openblas",
      "version": "0.3.32+ds-5",
      "name": "openblas",
      "homepage": "https://www.openblas.net/",
      "description": "Optimized BLAS (linear algebra) library (shared lib, pthread)"
    },
    {
      "shlib": "libgomp",
      "package": "libgomp1",
      "source": "gcc",
      "version": "16-20260322-1ubuntu1",
      "name": "openmp",
      "homepage": "http://gcc.gnu.org/",
      "description": "GCC OpenMP (GOMP) support library"
    }
  ],
  "_vignettes": [
    {
      "source": "cmfrec_vignette.Rmd",
      "filename": "cmfrec_vignette.html",
      "title": "Matrix Factorization with Side Info",
      "author": "David Cortes",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Matrix Factorization",
        "Loading the data",
        "Creating a train-test split",
        "Classical model",
        "How good is it?",
        "Improving the classical model",
        "Adding side information",
        "Generating Top-N recommendations",
        "Recommendations for existing users",
        "Recommendations for new users",
        "Cold-start recommendations"
      ],
      "created": "2021-05-07 01:14:20",
      "modified": "2022-11-22 20:36:15",
      "commits": 7
    }
  ],
  "_score": 6.176091259055681,
  "_indexed": true,
  "_nocasepkg": "cmfrec",
  "_universes": [
    "david-cortes"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "3.5.1-3",
      "date": "2026-06-24T04:46:20.000Z",
      "distro": "resolute",
      "arch": "aarch64",
      "commit": "aa46841a3c96c49ffa61933b5656523e3f759952",
      "fileid": "https://r2.ropensci.org/9251b20ae8c22387d2e5a31271975fb59953e8084837f68b66fd48096f055661",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/david-cortes/actions/runs/28075541948"
    },
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "3.5.1-3",
      "date": "2026-06-24T04:46:05.000Z",
      "distro": "resolute",
      "arch": "x86_64",
      "commit": "aa46841a3c96c49ffa61933b5656523e3f759952",
      "fileid": "https://r2.ropensci.org/172c6ad52cfc3297e9e4daba62bbeadc1d192e07722dfe2e1b120614a3f90d97",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/david-cortes/actions/runs/28075541948"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "3.5.1-3",
      "date": "2026-06-24T04:46:22.000Z",
      "distro": "resolute",
      "arch": "aarch64",
      "commit": "aa46841a3c96c49ffa61933b5656523e3f759952",
      "fileid": "https://r2.ropensci.org/f00c488c666e65398fb3c654aaf00c5e04e43ccd08740d62e19337aa10cacffc",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/david-cortes/actions/runs/28075541948"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "3.5.1-3",
      "date": "2026-06-24T04:46:07.000Z",
      "distro": "resolute",
      "arch": "x86_64",
      "commit": "aa46841a3c96c49ffa61933b5656523e3f759952",
      "fileid": "https://r2.ropensci.org/0d875c3fde8437277166a8fa5aad454c0b93149582c4863e167097c00ef39ae8",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/david-cortes/actions/runs/28075541948"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "3.5.1-3",
      "date": "2026-06-24T04:44:40.000Z",
      "arch": "aarch64",
      "commit": "aa46841a3c96c49ffa61933b5656523e3f759952",
      "fileid": "https://r2.ropensci.org/5eddfc2e0e8eeb3985f6ebbbe2fa9034e33105056434bbae174d4a9b86198c8a",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/david-cortes/actions/runs/28075541948"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "3.5.1-3",
      "date": "2026-06-24T04:45:27.000Z",
      "arch": "x86_64",
      "commit": "aa46841a3c96c49ffa61933b5656523e3f759952",
      "fileid": "https://r2.ropensci.org/35c3f48e3d6aa9478bc1af22350e14fe7d03d573f0e0ff18a19242588d807c53",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/david-cortes/actions/runs/28075541948"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "3.5.1-3",
      "date": "2026-06-24T04:44:30.000Z",
      "arch": "aarch64",
      "commit": "aa46841a3c96c49ffa61933b5656523e3f759952",
      "fileid": "https://r2.ropensci.org/9e9c3fab6cc6a2389198317556d587d707e46cc7caa168648d6520df544d1dbf",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/david-cortes/actions/runs/28075541948"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "3.5.1-3",
      "date": "2026-06-24T04:46:40.000Z",
      "arch": "x86_64",
      "commit": "aa46841a3c96c49ffa61933b5656523e3f759952",
      "fileid": "https://r2.ropensci.org/961721aef8500635db2d9925a37211bd9891084840e1719ba1c69ddcd7d64a41",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/david-cortes/actions/runs/28075541948"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "3.5.1-3",
      "date": "2026-06-24T04:46:46.000Z",
      "arch": "emscripten",
      "commit": "aa46841a3c96c49ffa61933b5656523e3f759952",
      "fileid": "https://r2.ropensci.org/1f596d69e4d8623bd417d435b81e2e0014dce5ccec1029f5f58f6a565a98b8c6",
      "status": "success",
      "buildurl": "https://github.com/r-universe/david-cortes/actions/runs/28075541948"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "3.5.1-3",
      "date": "2026-06-24T04:44:19.000Z",
      "arch": "x86_64",
      "commit": "aa46841a3c96c49ffa61933b5656523e3f759952",
      "fileid": "https://r2.ropensci.org/bb9c720809d03ef6121a5c70811dc86011848d836b0d1504455baa336cf1d8bf",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/david-cortes/actions/runs/28075541948"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "3.5.1-3",
      "date": "2026-06-24T04:44:14.000Z",
      "arch": "x86_64",
      "commit": "aa46841a3c96c49ffa61933b5656523e3f759952",
      "fileid": "https://r2.ropensci.org/3128a048e7d90ddaa3ee8b31eedd19a10d8e57532b1af953b40424ab43f6ee0d",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/david-cortes/actions/runs/28075541948"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "3.5.1-3",
      "date": "2026-06-24T04:44:23.000Z",
      "arch": "x86_64",
      "commit": "aa46841a3c96c49ffa61933b5656523e3f759952",
      "fileid": "https://r2.ropensci.org/a8a411511baa660a56a58abbdfda0b7d0fcd6634f92441ade47ac982a2212db2",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/david-cortes/actions/runs/28075541948"
    }
  ]
}