【技术实现步骤摘要】
基于技术能力的社交关系推荐方法及系统
[0001]本申请涉及数据处理领域,特别是涉及一种基于技术能力的社交关系推荐方法及系统
。
技术介绍
[0002]随着开源软件和开源社区的不断发展,越来越多的开发者和企业选择将自己的代码和项目托管到开源平台中
。GitHub
作为全球性的社交开发平台,提供了
Pull Request
和
Issue
等帮助开发者提交贡献代码的功能,同时也提供了如标星仓库
、
观察仓库
、
关注开发者等常见于社交功能
。
[0003]在开源协作项目的整个流程中,用户有需求找到与自己技术能力相似的开发者,以便更好地交流或加入相关组织;当用户希望贡献开源代码时,需要知道自己能力适合贡献的仓库;对于仓库而言,也需要指定合适的维护者来管理;对于用户提出的
Pull Request
,需要推荐合适的评审员等等
。
这些需求需要不同的对象实体具有与推荐需求相匹配的技术能力
。 ...
【技术保护点】
【技术特征摘要】
1.
一种基于技术能力的社交关系推荐方法,其特征在于,包括:获取
GitHub
中仓库实体与关联的其他实体的属性信息;所述关联的其他实体包括:开发者实体
、Issue
实体及
Pull Request
实体;所述属性信息包括代码数据及文本信息;根据获取的所有实体之间的关系信息及各自的属性信息,构建社交活动图;所述社交活动图中,每个实体内的单个对象由节点表示,对象与对象之间的关系由边表示;基于所述社交活动图中每个节点的属性信息,获取所述节点的初始技术能力表达向量,进一步训练图神经网络模型,获取所有节点的技术能力表达向量;根据所述社交活动图中所有节点的技术能力表达向量,训练用于推荐社交关系的评分模型,使用所述评分模型进行社交关系推荐
。2.
根据权利要求1所述的基于技术能力的社交关系推荐方法,其特征在于,获取
GitHub
中仓库实体与关联的其他实体的属性信息,包括:通过
git clone
脚本获取所述仓库实体中的代码数据;通过请求字段获取所有实体中的文本信息;根据获取到的所有属性信息,确定所有实体之间的关系信息;对所述属性信息及所述关系信息进行预处理
。3.
根据权利要求1所述的基于技术能力的社交关系推荐方法,其特征在于,基于所述社交活动图中每个节点的属性信息,获取所述节点的初始技术能力表达向量,包括:确定所述节点包含的属性信息的类型,所述属性信息的类型包括代码数据类型
、
自然语言文本数据类型及离散数据类型;分别获取所述节点的每个属性信息的特征向量;将所述节点的所有属性信息的特征向量进行组合,生成所述节点的初始技术能力表达向量
。4.
根据权利要求1所述的基于技术能力的社交关系推荐方法,其特征在于,进一步训练图神经网络模型,获取所有节点的技术能力表达向量,包括:构建图神经网络模型;所述图神经网络模型包括适用于异质图的全连接层
、
图卷积层
、
图结构学习任务层及图属性学习任务层;以所述社交活动图中所有开发者节点为初始节点,在所述社交活动图中采样节点序列,通过
Metapath2Vec
模型获取所述社交活动图中每个节点的嵌入向量;所述嵌入向量用于表征所述节点的全局结构信息;将所述社交活动图中每个节点的初始技术能力表达向量,与所述节点的嵌入向量进行拼接,更新所述社交活动图中所有节点的初始技术能力表达向量;从所述更新后的社交活动图中提取多个采样子图,每个采样子图中包含一个目标节点及与所述目标节点相邻的多个邻居节点;采用提取的所有采样子图,训练所述图神经网络模型,获取所有节点的技术能力表达向量
。5.
根据权利要求4所述的基于技术能力的社交关系推荐方法,其特征在于,从所述更新后的社交活动图中提取多个采样子图,包括:根据所述图神经网络模型中的图卷积层的数量,以所述目标节点为中心,从所述社交活动图中提取采样子图;所述目标节点具有与所述图卷积层的数量相同的阶数的邻居节
点;对所述采样子图进行负采样,在所述采样子图中增加所述社交活动图中不存在的边
。6.
根据权利要求1所述的基于技术能力的社交关系推荐方法,其特征在于,根据所述社交活动图中所有节点的技术能力表达向量,训练用于推荐社交关系的评分模型,包括:构建基于二分类器的评分模型;所述评分模型包括:全连接层
、ReLU
激活层
、Sigmoid
或
Softmax
输出层;在所述社交活动图中,根据需要推荐的社交关系的内容,采集相同数量的节点作为训练所述评分模型的正样本与负样本;将所述正样本与所述负样本作为训练所述评分模型的标签,将采集的节点的技术能力表达向量作为所述评分模型的输入,训练所述评分模型,其中,采用二分类交叉熵损失函数作为所述评分模型的损失函数<...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。