2 GraphEmbedding
图嵌入
0 引言
概述
在图上进行每一个节点的embedding,最终得到的结果是图上每一个节点的嵌入表示。这里主要通过无监督的方法实现embedding的过程。主要包括五种传统算法
- Deepwalk
- LINE
- SDNE
- node2vec
- struct2vec

作用
n维onehot向量表示图上的每一个节点。有多少个节点,就有多少onehot向量。如果节点的数量比较多,那么n的维度就会比较大。
代码
https://github.com/shenweichen/GraphEmbedding
1 deepwalk
对每一个节点进行多次随机游走得到一系列语义信息。

w表示前后照顾的节点的数量、d表示嵌入后向量的维度、$\gamma$表示迭代的次数、t表示行走的步长

嵌入的维度为d=2的时候,就可以进行二维可视化了。如下所示,通过嵌入后的二维向量可是话,能够得到点的距离关系,相当于利用了图特征。

2 LINE
- 基于以下两个原理:
- 节点相互连接,并且相互连接的节点之间的权重很大,具有很高的相似性。
- 节点的邻居如果很相似的话,那么这两个节点即使不连接,那么他们也非常相似。
- 同时使用了一阶相似度和二阶相似度。
3 node2vec
- 同质性:节点和周围节点的是非常相似的。
- 结构等价性:结构等价性
- 有策略的随机游走。根据概率进行随机游走,选择游走序列。

4 struct2vec
这个可以以后再学,有点复杂。而且大概率用不到。
- 能够捕捉不相邻节点的同构信息。
5 SDNE
- 使用deeplearning的方式训练节点的embedding

本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Estom的博客!









