[论文阅读笔记] Community aware random walk for network embedding
本文结构
- 解决问题
- 主要贡献
- 算法原理
- 参考文献
(1) 解决问题
先前许多算法都只考虑了网络的局部拓扑结构信息,忽略了原始网络中潜藏的社区信息。
(2) 主要贡献
Contribution: 为了结合聚类将表示学习应用于基于图结构的社区发现任务上,本文在随机游走过程中结合了社区信息,使得同社区节点具有相近的表示向量,方便聚类任务。
(3) 算法原理
CARE算法框架主要包含两个部分:首先在图上做随机游走(可以捕获社区信息),其次将得到的节点序列输入Skip-Gram模型学习节点表示向量嵌入(不再赘述,参考DeepWalk)。
结合社区信息的随机游走策略:
由于该随机游走策略设计得比较简单,因此可以直接从源代码进行剖析。首先,如果当前节点有邻居(line 3),则下一跳节点是在当前节点邻居中进行选择还是在与当前节点同社区的其他节点上进行选择是由一个超参数α确定的,可以使用生成随机数的方式来确定(line 4)。以上是当前节点有邻居的情况,那如果当前节点没有邻居呢?则往回遍历该随机游走序列,选择最近采样的且有邻居还没有包含在该序列中的节点进行回溯(line 8 - 9)。
以上有一个问题,就是游走向同社区节点跳转,但是我们怎么得到网络中的社区信息呀? 论文中是通过基于模块度优化的Louvain算法来构造社区信息的。
通过以上方式生成同构网络上的随机游走序列之后,采用Skip-Gram模型训练节点向量即可。
(4) 参考文献
Keikha M M, Rahgozar M, Asadpour M. Community aware random walk for network embedding[J]. Knowledge-Based Systems, Elsevier, 2018, 148: 47–54.