Graph Embedding
今天审稿子的时候看到文中提到了graph embedding,正好后面要做图聚类,顺便总结一下。
什么是graph embedding?图当中经常会用矩阵来表示点和边之间的关系,降维就是降低这个矩阵的维度的同时,保持其原有的特征结构。现有的graph embedding技术主要分成三类:
1. random walk:
比较典型的方法是deepwalk,其输入是一个图,输出的结果是图当中顶点的向量表示。笔记参考:https://zhuanlan.zhihu.com/p/45167021。
Problem Definition
假设每个顶点有\(s\)维的向量表示,一共有\(|V|\)个顶点,如果点还有标注,那么会形成标注图,也就是每个顶点还会构成一个\(|Y|\)维度的向量。
所谓random walk,就是在模仿word2vec遍历单词序列一样,random walk是在节点之间随机游走,形成一条路径,而长度固定的random walk就是truncated random walk。random walk有以下两点好处:
- 可并行:因为是局部的操作,所以对于大型的graph来说可以同时进行多个局部的操作。
- 可适应性:由于是局部的操作,所以可以只观察到局部的变化。
对于单词来说,需要学习一个概率模型,比如说已知一句话由"I like studying English"组成,需要选择一个概率模型,使得我们在知道前面几个词的情况下,预测最后一个词是"English"的概率。对于random walk也是一样的,由于node是顶点,所以需要将顶点映射成向量,也就是我们所要做的降维。
其中,由于从上下文来预测缺失词太复杂,这里使用缺失词来预测上下文。
以上为算法,最后输出就是我们需要学习的embedding映射函数。其中,通过梯度下降的方法来更新参数:![[Pasted image 20241224154857.png]]
2. Matrix factorization
通过计算图的\(Laplacian\)矩阵,产生特征向量作为基底,重新构成解空间。

浙公网安备 33010602011771号