很快,寒假就要过去了,在这15天的时间里,小编一直在做一件事:开发一个支持多种隐式反馈的BPR变形算法框架。
终于,功夫不负有心人。在经过了每天晚上的编写,近3400行代码的BPRPlus框架初步形成。github地址:https://github.com/liuchenailq/BPRPlus.
BPR算法简介
推荐系统有两大问题:评分预测和排序优化。评分预测一般使用显示数据集,如评分数据,目标是预测缺失的评分。排序优化一般使用隐式数据集,如用户行为(购买、点击、分享)记录,目标给用户推荐一个排序的物品集。
BPR( Bayesian Personalized Ranking)算法是解决排序优化问题经典算法,它假设用户有过行为的物品应该排在没有行为的物品之前,所以它使用用户行为数据来训练模型。但它只使用一种行为数据,比如你的目标是提高购买率,那么BPR只用购买行为数据来训练算法。
为了充分利用隐式数据(点击、浏览等行为数据),基于多种隐式反馈的BPR变形算法被相继提出。实验表明,充分利用辅助隐式反馈确实能提升BPR算法的效果。
本系统BPRPlus就是基于此背景下产生的,目标就是为基于多种隐式反馈的各种BPR变形算法提供快速实现。
到目前,系统已经完成了主反馈数据读取模块、辅助反馈数据读取模块、数据集划分模块、推荐算法模块、评价模块。
BPRPlus主要特性如下:
1. 基于配置文件:通过配置文件控制系统的所有参数
2. 并行计算:系统内部应用并行计算解决性能问题
3.支持多种隐式反馈:支持多种隐式反馈数据的读取
4. 结果可视化:训练过程的loss可视化、评价指标可视化
接下来主要做如下工作:
-
增加其他评价指标
-
增加其他变形BPR算法
-
考虑做网页版,方便使用