当前位置: 首页 > 专利查询>湖北大学专利>正文

一种基于多标签学习的群体软件开发中服务匹配方法组成比例

技术编号:38529963 阅读:9 留言:0更新日期:2023-08-19 17:04
本发明专利技术公开了一种基于多标签学习的群体软件开发中服务匹配方法,涉及群体软件工程的项目开发信息分析技术领域,在数据嵌入层,开发者和项目的上下文属性以分类变量的形式出现,设置嵌入工作将这些显式变量映射到分布式表示,以捕获隐含语义;建立交互感知层对特征进行池化操作减少模型参数;捕获多个标签公共因素的影响,并学习特征之间的高阶交互;最后,在模型中建立多标签任务层,通过添加独立的感知模块完成不同的预测任务,当多个标签同时达到最优值时实现匹配。本发明专利技术采用上述方法的一种基于多标签学习的群体软件开发中服务匹配方法,在上下文信息的利用取得了显著效果,实现开源社区中服务的精准匹配。现开源社区中服务的精准匹配。现开源社区中服务的精准匹配。

【技术实现步骤摘要】
一种基于多标签学习的群体软件开发中服务匹配方法


[0001]本专利技术涉及群体软件工程的项目开发信息分析
,尤其是涉及一种基于多标签学习的群体软件开发中服务匹配方法。

技术介绍

[0002]信息匹配在很多领域都普遍存在,如人员识别、智能合约、社交媒体等。信息匹配能够帮助用户在海量的信息中快速、准确地找到所需的信息。在软件智能化开发领域,开发者能力和项目质量评价的研究和应用开始受到关注。随着软件演化节奏的加快与软件规模的扩大,开源社区的用户数量可能会激增。可以利用传统的检索技术确定满足开发者实践技能的项目。然而,面对大量描述相似的项目,用户可能会觉得很难判断哪些候选项目符合个人需求。为了确保更好的选择,有必要进一步比较候选项目的质量。因此,开发项目的评估和选择显然是开源社区领域中开发者和项目提供者所关心的基本问题。
[0003]为了获得准确和个性化的项目标签值,通常需要对项目进行评估。然而,由于时间、成本和其他因素的限制,开发者不能在海量的数据中对比每个项目。为了获得项目的个性化标签,帮助开发者匹配合适的项目,借鉴推荐系统,提出协同标签预测来应对这一问题。协同预测的主要思想是分析开发者和项目的历史数据,进一步利用协同智能来预测未知的标签值。通过区分候选项目的标签值,开发者可以决定是否选择合适的项目。这样就可以避免直接度量标签值,从而为项目提供者和开发者节省时间和经济成本。
[0004]随着深度学习的蓬勃发展,深度神经网络在计算机视觉、自然语言处理等许多应用领域取得了重大突破。深度神经网络可以通过多层表征有效地提取特征,因为较高的表征层放大了对识别很重要的输入方面,并抑制了不相关的变化。此外,深度神经网络具有非线性建模能力,可以近似任何复杂函数,为复杂任务建立复杂的预测模型,并达到预期的精度。此外,分层结构使我们更容易处理多任务学习的参数共享。
[0005]因此,本专利技术提出一种多标签深度神经模型(DNM2L)实现群体软件开发中服务匹配。

技术实现思路

[0006]本专利技术的目的是提供一种基于多标签学习的群体软件开发中服务匹配方法,结合一阶特征和二阶交叉特征对嵌入向量进行训练,在上下文信息的利用取得了显著效果。通过多标签组合预测的策略,实现群体软件开发中服务的精准匹配。
[0007]为实现上述目的,本专利技术提供了一种基于多标签学习的群体软件开发中服务匹配方法,包括以下步骤:
[0008]S1、数据嵌入层
[0009]S11、输入开发者、项目数据,分别包含开发者实践技能和项目基本属性,所有开发者的语言和角色、项目的主题和受众均视为特征,每个特征通过全局标识符x
i
指示向量中的位置;
[0010]S12、将每个特征映射到一个密集向量上进行分布式表示,令e
i
∈R
d
为一个d维向量,嵌入工作完成后,得到一组大小为d
×
n对应于x的嵌入向量E
x
,公式如下:
[0011]E
x
={x1e1,

,x
i
e
i
}(1≤i≤n);
[0012]S2、交互感知层,包括交互组和感知组两部分
[0013]S21、交互组由求和与乘积两部分组成,在求和部分,将所有嵌入向量相加,得到:
[0014][0015]为一阶特征;
[0016]在乘积部分,将嵌入向量上的元素相乘,把嵌入集E
x
送入交互组,并把一组嵌入向量转换成一个向量,如下:
[0017][0018]其中,特征分为开发者和项目两个子集:C
dev
和C
pro
,“·”表示两个向量的元素相乘,如下:
[0019](e
i
·
e
j
)
k
=e
ik
e
jk
(1≤k≤d)
[0020]此时得到一个d维向量,编码R
d
中特征之间的二阶交互;
[0021]S22、将一阶特征和二阶交叉特征结合,两部分进一步合并为E'
x
,并完全连接到感知组中,如下:
[0022][0023]S23、感知组r
L
是一个全连接层的堆栈,其公式如下:
[0024]r1=ω1(W1E'
x
+b1)
[0025]r2=ω2(W2r1+b2)
[0026]…
[0027]r
L
=ω
L
(W
L
r
L
‑1+b
L
)
[0028]其中,L为隐含层数,W
L
、b
L
、ω
L
分别为第L层的权矩阵、偏置向量和激活函数;
[0029]S3、多标签任务层,包括以下子步骤
[0030]S31、首先为每个标签添加独立的感知模块,如下:
[0031][0032][0033]…
[0034][0035]其中y
n
、PL
n
、分别为标签预测函数、感知模块、感知模块对第n个预测标签的神经元权重;
[0036]S32、根据模型输出结果,对所有预测值进行排序,当每个标签均达到最优值时,完成此次开发者和项目的匹配;
[0037]S33、验证匹配结果,采用平均绝对误差、均方根误差和归一化平均绝对误差进行评价,如下:
[0038][0039][0040][0041]其中,y(x)和分别为真实值和预测值,N为测试用例的数量;y
max
和y
min
分别是数据集中观察到的最大值和最小值,MAE表示平均绝对误差,RMSE表示均方根误差,NMAE表示归一化平均绝对误差。
[0042]优选的,所述步骤S11中提取开发者实践技能时,选用开发者实践技能和项目基本属性数据,对开发者实践技能和项目基本属性进行区分,分成两部分后作为数据输入集。
[0043]优选的,所述步骤S11中的特征共有n个,当第i个特征存在时,令x
i
=1,否则x
i
=0,得到输入向量x=[101

001],特征标识符记为[1,2,

,i]。
[0044]优选的,所述步骤S12中仅保留非零的特征作为嵌入向量,即E
x
={x
i
e
i
|x
i
≠0}。
[0045]优选的,所述步骤S21中的求和部分计算开发者项目一阶特征,所述步骤S21中的乘积部分计算开发者项目二阶交叉特征,所述步骤S22整合交互组。
[0046]优选的,所述步骤S23中的堆栈为全连接层、学习属性之间高阶交互的堆栈。
[0047]因此,本专利技术采用上述一种基于本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于多标签学习的群体软件开发中服务匹配方法,包括以下步骤:S1、建立数据嵌入层;S2、建立交互感知层,包括交互组和感知组两部分;S3、构建多标签任务层。2.根据权利要求1所述的一种基于多标签学习的群体软件开发中服务匹配方法,其特征在于:所述S1的具体步骤如下:S11、输入开发者、项目数据,分别包含开发者实践技能和项目基本属性,所有开发者的语言和角色、项目的主题和受众均视为特征,每个特征通过全局标识符x
i
指示向量中的位置;S12、将每个特征映射到一个密集向量上进行分布式表示,令e
i
∈R
d
为一个d维向量,嵌入工作完成后,得到一组大小为d
×
n对应于x的嵌入向量E
x
,公式如下:E
x
={x1e1,...x
i
e
i
}(1≤i≤n)。3.根据权利要求2所述的一种基于多标签学习的群体软件开发中服务匹配方法,其特征在于:所述S2的具体步骤如下:S21、交互组由求和与乘积两部分组成,在求和部分,将所有嵌入向量相加,得到:为一阶特征;在乘积部分,将嵌入向量上的元素相乘,把嵌入集E
x
送入交互组,并把一组嵌入向量转换成一个向量,如下:其中,特征分为开发者和项目两个子集:C
dev
和C
pro
,“·”表示两个向量的元素相乘,如下:(e
i
·
e
j
)
k
=e
ik
e
jk
(1≤k≤d)此时得到一个d维向量,编码R
d
中特征之间的二阶交互;S22、将一阶特征和二阶交叉特征结合,两部分进一步合并为E

x
,并完全连接到感知组中,如下:S23、感知组r
L
是一个全连接层的堆栈,其公式如下:r1=ω1(W1E

x
+b1)r2=ω2(W2r1+b2)

r
L
=ω
L
(W
L
r
L
‑1+b
L
)其中,L为隐含层数,W
L
...

【专利技术属性】
技术研发人员:何鹏和诗雨熊定坤马菊陈劲超
申请(专利权)人:湖北大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1