CN109032591A - 一种基于神经网络的众包软件开发者推荐方法 - Google Patents

一种基于神经网络的众包软件开发者推荐方法 Download PDF

Info

Publication number
CN109032591A
CN109032591A CN201810642091.7A CN201810642091A CN109032591A CN 109032591 A CN109032591 A CN 109032591A CN 201810642091 A CN201810642091 A CN 201810642091A CN 109032591 A CN109032591 A CN 109032591A
Authority
CN
China
Prior art keywords
user
task
prediction device
behavior prediction
data
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
Application number
CN201810642091.7A
Other languages
English (en)
Other versions
CN109032591B (zh
Inventor
孙海龙
王旭
张振羽
刘旭东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Original Assignee
Beihang University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN201810642091.7A priority Critical patent/CN109032591B/zh
Publication of CN109032591A publication Critical patent/CN109032591A/zh
Application granted granted Critical
Publication of CN109032591B publication Critical patent/CN109032591B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种基于神经网络的众包软件开发者推荐方法,所述方法中的模型总体包含三个主要组件,注册行为预测器,提交行为预测器,获胜行为预测器,所述提交行为预测器基于用户已经注册后的情况进行预测,获胜行为预测器基于用户已经提交后的情况进行预测,注册者预测器预测没有任何先决条件,在所述注册行为预测器对任务数据集进行学习中,如果输出的注册概率不在前top R,则用户获胜概率为0,终止该实例预测,否则继续使用提交行为预测器进行输出检测;在提交行为预测器中,如果输出的提交概率不在前top S,则用户的获胜概率为0,终止该实例预测,否则进入获胜行为预测器;最后由用户获胜行为预测器得到获胜概率,并根据获胜概率推荐前K个用户的列表。

Description

一种基于神经网络的众包软件开发者推荐方法
技术领域
本发明涉及智能推荐方领域,尤其涉及一种基于神经网络的众包软件开发者推荐方法。
背景技术
众包软件开发是众包技术在软件开发领域的应用。软件需求方根据功能或者特性将复杂软件进行模块切分后将全部或者部分软件模块以众包开发任务的形式外包出去,让大众开发者去完成这些任务。现在业界出现了不少众包软件开发平台,比如Topcoder、Kaggle等,其中最大的平台是Topcoder。Topcoder平台10多年来一直引领着众包软件开发的潮流,并拥有超过100万的用户。典型的众包软件开发流程包括:软件需求方在众包平台发布软件开发任务;用户(开发者)选择合适的任务进行注册;注册开发者者提交相应的工作;最后根据评审规则确定开发者得分选择获胜者。根据数据统计,23%的任务注册用户不会提交任何工作,这种极高的放弃率会导致任务失败。如何尽可能早地选择潜在的获胜者,即将可靠性高的人推荐出来从而提升软件开发效率和保障软件质量,是众包软件开发领域中的重要问题。
现有技术中,在处理众包软件开发者推荐时主要从两个角度切入:(1)基于已经过滤的用户做多标签分类,构建相应的分类器,预测最为可靠的用户。这种方法认为可靠的用户一般具有多次的获胜历史,从而将获胜次数低于一定阈值的用户进行过滤,最后保留少量开发者,并把这些开发者作为标签,采用一些任务的属性综合起来构建分类器,预测可能获胜的用户,并把他们作为可靠用户推荐给相关的开发任务。(2)基于用户状态来预测用户角色。这种方法认为用户当前的状态以及相应的历史,对他之后的行为会产生影响。用户角色可以划分为注册者,提交者和获胜者。他们基于用户当前已经注册的用户的历史数据来预测用户的提交情况,进而判断用户是否是提交者;根据已经提交了工作的用户的历史数据和提交情况来预测用户的获胜几率,进而判断用户是否为获胜者。
现有技术在推荐可靠用户时,在没有任何用户状态信息时准确率不高,之前采用多标签分类的技术,top5的准确率最高不超过70%;二基于角色的预测方法,在未知用户注册状态时,很难对用户是否为注册者进行预测,进而无法准确地预测后续状态。
现在的技术方案都仅能针对大数据集进行分析建模,缺乏对小数据集的研究。由于多标签分类需要大量的数据才能训练出一个非常完美的模型,从而限制了这种方法在数据量不足时的应用。此外,基于用户角色的数据角色预测方法,需要使用用户的历史数据,小数据集上的用户历史显然太少,这导致我们难以训练模型。
现有技术缺乏对于冷启动问题的解决。多标签形式的分类问题,基本假设中认为只有注册次数高于一定阈值时才是可靠的,那些获胜历史少的用户都被过滤,这导致对于一些缺少获胜历史的用户难以进行推荐。而基于用户角色的预测,依旧需要大量的用户历史数据才能训练分类器,对于那些缺乏相应历史的用户,则无法处理。
发明内容
本发明针对众包软件开发者推荐的问题,提出了一种基于神经网络的众包软件开发者推荐方法,从而保证软件质量和开发效率。本发明解决众包软件开发者推荐中的三个问题:(1)众包任务的历史数据量不足,难以准确建模;(2)众包软件开发过程中用户注册、提交等状态不明确致使推荐范围受限的问题;(3)用户缺乏历史数据导致的冷启动问题。
本发明提出了一种基于神经网络的众包软件开发者推荐方法,所述方法中的模型总体包含三个主要组件,注册行为预测器,提交行为预测器,获胜预测器。这三者分别可以预测用户的相应行为,提交预测器训练基于用户已经注册后的情况,获胜者预测器训练基于用户已经提交后的情况,注册者预测器预测器训练时则没有任何先决条件。三个预测器的输入均为处理后的任务开发者特征向量,然后内部算法可以计算出相应的注册概率,提交概率和获胜概率。首先初始化获胜概率为1。针对这个初始化的获胜者预测出的获胜概率p,注册者和提交者预测器会相继对预测出的注册概率和提交概率不在前人为设定的阈值的用户的获胜概率进行修改,直接把获胜概率置为0,并且此时直接结束模型对该输入的预测行为。对于所述三个组件,采用元模型进行构建,基础学习模型使用extrees,xgboost,以及深度神经网络DNN三个算法,并使用元学习方法进行算法的选择。
附图说明
图1为本发明的整体处理过程;
图2为一实施例对于采用迁移学习的方法进行处理过程;
图3为本发明的任务特征处理过程;
图4为本发明的数据预处理流程。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明提出一种基于神经网络的众包软件开发者推荐方法,如图1所示,进行推荐时,所述方法中包含三个主要组件:注册行为预测器,提交行为预测器,获胜行为预测器。这三者分别可以预测用户的相应行为,提交行为预测器基于用户已经注册后的情况进行预测,而获胜者预测是基于用户已经提交后的情况进行预测,注册者预测器预测没有任何先决条件。针对获胜者预测出的获胜概率p,注册者和提交者预测器会相继对预测出的注册概率和提交概率不在前百分之top_R,top_S的用户的获胜概率进行修改,所述R,S为0到1的阈值,可以人为设定,直接把获胜概率p置为0,并且此时直接结束模型对该输入的预测行为。对于这三个组件,采用元模型进行构建,基础学习模型使用extrees,xgboost,以及深度神经网络DNN三个算法,并依据原学习方法进行分析算法选择。
在针对小数据集情况模型表现不佳的问题,采用迁移学习的方法进行处理,具体如图2所示。首先需要寻找开数据集用户交互较多的数据集对,使用CR参数完成,所述CR参数表示连个数据集间相同用户的数目占相应数据集总用户数目的比例。然后将那些与某个小数据集A的CR值高的数据集上的模型作为邻居模型存储起来,在预测小数据集的某个软件开发任务时,寻找邻居数据集上相似的任务用并用邻居模型预测,然后将预测结果和在本数据集上的预测结果依据相似度加权求和,推荐相应的用户。
个别大数据集由于用户数目特别多,直接进行推荐预测存在困难,本发明采用数据聚类,但是模型训练阶段使用整个数据集的模式来融合协同过滤的信息。如图3所示为整个推荐模式流程图。其中Code,Assembly,和First2Finish是本发明构建模型时采用的Topcoder中的三个大数据集例子,本发明既保证了模型学习到足够的知识,同时又能降低模型预测时的难度。
首先采用聚类算法,针对数据集里的任务信息进行聚类,保证每个子类中的任务平均数量不超过给定阈值(推荐500到1500左右适宜),此过程中构建出针对特定数据集的聚类模型。然后针对每一个数据集,将在其上训练好的模型应用到聚类后的子类数据集进行预测。需要注意的是,在进行聚类时,仅使用(剔除时间信息后的)任务特征向量,目的是为了将内容相近的任务聚类到子数据集里;而训练预测器模型时则使用包含用户和任务特征的特征向量。这种设计方案既保证了模型从大数据集中学习到足够的知识,同时又由于每个子类数据集中用户数量较少而提高模型推荐用户时的准确率。
任务数据集(challenge data)由用户特征和任务特征两部分共同构成,分别抽取对用户注册、提交、获胜等影响较大的特征。用户特征采用用户历史行为和技能等特征维度进行构建,其中用户特征如表1和表2所示,主要反映用户的可靠性。任务特征采用如表3所示,主要反映当前特征的内容和要求,以及和用户的匹配程度等。表1表示了用户的三种历史行为,以及之前的表现历史;表2表示了于用户可靠性相关的三类特征。表3则是对影响用户行为的任务相关特征进行了构建,此外还针对用户技能任务需求进行了匹配度计算MD,MD为用户包含的任务所需技能占所有任务所需技能的百分比,也计入了特征维度。
表1
历史数据类型 具体内容(在一个给定时间点之前)
注册历史 注册频率和距离上次的注册天数
提交历史 提交频率和距离上次提交的天数
获胜历史 获胜频率和距离上次获胜的天数
表现历史 上次任务的得分和排名
表2
用户特征 描述
技能 针对最长获胜者拥有的技能使用独热编码
会员年龄 自从用户注册Topcoder平台算起的天数
历史数据 表1
表3
特征 特征描述
编程语言 对出现的所有编程语言使用独热编码
技术需求 对最常见技术使用独热编码
任务需求文本 描述使用LDA主题模型编码文本
发布时间 任务发布距今的天数
任务持续时 间任务发布到提交截止之间的天数
任务难度 引用文献中的定义
在构建完特征之后,分别使用注册状态,提交状态和是否获胜对每一条记录进行标记,作为后续训练的标签。此外,由于样本不均衡现象很明显,所以后续又采用了重新采样方法对此进行了处理。整个数据预处理流程如图4所示。
首先针对任务数据的集合,构建这个任务集合里所有任务的特征,同时将参与过这个集合里的任务的用户放到一个用户集合里。然后对每一个任务,构建相应用户集合里所有用户的特征信息,并基于该任务特征与用户特征构建任务数据向量,同时给予此用户在这个任务中的注册、提交、获胜信息赋予这个特征向量三个独立的二分类标签。由于95%以上的情况下,每个任务的参与人数占用户集合大小不超过10%,所以在模型训练阶段需要使用重新采样技术均衡正负样本比例,不能对测试数据集或需要预测的数据集进行重采样。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (6)

1.一种基于神经网络的众包软件开发者推荐方法,所述方法中包含三个主要组件:注册行为预测器、提交行为预测器、获胜行为预测器,所述提交行为预测器基于用户已经注册后的情况进行预测,获胜行为预测器基于用户已经提交后的情况进行预测,在所述注册行为预测器对任务数据集进行学习中,如果输出的注册概率不在前top R,则用户获胜概率为0,终止该实例预测,否则提交行为预测器;在提交行为预测器中,如果输出的提交概率不在前top S,则用户的获胜概率为0,终止该实例预测,否则提交获胜行为预测器;最后由用户获胜行为预测器得到获胜概率,并根据获胜概率推荐前K个用户的列表,所述R,S,K为正整数。
2.如权利要求1所述的方法,其特征在于,在所述三个预测器中采用迁移学习的方法处理任务数据集,首先需要寻找数据集用户交互较多的数据集对,使用CR参数表示连个数据集间相同用户的数目占相应数据集总用户数目的比例,然后将与某个小数据集的CR值高的数据集上的模型作为邻居模型存储起来,在预测小数据集的软件开发任务时,寻找邻居数据集上相似的任务并用邻居模型预测,然后将预测结果和在所述数据任务集上的预测结果依据相似度加权求和,推荐相应的用户列表。
3.如权利要求1所述的方法,其特征在于,针对所述任务数据集里的任务信息进行聚类,保证每个子类中的任务平均数量不超过给定阈值,构建出针对特定数据集的聚类模型,然后针对每一个数据集,将在其上训练好的模型应用到聚类后的子类数据集进行预测,在进行聚类时,仅使用剔除时间信息后的任务特征向量,训练所述预测器模型时使用包含用户和任务特征的特征向量。
4.如权利要求1所述的方法,其特征在于,所述任务数据集由用户特征和任务特征两部分构成,分别抽取对用户注册、提交、获胜等影响较大的特征,所述用户特征包括用户历史行为、技能、历史数据,反映用户的可靠性,所述任务特征包括编程语言、技术需求、任务需求文本描述、发布时间、任务持续时间、任务难度,反映当前特征的内容和要求,以及和用户的匹配程度等。
5.如权利要求4所述的方法,其特征在于,在构建完所述用户特征和任务特征之后,分别使用注册状态,提交状态和是否获胜对每一条记录进行标记,作为后续训练的标签,并采用了重新采样方法进行处理。
6.如权利要求5所述的方法,其特征在于,所述标记的具体方法为,首先针对任务数据的集合,构建所述任务数据的集合里所有任务的特征,同时将参与过这个集合里的任务的用户放到一个用户集合里,然后对每一个任务,构建相应用户集合里所有用户的特征信息,并基于该任务特征与用户特征构建任务数据向量,同时给予此用户在这个任务中的注册、提交、获胜信息赋予这个特征向量三个独立的二分类标签。
CN201810642091.7A 2018-06-21 2018-06-21 一种基于元学习的众包软件开发者推荐方法 Active CN109032591B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810642091.7A CN109032591B (zh) 2018-06-21 2018-06-21 一种基于元学习的众包软件开发者推荐方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810642091.7A CN109032591B (zh) 2018-06-21 2018-06-21 一种基于元学习的众包软件开发者推荐方法

Publications (2)

Publication Number Publication Date
CN109032591A true CN109032591A (zh) 2018-12-18
CN109032591B CN109032591B (zh) 2021-04-09

Family

ID=64610461

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810642091.7A Active CN109032591B (zh) 2018-06-21 2018-06-21 一种基于元学习的众包软件开发者推荐方法

Country Status (1)

Country Link
CN (1) CN109032591B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110162706A (zh) * 2019-05-22 2019-08-23 南京邮电大学 一种基于交互数据聚类的个性化推荐方法及系统
CN111061959A (zh) * 2019-12-29 2020-04-24 东南大学 一种基于开发者特征的群智化软件任务推荐方法
CN111222847A (zh) * 2019-12-29 2020-06-02 东南大学 基于深度学习与非监督聚类的开源社区开发者推荐方法
CN111459927A (zh) * 2020-03-27 2020-07-28 中南大学 Cnn-lstm开发者项目推荐方法
CN111932108A (zh) * 2020-08-06 2020-11-13 北京航空航天大学杭州创新研究院 一种面向群体软件过程的开发人员推荐方法
CN112114791A (zh) * 2020-09-08 2020-12-22 南京航空航天大学 一种基于元学习的代码自适应生成方法
CN112417288A (zh) * 2020-11-25 2021-02-26 南京大学 一种用于众包软件测试的任务跨域推荐方法
CN114491039A (zh) * 2022-01-27 2022-05-13 四川大学 基于梯度改进的元学习少样本文本分类方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609523A (zh) * 2012-02-10 2012-07-25 上海视畅信息科技有限公司 基于物品分类和用户分类的协同过滤推荐算法
CN103473291A (zh) * 2013-09-02 2013-12-25 中国科学院软件研究所 一种基于隐语义概率模型的个性化服务推荐系统及方法
CN103632290A (zh) * 2013-12-02 2014-03-12 合肥工业大学 一种基于推荐概率融合的混合推荐方法
US20150317582A1 (en) * 2014-05-01 2015-11-05 Microsoft Corporation Optimizing task recommendations in context-aware mobile crowdsourcing

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609523A (zh) * 2012-02-10 2012-07-25 上海视畅信息科技有限公司 基于物品分类和用户分类的协同过滤推荐算法
CN103473291A (zh) * 2013-09-02 2013-12-25 中国科学院软件研究所 一种基于隐语义概率模型的个性化服务推荐系统及方法
CN103632290A (zh) * 2013-12-02 2014-03-12 合肥工业大学 一种基于推荐概率融合的混合推荐方法
US20150317582A1 (en) * 2014-05-01 2015-11-05 Microsoft Corporation Optimizing task recommendations in context-aware mobile crowdsourcing

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110162706B (zh) * 2019-05-22 2021-10-26 南京邮电大学 一种基于交互数据聚类的个性化推荐方法及系统
CN110162706A (zh) * 2019-05-22 2019-08-23 南京邮电大学 一种基于交互数据聚类的个性化推荐方法及系统
CN111061959A (zh) * 2019-12-29 2020-04-24 东南大学 一种基于开发者特征的群智化软件任务推荐方法
CN111222847A (zh) * 2019-12-29 2020-06-02 东南大学 基于深度学习与非监督聚类的开源社区开发者推荐方法
CN111061959B (zh) * 2019-12-29 2024-03-19 东南大学 一种基于开发者特征的群智化软件任务推荐方法
CN111222847B (zh) * 2019-12-29 2023-11-24 东南大学 基于深度学习与非监督聚类的开源社区开发者推荐方法
CN111459927B (zh) * 2020-03-27 2022-07-08 中南大学 Cnn-lstm开发者项目推荐方法
CN111459927A (zh) * 2020-03-27 2020-07-28 中南大学 Cnn-lstm开发者项目推荐方法
CN111932108B (zh) * 2020-08-06 2022-07-19 北京航空航天大学杭州创新研究院 一种面向群体软件过程的开发人员推荐方法
CN111932108A (zh) * 2020-08-06 2020-11-13 北京航空航天大学杭州创新研究院 一种面向群体软件过程的开发人员推荐方法
CN112114791A (zh) * 2020-09-08 2020-12-22 南京航空航天大学 一种基于元学习的代码自适应生成方法
CN112417288A (zh) * 2020-11-25 2021-02-26 南京大学 一种用于众包软件测试的任务跨域推荐方法
CN112417288B (zh) * 2020-11-25 2024-04-12 南京大学 一种用于众包软件测试的任务跨域推荐方法
CN114491039A (zh) * 2022-01-27 2022-05-13 四川大学 基于梯度改进的元学习少样本文本分类方法
CN114491039B (zh) * 2022-01-27 2023-10-03 四川大学 基于梯度改进的元学习少样本文本分类方法

Also Published As

Publication number Publication date
CN109032591B (zh) 2021-04-09

Similar Documents

Publication Publication Date Title
CN109032591A (zh) 一种基于神经网络的众包软件开发者推荐方法
CN107767058A (zh) 一种众包软件开发者推荐方法
TW200837717A (en) Apparatus and method to reduce recognization errors through context relations among dialogue turns
CN109635108A (zh) 一种基于人机交互的远程监督实体关系抽取方法
CN112989761B (zh) 文本分类方法及装置
CN109885664A (zh) 一种智能对话方法、机器人对话系统、服务器及存储介质
CN110210301A (zh) 基于微表情评价面试者的方法、装置、设备和存储介质
CN111080055A (zh) 酒店评分方法、酒店推荐方法、电子装置和存储介质
Ramchandani et al. Unmasking human trafficking risk in commercial sex supply chains with machine learning
CN109325780A (zh) 一种面向电子政务领域的智能客服系统的交互方法
CN106682236A (zh) 基于机器学习的专利数据处理方法及其处理系统
Kochkina et al. Estimating predictive uncertainty for rumour verification models
CN112183652A (zh) 一种联邦机器学习环境下的边缘端偏见检测方法
CN110532363A (zh) 一种基于决策树的任务导向型自动对话方法
Albar et al. Fast and frugal heuristics for new product screening–is managerial judgment ‘good enough?’
CN114519508A (zh) 基于时序深度学习和法律文书信息的信用风险评估方法
Ragab et al. Design and implementation of a hybrid recommender system for predicting college admission
Zhao et al. What are students thinking and feeling? Understanding them from social data mining
CN110377706A (zh) 基于深度学习的搜索语句挖掘方法及设备
Gajanayake et al. Candidate selection for the interview using github profile and user analysis for the position of software engineer
CN110298034A (zh) 一种基于深度学习和区块链奖励机制的分词方法和系统
CN112507185B (zh) 用户肖像的确定方法和装置
Chen The application of tree-based model to unbalanced German credit data analysis
Kaur et al. Machine Learning–Principles and Algorithms
Béchara et al. Applying NLP Techniques to Classify Businesses by their International Standard Industrial Classification (ISIC) Code

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
GR01 Patent grant
GR01 Patent grant