一种基于增强学习的软件众包项目推荐方法及系统,首先收集软件众包平台上的项目数据和开发者数据并为开发者和项目分别建模,得到开发者模型和项目模型;之后分别计算探索策略与利用策略方面的评分并最终相加得到总评分从而确定推荐项目,并在收到开发者对推荐项目的反馈时分别对开发者模型、项目模型以及聚类依次进行更新以提高推荐准确度。本发明专利技术利用增强学习在推荐过程中逐步学习用户偏好并更新项目和开发者模型,有效解决软件众包平台中推荐系统的开发者冷启动问题,显著提高项目推荐的准确度。
Software crowdsourcing project recommendation method and system based on Reinforcement Learning
【技术实现步骤摘要】
基于增强学习的软件众包项目推荐方法及系统
本专利技术涉及的是一种信息处理领域的技术,具体是一种基于增强学习的软件众包项目推荐(ClusterUCBscRec)方法及系统。
技术介绍
近年来,随着软件众包产业的发展,日益增多的个人和企业在软件众包平台中发布需求以及参与项目。软件众包平台中完成一个项目的基本流程是:1)项目发布者将项目发布到软件众包平台中,并指定对应的报酬和完成时间;2)软件众包平台中的开发者可以浏览项目,如果他们感兴趣可以收藏项目,也可以报名加入项目;3)项目发布者从众多的报名人员中选择合适的人员开发该项目;4)开发者成功完成项目后获得对应的报酬。但是在软件众包平台的推荐系统中,一直存在严重的开发者冷启动问题,即平台中的开发者数据总量偏少。因此一些传统推荐方法的训练和预测因缺乏数据无法得到理想的效果。冷启动问题在推荐系统中是一个非常重要且常见的问题。出现在软件众包平台的推荐系统中的冷启动问题可以被细分为项目冷启动问题、开发者冷启动问题以及平台冷启动问题。当一个新项目发布到软件众包平台中时,显然没有任何用户与之有交互记录,此时无法应用传统的基于协同过滤的算法,这是项目冷启动问题;同理,一个新用户到来时,因为开发者与任何项目发生交互,所以传统协同过滤的方法也无法对该开发者进行推荐,这是开发者冷启动问题;推荐系统平台上缺乏开发者和项目间的累计协同数据,也即数据规模无法达到构建模型所需的规模,因此推荐算法模型无法训练,这是平台冷启动问题。
技术实现思路
本专利技术针对现有技术无法解决开发者冷启动问题、对软件众包平台中所需开发者及项目交互记录的总量高,要求项目描述准确反应实际项目内容等过高的要求,提出一种基于增强学习的软件众包项目推荐方法及系统,利用增强学习在推荐过程中逐步学习用户偏好并更新项目和开发者模型,有效解决软件众包平台中推荐系统的开发者冷启动问题,显著提高项目推荐的准确度。本专利技术是通过以下技术方案实现的:本专利技术涉及一种基于增强学习的软件众包项目推荐方法,首先收集软件众包平台上的项目数据和开发者数据并为开发者和项目分别建模,得到开发者模型和项目模型;之后分别计算探索策略与利用策略方面的评分并最终相加得到总评分从而确定推荐项目,并在收到开发者对推荐项目的反馈时分别对开发者模型、项目模型以及聚类依次进行更新以提高推荐准确度。所述的项目数据但不限于包括:项目的基本信息(项目Id,项目类别(Web开发,APP开发),是否需要驻场,开发者类型(个人,团体或企业),预期完成时间,预算,项目发布时间)、项目技术要求(技术方向,技能要求和项目领域)以及项目关键词。所述的开发者数据包括但不限于:开发者基本信息(开发者类型,年龄,薪资,开发者居住地点,学历,能否开票以及性别)、开发者能力(一组技能名称与对应的数值)、兴趣偏好(一组具体偏好的名称与对应的数值)。所述的建模,具体包括:1)利用已有的基于IK的中文分词器对需求文本分词;为了达到更好的分词效果,在分词器中增加软件工程领域的专用词汇和中文停用词。2)从分词结果中抽取关键词:利用已有的TF-IDF方法计算分词结果中每个分词w的TF-IDF值,对关键词按照TF-IDF值从大到小排序,将前50%的分词作为关键词。所述的TF-IDF值是指:每个项目的所有关键词表示为一个词向量,词向量中关键词的值为该关键词的TF-IDF值;所述的TF-IDF方法是指:计算其中:nw,d是在项目描述d中词语w出现的次数,|j:w∈dj|表示包含单词w的项目描述的数量。3)归一化处理:通过特征归一化将数据类型为浮点数或整数的属性值按表1等比例缩放至0-1区间,避免特征属性值大小不一致对模型产生影响;表1特征取值范围4)词向量合并:将项目数据中经过特征归一化得到的项目基本信息与项目技术要求词向量tech以及项目关键词词向量keyword合并为一个词向量v,当techLength为tech的长度,keywordLength为keyword的长度,则v[j]=tech[j],v[techLength+m]=keyword[m],j∈[0,techLength),m∈[0,keywordLength);5)使用PCA算法对步骤4中每个项目推导出的词向量v进行降维处理,得到词向量v’,并设定项目模型中兴趣特征向量技能特征向量6)设定开发者模型中兴趣特征向量技能特征向量为两个向量都为长度为techLength+keywordLength的零向量,对模型进行初始化得到最终的开发者模型。对于有历史交互数据的开发者,通过已初始化的推荐系统按历史交互数据的时间先后模拟推荐以初始化这部分开发者的模型。所述的开发者模型包括:开发者兴趣特征向量和开发者技能特征向量为所述的项目模型包括:项目兴趣特征向量和项目技能特征向量为本专利技术涉及一种实现上述方法的系统,包括:资源建模模块、项目推荐模块和学习反馈模块,其中:资源建模模块生成项目模型与开发者模型,项目推荐模块根据当前项目模型与开发者模型向开发者推荐项目,学习反馈模块根据开发者对推荐项目的反馈更新项目模型与开发者模型以及相应聚类。技术效果与现有技术相比,本专利技术提高了推荐的准确率,在推荐中利用增强学习增加主动探索的因素,有效解决推荐系统的平台冷启动问题,提高项目推荐的准确度。附图说明图1为本专利技术方法架构图;图2为软件众包平台上CTR变化情况的对比示意图。具体实施方式如图1所示,涉及一种基于增强学习的软件众包项目推荐方法,具体步骤包括:1)收集软件众包平台(如解放号平台)上的项目数据和开发者数据并分别建模,得到未全部完成初始化的开发者模型和项目模型。对推荐系统进行初始化:建立聚类集合和项目聚类集合其中:聚类集合包含开发者聚类U,U包含所有开发者,包含项目聚类P,P包含所有项目。2)通过历史交互数据对开发者模型和项目模型进行初始化,即按历史交互数据中各个记录的发生时间依次输入推荐系统的学习反馈部分执行学习反馈的过程,具体包括:2.1)根据历史交互记录确定反馈类型,得到交互有效性数值。反馈类型与交互有效性数值的具体对应关系见表2。表2交互类型与交互有效性关系交互名称交互有效性所属类型正交互/负交互点击/浏览0.1兴趣正交互收藏0.2兴趣正交互报名0.3兴趣正交互报名成功0.5技能正交互签订合同0.5技能正交互验收成功0.8技能正交互被推荐作为开发者0.3技能正交互取消收本文档来自技高网...
【技术保护点】
1.一种基于增强学习的软件众包项目推荐方法,其特征在于,首先收集软件众包平台上的项目数据和开发者数据并为开发者和项目分别建模,得到开发者模型和项目模型;之后分别计算探索策略与利用策略方面的评分并最终相加得到总评分从而确定推荐项目,并在收到开发者对推荐项目的反馈时分别对开发者模型、项目模型以及聚类依次进行更新以提高推荐准确度;/n所述的项目数据包括:项目的基本信息、项目技术要求以及项目关键词;/n所述的开发者数据包括:开发者基本信息、开发者能力、兴趣偏好。/n
【技术特征摘要】
1.一种基于增强学习的软件众包项目推荐方法,其特征在于,首先收集软件众包平台上的项目数据和开发者数据并为开发者和项目分别建模,得到开发者模型和项目模型;之后分别计算探索策略与利用策略方面的评分并最终相加得到总评分从而确定推荐项目,并在收到开发者对推荐项目的反馈时分别对开发者模型、项目模型以及聚类依次进行更新以提高推荐准确度;
所述的项目数据包括:项目的基本信息、项目技术要求以及项目关键词;
所述的开发者数据包括:开发者基本信息、开发者能力、兴趣偏好。
2.根据权利要求1所述的方法,其特征是,所述的建模,具体包括:
1)利用已有的基于IK的中文分词器对需求文本分词;
2)从分词结果中抽取关键词;
3)归一化处理;
4)词向量合并;
5)使用PCA算法对词向量进行降维处理;
6)设定开发者模型并进行初始化。
3.根据权利要求2所述的方法,其特征是,所述的TF-IDF值是指:每个项目的所有关键词表示为一个词向量,词向量中关键词的值为该关键词的TF-IDF值;所述的TF-IDF方法是指:计算其中:nw,d是在项目描述d中词语w出现的次数,|j:w∈dj|表示包含单词w的项目描述的数量。
4.根据权利要求2所述的方法,其特征是,所述的词向量合并是指:将项目数据中经过特征归一化得到的项目基本信息与项目技术要求词向量tech以及项目关键词词向量keyword合并为一个词向量v,当techLength为tech的长度,keywordLength为keyword的长度,则v[j]=tech[j],v[techLength+m]=keyword[m],j∈[0,techLength),m∈[0,keywordLength)。
5.根据权利要求2所述的方法,其特...
【专利技术属性】
技术研发人员:乔润涛,沈备军,
申请(专利权)人:上海交通大学,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。