On the Evaluation of NLP-based Models for Sofware Engineering 论文总结

On the Evaluation of NLP-based Models for Sofware Engineering

基于自然语言处理的软件工程模型评价研究

摘要

基于NLP的模型越来越多地被用于解决SE问题。这些模型要么在SE域中使用,几乎没有变化,要么根据源代码及其独特特性进行了大量定制。其中许多方法被认为优于或补充了现有的解决方案。然而,这里出现了一个重要的问题:这些模型在SE社区中是否得到了公平一致的评估?。为了回答这个问题,我们回顾了研究人员如何评估基于NLP的SE问题模型。研究结果表明,目前没有一致且被广泛接受的方案来评估这些模型。虽然在不同的研究中对同一任务的不同方面进行了评估,但衡量标准是基于自定义选择而非系统来定义的,最后,答案是根据具体情况收集和解释的。因此,迫切需要提供一种评估基于NLP的模型的方法,以便进行一致的评估,并保持公平有效比较的可能性。

关键词

评估、自然语言处理、软件工程

1 介绍

研究人员一直在使用NLP模型来解决各种SE问题,如代码生成、完成、摘要、错误修复、问题回答、测试用例生成、文档等。随着这些模型吸引了更多的研究人员,研究的数量和多样性也在增加,因此有必要采用良好的评估方法和技术对其进行适当的评估。为了进行公平和可比的比较,这些指标在整个文献中应该是一致的。为了了解NLP模型的评估,我们回顾了过去五年的领域,并在这里报告了结果。据我们所知,我们是第一个进行系统文献研究的人 回顾基于NLP的模型的评估,以了解潜在模式,确定挑战,并建议未来的研究方向。

2 方法论

我们使用以下方案进行了系统评估。我们的主要研究问题是“如何在SE中评估基于NLP的模型?”。论文标题、摘要或正文中的搜索短语包括NLP、自然语言处理、代码和评估。论文必须经过同行评审,以英语撰写,并在2017年后由以下SE知名会议和期刊之一发表:ICSE、ESEC/FSE、ASE、IEEE TSE、ACM TOSEM和EMSE。我们使用谷歌学者作为来源,检索了157篇论文。其中两位作者手动检查了所有论文,以确定提出基于NLP的模型来解决SE问题的论文。最后,由于以下一个或多个原因,53篇论文被排除在外:论文的范围与NLP和SE无关,主要提出的模型不是基于NLP,或者是二次或重复研究。接下来,我们将介绍对其余104篇纳入论文的审查结果。关于协议和论文的更多信息可以在我们的GitHub存储库中找到https://github.com/MalihehIzadi/nlp4se_eval

3 基于NLP模型的评估

有两种评估方法,一种是内在的,侧重于中间目标(子任务),另一种是外在的,用于评估最终目标的绩效。SE中基于NLP的模型通常使用以下一个或多个指标进行评估。
(1)自动:自动评估由三组组成,即(i)评估分类模型结果的指标,如准确性、精确性、召回率和F度量,(ii)评估推荐列表的指标,包括Top@n or ranked ver-
sions,如MRR和MAP,以及(iii)用于分析生成文本或源代码质量的指标,包括BLEU、METEOR、ROUGE、苹果酒、chrF、困惑和Levenshtein相似性指标。
(2)手动评估:手动评估更具主观性,并注意人类参与者的判断。研究人员首先选择相关指标来评估所提出模型输出的不同方面。然后,他们邀请一组专家根据选定的指标评估结果。例如,对于代码摘要任务,研究人员从开发人员的角度使用信息量作为生成摘要的质量指标。

与手动版本相比,自动评估更容易、更快且完全客观。因此,大多数研究人员选择使用自动评估来评估他们的模型。模型的几个方面可以用来补充自动评估。最近,Roy等人[12]进行了一项实证研究,探讨了自动度量在评估产品质量方面的适用性和解释。代码摘要任务。在226名人类注释员的帮助下,他们评估了自动度量反映人类评估的程度。他们声称,对于BLEU这样的自动度量,不足2分的改进并不能保证系统性地提高摘要质量。这就突出了人类评估的作用。

虽然文献中统一定义了自动度量,但手动度量更难定义、解释和使用。这些指标必须恰当地表明模型的目标和性能。此外,它们的定义和用法必须保持一致,才能产生可比的结果。因此,在下文中,我们将回顾SE领域中最流行的现有手动评估方法,并将其余方法(如有效性、可理解性、节省时间、相关性、正确性、可用性、最近性、语法正确性、优势、多样性、自解释性、主题识别等)留给更全面的研究。有用性:一些研究将有用性定义为参与者如何找到解决手头问题的建议解决方案[2,4,7,11,16]。另一些人将有用性定义为用户使用他们提出的模型的倾向或偏好[17]。Jiang等人[8]基于其准确性和生成输出的难度来评估其结果的有用性。也就是说,他们关注的是模型在确实需要时的工作频率。自然性、表达性、可读性和可理解性:Roy等人[13]将自然性定义为阅读和理解生成的输出有多容易。他们还使用可读性来衡量参与者在多大程度上认为输出是可读和可理解的。Aghamohammadi等人[1]将自然性定义为其输出的流畅性、可读性和语法正确性。Gao等人[5]将自然度衡量为生成句子的语法正确性和流畅性。Zhou等人[18]使用表达性来判断他们模型的输出是否清晰易懂。正确性或内容:Huang等人[6]将正确性定义为参与者是否可以使用他们提出的工具找到正确的API,而Chen等人[3]将其定义为验证同义词和缩写词在他们的同义词词典中的总体正确性的一种措施。在Roy等人[13]的研究中,内容意味着摘要是否正确反映了测试用例的内容。完整性和信息性:Uddin等人[14]将完整性定义为对API审查的一个完整但可呈现的总结。Aghamohammadi等人[1]将信息性定义为一段代码中有多少重要部分被生成的摘要覆盖。简洁性:在罗伊等人[13]的研究中,简洁的摘要不包括无关或无关的信息。Zhou等人[18]通过回答修复建议是否没有其他约束无关信息,对简洁性进行了量化。相关性或相似性:一些研究定义了模型输出与参考文本或代码的相关性[2,5,11,16]。其他人要求开发人员对输出和参考文本之间的相似性、关联性以及上下文或语义相似性进行评分[9,10,15]

4 讨论和未来方向

我们回顾了104项研究,以了解基于NLP的模型通常如何在SE领域进行评估,并提供了最常用的指标列表。接下来,我们将介绍基于NLP的模型评估面临的主要挑战。(1) 自动和手动方法均可用于提供基于NLP的模型性能的更全面视图,然而,并非所有符合条件的研究都同时使用这两种方法。(2) 对于手动形式的评估,存在大量有时相互冲突或模棱两可的评估指标。如果度量有多个定义(例如,信息性),或者多个度量重叠(例如,自然性、可读性、可理解性和表达性),这个问题会加剧。一些研究人员评估他们模型的不同方面(例如,完整性、自然性或正确性),而另一些研究人员只讨论一个或两个方面。由于每个模型都有不同的方面,因此应该有一种方法学方法,首先确定给定SE任务的最重要方面,然后用具体定义的指标正确评估这些方面。(3) 除了指标的定义和使用,没有定义答案集的标准。也就是说,一些人使用是\否答案,而另一些人使用푛-point Likert scale甚至自由格式文本答案。(4) 最后,确定新的评估指标或技术可以帮助SE研究人员更彻底地评估这些模型,以及它的重要性。例如,对于自动代码完成任务,预测标识符比预测关键字更有价值,也更困难。因此,评估预测任何代币的模型并没有多大帮助。通过查阅文献,我们迈出了应对基于NLP模型的正确评估挑战的第一步。我们建议未来的研究重点是为这些模型的评估提供一个系统且一致的框架,以(1)明确定义度量,(2)区分SE任务的不同需求,以及(3)确定在上下文中正确使用度量。希望通过一种系统的评估方法,能够在SE领域对基于NLP的模型进行公平、正确的评估。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南楚巫妖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值