CN111061959A - 一种基于开发者特征的群智化软件任务推荐方法 - Google Patents
一种基于开发者特征的群智化软件任务推荐方法 Download PDFInfo
- Publication number
- CN111061959A CN111061959A CN201911386686.1A CN201911386686A CN111061959A CN 111061959 A CN111061959 A CN 111061959A CN 201911386686 A CN201911386686 A CN 201911386686A CN 111061959 A CN111061959 A CN 111061959A
- Authority
- CN
- China
- Prior art keywords
- developer
- task
- tasks
- preference
- crowd
- 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 description 37
- 230000007246 mechanism Effects 0.000 claims abstract description 15
- 230000015654 memory Effects 0.000 claims abstract description 15
- 238000013528 artificial neural network Methods 0.000 claims abstract description 13
- 230000006870 function Effects 0.000 claims description 16
- 238000003062 neural network model Methods 0.000 claims description 9
- 238000012549 training Methods 0.000 claims description 9
- 238000002474 experimental method Methods 0.000 claims description 6
- 238000005457 optimization Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 6
- 230000006872 improvement Effects 0.000 claims description 5
- 230000006403 short-term memory Effects 0.000 claims description 5
- 230000000694 effects Effects 0.000 claims description 4
- 230000007787 long-term memory Effects 0.000 claims description 4
- 230000007774 longterm Effects 0.000 claims description 4
- 210000000349 chromosome Anatomy 0.000 claims 1
- 238000011161 development Methods 0.000 abstract description 10
- 238000003066 decision tree Methods 0.000 description 6
- 239000013598 vector Substances 0.000 description 6
- 230000002860 competitive effect Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 238000012358 sourcing Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000008033 biological extinction Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000035772 mutation Effects 0.000 description 1
- 238000009401 outcrossing Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
-
- 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
- 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
- G06Q10/063112—Skill-based matching of a person or a group to a task
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Educational Administration (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- General Business, Economics & Management (AREA)
- Tourism & Hospitality (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Operations Research (AREA)
- Marketing (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Development Economics (AREA)
- Game Theory and Decision Science (AREA)
- Evolutionary Biology (AREA)
- Physiology (AREA)
- Genetics & Genomics (AREA)
- Biomedical Technology (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
群智化软件开发是一种利用世界各地开发人员资源,基于竞争或协作的方式来完成复杂开发任务的新型软件开发模式。但是,目前该软件开发模式存在着信息过载、挑选任务困难,任务复杂、质量难以保证的问题。为有效解决上述问题,本发明基于群智化软件开发者的特征给其推荐适合完成的任务,从而提高软件开发的效率与质量。开发者特征主要从两个方面来衡量,分别是开发者的动态偏好和开发者的竞争力。首先,我们使用基于注意力机制的长短期记忆神经网络来获取开发者动态变化的偏好并筛选出符合开发者偏好的前N个任务。然后,针对开发者的竞争力,采用基于差分进化算法改进的XGBoost模型预测开发者在待推荐任务上的评分。最后按照预测评分的高低向该开发者推荐Top‑K任务。
Description
技术领域
本发明涉及一种利用开发者的动态偏好和竞争力来对开发者进行群智化软件任务推荐的技术,属于推荐技术领域。
背景技术
近些年来,群智化软件开发已经受到了学术界和工业界的广泛关注。作为一种新型的软件开发方式,群智化软件开发充分利用了“群智化”的思想。相比于传统的软件开发,群智化软件开发可以最大限度地利用分布在世界各地的开发人员的资源,采用群体竞争或协作的方式来完成复杂的开发任务,能够有效降低开发的成本,提高开发的效率。目前,互联网上已经有了许多群智化的平台,供需求方发布任务以及大众来获取并完成任务。如Amazon Mechanical Turk、CrowdFlower、TopCoder、AppStori和uTest等等。
虽然群智化软件开发模式已经取得了一定的成功,但是存在着一些问题。一方面,信息过载,挑选任务困难。目前群智化平台上存在着大量请求者发布的任务,开发者往往需要花费大量的时间在选择任务上。另一方面,任务复杂,质量难以保证。软件开发任务相比于一些数据标注的小任务要复杂得多,因此需要具有专业知识和技能的人才能完成,开发人员凭借自己的主观意愿去选择的任务可能并不适合自己,不准确的任务匹配最后会影响任务完成的进度和质量。
群智化软件任务推荐即为群智化软件开发平台中的每个开发者推荐适合其完成的软件任务可以有效解决上述存在的问题。通过给开发者推荐合适的任务从而减少开发者挑选任务的时间,提高开发者完成任务的质量,提升开发者参与任务的积极性,最终使得整个群智化软件开发平台能够高效有序地运转,吸引越来越多的开发者,充分显示出群智化软件开发的优越性。
目前,针对群智化平台的任务推荐方法已经引起了广泛关注,并产生了一些研究成果。但这些推荐方法存在两方面问题。一方面,这些推荐方法主要针对的是一些小任务,即非软件开发任务,这类任务通常比较简单,不需要专业的知识就可以完成,而且完成时间较短,但是软件开发任务通常比较复杂,需要具有专业知识的人才能完成且周期较长,两者的建模方式并不一样,因此这些推荐方法并不适用于群智化软件任务推荐。另一方面,这些推荐方法往往考虑的是开发者的静态偏好,但是开发者的偏好是在不断变化的,如何充分把握开发者当前的偏好对于推荐结果是有重要影响的。其次,目前竞争性质的软件开发任务较多,对于这样的任务,每一个任务能够获胜的只有一个或几个开发者,因此在给开发者推荐任务时还需考虑他的竞争力,这一方面取决于他当前自己的能力与时间,也取决于和他竞争的对手的信息。
综上所述,本发明通过对开发者的动态偏好和竞争力进行建模,提出了一种有效的群智化软件任务推荐方法,从而有助于减少开发时间,提高开发质量。因此,本发明具有重要理论意义和实际应用价值。
发明内容
本发明的主要目的是提供一种推荐方法,基于开发者的动态偏好和竞争力来给开发者推荐合适的群智化软件开发任务。该方法考虑了开发者偏好的动态变化性及其所处的竞争环境,能够更加精准地对开发者特征进行提取,从而提高推荐的准确度,加大开发者对所推荐任务的采纳性,并提高开发者的开发效率与开发质量。
为了实现上述目的,本发明的技术方案如下:一种基于开发者特征的群智化软件任务推荐方法,所述方法包括如下步骤:
(1)、分析群智化软件开发者的历史数据,针对开发者所参加的历史任务进行特征提取,获取其两种特征,分别为开发者的偏好信息和竞争力信息;
(2)、对于开发者的历史任务偏好信息,将其按照时间进行划分,得到多个历史任务偏好序列,并用基于注意力机制的长短期记忆神经网络进行训练,预测出开发者的当前偏好;
(3)、将开发者的偏好与所有待推荐的任务通过距离公式进行相似性对比,筛选出前N个感兴趣的任务,其中N主要取决于所有开发者在一个月内的平均报名任务数,并通过实验以确定最佳数值;
(4)、对于开发者的历史任务竞争力信息,通过基于差分进化算法改进的XGBoost模型对开发者在一项任务上的预测评分进行训练;
(5)、针对筛选出的前N个感兴趣的任务,输入训练好的预测评分模型来得到其评分,并将预测评分最高的K个任务推荐给开发者,其中K主要取决于所有开发者在一个月内的平均任务获胜次数,并通过实验以确定最佳数值,从而完成整个推荐流程。
进一步地,所述的长短期记忆神经网络由输入层、隐藏层和输出层组成,是一种适用于处理时序数据的神经网络模型,它能够充分利用数据的顺序信息,引入记忆单元来保存历史信息、长期状态,使用门控来控制信息的流动,从而可以用来根据开发者的历史任务偏好来预测其当前偏好。
进一步地,所述的注意力机制是对LSTM的一种改进,通过对LSTM的每一个隐藏层状态计算出一个合理的权重,评估出历史任务偏好对当前偏好的影响,并通过对所有隐藏层状态进行加权组合,来生成更准确的开发者动态偏好特征,从而降低开发者偶然偏好的影响。
进一步地,所述的XGBoost模型是一种提升方法,其高效地实现了梯度提升决策树(GBDT)算法并进行了目标函数的改写和引入了正则化项,其中GBDT主要由提升树(Boosting Tree)和梯度提升(Gradient Boosting)两部分组成,适用于回归预测问题。
进一步地,所述的差分进化算法是一种基于群体差异的随机搜索优化算法,对非线性不可微连续空间函数进行优化,具有向种群个体学习的能力,由于XGBoost模型存在大量的参数,如基分类器个数、学习率、最大树深、最小叶子权重等等,寻找最优的模型参数对任务推荐效果具有重要作用,差分进化算法具有良好的全局搜索能力,能够找出全局最优的XGBoost模型参数。
本发明通过对开发者的特征进行建模,分别利用基于注意力机制的长短期记忆神经网络和基于差分进化算法改进的XGBoost模型来对待推荐任务进行筛选,从而实现群智化软件任务的推荐。具体来说,本发明拟考虑开发者的两种特征,分别是开发者的偏好和开发者的竞争力。具体的推荐流程如下,首先,针对开发者所参加的历史任务进行特征提取,获取其偏好信息和竞争力信息。接着,对于开发者的偏好信息,将其按照时间进行划分,得到多个历史任务偏好序列,并用基于注意力机制的长短期记忆神经网络进行训练,预测出开发者的当前偏好,然后将开发者的偏好与所有待推荐的任务进行相似性对比,筛选出前N个感兴趣的任务。其次,对于开发者的历史任务竞争力信息,通过基于差分进化算法改进的XGBoost模型对开发者在一项任务上的预测评分进行训练。最后,针对筛选出的前N个感兴趣的任务,输入训练好的预测评分模型来得到其评分,并将预测评分最高的K个任务推荐给开发者,从而完成整个推荐流程。
相对于现有技术,本发明的优点如下:本发明能够有效地给群智化软件开发者推荐合适的软件开发任务,相比于以往的一些推荐方法,该方法针对的是竞争性质的复杂软件开发任务,考虑到了开发者偏好的动态变化特点以及他所处的竞争环境,能够更加精确地捕捉到开发者的个性特征,保证了所推荐任务既能满足开发者的兴趣偏好,又能符合开发者的能力,提高了推荐的准确性,使得开发者能够高质量地完成任务并获得理想的报酬。因此,本发明有助于减少开发者挑选任务的时间,提高群智化软件开发的质量和效率,提升开发者参与任务的积极性,最终使得整个群智化软件开发平台能够高效有序地运转,吸引越来越多的开发者,充分显示出群智化软件开发的优越性。
附图说明
图1是群智化软件任务推荐流程图;
图2是基于注意力机制的长短期记忆神经网络示意图;
图3是长短期记忆神经网络的记忆单元结构图;
图4是GBDT的算法流程;
图5是基于差分进化算法改进的XGBoost模型参数寻优流程图。
具体实施方式
实施例:参见图1-图5,一种基于开发者特征的群智化软件任务推荐方法,所述方法包括如下步骤:
(1)、分析群智化软件开发者的历史数据,针对开发者所参加的历史任务进行特征提取,获取其两种特征,分别为开发者的偏好信息和竞争力信息;
(2)、对于开发者的历史任务偏好信息,将其按照时间进行划分,得到多个历史任务偏好序列,并用基于注意力机制的长短期记忆神经网络进行训练,预测出开发者的当前偏好;
(3)、将开发者的偏好与所有待推荐的任务通过距离公式进行相似性对比,筛选出前N个感兴趣的任务,其中N主要取决于所有开发者在一个月内的平均报名任务数,并通过实验以确定最佳数值;
(4)、对于开发者的历史任务竞争力信息,通过基于差分进化算法改进的XGBoost模型对开发者在一项任务上的预测评分进行训练;
(5)、针对筛选出的前N个感兴趣的任务,输入训练好的预测评分模型来得到其评分,并将预测评分最高的K个任务推荐给开发者,其中K主要取决于所有开发者在一个月内的平均任务获胜次数,并通过实验以确定最佳数值,从而完成整个推荐流程。
进一步地,所述的长短期记忆神经网络由输入层、隐藏层和输出层组成,是一种适用于处理时序数据的神经网络模型,它能够充分利用数据的顺序信息,引入记忆单元来保存历史信息、长期状态,使用门控来控制信息的流动,从而可以用来根据开发者的历史任务偏好来预测其当前偏好。
进一步地,所述的注意力机制是对LSTM的一种改进,通过对LSTM的每一个隐藏层状态计算出一个合理的权重,评估出历史任务偏好对当前偏好的影响,并通过对所有隐藏层状态进行加权组合,来生成更准确的开发者动态偏好特征,从而降低开发者偶然偏好的影响。
进一步地,所述的XGBoost模型是一种提升方法,其高效地实现了梯度提升决策树(GBDT)算法并进行了目标函数的改写和引入了正则化项,其中GBDT主要由提升树(Boosting Tree)和梯度提升(Gradient Boosting)两部分组成,适用于回归预测问题。
进一步地,所述的差分进化算法是一种基于群体差异的随机搜索优化算法,对非线性不可微连续空间函数进行优化,具有向种群个体学习的能力,由于XGBoost模型存在大量的参数,如基分类器个数、学习率、最大树深、最小叶子权重等等,寻找最优的模型参数对任务推荐效果具有重要作用,差分进化算法具有良好的全局搜索能力,能够找出全局最优的XGBoost模型参数。
应用实施例:下面结合附图(表)对本发明进行详细说明。
本发明所提出的任务推荐方法是指对于平台中的每一个开发者,根据其任务偏好和竞争力,推荐一组适合其完成的任务{T1,T2,…,TK},其中K代表推荐的任务的数量,这K个任务是所有待推荐任务中与开发者的偏好最匹配并且预测评分最高的Top-K任务,具体的推荐流程如图1所示。
首先,我们需要先对开发者的两种特征即偏好信息和竞争力信息分别进行特征提取,针对两者的定义如下:
定义1(开发者任务偏好)开发者的任务偏好由其所报名过的历史任务信息构成,对于每一个任务,可以用一个五元组来描述,P={Px,Py,Ps,Pc,Pr},其中
·Px代表任务的描述文本。
·Py代表任务的类型。
·Ps代表任务所需的技能集合,Ps={Ps1,Ps2,…,Psm},m是所需技能的个数。
·Pc代表任务所需的开发周期。
·Pr代表任务可以获得的报酬。
定义2(开发者任务竞争力)开发者的任务竞争力由其所报名、提交、获胜过的历史任务表现情况、近期任务表现情况以及所参加任务的竞争对手信息构成,对于每一个任务,可以用一个多元组来描述,C={{Ab,As,Aw,Ap,Ar},{Eb,Es,Ew,Er},{On,Oc},G},其中
·{Ab,As,Aw,Ap,Ar}用于表示开发者的能力,其中
·Ab代表与该任务相似的任务报名次数
·As代表与该任务相似的任务提交次数
·Aw代表与该任务相似的任务获胜次数
·Ap代表与该任务相似的任务平均得分
·Ar代表与该任务相似的任务平均报酬
·{Eb,Es,Ew,Er}用于表示开发者的精力,其中
·Eb代表近期开发者的任务报名次数
·Es代表近期开发者的任务提交次数
·Ew代表近期开发者的任务获胜次数
·Er代表近期开发者获得的总报酬
·{On,Oc}用于表示同时竞争该任务的竞争对手信息,其中
·On代表该任务的报名总人数
·Oc代表报名者中竞争力排名前3的平均竞争力,由其能力和精力的加权平均获得
·G表示开发者在该任务上获得的评分
对于上述的两种特征,本发明采用向量空间模型来进行建模,对于文本类型的特征,我们采用TF-IDF方法来建模向量,对于数字型的特征,我们基于相应特征的最大最小值将其归一化成0-1之间的数字。最终对于开发者的每一项任务,我们可以得到两个多维向量,和分别代表开发者的任务偏好和任务竞争力。
接着,对于开发者的偏好信息,我们将其按照时间先后顺序分为n个大小相等的任务集合,每一个任务集合中的任务的偏好信息按时间先后顺序组成开发者任务偏好序列,随后我们采用基于注意力机制的长短期记忆神经网络来对开发者任务偏好序列进行训练,如图2所示,从而预测出开发者当前的偏好。
长短期记忆神经网络模型(LSTM)是循环神经网络模型(RNN)的改进,是一种适用于处理时序数据的神经网络模型,它能够充分利用数据的顺序信息。LSTM由输入层、隐藏层和输出层组成,当前时刻的输出不仅仅与当前输入有关,还与上一时刻隐藏层的输出有关。ht表示LSTM在时间步t的隐藏状态,由当前输入xt和前一个隐藏状态ht-1共同决定。LSTM模型在RNN的基础上引入了记忆单元来保存历史信息、长期状态,使用门控来控制信息的流动从而解决RNN原本存在的梯度消失和梯度爆炸的问题。如图3所示为LSTM的记忆单元结构图。
为了更加准确地获取开发者的动态偏好,我们在LSTM上还采用了注意力机制。注意力机制模拟人脑注意力的特点,核心思想是:对重要的内容分配较多的注意力,对其他部分分配较少的注意力。注意力机制已在很多领域得到应用,包括图像标注、文本分类、机器翻译等。注意力机制实际上就是对输入的每一个状态进行自动加权求和,其主要用于处理这样的问题:对于T个d维的特征向量ht(t=1,2,…,T),需要整合这T个特征向量包含的信息,并从中提取一个d维的新特征向量h*。我们通过对LSTM的每一个隐层状态计算出一个合理的权重at,评估其对当前偏好的影响,并通过对所有隐层状态进行加权组合,从而对用户近期的每一个时刻的偏好“去伪存真”,使LSTM更专注于找到近期行为中与当前时刻动态偏好显著相关的有用信息,降低用户偶然兴趣偏好的干扰,来生成更准确的动态偏好特征。
在获取到开发者当前的动态偏好后,我们将开发者的偏好与所有待推荐的任务进行相似性对比,筛选出前N个感兴趣的任务。待推荐的任务定义如下:
定义3(待推荐的任务)假设用T代表平台中所有未截止的任务所组成的集合,则一个待推荐的任务Ti∈T采用一个六元组来描述,Ti={Tx,Ty,Ts,Tc,Tr,Tb},其中
·Tx是对任务的一段描述文本。
·Ty代表任务的类型。
·Ts代表任务所需的技能集合,Ts={Ts1,Ts2,…,Tsm},m是所需技能的个数。
·Tc代表完成任务所需的开发周期。
·Tr代表完成任务可以获得的报酬。
·Tb代表已经报名参加该任务的开发者信息。
距离越小,代表相似性越高,相似性排在前N的任务即为筛选出的前N个感兴趣的任务。
然后,对于开发者的竞争力信息,我们通过基于差分进化算法改进的XGBoost模型训练开发者在一项任务上的预测评分。
XGBoost由陈天奇等人在2014年提出,高效地实现了GBDT算法并进行了算法和工程上的许多改进,性能得到了很大的提升。梯度提升决策树(GBDT)主要由提升树(BoostingTree)和梯度提升(Gradient Boosting)两部分组成。提升树是以决策树为基函数的提升方法,采用加法模型(即基函数的线性组合)与前向分布算法作为提升方法。对于分类问题,决策树采用的是二叉分类树,对于回归问题,决策树采用的是二叉回归树。本文解决的评分预测是回归问题,因此采用的是二叉回归树。由提升树和梯度提升结合得到GBDT的算法流程如图4所示。相比于GBDT算法,XGBoost在其基础上进行了目标函数的改写和引入了正则化项。正则化项定义为:
其中J是叶子结点总数,r代表控制叶子数量权重的参数,wj为第j个叶子的权重,fm是树的模型函数。正则化项用以权衡目标函数的下降和模型的复杂程度,避免过拟合。
目标函数改写为:
其中Fm-1(xi)表示现有的m-1棵树的最优解,c是常数。
XGBoost的优点很多,包括在损失函数里加入了正则化项,降低了模型的方差,使得学习出的模型更加简单,防止过拟合;可以处理稀疏、缺失数据,可以自动学习出缺失值的处理策略;支持特征粒度上的并行化处理。
虽然XGBoost的优点很多,但是它拥有的参数很多,参数的选取对于该模型的精度和性能有较大影响,因此本文考虑利用差分进化算法来找到最优的模型参数。差分进化算法是一种基于群体差异的随机搜索优化算法,其基本思想是:从当前种群中提取出搜索步长以及方向信息,同时对种群进行交叉和变异以获取新的个体,然后在原个体和新个体之间进行选择,将更优的个体保存到下一代。它对非线性不可微连续空间函数进行优化,具有向种群个体学习的能力,其比遗传算法、粒子群算法等其它进化算法具有更优越的性能。其主要过程包括初始化、变异操作、交叉操作和选择操作等。由于XGBoost模型存在大量的参数,如基分类器个数、学习率、最大树深、最小叶子权重等等,寻找最优的模型参数对任务推荐效果具有重要作用,差分进化算法具有良好的全局搜索能力,能够找出全局最优的XGBoost参数。基于差分进化算法改进的XGBoost模型参数寻优流程如图5所示。
最后,针对筛选出的前N个感兴趣的任务,输入训练好的XGBoost模型来得到其预测评分。将评分最高的K个任务推荐给开发者。
通过以上描述可以看出,本发明所提出的基于开发者特征的群智化软件任务推荐方法,通过基于注意力机制的长短期记忆神经网络来预测出用户当前的动态偏好,并使用基于差分进化算法改进的XGBoost模型来预测开发者在任务上的评分,既保证了推荐的任务能够符合当前开发者的偏好,又同时确保了开发者在该项任务上具有较高的完成及获胜可能性,极大地提升了任务推荐的准确性。由此可见,这一发明所提出的方法非常适用于群智化软件任务推荐。
需要说明的是上述实施例仅仅是本发明的较佳实施例,并没有用来限定本发明的保护范围,在上述技术方案的基础上做出的等同替换或者替代均属于本发明的保护范围。
Claims (5)
1.一种基于开发者特征的群智化软件任务推荐方法,其特征在于,所述方法包括如下步骤:
(1)、分析群智化软件开发者的历史数据,针对开发者所参加的历史任务进行特征提取,获取其两种特征,分别为开发者的偏好信息和竞争力信息;
(2)、对于开发者的历史任务偏好信息,将其按照时间进行划分,得到多个历史任务偏好序列,并用基于注意力机制的长短期记忆神经网络进行训练,预测出开发者的当前偏好;
(3)、将开发者的偏好与所有待推荐的任务通过距离公式进行相似性对比,筛选出前N个感兴趣的任务,其中N主要取决于所有开发者在一个月内的平均报名任务数,并通过实验以确定最佳数值;
(4)、对于开发者的历史任务竞争力信息,通过基于差分进化算法改进的XGBoost模型对开发者在一项任务上的预测评分进行训练;
(5)、针对筛选出的前N个感兴趣的任务,输入训练好的预测评分模型来得到其评分,并将预测评分最高的K个任务推荐给开发者,其中K主要取决于所有开发者在一个月内的平均任务获胜次数,并通过实验以确定最佳数值,从而完成整个推荐流程。
2.根据权利要求1所述的一种基于开发者特征的群智化软件任务推荐方法,其特征在于,所述的长短期记忆神经网络由输入层、隐藏层和输出层组成,是一种适用于处理时序数据的神经网络模型,它能够充分利用数据的顺序信息,引入记忆单元来保存历史信息、长期状态,使用门控来控制信息的流动,从而可以用来根据开发者的历史任务偏好来预测其当前偏好。
3.根据权利要求1所述的一种基于开发者特征的群智化软件任务推荐方法,其特征在于,所述的注意力机制是对LSTM的一种改进,通过对LSTM的每一个隐藏层状态计算出一个合理的权重,评估出历史任务偏好对当前偏好的影响,并通过对所有隐藏层状态进行加权组合,来生成更准确的开发者动态偏好特征,从而降低开发者偶然偏好的影响。
4.根据权利要求1所述的一种基于开发者特征的群智化软件任务推荐方法,其特征在于:所述的XGBoost模型是一种提升模型,采用二叉回归树作为基分类器,损失函数取决于开发者的历史任务评分与预测评分的差值,并在目标函数中引入了正则化项,采用加法模型(即基分类器的线性组合)与前向分布算法作为提升方法,适用于回归预测问题,能够有效预测开发者在任务上的评分。
5.根据权利要求1所述的一种基于开发者特征的群智化软件任务推荐方法,其特征在于:所述的差分进化算法是一种基于群体差异的随机搜索优化算法,通过将XGBoost模型的损失函数作为目标函数,并将XGBoost模型的参数包括基分类器个数、学习率、最大树深、最小叶子权重等编码为染色体,通过初始化种群、交叉、变异、选择等操作获得最优的个体,从而找出全局最优的XGBoost参数,以获得最佳的推荐效果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911386686.1A CN111061959B (zh) | 2019-12-29 | 2019-12-29 | 一种基于开发者特征的群智化软件任务推荐方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911386686.1A CN111061959B (zh) | 2019-12-29 | 2019-12-29 | 一种基于开发者特征的群智化软件任务推荐方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111061959A true CN111061959A (zh) | 2020-04-24 |
CN111061959B CN111061959B (zh) | 2024-03-19 |
Family
ID=70303232
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911386686.1A Active CN111061959B (zh) | 2019-12-29 | 2019-12-29 | 一种基于开发者特征的群智化软件任务推荐方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111061959B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112149865A (zh) * | 2020-08-14 | 2020-12-29 | 杭州云萃光电技术有限公司 | 一种教室灯照明功率预测方法 |
CN112288306A (zh) * | 2020-11-07 | 2021-01-29 | 西北工业大学 | 一种基于xgboost的移动应用众包测试任务推荐方法 |
CN112988135A (zh) * | 2021-05-20 | 2021-06-18 | 中国人民解放军国防科技大学 | 面向开源软件的任务单元推荐方法、装置和计算机设备 |
CN113792189A (zh) * | 2021-09-30 | 2021-12-14 | 中国人民解放军国防科技大学 | 群智软件开发贡献效率评估方法、装置、设备及介质 |
CN116821522A (zh) * | 2023-08-30 | 2023-09-29 | 暨南大学 | 一种基于群组的合作性群智感知任务推荐方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108647216A (zh) * | 2017-03-16 | 2018-10-12 | 上海交通大学 | 基于开发人员社交网络的软件众包任务推荐系统及方法 |
CN109032591A (zh) * | 2018-06-21 | 2018-12-18 | 北京航空航天大学 | 一种基于神经网络的众包软件开发者推荐方法 |
-
2019
- 2019-12-29 CN CN201911386686.1A patent/CN111061959B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108647216A (zh) * | 2017-03-16 | 2018-10-12 | 上海交通大学 | 基于开发人员社交网络的软件众包任务推荐系统及方法 |
CN109032591A (zh) * | 2018-06-21 | 2018-12-18 | 北京航空航天大学 | 一种基于神经网络的众包软件开发者推荐方法 |
Non-Patent Citations (2)
Title |
---|
杨习辉等: "一种群体软件开发中的项目推荐方法" * |
谢新强等: "一种多特征融合的软件开发者推荐" * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112149865A (zh) * | 2020-08-14 | 2020-12-29 | 杭州云萃光电技术有限公司 | 一种教室灯照明功率预测方法 |
CN112149865B (zh) * | 2020-08-14 | 2022-11-18 | 杭州云萃光电技术有限公司 | 一种教室灯照明功率预测方法 |
CN112288306A (zh) * | 2020-11-07 | 2021-01-29 | 西北工业大学 | 一种基于xgboost的移动应用众包测试任务推荐方法 |
CN112988135A (zh) * | 2021-05-20 | 2021-06-18 | 中国人民解放军国防科技大学 | 面向开源软件的任务单元推荐方法、装置和计算机设备 |
CN112988135B (zh) * | 2021-05-20 | 2021-07-27 | 中国人民解放军国防科技大学 | 面向开源软件的任务单元推荐方法、装置和计算机设备 |
CN113792189A (zh) * | 2021-09-30 | 2021-12-14 | 中国人民解放军国防科技大学 | 群智软件开发贡献效率评估方法、装置、设备及介质 |
CN113792189B (zh) * | 2021-09-30 | 2024-05-14 | 中国人民解放军国防科技大学 | 群智软件开发贡献效率评估方法、装置、设备及介质 |
CN116821522A (zh) * | 2023-08-30 | 2023-09-29 | 暨南大学 | 一种基于群组的合作性群智感知任务推荐方法及系统 |
CN116821522B (zh) * | 2023-08-30 | 2023-12-01 | 暨南大学 | 一种基于群组的合作性群智感知任务推荐方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111061959B (zh) | 2024-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111061959A (zh) | 一种基于开发者特征的群智化软件任务推荐方法 | |
CN111291266B (zh) | 基于人工智能的推荐方法、装置、电子设备及存储介质 | |
CN112581191B (zh) | 行为预测模型的训练方法及装置 | |
Han et al. | A survey on metaheuristic optimization for random single-hidden layer feedforward neural network | |
Kuo et al. | Integration of particle swarm optimization and genetic algorithm for dynamic clustering | |
Sohn et al. | Decision tree based on data envelopment analysis for effective technology commercialization | |
CN108595533B (zh) | 一种基于协同过滤的物品推荐方法、存储介质及服务器 | |
CN111400603A (zh) | 一种信息推送方法、装置、设备及计算机可读存储介质 | |
CN111242310A (zh) | 特征有效性评估方法、装置、电子设备及存储介质 | |
CN111105045A (zh) | 一种基于改进的蝗虫优化算法构建预测模型的方法 | |
CN115186097A (zh) | 一种基于知识图谱和强化学习的交互式推荐方法 | |
Wang et al. | The monkeytyping solution to the youtube-8m video understanding challenge | |
CN110852390A (zh) | 一种基于校园行为序列的学生成绩分类预测方法及系统 | |
CN115115389A (zh) | 一种基于价值细分和集成预测的快递客户流失预测方法 | |
CN112256739A (zh) | 一种基于多臂赌博机的动态流大数据中数据项筛选方法 | |
Zhang et al. | Accelerating the deep reinforcement learning with neural network compression | |
CN115510322A (zh) | 一种基于深度学习的多目标优化推荐方法 | |
Jin et al. | An intelligent scheduling algorithm for resource management of cloud platform | |
CN117408735A (zh) | 一种基于物联网的客户管理方法及系统 | |
Basaran et al. | A multi-criteria decision making to rank android based mobile applications for mathematics | |
CN108053418A (zh) | 一种动物背景建模方法及装置 | |
Matijaš | Electric load forecasting using multivariate meta-learning | |
Calegari et al. | Human computation vs. machine learning: an experimental comparison for image classification | |
CN115203568A (zh) | 一种基于深度学习模型的内容推荐方法、相关装置及设备 | |
CN108549979B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |