CN117236624A - 一种基于动态图的Issue修复者推荐方法与装置 - Google Patents
一种基于动态图的Issue修复者推荐方法与装置 Download PDFInfo
- Publication number
- CN117236624A CN117236624A CN202311245651.2A CN202311245651A CN117236624A CN 117236624 A CN117236624 A CN 117236624A CN 202311245651 A CN202311245651 A CN 202311245651A CN 117236624 A CN117236624 A CN 117236624A
- Authority
- CN
- China
- Prior art keywords
- issue
- developer
- time
- developers
- obtaining
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 230000003993 interaction Effects 0.000 claims abstract description 48
- 230000002776 aggregation Effects 0.000 claims abstract description 25
- 238000004220 aggregation Methods 0.000 claims abstract description 25
- 238000010586 diagram Methods 0.000 claims abstract description 25
- 238000005070 sampling Methods 0.000 claims abstract description 13
- 238000004590 computer program Methods 0.000 claims description 24
- 239000011159 matrix material Substances 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 11
- 230000006870 function Effects 0.000 claims description 9
- 230000002452 interceptive effect Effects 0.000 claims description 8
- 230000000644 propagated effect Effects 0.000 claims description 8
- 230000004913 activation Effects 0.000 claims description 4
- 230000006399 behavior Effects 0.000 claims description 4
- 230000002441 reversible effect Effects 0.000 claims description 4
- 239000013598 vector Substances 0.000 claims description 4
- 230000004931 aggregating effect Effects 0.000 claims description 2
- 230000008439 repair process Effects 0.000 claims 1
- 230000002708 enhancing effect Effects 0.000 abstract description 2
- 230000001737 promoting effect Effects 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 6
- 238000011161 development Methods 0.000 description 3
- 241000861223 Issus Species 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000013549 information retrieval technique Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于动态图的Issue修复者推荐方法与装置,涉及开源软件开发者推荐技术领域,该方法包括以下步骤:获取开发者与Issue的交互关系、开发者之间的合作关系,以及Issue之间的相似关系;根据所述开发者与Issue的交互关系、开发者之间的合作关系和Issue之间的相似关系得到对应的相似边,构建开发者与Issue的多重关系动态图;根据时间对开发者与Issue的多重关系动态图进行时序子图采样,获取不同时间戳下的时序子图集合,基于所述时序子图集合,对节点特征进行消息聚合和更新,以获取高阶节点特征;根据所述高阶节点特征推荐Issue修复者。从而帮助项目管理者或其他利益相关者按计划开发项目,增强项目管理,促进项目的迭代演化。
Description
技术领域
本发明属于开源软件开发者推荐技术领域,具体涉及一种基于动态图的Issue修复者推荐方法与装置。
背景技术
基于GitHub平台进行开源软件的协作开发与维护过程中,开发者通过在问题追踪系统中创建Issue进行问题反馈、开发建议、任务追踪等,而Issue能否被开发者迅速、有效的解决,也决定了项目的迭代速度和产品质量。在开源项目中,开发者、用户等角色都可以在问题跟踪系统里随时提出并创建软件相关的Issue,这就导致了项目需要解决的Issue数量庞大且复杂。特别是在热门项目中,每天都会有数十甚至数百个Issue被报告。另一方面,Issue的解决方式通常是由项目管理者分配给指定的人员,或者由平台开发者们主动参与。但是,项目管理者数量有限,管理者除了要处理Issue,还要负责更复杂的代码开发和代码审查等工作,任务压力很大。并且,要想快速解决这些Issue,还需要参与者有足够的项目知识和技术能力,这导致项目内Issue的解决不能得到很好的保障。因此,推荐合适的开发者作为Issue修复者,以及时的解决Issue,是非常重要且必要的。
在开发者推荐领域中,已经有大量的学者开展了相关的研究工作,主要分为根据开发者画像(专业技能、活跃度、声誉等)、开发者-Issue交互历史、开发者协作关系等的开发者推荐方法。如Silva等人通过挖掘开发者的代码质量、提交数据以及之前解决的请求来构建开发者模型,然后利用自然语言处理和信息检索技术进行开发者推荐;Zeng等人考虑开发者的活跃度进行Bug类Issue的修复者推荐;Rebai等人采用多目标搜索方法,权衡开发者协作关系、专业知识与近期工作量来推荐代码审查者;Zhang等人利用开发人员、项目存储库、文档、Pull Requests、工作项等实体数据构建大型异构图,进行代码审查者推荐;Jiang等人使用异构图嵌入不同代码仓库的Issue和参与者信息,推荐具有跨仓库相似问题讨论历史的潜在参与者;Xie等人基于开发人员协作关系、开发人员任务交互关系、以及任务相似关系进行开发者推荐。但这些开发者推荐方法大多缺少对开发者和任务之间的高阶学习,存在特征表达能力不足的问题,并且没有同时考虑时间上的动态演化信息,它们把带有不同时间戳的用户协作以及与任务的交互信息以静态的方式建模,但事实上,开发者的偏好以及协作对象是动态演变的。
发明内容
本申请提供一种基于动态图的Issue修复者推荐方法、装置、设备和存储介质,其可以增强项目管理,促进项目的迭代演化。
为达到以上目的,本申请采用如下技术方案:
第一方面,提供一种基于动态图的Issue修复者推荐方法,包括以下步骤:
获取开发者与Issue的交互关系、开发者之间的合作关系,以及Issue之间的相似关系;
根据所述开发者与Issue的交互关系、开发者之间的合作关系和Issue之间的相似关系得到对应的相似边,构建开发者与Issue的多重关系动态图;
根据时间对开发者与Issue的多重关系动态图进行时序子图采样,获取不同时间戳下的时序子图集合,基于所述时序子图集合,对节点特征进行消息聚合和更新,以获取高阶节点特征;
根据所述高阶节点特征推荐Issue修复者。
一些实施例中,所述获取开发者与Issue的交互关系、开发者之间的合作关系和Issue之间的相似关系,包括以下步骤:
获取开源项目中的开发者集合U、Issue集合V和行为数据时间集合T;
根据所述开发者集合、Issue集合与数据时间集合,得到开发者与Issue的交互关系(u,v,t,c);
根据所述开发者集合、Issue集合与数据时间集合,得到开发者之间的合作关系(u,u′,t,t′,v);
根据公式:
得到Issue文本的余弦相似度sim(v,v′),其中Issuev和v′为t时刻时已存在的Issue,ev和ev′分别为Issuev和v′的文本向量;
根据Issue文本的余弦相似度,获取Issue之间的相似关系(v,v′,t,s)。
一些实施例中,所述根据所述开发者与Issue的交互关系、开发者之间的合作关系和Issue之间的相似关系得到对应的相似边,构建开发者与Issue的多重关系动态图,包括以下步骤:
得到开发者与Issue交互关系边edgeu,v=(u,v,t,c),其中(u,v,t,c)为开发者与Issue的交互关系;
得到开发者合作关系边edgeu,u′=(u,u′,t,t′,v),其中(u,u′,t,t′,v)为开发者之间的合作关系;
得到Issue相似关系边edgev,v′=(v,v′,t,s),其中(v,v′,t,s)为Issue之间的相似关系;
得到开发者与Issue的多重关系动态图G:
G={(u,v,t,w)|u,v,t∈U,V,T}
其中w表示对应的关系类别。
一些实施例中,所述根据时间对开发者与Issue的多重关系动态图进行时序子图采样,获取不同时间戳下的时序子图集合,包括:
以开发者或Issue节点为描点,按照时间戳倒序选择最近交互的n个Issue和n个合作开发者为邻接点;
对所述邻接点继续构建多重关系交互对象,在多次构建后,获得初始节点的L阶子图GL={(i′,j′,t,w)|i′,j′,t∈U′,V′,T},其中U',V'分别是节点U和V的子集;
根据初始节点不同阶次的子图,得到t时间戳下的时序子图集合
根据t时间戳下的时序子图集合得到不同时间戳下的时序子图集合/>
一些实施例中,所述基于所述时序子图集合,对节点特征进行消息聚合,包括:
基于t时刻L阶时序子图GL中开发者ui和Issue vi的交互关系边定义从Issue vi到开发人员ui的消息传播规则为:
其中为Issue vi通过开发者与Issue交互关系边传播到开发人员ui的消息嵌入,/>为Issue vi在t时刻的节点特征,t为对应的时间特征;
定义从开发人员ui到Issue vi的消息传播规则为:
其中,为ui在t时刻的节点特征;
基于合作关系边定义对应的传播消息规则为:
其中,其中是从uj传播到ui的消息嵌入,/>为uj在t时刻的节点特征,t为对应的时间特征;
基于Issue相似边的消息传播规则为:
其中为Issue在t时刻的节点特征;
根据公式:
得到开发者节点ui的L阶特征消息聚合其中/> 是开发者ui的邻域,/>是ui在t时刻的开发者邻接点集合,/>是ui在t时刻的Issue邻接点集合,是合作关系和交互关系在消息聚合中的权重矩阵,g(·)表示基于不同关系进行消息传播的注意力权重,/>和/>为L阶的节点消息传播;
根据公式:
得到Issue vi节点的特征消息聚合其中/>是Issue vi的邻域,/>是vi在t时刻的开发者邻接点集合,/>是vi在t时刻的Issue邻接点集合。是交换关系和相似关系在消息聚合中的权重矩阵,g(·)示基于不同关系进行消息传播的注意力权重,/>和/>为L阶的节点消息传播。
一些实施例中,所述对节点特征进行更新,以获取高阶节点特征,包括以下步骤:
根据公式:
得到开发者节点特征Issue节点特征/>其中ReLU为激活函数,是可训练权重矩阵和偏置;
根据公式:
得到最新时刻t′=t+1时刻的开发者节点高阶特征Issue节点高阶特征
一些实施例中,所述根据所述高阶节点特征推荐Issue修复者,包括:
根据公式:
得到修复者推荐得分根据所述得分推荐Issue修复者。
第二方面,提供一种基于动态图的Issue修复者推荐装置,包括:
采集单元,其用于获取开发者与Issue的交互关系、开发者之间的合作关系,以及Issue之间的相似关系;
处理单元,其用于根据所述开发者与Issue的交互关系、开发者之间的合作关系和Issue之间的相似关系得到对应的相似边,构建开发者与Issue的多重关系动态图;
处理单元,其还用于根据时间对开发者与Issue的多重关系动态图进行时序子图采样,获取不同时间戳下的时序子图集合,基于所述时序子图集合,对节点特征进行消息聚合和更新,以获取高阶节点特征;
推荐单元,其还用于根据所述高阶节点特征推荐Issue修复者。
第三方面,提供一种计算机设备包括:处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的计算机程序,其中所述计算机程序被所述处理器执行时,实现第一方面任意一项所述的方法。
第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其中所述计算机程序被处理器执行时,实现第一方面任意一项所述的方法。
本发明中,通过获取开发者与Issue的交互关系、开发者之间的合作关系,以及Issue之间的相似关系;根据所述开发者与Issue的交互关系、开发者之间的合作关系和Issue之间的相似关系得到对应的相似边,构建开发者与Issue的多重关系动态图;根据时间对开发者与Issue的多重关系动态图进行时序子图采样,获取不同时间戳下的时序子图集合,基于所述时序子图集合,对节点特征进行消息聚合和更新,以获取高阶节点特征;根据所述高阶节点特征推荐Issue修复者,推荐更准确高效的开发者作为Issue修复者推荐结果,从而帮助项目管理者或其他利益相关者按计划开发项目,增强项目管理,促进项目的迭代演化。
附图说明
图1为本发明实施例中一种基于动态图的Issue修复者推荐方法的流程图;
图2为本发明实施例中一种基于动态图的Issue修复者推荐装置示意图;
图3为本发明实施例中一种计算机设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图1所示,本发明实施例第一方提供一种基于动态图的Issue修复者推荐方法包括以下步骤:
S1.获取开发者与Issue的交互关系、开发者之间的合作关系,以及Issue之间的相似关系;
S2.根据所述开发者与Issue的交互关系、开发者之间的合作关系和Issue之间的相似关系得到对应的相似边,构建开发者与Issue的多重关系动态图;
S3.根据时间对开发者与Issue的多重关系动态图进行时序子图采样,获取不同时间戳下的时序子图集合,基于所述时序子图集合,对节点特征进行消息聚合和更新,以获取高阶节点特征;
S4.根据所述高阶节点特征推荐Issue修复者。
本发明提出的一种基于动态图的Issue修复者推荐方法,基于开源软件项目中开发者与Issue之间的多重关系,构建开发者与Issue的多重关系动态图,进而构建时序开发者推荐网络,计算候选开发者推荐得分,最终输出Issue修复者推荐结果。
在步骤S1中,包括以下步骤:
获取开源项目中的开发者集合U、Issue集合V和行为数据时间集合T;
根据所述开发者集合、Issue集合与数据时间集合,得到开发者与Issue的交互关系(u,v,t,c);值得说明的是,若开发者u在t时刻与Issue v发生了交互行为,则认为开发者u在t时刻与Issue v中存在交互关系,表示为(u,v,t,c),c表示开发者u在t时刻与Issue v发生交互行为。
根据所述开发者集合、Issue集合与数据时间集合,得到开发者之间的合作关系(u,u′,t,t′,v);其中,开发者因共同参与某个Issue而产生了合作关系,表示为(u,u′,t,t′,v)。若开发者u在t时刻评论了Issue v,那么u与在t'时刻与v进行交互的开发者u'构成了合作关系,合作时间为t'和t的平均值。
根据公式:
得到Issue文本的余弦相似度sim(v,v′),其中Issue v和v′为t时刻时已存在的Issue,ev和ev′分别为Issue v和v′的文本向量;
根据Issue文本的余弦相似度,获取Issue之间的相似关系(v,v′,t,s)。
在步骤S2中,包括以下步骤:
对开发者节点U、Issue节点V和多重关系发生时间T进行编码。通过Xavier方法为开发者创建一个嵌入矩阵为Issue创建一个嵌入矩阵/>其中|U|和|V|分别是开发者和Issue的数量,d是特征的隐藏维度。
采用离散化方法对时间进行编码,即将时间划分为不同的时间区间[0,1),[1,2),[2,4),...,[2t,2t+1),...,将时间区间映射为0,1,2,...t,t+1,...的相对时间戳,从而获得相对时间嵌入。
得到开发者与Issue交互关系边edgeu,v=(u,v,t,c),其中(u,v,t,c)为开发者与Issue的交互关系;
得到开发者合作关系边edgeu,u′=(u,u′,t,t′,v),其中(u,u′,t,t′,v)为开发者之间的合作关系;
得到Issue相似关系边edgev,v′=(v,v′,t,s),其中(v,v′,t,s)为Issue之间的相似关系。
值得说明的是,Issue间相似度大于所定阈值,以Issue v为例,本发明将与Issuev相似度排名在Top-20的Issue之间构建相似关系边;
得到开发者与Issue的多重关系动态图G:
G={(u,v,t,w)|u,v,t∈U,V,T}
其中w表示对应的关系类别。
在步骤S3中,包括以下步骤:
以开发者或Issue节点为描点,按照时间戳倒序选择最近交互的n个Issue和n个合作开发者为邻接点;如果历史交互的数量达不到邻接点采样数量n时,使用Padding操作填充。本发明旨在基于Issue和开发者之间的多重交互关系,为Issue推荐合适的Top-K个开发者作为修复者推荐结果,因此至少通过采样K个相似Issue进而获取K个开发者之间的高阶关系是较为合理的。考虑资源计算成本,本发明将邻接点采样数量n在[5,25]间进行取值,根据实际推荐效果选择最优取值。
对所述邻接点继续构建多重关系交互对象,在多次构建后,获得初始节点的L阶子图GL={(i′,j′,t,w)|i′,j′,t∈U′,V′,T},其中U',V'分别是节点U和V的子集;
根据初始节点不同阶次的子图,得到t时间戳下的时序子图集合
根据t时间戳下的时序子图集合得到不同时间戳下的时序子图集合/>
基于t时刻L阶时序子图GL中开发者ui和Issue vi的交互关系边定义从Issue vi到开发人员ui的消息传播规则为:
其中为Issue vi通过开发者与Issue交互关系边传播到开发人员ui的消息嵌入,/>为Issue vi在t时刻的节点特征,t为对应的时间特征;
定义从开发人员ui到Issue vi的消息传播规则为:
其中,为ui在t时刻的节点特征;
基于合作关系边定义对应的传播消息规则为:
其中,其中是从uj传播到ui的消息嵌入,/>为uj在t时刻的节点特征,t为对应的时间特征;
基于Issue相似边的消息传播规则为:
其中为Issue在t时刻的节点特征;
根据公式:
得到开发者节点ui的L阶特征消息聚合其中/> 是开发者ui的邻域,/>是ui在t时刻的开发者邻接点集合,/>是ui在t时刻的Issue邻接点集合,是合作关系和交互关系在消息聚合中的权重矩阵,g(·)表示基于不同关系进行消息传播的注意力权重,/>和/>为L阶的节点消息传播;
根据公式:
得到Issue vi节点的特征消息聚合其中/>是Issue vi的邻域,/>是vi在t时刻的开发者邻接点集合,/>是vi在t时刻的Issue邻接点集合,是交换关系和相似关系在消息聚合中的权重矩阵,g(·)示基于不同关系进行消息传播的注意力权重,/>和/>为L阶的节点消息传播。通过节点特征更新获取高阶节点特征:
根据公式:
得到开发者节点特征Issue节点特征/>其中ReLU为激活函数,是可训练权重矩阵和偏置;
根据公式:
得到新时刻t′=t+1时刻的开发者节点高阶特征Issue节点高阶特征/>
一些实施例中,所述根据所述高阶节点特征推荐Issue修复者,包括:
根据公式:
得到修复者推荐得分根据所述得分推荐Issue修复者。
参见图2,第二方面,提供一种基于动态图的Issue修复者推荐装置,包括:
获取开发者与Issue的交互关系、开发者之间的合作关系,以及Issue之间的相似关系;
根据所述开发者与Issue的交互关系、开发者之间的合作关系和Issue之间的相似关系得到对应的相似边,构建开发者与Issue的多重关系动态图;
根据时间对开发者与Issue的多重关系动态图进行时序子图采样,获取不同时间戳下的时序子图集合,基于所述时序子图集合,对节点特征进行消息聚合和更新,以获取高阶节点特征;
根据所述高阶节点特征推荐Issue修复者。
一些实施例中,采集单元,用于:
获取开源项目中的开发者集合U、Issue集合V和行为数据时间集合T;
根据所述开发者集合、Issue集合与数据时间集合,得到开发者与Issue的交互关系(u,v,t,c);
根据所述开发者集合、Issue集合与数据时间集合,得到开发者之间的合作关系(u,u′,t,t′,v);
根据公式:
得到Issue文本的余弦相似度sim(v,v′),其中Issue v和v′为t时刻时已存在的Issue,ev和ev′分别为Issue v和v′的文本向量;
根据Issue文本的余弦相似度,获取Issue之间的相似关系(v,v′,t,s)。
一些实施例中,处理单元,用于:
得到开发者与Issue交互关系边edgeu,v=(u,v,t,c),其中(u,v,t,c)为开发者与Issue的交互关系;
得到开发者合作关系边edgeu,u′=(u,u′,t,t′,v),其中(u,u′,t,t′,v)为开发者之间的合作关系;
得到Issue相似关系边edgev,v′=(v,v′,t,s),其中(v,v′,t,s)为Issue之间的相似关系;
得到开发者与Issue的多重关系动态图G:
G={(u,v,t,w)|u,v,t∈U,V,T}
其中w表示对应的关系类别。
一些实施例中,处理单元,还用于:
以开发者或Issue节点为描点,按照时间戳倒序选择最近交互的n个Issue和n个合作开发者为邻接点;
对所述邻接点继续构建多重关系交互对象,在多次构建后,获得初始节点的L阶子图GL={(i′,j′,t,w)|i′,j′,t∈U′,V′,T},其中U',V'分别是节点U和V的子集;
根据初始节点不同阶次的子图,得到t时间戳下的时序子图集合
根据t时间戳下的时序子图集合得到不同时间戳下的时序子图集合/>
一些实施例中,处理单元,还用于:
基于t时刻L阶时序子图GL中开发者ui和Issue vi的交互关系边定义从Issue vi到开发人员ui的消息传播规则为:
其中为Issue vi通过开发者与Issue交互关系边传播到开发人员ui的消息嵌入,/>为Issue vi在t时刻的节点特征,t为对应的时间特征;
定义从开发人员ui到Issue vi的消息传播规则为:
其中,为ui在t时刻的节点特征;
基于合作关系边定义对应的传播消息规则为:
其中,其中是从uj传播到ui的消息嵌入,/>为uj在t时刻的节点特征,t为对应的时间特征;
基于Issue相似边的消息传播规则为:
其中为Issue在t时刻的节点特征;
根据公式:
得到开发者节点ui的L阶特征消息聚合其中/> 是开发者ui的邻域,/>是ui在t时刻的开发者邻接点集合,/>是ui在t时刻的Issue邻接点集合。是合作关系和交互关系在消息聚合中的权重矩阵,g(·)表示基于不同关系进行消息传播的注意力权重,/>和/>为L阶的节点消息传播;
根据公式:
得到Issue vi节点的特征消息聚合其中/>是Issue vi的邻域,其中/>是vi在t时刻的开发者邻接点集合,/>是vi在t时刻的Issue邻接点集合,/>是交换关系和相似关系在消息聚合中的权重矩阵,g(·)示基于不同关系进行消息传播的注意力权重,/>和/>为L阶的节点消息传播。
一些实施例中,处理单元,还用于:
根据公式:
得到开发者节点特征Issue节点特征/>其中ReLU为激活函数,是可训练权重矩阵和偏置;
根据公式:
/>
得到新时刻t′=t+1时刻的开发者节点高阶特征Issue节点高阶特征/>
根据公式:
得到修复者推荐得分根据所述得分推荐Issue修复者。
本发明中的基于动态图的Issue修复者推荐装置,用于:获取开发者与Issue的交互关系、开发者之间的合作关系,以及Issue之间的相似关系;根据所述开发者与Issue的交互关系、开发者之间的合作关系和Issue之间的相似关系得到对应的相似边,构建开发者与Issue的多重关系动态图;根据时间对开发者与Issue的多重关系动态图进行时序子图采样,获取不同时间戳下的时序子图集合,基于所述时序子图集合,对节点特征进行消息聚合和更新,以获取高阶节点特征;根据所述高阶节点特征推荐Issue修复者,从而帮助项目管理者或其他利益相关者按计划开发项目,增强项目管理,促进项目的迭代演化。
需要说明的是,本申请实施例中的各步骤的步骤标号,其并不限制本申请技术方案中各操作的前后顺序。
需要说明的是,所属本领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和各单元的具体工作过程,可以参考前述基于动态图的Issue修复者推荐方法实施例中的对应过程,在此不再赘述。
上述实施例提供的装置可以实现为一种计算机程序的形式,该计算机程序可以在如图3所示的计算机设备上运行。
本申请实施例还提供了一种计算机设备,包括:通过系统总线连接的存储器、处理器和网络接口,存储器中存储有至少一条指令,至少一条指令由处理器加载并执行,以实现前述的基于动态图的Issue修复者推荐方法的全部步骤或部分步骤。
其中,网络接口用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
处理器可以是CPU,还可以是其他通用处理器、DSP(Digital Signal Processor,数字信号处理器)、ASIC(Application Specific Integrated Circuit,专用集成电路)、FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件分立硬件组件等。通用处理器可以是微处理器,或者该处理器也可以是任何常规的处理器等,处理器是计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
存储器可用于存储计算机程序和/或模块,处理器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现计算机装置的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如视频播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如视频数据、图像数据等)等。此外,存储器可以包括高速随存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘、SMC(Smart MediaCard,智能存储卡)、SD(Secure digital,安全数字)卡、闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件或其他易失性固态存储器件。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,实现前述的基于动态图的Issue修复者推荐方法的全部步骤或部分步骤。
本申请实施例实现前述的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、ROM(Read-Only memory,只读存储器)、RAM(Random Access memory,随机存取存储器)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、服务器或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种基于动态图的Issue修复者推荐方法,其特征在于,包括以下步骤:
获取开发者与Issue的交互关系、开发者之间的合作关系,以及Issue之间的相似关系;
根据所述开发者与Issue的交互关系、开发者之间的合作关系和Issue之间的相似关系得到对应的相似边,构建开发者与Issue的多重关系动态图;
根据时间对开发者与Issue的多重关系动态图进行时序子图采样,获取不同时间戳下的时序子图集合,基于所述时序子图集合,对节点特征进行消息聚合和更新,以获取高阶节点特征;
根据所述高阶节点特征推荐Issue修复者。
2.如权利要求1所述的一种基于动态图的Issue修复者推荐方法,其特征在于,所述获取开发者与Issue的交互关系、开发者之间的合作关系和Issue之间的相似关系,包括以下步骤:
获取开源项目中的开发者集合U、Issue集合V和行为数据时间集合T;
根据所述开发者集合、Issue集合与数据时间集合,得到开发者与Issue的交互关系(u,v,t,c);
根据所述开发者集合、Issue集合与数据时间集合,得到开发者之间的合作关系(u,u′,t,t′,v);
根据公式:
得到Issue文本的余弦相似度sim(v,v′),其中Issue v和v′为t时刻时已存在的Issue,ev和ev′分别为Issue v和v′的文本向量;
根据Issue文本的余弦相似度,获取Issue之间的相似关系(v,v′,t,s)。
3.如权利要求2所述的一种基于动态图的Issue修复者推荐方法,其特征在于,所述根据所述开发者与Issue的交互关系、开发者之间的合作关系和Issue之间的相似关系得到对应的相似边,构建开发者与Issue的多重关系动态图,包括以下步骤:
得到开发者与Issue交互关系边edgeu,v=(u,v,t,c),其中(u,v,t,c)为开发者与Issue的交互关系;
得到开发者合作关系边edgeu,u′=(u,u′,t,t′,v),其中(u,u′,t,t′,v)为开发者之间的合作关系;
得到Issue相似关系边edgev,v′=(v,v′,t,s),其中(v,v′,t,s)为Issue之间的相似关系;
得到开发者与Issue的多重关系动态图G:
G={(u,v,t,w)|u,v,t∈U,V,T}
其中w表示对应的关系类别。
4.如权利要求3所述的一种基于动态图的Issue修复者推荐方法,其特征在于,所述根据时间对开发者与Issue的多重关系动态图进行时序子图采样,获取不同时间戳下的时序子图集合,包括:
以开发者或Issue节点为描点,按照时间戳倒序选择最近交互的n个Issue和n个合作开发者为邻接点;
对所述邻接点继续构建多重关系交互对象,在多次构建后,获得初始节点的L阶子图GL={(i′,j′,t,w)|i′,j′,t∈U′,V′,T},其中U',V'分别是节点U和V的子集;
根据初始节点不同阶次的子图,得到t时间戳下的时序子图集合
根据t时间戳下的时序子图集合得到不同时间戳下的时序子图集合/>
5.如权利要求4所述的一种基于动态图的Issue修复者推荐方法,其特征在于,所述基于所述时序子图集合,对节点特征进行消息聚合,包括:
基于t时刻L阶时序子图GL中开发者ui和Issue vi的交互关系边定义从Issue vi到开发人员ui的消息传播规则为:
其中为Issue vi通过开发者与Issue交互关系边传播到开发人员ui的消息嵌入,/>为Issue vi在t时刻的节点特征,t为对应的时间特征;
定义从开发人员ui到Issue vi的消息传播规则为:
其中,为ui在t时刻的节点特征;
基于合作关系边定义对应的传播消息规则为:
其中,其中是从uj传播到ui的消息嵌入,/>为uj在t时刻的节点特征,t为对应的时间特征;
基于Issue相似边的消息传播规则为:
其中为Issue在t时刻的节点特征;
根据公式:
得到开发者节点ui的L阶特征消息聚合其中/> 是开发者ui的邻域,/>是ui在t时刻的开发者邻接点集合,/>是ui在t时刻的Issue邻接点集合,是合作关系和交互关系在消息聚合中的权重矩阵,g(·)表示基于不同关系进行消息传播的注意力权重,/>和/>为L阶的节点消息传播;
根据公式:
得到Issue vi节点的特征消息聚合其中/>是Issue vi的邻域,/>是vi在t时刻的开发者邻接点集合,/>是vi在t时刻的Issue邻接点集合,是交换关系和相似关系在消息聚合中的权重矩阵,g(·)示基于不同关系进行消息传播的注意力权重,/>和/>为L阶的节点消息传播。
6.如权利要求5所述的一种基于动态图的Issue修复者推荐方法,其特征在于,所述对节点特征进行更新,以获取高阶节点特征,包括以下步骤:
根据公式:
得到开发者节点特征Issue节点特征/>其中ReLU为激活函数,是可训练权重矩阵和偏置;
根据公式:
得到最新时刻t′=t+1时刻的开发者节点高阶特征Issue节点高阶特征/>
7.如权利要求5所述的一种基于动态图的Issue修复者推荐方法,其特征在于,所述根据所述高阶节点特征推荐Issue修复者,包括:
根据公式:
得到修复者推荐得分根据所述得分推荐Issue修复者。
8.一种基于动态图的Issue修复者推荐装置,其特征在于,包括:
采集单元,其用于获取开发者与Issue的交互关系、开发者之间的合作关系,以及Issue之间的相似关系;
处理单元,其用于根据所述开发者与Issue的交互关系、开发者之间的合作关系和Issue之间的相似关系得到对应的相似边,构建开发者与Issue的多重关系动态图;
处理单元,其还用于根据时间对开发者与Issue的多重关系动态图进行时序子图采样,获取不同时间戳下的时序子图集合,基于所述时序子图集合,对节点特征进行消息聚合和更新,以获取高阶节点特征;
推荐单元,其还用于根据所述高阶节点特征推荐Issue修复者。
9.一种计算机设备,其特征在于,所述计算机设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的计算机程序,其中所述计算机程序被所述处理器执行时,实现如权利要求1至7中任一项所述的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,其中所述计算机程序被处理器执行时,实现如权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311245651.2A CN117236624A (zh) | 2023-09-25 | 2023-09-25 | 一种基于动态图的Issue修复者推荐方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311245651.2A CN117236624A (zh) | 2023-09-25 | 2023-09-25 | 一种基于动态图的Issue修复者推荐方法与装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117236624A true CN117236624A (zh) | 2023-12-15 |
Family
ID=89096483
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311245651.2A Pending CN117236624A (zh) | 2023-09-25 | 2023-09-25 | 一种基于动态图的Issue修复者推荐方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117236624A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117495064A (zh) * | 2024-01-03 | 2024-02-02 | 安徽思高智能科技有限公司 | 一种面向多样性的代码审查者推荐方法及存储介质、设备 |
CN117495064B (zh) * | 2024-01-03 | 2024-05-14 | 安徽思高智能科技有限公司 | 一种面向多样性的代码审查者推荐方法及存储介质、设备 |
-
2023
- 2023-09-25 CN CN202311245651.2A patent/CN117236624A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117495064A (zh) * | 2024-01-03 | 2024-02-02 | 安徽思高智能科技有限公司 | 一种面向多样性的代码审查者推荐方法及存储介质、设备 |
CN117495064B (zh) * | 2024-01-03 | 2024-05-14 | 安徽思高智能科技有限公司 | 一种面向多样性的代码审查者推荐方法及存储介质、设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Fernández-García et al. | A recommender system for component-based applications using machine learning techniques | |
US11416754B1 (en) | Automated cloud data and technology solution delivery using machine learning and artificial intelligence modeling | |
CN107368521B (zh) | 一种基于大数据和深度学习的知识推介方法及系统 | |
CN108549909B (zh) | 基于众包的对象分类方法及对象分类系统 | |
Arias et al. | A framework for managing requirements of software product lines | |
Miao et al. | A dynamic financial knowledge graph based on reinforcement learning and transfer learning | |
Mameli et al. | Social media analytics system for action inspection on social networks | |
Liu et al. | Information recommendation based on domain knowledge in app descriptions for improving the quality of requirements | |
Raheem | Big Data: A Tutorial-based Approach | |
Henriksson et al. | Holistic data-driven requirements elicitation in the big data era | |
Baldo et al. | A framework for selecting performance indicators for virtual organisation partners’ search and selection | |
Simperl et al. | Combining human and computation intelligence: the case of data interlinking tools | |
Ferranti et al. | A framework for evaluating ontology meta-matching approaches | |
Wang | Application of MPP database and artificial intelligence system in online evaluation of college students' mental health | |
Zarka et al. | Fuzzy reasoning framework to improve semantic video interpretation | |
CN116029273A (zh) | 文本处理方法、装置、计算机设备和存储介质 | |
CN117236624A (zh) | 一种基于动态图的Issue修复者推荐方法与装置 | |
CN115269862A (zh) | 一种基于知识图谱的电力问答与可视化系统 | |
CN115168609A (zh) | 一种文本匹配方法、装置、计算机设备和存储介质 | |
Liu et al. | Mining detailed information from the description for App functions comparison | |
Papoutsoglou et al. | Mining DEV for social and technical insights about software development | |
CN114021555A (zh) | 知识点自动标注的方法、装置、设备及可读存储介质 | |
TW202305613A (zh) | 資訊倉庫創建方法、電子設備及儲存介質 | |
CN106716403A (zh) | 网站入口页面的自动生成 | |
Luczak-Rösch et al. | The role of ontology engineering in linked data publishing and management: An empirical study |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |