CN111523037A - 一种开源软件开发中Pull Request的评审者推荐方法 - Google Patents

一种开源软件开发中Pull Request的评审者推荐方法 Download PDF

Info

Publication number
CN111523037A
CN111523037A CN202010338549.7A CN202010338549A CN111523037A CN 111523037 A CN111523037 A CN 111523037A CN 202010338549 A CN202010338549 A CN 202010338549A CN 111523037 A CN111523037 A CN 111523037A
Authority
CN
China
Prior art keywords
pull request
reviewer
similarity
new
formula
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
CN202010338549.7A
Other languages
English (en)
Other versions
CN111523037B (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.)
University of Shanghai for Science and Technology
Original Assignee
University of Shanghai for Science and Technology
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 University of Shanghai for Science and Technology filed Critical University of Shanghai for Science and Technology
Priority to CN202010338549.7A priority Critical patent/CN111523037B/zh
Publication of CN111523037A publication Critical patent/CN111523037A/zh
Application granted granted Critical
Publication of CN111523037B publication Critical patent/CN111523037B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9536Search customisation based on social or collaborative filtering

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种开源软件开发中Pull Request的评审者推荐方法,该推荐方法包括以下步骤:步骤1:提取计算Pull Request与评审者的相关性因素;步骤2:基于历史数据利用贝叶斯个性化排序模型优化确定每个评审者于步骤1中的各个相关性因素的权重;步骤3:对于当前Pull Request及每个评审者,利用各个相关性因素基于各自权重的得分进行加权,按照加权后的分数排序并进行推荐。该方法考虑了评审者与Pull Request内容的兴趣相关性、活跃度、社交关系影响程度及文件路径相关性四个方面的因素,通过贝叶斯个性化排序方法对四方面因素进行个性化加权,从而为Pull Request推荐合适的评审者。

Description

一种开源软件开发中Pull Request的评审者推荐方法
技术领域
本发明涉及计算机技术领域,尤其是涉及一种开源软件开发中Pull Request的评审者推荐方法。
背景技术
Pull Request是开源软件社区大部分开发者提供代码的主要方式,为了保证软件项目的质量,对Pull Request评审是开源软件开发中必不可少的一部分。在Pull Request评审中,自动推荐合适的代码评审人员,能够有效为代码评审降低成本和节约时间。
Pull Request的评审者推荐受到了广泛的关注。目前的方法以粗粒度的模式对代码评审人员进行推荐。例如,基于文件路径相似度、基于社交关系、基于信息检索及基于活跃度等进行评审者推荐。这些方法归根到底,是以不同方面的相似度作为推荐的最终条件,但并没有考虑到不同候选评审用户在选择Pull Request进行评审时有不同的选择偏好。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种开源软件开发中Pull Request的评审者推荐方法,在实际应用中,将相关因素与评审者本身的选择偏好相结合,有助于提高推荐效果,
本发明的目的可以通过以下技术方案来实现:
一种开源软件开发中Pull Request的评审者推荐方法,该推荐方法包括以下步骤:
步骤1:提取计算Pull Request与评审者的相关性因素;
步骤2:基于历史数据利用贝叶斯个性化排序模型优化确定每个评审者于步骤1中的各个相关性因素的权重;
步骤3:对于当前Pull Request及每个评审者,利用各个相关性因素基于各自权重的得分进行加权,按照加权后的分数排序并进行推荐。
进一步地,所述的步骤1包括以下分步骤:
步骤101:提取计算Pull Request的内容与评审者的兴趣相关性;
步骤102:提取计算评审者的当前活跃度;
步骤103:提取计算开发人员与Pull Request提交人员的社交相关性;
步骤104:提取计算当前Pull Request所涉及的文件路径与开发人员之前评审过的Pull Request的文件路径的相似性。
进一步地,所述的步骤101中的Pull Request的内容与评审者的兴趣相关性,其计算公式为:
Figure BDA0002467651840000021
式中,SimCont(Revieweri,pnew)为Pull Request的内容与评审者的兴趣相关性,PRi为第i个评审者Revieweri以前审核过的Pull Request集合,similarity(pnew,p')为开发人员之前评审过的Pull Request与目标Pull Request之间的相似性。
进一步地,所述的开发人员之前评审过的Pull Request与目标Pull Request之间的相似性,其计算公式为:
Figure BDA0002467651840000022
式中,vnew和v'分别为pnew和p'各自对应的向量,pnew和p'分别为目标Pull Request和历史记录中的Pull Request。
进一步地,所述的步骤102中的评审者的当前活跃度,其计算公式为:
Figure BDA0002467651840000023
式中,Act(Revieweri,pnew)为评审者的当前活跃度,ComSi为第i个评审者Revieweri各个Pull Request中的所有评论集合,γ为时间窗口的长度,λ为时间衰减因子,
Figure BDA0002467651840000024
为新Pull Request的创建时间,
Figure BDA0002467651840000025
为第i个评审者Revieweri的某条评论Cj的创建时间。
进一步地,所述的步骤103中的开发人员与Pull Request提交人员的社交相关性,其计算公式为:
Figure BDA0002467651840000031
式中,PRsubmitter为贡献者submitter提交且处于新Pull Request之前的所有PullRequest集合,nij为第i个评审者Revieweri在Pull Request pj中留下的第nij条评论,β为调节参数,SocRel(Revieweri,pnew)为开发人员与Pull Request提交人员的社交相关性。
进一步地,所述的步骤104中的当前Pull Request所涉及的文件路径与开发人员之前评审过的Pull Request的文件路径的相似性,其计算公式为:
Figure BDA0002467651840000032
式中,Fp'为历史记录中的Pull Request更改的相关文件,
Figure BDA0002467651840000033
为目标PullRequest更改的相关文件,similarity(f,f')为历史记录中的Pull Request和目标PullRequest各自更改的相关文件之间相似度,FileRel(Revieweri,pnew)为当前Pull Request所涉及的文件路径与开发人员之前评审过的Pull Request的文件路径的相似性。
进一步地,所述的历史记录中的Pull Request和目标Pull Request各自更改的相关文件之间相似度,其计算公式为:
Figure BDA0002467651840000034
式中,commonPath(f,f')为两个文件路径中的公共目录的数量,max(Length(f),Length(f'))为两个文件的长度的最大值。
进一步地,所述的步骤2中利用贝叶斯个性化排序模型优化确定每个评审者于步骤1中的各个相关性因素的权重,该过程中对应的迭代求解的计算公式为:
Figure BDA0002467651840000035
式中,W'和W分别为迭代后和迭代前的用户的偏好用权重矩阵,α和λ为超参数,
Figure BDA0002467651840000036
Figure BDA0002467651840000037
分别为第u个用户Revieweru对第i或第j个Pull Request的评审倾向得分,Wu为偏好用权重矩阵第u列元素构成的列向量,
Figure BDA0002467651840000038
Figure BDA0002467651840000039
分别为第u个用户Revieweru与第i或第j个PullRequest之间的相关性用词向量的转置矩阵。
进一步地,所述的步骤3中的加权后的分数,即每个评审者对当前目标PullRequest的得分,其计算公式为:
Figure BDA0002467651840000041
式中,Supred为每个评审者对当前目标Pull Request的得分,
Figure BDA0002467651840000042
为第u个用户Revieweru与第p个Pull Request之间的相关性用词向量的转置矩阵。
与现有技术相比,本发明具有以下优点:
(1)本发明方法作为一种基于贝叶斯个性化排序方法,对评审者与Pull Request内容的兴趣相关性、活跃度、社交关系影响程度及文件路径相关性四个方面的因素的权重进行学习,从而能够为每一个Pull Request推荐合适的评审人员,推荐更加精准。
附图说明
图1为本发明的方法流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
具体实施例;
(1)Pull Request与评审者的相关性因素度量
第一步,Pull Request的内容与评审者的兴趣相关性提取。将Pull Request历史数据作为输入,并提取出每个Pull Request的描述及标题并形成语料库,然后使用TF-IDF算法将Pull Request向量化处理,其中TF-IDF算法如下所示:
Figure BDA0002467651840000043
式中,t是某个Pull Request中抽取的技术术语,pr为某个Pull Request,corpusPR是由历史数据的Pull Request的描述及标题形成的语料库,nt为技术术语t在pr中出现的总次数,Npr为技术术语在语料库中出现的总的次数。
利用余弦相似度衡量开发人员之前评审过的Pull Request与目标Pull Request之间的相似性公式如下所示:
Figure BDA0002467651840000051
式中,vnew和v分别为pnew和p各自对应的向量,pnew和p′分别为目标Pull Request和历史记录中的Pull Request。
则Pull Request的内容与评审者的兴趣相关性,其计算公式为:
Figure BDA0002467651840000052
式中,SimCont(Revieweri,pnew)为Pull Request的内容与评审者的兴趣相关性,PRi为第i个评审者Revieweri以前审核过的Pull Request集合,similarity(pnew,p')为开发人员之前评审过的Pull Request与目标Pull Request之间的相似性。
第二步,评审者活跃度提取。据调查显示,候选评审者的积极性会随时间的变化而变化,某些代码评审者可能不活跃或短期时间内不活跃,最近活跃的代码评审者倾向于对新的Pull Request做出评论。本发明方法中使用最近的评论来衡量用户的活跃度,如下所示:
Figure BDA0002467651840000053
式中,Act(Revieweri,pnew)为评审者的当前活跃度,ComSi为第i个评审者Revieweri各个Pull Request中的所有评论集合,γ为时间窗口的长度,λ为时间衰减因子,
Figure BDA0002467651840000054
为新Pull Request的创建时间,
Figure BDA0002467651840000055
为第i个评审者Revieweri的某条评论Cj的创建时间。
第三步,社交关系影响程度的提取。通过社交关系可以快速获取具有参考价值的候选代码评审者。开发人员之间的社交关系紧密程度可直接通过评审者和贡献者之间的评论关系来体现,其社交关系影响程度如下所示:
Figure BDA0002467651840000056
式中,PRsubmitter为贡献者submitter提交且处于新Pull Request之前的所有PullRequest集合,nij为第i个评审者Revieweri在Pull Request pj中留下的第nij条评论,β为调节参数,经实验将值设置为0.8最为合适,SocRel(Revieweri,pnew)为开发人员与PullRequest提交人员的社交相关性。
第四步,Pull Request文件路径相关性。基于同一个目录下的文件密切相关且代码功能相关的思想,计算用户评审过的Pull Request与新Pull Request的文件路径相关性如下:
Figure BDA0002467651840000061
式中,Fp'为历史记录中的Pull Request更改的相关文件,
Figure BDA0002467651840000062
为目标PullRequest更改的相关文件,similarity(f,f')为历史记录中的Pull Request和目标PullRequest各自更改的相关文件之间相似度,FileRel(Revieweri,pnew)为当前Pull Request所涉及的文件路径与开发人员之前评审过的Pull Request的文件路径的相似性。
历史记录中的Pull Request和目标Pull Request各自更改的相关文件之间相似度,具体如下式所示:
Figure BDA0002467651840000063
式中,commonPath(f,f')为两个文件路径中的公共目录的数量,max(Length(f),Length(f'))为两个文件的长度的最大值,其中,两个文件路径中的公共目录的数量,具体计算方法如下:首先,根据文件路径,将路径字符串其目录分隔符进行切分,得到该文件所处位置的目录层次列表;然后比较两文件的目录前缀,取重合的公共目录数为得到的结果。例如,对于某安卓项目,有以下两个文件,分别为/src/camera/photo/a.java和/src/camera/video/a.java,则可得两者公共祖先目录为/src/camera文件夹,因而两路径的公共目录数量为2。
对于用户集U和Pull Request集PR,其中的第u个用户Revieweru与某一PullRequest p,将Revieweru与p之间的相关性用向量spu表示,由上文中的Pull Request的文本特征相似度、评审者活跃度、社交关系影响程度及文件路径相似性值组成,具体表达式如下所示:
Figure BDA0002467651840000064
(2)提取评审者的选择偏好
评审者选择偏好模型为:
Figure BDA0002467651840000071
式中,将用户的偏好用权重矩阵记作W,其维度为4×||U||,4代表评审者特征维数。Wu为偏好用权重矩阵第u列元素构成的列向量(u=1,2,3,…,||U||),表示Revieweru在本特征相似度、评审者活跃度、社交关系影响程度及文件路径相似性值四个维度上的权重,具体表示如下所示:
Figure BDA0002467651840000072
其中,代码评审者的偏好权重,属于评审者的自身属性,不会因Pull Request的更改发生相应的变化。
评审者的偏好信息可从评审者是否参与评审的行为直接体现。因此,在求解用户偏好向量前,需对评审者的行为进行记录,用来作为求解模型参数。具体记录方式为当评审者参与过目标Pull Request的评审,记为数字1,反之记为0,整个记录用矩阵A表示,该矩阵是一个||PR||×||U||的二维矩阵,其值由0、1组成。使用变量S代表评审者对不同Pull请求之间的关系矩阵,其维度为||PR||×||U||×4,具体表达式形式如下所示:
Figure BDA0002467651840000073
其中,各个元素代表Pull请求和用户Revieweru之间的特征向量,定义于spu
Figure BDA0002467651840000074
是衡量代码评审者的得分排序矩阵,参与过评审的评审者得分越高,反之越低,具体形式表示如下:
Figure BDA0002467651840000081
其中,各个元素代表用户Revieweru对Pull请求的评审得分,其计算可以由下式定义:
Figure BDA0002467651840000082
针对某个特定的Pull Request,需满足评审者分数高于未评审者分数,这里借助贝叶斯个性化排序思想,从已记录的矩阵A中将评审者对Pull Request的评论进行标记,如果评审者Revieweru同时面对pri和prj时,评论了pri却没有评论prj,则记录一个三元组<u,i,j>,其含义针对评审者Revieweru来说,pri的排序要比prj靠前。如果针对评审者Revieweru,这样的反馈有m组,则可得到m组评审者Revieweru对应的训练样本。
基于最大后验估计P(wu|>u),用>u表示候选代码评审者Revieweru对应的所有PullRequest的全序关系,则优化目标是P((wu|>u)。根据贝叶斯公式可知如下公式:
Figure BDA0002467651840000083
由每个代码评审者的偏好行为相互独立,则对于任意一位代码评审者Revieweru来说,P(>u)对所有的Pull Request一样,则有如下公式:
P(wu|>u)∝P(>u|wu)P(wu)
根据上式可将优化目标转化为两部分。第一部分和样本数据集D有关,第二部分和样本数据集D无关。针对第一部分,根据代码评审者的偏好行为相互独立及同一候选评审者对不同Pull Request的偏序相互独立,可推导如下公式:
Figure BDA0002467651840000084
其中δ(b)公式如下:
Figure BDA0002467651840000085
由排序关系满足的完整性和反对称性,将第一部分优化目标简化为:
Figure BDA0002467651840000086
为进一步优化计算,将优化目标转化为:
Figure BDA0002467651840000091
其中,σ(x)是逻辑回归函数,如果j>ui时,
Figure BDA0002467651840000092
反之i>uj时,
Figure BDA0002467651840000093
这里的
Figure BDA0002467651840000094
Figure BDA0002467651840000095
用来表示候选评审者Revieweru与pri与prj之间的潜在关系,即根据Revieweru对所有Pull Request评审情况,组建所有的偏序对。所以进一步将优化目标转化为:
Figure BDA0002467651840000096
基于贝叶斯假设,可知第二部分P(wu)符合正态分布,其均值为0,协方差矩阵是λWS,
Figure BDA0002467651840000097
是模型中的正则化参数,如下所示:
P(wu)~N(0,λWS)
P(wu)的对数和||wu||2成正比,如下所示:
lnP(wu)=λ||wu||2
最终根据最大对数后验估计函数将优化目标成:
Figure BDA0002467651840000098
将优化目标函数推导之后,使用梯度上升法求解参数,对用户的偏好用权重矩阵求导:
Figure BDA0002467651840000099
由于
Figure BDA00024676518400000910
其中,
Figure BDA00024676518400000911
表示Revieweru针对Pull请求i评分,
Figure BDA00024676518400000912
表示Revieweru针对Pull请求j评分,wu表示Revieweru的权重向量,siu表示Revieweru对Pull Request i之间的关系向量,sju表示Revieweru对Pull Request j之间的关系向量,可以得出:
Figure BDA00024676518400000913
在优化过程中,对偏好用权重矩阵进行随机初始化,并迭代更新模型参数,当偏好用权重矩阵达到收敛状态可得用户的偏好用权重矩阵W,由以上推导可得偏好用权重矩阵参数梯度迭代如下所示:
Figure BDA0002467651840000101
式中,W'和W分别为迭代后和迭代前的用户的偏好用权重矩阵,α和λ为超参数,
Figure BDA0002467651840000102
Figure BDA0002467651840000103
分别为第u个用户Revieweru对第i或第j个Pull Request的评审倾向得分,Wu为偏好用权重矩阵第u列元素构成的列向量,
Figure BDA0002467651840000104
Figure BDA0002467651840000105
分别为第u个用户Revieweru与第i或第j个PullRequest之间的相关性用词向量的转置矩阵。
(3)对当前Pull Request,进行评审者推荐
从训练阶段可得评审者的偏好向量,针对模型预测阶段,本发明方法使用预测阶段的数据集作为模型的输入,从输入的数据集中提取出评审者与目标Pull Request之间的相似向量,则评审者对目标Pull Request的得分为:
Figure BDA0002467651840000106
式中,Supred为每个评审者对当前目标Pull Request的得分,
Figure BDA0002467651840000107
为第u个用户Revieweru与第p个Pull Request之间的相关性用词向量的转置矩阵。
通过对所有的评审者计算该得分,分数越高的评审者越适合作为被推荐人员,最终使用降序排序,取前K名作为推荐候选人选。
综上所述,本发明方法流程如图1所示,包括以下步骤:
步骤1:提取计算Pull Request与评审者的相关性因素;
步骤2:基于历史数据利用贝叶斯个性化排序模型优化确定每个评审者于步骤1中的各个相关性因素的权重;
步骤3:对于当前Pull Request及每个评审者,利用各个相关性因素基于各自权重的得分进行加权,按照加权后的分数排序并进行推荐。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种开源软件开发中Pull Request的评审者推荐方法,其特征在于,该推荐方法包括以下步骤:
步骤1:提取计算Pull Request与评审者的相关性因素;
步骤2:基于历史数据利用贝叶斯个性化排序模型优化确定每个评审者于步骤1中的各个相关性因素的权重;
步骤3:对于当前Pull Request及每个评审者,利用各个相关性因素基于各自权重的得分进行加权,按照加权后的分数排序并进行推荐。
2.根据权利要求1所述的一种开源软件开发中Pull Request的评审者推荐方法,其特征在于,所述的步骤1包括以下分步骤:
步骤101:提取计算Pull Request的内容与评审者的兴趣相关性;
步骤102:提取计算评审者的当前活跃度;
步骤103:提取计算开发人员与Pull Request提交人员的社交相关性;
步骤104:提取计算当前Pull Request所涉及的文件路径与开发人员之前评审过的Pull Request的文件路径的相似性。
3.根据权利要求2所述的一种开源软件开发中Pull Request的评审者推荐方法,其特征在于,所述的步骤101中的Pull Request的内容与评审者的兴趣相关性,其计算公式为:
Figure FDA0002467651830000011
式中,SimCont(Revieweri,pnew)为Pull Request的内容与评审者的兴趣相关性,PRi为第i个评审者Revieweri以前审核过的Pull Request集合,similarity(pnew,p')为开发人员之前评审过的Pull Request与目标Pull Request之间的相似性。
4.根据权利要求3所述的一种开源软件开发中Pull Request的评审者推荐方法,其特征在于,所述的开发人员之前评审过的Pull Request与目标Pull Request之间的相似性,其计算公式为:
Figure FDA0002467651830000012
式中,vnew和v'分别为pnew和p'各自对应的向量,pnew和p'分别为目标Pull Request和历史记录中的Pull Request。
5.根据权利要求2所述的一种开源软件开发中Pull Request的评审者推荐方法,其特征在于,所述的步骤102中的评审者的当前活跃度,其计算公式为:
Figure FDA0002467651830000021
式中,Act(Revieweri,pnew)为评审者的当前活跃度,ComSi为第i个评审者Revieweri各个Pull Request中的所有评论集合,γ为时间窗口的长度,λ为时间衰减因子,
Figure FDA0002467651830000022
为新Pull Request的创建时间,
Figure FDA0002467651830000023
为第i个评审者Revieweri的某条评论Cj的创建时间。
6.根据权利要求2所述的一种开源软件开发中Pull Request的评审者推荐方法,其特征在于,所述的步骤103中的开发人员与Pull Request提交人员的社交相关性,其计算公式为:
Figure FDA0002467651830000024
式中,PRsubmitter为贡献者submitter提交且处于新Pull Request之前的所有PullRequest集合,nij为第i个评审者Revieweri在Pull Request pj中留下的第nij条评论,β为调节参数,SocRel(Revieweri,pnew)为开发人员与Pull Request提交人员的社交相关性。
7.根据权利要求2所述的一种开源软件开发中Pull Request的评审者推荐方法,其特征在于,所述的步骤104中的当前Pull Request所涉及的文件路径与开发人员之前评审过的Pull Request的文件路径的相似性,其计算公式为:
Figure FDA0002467651830000025
式中,Fp'为历史记录中的Pull Request更改的相关文件,
Figure FDA0002467651830000026
为目标Pull Request更改的相关文件,similarity(f,f')为历史记录中的Pull Request和目标Pull Request各自更改的相关文件之间相似度,FileRel(Revieweri,pnew)为当前Pull Request所涉及的文件路径与开发人员之前评审过的Pull Request的文件路径的相似性。
8.根据权利要求7所述的一种开源软件开发中Pull Request的评审者推荐方法,其特征在于,所述的历史记录中的Pull Request和目标Pull Request各自更改的相关文件之间相似度,其计算公式为:
Figure FDA0002467651830000031
式中,commonPath(f,f')为两个文件路径中的公共目录的数量,max(Length(f),Length(f'))为两个文件的长度的最大值。
9.根据权利要求1所述的一种开源软件开发中Pull Request的评审者推荐方法,其特征在于,所述的步骤2中利用贝叶斯个性化排序模型优化确定每个评审者于步骤1中的各个相关性因素的权重,该过程中对应的迭代求解的计算公式为:
Figure FDA0002467651830000032
式中,W'和W分别为迭代后和迭代前的用户的偏好用权重矩阵,α和λ为超参数,
Figure FDA0002467651830000033
Figure FDA0002467651830000034
分别为第u个用户Revieweru对第i或第j个Pull Request的评审倾向得分,Wu为偏好用权重矩阵第u列元素构成的列向量,
Figure FDA0002467651830000035
Figure FDA0002467651830000036
分别为第u个用户Revieweru与第i或第j个PullRequest之间的相关性用词向量的转置矩阵。
10.根据权利要求1所述的一种开源软件开发中Pull Request的评审者推荐方法,其特征在于,所述的步骤3中的加权后的分数,即每个评审者对当前目标Pull Request的得分,其计算公式为:
Figure FDA0002467651830000037
式中,Supred为每个评审者对当前目标Pull Request的得分,
Figure FDA0002467651830000038
为第u个用户Revieweru与第p个Pull Request之间的相关性用词向量的转置矩阵。
CN202010338549.7A 2020-04-26 2020-04-26 一种开源软件开发中Pull Request的评审者推荐方法 Active CN111523037B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010338549.7A CN111523037B (zh) 2020-04-26 2020-04-26 一种开源软件开发中Pull Request的评审者推荐方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010338549.7A CN111523037B (zh) 2020-04-26 2020-04-26 一种开源软件开发中Pull Request的评审者推荐方法

Publications (2)

Publication Number Publication Date
CN111523037A true CN111523037A (zh) 2020-08-11
CN111523037B CN111523037B (zh) 2023-08-04

Family

ID=71904599

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010338549.7A Active CN111523037B (zh) 2020-04-26 2020-04-26 一种开源软件开发中Pull Request的评审者推荐方法

Country Status (1)

Country Link
CN (1) CN111523037B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112347373A (zh) * 2020-11-13 2021-02-09 浙江工业大学 一种基于开源软件邮件网络的角色推荐方法
CN115048526A (zh) * 2022-08-15 2022-09-13 中国人民解放军国防科技大学 基于状态标记的拉请求修订进度跟踪方法、装置和设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050210285A1 (en) * 2004-03-18 2005-09-22 Microsoft Corporation System and method for intelligent recommendation with experts for user trust decisions
CN104182543A (zh) * 2014-09-05 2014-12-03 上海理工大学 基于相似性传播与流行度降维的混合推荐方法
CN105913323A (zh) * 2016-05-06 2016-08-31 浙江大学 一种GitHub开源社区的PullRequest评审者推荐方法
CN106934071A (zh) * 2017-04-27 2017-07-07 北京大学 基于异构信息网络和贝叶斯个性化排序的推荐方法及装置
CN109885776A (zh) * 2019-02-27 2019-06-14 中南大学 开源社区pr评审者可解释推荐模型
CN110474944A (zh) * 2018-05-10 2019-11-19 腾讯科技(深圳)有限公司 网络信息的处理方法、装置及存储介质
CN110609963A (zh) * 2019-08-09 2019-12-24 北京三快在线科技有限公司 推荐榜单生成方法及装置、电子设备及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050210285A1 (en) * 2004-03-18 2005-09-22 Microsoft Corporation System and method for intelligent recommendation with experts for user trust decisions
CN104182543A (zh) * 2014-09-05 2014-12-03 上海理工大学 基于相似性传播与流行度降维的混合推荐方法
CN105913323A (zh) * 2016-05-06 2016-08-31 浙江大学 一种GitHub开源社区的PullRequest评审者推荐方法
CN106934071A (zh) * 2017-04-27 2017-07-07 北京大学 基于异构信息网络和贝叶斯个性化排序的推荐方法及装置
CN110474944A (zh) * 2018-05-10 2019-11-19 腾讯科技(深圳)有限公司 网络信息的处理方法、装置及存储介质
CN109885776A (zh) * 2019-02-27 2019-06-14 中南大学 开源社区pr评审者可解释推荐模型
CN110609963A (zh) * 2019-08-09 2019-12-24 北京三快在线科技有限公司 推荐榜单生成方法及装置、电子设备及存储介质

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
KAI FU ET AL.: ""A Recommendation Algorithm for Collaborative Conceptual Modeling Based on Co-occurrence Graph"", 《APRES 2015》 *
YANG CHENG ET AL.: ""RevRec A two-layer reviewer recommendation algorithm in pull-based development model"", 《JOURNAL OF CENTRAL SOUTH UNIVERSITY》 *
刘玉婷等: ""基于加权贝叶斯的小学英语个性化资源推荐"", 《现代中小学教育》 *
李广丽等: ""混合分层抽样统计与贝叶斯个性化排序的旅游景点推荐模型研究"", 《华中师范大学学报(自然科学版)》 *
赵海燕等: ""开源软件开发中的代码评审"", 《小型微型计算机系统》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112347373A (zh) * 2020-11-13 2021-02-09 浙江工业大学 一种基于开源软件邮件网络的角色推荐方法
CN115048526A (zh) * 2022-08-15 2022-09-13 中国人民解放军国防科技大学 基于状态标记的拉请求修订进度跟踪方法、装置和设备
CN115048526B (zh) * 2022-08-15 2022-10-25 中国人民解放军国防科技大学 基于状态标记的拉请求修订进度跟踪方法、装置和设备

Also Published As

Publication number Publication date
CN111523037B (zh) 2023-08-04

Similar Documents

Publication Publication Date Title
US11699035B2 (en) Generating message effectiveness predictions and insights
US9171078B2 (en) Automatic recommendation of vertical search engines
CN107391687B (zh) 一种面向地方志网站的混合推荐系统
Kim et al. TWILITE: A recommendation system for Twitter using a probabilistic model based on latent Dirichlet allocation
Kawamae Serendipitous recommendations via innovators
US8311957B2 (en) Method and system for developing a classification tool
US8326777B2 (en) Supplementing a trained model using incremental data in making item recommendations
CN110598086B (zh) 文章推荐方法、装置、计算机设备及存储介质
CN110674850A (zh) 一种基于注意力机制的图像描述生成方法
CN107833117B (zh) 一种考虑标签信息的贝叶斯个性化排序推荐方法
Kamehkhosh et al. A Comparison of Frequent Pattern Techniques and a Deep Learning Method for Session-Based Recommendation.
Ziarani et al. Deep neural network approach for a serendipity-oriented recommendation system
Kanani et al. Selecting actions for resource-bounded information extraction using reinforcement learning
CN114358657B (zh) 一种基于模型融合的岗位推荐方法及装置
CN113221019A (zh) 基于即时学习的个性化推荐方法和系统
CN111523037A (zh) 一种开源软件开发中Pull Request的评审者推荐方法
CN112163149B (zh) 推荐消息的方法及装置
Wu et al. Optimization matrix factorization recommendation algorithm based on rating centrality
CN110727872A (zh) 基于隐式反馈进行不明确选择行为挖掘的方法及装置
CN112256965A (zh) 一种基于lambdaMart的神经协同过滤模型推荐方法
JP5481295B2 (ja) オブジェクト推薦装置、オブジェクト推薦方法、オブジェクト推薦プログラムおよびオブジェクト推薦システム
Wang et al. Modeling uncertainty to improve personalized recommendations via Bayesian deep learning
CN113239182A (zh) 一种文章推荐方法、装置、计算机设备及存储介质
Duan et al. A hybrid intelligent service recommendation by latent semantics and explicit ratings
CN115147192A (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