简介:
LibRec 是领先的推荐系统Java开源算法工具库,覆盖了70余个各类型推荐算法,有效解决评分预测和物品推荐两大关键的推荐问题。推荐系统是机器学习和大数据技术的经典实际应用,旨在提供高效准确的个性化物品推荐,是现代Web应用的重要组件。
项目结构清晰,代码风格良好,测试充分,注释与手册完善。目前项目使用GPL3.0协议开源在github中,欢迎大家试用。
Librec: http://www.librec.net/
GithubRepo: https://github.com/guoguibing/librec
DocLink: http://wiki.librec.net/doku.php
特色功能:
l 丰富的算法集
截止到目前,LibRec已经集成了70余个各类型推荐算法。具体来说,分为基准算法、协同过滤算法、基于内容的算法、情景感知算法、混合算法和其它扩展算法等。在2.0版本中,增加了40余个新算法,包括概率图模型、张量分解模型、因子分解机、基于评论的模型、深度学习模块(RBM)等新颖的算法。团队的每个核心开发人员往往负责某一类型算法的开发和测试工作。
l 良好的模块化
相对于LibRec 1.x,新版本在底层结构上做了非常深入的优化,尤其是模块化方面。新版本的推荐库可分为以下三部分:数据预处理、推荐算法和训练后处理。在数据预处理模块,主要是数据的转换与分割。支持两种格式数据的输入和转换,一个是常见的 User-Item-Rating 格式,另一个是更通用的ARFF格式,用户还可以扩展新类型的数据以增强现有的ARFF格式。在数据分割方面,支持按Ratio,Given-N,k-fold Cross validation, Leave-one-out等方式。在推荐模型模块,包括情景感知和算法集成。情景感知指的是算法依赖的情景信息,如用户相似度;算法集成则是算法的逻辑实现。在模型训练之后,LibRec支持两种操作:一是对测试集进行评估,得到如MAE、RMSE、AUC、MAP、NDCG等测试结果;二是对给定的用户(或情景)进行评分预测或物品推荐等查询操作,用户可以通过实现filter接口自定义更多的过滤操作。
l 灵活的框架配置
LibRec新版本承袭了基于配置的特点,但是有所更新和发展。新的配置实现参考了其它知名数据挖掘工具库的实现特点,在灵活性上得到了有效的提高。具体来说,我们抽取出很多公共的配置项,也为独立的算法保留了特定的配置参数。为了提高算法的易配置性,我们为大多数算法保留了可用的供参考配置设置。
l 高效的执行性能
LibRec一直非常注重算法执行的高效性,并尽可能地优化框架结构和算法实现。与其它的推荐算法库相比,LibRec能够在得到相当的推荐性能的前提下,在更短的时间内执行完成。
l 简单的框架用法
LibRec早期版本只能独立运行,难以集成在其它工程中使用。由于良好的模块结构,新版本既可以单独运行,也能够作为依赖库应用于其它工程中
l 良好的可扩展性
良好的易扩展性。LibRec提供了很好的公共接口以便用户进行个性化扩展。包括数据类型、推荐算法、输出类型、评估因子、过滤器等的扩展接口。使用LibRec开发新算法,用户通常只需要关注新算法的逻辑实现,而不需要担心其它部分的实现。
结构示意:
流程示意:
相关链接:
Librec2.0 通识篇: https://mp.weixin.qq.com/s/AB39ihVWXYHRbeODbGO-2g
导入LibRec至Eclipse平台: https://mp.weixin.qq.com/s/OyYn5_4GYAbF0L0SFgsHVQ
LibRec命令行操作: https://mp.weixin.qq.com/s/xnkg6BGyUUKmbs009p8XCw
Librec 一周年纪: https://mp.weixin.qq.com/s/vDnca1FMW9vVrFDgti_1IA
欢迎关注Librec微信公众号:
原创文章,作者:kepupublish,如若转载,请注明出处:https://blog.ytso.com/tech/opensource/193301.html