没有合适的资源?快使用搜索试试~ 我知道了~
软件X 17(2022)100997原始软件出版物EvalNE:一个网络嵌入评估亚历山德鲁·马拉尼,杰弗里·利菲尔特,蒂吉尔·德比耶根特大学电子与信息系统系,Technologiepark 122,9052 Ghent,Belgiumar t i cl e i nf o文章历史记录:2021年3月23日收到2022年1月12日收到修订版2022年1月12日接受关键词:表示学习评价再现性开源工具a b st ra ct在本文中,我们介绍了EvalNE,一个用于网络嵌入评估的Python工具箱。EvalNE的主要目标是帮助研究人员和从业人员对新的包埋方法进行一致和可重复的评估,复制现有的评估,并进行基准研究。该工具箱可以独立于其编程语言来评估模型,并通过数据可视化和下游任务(如符号和链接预测、网络重建和节点多标签分类)来评估学习表示的质量。EvalNE通过为超参数调整和模型验证、节点和边采样、节点对嵌入计算和性能报告等任务提供自动化和抽象来简化评估。作为命令行工具,配置文件描述了评估设置,并保证了一致性和可重复性。作为一个API,EvalNE提供了构建块来设计任何评估设置,同时最大限度地降低评估错误的风险©2022作者(S)。由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)中找到。代码元数据当前代码版本v0.3.3指向此代码版本所用代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX-D-21-00057Code Ocean compute capsule N/A法律代码许可证MIT使用Git的代码版本控制系统使用Python 2.7.x 3.6.x的软件代码语言、工具和服务编译要求,操作环境依赖性Numpy,Scipy,NetworkX,Scikit-learn,Pandas,Matplotlib,Tqdm如果可用开发人员文档/手册https://evalne.readthedocs.io/en/latest/问题支持电子邮件alexandru. ugent.be软件元数据当前软件版本v0.3.3此版本可执行文件的永久链接https://github.com/Dru-Mara/EvalNE/releases/tag/v0.3.3法律软件许可证MIT计算平台/操作系统Linux,macOS,Microsoft Windows安装要求依赖性Numpy,Scipy,NetworkX,Scikit-learn,Pandas,Matplotlib,Tqdm如果可用,请链接到用户手册-如果正式出版,请在参考列表中引用该出版物https://evalne.readthedocs.io/en/latest/问题支持电子邮件alexandru. ugent.be*通讯作者。电子邮件地址:alexandru. ugent.be(Alexandru Mara),jefrey.ugent.be(Jefrey Lijffijt),tijl. ugent.be(Tijl De Bie)。https://doi.org/10.1016/j.softx.2022.1009971. 动机和意义网络嵌入(NE)或网络表示学习方法旨在学习网络节点的低维表示为向量,通常在欧几里得空间中。然后,这些表示可直接用于网络可视化或有效地执行各种下游预测2352-7110/©2022作者。 由Elsevier B.V.出版。这是一篇开放获取的文章,使用CC BY许可证(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softxAlexandru Mara、Jefrey Lijffijt和Tijl De Bie软件X 17(2022)1009972任务这些任务包括符号预测[1,2],链接预测[3,4],网络重建[5,6]和节点分类[7,8]。这些下游任务的更高性能通常与网络的更好表示相然而,基于下游任务性能评估NE方法是具有挑战性的,并且需要许多额外的步骤和设计选择,这可能混淆结果,损害再现性,并且容易出错。首先,对于每个下游任务,必须确保输入数据得到一致的预处理,以便正确评估所有方法例如,许多NE方法要求输入网络包含单个连通分量(例如[4]),而有些方法则不需要(例如[6])。此外,必要的训练和测试数据集(节点或边)可以根据各种方法选择,并且具有不同的大小[9]。例如,边缘采样的两种流行选择使用最近的边缘进行测试,而使用剩余的边缘进行训练)。评价不一致的另一个来源是负采样[10]。该技术通常用于链接预测评估,以生成用于边缘和非边缘的二进制分类的负类。负采样方法以及训练和测试非边缘集的相对大小在科学研究之间有所不同。NE评估中的另一个挑战是嵌入方法提供不同类型的输出。虽然一些方法只输出节点嵌入[11],但其他方法可以提供节点对嵌入[12]甚至节点相似性[4]。因此,需要针对不同输出类型的特定管道。在这种情况下,特别重要的是从节点嵌入计算节点对嵌入,这已被证明会强烈影响嵌入质量[3]。最后,额外的复杂性源于超参数调整,不仅对于评估的嵌入方法,而且对于下游任务本身。为了应对上述挑战并简化评估NE方法的下游任务,我们介绍EvalNE。工具箱既可以作为独立的应用程序使用,也可以集成到现有代码中。EvalNE作为一个命令行工具。EvalNE利用配置文件,允许用户描述完整的实验设置,从任务,数据集和方法使用,预处理,采样,超参数调整和指标优化。这些配置文件提供了定义或复制不同实验设置的灵活性,并且足以进行完整的再生产。评估后,生成详细的性能报告EvalNE作为API。工具箱提供了一系列类和函数的访问,这些类和函数实现了不同下游任务上的方法评估所需的各种组件(见图1)。①的人。用户可以组合和修改这些构建块以生成新的评估管道。该库不实现任何NE方法,但提供了必要的附件来方便地评估任何现成的方法。然而,该框架确实实现了一些链接预测算法(见3.2节)。2. 相关软件据我们所知,没有其他库提供类似水平的自动化和灵活性的EvalNE网络嵌入评估。最近提出的一个框架[13],从EvalNE中获得灵感,旨在评估语义任务上的嵌入,并且仅限于节点嵌入方法。其他库,如OpenNE[14]和GEM[15]主要侧重于提供NE方法的实现,目前评估能力有限。 他们的评估管道是严格的,并且专门针对他们实施的方法,特定的数据集和下游任务的小集合(两种情况下的节点分类以及GEM的额外链接预测)。Karateclub [16]库旨在帮助用户编写自己的评估。最后,其他计划,如开放图基准[17],收集具有挑战性的数据集进行NE评估。相关的OGB Python包还提供了对数据预处理的支持,以及一组专为基准数据集定制的求值器。与这些框架不同,EvalNE可以评估具有不同类型输出的方法,从节点到节点对嵌入和节点对相似性。我们的框架不限于特定库中可用的预定义网络或方法集。相反,它可以评估任何可用的方法(注意,这包括上述库中的所有实现)。EvalNE也不需要用户编写自己的评估管道,也不需要显著修改他们的代码以适应特定的API。3. 软件描述EvalNE在GitHub上可用,并在MIT自由软件许可证下发布。该库的代码风格符合PEP 8,文档字符串文档遵循标准Numpy格式。工具箱与Python 2和Python兼容3 并且可以使用PIP容易地安装。支持的平台包括Linux、macOS和Microsoft Windows。EvalNE仅用于-挂在少数流行的开源软件包上,其他如OpenNE和GEM是可选的,可以提供不同NE方法的实现。工具箱文档由Read the Tools自动管理和在线托管。它提供了有关安装和主要功能的详细说明,以及命令行和API使用的一系列示例。最后,该库包含一组预填充的配置文件,允许复制NE上几篇有影响力的论文的实验部分3.1. 软件构架从概念上讲,EvalNE的设计可以看作是一组相互连接的构建块,提供了所有必要的组件进行评估。这种模块化结构,如图1所示,简化了代码维护和新功能的添加,并允许评估具有不同输出类型(节点嵌入,节点对嵌入,节点对相似性等)的方法。不同的下游任务。3.2. 软件功能第3.1节中介绍的构建块由以下组成提供以下功能的各种类和方法。数据预处理。基于流行的NetworkX[18]框架,EvalNE提供了加载和存储网络,修剪和重新标记节点,删除自循环,采样边缘,将网络限制为主要连接组件以及获取公共统计数据的附加功能。Alexandru Mara、Jefrey Lijffijt和Tijl De Bie软件X 17(2022)1009973Fig. 1. EvalNE的框图显示了可以评估的方法和任务。下行链路预测、符号预测、网络重构和节点分类任务分别缩写为LP、SP、NR和NC。虚线块对应于具有不同输出类型的用户指定的方法,其余的区块由EvalNE提供数据取样。为了进行评估,必须从输入网络中获取训练、验证和测试数据(节点或边)特定的采样策略对于每个下游任务都不同例如,在节点分类中,这是相对直接的,因为测试/验证节点可以随机采样。对于其余的任务,这需要设置的边缘,我们提供了各种采样方法。从基于时间戳到随机采样,确保列车边缘继续跨越连接的子图(许多NE方法的关键要求)。对于负采样,EvalNE提供了两种选择:开放世界假设和封闭世界假设。前者考虑的情况下,非边缘是不知道的先验,因此,必须从火车边缘跨越的火车图进行采样。在这种情况下,采样的非边缘可以与测试边缘重叠后者考虑了非边缘先验已知的情况,因此,训练非边缘不与测试边缘重叠。EvalSplit类封装了采样和负采样功能。模型训练验证。 EvalNE为每个下游任务提供了称为Evaluator的特定类。这些类使用适当的输入数据管理模型训练,通过网格搜索和结果收集进行超参数调整。对于符号和链接预测以及网络重构,可以直接评估提供节点相似性的方法那些输出节点或节点对嵌入通过二进制分类进行评估。EvalNE支持任何Scikit-learn二元分类器,并实现了Logistic Regression,默认交叉验证。 只输出节点嵌入的方法还需要一个二元运算符来计算节点对嵌入。为此,EvalNE实现了以下算子:平均、Hadamard、加权L1和加权L2(见[3]).评估报告可视化。EvalNE可以通过挂钟时间评估方法的可扩展性,并通过固定阈值指标和阈值曲线评估性能。该库实现了超过10种不同的固定阈值指标,包括AUC、精确度、召回率和F分数。综合阈值曲线,呈现了一系列阈值的方法性能,包括还提供了可视化嵌入和图形的方法,以及将高维嵌入映射到2D的降维技术。方法特定的性能记录在结果对象中,而全局评估摘要通过Scoresource对象提供。基线弹道学。特别是对于链接预测任务,工具箱为有向和无向网络提供了一组启发式方法。(i)节点对相似性,即,公共邻居,Jaccard系数,Adamic-Adar指数,偏好连接,资源分配,余弦相似性,Leicht-Holme-Newman指数和拓扑重叠,(ii)路径,即,Katz相似性,以及(iii)嵌入,即,all_ baselines(五个字符串作为嵌入)。4. 说明性实例在本节中,我们将展示两个示例,分别展示EvalNE作为命令行应用程序和Python API的使用。4.1. 命令行示例当使用EvalNE作为命令行应用程序时,需要一个描述评估设置的配置文件补充材料的附录A中提供了此类文件的示例配置文件中的评估参数分为8个类别或部分,也在附录A.这些部分涵盖了与任务相关的一般参数、数据摄取和预处理、边缘采样、评估方法和结果报告。一旦配置文件被填充,就可以使用以下命令开始评估:python-m evalne< con-fig_file>.ini。工具箱将自动记录任何问题,如失败的方法执行,提供一个表格输出和两个pickle文件,其中包含训练和测试评估分数-薄膜.4.2. API示例在补充文件的附录B中提供了一个代码片段,显示了使用EvalNE作为API来评估下游链路预测的五种不同方法。在这个例子中, 我们 首先读取 和预处理一 个新的数 据集, 创建一个LPEvalSplit对象,它将包含训练和测试边缘和非边缘,并初始化一个链接预测评估器。然后,我们创建了一个记分表对象来存储评估结果,并选择了三个基线算法和两个NE方法进行评估。最后,我们启动评估并展示结果。5. 影响最近的研究发现,人工智能在许多领域的进展都停滞不前[21诸如EvalNE和其他受其启发的工具,例如[13],有可能通过实现可重复和一致的评估和大规模基准来最大限度地减少这一危机。使用EvalNE已经进行了一次这样的大规模评估,特别是针对链路预测任务[9]。此外,使用配置文件来描述丰富的实验设置的能力提供了两个特别的好处。一方面,由于许多重复性任务(如数据预处理或超参数调整)是自动化的,因此评估得到了简化。另一方面,确保其他从业者可以复制评估,简化为使配置文件可访问。[2,24]的作者在对大规模网络进行链路预测评估和符号预测评估时已经探索了这些好处,Alexandru Mara、Jefrey Lijffijt和Tijl De Bie软件X 17(2022)1009974分别我们还注意到,该软件已经引起了一些关注,在其他研究领域与学士和硕士论文,数学[25],生物学[26]和计算机科学[27]领域利用其能力。最后,EvalNE的用户群在过去的几个月里一直在不断增长,正如我们GitHub存储库的几个流行指标所6. 结论在本文中,我们介绍了EvalNE,这是一个Python工具箱,用于网络嵌入方法的一致性和可重复性评估该工具箱允许用户比较NE方法,并使用自动化但高度灵活的评估管道对各种下游任务执行基准测试。在不久的将来,我们希望扩大我们的框架的影响,支持额外的任务,如集群和节点classi- fication通过链接预测,直接集成与库提供NE方法的实现,扩展的可视化功能和GUI。竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作致谢导致这些结果的研究得到了欧洲研究理事会在欧洲联盟第七框架方案下的资助(FP 7/2007-2013)/ ERC赠款协议第615517号,来自佛兰德政府的“Onderzoeksprogramma Intelligentie(AI)Vlaan-deren”方案,以及来自FWO(项目编号G 091017 N,G0F9816N、3G042220)。附录A. 补充数据与本文相关的补充材料可以在https://doi.org/10.1016/j.softx.2022.100997上找到。引用[1] 王S,唐J,Aggarwal C,张Y,刘H.在社交媒体中的签名网络嵌入。第17届SIAM 国 际 数 据 挖 掘 会 议 论 文 集 。 2017 年 , 第 327- 335 页 。http://dx.doi.org/10.1137/1.9781611974973的网站。37岁[2] Mara A,Mashayekhi Y,Lijffijt J,de Bie T. CSNE:条件签名网络嵌入。第29届ACM信息知识管理国际会议论文集。2020,第1105-14页。http://dx.doi的网站。org/10.1145/3340531.3411959。[3] Grover A,Leskovec J. Node2vec:Scalable feature learning for networks.第22届ACM SIGKDD知识发现和数据挖掘国际会议论文集。2016,p. 855-64.http://dx.doi.org/10.1145/2939672.2939754.[4] 杨文斌,李文斌,李文斌.条件网络嵌入。第七届学习表征国际会议论文集。2019年,网址https://openreview.net/forum? id=ryepUj0qtX。[5] 王丹,崔萍,朱伟.结构化深度网络嵌入。第22届ACM SIGKDD知识发现与 数 据 挖 掘 国 际 会 议 论 文 集 。 2016 年 , 第 1225- 1234 页 。http://dx.doi.org/10.1145/2939672.2939753.[6] Zhang Z,Cui P,Wang X,Pei J,Yao X,Zhu W.保序邻近网络嵌入。第24届ACM SIGKDD知识发现数据挖掘国际会议论文集。2018年,第2778-86页。http://dx.doi.org/10.1145/3219819.3219969网站。[7]Perozzi B,Al-Rfou R,Skiena S. DeepWalk:社交表征的在线学习。第20届ACM SIGKDD知识发现和数据挖掘国际会议论文集。2014年,第701-10页。http://dx.doi.org/10.1145/2623330.2623732网站。[8]唐军,曲明,王明,张明,严军,梅清。LINE:大规模信息网络嵌入。第24届万维网国际会议论文集。2015年,第1067-77页。http://dx.doi.org/10的网站。1145/2736277.2741093。[9] Mara A,Lijffijt J,De Bie T.链接预测的基准网络嵌入模型:我们正在取得进展吗?第七届IEEE数据科学与高级分析国际会议论文集。2020,第138-147页。http://dx.doi.org/10.1109/DSAA49011.2020.00026网站。[10] Kotnis B,Nastase V.分析消极抽样对知识图谱中的链接预测2017年,CoRR abs/1708.06816 。 网 址 https://dblp.org/rec/journals/corr/abs-1708-06816。[11] [10] 杨 晓 , 李 晓 , 李 晓 . VERSE : Versatile graph embedings fromsimilarity measures.第27届万维网国际会议论文集。2018年,第539- 548页。http://dx.doi.org/10.1145/3178876.3186120.[12]Song W,Wang S,Yang B,Lu Y,Zhao X,Liu X.符号网络的学习节点和边嵌入。神经计算2018;319:42-54. 网址://dx.doi.org/10.1016/j.neucom.2018.08.072网站。[13]Pellegrino MA,Cochez M,Garofalo M,Ristoski P.节点嵌入技术的可配置评 估 框 架 。 In : ESWCsatelliteevents.2019 , p.156-60.http://dx.doi.org/10.1007/978-3-030-32327-1_31网站。[14]杨成,涂成,刘正,孙明。网络表征学习:概述。中国科学院学报2017;47(8):980-96. http://dx.doi.org/10.1360/N112017-00145。[15]放大图片作者:Goyal P,Ferrara E. GEM:一个用于图嵌入方法的Python包。JOpenSourSoftw2018;3(29):876.http://dx.doi.org/10.21105/joss.00876网站。[16]Rozemberczki B , Kiss O , Sarkar R. Karate club : 一 个 面 向 API 的 开 源Python框架,用于图上的无监督学习。 第29届ACM信息知识管理国际会议论文 集 。 2020 , 第 3125-32 页 。 http://dx.doi.org/10.1145/3340531 的 网 站 。3412757。[17]Hu W, Fey M ,Zitnik M ,Dong Y, Ren H, Liu B ,et al. Open graphbenchmark : Datasets for machine learning on graphs. 2020 , CoRRabs/2005.00687 URLhttps://dblp.org/rec/journals/corr/abs-2005-00687。[18]Hagberg AA,Schult DA,Swart PJ.使用networkx探索网络结构、动态和功能 。 第 七 届 PythoninScience 会 议 论 文 集 2008 , 第 11-5 页https://www.osti.gov/biblio/960616[19]Lichtenwalter RN , Chawla NV. 链 接 预 测 : 公 平 有 效 的 评 估 。 2012 年IEEE/ACM关于社交网络分析和挖掘进展的国际会议论文集。2012年,第376-383页。http://dx.doi.org/10.1109/ASONAM.2012.68网站。[20]福塞特T ROC图:研究人员的注意事项和实际考虑。Tech.代表,个人通信;2004年。[21]赫 特 森 湾 人 工 智 能 的 核 心 进 展 在 某 些 领 域 停 滞 不 前 。 Science 2020;368(6494):927. http://dx.doi.org/10.1126/science.368.6494.927网站。[22]作者:Dacrema MF,Cremonesi P,Jannach D.我们真的取得了很大进展吗?一个令人担忧的分析最近的神经推荐接近。第13届ACM推荐系统会议论文集。2019,p. 101-9. http://dx.doi.org/10.1145/3298689.3347058网站。[23] Blalock D,Ortiz JJG,Frankle J,Guttag J.神经网络修剪的状态是什么?第 二 届 机 器 学 习 与 系 统 会 议 论 文 集 。 2020 , 第 129-https://proceedings.mlsys.org/[24]Adriaens F,Mara A,Lijffijt J,De Bie T.块近似指数随机图。第七届IEEE国际会议论文集 数据科学和高级分析。(DSAA),2020,p.70-80. 网址://dx.doi.org/10.1109/DSAA49011.2020.00019网站。[25]本楚尔·彼得罗-德·沙尔滕KN节点嵌入算法及其通过链接预测的评估。Tech.代表,EotvosLorand大学;2020年,URLhttps://web.cs.elte.hu/blobs/diplomamunkak/bsc_matelem/2020/petro_de_chalendar_katalin_nicole.pdf。[26] Strybol P-P.使用深度学习方法揭示人类肿瘤中的关键生物过程。Tech.代表,根特大学;2019年,URLhttps://lib.ugent.be/catalog/rug01:002782844。[27] Mbungu S,Saerens M.图嵌入在半监督分类、可视化、重建和邻域保持任务中的应用:实验比较. Tech.代表,Ecole poly-technique de Louvain;2019,URLhttp://hdl.handle.net/2078.1/thesis:19457.
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 前端协作项目:发布猜图游戏功能与待修复事项
- Spring框架REST服务开发实践指南
- ALU课设实现基础与高级运算功能
- 深入了解STK:C++音频信号处理综合工具套件
- 华中科技大学电信学院软件无线电实验资料汇总
- CGSN数据解析与集成验证工具集:Python和Shell脚本
- Java实现的远程视频会议系统开发教程
- Change-OEM: 用Java修改Windows OEM信息与Logo
- cmnd:文本到远程API的桥接平台开发
- 解决BIOS刷写错误28:PRR.exe的应用与效果
- 深度学习对抗攻击库:adversarial_robustness_toolbox 1.10.0
- Win7系统CP2102驱动下载与安装指南
- 深入理解Java中的函数式编程技巧
- GY-906 MLX90614ESF传感器模块温度采集应用资料
- Adversarial Robustness Toolbox 1.15.1 工具包安装教程
- GNU Radio的供应商中立SDR开发包:gr-sdr介绍
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功