CS224W|CS224W-图神经网络 笔记4.3(Community Structure in Networks - 网络中重叠社区的挖掘——BigCLAM 算法)
CS224W-图神经网络 笔记4.3:Community Structure in Networks - 网络中重叠社区的挖掘——BigCLAM 算法
本文总结之日CS224W Winter 2021只更新到了第四节,所以下文会参考2021年课程的PPT并结合2019年秋季课程进行总结以求内容完整
课程主页:CS224W: Machine Learning with Graphs
视频链接:【斯坦福】CS224W:图机器学习( 中英字幕 | 2019秋)
文章目录
- CS224W-图神经网络 笔记4.3:Community Structure in Networks - 网络中重叠社区的挖掘——BigCLAM 算法
-
- 1 引言
- 2 BigClAM 算法
-
- 2.1 主要思路
- 2.2 AGM模型(Community-Affiliation Graph Model)
- 3 图拟合
-
- 3.1 确定M
- 3.2 确定社区内连接概率 p c p_c pc?
- 3.3 确定社区数
- 4 总结
- 5 参考文章
1 引言 上面介绍了非重叠社区挖掘的Louvin算法,本节聊聊重叠社区的挖掘过程。两类社区区别可以反映在邻接矩阵上。
文章图片
2 BigClAM 算法 2.1 主要思路
通过前面的介绍,基于图生成模型,可以生成一个网络。相反的基于一个网络,能否确定一个图生成模型。并且模型自动划分节点的社区结构。
听起来好像想的过分美好,但实际上是真实可行的。而这个特殊的图生成模型就是 AGM模型(Community-Affiliation Graph Model)。
整个算法步骤分为三步
- 利用AGM(Community Affiliation Graph Model)构造一个图生成模型。
- 根据我们实际的图G,迭代AGM的模型参数,寻找一个最优拟合(fitting)实际图的AGM。
- 通过这个AGM,确定每个节点所属的社区
模型是一个二部图结构。用表示.四个参数含义如下:
文章图片
- 社区 A 内部的每对节点相连的概率为 p c p_c pc?.每个社区对应一个。
- 两个社区重叠的部分越多,则重叠区域的节点彼此相连的概率越高
- 对于彼此之间没有共同社区的两个节点之间的连接概率并不为0,而为(,)=,叫做
背景社区
称为 ε ? c o m m u n i t y \varepsilon - community ε?community 。论文中建议 ( ε = 2 ∣ E ∣ / ( ∣ V ∣ ( ∣ V ∣ ? 1 ) ) ) (\varepsilon = 2|E|/(|V|(|V|-1))) (ε=2∣E∣/(∣V∣(∣V∣?1)))
文章图片
3 图拟合 通过上面可以看到AGM的参数主要有三个:
- 节点归属关系 Membership
- 社区内连接概率p c p_c pc?
- 社区数
文章图片
3.1 确定M
对于归属关系M 用矩阵F(
Factor Matrix
)表示,矩阵的列为社区数,列为对应节点,每元素表示该节点归属社区的强度
。从强度到节点间连接概率的推导过程如下图:文章图片
看到连乘和求大值,很自然会想到取对数,转化为求和,便于求导。优化采用
梯度下降
优化参数。文章图片
3.2 确定社区内连接概率 p c p_c pc?
从确定的节点强度举证就可以反推得到社区内部节点之间的连接概率。
文章图片
3.3 确定社区数
社区数,决定了因子矩阵F的列数。论文中采用的做法也非常巧妙,将其初始化一个较大的社区数 ,通过在优化函数上加入L1正则,让模型自己学习。类似逻辑回归中对于特征的选则。最终列不全为零的个数就是最终的社区数。
文章图片
通过最终的AGM模型可以很容易得到最终的社区结构。
4 总结 【CS224W|CS224W-图神经网络 笔记4.3(Community Structure in Networks - 网络中重叠社区的挖掘——BigCLAM 算法)】本算法是老师在2014年提出的算法(原论文为参考资料3),**其时间复杂度低,可以运用于大型网络数据。**另外一提,cs224w 每年老师讲的内容的详细程度不尽相同,建议大家结合起来一起看。
5 参考文章
- http://snap.stanford.edu/agm/
- http://snap.stanford.edu/class/cs224w-2019/slides/
- http://ilpubs.stanford.edu:8090/1103/
推荐阅读
- 深度学习|PyTorch 具体显存占用分析
- 深度学习|波士顿房价预测
- 自动驾驶|自动驾驶算法-滤波器系列(五)——高级运动模型在UKF中的应用
- 机器学习|决策树和随机森林
- 数学建模算法与应用|人口模型(Malthus模型、阻滞增长模型、美国人口的预报模型(例题,matlab工具箱求解))
- 机器学习|集成学习、boosting、bagging、Adaboost、GBDT、随机森林
- 数学建模算法与应用|最短路问题 、迪克斯特拉(Dijkstra)算法、Floyd算法、matlab、python
- 数学建模算法与应用|插值方法(一维插值、三次样条插值、二维插值的matlab自带函数,python实现/作图)
- 数学建模算法与应用|整数规划,背包问题、指派问题、钢管切割问题的Matlab和python实现