海量数据挖掘MMDS week3:社交网络之社区检测:基本技巧
http://blog.csdn.net/pipisorry/article/details/49052057
海量数据挖掘Mining Massive Datasets(MMDs) -Jure Leskovec courses学习笔记之社交网络之社区检测:基本技巧-生成模型及其参数的梯度上升方法求解
Communities in Social Networks: Intuitively, "communities" are sets of individuals in a network like Facebook friends, that have an unusually high density of edges.
{这篇博客的内容:社区检测的基本技巧部分,覆盖"overlapping communities"寻找最好集合的机器学习技术。直觉是"overlapping communities"就是人们通常属于多个社区,如高中朋友、同事等等}
how the class fits together
图中社区检测
图中社区示例
通过蛋白质连接结构发现细胞中的功能模块 社交网络(facebook)中的社区发现
社区类型
社区表示
我们可以将社交网络表示成一个graph adjacency matrix:we can think of a network network is a big matrix where an empty spot means that a given pair of nodes is not connected and a dot means that a given pair of nodes is connected.
从右图中也可以看出:we have two groups overlap, the set of nodes that belongs to both of the groups.They have more edges among themselves.Kind of the shade is darker than the nodes that belong to only one of the groups.So that's kind of the idea that what we want to exploit or how do we want to do this.
概括来说就是the thicker the tiles,the more edges are there in the network.我们要做的就是从networks中将这些tiles分离开来。
网络生成模型Generative Model for Networks
网络模型
然后我们就可以通过这个模型进行社区发现。再之后就是要确定什么样的模型是最好的了。
模型会有很多参数,通过估计这些参数,就可以隐含地检测出这些社区。
社区隶属关系图模型AGM(community-affiliation graph model)
模型中的边M代表社区关系,并且模型也是通过这个4个不同集合的元组唯一确定。
AGM生成Networks过程
AGM如何生成networks的边
同一个社区C中的两个个体都有概率Pc生成一个link,而P(u,v)代表u,v两个个体至少有一个共同社区的概率,共同社区越多,其概率值越大。
注意AGM模型中假定个体属于社区是没有权重的,或者说权重都为1。
AGM模型就是以概率P(u,v)在两个点间创建一条边,概率P(u,v)越大越可能生成边。
AGM模型的优势
Note: Nested: the hierarchy structure of the network.
皮皮blog
BIGCLAM(AGM的relaxed版本)
{简化AGM成BIGCLAM,这样就可以在large networks中检测社区}
带权值Memberships的AGM模型
对原始AGM模型进行relax,重新计算两个个体属于同一社区A的概率P C(u, v)。
1. 原来u属于社区A是一个0-1的表示,现在表示成一个绳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模型的表示。
两个个体u,v生成links的概率表示
从上式可知,只要估计出矩阵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)较小。我们要做的就是最大化下式。
Note:使用log-likelihood比原始raw函数好的原因:First, it's kind of analytically nice to work with log-likelihood, and second, multiplying small numbers the numerical errors start to add up and start to propagate.If we are summing together small numbers,the numerical errors are not so serious.并且log函数是单调的,所有东西保持不变。
BigCLAM解F版本一:梯度上升
通过邻居neibor来迭代求解F矩阵
Note:
1. 使用梯度方法的一个假设:认为函数has some kind of convex, smooth shape.并且这里我们是要求最大值而不是最小值,所以会使用梯度上升而不是梯度下降。如果将p(u,v),1-p(u,v)互换应该就可以使用梯度下降了。
2. 这里求梯度是对给定的node进行的,对应F的一行向量Fu。为理解,可以将Fu设成一个标量(数),或者一个一个地看向量Fu的元素怎么求导的就得出了向量形式的求导结果。
3. 这个算法可能导致其中的strands FuC变成负值,每次迭代都要检测并修正。
算法的缺点
导致这个的原因:由于计算和式(梯度式中第二部分)要遍历给定节点的所有非邻节点,要遍历整个数据。
BigCLAM解F版本二:cache缓存加速
缓存F中所有行的向量行和,就是将F所有行加起来。
BigClam的伸缩性scalability
更多关于求解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]
《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)
海量数据挖掘MMDS week3:社交网络之社区检测:基本技巧的更多相关文章
- 海量数据挖掘MMDS week3:社交网络之社区检测:高级技巧
http://blog.csdn.net/pipisorry/article/details/49052255 海量数据挖掘Mining Massive Datasets(MMDs) -Jure Le ...
- 海量数据挖掘MMDS week3:流算法Stream Algorithms
http://blog.csdn.net/pipisorry/article/details/49183379 海量数据挖掘Mining Massive Datasets(MMDs) -Jure Le ...
- 海量数据挖掘MMDS week2: 局部敏感哈希Locality-Sensitive Hashing, LSH
http://blog.csdn.net/pipisorry/article/details/48858661 海量数据挖掘Mining Massive Datasets(MMDs) -Jure Le ...
- 海量数据挖掘MMDS week7: 局部敏感哈希LSH(进阶)
http://blog.csdn.net/pipisorry/article/details/49686913 海量数据挖掘Mining Massive Datasets(MMDs) -Jure Le ...
- 海量数据挖掘MMDS week1: Link Analysis - PageRank
http://blog.csdn.net/pipisorry/article/details/48579435 海量数据挖掘Mining Massive Datasets(MMDs) -Jure Le ...
- 海量数据挖掘MMDS week2: Association Rules关联规则与频繁项集挖掘
http://blog.csdn.net/pipisorry/article/details/48894977 海量数据挖掘Mining Massive Datasets(MMDs) -Jure Le ...
- 海量数据挖掘MMDS week7: 相似项的发现:面向高相似度的方法
http://blog.csdn.net/pipisorry/article/details/49742907 海量数据挖掘Mining Massive Datasets(MMDs) -Jure Le ...
- 海量数据挖掘MMDS week6: MapReduce算法(进阶)
http://blog.csdn.net/pipisorry/article/details/49445519 海量数据挖掘Mining Massive Datasets(MMDs) -Jure Le ...
- 海量数据挖掘MMDS week6: 决策树Decision Trees
http://blog.csdn.net/pipisorry/article/details/49445465 海量数据挖掘Mining Massive Datasets(MMDs) -Jure Le ...
随机推荐
- 克拉默法则(Cramer's Rule)的证明
克拉默法则: 先说一下为什么要写这个,作为一个大一新生,必须要学的就包括了线性代数,而且线性代数等数学知识对计算机专业也有很大帮助.但是在学习过程中遇到一个讲解的不清楚的知识点(Cramer's Ru ...
- 再见,segmentfault
再见,segmentfault 太多的Bug,对segmentfault已经爱不起了. 重回博客园~
- 01_自动化构建工具之Maven
目前技术中存在问题(为什么使用Maven): 一个项目就是一个工程: 缺陷:如果项目太过庞大,就不适合使用package来划分层次,最好是一个模块就是一个工程,利于分工协作. 解决:Maven可以将一 ...
- Dapper连接与事务的简单封装
增删改查方面,已经有Dapper.Extension这么强大的工具了,我也实在没啥好写的,就随手写了个看起来比较优雅的连接与事务的封装.在之后使用Dapper.Extension类库时,完全可以照搬进 ...
- Java第8次实验(IO流)
参考资料 本次作业参考文件 正则表达式参考资料 第1次实验 1. 字符流与文本文件:使用 PrintWriter(写),BufferedReader(读) 参考文件:基础代码目录Student.jav ...
- 一个环形公路,上面有N个站点,A1, ..., AN,其中Ai和Ai+1之间的距离为Di,AN和A1之间的距离为D0。 高效的求第i和第j个站点之间的距离,空间复杂度不超过O(N)。
//点数 #define N 10 //点间距 int D[N]; //A1到每个Ai的距离 int A1ToX[N]; void preprocess() { srand(time(0)); //随 ...
- 使用maven执行单元测试总结
maven本身没有单元测试框架,但是maven的default生命周期的test阶段绑定了maven-surefire-plugin插件,该插件可以调用Junit3.Junit4.TestNG等Jav ...
- 2014 BDTC 参会有感
中国大数据技术大会(Big Data Technology Conference,BDTC)是目前国内最具影响.规模最大的大数据领域的技术盛会.大会的前身是Hadoop中国云计算大会(Hadoop i ...
- 好用的有多种样式的搜索界面创建UISearchBar
之前看到一个别人封装的第三方PYSearch,相当于一个完整的搜索界面,今天在这里进行代码说明一下. 将PYSearch拖进项目或者使用Pods进行加库,我是直接拖进项目中进行使用 PYSearch库 ...
- Java学习之栈和堆的区别
在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配. 当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配 ...