没有合适的资源?快使用搜索试试~ 我知道了~
软件X 12(2020)100614原始软件出版物RankEval:排名模型克劳迪奥·卢切塞a,1,克里斯蒂娜·蒙泰安b,1,佛朗哥·玛丽亚·纳尔迪尼b,1,拉斐尔·佩雷戈b,1,萨尔瓦多·特拉尼b,1a意大利威尼斯Ca' Foscari大学b意大利比萨ISTI-CNRar t i cl e i nf o文章历史记录:2020年4月30日收到2020年10月15日收到修订版2020年10月15日接受关键词:学习排序评价分析a b st ra ctRankEval是一个Python开源工具,用于分析和评估基于决策树集合的排名模型。生成树集合的学习排名(LtR)方法被认为是困难排名任务的最有效解决方案,已经开发了几个有影响力的LtR库,旨在提高排名质量和训练效率。然而,这些库在超参数调整和对学习模型的深入分析方面并不是很有帮助,甚至最流行的信息检索(IR)指标的实现也各不相同,因此很难比较不同的模型。RankEval通过提供一个统一的环境来克服这些限制,在这个环境中,可以对使用不同机器学习库训练的排名模型进行简单、全面的检查和评估。该工具专注于确保效率,灵活性和可扩展性,并与大多数流行的LtR库完全互操作©2020作者(S)。由爱思唯尔公司出版这是CC BY-NC-ND下的开放获取文章许可证(http://creativecommons.org/licenses/by-nc-nd/4.0/)。代码元数据当前代码版本Latest stable release,v0.8.2存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX_2020_188代码海洋计算胶囊无合法代码许可证Mozilla Public License 2.0使用Git的代码版本控制系统使用Python 2、Python 3、Cython的软件代码语言、工具和服务编译要求、操作环境和依赖关系编译要求:需要C编译器(GCC,Clang)来构建源代码.操作环境:Windows,MacOS,Linux. Python需求:numpy,scipy,matplotlib,cython。Python依赖项:six,pandas,xarray,seaborn,(graphviz)。链接到文档http://rankeval.isti.cnr.it/docs/问题支持电子邮件rankeval@isti.cnr.it1. 动机和意义复杂的机器学习排名模型的广泛采用产生了对旨在*通讯作者。电子邮件地址:claudio. unive.it(C.Lucchese),cristina. isti.cnr.it(C.I.Muntean),francomaria. isti.cnr.it(F.M.Nardini),raffaele. isti.cnr.it(R.Perego),salvatore. isti.cnr.it(S.Trani)。1 所有作者都对这项工作做出了同样的贡献https://doi.org/10.1016/j.softx.2020.100614检查和分析它们,以便加强排名信任,并了解如何进行微调和改进。在本文中,我们提出了RankEval,一个开源工具,用于分析和评估基于回归树的加法集成的排名模型。这些集合由高效的学习排序(LtR)算法生成,该算法利用大量训练数据来迭代学习简单的决策树,从而增量地优化给定的损失函数。训练数据集由查询-文档对的集合组成,其中每个示例都用相关性标签进行注释目标2352-7110/©2020作者。由爱思唯尔公司出版。这是一篇开放获取的文章,使用CC BY-NC-ND许可证(http://creativecommons.org/licenses/by-nc-nd/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softxC. Lucchese,C. I.Muntean,F.M.Nardini等人软件X 12(2020)1006142−LtR算法的核心是学习一个文档评分函数,该函数近似于由训练样本中观察到的相关性标签引起的理想排名。如今,基于树的模型被认为是“困难"排名任务的最具竞争力的LtR解决方案在这样的大规模生产系统中,通常部署具有数千棵树的复杂集合以实现满足用户要求的高质量结果。在这些背景下,基于梯度提升回归树(GBRT)[3]的模型被Kaggle和KDDCup 2015竞赛的大多数获胜解决方案所采用。在GBRT最流行的开源实现中,我们引用了LightGBM[4],XGBoost[5]和RankLib。2、我们也为开放做出了贡献-使用我们的QuickRank[6]框架的源代码实现RankEval的需求源于这样一个事实,即所有这些库对微调模型和评估其在不同方面的性能的支持非常有限此外,工程师们缺乏一个通用的开源框架来全面评估使用不同工具训练的LtR模型。孤立地评估排名解决方案并不是微不足道的。例如,可用于大多数常见信息检索(IR)评估指标的实现彼此不同:对于归一化贴现累积增益(NDCG)指标[7],没有相关结果的查询在LightGBM中被分配得 分 等 于 1 , 在 QuickRank 和 RankLib 中 等 于 0 , 在 YahooLearning to Rank Challenge中等于0.5通过提供一个单一的综合框架来调整,评估和比较GBRTLtR模型,可能是通过不同的梯度提升库学习的,RankEval旨在填补上述空白。虽然上面提到的开源库提供了最先进的LtR算法的高效和有效的实现,但RankEval提供了一个易于使用的框架,可以在最流行的库之间进行互操作,并为工程师提供了深入理解模型并调整其有效性的可能性。 RankEval作为一个轻量级的Python库,可以用在一个轻量级的笔记本电脑3,以利用其最近推出的交互式可视化功能。最后,RankEval可以利用高性能基础设施来加速最苛刻的分析功能。1.1. 当前版本RankEval的初步实现演示文件可以在[8]中找到。自2017年首次发布以来,RankEval框架一直在不断维护和更新,并发布了几个版本的代码。随着时间的推移引入的改进以及当前版本中提供的改进包括:PyPI可用性。从0.61发布版本开始,RankEval可从Python包索引(PyPI)获得。您可以通过运行以下命令轻松安装该工具:此外,代码根据最常用的平台(UNIX和MacOS,python版本2.7,3.4,3.5,3.6和3.7)打包到几个二进制这些二进制包是通过PyPi提供的,因此允许快速简单的安装,而不需要从头开始编译低级代码(出于效率原因,一些功能是使用Cython编写的)。2 https://github.com/codelibs/ranklib3 http://jupyter.org/交互式笔记本。从0.61发布版本开始,提供了几个带有源代码的RankEval笔记本,以向用户提供对RankEval中实现的主要功能的交互式介绍,以及用户友好的如何使用库和深入理解代码结构的指南支持CatBoost和Jforests。从0.7发布版本开始,RankEval提供了两个新的模型代理,将其互操作能力扩展到两个额外的LtR库。Python 3 兼 容 性 的 RankEval 。 从 0.7 发 布 版 本 开 始 ,RankEval完全支持Python 3函数和代码约定。新的分析和可视化功能。从0.7发布版本开始,引入了一些新功能,用于分析和可视化集合中树木的形状,并可以通过多种方式个性化绘图。此功能允许更好地理解每棵树预测的输出,以及对树的形状有清晰的了解有关树形和拓扑分析功能的更多信息,请参见第2.2持续集成。现代软件开发通常使用敏捷原则,这些原则关注客户对持续交付新功能的需求。 鉴于这一愿景,从0.81发布版本开始,我们使用Travis引入了持续集成(CI),4将自动化测试和控制添加到RankEval管道中,以节省编程和调试时间,并提高软件的可靠性。现在,每个提交/发布/ PR在合并到存储库之前都会进行测试。甚至在PyPi上发布库也是自动化的:master上的每个标记提交现在都会激活部署操作,这些操作将再次测试代码,打包并发布到各种支持的平台上。Bug修复. 自该库首次发布以来,在社区的帮助下,通过电子邮件或使用GitHub上类似地,上面列出的许多特征基于每个查询的学习排序数据集的K-折叠分裂)被用户请求并在库中实现,以向用户群提供支持。RankEval的GitHub存储库目前有13名开发人员观看,有65颗星,社区通过添加问题和拉取请求来参与软件。2. 软件描述2.1. 软件构架RankEval是用Python实现的,其架构如图所示。1.一、绿色框突出显示主要软件组件,蓝色框是Python模块,而黄色框提供纯静态功能。红色框突出显示了出于效率原因而在Cython中实现的功能该软件在逻辑上分为两层:(i)核心组件,包括基类(数据集,模型,度量)和一些实用方法(例如,用于从不同库加载模型的静态代理类,或评分过程的Cython实现);(ii)高级组件,提供具有集成可视化功能的几个分析工具的实现,这些功能可以很容易地在Cython笔记本中利用。4 https://travis-ci.org·······C. Lucchese,C. I.Muntean,F.M.Nardini等人软件X 12(2020)1006143图1.一、 RankEval软件架构。(关于此图例中颜色的参考解释,请读者参考本文的网络版本2.2. 软件功能RankEval的功能可以分为五类:有效性分析,特征分析,结构分析,拓扑分析,GBRT库之间的互操作性。RankEval支持多种排名模型和多种同时使用多个数据集,以便对不同模型进行清晰和直接的比较评估。有效性分析这组功能旨在评估模型在准确性方面的性能。模型性能实现了几个用于模型评估的排名指标。这些指标包括:精确度、精确度-最大值、平均平均精确度(MAP)、等 级 偏 差 精 确 度 ( RBP ) 、 召 回 率 、 期 望 倒 数 等 级(ERR)、平均倒数等级(MRR)、均方误差(MSE)、均方根误差(RMSE)、贴现累积增益(DCG)、归一化贴现累积增益(NDCG)、Kendall这种大量提供不同的评估指标允许用户选择正确的指标,为特定的检索任务,避免常见的IR评估错误(例如,见Fuhr树式性能允许通过改变模型中的树的数量来递增地评估不同的有效性度量,即,top-k树这种分析允许通过改变所考虑的树的数量来对不同数据集上的大型模型进行评分,从而调查效 率 / 有 效 性 权 衡 [9] 。 在 图 2 ( 左 ) 中 , 我 们 显 示 了NDCG@10在三个数据集分割上的增量每树分解:训练,验证和测试。它表明,增加训练集上的树的数量可以提高NDCG的性能,而在其他两个分裂上,性能在大约400棵树之后趋于平坦。这表明模型从400棵树开始过拟合在图2(右)中,分析显示了每棵树对最终准确度分数的平均贡献,而不管森林中的树排序如何。例如,这允许按重要性对树进行排序。该图显示,森林开始(0-200)的树木如果开发人员正在寻找更小、更有效的模型,则该查询性能计算给定查询集上的度量分数累积分布。文档分级相关性性能与上述类似,它提供了累积性能分布,并对可用的相关性标签进行了细分。5 http://sigir.org/wp-content/uploads/2018/01/p032.pdf6 http://www.sigir.org/wp-content/uploads/2020/06/p14.pdf查询类性能允许调查不同查询类上的质量性能故障(例如,导航的、信息的、事务的等)。秩混淆矩阵提供了一个面向秩的混淆矩阵,其中对于任何给定的相关性标签l i,给出了预测分数小于具有标签l j的文档的文档数量。RankEval提供了几种特征分析工具,可以调查:(i)训练模型如何使用特征,以及(ii)它们对模型最终准确性的影响。虽然LtR库允许仅在单个度量方面执行类似的均方根误差(RMSE),RankEval允许对所有支持的排名指标进行改进的分析特征重要性通过单独考虑森林的每个估计量来评估每个特征对全局误差减少的贡献(i)在整个集合上或(ii)增量地。特征使用统计提供了关于特征使用的进一步细节,即,有关特征在森林中出现的位置和方式的高级统计信息,例如,使用给定特征的森林节点的数量、它们在模型中的平均深度、模型使用的阈值的分布统计分析提供了以下新功能:统计显著性允许评估模型何时以及如何提供统计显著性性能w.r.t一个给定的竞争对手。实施了几种最先进的显著性检验,包括偏差与方差分解在偏差与方差分析的帮助下研究给定LtR拓扑分析提供了LtR模型的拓扑性质RankEval提供的分析涵盖了树木的最小/最大/平均深度,以及树木形状的调查。在图3(左)中,XGBoost倾向于构建平均更平衡的集合模型(即,与图1中的QuickRank框架相比,左侧和右侧的节点数量相似)。3(右),平均而言,它倾向于建立左分支上具有长链节点的非常倾斜的互操作性RankEval旨在为LtR解决方案的分析提供一个统一的和用户友好的框架。 RankE-val能够分析以不同格式存储的模型,这些格 式 由 五 个 最 流 行 的 库 用 于 学 习 树 的 集 合 , 即 XGBoost ,LightGBM,scikit-learn,CatBoost,Jforests,QuickRank和RankLib。RankEval还提供了格式转换工具,可以轻松地从一种格式转换为另一种格式。··········C. Lucchese,C. I.Muntean,F.M.Nardini等人软件X 12(2020)1006144图二. 树形模型比较(左)和每棵 树对最终得分的 平 均 贡 献 (右)。图三. 拓扑分析工具在两种不同的模型中研 究 基 于 树 的集合的形状:XGB.1k(左)和QuickRank.1k(右)。3. 说明性实例图四、 使用上 面 的代码片段生 成 的模型性能评估。功能的使用可以在RankEvalGitHub的Notebook示例中找到。7RankEval是灵活的,因为它可以用于几个不同的的方式例如,它可以用作Python模块,在shell的帮助下,可以运行调用所需功能的Python脚本。使用它的另一种方法是将它导入到一个字节的笔记本中。感兴趣的读者可以测试第2.2节中提供的所有功能。RankEval提供了一种将结果可视化为报告表(在Pandas框架的支持下)和图(在Matplotlib的支持当在PythonNotebook中运行RankEval时,结果可以存储在文件中或内联可视化图4报告了一个代码片段,显示了如何简单,用户友好RankE-val提供的评估过程是可定制的。该示例说明了一个简单的代码片段,用于测量三个预训练模型之间的模型性能,两个使用QuickRank(QR_lmart_1k,QR_lmart_15k)训练,一个使用XGBoost(XGB_lmar_1k)训练。的有效性4. 影响RankEval为科学界和IR工程师和从业者带来了显著的附加值。等级评估模型基于三个不同的度量进行评估,即 P@10,R@10和NDCG@10。其他几个代码片段和7https://github.com/hpclab/rankeval/tree/master/notebooksC. Lucchese,C. I.Muntean,F.M.Nardini等人软件X 12(2020)1006145可以积极影响两个社区,因为它允许在最先进的LtR方法之间进行 公 平 的 比 较 和 分 析 。它 将 使 用 几 种 不 同 工 具 ( 例 如XGBoost , LightGBM , scikit-learn , QuickRank ,RankLib)训练的模型的评估统一在一个框架中,提供客观和直接的指标。以前LtR库本身以非常小和非统一的方式完成的工作,RankEval成功地将模型分析和评估的综合框架与集成和互操作性工具结合在一起事实上,RankEval成功地用于在主要会议上展示的不同LtR教程[11这种最后,RankEval的设计目标是加快调查给定LtR模型的优点和缺点的过程,并支持用户实现最佳模型微调。5. 结论RankEval是一个独特的工具,专注于评估基于集成的LtR模型。它在一个统一的框架中收集和实施了所有通常用于衡量排名模型有效性的评估方法和指标,并为其客观评估、解释和深入分析添加了新的功能和特性。该工具旨在全面了解模型性能,同时改进报告。它提供了模型结构的拓扑视图、特征重要性分析、统计显著性检验和LtR数据集上的几个性能指标,使用户更容易理解模型未能达到最大精度的地方并突出问题。RankEval是GitHub上的一个开源项目,采用Mozilla公共许可证2.0。我们感谢所有参与该项目并添加/改进RankEval功能的贡献者。竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作致谢工 作 部 分 由 欧 盟 地 平 线 2020 研 究 和 创 新 计 划 资 助 的BIGDATAGRAPES项目根据赠款协议780751资助,以及由意大利教育和研究部(MIUR)资助的OK- INSAID项目根据赠款协议780751资助。ARS01_00917.引用[1] 放大图片作者:Gulin A,Kuralenok I,Pavlov D.赢得了“雅呼”的迁移学习赛道我们正在学习如何用yetirank对挑战进行在:雅虎!学习如何应对挑战2011年,第63-76页。http://dx.doi.org/10.5555/3045754.3045761网站。[2]Dato D,Lucchese C,Nardini FM,Orlando S,Perego R,Tonellotto N,etal.快速排名与遗忘和非遗忘回归树的添加剂集成。ACM Trans Inf Syst2016;35(2):15:1-31. http://dx.doi.org/10.1145/2987380.[3]弗 里 德 曼 贪 婪 函 数 逼 近 : 一 个 梯 度 提 升 机 。 Ann Statist 2000;29 :1189www.jstor.org/stable/2699986[4]Ke G,Meng Q,Finley T,Wang T,Chen W,Ma W,et al. LightGBM:Ahighly efficient gradient boosting decision tree. In : Guyon I , LuxburgUV , Bengio S , Wallach H , Fergus R , Vishwanathan S , Garnett R ,editors.神经信息处理系统进展,第30卷。柯兰联营公司; 2017年,第3146-54页。http://dx.doi.org/10.5555/3294996.3295074网站。[5]陈 T , Guestrin C. XGBoost : 一 个 可 扩 展 的 树 提 升 系 统 。 第 22 届 ACMSIGKDD知识发现与数据挖掘国际会议论文集。New York,NY,USA:ACM; 2016,p. 785-94. http://dx.doi.org/10.1145/2939672.2939785网站。[6] Capannini G,Dato D,Lucchese C,Mori M,Nardini FM,OrlandoS,et al. Quickrank:a C++ suite of learning to rank algorithms.第六届意大 利 信 息 检 索 研 讨 会 。 2015 年 , URLhttp://ceur-ws.org/Vol-1404/paper_9.pdf。[7]Järvelin K,Kekäläinen J.基于累积增益的IR技术评估。ACM传输信息系统2002;20(4):422-46。http://dx.doi.org/10.1145/582415的网站。582418[8]Lucchese C,Muntean CI,Nardini FM,Perego R,Trani S. Rankeval:一个用于学习排名解决方案的评估和分析框架。第40届国际ACM SIGIR会议的研究和发展信息检索。New York,NY,USA:Association for ComputingMachinery; 2017,p. 1281-4. http://dx.doi.org/10.1145/3077136.3084140.[9]Capannini G,Lucchese C,Nardini FM,Orlando S,Perego R,TonellottoN.使用学习排名模型的文档评分中的质量与效率。Inf Process Manag 2016;52(6):1161-77. http://dx.doi.org/10.1016/j的网站。ipm.2016.05.004网站。[10]放大图片Smucker MD,Allan J,Carterette B.信息检索评价中统计显著性检验的比较。第十六届ACM信息与知识管理会议论文集。New York,NY,USA : ACM;2007 , p.623-32.http://dx.doi.org/10 的 网 站 。1145/1321440.1321528.[11] Lucchese C,Nardini FM.学习中的效率/效益权衡排名数据库中的机器学习 和 知 识 发 现 - 欧 洲 会 议 。 2018 年 12 月 28 日 , 中 国 科 学 院 出 版 社 。http://dx.doi.org/10.1145/3121050.312110[12]Lucchese C,Nardini FM,Pasumarthi RK,Bruch S,Bendersky M,WangX,学习排名的理论和实践:从梯度提升到神经网络和无偏学习。NewYork,NY,USA:Association for Computing Machinery; 2019,p. 1419-20.http://dx.doi.org/10.1145/3331184.3334824.[13]Lucchese C,Nardini FM.学习排名的效率/效果权衡。ACM SIGIR信息检索理论国际会议 论文集。New York ,NY,USA:Association for ComputingMachinery; 2017,p. 329-30. http://dx.doi.org/10.1145/3121050.3121109网站。
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 高清艺术文字图标资源,PNG和ICO格式免费下载
- mui框架HTML5应用界面组件使用示例教程
- Vue.js开发利器:chrome-vue-devtools插件解析
- 掌握ElectronBrowserJS:打造跨平台电子应用
- 前端导师教程:构建与部署社交证明页面
- Java多线程与线程安全在断点续传中的实现
- 免Root一键卸载安卓预装应用教程
- 易语言实现高级表格滚动条完美控制技巧
- 超声波测距尺的源码实现
- 数据可视化与交互:构建易用的数据界面
- 实现Discourse外聘回复自动标记的简易插件
- 链表的头插法与尾插法实现及长度计算
- Playwright与Typescript及Mocha集成:自动化UI测试实践指南
- 128x128像素线性工具图标下载集合
- 易语言安装包程序增强版:智能导入与重复库过滤
- 利用AJAX与Spotify API在Google地图中探索世界音乐排行榜
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功