海量数据挖掘MMDS week3:社交网络之社区检测:基本技巧「建议收藏」

http://blog.csdn.net/pipisorry/article/details/49052057海量数据挖掘MiningMassiveDatasets(MMDs)-JureLeskovec courses学习笔记之社交网络之社区检测:基本技巧-生成模型及其参数的梯度上升方法求解博客内容:社区检测的基本技巧部分,覆盖”overlappingcommunities”寻找最好集合

大家好,又见面了,我是你们的朋友全栈君。http://
blog.csdn.net/pipisorry/article/details/49052057

海量数据挖掘Mining Massive Datasets(MMDs) -Jure Leskovec courses学习笔记之社交网络之社区检测:基本技巧-生成模型及其参数的梯度上升方法求解

博客内容:社区检测的基本技巧部分,覆盖”overlapping communities”寻找最好集合的机器学习技术。

Communities in Social Networks:  直觉上, 社区communities就是网络中个体的集合,集合中通常有高密度的边。而overlapping communities就是人们通常属于多个社区,如高中朋友、同事等等。

Note: lz这里这种方法是要自己指定社区个数的,有点类似软分类,通过MLE求解。

How the class fits together

海量数据挖掘MMDS week3:社交网络之社区检测:基本技巧「建议收藏」

图中社区检测

通过蛋白质连接结构发现细胞中的功能模块               社交网络(facebook)中的社区发现

海量数据挖掘MMDS week3:社交网络之社区检测:基本技巧「建议收藏」        海量数据挖掘MMDS week3:社交网络之社区检测:基本技巧「建议收藏」

社区类型

海量数据挖掘MMDS week3:社交网络之社区检测:基本技巧「建议收藏」

社区表示

海量数据挖掘MMDS week3:社交网络之社区检测:基本技巧「建议收藏」

我们可以将社交网络表示成一个graph adjacency matrix:有联系就有值,没有联系就没有值。矩阵中the thicker the tiles,the more edges are there in the network.我们要做的就是从networks中将这些tiles分离开来。

皮皮blog

网络生成模型Generative Model for Networks

网络模型

海量数据挖掘MMDS week3:社交网络之社区检测:基本技巧「建议收藏」

模型会有很多参数,通过估计这些参数,就可以隐含地检测出这些社区。

皮皮blog

社区隶属关系图模型AGM(community-affiliation graph model)

模型表示 B(V, C, M, {Pc})

海量数据挖掘MMDS week3:社交网络之社区检测:基本技巧「建议收藏」

模型中的边M代表成员-社区隶属关系。

AGM模型假定指定社区中的每个成员V(圆点)属于其对应社区C(方块)的概率是一样的,即Pc。

AGM生成Networks边的过程

海量数据挖掘MMDS week3:社交网络之社区检测:基本技巧「建议收藏」 海量数据挖掘MMDS week3:社交网络之社区检测:基本技巧「建议收藏」

用户u,v在网络中有边的概率P(u,v)就是其至少同属于一个社区的概率,共同社区越多,其概率值越大,概率越大越可能生成边。

Note: AGM模型中假定个体属于社区是没有权重的,或者说权重都为1。

AGM模型的优势

海量数据挖掘MMDS week3:社交网络之社区检测:基本技巧「建议收藏」
皮皮blog

BIGCLAM模型

{AGM的relaxed版本。简化AGM成BIGCLAM,可以在large networks中检测社区}

带权值Memberships的AGM模型

对原始AGM模型进行relax,即考虑边权,重新计算两个个体属于同一社区A的概率P C(u, v)。

海量数据挖掘MMDS week3:社交网络之社区检测:基本技巧「建议收藏」

1. 原来成员u属于社区A是01表示,现在表示成一个绳strands,值越高,说明这个个体在社区中越活跃。

2. 用户u,v同时属于某个社区如A的概率PA(u,v),直觉上,如果两个都与社区A强关联,则两者间的关系就越强。PA(u,v)计算公式的一个重要性质是,如果某个Fu=0,就是u完全不属于社区A,则u,v也是没关联的。

使用因子矩阵Factor Matrix F重新构造P(U, V)

矩阵F就是BIGCLAM模型的表示。

海量数据挖掘MMDS week3:社交网络之社区检测:基本技巧「建议收藏」

概率 P(u,v)的计算

两个个体u,v生成links的概率表示,即在网络中有边的概率或者是至少同时属于一个社区的概率 P(u,v)的计算:

海量数据挖掘MMDS week3:社交网络之社区检测:基本技巧「建议收藏」

只要估计出矩阵F就可以计算出P(u,v),就可以通过P(u,v)概率生成图中的边。而矩阵F就给出了社区,完成社区检测。

Note: 如果F仅仅是0-1矩阵,则上式P(u, v)计算就是原始AGM模型了。

解BigCLAM

{给定一个网络G(V,E)我们知道节点和边,要找到这个模型BIGLAM的表示,也就是找到矩阵F}

最大似然估计:使用已知事实数据network G(V, E)估计F矩阵

为了使networks图中存在边的两点其属于同一社区的概率P(u, v)较大,同时不存在边的两点其属于同一社区的概率P(u, v)较小。我们要做的就是最大化下式。

海量数据挖掘MMDS week3:社交网络之社区检测:基本技巧「建议收藏」

[参数估计:最大似然估计MLE]

BigCLAM解F版本一:梯度上升

海量数据挖掘MMDS week3:社交网络之社区检测:基本技巧「建议收藏」

1. 使用梯度方法的一个假设:认为函数some kind of convex, smooth shape.并且这里我们是要求最大值而不是最小值,所以会使用梯度上升而不是梯度下降。如果将p(u,v),1-p(u,v)互换应该就可以使用梯度下降了。
2. 这里求梯度是对给定的node进行的,对应F的一行向量Fu,对Fu求导应该等价于对Fu各分量分别求导再重组成向量。

3. 这个算法可能导致其中的strands FuC变成负值,每次迭代都要检测并修正。

算法的缺点

海量数据挖掘MMDS week3:社交网络之社区检测:基本技巧「建议收藏」

导致这个的原因:由于计算和式(梯度式中第二部分)要遍历给定节点的所有非邻节点,要遍历整个数据。

BigCLAM解F版本二:cache缓存加速

通过邻居neibor来迭代求解F矩阵。缓存F中所有行的向量行和,就是将F所有行加起来,通过下式的转换就不用每次遍历整个数据了,只需遍历一次缓存,每次遍历的只是邻居节点。

海量数据挖掘MMDS week3:社交网络之社区检测:基本技巧「建议收藏」

BigClam的伸缩性scalability

海量数据挖掘MMDS week3:社交网络之社区检测:基本技巧「建议收藏」

更多关于求解F的细节的论文

Overlapping Community Detection at Scale: A Nonnegative Matrix Factorization Approach by J. Yang, J. Leskovec. ACM International Conference on Web Search and Data Mining (WSDM), 2013.
Detecting Cohesive and 2-mode Communities in Directed and Undirected Networks by J. Yang, J. McAuley, J. Leskovec. ACM International Conference on Web Search and Data Mining (WSDM),2014.
Community Detection in Networks with Node Attributes by J. Yang,J. McAuley, J. Leskovec. IEEE International Conference On Data Mining (ICDM), 2013.

from:http://blog.csdn.net/pipisorry/article/details/49052057

ref: [Community Detection Algorithm Combining Stochastic Block Model and Attribute Data Clustering 2016]

论文:复杂网络重叠社区检测《Finding overlapping communities in multiplex networks》N Afsarmanesh, M Magnani [Uppsala University] (2016) 

Community detection in networks: A user guide》S Fortunato, D Hric [ Indiana University & Aalto University School of Science] (2016)

论文:(社交)网络影响基准度量方法《Benchmarking Measures of Network Influence》A Bramson, B Vandermarliere (2016)

社交网络数据挖掘的前沿技术

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/129180.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • BPTT深度理解「建议收藏」

    BPTT深度理解「建议收藏」本博客适合那些BP网络很熟悉的读者一基本结构和前向传播符号解释:1. cltctl:t时刻第l层的神经元的集合,因为cltctl表示的是一层隐藏层,所以图中一个圆圈表示多个神经元。2. hlthtl:第l层在t时刻的输出。因为hlthtl是一层隐藏层的输出,所以表示的是一个向量。3. LjLj:表示的是在j时刻,网络的输出的值和目标输出值的平方差,L表示的是所有时刻的平方差的和。4. WvWv:…

    2022年6月23日
    22
  • mysql左连接查询

    mysql左连接查询mysql左连接查询左连接查询:以左表为主表,右表为从表,查询符合条件的数据1.当右表中数据匹配不到时展示为空例:左表两条数据,按条件匹配到右表一条数据且匹配左表第一条,结果展示两条数据,且第二条数据右表中的字段全部为null2.当匹配到右表的数据为多条时,左表数据会重复展示,不会自动合并例:左表数据一条,按条件匹配到右表数据三条,结果展示三条数据,左表数据均相同,右表数据不同…

    2022年6月3日
    55
  • One Piece1-541(ed2k)[通俗易懂]

    One Piece1-541(ed2k)[通俗易懂]1-143http://www.VeryCD.com/topics/143292/144-228http://www.VeryCD.com/topics/17082/229-325http://www.VeryCD.com/topics/39594/326-384http://www.VeryCD.com/topics/198051/385-458ht

    2022年10月19日
    0
  • JAVA协同过滤推荐算法

    1、什么是协同过滤在推荐系统众多方法中,基于用户的协同过滤推荐算法是最早诞生的,原理也较为简单。该算法1992年提出并用于邮件过滤系统,两年后1994年被GroupLens用于新闻过滤。一直到2000年,该算法都是推荐系统领域最著名的算法。在一个在线个性化推荐系统中,当一个用户A需要个性化推荐时,可以先找到和他有相似兴趣的其他用户,然后把那些用户喜欢的、而用户A没有听说过的物品推荐给A。…

    2022年4月7日
    52
  • 西门子PLC s7-1200学习之路「建议收藏」

    西门子PLC s7-1200学习之路「建议收藏」1Introduction最近因为一个项目需要使用西门子PLC,买了一个入门级的PLCs7-1200,并完成了一个PLC和PC通过TCP进行通信的小程序,为了防止活干完了,内容就全忘了,所以用一个笔记进行梳理和总结。入门一种语言,需要回答新手的几个问题,这个笔记按照回答的方式梳理。2问题2.1PLC是什么,什么时候用,要怎么选?根据[1],PLC可以替代继电器功能并完成复杂的控制功能。个人感觉功能上来看,PLC、DSP、单片机和FPGA之间的界限越来越小,只是各有侧重。PLC因为基于梯形图

    2022年10月18日
    0
  • 函数防抖与函数节流

    函数防抖与函数节流

    2022年4月3日
    48

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号