社会协作编码的广泛采用,越来越多的开发人员参与和协作等平台GitHub通过丰富的社会和技术的关系,形成了一个大型复杂的技术系统。像在其他复杂系统关键节点的功能,有影响力的开发人员和项目通常扮演着重要的角色在推动这一技术系统更优化的软件开发效率较高的国家,这使得它在识别有意义的研究方向有影响力的社会协作编码平台的开发人员和项目。然而,传统的排名方法很少考虑到连续的相互作用和人类动力学的驱动力。在本文中,我们将丛发性相互作用和开发人员和项目之间的由两部分构成的网络结构并提出BurstBiRank模型。首先,burstiness计算每一对开发者和项目之间。其次,加权developer项目由两部分构成的网络构造使用burstiness重量。最后,迭代得分扩散过程应用于这个由两部分构成的网络,最终获得排名得分在静止状态。GitHub上的实际案例研究演示了我们的有效性提出BurstBiRank和传统排名的表现方法。
社会协作编码现在范式成为软件开发人员,和协作的来自世界各地的开发人员可以很容易地进行与社会和技术所提供的功能像GitHub这样的平台。例如,在GitHub,开发人员可以按照彼此形成一个社交网络,跟踪项目的更新的明星,看功能,贡献代码的提交和拉请求的功能,或参与讨论的新功能设计或功能故障修复的问题。丰富的社会和技术开发人员和项目功能连接形成一个大规模的复杂的技术系统。众所周知,关键节点通常扮演着重要的角色在复杂系统的运营管理和优化。同样对于复杂的技术系统,如GitHub,通常由有影响力的开发人员和项目更优化的软件开发效率较高的州。例如,除了直接合作,开发人员总是寻求流行的开发人员和项目提高编程能力和技术选择,进而使合作更有效率。因此,识别影响开发人员和项目具有重要意义的提高开发人员的能力和开源社区的繁荣,也有重要的应用程序服务的建议
现有工作影响分析开源软件社区通常仅仅雇佣了基本性质(
比较两个开发人员的行为。
在本文中,我们针对相互识别在GitHub影响力的开发人员和项目采用的burstiness行为的组合开发人员和developer项目交互的双方的网络拓扑。本文的贡献如下:
我们提出一个burstiness-weighted由两部分构成的网络模型将丛发性行为之间的开发人员和项目网络拓扑。
我们结合diffusion-based排名方法BiRank和burstiness-weighted由两部分构成的网络,提出一种新的排序方法BurstBiRank呼吁在GitHub相互识别影响力的开发人员和项目。
我们提出的模型应用于真实世界的一个GitHub数据集,表明burstiness可以正确测量项目开发商的关注和我们的模型优于基准模型。
本文的其余部分组织如下。部分
影响力节点识别一直是一个热门话题在网络科学研究几十年来,和许多图排名方法提出了不同网络结构的观点或信息的扩散机制在各种各样的复杂网络
许多图排名方法是基于PageRank和打击。考虑到个人的偏好,Haveliwala et al。
除了排名unipartite网络上,最近的研究也扩展图排名方法unipartite网络由两部分构成的网络。随机图walk-based排名方法相比,他et al。
图排序模型的快速发展也促进了研究影响分析开源软件社区。宣et al。
虽然网络结构识别中扮演一个重要的角色在在线社交网络影响力的节点,根据以往的人类动力学研究中,燕et al。
在本节中,我们将介绍小说由两部分构成的网络排名框架将burstiness交互,BurstBiRank,呼吁在GitHub相互识别影响力的开发人员和项目。首先,我们将介绍burstiness的定义,它扮演着一个重要的角色在我们提出的方法测量有多少开发人员关注在一个项目中支付。然后,全面描述了定义和建设burstiness-weighted developer项目由两部分构成的网络,和一个diffusion-based排名过程是应用在这个由两部分构成的网络。最后,整个算法,其时间复杂度进行了分析。我们将在本文中使用它的符号是总结表
符号和解释。
| 象征 | 解释 |
|---|---|
|
|
排名得分的开发人员<我talic> 我我talic> |
|
|
排名得分的项目<我talic> j我talic> |
|
|
查询向量开发人员<我talic> 我我talic> |
|
|
查询向量为项目<我talic> j我talic> |
|
|
|
|
|
|
|
|
Burstiness开发人员之间的相互作用<我talic> 我我talic>和项目<我talic> j我talic> |
|
|
权重矩阵的burstiness-weighted由两部分构成的网络;<我nline-formula>
|
|
|
传染率和恢复率模拟爵士 |
|
|
Hyperparameters平衡扩散之前分数和信仰 |
|
|
归一化权重矩阵的对称<我talic> W我talic> |
在许多真实的或在线系统,人们的活动往往是间歇性的,显示强烈的活动在短时间内,后跟一个长期的活动或不活动减少。例如,你可能花总下午搜索YouTube视频关于沙哑的,当你是免费的,但之后很少访问YouTube在工作日。这种模式的人类行为和其背后的法律已经被广泛的研究领域的人类动力学和吴作栋et al。
Burstiness-weighted developer项目由两部分构成的网络:Burstiness-weighted developer项目由两部分构成的网络是一个加权由两部分构成的网络<我talic>
G我talic>= (<我talic>
U我talic>∪<我talic>
P我talic>,<我talic>
E我talic>),<我talic>
U我talic>和<我talic>
P我talic>表示两个不相交的集的节点,即组开发人员和组项目,分别<我talic>
E我talic>代表了开发人员和项目之间的边缘。的burstiness-weighted developer项目由两部分构成的网络可以被描述为一个由两部分构成的矩阵W(∈重量<我nline-formula>
图
Burstiness-weighted developer项目由两部分构成的网络。边缘的重量是burstiness的函数可以计算使用交互序列。
分数扩散是一个通用的许多流行的排名方法背后的PageRank (
为了确保收敛性和稳定性,BiRank采用对称的正常化。
BiRank也采用查询向量排序模型中利用先验信念在排名的节点方程所示(
最后,BiRank[的等价的矩阵形式
梳理部分
developer项目交互集(DP);查询向量<我nline-formula>
排序向量<我talic> u我talic>,<我talic> p我talic>;
由开发人员和项目小组developer项目交互;
提交时间降序排序developer项目交互;
计算连续记录之间的时间间隔;
计算burstiness<我nline-formula>
计算边缘的重量<我nline-formula>
构造权重矩阵<我talic> W我talic>;
对称正常化<我talic>
W我talic>根据方程(
随机初始化<我talic> u我talic>和<我talic> p我talic>;
更新<我talic>
u我talic>和<我talic>
p我talic>进而根据方程(
的时间复杂度BurstBiRank由两部分组成。第一部分是时间间隔的计算,burstiness,边的权值,所以时间复杂度<我nline-formula>
在本节中,BurstBiRank的性能评估对现实世界的GitHub数据集(
GHTorrent数据集是一个离线通过GitHub镜像的数据提供了REST API的一个子集关于PHP开发社区中使用这个实验。GHTorrent数据截至2018年11月1日,是选择和预处理如下:(1)提交开发人员之间的相互作用和PHP项目选择;(2)提交日期是提取自提交时间戳;(3)多个提交交互的记录相同的日期合并为一条记录;(4)开发人员等于或小于10记录被排除在外;(5)遵循开发人员之间的关系,观察提取的开发人员和项目之间的相互作用。预处理后的数据集的统计数据,如表所示
数据集的统计数据。
| 数据 | 数 |
|---|---|
| 开发人员 | |
| 项目 | |
| 遵循 | |
| 观察人士 | |
| developer项目提交的交互 |
相关分析和先生(susceptible-infected-removed)模拟通常采用图的排名方法的评价。
在相关分析中,排名结果进行比较与地面真理使用相关系数。肯德尔的τ
对测量影响的复杂性,相关分析的地面实况使用简单的程度developer-developer网络或developer项目后看网络。正如我们所知,学位是当地中心指标只能大致测量节点的影响力从本地视图在网络节点的影响主要与信息传播到整个网络的能力。一般来说,较高的节点影响会传播信息网络中多个节点。因此,我们采用模型(爵士
爵士模型(来源:图改编自Pastor-Satorras et al。
展示我们BurstBiRank提议的有效性,我们比较几种基线的排名方法。除了burstiness-weighted developer项目由两部分构成的网络,其他两个developer项目由两部分构成的网络也由未加权的边缘(UW)和提交number-weighted边缘(CN),和所有基线方法评估这两个由两部分构成的网络与PageRank-UW等相应的后缀。的hyperparameters BurstBiRank<我talic>
γ我talic>和<我talic>
λ我talic>都是设置为0.85,查询向量<我nline-formula>
实验的相关分析,开发人员的追随者在developer-developer选择网络作为开发人员的排名,地面实况和项目的一些观察人士developer项目看选择网络作为项目的排名地面真理。肯德尔τ为开发人员和项目分别计算,如表所示
相关分析。
| 方法 | 前20名 | 位 | 前100 | |||
|---|---|---|---|---|---|---|
| 项目 | 开发人员 | 项目 | 开发人员 | 项目 | 开发人员 | |
| PageRank-UW | ||||||
| PageRank-CN | ||||||
| SVDRank-UW | ||||||
| SVDRank-CN | ||||||
| SVDARank-UW | ||||||
| SVDARank-CN | ||||||
| BiRank-UW | ||||||
| BiRank-CN | ||||||
| BurstBiRank |
|
|
|
|
|
|
从相关分析的结果表
我们建议BurstBiRank优于所有基线方法在识别前20名,位,前100有影响力的开发人员和项目开发人员除了前100。这表明运用的有效性burstiness开发者和项目之间的重量测量的影响开发人员和项目,而不是忽略边缘重量或只是使用提交数量作为边缘的重量。这一结果不仅同意之前的研究(
(即随机walk-based排名方法。,网页排名和BiRank),higher performance can be obtained with unweighted edges than commit number-weighted edges for identifying high influential (i.e., Top-20) developers and projects, while it is just the opposite for decomposition-based ranking method (i.e., SVDRank and SVDARank). It indicates that how to measure the edge weight is important to model continuous interactions between developers and projects for influence analysis. This is also a key motivation why we model the edge weight as a function of burstiness, and future improvement can be applied on the form of the function.
几乎所有基线方法有负相关结果表明,排名订单的这些方法负相关与地面真理订单排名,也就是说,有影响力的开发人员或项目通常由这些方法后不影响排名的,而我们的方法总是显示良好的正相关与地面真理排名命令,指示我们方法的稳定性好。
在本节中,爵士模型(
BurstBiRank优于所有基线方法这表明burstiness识别的有效性有影响力的开发人员和项目。这一发现将不断激励开发人员工作,定期获得高在开源软件社区的影响力。
BurstBiRank之间的性能差异和pr大于BurstBiRank与BiRank / SVDRank / SVDARank。正如我们所知,PageRank是专为unipartite网络而BiRank SVDRank, SVDARank特别排名的方法由两部分构成的网络,区分类型的节点和使用不同类型的节点之间的相互强化在排名。这意味着最好相互co-rank开发者和项目比简单地把它们混合起来。
之间的性能比较BurstBiRank和网页排名。(一)BurstBiRank与PageRank-UW。(b) BurstBiRank与PageRank-CN。
BurstBiRank和BiRank之间的性能比较。(一)BurstBiRank与BiRank-UW。(b) BurstBiRank与BiRank-CN。
BurstBiRank和SVDRank之间的性能比较。(一)BurstBiRank与SVDRank-UW。(b) BurstBiRank与SVDRank-CN。
BurstBiRank和SVDARank之间的性能比较。(一)BurstBiRank与SVDARank-UW。(b) BurstBiRank与SVDARank-CN。
先生除了相关分析和模拟,我们进一步做一个详细的案例研究来展示我们的模型识别的有效性有影响力的开发人员和项目。排名前20名开发人员和项目BurstBiRank如表所示
排名前20名开发人员。
| 开发人员 | 排名 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| BurstBiRank | PageRank-UW | PageRank-CN | BiRank-UW | BiRank-CN | SVDRank-UW | SVDRank-CN | SVDARank-UW | SVDARank-CN | |
| web flow | |||||||||
| StyleCIBot | |||||||||
| QUVAUNKR | |||||||||
| translatewiki | |||||||||
| dereuromark | |||||||||
| 无效的电子邮件, | |||||||||
| weierophinney | |||||||||
| fabpot | |||||||||
| GrahamCampbell | |||||||||
| s-nakajima | |||||||||
| freekmurze | |||||||||
| CTYLOQFP | |||||||||
| Nyholm | |||||||||
| legoktm | |||||||||
| yunosh | |||||||||
| FaustBrian | |||||||||
| FHWXWWSE | |||||||||
| Ocramius | |||||||||
| taylorotwell | |||||||||
| stronk7 | |||||||||
项目排名前20名。
| 项目 | 排名 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| BurstBiRank | PageRank-UW | PageRank-CN | BiRank-UW | BiRank-CN | SVDRank-UW | SVDRank-CN | SVDARank-UW | SVDARank-CN | |
| 线上购物/ magento2 | |||||||||
| 维基/应用程序 | |||||||||
| 布/ mediawiki - | |||||||||
| owncloud /核心 | |||||||||
| kaltura /服务器 | |||||||||
| oroinc /平台 | |||||||||
| ZimbraOS / zm-aspel | |||||||||
| Automattic /喷气背包 | |||||||||
| 维基/ mediawi | |||||||||
| svick / mediawiki | |||||||||
| PrestaShop / PrestaS | |||||||||
| orocrm /平台 | |||||||||
| joomla / joomla-cms | |||||||||
| symfony / symfony | |||||||||
| orocrm / crm | |||||||||
| orocommerce / oroco | |||||||||
| ec-europa /平台- | |||||||||
| akeneo / pim - | |||||||||
| ILIAS-eLearning / IL | |||||||||
| cakephp / cakephp | |||||||||
从表
像Symfony项目,著名的PHP项目(GitHub ID: Symfony / Symfony)和MediaWiki (GitHub ID:维基/ MediaWiki)也可以被称为前20名有影响力的项目由我们的方法但排名较低的基准方法。
BurstBiRank和基线的方法都可以确定几个有影响力的开发人员和项目,但一些不太受欢迎的开发人员和项目给出高的排名,因为数据集是一个真实的数据集和一点点过滤操作。先生总结相关分析,模拟,案例研究,我们提出BurstBiRank优于基准方法和可以识别一些有影响力的现实世界的开源软件社区的开发人员和项目。但应该进行进一步的改进。
在本节中,我们研究如何平衡的性能随多余音节之前信仰和扩散的分数。为简单起见,我们限制<我talic>
γ我talic>等于<我talic>
λ我talic>采用,肯德尔τ表示模型的性能。图
性能参数分析(一)开发人员的排名和(b)项目的排名表现。
在这项工作中,我们旨在识别影响力的开源软件社区的开发人员和项目。连续开发人员和项目之间的交互建模为burstiness-weighted由两部分构成的网络,并应用迭代扩散过程来计算排名分数为开发人员和项目。四个基准评估拟议的BurstBiRank实际GitHub数据集的方法。大量的实验分析和案例研究显示BurstBiRank优于基准先生在相关分析和仿真的方法。
BurstBiRank背后的基本原理是测量开发人员和项目之间的联系强度的burstiness连续用一个直观的合理的假设之间的相互作用,更多的定期互动意味着更强的关系。在我们的框架,可以使用burstiness developer项目由两部分构成的网络,任何线性或非线性函数,但在我们的实验中,采用简单线性函数。除了burstiness之外,还有其他的人类动力学指标如记忆,这可能反映了开发人员和项目之间的联系强度。开发人员和编程语言等项目的属性也会影响排名。在未来的工作中,我们将采用更多类型的功能,更多的人类动力学指标,更多的开发人员和项目的属性在我们的框架。
在这项研究中使用的数据可以通过访问
作者宣称没有利益冲突有关的出版。
这项研究得到了国家自然科学基金(批准号61872002),安徽大学自然科学研究项目(批准号KJ2019A0037),安徽的大学合作创新项目(批准号GXXT - 2019 - 013),安徽大学的博士科研基础(批准号Y040418194)。