首页 > 专利 > 杭州电子科技大学 > 一种基于自注意力机制的软件缺陷报告分配方法专利详情

一种基于自注意力机制的软件缺陷报告分配方法   0    0

有效专利 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2020-07-16
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2021-01-26
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
2022-05-03
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2040-07-16
基本信息
有效性 有效专利 专利类型 发明专利
申请号 CN202010683968.4 申请日 2020-07-16
公开/公告号 CN112199114B 公开/公告日 2022-05-03
授权日 2022-05-03 预估到期日 2040-07-16
申请年 2020年 公开/公告年 2022年
缴费截止日
分类号 G06F8/73G06F11/07G06F40/166G06N3/04G06N3/08 主分类号 G06F8/73
是否联合申请 独立申请 文献类型号 B
独权数量 1 从权数量 2
权利要求数量 3 非专利引证数量 1
引用专利数量 2 被引证专利数量 0
非专利引证 1、2015.12.03郑玉昆等.T-Reader:一种基于自注意力机制的多任务深度阅读理解模型《.中文信息学报》.2018,(第11期),贾红雨等.结合自注意力机制的神经网络文本分类算法研究《.计算机应用与软件》.2020,(第02期),;
引用专利 US2020034436A、US2015348294A 被引证专利
专利权维持 2 专利申请国编码 CN
专利事件 事务标签 公开、实质审查、授权
申请人信息
申请人 第一申请人
专利权人 杭州电子科技大学 当前专利权人 杭州电子科技大学
发明人 方景龙、吴伟玮、邵艳利 第一发明人 方景龙
地址 浙江省杭州市下沙高教园区2号大街 邮编 310018
申请人数量 1 发明人数量 3
申请人所在省 浙江省 申请人所在市 浙江省杭州市
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
杭州君度专利代理事务所 代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
杨舟涛
摘要
本发明涉及一种基于自注意力机制的软件缺陷报告分配方法。本发明根据缺陷跟踪系统中的缺陷报告,收集已经完成分配的缺陷报告,并利用神经网络与注意力机制充分挖掘缺陷报告中隐含的语义信息,计算开发人员与目标缺陷报告的匹配度,来推荐最合适的修复人员。本发明解决了传统缺陷报告分配技术依赖人工特征工程工作的问题,利用神经网络快速有效地对缺陷报告进行信息提取并分配,提高缺陷修复的效率,适用于大规模软件产品的开发以及维护。
  • 摘要附图
    一种基于自注意力机制的软件缺陷报告分配方法
  • 说明书附图:图1
    一种基于自注意力机制的软件缺陷报告分配方法
  • 说明书附图:图2
    一种基于自注意力机制的软件缺陷报告分配方法
  • 说明书附图:图3
    一种基于自注意力机制的软件缺陷报告分配方法
  • 说明书附图:图4
    一种基于自注意力机制的软件缺陷报告分配方法
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2022-05-03 授权
2 2021-01-26 实质审查的生效 IPC(主分类): G06F 8/73 专利申请号: 202010683968.4 申请日: 2020.07.16
3 2021-01-08 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
1.一种基于自注意力机制的软件缺陷报告分配方法,其特征在于,包括如下步骤:
步骤1、收集并整理软件项目的缺陷报告以及修复人员数据,获取软件缺陷报告的类别、项目、组件、摘要、详细描述以及修复该缺陷的开发人员;
步骤2、对缺陷报告数据进行预处理;
步骤3、利用基于自注意力机制的神经网络训练预处理后的历史缺陷报告,挖掘其中隐含的语义信息,并匹配缺陷的最佳分配对象;其具体过程为:
3‑
1.使用预训练的语言表示模型,即BERT;进行自注意力机制计算;
3‑
2.神经网络输入层,即Embedding层,采用了词嵌入、和位置嵌入两种嵌入向量;
3‑2‑
1.词嵌入层是要将输入缺陷报告的各个词转换成固定维度的向量;缺陷报告文本输入词嵌入层之前,要先进行单词分割处理,在文本的开头插入[CLS]标记,在文本结尾插入[SEP]标记;
3‑2‑
2.位置嵌入层表达缺陷报告文本中的单词顺序,用来代表缺陷报告的局部甚至是全局的结构;需要对缺陷报告中的单词位置信息进行编码,让模型捕获到不同位置的单词;
缺陷报告经过神经网络输入层,将得到的两种嵌入向量相加,输入到神经网络中间层,进行自注意力机制计算;
3‑3神经网络中间层,即自注意力层,它是Transformer编码器的双向语言表示模型;基于此模型进行自注意力机制计算;自注意力层由6个相同的Transformer的编码器子层堆叠而成,每一层中由两个子层组成,第一个子层是多头自注意力层,第二个子层是位置敏感的全连接前向网络层,并且每一个子网络层都采用了残差连接和网络层正则化;3‑4神经网络输出层,即softmax输出层;此层的神经单元个数为候选缺陷报告修复者的个数,输出看作此缺陷报告与每位候选缺陷报告修复者的概率;将输入层的[CLS]标记经过自注意力层计算后,与此层的神经单元全连接,经过softmax计算后,输出每位候选修复者的概率。

2.根据权利要求1所述的一种基于自注意力机制的软件缺陷报告分配方法,其特征在于:收集并整理软件项目的缺陷报告以及修复人员数据,其具体过程为:
首先,利用爬虫技术,从缺陷追踪系统中爬取软件项目的历史缺陷报告,选取页面中”Resolution”字段为”FIXED”的缺陷报告,其中包含了描述该缺陷的文本属性,包括类别、项目、组件、摘要、详细描述,以及修复该缺陷的开发人员,然后保存到本地,过滤属性或开发人员字段缺失的缺陷报告。

3.根据权利要求1所述的一种基于自注意力机制的软件缺陷报告分配方法,其特征在于:对缺陷报告数据进行预处理;其具体如下:
首先,把每个缺陷报告的类别、项目、组件、摘要、详细描述,以及修复该缺陷的开发人员信息拼接在一起,组成一个文本,供模型进行特征提取;其中许多字段是缩写的术语词,这些缩写词对分配缺陷报告至关重要,而缩写词无法让模型很好地学习其特征,因此将常见的缩写词进行还原;
在缺陷报告的描述中,对缺陷报告中对连续的单词无法让模型有效的提取特征进行单词分割;
接着进行文本预处理工作,包括分词、去除停用词和词干提取,把清洗后的缺陷报告作为模型的训练数据。
说明书

技术领域

[0001] 本发明涉及一种基于神经网络和注意力机制的软件缺陷报告分配方法,具体为一种基于自注意力机制的软件缺陷报告分配方法。

背景技术

[0002] 大型开源软件项目中,如Eclipse、Firefox等,随着规模的增大和版本的更新,会有大量的缺陷产生,管理和修复软件缺陷是一个耗时耗力并且难度较高的工作。软件使用者和开发人员利用缺陷追踪系统,如Bugzilla、Bugfree等,对软件缺陷报告进行提交和记录。质量管理人员会对这些提交了的缺陷报告进行严重程度估计和分配修复者等工作。其中,根据缺陷报告内容涉及的领域和知识,将该缺陷报告分配给适合的开发人员,此过程为缺陷报告的人员分配。及时并准确的对缺陷报告进行分配对软件质量保障和缺陷修复具有至关重要的意义。
[0003] 在软件项目中不断出现的缺陷给软件开发带来了巨大的压力,并且缺陷修复的过程是极其耗时和非常容易出错的。根据多年来的经验,保障开源软件开发效率和降低成本的一个重要手段就是快速地修复软件中所出现的缺陷,提高缺陷分配的效率可以大大地降低相应的人力和时间成本。因此,需要使用基于深度学习的方法对缺陷报告进行自动化分配,把缺陷报告的文本信息作为训练数据,对应的修复人员看作标签,然后为新缺陷报告推荐最佳的修复人员。基于神经网络的方法将缺陷报告映射为关键词向量,其主要思想是,在高维空间中寻找缺陷的特征表示,对于特定的缺陷,具有相似开发经验及知识的人员更加有能力处理这些缺陷,因此采用神经网络能够有效地对新的缺陷报告进行分配。
[0004] 深度学习中的注意力机制被广泛应用到的自然语言处理领域的各个任务中。注意力机制的本质来自于人类视觉注意力机制。即人类在感知事物时,视觉系统可以帮助我们过滤一些无效信息,根据需求观察感兴趣的部分。而在自然语言处理中常用注意力的计算方法可以被描述为:一个查询到一系列键值对的映射,这是一种能够把有限的注意力资源从大量信息中快速筛选出高价值信息的手段。
[0005] 已有的缺陷报告分配方法中,往往需要大量的人工特征工程过程,这需要丰富的领域知识以及专业匹配度,并且没有考虑缺陷报告文本的语义信息,难以有效地适用于实际的软件开发和维护过程。

发明内容

[0006] 本发明针对上述现有方法中存在的问题,提供了一种基于自注意力机制的软件缺陷报告分配方法,通用性和扩展性强,能高效并且准确地对缺陷报告进行人员分配,提高软件维护过程中的效率,适用于大规模软件产品的开发和维护。
[0007] 本发明方法具体包括以下步骤:
[0008] 步骤1、收集并整理软件项目的缺陷报告以及修复人员数据,获取软件缺陷报告的类别、项目、组件、摘要、详细描述以及修复该缺陷的开发人员;
[0009] 步骤2、对缺陷报告数据进行预处理;
[0010] 步骤3、利用基于自注意力机制的神经网络训练预处理后的历史缺陷报告,挖掘其中隐含的语义信息,并匹配缺陷的最佳分配对象;其具体过程为:
[0011] 3‑1.使用预训练的语言表示模型,即BERT;进行自注意力机制计算;
[0012] 3‑2.神经网络输入层,即Embedding层,采用了词嵌入、和位置嵌入两种嵌入向量;
[0013] 3‑2‑1.词嵌入层是要将输入缺陷报告的各个词转换成固定维度的向量;缺陷报告文本输入词嵌入层之前,要先进行单词分割处理,在文本的开头插入[CLS]标记,在文本结尾插入[SEP]标记;
[0014] 3‑2‑2.位置嵌入层表达缺陷报告文本中的单词顺序,用来代表缺陷报告的局部甚至是全局的结构;需要对缺陷报告中的单词位置信息进行编码,让模型捕获到不同位置的单词;
[0015] 缺陷报告经过神经网络输入层,将得到的两种嵌入向量相加,输入到神经网络中间层,进行自注意力机制计算;
[0016] 3‑3神经网络中间层,即自注意力层,它是Transformer编码器的双向语言表示模型;基于此模型进行自注意力机制计算;自注意力层由6个相同的Transformer的编码器子层堆叠而成,每一层中由两个子层组成,第一个子层是多头自注意力层,第二个子层是位置敏感的全连接前向网络层,并且每一个子网络层都采用了残差连接和网络层正则化;3‑4神经网络输出层,即softmax输出层;此层的神经单元个数为候选缺陷报告修复者的个数,输出看作此缺陷报告与每位候选缺陷报告修复者的概率;将输入层的[CLS]标记经过自注意力层计算后,与此层的神经单元全连接,经过softmax 计算后,输出每位候选修复者的概率。
[0017] 作为优选,收集并整理软件项目的缺陷报告以及修复人员数据,其具体过程为:
[0018] 首先,利用爬虫技术,从缺陷追踪系统中爬取软件项目的历史缺陷报告,选取页面中”Resolution”字段为”FIXED”的缺陷报告,其中包含了描述该缺陷的文本属性,包括类别、项目、组件、摘要、详细描述,以及修复该缺陷的开发人员,然后保存到本地,过滤属性或开发人员字段缺失的缺陷报告。
[0019] 作为优选,对缺陷报告数据进行预处理;其具体如下:
[0020] 首先,把每个缺陷报告的类别、项目、组件、摘要、详细描述,以及修复该缺陷的开发人员信息拼接在一起,组成一个文本,供模型进行特征提取;其中许多字段是缩写的术语词,这些缩写词对分配缺陷报告至关重要,而缩写词无法让模型很好地学习其特征,因此将常见的缩写词进行还原;
[0021] 在缺陷报告的描述中,对缺陷报告中对连续的单词无法让模型有效的提取特征进行单词分割;
[0022] 接着进行文本预处理工作,包括分词、去除停用词和词干提取,把清洗后的缺陷报告作为模型的训练数据。
[0023] 本发明采用的技术方案与现有技术相比,具有以下有益效果:
[0024] 1.在文本表示方面,现有的其他技术多用n‑gram、tf‑idf等文本表示方法,此类方法表示的文本十分稀疏且忽略了缺陷报告的词序信息。本发明利用嵌入层,将缺陷报告映射到高维空间中,丰富地表达了文本的信息,保留了词序信息,本发明将嵌入层中的段嵌入层删除,增加了实验效果的准确性。
[0025] 2.与现有的机器学习方法相比,此发明不需要依赖专家知识与领域知识,节省了繁杂的特征工程工作。依靠神经网络与自注意力机制高效地提取缺陷报告中的特征。且计算简单,通用性和扩展性强,能够快速有效地对缺陷报告进行人员分配,提高缺陷修复的效率,适用大规模软件产品的开发和维护。

实施方案

[0030] 图1是基于自注意力机制的软件缺陷报告分配方法的总体框架。本发明的输入是软件项目的历史缺陷报告各个属性和历史开发人员数据以及需要分配的缺陷报告各个属性数据,输出为针对当前缺陷报告的各个开发人员的推荐概率。本发明包含以下几个步骤:
[0031] 1)整理软件项目的缺陷报告以及开发人员数据;
[0032] 2)对收集完毕的历史缺陷报告数据进行预处理;
[0033] 3)用预处理后的缺陷报告训练神经网络各层参数;
[0034] 4)给定缺陷报告,计算该缺陷与开发人员的匹配程度;
[0035] 5)对开发人员的匹配程度进行排序,推荐匹配程度高的开发人员。
[0036] 进一步地,在步骤1中,整理软件缺陷项目的缺陷报告以及开发人员数据。首先,利用爬虫技术,从缺陷追踪数据库中收集软件项目的历史缺陷报告,收集缺陷报告的决议(Resolution)为已修复的(FIXED)缺陷报告。图2所示是一份已修复的缺陷报告截图,一份完整的缺陷报告包含以下主要内容:摘要、详细描述、所属产品、组件、缺陷报告的修复者以及提交者、缺陷报告的提交时间与修复时间,其中详细描述部分是缺陷报告的提交者对缺陷的具体描述,过滤属性或开发人员字段缺失的缺陷报告,并且把这些数据保存到本地。
[0037] 整理后的缺陷报告包含的信息包括:摘要、详细描述、所属产品、组件、以及缺陷报告的修复者。
[0038] 进一步地,本发明的第2个步骤是对收集完毕的历史数据进行预处理。在数据预处理阶段,把每个缺陷报告对应的摘要、详细描述、产品、组件信息拼接在一起,组成一个文本。然后进行自然语言预处理,将所有字母转换成小写,去除其中包含的html 字符。再进行分词操作,将非英文单词、停用词过滤掉,并且利用正则匹配去除标点符号,再对单词进行词形转换,例如,将“does”、“did”统一转换为“do”。并把缺陷报告中的缩写术语词还原成全拼形式,例如将“SWT”还原成“Standard Widget Toolkit”。最后,将缺陷报告中出现的错误信息还原成自然语言,例如对“org.eclipse.jface.viewers.AbstractTreeViewer.Set SelectionToWiget (AbstractTreeViewer.java:1505)”进行方法名切割,切割后的结果为“org eclipse jface viewers abstract tree viewer set selection to wiget abstract tree viewer java”。
[0039] 进一步地,在步骤3中,神经网络训练参数包含以下部分:
[0040] 嵌入层:需要对缺陷报告中单词的位置信息进行编码,并加入到词向量中,让模型捕获不同位置的单词。可以不同频率地使用正弦函数与余弦函数,
[0041] 将位置p映射为一个dpos维的位置向量,这个向量的第i个元素的数值就是PEi(p)。
[0042] 在位置p+k的向量可以表示成在位置p的向量的线性变换,这提供了表达相对位置信息的可能性。最后,将所求得的位置嵌入向量与词向量进行求和,得到带有位置信息的嵌入向量。
[0043] 自注意力层:如图3所示,采用多头(Multi‑Head)自注意力模型,其不仅仅只是计算一次注意力,而是多次并行地通过缩放的点积注意力。如图3所示,该模型将V、 K、Q通过三个投影矩阵进行映射,再把这个过程重复h次,得到h个头。然后将h次的缩放点积注意力结果进行拼接,最后进行一次线性变换,得到的值作为多头注意力的结果。可以看到,多头注意力的不同之处在于进行了h次计算而不是只计算一次,这样的目的在于可以允许模型在不同的表示子空间里学习到文本序列的相关信息。如图4所示,单个头的注意力计算方式如公式所示:
[0044] headi=Attention(QWiQ,KWiK,VWiV)
[0045] 其中WiQ、WiK、WiV是投影矩阵, 通过多头注意力计算方式,最后得到的序列,即为所求的注意力值。
[0046] 在多头注意力模型中,采用了缩放点积注意力机制。缩放点积注意力机制是多头注意力模型的核心。如图4所示,该模型的输入由维度为dk的查询(Query)、键(Key) 以及维度为dv的值(Value)组成。Q、K、V分别代表Query、Key、Value,最后的输出结果是一个的矩阵。为求Query与Key的相似度,为了避免其值过大,再进行缩放。最后通过将相似度与对应的值(Value)相乘,得到最终的注意力值。
[0047] 进一步,在步骤4中,将历史缺陷报告训练神经网络完毕后,把待分配的缺陷报告经过同样的预处理方法,输入到神经网络中,不进行参数调整,进行自注意力层的计算,可以得到表征整个缺陷报告信息的向量[ClS]。将自注意力层计算后的[CLS]向量输入到softmax输出层。此[CLS]向量与代表每位待分配开发人员的神经元全连接,softmax公式如下所示:
[0048]
[0049] 其中i代表第i位开发人员,此输出可以看作该缺陷报告与开发人员的匹配度。
[0050] 进一步,在步骤5中,可以根据开发人员与缺陷报告的匹配度进行降序排序,完成缺陷报告分配。基于上一步骤中的匹配度从大到小对开发人员进行排序,排在前列的开发人员将被优先分配到此缺陷报告。

附图说明

[0026] 图1为基于自注意力机制的神经网络缺陷报告分配模型;
[0027] 图2是Eclipse插件开发环境JDT的缺陷报告示意图;
[0028] 图3为多头自注意力层结构示意图;
[0029] 图4为单头自注意力层结构示意图;
专利联系人(活跃度排行)
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号