基于Spark计算网络图中节点之间的Jaccard相似性

基于Spark计算网络图中节点之间的Jaccard相似性

Jaccard 相似度是一种较为常用的衡量两个集合相似性的指标,用于计算两个集合的交集与并集的比率。具体来说,它的计算公式为:

在网络图中同样经常使用Jaccard来计算节点之间的相似性,对于图中的每个节点,收集其邻居节点作为一个集合,然后不同节点之间使用对应的集合计算节点之间的相似性。这种计算方式考虑的是节点的局部结构,即节点的直接邻居关系。如果两个节点具有较高的 Jaccard 相似度,意味着它们有较多的共同邻居,表明它们在图中的局部结构上非常相似。

Jaccard计算简单,易于理解和实现,在推荐系统(在社交网络或电商平台中,可以使用 Jaccard 相似度来推荐好友或商品。例如,在社交网络中,具有共同好友的用户可能更容易成为朋友。)或是社区发现(在网络图中,相似度较高的节点可能属于同一社区或群体。通过计算节点对之间的 Jaccard 相似度,可以辅助发现社区结构或群体。)等领域都有广泛应用。

文章目录


一、使用Jaccard相似性计算网络图中节点相似性的实现流程

  • 收集所有指向节点的邻居节点(in-degree)
  • 收集所有由节点指出的邻居节点(out-degree)
  • 拼接in-degree和out-degree,获取节点所有的邻居节点
  • 词袋模型编码,为每个节点生成一个特征集合,方便后续使用Spark自带的MinHashLSH方法加速节点相似度的计算
  • MinHash计算节点之间的相似度,得到最终计算结果

二、什么是MinHashLSH

什么是MinHashLSH

三、完整代码(基于Scala)

完整代码(基于Scala)


总结

相关推荐
ysa05103019 小时前
【板子】Dinic(最大网络流)
网络
我星期八休息19 小时前
网络编程—应用层HTTP协议
linux·运维·开发语言·前端·网络·网络协议·http
电商API_1800790524720 小时前
跨境货源中台搭建:打通淘宝商品全信息流转,解决批量铺货痛点
数据挖掘·网络爬虫
ITxiaobing202321 小时前
IP库与AppsFlyer数据对账指南:破解国家/地区数据不一致的难题
网络·网络协议
有浔则灵21 小时前
GORM钩子函数详解
网络·安全·web安全
什巳21 小时前
JAVA练习309- 二叉树的层序遍历
java·数据结构·算法·leetcode
汇智信科1 天前
图谱、向量、关键词、SQL多路一体,FastKG垂域召回率100%拉满
网络·数据库·ai编程·汇智信科·hsim·fastclaw·汇智龙虾
liulilittle1 天前
论分布式系统的半开闭问题
服务器·网络·分布式·系统架构·竞态
FreeBuf_1 天前
仅用六分钟,黑客借助Gemini CLI自主构建并迁移C&C僵尸网络
网络·人工智能
cyforkk1 天前
Vercel 绑定自定义域名极简配置指南
服务器·前端·网络