赞
踩
这篇文章发表在推荐系统顶会RecSys 2014上,是一篇短论文,介绍了作者开发的一个叫做 RiVal 的推荐系统开源评估框架。
下面进行详细介绍
主流的开源框架,即使给定同一个数据集、同一个评估指标、同一个数据划分方法,最终给出的评估结果可能也天差地别(主要是由模型的实现方法以及参数的优化和修改造成的)。作者开发出RiVal框架,使用Java开发,是一款开源的推荐系统评估工具包。
RiVal 使得 Evaluation 的各个部分可以完全由用户掌握:
主流的开源推荐系统框架包括以下几个:
然而不同的框架之间,即使实现同一个算法也可能带来不同的准确率。作者认为有以下原因:
作者举例如下表1 所示:
可以看到,即使是同一个算法,同一个评估指标,针对不同的框架得到的结果也是不同的,而且相差很大。
作者将推荐的Evaluation过程分为以下四个阶段:
Rival作为一款开源的Java推荐系统性能评估工具包并不具备推荐功能,因此功能(ii)推荐(Item Recommendation)的功能需要其他开源框架完成,由RiVal负责性能评估。
RiVal可以通过Maven方式运行,也可以直接Java程序文件。具体使用方法是通过配置文件指定,在.prop文件中写明各个属性值即可。作者举例如下框Listing 1所示:
这里对应第一步——数据分割,可以看到配置文件中指定了数据集文件,分隔符形式,数据分割方式,分割后的数据集命名方式(前后缀),以及其他细节(如peruser、seed等)。
类似地,第二步(推荐)的细节如下框list2所示:
可以看到在list2中指明了推荐算法模型(使用lenskit完成)、相似度计算方式、KNN中K的大小(neighborhood=50),以及前后缀名称等其他细节。
对于剩余两步(候选和评估)作者没有进一步展示,大体类似于前两步,可以上 github 进行查看。
作者展示了一个使用RiVal的运行结果如下图1所示:
作者针对RMSE(均方根误差)这一指标,对不同的算法(包含user-based CF,item-based CF及 SVD),不同的分割方式(交叉验证,per-user,global random),不同框架(Mahout,LensKit,MyMediaLite)的运算结果的可视化进行了展示。
这部分在前面已经详细介绍,具体可以参照github上的指示进行操作。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。