利⽤Java写开源库覆盖70多种推荐算法
在经过⼀年多的开发⼯作之后,LibRec 3.0 版本终于发布了。LibRec 是⼀个基于 的开源算法⼯具库,覆盖了 70 余个各类型推荐算法,可以有效解决评分预测和物品推荐两⼤关键的推荐问题,⽬前已经在 GitHub 上收获了 1457 个 Star,612 个 Fork。
2012 年,还在新加坡南洋理⼯⼤学攻读博⼠学位的郭贵冰开始关注推荐系统。当时,MyMediali 是最知名的推荐⼯具库之⼀。作为初学者,郭贵冰⼀边看论⽂,⼀边看MyMedialite 的代码,然后在它的基础上实现我⾃⼰的研究算法。
然⽽,很快郭贵冰就意识到⼀个问题,在  服务器上跑 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,mender,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 集成,⽀持分布式 和 ,为商业环境(⽽⾮研究⼯具⽬的)所设计。结合 DL4J,郭贵冰团队开发了深度学习算法模块。
2)POI 算法java网课推荐
POI 算法主要是指对⽤户兴趣点推荐(Point Of Interest)。根据⽤户在社交⽹络中的兴趣和地理位置信息,分析⽤户的标签属性和地理偏好,给⽤户推荐合适的出⾏地点。基于地理位置,郭贵冰团队实现了 POI 算法模块。
3)增量更新算法
增量更新主要是提⾼推荐算法时效性,传统的个性化推荐系统,采⽤定期离线对数据进⾏分析的做法来更新模型。实时个性化推荐实时分析⽤户产⽣的数据,可以更准确地为⽤户进⾏推荐,同时根据实时的推荐结果进⾏反馈,更好地改进推荐模型。增量更新模块实现了部分推荐算法的增量更新功能。
4)集成学习算法
集成学习在算法中具有较⾼的准确率,不⾜之处就是模型的训练过程可能⽐较复杂,效率不是很⾼。集成学习是使⽤⼀系列学习器进⾏学习,并使⽤某种规则把各个学习结果进⾏整合从⽽获得⽐单个学习器更好的学习效果的⼀种机器学习⽅法。增量更新模块实现了部分推荐算法的增量更新功能。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。