集合70多种推荐算法,东北大学老师用Java写了一个开源库,在GitHub上收获近1500个Star

【AI科技大本营导读】在经过一年多的开发工作之后,LibRec 3.0 版本终于发布了。LibRec 是一个基于 Java 的开源算法工具库,覆盖了 70 余个各类型推荐算法,可以有效解决评分预测和物品推荐两大关键的推荐问题,目前已经在 GitHub 上收获了 1457 个 Star,612 个 Fork。

2012 年,还在新加坡南洋理工大学攻读博士学位的郭贵冰开始关注推荐系统。当时,MyMedialite 是最知名的推荐工具库之一。作为初学者,郭贵冰一边看论文,一边看MyMedialite 的代码,然后在它的基础上实现我自己的研究算法。

然而,很快郭贵冰就意识到一个问题,在 Linux 服务器上跑 MyMedialite 会非常麻烦,而且在并行计算的时候诸多限制(相对于 Windows 平台),在跨平台方面存在不足。不得已,郭贵冰只好把自己的程序改成熟悉的 Java 代码,于是得到是最原始的 LibRec。随着研究和学习的深入,更多的算法慢慢添加到了 LibRec 中,并托管到 GitHub 以便版本控制。

2015 年 11 月,郭贵冰以引进人才的方式加入东北大学软件学院,任职副教授。由于精力所限,郭贵冰开始组建开源团队。2016 年 1 月,郭贵冰、王宇峰等人组建起了最初的 LibRec 核心开发团队,并不断扩充团队。

2016 年 12 月,郭贵冰团队发布了 LibRec 2.0 版本。经过一年多的开发之后,郭贵冰团队又在今日发布了 LibRec 3.0 版本。

▌LibRec 的特点

LibRec 是基于 Java 的开源算法工具库,覆盖了 70 余个各类型推荐算法,有效解决评分预测和物品推荐两大关键的推荐问题。

1)丰富的算法

截止到目前,LibRec已经集成了70余个推荐算法。具体包括基准算法,协同过滤算法,基于内容的算法,基于情景感知的算法,混合算法以及其他扩展算法等。同时算法中也包含了概率图模型,张量分解模型,因子分解机,深度学习中的 RBM 模块等算法。LibRec 中包含的所有算法均已归类并注明实现参考文献。 2)良好的模块化

目前LibRec中最主要的模块为DataModel,Recommender,Evaluator与Filter,分别负责数据的预处理,推荐模型的训练,模型的执行,输出结果的过滤。

3)灵活的框架配置

不同算法的配置项因配置项不同,所以每一个推荐算法分别对应一个配置文件。方便管理的同时也方便用户根据算法的执行结果来调参。目前 LibRec 已经针对所有算法配置好了默认参数。

4)简单的框架用法

LibRec 分别提供了 Linux 和 Windows 版本的命令行工具。用户可以根据 LibRec 提供的手册来编写配置文件,并使用命令行来执行算法。最终评估结果在终端中输出,推荐结果根据配置文件生成在相应目录下。

▌LibRec 3.0

经过一年多的开发,LibRec 3.0 在原版本的基础上增加了许多新特性,特别是对如今流行的深度学习、集成学习等算法的支持。

1)深度学习算法

深度学习能够使用RNN循环神经网络对动态或者序列数据进行建模,并且可以更加准确的学习user和item的特征。DeepLearning4J(DL4J)是一套基于Java语言的神经网络工具包,可以构建、定型和部署神经网络。DL4J 与 Hadoop 和 Spark 集成,支持分布式 CPU 和 GPU,为商业环境(而非研究工具目的)所设计。结合 DL4J,郭贵冰团队开发了深度学习算法模块。

2)POI 算法

POI 算法主要是指对用户兴趣点推荐(Point Of Interest)。根据用户在社交网络中的兴趣和地理位置信息,分析用户的标签属性和地理偏好,给用户推荐合适的出行地点。基于地理位置,郭贵冰团队实现了 POI 算法模块。

3)增量更新算法

增量更新主要是提高推荐算法时效性,传统的个性化推荐系统,采用定期离线对数据进行分析的做法来更新模型。实时个性化推荐实时分析用户产生的数据,可以更准确地为用户进行推荐,同时根据实时的推荐结果进行反馈,更好地改进推荐模型。增量更新模块实现了部分推荐算法的增量更新功能。

4)集成学习算法

集成学习在机器学习算法中具有较高的准确率,不足之处就是模型的训练过程可能比较复杂,效率不是很高。集成学习是使用一系列学习器进行学习,并使用某种规则把各个学习结果进行整合从而获得比单个学习器更好的学习效果的一种机器学习方法。增量更新模块实现了部分推荐算法的增量更新功能。

▌专访郭贵冰

AI科技大本营:请简单介绍下 LibRec。

郭贵冰:LibRec 就是一个包含了各式各样推荐算法的开源库。利用这个开源库,首先可以让入门者在学习和入门过程中快速知道算法基本操作流程、算法的实现逻辑,以及算法性能的对比表现。

此外,这个开源库提供了很多基础架构,包括很多除了算法、逻辑以外的东西,比如数据结构、数据分割、数据算法评估等这些内容。如果是一个有经验的人,在有了 LibRec 之后会变得非常方便,他只需要关注算法本身的逻辑就行了,无需关注其他与算法逻辑无关的,但这些是使得算法能跑起来的、能够运转的关键技术。

另外,很多人需要用 LibRec 做不同的实际应用,因为 LibRec 相对来说比较抽象的算法库,我们完全可以利用它作为核心,来开发不同的应用。比如我们可以用它来开发学术论文的推荐、电影的推荐,甚至任何一个需要大数据算法的实际应用都可以用它来做。

AI科技大本营:为什么选择用 Java,不用 Python?

郭贵冰:最开始用 Java 是因为 2012 年 Python 还没有那么流行。Java 是可以跨平台的,比如我在 Windows 上开做发,但是可以在 Linux 服务器上执行,中间不需要做任何修改。另外, Java 更多用于企业开发,很多企业项目用 Java 来做的。尽管 Python 可以快速地做原型,但是我在跟很多企业人士沟通的过程中发现,如果用 Python 快速做一个离线的原型,先训练出一个模型,但是这个模型训练之后,还要再把它放在 Java 开发的程序里来跑。另外,Java 在企业项目时应用更广泛一些,Python 更关注快速搭建原型。

我们内部也有讨论要不要开发 Python 接口,但是我们本身团队规模比较小,没有那么多经精力,而且 Python 接口这个东西,因为我们学 IT 的知道编程语言什么的不是最核心的事情,我们还有很多其他的事情需要优先去做,比如优化底层架构等等。

AI科技大本营:获得博士学位之后为什么会选择去东北大学?

郭贵冰:有很多人都问过我这个问题。第一,我大学是在河北秦皇岛读的书,所以其实我对北方的气候不会产生不适应的状况,很多人不愿意在这边是觉得气候不行,但我本身比较适应。

另外,我回国时也有参考天津大学、东北大学和一些南方的高校,但东北大学给我的起点相对高一点。对老师来说,起点高一点可以带学生做东西,所以我选择了东北大学。

AI科技大本营:在南洋理工大学和东北大学做科研有什么不一样吗?

郭贵冰:南洋理工大学学术氛围更浓一些,经常有学术交流,有一些专家过来,我们可以去交流。回国之后,我感觉这方面的研究方式相对来说机会要小很多。硬件设施上我觉得倒还好,因为我现在能够给学生使用的硬件资源还蛮丰富的。

最后,附上项目链接: LibRec: http://www.librec.net/ Github Repo: https://github.com/guoguibing/librec Doc Link: http://wiki.librec.net/doku.php

——【完】——

原文发布于微信公众号 - AI科技大本营(rgznai100)

原文发表时间:2018-07-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术翻译

大数据建模方法的比较

在DT时代,互联网,智能设备和其他形式的信息技术的爆炸性增长使得数据以同样令人印象深刻的速度增长。这个时代的挑战似乎是如何对所有这些数据进行分类,组织和存储。

2K2
来自专栏新智元

新型 GPU 芯片:可在手机跑人工智能程序

科技日报北京2月3日电 (记者刘园园)你想让自己的手机变成可以随时随地执行人工智能计算的“神器”吗?一种新型图形处理器(GPU)芯片让这个梦想走进了现实。据麻省...

3588
来自专栏AI科技评论

盘点丨开发者必备:基于 Linux 生态的十大 AI 开源框架

前不久,AI 科技评论曾盘点了一系列机器学习相关的开源平台,包括谷歌的TensorFlow、微软的CNTK以及百度的PaddlePaddle等等。这些平台各具特...

3708
来自专栏张卫国的专栏

【SPA大赛】转化率预估中的用户偏好Emebeding

在Tencent广告算法大赛中,在对用户点击之后的转化情况预估时,笔者主要分享 Emebeding 降维(用户偏好分析)的技巧。

4560
来自专栏奇点大数据

入门深度学习应该学什么

最近被人问的最多的一个问题是“我想入门深度学习,我应该学些什么”。 老实说,这个问题不是那么好回答,毕竟每个人的知识背景和技能背景实在是太不一样了。如果要假设...

3777
来自专栏灯塔大数据

新浪微博的用户画像是怎样构建的?

用户画像一般是指将用户信息标签化的过程,在分析用户属性这种静态维度时,通过平台自身的合理引导便能获取到精准的用户信息,那么关于”用户兴趣“这种可变动态的属性该怎...

3806
来自专栏机器之心

资源 | 企业应该怎样选择数据科学机器学习平台?

选自kdnuggets 机器之心编译 参与:吴攀、黄小天、Nurhachu Null 一个弹性的数据科学平台(Data Science Platform)对...

3565
来自专栏用户画像

推荐系统的召回

版权声明:本文为博主-姜兴琪原创文章,未经博主允许不得转载。 https://blog.csdn.net/jxq0816/article/details...

4113
来自专栏数据之美

BI/数据仓库/数据分析 基础入门:一些常见概念解释

Preface:本文将会讲述 BI/DW/DA 领域的一些常见概念,如:事实表、维度表、建模、多维分析、cube 等,但不涉及具体实例分析。 1、维(Dimen...

88511
来自专栏腾讯移动品质中心TMQ的专栏

编写BUG报告有诀窍?Toulmin模型来帮忙

前不久,桓哥的分享PPT中提到了Toulmin论证模型,并在其中提到了这么一句话“尝试建议:用Toulmin模型指导编写BUG报告(特别是容易被忽略限定部分,即...

3448

扫码关注云+社区

领取腾讯云代金券