CN108549979A - 一种基于精确化嵌入表示的开源软件开发团队扩展方法 - Google Patents
一种基于精确化嵌入表示的开源软件开发团队扩展方法 Download PDFInfo
- Publication number
- CN108549979A CN108549979A CN201810281538.2A CN201810281538A CN108549979A CN 108549979 A CN108549979 A CN 108549979A CN 201810281538 A CN201810281538 A CN 201810281538A CN 108549979 A CN108549979 A CN 108549979A
- Authority
- CN
- China
- Prior art keywords
- team
- developer
- software
- project
- alternative
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 239000013598 vector Substances 0.000 claims description 28
- 238000012549 training Methods 0.000 claims description 16
- 238000012360 testing method Methods 0.000 claims description 13
- 230000003044 adaptive effect Effects 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 8
- 239000011159 matrix material Substances 0.000 claims description 6
- 230000004913 activation Effects 0.000 claims description 5
- 230000003993 interaction Effects 0.000 claims description 4
- 239000013604 expression vector Substances 0.000 claims description 2
- 230000000694 effects Effects 0.000 abstract description 4
- 238000001914 filtration Methods 0.000 abstract description 3
- 238000003780 insertion Methods 0.000 abstract description 3
- 230000037431 insertion Effects 0.000 abstract description 3
- 238000013528 artificial neural network Methods 0.000 abstract description 2
- 238000007796 conventional method Methods 0.000 abstract description 2
- 238000002474 experimental method Methods 0.000 abstract description 2
- 238000011161 development Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000018199 S phase Effects 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 238000005295 random walk Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000009333 weeding Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06311—Scheduling, planning or task assignment for a person or group
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
- G06Q50/01—Social networking
Abstract
本发明公开一种基于精确化嵌入表示的开源软件开发团队扩展方法,着重考虑当前的软件项目、团队现有成员以及备选开发者三者之间的联系,将软件项目、团队现有成员以及备选开发者嵌入到一个地位的表示空间里,然后通过不断优化基于此构建的神经网络来精确化这些嵌入表示。首先,结合软件项目和现有成员的嵌入表示,并将其作为当前团队的整体状态;然后,通过推荐系统中的协同过滤思想来挖掘备选开发者和软件项目这两个嵌入表示之间的联系;最后,将项目领袖作为现有团队成员的代表,并利用开发者之间的社交关系来对备选开发者和团队成员的嵌入表示进行匹配。在开源软件社区Github之数据集上的实验表明,本方法比传统方法具有更好的预测效果,即能够找到更好的备选开发者。
Description
技术领域
本发明涉及一种基于精确化嵌入表示的开源软件开发团队扩展方法,利用现有的软件开发软件项目以及团队的成员开发者信息,预测待扩张团队的最佳备选成员。解决方法是在考虑备选开发者与软件项目匹配程度的同时,考虑备选开发者与团队已有成员的匹配;此外结合软件项目和团队成员来对团队的整体状态进行建模,综合得出备选开发者相对于软件开发团队的适应值。
背景技术
现如今,开源逐渐成为软件开发的主流,越来越多的开发者加入到开源社区中来,为开源软件项目志愿贡献自己的代码,这也使得开源项目具有较传统的商业软件项目更为强大的活力和凝聚力。GitHub发布的2016年度开源项目报告显示,仅一年时间就有超过520万开发者和30万3千开发团队在GitHub上注册,其中有超过81万5千个开发者发起了自己的第一个pull request,超过280万个开发者建立了自己的第一个代码库。
开源社区如此火爆,也带来了不可忽视的信息过载问题。具体来说,开源软件项目是以开发者为主体,项目的顺利进展往往需要新的开发者加入到开发团队中,但过于庞大的开发者群体给开源软件项目团队寻找合适的开发者带来了挑战,此外由于开发者分布在世界各地,地域和语言等因素进一步阻碍了开发者之间的交流,更加大了吸引合适的开发者来推进项目进程的难度,于是软件开发团队扩张辅助决策方法应运而生。
相对于传统的商业软件,我们认为开源软件开发环境有其独特之处,这里我们将其定义为开放环境。开放环境除了开源软件开发的例子以外,在研究社区,研究人员形成研究小组来展开研究,并一同撰写科研论文。综合以上开放环境的例子可以看出,开放环境的一个主要特点是团队流动性,具体是指每个团队都基于某一项特定的任务,个体可以同时参与到多个团队的工作中去,只要他有兴趣和足够的能力。随着任务的完结,这些个体又可以继续参与到其他的任务中。这里我们主要关注的是在开放环境下软件开发团队扩张的问题。
一般来说,与团队扩张问题相关联的工作有以下几种:
(1)个体与团队任务相匹配,其核心思想是根据具体的个体能力描述和任务需求,寻找一个最佳的属性匹配;
(2)推荐系统,为用户找到最有可能感兴趣的商品;
(3)社交亲密度分析,计算个体与个体之间的亲密度,根据亲密度来寻找最适合团队的个体;
然而,这些方法在应用到软件开发团队扩张时都有各自的局限。开发者与任务相匹配的方法需要开发者能力和任务需求的具体描述,并将两者的最佳匹配作为最终的扩张对象,故而也经常将团队扩张问题建模为整数规划问题,但在真实环境中软件项目要求和个体能力描述往往难以获得,此外基于属性的匹配可能会得到多个满足要求的匹配,最终的结果往往并非是最优的;推荐方法主要关注的是为用户推荐商品,而软件开发团队扩张的目的是为任务(商品)推荐开发者(用户),需要考虑到开发者与开发者之间的社交关系;社交亲密度分析只关注开发者与开发者之间的社交关系,却忽略了开发者与任务的匹配。
发明内容
发明目的:传统的团队扩张方法往往只考虑软件项目和备选个体之间的关联,或是只考虑团队已有成员和备选个体之间的关联,本发明采用一种基于精确化嵌入表示的方法来解决开放环境下的软件开发团队扩张问题,主要考虑以下三点:
(1)不需要具体的软件项目和开发者能力的描述信息;
(2)备选开发者需要与软件项目相匹配;
(3)备选开发者需要与团队已有成员相匹配;
为了做到以上三点,我们利用开发者参与过的软件项目信息来将备选开发者信息与软件项目和团队成员信息进行匹配。对于备选开发者信息与软件项目的匹配,我们借用推荐系统里协同过滤的思想来建模;对于备选开发者信息与团队已有成员信息的匹配,我们将项目领袖作为软件开发团队成员的代表,将备选开发者与团队成员的社交关系结合到模型中;此外,我们采用多层非线性层的神经网络结构来发掘备选开发者,软件项目和团队成员之间的复杂关系。在真实数据上的实验表明,我们的模型在为待扩张的团队寻找合适的备选成员上,效果远超其他比较方法。
本发明基于推荐系统技术和社交分析技术,结合两种方法的优势,提出了基于精确化嵌入表示的TESD模型(基于精确化嵌入表示的软件开发团队扩张模型 TeamExpansion for Software Development),并给出了一种基于此模型的开放环境下的软件开发团队扩张方法。TESD模型通过同时考虑这两种关联,再加入团队状态的建模,有效整合了团队扩张的关键因素,提高了识别理想备选成员的准确度。
技术方案:一种基于精确化嵌入表示的开源软件开发团队扩展方法,从备选开发者与软件项目和团队已有成员的匹配以及团队状态三个角度来度量备选开发者与整个团队的匹配程度,同时基于当前团队成员要优于非团队成员的假设,将当前团队成员作为正例,非团队成员作为反例,进而将问题转化为备选成员预测的问题,在此基础上提出了TESD模型,根据模型参数(包括软件项目、团队已有成员、备选成员的嵌入表示)来得出备选开发者与团队的匹配程度排序。
具体包括如下部分:
1)基于开发者与软件团队历史交互与嵌入表示的软件团队扩张方法;
2)基于软件项目,现有成员和备选开发者三者关联的TESD模型及其求解;
1)基于开发者与软件团队历史交互与嵌入表示的软件团队扩张方法:
给定软件项目集合T,开发者集合I以及软件项目和开发者的历史交互信息 R(以交互矩阵的形式,若开发者i参与到软件项目t中则有Rti=1,否则有Rti=0,即将团队成员作为正例,非团队成员作为反例),由此可将团队扩张问题转化为求解未知开发者对软件项目的适应值。
不失一般性,软件开发团队扩张的任务是为待扩张的团队生成备选开发者的排序列表。以软件项目t,团队现有成员(项目领袖)ot和备选开发者i作为输入,得到备选开发者的预测得分R'(t,i),公式表述为:
R'(t,i)=f(t,ot,i|Θ)
根据所有备选开发者的预测得分就可以得到最终的排序列表,关键在于构造合适的函数f,将输入[t,ot,i]映射到预期的输出R'(t,i),使得正例个体的团队适应值高于所有反例个体。这里我们使用TESD模型来建模作用于嵌入表示之上的函数f,整个过程分为训练和测试两个阶段。在训练阶段将训练集输入到TESD 模型中,并根据模型的目标函数计算训练损失,在训练损失达到预先设定的阈值或者迭代次数达到既定数目后停止训练,该训练过程会一直精确化所学得的嵌入表示。最终,训练好模型之后以测试集作为输入,输出备选开发者的预测得分并进行排序。
2)基于软件项目、现有成员和备选开发者三者关联的TESD模型及其求解:
TESD模型需要同时考虑备选开发者与软件项目和团队已有成员的匹配。备选开发者与软件项目的结合,可以用来建模备选开发者与软件项目的之间的匹配;备选开发者与软件团队现有成员的结合,计算个体与个体之间的距离,可以用来判定他们合作的可能性,即建模备选开发者与团队已有成员的匹配;此外,单纯的软件项目和团队已有成员都不足以表示团队当前的状态,软件项目和团队已有成员的结合形成了两种匹配的重要辅助。
得益于深度学习出色的嵌入表示学习能力,我们采用其来建模前述问题:
首先考虑备选开发者和软件项目的匹配,pt和qi分别表示软件项目t和备选开发者i的嵌入表示向量。这里嵌入表示向量可以作为软件项目和备选开发者在各个特征层面上的数学向量表示,我们可以将其理解为特征向量。软件项目t和备选开发者i的匹配向量计算公式为rti=pt⊙qi,其中⊙表示元素间乘操作。
其次对于备选开发者和团队已有成员的匹配,考虑到项目领袖在塑造团队精神和提升团队工作效率上的突出作用,将项目领袖作为团队其他成员的代表,在此基础上建模项目领袖和备选开发者在当前团队合作的可行性,公式表述为其中和qi分别表示项目领袖和备选开发者的嵌入表示向量,注意项目领袖也是开发者集合的一部分。
此外,考虑到单纯的软件项目和团队已有成员都不足以表示团队当前的状态,只有软件项目和团队已有成员的结合才是完整的团队状态表示。软件项目和已有成员的结合用公式表述为其中pt和分别表示软件项目和项目领袖的嵌入表示向量。
在得到rti、cti和st三个中间嵌入表示向量的基础上,可以简单的对这三个向量进行拼接,综合所有的特征,然后将拼接向量输入到一个全连接层,其输出值即为备选开发者相对于当前团队的得分,公式表述为
R'(t,i)=fout([rti,cti,st]xT)
其中x为最后一层的权重向量,fout为激活函数,这里采用的是sigmoid函数,即而考虑到单一的向量拼接并不足以完整表现软件项目,团队已有成员以及备选开发者之间的复杂交互,我们用若干层非线性层来建模这些复杂关系。以cti为例,其余两个中间向量类似,该过程用公式表示为:
z(1)=f(1)(W(1)cti+b(1))
z(2)=f(2)(W(2)z(1)+b(2))
…
z(L)=f(L)(W(L)z(L-1)+b(L))
R'(t,i)=fout(z(L)xT)
其中,L表示非线性层的层数,
z(i)表示第i层的输出,
W(i)表示第i层的权重矩阵,
b(i)表示第i层的偏置向量,
f(i)表示第i层的激活函数,这里采用ReLU,其公式为f(x)=max(0,x)。
传统的团队扩张方法大都是通过考虑备选个体与软件项目的匹配或是与团队已有成员的匹配来判定个体是否适合成为软件开发团队扩张的理想对象,这些方法都有着各自的约束和缺陷,最终的效果也并不理想。本发明综合传统方法的优势,提出在开源软件开发的开放环境下,让备选开发者同时与软件项目和团队成员相匹配,同时考虑软件项目与团队成员的结合组成团队的当前状态,进一步辅助和完善备选开发者与软件项目和团队成员的匹配;同时基于当前团队成员要优于非团队成员的假设,将当前团队成员作为正例,非团队成员作为反例,进而将软件开发团队扩张问题转化为备选成员预测的问题,在此基础上提出了基于嵌入表示的TESD模型,并取得了优于传统团队扩张方法的效果。
附图说明
图1是本发明基于深度学习的软件开发团队扩张模型TESD的结构图;
图2是本发明实例中TESD与其他方法在HR上的对比图;
图3是本发明实例中TESD与其他方法在nDCG上的对比图;
图4是本发明开放环境下软件开发团队扩张系统架构图。
具体实施方式
下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
一种基于精确化嵌入表示的开源软件开发团队扩展方法,具体包括如下部分:
1)基于软件项目、现有成员和备选开发者三者关联的软件开发团队扩张方法;
2)基于深度学习的TESD模型及其求解。
以开源软件社区的一个开源项目为例,软件项目即为团队需要完成的任务,项目的开发者即为团队的已有成员,其中任务和开发者都以各自的范围域内的id 值来表示。相比传统的个体与任务相匹配的方法需要将任务的要求和开发者的能力描述进行匹配,并将寻找到的最佳匹配作为最终的扩张对象,我们的方法极大的简化了模型的输入,只采用软件项目,项目开发者(项目领袖)和备选开发者的id,将id转化为相应的独热编码(one-hotencoding),进而得到各自的嵌入表示向量。
基于这些嵌入表示向量,本发明将备选开发者同时与软件项目和项目开发者 (项目领袖)相匹配,同时考虑软件项目和项目开发者(项目领袖)的结合组成团队的当前状态,进一步辅助和完善备选开发者与软件项目和项目开发者(项目领袖)的匹配,具体过程如下:
(1)备选开发者和软件项目的匹配,pt和qi分别表示软件项目t和备选开发者i的嵌入表示向量,软件项目和备选开发者的匹配度计算公式为rti=pt⊙qi,其中⊙表示元素间乘操作;
(2)备选开发者和项目开发者(项目领袖)的匹配,将项目领袖作为其他项目开发者的代表,建模项目领袖和备选开发者在当前软件开发团队合作的可行性,匹配度计算公式为其中和qi分别表示项目领袖ot和备选开发者i的嵌入表示向量;
(3)团队状态建模,利用软件项目t和项目领袖ot的结合来表示软件开发团队状态,匹配度计算公式为其中pt和分别表示软件项目和项目领袖的嵌入表示向量;
(4)非线性层建模,考虑到单一的向量拼接并不足以完整表现软件项目,项目开发者以及备选开发者之间的复杂交互,我们用若干层非线性层来建模这些复杂关系。以cti为例,该过程用公式表示为:
z(1)=f(1)(W(1)cti+b(1))
z(2)=f(2)(W(2)z(1)+b(2))
…
z(L)=f(L)(W(L)z(L-1)+b(L))
R'(t,i)=fout(z(L)xT)
其中,L表示非线性层的层数,
W(i)表示第i层的权重矩阵,
b(i)表示第i层的偏置向量,
f(i)表示第i层激活函数,这里采用ReLU,其公式表示为f(x)=max(0,x)。依据以上过程,我们可以得到备选开发者相对于软件开发团队的适应值:
接下来,我们给出TESD的参数推断方法。基于当前项目开发者要优于非项目开发者的假设,将当前项目开发者作为正例,非项目开发者作为反例,我们将软件开发团队扩张问题转化为成员预测问题。需要说明的是,这一假设是以我们的数据筛选为前提。事实上,很多开源社区中的开源项目规模很小,并不具有参考价值。在开源社区中,开发者会加星(star)自己感兴趣的项目,开源项目被开发者加星的次数代表了该项目在开源社区中的表现。我们对项目的star值进行了限定,剔除掉一些鲜为人知的小型项目,在一定程度上保证了项目团队的优异,进而保证了团队成员优于非团队成员的合理性。
对于计算出的备选开发者相对当前软件开发团队的得分,我们将其与训练样本中的标记(即真实值,此开发者是否是当前软件开发团队成员,1或0,1表示备选开发者是团队现有成员的一员,0则反之)进行比较,得到如下所示的交叉熵损失函数:
其中P是所有软件项目的嵌入表示向量组成的矩阵,
Q是所有开发者的嵌入表示向量组成的矩阵,
R'(t,i)是由模型得出的开发者预测评分,
R(t,i)是开发者的真实评分,
σ表示sigmoid函数。
基于上述的目标函数,一个不可忽视的问题就是(t,i)对的选取。直接选取所有可能的(t,i)对毫无疑问是十分耗时(O(n4)时间复杂度)且没有必要的,而只选取正例(R(t,i)=1)则会出现严重的过拟合问题,这里我们采用推荐系统中常用的做法,保留所有的正例,同时对每个正例负采样n个反例(R(t,i)=0)。基于这样的负采样策略,我们采用梯度下降算法来优化参数,具体的参数优化过程如下所示:
在实验设置上,我们采用留一法(leave-one-out)来划分训练集和测试集,即从每个软件开发团队中随机选取一个开发者作为测试集,剩余的项目开发者作为训练集来训练模型,然后根据训练好的模型每个团队生成一个备选开发者的排序列表。鉴于对所有训练集以外的开发者计算其相对于团队的适应值十分费时,对每个软件开发团队我们随机选取100个反例加入到测试集,然后对测试集中的 101个开发者根据适应值进行排序,基于这个排序来计算HR和nDCG来评价 TESD模型的性能。
HR和nDCG两种评价指标的计算公式如下所示:
其中,hitt∈{0,1}在测试集中正例开发者的排名小于等于K时为1,大于K时为0,rt∈{1,2,...,k}表示测试集中正例开发者的排名。
实例一:TESD模型实现对GitHub上的开源项目进行团队扩张
1、输入输出数据说明
我们把本发明的方法运用于GitHub的开源项目中,输入是GitHub上的开源项目和开发者的过往交互数据。鉴于GitHub上有很多的小型项目,我们对数据进行了合理地过滤,剔除掉参与的开发者数小于5和‘star’指标小于5的项目,只保留相对优秀的项目,同时剔除参与项目少于5个的开发者,最终的数据集统计情况如表1所示。
输出是在此数据集上对本发明中TESD模型的量化评测。
2、模型训练与预测过程
模型主要分为训练阶段和测试阶段。
训练阶段将训练数据及输入到模型中,通过最小化目标函数的方式,不断优化模型参数,直至完成相应的迭代次数或算法提前收敛。
预测阶段,输入一个待扩张的软件团队,模型将计算当前所有开发者相对于该团队的适应值,并按照适应值排序,得到推荐的开发者列表。
3、输出结果
为了更好展示TESD模型的性能,我们提出用以下四种模型来与我们的方法进行比较:
(1)Co-rank,根据开发者与项目领袖合作的次数进行排序;
(2)RW,采用随机游走算法来预测最合适的备选开发者;
(3)BPR,基于pair-wise ranking的推荐系统模型
(4)NCF,基于协同过滤的深度学习推荐模型
其中Co-rank和RW是基于社交分析技术来进行团队扩张,而BPR和NCF 都是用推荐系统技术来进行团队扩张。图2展示了此次实验几种方法的HR和 nDCG。可以看到,TESD相比这四种团队扩张方法,HR和nDCG均有了很大的提高。具体来讲,TESD与其最佳竞争者NCF相比,在GitHub数据集上最多提升了11.3%,在DBLP数据集上最多提升了22.1%;其次,在GitHub数据集上的结果要普遍优于DBLP数据集,这是由于DBLP数据集的稀疏性造成的。
以上的实验结果证明了本发明综合考虑备选开发者与软件项目和团队已有成员的匹配,辅助软件项目和团队成员的结合对团队状态的建模,有效的预测出了备选成员,也说明了TESD模型在现实中能被合理的应用。
表1.实例的数据统计情况
。
Claims (5)
1.一种基于精确化嵌入表示的开源软件开发团队扩展方法,其特征在于:根据开发者过去参与的软件团队信息,从备选开发者与软件项目和团队已有成员的匹配以及团队状态三个角度来度量备选开发者与整个团队的匹配程度,据此提出了一种基于精确化嵌入表示的软件开发团队扩张模型,最终根据模型参数来得出备选开发者与团队的匹配程度排序,此方法的主要内容包括:
1)基于开发者与软件团队历史交互与嵌入表示的软件团队扩张方法;
2)基于软件项目、现有成员和备选开发者三者关联的TESD模型及其求解。
2.如权利要求1所述的基于精确化嵌入表示的开源软件开发团队扩展方法,其特征在于:给定软件项目集合T,开发者集合I以及软件项目和开发者的历史交互信息R,以交互矩阵的形式,若开发者i参与到软件项目t中则有Rti=1,否则有Rti=0,即将团队成员作为正例,非团队成员作为反例,由此可将团队扩张问题转化为求解未知开发者对软件项目的适应值;
软件开发团队扩张的任务是为待扩张的团队生成备选开发者的排序列表;以软件项目t,团队现有成员ot和备选开发者i作为输入,得到备选开发者的预测得分R'(t,i),根据所有备选开发者的预测得分就可以得到最终的排序列表,关键在于构造合适的函数f,将输入[t,ot,i]映射到预期的输出R'(t,i),使得正例个体的团队适应值高于所有反例个体,使用TESD模型来建模作用于嵌入表示之上的函数f,整个过程分为训练和测试两个阶段;在训练阶段将训练集输入到TESD模型中,并根据模型的目标函数计算训练loss,在loss达到预先设定的阈值或者迭代次数达到既定数目后停止训练;最终,训练好模型之后以测试集作为输入,输出备选开发者的预测得分并进行排序。
3.如权利要求1所述的基于精确化嵌入表示的开源软件开发团队扩展方法,其特征在于:基于软件项目、现有成员和备选开发者三者关联的TESD模型及其求解:
首先考虑备选开发者和软件项目的匹配,pt和qi分别表示软件项目t和备选开发者i的嵌入表示向量,软件项目t和备选开发者i的匹配程度用公式表示为其中表示元素间乘操作;
其次对于备选开发者和团队已有成员的匹配,将项目领袖作为团队其他成员的代表,在此基础上建模项目领袖和备选开发者在当前团队合作的可行性,公式表述为其中和qi分别表示项目领袖和备选开发者的嵌入表示向量;
软件项目和已有成员的结合用公式表述为其中pt和分别表示软件项目和项目领袖的嵌入表示向量。
4.如权利要求3所述的基于精确化嵌入表示的开源软件开发团队扩展方法,其特征在于:在得到三个中间嵌入表示向量的基础上,对rti、cti和st三个中间向量进行拼接,综合所有的特征,然后将拼接向量输入到一个全连接层,其输出值即为备选开发者相对于当前团队的得分,公式表述为
R'(t,i)=fout([rti,cti,st]xT)
其中x为最后一层的权重向量,fout为激活函数,而考虑到单一的向量拼接并不足以完整表现软件项目,团队已有成员以及备选开发者之间的复杂交互,用若干层非线性层来建模这些复杂关系,对于cti,该过程用公式表示为:
其中,L表示非线性层的层数,
W(i)表示第i层的权重矩阵,
b(i)表示第i层的偏置向量,
f(i)表示第i层的激活函数,这里采用ReLU,其公式为f(x)=max(0,x)。
5.如权利要求4所述的基于精确化嵌入表示的开源软件开发团队扩展方法,其特征在于:备选开发者相对于软件开发团队的适应值:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810281538.2A CN108549979B (zh) | 2018-04-02 | 2018-04-02 | 一种基于精确化嵌入表示的开源软件开发团队扩展方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810281538.2A CN108549979B (zh) | 2018-04-02 | 2018-04-02 | 一种基于精确化嵌入表示的开源软件开发团队扩展方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108549979A true CN108549979A (zh) | 2018-09-18 |
CN108549979B CN108549979B (zh) | 2021-12-07 |
Family
ID=63513752
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810281538.2A Active CN108549979B (zh) | 2018-04-02 | 2018-04-02 | 一种基于精确化嵌入表示的开源软件开发团队扩展方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108549979B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111915216A (zh) * | 2020-08-14 | 2020-11-10 | 南京大学 | 基于二次注意力机制的开源软件项目开发人员推荐方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104239466A (zh) * | 2014-09-02 | 2014-12-24 | 百度在线网络技术(北京)有限公司 | 向用户推荐项目的方法、装置及设备 |
CN104700190A (zh) * | 2014-09-17 | 2015-06-10 | 国家电网公司 | 一种用于项目与专业人员匹配的方法和装置 |
CN107491299A (zh) * | 2017-07-04 | 2017-12-19 | 扬州大学 | 面向多源软件开发数据融合的开发者画像建模方法 |
-
2018
- 2018-04-02 CN CN201810281538.2A patent/CN108549979B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104239466A (zh) * | 2014-09-02 | 2014-12-24 | 百度在线网络技术(北京)有限公司 | 向用户推荐项目的方法、装置及设备 |
CN104700190A (zh) * | 2014-09-17 | 2015-06-10 | 国家电网公司 | 一种用于项目与专业人员匹配的方法和装置 |
CN107491299A (zh) * | 2017-07-04 | 2017-12-19 | 扬州大学 | 面向多源软件开发数据融合的开发者画像建模方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111915216A (zh) * | 2020-08-14 | 2020-11-10 | 南京大学 | 基于二次注意力机制的开源软件项目开发人员推荐方法 |
CN111915216B (zh) * | 2020-08-14 | 2023-09-12 | 南京大学 | 基于二次注意力机制的开源软件项目开发人员推荐方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108549979B (zh) | 2021-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Qiu et al. | Dynamically fused graph network for multi-hop reasoning | |
Gong et al. | An integrated multi-criteria decision making approach with linguistic hesitant fuzzy sets for E-learning website evaluation and selection | |
Mansinghka et al. | Structured priors for structure learning | |
Yang et al. | Finding progression stages in time-evolving event sequences | |
Xiao et al. | Dynamically fused graph network for multi-hop reasoning | |
CN107562812A (zh) | 一种基于特定模态语义空间建模的跨模态相似性学习方法 | |
CN106250438A (zh) | 基于随机游走模型的零引用文章推荐方法及系统 | |
Asanbe et al. | Teachers’ performance evaluation in higher educational institution using data mining technique | |
CN105893483A (zh) | 大数据挖掘过程模型总体框架的构造方法 | |
Wang et al. | Matrix representations of the inverse problem in the graph model for conflict resolution | |
CN107480141A (zh) | 一种基于文本和开发者活跃度的软件缺陷辅助分派方法 | |
Wang | Intelligent employment rate prediction model based on a neural computing framework and human–computer interaction platform | |
CN114169869B (zh) | 一种基于注意力机制的岗位推荐方法及装置 | |
Van der Merwe et al. | Analysing'theory networks': identifying the pivotal theories in marketing and their characteristics | |
CN115148302A (zh) | 一种基于图神经网络与多任务学习的化合物性质预测方法 | |
Thai-Nghe et al. | Predicting Student Performance in an Intelligent Tutoring System. | |
Ding et al. | An approach for combining multimodal fusion and neural architecture search applied to knowledge tracing | |
Su | The study of physical education evaluation based on a fuzzy stochastic algorithm | |
CN108549979A (zh) | 一种基于精确化嵌入表示的开源软件开发团队扩展方法 | |
Salvi Akansha et al. | Prediction and evaluation of students academic performance using fuzzy logic | |
Kocabey Çiftçi et al. | A multi-stage learning-based fuzzy cognitive maps for tobacco use | |
Rocha et al. | Prediction of University Desertion through Hybridization of Classification Algorithms. | |
CN111915216B (zh) | 基于二次注意力机制的开源软件项目开发人员推荐方法 | |
Royes et al. | Fuzzy MCDM in election prediction | |
CN115617960A (zh) | 一种岗位推荐方法及装置 |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 210008 No. 22, Hankou Road, Gulou District, Jiangsu, Nanjing Applicant after: NANJING University Address before: 210046 Xianlin Avenue 163, Qixia District, Nanjing City, Jiangsu Province Applicant before: NANJING University |
|
GR01 | Patent grant | ||
GR01 | Patent grant |