0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用Java写开源库 覆盖70多种推荐算法

电子工程师 来源:未知 作者:胡薇 2018-07-19 08:51 次阅读

在经过一年多的开发工作之后,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 集成,支持分布式 CPUGPU,为商业环境(而非研究工具目的)所设计。结合 DL4J,郭贵冰团队开发了深度学习算法模块。

2)POI 算法

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

3)增量更新算法

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

4)集成学习算法

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • JAVA
    +关注

    关注

    19

    文章

    2953

    浏览量

    104496
  • GitHub
    +关注

    关注

    3

    文章

    466

    浏览量

    16366

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

文章出处:【微信号:rgznai100,微信公众号:rgznai100】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何使用mbedtls开源

    概述本篇文章介绍如何使用STM32HAL,这篇文章只要是讲如何使用mbedtls开源,实现 1、base64编码,2、AES加解密示例。怎么样移植mbedtls开源
    发表于 08-11 08:12

    STM32 Foc开源算法是什么

    STM32 Foc开源算法,包括观测器和Foc method STM32F0系列FOC 源代码,有单电阻采样和三电阻采样两种代码。都是ST很经典算法,代码学习,无感算法观测器是
    发表于 09-06 08:09

    算法开源相关资料下载

    ,和大津法,这一章介绍图像边界提取。这里我的算法是基于逐飞开源的灰度图算法的,但也在上面改进了许多,使得边界的搜取不会出现丢边。一、灰度边界提取的原理 在我们获取摄像头的数据后,返回
    发表于 01-14 08:27

    JAVA语言的工具类与算法

    JAVA语言的工具类与算法6.1 语言基础类;            
    发表于 12-14 20:34 66次下载

    基于FCM算法的隐分析算法综合评估

    从与图像隐分析算法评估相关的问题入手,分析隐分析算法评估的指标,利用FCM 算法实现对各种隐
    发表于 03-24 09:38 5次下载

    基于三元Golay隐码的快速隐算法

    研究GF(3)上的编码方法,利用三元Golay码给出一种GF(3)上的隐码,其隐性能较常见二元隐码有显著提高。提出基于三元Golay隐
    发表于 04-08 08:46 26次下载

    Java数据连接及网络程序设计

    Java数据连接及网络程序设计 一、实验目的:      通过Socket编程,掌握网络应用程序的开发方法;完成数据的连接;掌握利用
    发表于 12-05 23:56 1446次阅读

    Java数组与算法试题

    Java数组与算法试题Java数组与算法试题Java数组与算法试题
    发表于 01-15 16:16 0次下载

    JAVA教程之显示多种字体

    JAVA教程之显示多种字体,很好的学习资料。
    发表于 03-31 11:13 5次下载

    Java最著名的开源项目

    Java最著名的开源项目
    发表于 03-19 11:23 0次下载

    百度开源项目推荐java图标

    ECharts是一款由百度前端技术部开发的,基于Java的数据可视化图表,提供直观,生动,可交互,可个性化定制的数据可视化图表。 提供大量常用的数据可视化图表,底层基于ZRender(一个全新
    发表于 09-28 14:52 0次下载
    百度<b class='flag-5'>开源</b>项目推荐<b class='flag-5'>java</b>图标<b class='flag-5'>库</b>

    Oracle开源Java EE

    近日,Oracle在其官方博客上宣称,随着Java EE 8的可喜进展,Oracle接下来在考虑如何让Java EE更开放、更加贴近开源社区。言下之意,Oracle要让出Java EE
    发表于 09-28 16:04 0次下载

    多种区块链挖矿算法开源硬件

    电子发烧友网站提供《多种区块链挖矿算法开源硬件.zip》资料免费下载
    发表于 02-07 14:52 0次下载
    <b class='flag-5'>多种</b>区块链挖矿<b class='flag-5'>算法</b><b class='flag-5'>开源</b>硬件

    Java算法大全源码包开源源码

    Java算法大全源码包开源源码
    发表于 06-07 14:58 1次下载

    Meta发布CodeLlama70B开源大模型

    Meta发布CodeLlama70B开源大模型 Meta发布了开源大模型CodeLlama70B,号称是CodeLlama系列体量最大、性能最强的大模型。 Code Llama
    的头像 发表于 01-31 10:30 1352次阅读