社交网络图挖掘3--重叠社区的发现及Simrank
来源:互联网 发布:php防sql注入代码 编辑:程序博客网 时间:2024/05/18 00:33
- 重叠社区的发现
- 相关知识点
- 关系图模型
- 避免成员隶属关系的离散式变化
- Simrank
- 带重启的随机游走
重叠社区的发现
相关知识点
社区的本质:一个实体有可能同时属于两个社区,任一社区内的边会十分密集,但是两个社区交集内的边会更加密集,而三个社区交集内的边还要密集。
极大似然估计(maximum likelihood estimation,MLE):我们对某种对象(如朋友图)实例的生成过程(即模型)建立某种假设。模型的参数确定了任一具体实例的生成概率,该概率称为这些参数值的似然(likelihood)。
关系图模型
社区-关系图(community-affiliation graph)
社区-关系图(community-affiliation graph)机制可以从社区生成社交网络图,规定如下:
- 存在给定数目的社区,存在给定数目的个体(图的节点);
- 每个社区可以拥有任意的个体集合作为成员,即个体对社区的隶属关系是模型的参数;
- 每个社区C都有一个概率
Pc 与之相关联,该概率表示C中两个成员由于都是C中成员而通过边连接的概率,这些概率也是模型参数; - 如果一对节点属于两个或更多社区,那么如果某个包含这两个节点的社区按照规则3判定节点间有边的话,那它们之间就有边。
计算通过上述机制生成图的概率,计算的关键点:
- 给定个体到社区的分配
Pc 值;- 如何计算边的概率。如果
u 和v 是社区的非空集合M中每个社区的成员,并且不是其他社区的成员,那么u 和v 之间存在边的概率为:Puv=1−∏CinM(1−Pc)
那么E等于观察图中边集合的似然为:
避免成员隶属关系的离散式变化
以连续方式对个体属于社区的隶属强度进行调整,直观上看,两个个体属于同一社区的程度越强,那么该社区促使两个个体之间有边的可能性也越大。改进的模型规则:
- 固定的社区和个体集合(同);
- 对每个社区C和个体x,有一个隶属强度参数
FxC ,参数为任意非负值,0意味着该个体不属于该社区。 - 社区C使得
u 和v 之间存在边的概率为:PC(u,v)=1−e−FuCFvC
节点
那么E等于观察图中边集合的似然为:
对上式进行简化(某个函数最大化的同时也使得该函数的对数最大化),简化过程用到了
最后采用梯度下降法来寻找成员到社区的最佳分配方案,以使该分配得到的似然使最大的。即选择一个节点x,朝着上式值最大的方向调整所有
Simrank
- Simrank理论上适用于任何图,但最适合应用于具有不多类型节点的图。
- Simrank的目标:计算同类型节点之间的相识度,它通过考察随机游走这从某个点出发随机游走的最终状态来计算。
- 局限:由于Simrank必须对每个初始化节点计算一次,因此它受限于能够完全采用这种方式进行分析的图的规模。
社交网络上的随机游走者:无向图节点N上的游走者会以等概论走到其邻居节点。
带重启的随机游走
思路:假定我们关注社交网络中的一个特定点N,我们想知道游走者从改点出发游走不远后到达的位置,我们可以修改转移概率矩阵,使得从任一节点转移到N的概率很小。
- 令M为图G的转移概率矩阵,如果节点
i 的度数为k ,且i 和j 之间有边,则M中第i 行第j 列的元素为1/k ,否则为0。 - 令
β 为游走者继续随机游走的概率,则1−β 为游走者远程跳转到初始节点N的概率,令eN 为一个列向量,v‘ 是下一轮位于每个节点的概率向量,则v‘ 和v 的关系是:v‘=βMv+(1−β)eN
注:由于初始的迭代中有振荡,因此整个收敛过程需要时间。收敛后可以看到所有节点与节点N的相似度矩阵。
- 社交网络图挖掘3--重叠社区的发现及Simrank
- 社交网络图挖掘2--社区的直接发现和图划分
- 社交网络图挖掘5--图的邻居性质
- LOUVAIN——社交网络挖掘之大规模网络的社区发现算法
- LOUVAIN——社交网络挖掘之大规模网络的社区发现算法
- 社交网络图挖掘4--三角形计数问题
- 重叠社区发现-LFM算法
- 学习笔记(3)-重叠社区发现Copra算法
- 社交网络图挖掘1--将社交网络看作图及其聚类
- 利用python、Gephi绘制人人的社交网络图
- PAT6-09. 社交网络图中结点的“重要性”计算
- PTA 社交网络图中结点的“重要性”计算
- PTA 7-12 社交网络图中结点的“重要性”计算
- 社交网络图中结点的“重要性”计算(30 分)
- PAT OJ.社交网络图中结点的“重要性”计算
- 基于模块化指标Q的社区监测应用于权重网络图
- simrank
- simrank
- 面试必备:SparseArray源码解析
- Hibernate+boostrapTable分页查询(——后台)
- 阿里云态势感知服务使用教程
- wordpress 的tags标签自定义样式
- 结构化编程和面向对象编程的区别
- 社交网络图挖掘3--重叠社区的发现及Simrank
- u盘文件变成乱码怎么办
- 提升 iOS 开发效率! Xcode 9 内置模拟器的9个技巧
- springMVC的文件配置
- 解决 Android N 上报错:android.os.FileUriExposedException: file:///storage/emulated/0/
- TOP100summit【分享实录-网易】构建云直播分发网络
- C#语言和SQL Server数据库技术_数据库查询基础
- Java并发编程:volatile
- 关于request.get*()