本文总结之日CS224W Winter 2021只更新到了第四节,所以下文会参考2021年课程的PPT并结合2019年秋季课程进行总结以求内容完整
课程主页:CS224W: Machine Learning with Graphs
视频链接:【斯坦福】CS224W:图机器学习( 中英字幕 | 2019秋)
上面介绍了非重叠社区挖掘的Louvin算法,本节聊聊重叠社区的挖掘过程。两类社区区别可以反映在邻接矩阵上。
通过前面的介绍,基于图生成模型,可以生成一个网络。相反的基于一个网络,能否确定一个图生成模型。并且模型自动划分节点的社区结构。
听起来好像想的过分美好,但实际上是真实可行的。而这个特殊的图生成模型就是 AGM模型(Community-Affiliation Graph Model)。
整个算法步骤分为三步
模型是一个二部图结构。用表示.四个参数含义如下:
背景社区
称为 ε − 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)))虽然,AMG模型是在重叠社区挖掘的时候引入的,但并不意味着AMG模型只能生成有重叠社区的网络。事实上,其非常灵活,可以生成不同类型的社区结构。如
通过上面可以看到AGM的参数主要有三个:
对于归属关系M 用矩阵F(Factor Matrix
)表示,矩阵的列为社区数,列为对应节点,每元素表示该节点归属社区的强度
。从强度到节点间连接概率的推导过程如下图:
看到连乘和求大值,很自然会想到取对数,转化为求和,便于求导。优化采用梯度下降
优化参数。
从确定的节点强度举证就可以反推得到社区内部节点之间的连接概率。
社区数,决定了因子矩阵F的列数。论文中采用的做法也非常巧妙,将其初始化一个较大的社区数 ,通过在优化函数上加入L1正则,让模型自己学习。类似逻辑回归中对于特征的选则。最终列不全为零的个数就是最终的社区数。
通过最终的AGM模型可以很容易得到最终的社区结构。
本算法是老师在2014年提出的算法(原论文为参考资料3),**其时间复杂度低,可以运用于大型网络数据。**另外一提,cs224w 每年老师讲的内容的详细程度不尽相同,建议大家结合起来一起看。