Open zhuxiangning opened 2 years ago
本项目的视角是GitHub用户的兴趣特征,包括用户、开发者等不同的人群。从对项目的兴趣视角切入,通过分析反映开发者社交行为的数据(特别是Follow人、Star项目信息)来构建开发者社交网络(Developer social networks,DSN),结合开发者画像,进而开展开发者相似性度量的研究工作。
在此浅更一下毕业设计的开题进度~
欢迎讨论💕
你这个给出的信息太少了,是否更多的给出些内容,包括一些参考文献呢~
题目 | 基于开发者社交网络的开发者特征识别及相似性度量(再优化) |
---|---|
研究对象 | 开源项目开发者及其特征 |
研究视角 | 开发者社网络(DSN),识别贡献者的特征,进而判定贡献者之间的相似性 |
研究问题 | 根据开发者社交网络、项目协作网络等,判断贡献者的兴趣特征 |
研究方法 | 根据贡献者提交的代码文本识别贡献者的技能(语言、框架、API等);在协作网络的基础上,根据贡献者的贡献行为和内容对贡献者进行角色分类 |
实验设计 | 采集GitHub topXX 的项目及其贡献者的近一年的协作数据;贡献者中去除机器人账号,避免干扰;创建代码的文本数据集和协作网络数据集;设计贡献者技能指标体系以及项目角色评估指标;改进现有算法进行贡献者技能和角色识别,使用词云图、网络图等形式进行可视化根据准确率衡量算法提升的效率制作标准的GitHub社交网络数据集、基准测试(包括任务的评价指标,例如相似性评价、推荐算法评价等) |
预期结果 | 提出的方法能够较准确地判定贡献者的特征以及贡献者之间的相似性 |
应用场景 | Hypercrx的开发者社交推荐、以及项目推荐 |
关键词 | 开发者社交网络、开发者画像、行为数据、相似性、社交增强 |
附几篇主要的参考文献:
根据昨天的讨论,我们是否可以先聚焦一点,推荐系统的前置条件是开发者画像和项目画像,然后完成两者之间的匹配。
考虑到 杨鸣和翁振杰的工作,也都和开发者属性分析相关,我们需要进行系统的区分与规划下,不然到时候撞车会有些麻烦。@wengzhenjie @kongzhongsanbu
因此,Developer Social-technical Network(DSTN)就是把多种社交关系聚合在一个网络中,然后进行开发者网络地位的分析与刻画,包括:
这里面又有两大类型的语义:
这个 DSTN 网络也是一个典型的异质信息网络。然后我们是否可以在上面做一个社会科学中的问题,例如:社会资本。
这个我在开源测量学中举过一个例子,用一些网络指标来做,应该有一定的新意。
这个材料应该挺有启发,你先看看,然后我们在这个issue下面可以交流下~ @zhuxiangning
这个材料应该挺有启发,你先看看,然后我们在这个issue下面可以交流下~ @zhuxiangning
- Firm-Sponsored Developers in Open Source Software Projects A Social Capital Perspective
- 下载:https://link.springer.com/book/10.1007/978-3-658-31478-1
OK~
石墨放一份这里,方便参考:https://shimo.im/docs/PQpyTyhJ8JwTPrqk/read
那根据前面的交流,以及最近阅读文献的启发,目前开题的方向和内容是什么呀?有什么变化吗?
看了一下开题报告,和其他几个同学相比较起来,内容并没有什么特点,还是特征提取与推荐算法。还需要仔细构建下,去年的硕士论文也有至少3篇内容是在开源项目的推荐上(王皓月、苏斌、朱会会)。
https://xlab2017.yuque.com/msdpvs/cd8ugi/26334795
我还是建议是否聚焦一个社会资本,提出”开源社区资本“的概念,然后用特征数据、图网络,来量化社区资本,既没人做过,可行性也是没问题的。至于推荐算法,可以作为核心工作的一个应用,或者不涉及也行。关键问题是,如何对开源社区资本的好坏来做实验与评价。
我们做如下的区别性研究工作:
我们的工作可以这么来构建:
1. 开源社区贡献背后的内在激励
2.已有的与开源社区开发者声誉度量相关的工作
3.开源社区的”社会资本“度量模型的构建
4. 开源社区社会资本模型的评价与应用
5. 对于我们实验室的意义
因此,该项工作还需要多看看上面提到的一些文献和论文的工作~
你们两个人的工作有些类似,可以考虑一起来构建图~ @zhuxiangning @kongzhongsanbu
https://xlab2017.yuque.com/msdpvs/fzem1h/26354817
这本专著中的数据集如果能够获取(应该是可以的),也完全可以作为你的实验工具之一~ @zhuxiangning
两本电子书:
两本电子书:
- 社会资本 关于社会结构与行动的理论-林南:https://xlab2017.yuque.com/msdpvs/fzem1h/26354879
- 2010-Social capital -Lin, Nan:https://xlab2017.yuque.com/msdpvs/fzem1h/26354875
get!
之前阅读的论文中,恰好有看到过基于社会资本的相关理论 ,供参考: 社会资本被定义为个人或社会单位所拥有的关系网络中所包含的、通过该网络获得的或从该网络中获得的实际和潜在资源的总和[64]。社会资本理论的核心原则是,关系网络构成了一种有价值的资源(一种集体拥有的资本,称为社会资本),通过知识交换和组合的过程促进诸如新知识、人力、信息等的创造。社会资本包括三个维度:结构资本、认知资本和关系资本。结构性资本涉及到连接和纽带的配置,提供网络资源,如嵌入在网络成员中的知识。认知资本是指能够在知识来源和接受者之间有效沟通和解释知识的共享语言、代码和叙述。关系资本是促进知识无障碍共享和接受的信任、规范和义务。这就说明说明社会资本内生于社会关系与社会网络,不能脱离社会关系而存在。因而不少学者通过社会资本来研究社会关系的形成。其中,比较有代表性的成果就是Granovetter提出的“结构嵌入”(Structural Embeddedness)理论[37],以及Burt的“结构洞”(Structural Holes)理论[38]。 [64] Nahapiet J, Ghoshal S. Social capital, intellectual capital, and the organizational advantage[J]. Academy of management review, 1998, 23(2): 242-266. [37] Granovetter M. Economic action and social structure: The problem of embeddedness[J]. American journal of sociology, 1985, 91(3): 481-510. [38] Burt R S. Structural holes and good ideas[J]. American journal of sociology, 2004, 110(2): 349-399.
这个反馈不错,可以参考的~
目前的想法是,把社会资本的部分可以量化的维度融入到开发者的社会特征衡量中去(根据7个维度,确定了根据现有数据可以量化的3个维度:人际交往频率/邻里互助/社区参与),具体的如下:
【上面这两个点也是能够和Hypercrx插件结合起来的~】
在上述指标的基础上设计开源社区内开发者的社会资本度量模型,同时原先单纯对项目信息建模的部分我将会改进成开发者兴趣迁移模型(“开发者的偏好变化通过参与项目的行为序列来凸显,通过对开发者参与项目序列的主题的挖掘可以预计开发者在参与了某一主题的项目后会接着参与哪个主题对应的项目”),在上述两个模型的基础上构建开发者相似度,并进行项目推荐
开发者兴趣迁移主要参考了这篇文章: [1]赵佳斌,赵海燕,曹健,陈庆奎.考虑开发者兴趣迁移的开源项目推荐方法[J].小型微型计算机系统,2021,42(03):655-660.
目前的想法是,把社会资本的部分可以量化的维度融入到开发者的社会特征衡量中去(根据7个维度,确定了根据现有数据可以量化的3个维度:人际交往频率/邻里互助/社区参与),具体的如下:
- 定义开发者在某一开源社区内的社会资本(当前项目下的开发者节点):人际交往频率(follow贡献过同一个社区的其他开发者),邻里互助(在非自己创建的的issue,pr下进行的issue_commet,pr_comment,加权计算),社区参与度(star,fork,open_issue, open_pr)
- 开发者之间的社会资本(一个项目下开发者之间的连边):人际交往频率(follow社区内的同一个开发者),邻里互助(参与同一个issue,pr),社区参与度(开发者与开发者之间是没有社区参与度概念的,只有开发者对社区有)
【上面这两个点也是能够和Hypercrx插件结合起来的~】
在上述指标的基础上设计开源社区内开发者的社会资本度量模型,同时原先单纯对项目信息建模的部分我将会改进成开发者兴趣迁移模型(“开发者的偏好变化通过参与项目的行为序列来凸显,通过对开发者参与项目序列的主题的挖掘可以预计开发者在参与了某一主题的项目后会接着参与哪个主题对应的项目”),在上述两个模型的基础上构建开发者相似度,并进行项目推荐
开发者兴趣迁移主要参考了这篇文章: [1]赵佳斌,赵海燕,曹健,陈庆奎.考虑开发者兴趣迁移的开源项目推荐方法[J].小型微型计算机系统,2021,42(03):655-660.
目前开题还是准备把项目推荐包含进去(害怕开题阶段体现不出足够多的工作量),如果之后实现过程中发现工作量已经足够了,再考虑不做项目推荐,做基于开源社区社会资本和开发者兴趣迁移的开发者画像,不知道这样是否可行 @will-ww
关于题目,有以下想法:
仅就开源社区的社会资本度量问题,可以给出一个足够体现工作量的框架:
社区资本量表中的七个维度映射可以有简单或复杂的方案(以仓库内的个体度量为例):
以上仅仅是举个例子,每个量化方法还需要推敲和实验验证,但应该是可行的。
理解,类比社会资本的定义:社会资本是嵌入在社会关系网中的价值资源,对社会关系网络的投入能够带来更好的社会资源,而这种资源又会反过来给投入者带来更多的回报。
我们是否可以引申出开源社区社会资本的定义:开源社区社会资本是嵌入在开源社区内开发者社会技术网络下的价值资源,开发者对其社会技术网络下的投入一方面能够为开源社区带来更大的影响力,另一方面也为自己带来技术能力提升和行业声誉增长。
以上仅为自己YY的定义
我能够想到的几个对比实验:
将”开源码力榜“中的标注数据拿过来,作为基准测试数据集,展开三个方面的评测任务:
而对于每个任务,又可以通过两个维度进行实验设计: 1. 社会资本中利用信息量
2. 不同模型下的效果
以上内容排列组合,应该比较丰富了,做的过程当中肯定还会有新的想法出来~
理解,类比社会资本的定义:社会资本是嵌入在社会关系网中的价值资源,对社会关系网络的投入能够带来更好的社会资源,而这种资源又会反过来给投入者带来更多的回报。
我们是否可以引申出开源社区社会资本的定义:开源社区社会资本是嵌入在开源社区内开发者社会技术网络下的价值资源,开发者对其社会技术网络下的投入一方面能够为开源社区带来更大的影响力,另一方面也为自己带来技术能力提升和行业声誉增长。
以上仅为自己YY的定义
So cool~
再对目前的想法进行一轮整理,题目为基于开发者社交技术网络的开发者推荐
社会资本7个维度的度量基本都围绕着开发者之间的网络,因为决定把项目推荐转换为开发者推荐,也是具有较多的实际应用意义的(类比社交平台上的用户推荐)
研究目标 研究基于 GitHub 开源社区协作数据,结合社会资本理论,建立度量指标体系,对开源社区社会资本和社区内开发者个人社会资本进行量化,构造开发者社会技术网络,最终解决开源社区发展过程中的开发者推荐问题。
根据昨天晚上的交流,继续提建议:
题目:开源社区的社会资本度量方法及其在推荐算法中的应用 主要贡献:
三个要点: (1)OpenCapital 模型,可以参考三个工作 [1] 罗家德,灾后重建纪事(7个维度)
[2] Nan Lin,社会资本(三个维度)
[3] 这本书 2.2.4 节提到的(三个大维度,9个子维度)
把上面3个工作做个总结与整理,应该挺不错,具有一定信服度。
(2)OpenCapital 的计算
(3)将这个值作为一个重要特征,应用到一个已有的推荐算法中,通过实验验证
这样,整体工作就会非常饱满,而且如果 OpenCapital 的工作做的扎实,光这个工作也就够了。
关键科学问题与难点:
《社会网分析讲义》的第九章 “社会资本的定义与衡量”,也可以参考下~
目前的论文开题为:开源社区的社会资本度量方法及其在推荐算法中的应用
可以继续优化与调整,Frank 周一报告的一个启发是,确实可以利用类似链接预测这样的算法来验证我们提出的方法的有效性,当然开源码力榜,也是个更加直接的验证方式~
在此浅更一下毕业设计的开题进度~
欢迎讨论💕