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有以下两点好处:

  1. 可并行:因为是局部的操作,所以对于大型的graph来说可以同时进行多个局部的操作。
  2. 可适应性:由于是局部的操作,所以可以只观察到局部的变化。
    对于单词来说,需要学习一个概率模型,比如说已知一句话由"I like studying English"组成,需要选择一个概率模型,使得我们在知道前面几个词的情况下,预测最后一个词是"English"的概率。对于random walk也是一样的,由于node是顶点,所以需要将顶点映射成向量,也就是我们所要做的降维。

其中,由于从上下文来预测缺失词太复杂,这里使用缺失词来预测上下文。

以上为算法,最后输出就是我们需要学习的embedding映射函数。其中,通过梯度下降的方法来更新参数:![[Pasted image 20241224154857.png]]

2. Matrix factorization

通过计算图的\(Laplacian\)矩阵,产生特征向量作为基底,重新构成解空间。

3. GNN

posted @ 2024-12-24 15:52  肥仓鼠大魔王  阅读(124)  评论(0)    收藏  举报