当前位置: 首页 > 软件库 > 程序开发 > 推荐引擎 >

LibMF

推荐系统
授权协议 BSD
开发语言 C/C++
所属分类 程序开发、 推荐引擎
软件类型 开源软件
地区 不详
投 递 者 居琛
操作系统 Windows
开源组织
适用人群 未知
 软件概览

LIBMF 是在潜在空间使用两个矩阵,接近一个不完全矩阵。Matrix Factorization 主要用在协作过滤,LibMF 主要特性如下:

  • 除了潜在用户和项特性,还包括了用户偏好,项偏差和平均条件

  • LIBMF 可以在一个多核机器上并行执行

LibMF的作者是大名鼎鼎的台湾国立大学,他们在机器学习领域享有盛名,近年连续多届KDD Cup竞赛上均获得优异成绩,并曾连续多年获得冠军。台湾大学的风格非常务实,业界常用的LibSVM, Liblinear等都是他们开发的,开源代码的效率和质量都非常高

LibMF在矩阵分解的并行化方面作出了很好的贡献,针对SDG优化方法在并行计算中存在的locking problem和memory discontinuity问题,提出了一种矩阵分解的高效算法,根据计算节点的个数来划分评分矩阵block,并分配计算节点。系统介绍可以见这篇论文 (Recsys 2013的 Best paper Award)

Y. Zhuang, W.-S. Chin, Y.-C. Juan, and C.-J. Lin. A Fast Parallel SGD for Matrix Factorization in Shared Memory Systems. Proceedings of ACM Recommender Systems 2013.


  • libMF是林智仁老师开发的一个用于推荐系统的矩阵分解库,下载地址:libMF 测试用的数据集是MovieLen,一个给电影评分的数据集,下载在此:ML 最近在阅读libMF的源代码,并且准备开发其Matlab接口,在此做做笔记。 我的开发环境是在Win8-64bit + Visual Studio 2013下,由于林老师写的程序有很好的跨平台特性,在Linux下开发也是OK的。 首先要解决的是V

 相关资料
  • 背景与挖掘目标 随着互联网的快速发展,用户很难快速从海量信息中寻找到自己感兴趣的信息。因此诞生了:搜索引擎+推荐系统 本章节-推荐系统: 帮助用户发现其感兴趣和可能感兴趣的信息。 让网站价值信息脱颖而出,得到广大用户的认可。 提高用户对网站的忠诚度和关注度,建立稳固用户群体。 分析方法与过程 本案例的目标是对用户进行推荐,即以一定的方式将用户与物品(本次指网页)之间建立联系。 由于用户访问网站的数

  • 我将本章学到的内容都汇集成了一个Python类,虽然代码有些长,我还是贴在了这里: import codecs from math import sqrt users = {"Angelica": {"Blues Traveler": 3.5, "Broken Bells": 2.0, "Norah Jones": 4.5, "Phoenix": 5.0

  • 本章将介绍协同过滤,基本的距离算法,包括曼哈顿距离、欧几里得距离、闵科夫斯基距离、皮尔森相关系数。使用Python实现一个基本的推荐算法。 内容: 推荐系统工作原理 社会化协同过滤工作原理 如何找到相似物品 曼哈顿距离 欧几里得距离 闵可夫斯基距离 皮尔逊相关系数 余弦相似度 使用Python实现K最邻近算法 图书漂流站(BookCrossing)数据集

  • Ceph 依赖 按常规来说,我们建议在较新的 Linux 发行版上部署 Ceph ;同样,要选择长期支持的版本。 Linux 内核 Ceph 内核态客户端 当前我们推荐: 4.1.4 or later 3.16.3 or later (rbd deadlock regression in 3.16.[0-2]) NOT v3.15.* (rbd deadlock regression) 3.14.

  • 背景与挖掘目标 随着互联网的快速发展,用户很难快速从海量信息中寻找到自己感兴趣的信息。因此诞生了:搜索引擎+推荐系统 本章节-推荐系统: 帮助用户发现其感兴趣和可能感兴趣的信息。 让网站价值信息脱颖而出,得到广大用户的认可。 提高用户对网站的忠诚度和关注度,建立稳固用户群体。 分析方法与过程 本案例的目标是对用户进行推荐,即以一定的方式将用户与物品(本次指网页)之间建立联系。 由于用户访问网站的数

  • 准备硬盘 Ceph 注重数据安全,就是说, Ceph 客户端收到数据已写入存储器的通知时,数据确实已写入硬盘。使用较老的内核(版本小于 2.6.33 )时,如果日志在原始硬盘上,就要禁用写缓存;较新的内核没问题。 用 hdparm 禁用硬盘的写缓冲功能。 sudo hdparm -W 0 /dev/hda 0 在生产环境,我们建议操作系统和 Ceph OSD 守护进程数据分别放到不同的硬盘。如果必