图神经网络之图嵌入笔记学习

图嵌入综述

图分析任务的分类:(a)节点分类(b)链接预测(c)聚类(d)可视化
真实的图(网络)往往是高维、难以处理的,嵌入的思想是在向量空间中保持连接的节点彼此靠近
图嵌入的目的是发现高维图的低维向量表示

图嵌入的方法

(1)基于因子分解的方法;
(2)基于随机游走的方法;
(3)基于深度学习的方法。

预备知识
符号定义

一阶近似:边缘近似的权值也称为节点vi和vj之间的一阶近似值,因为他们是两个节点之间第一也是最重要的相似性度量。

二阶近似:一对节点之间的二阶近似描述了该对节点领域结构的相似性。
在这里插入图片描述
在上图中因为6和7之间有边连接,所以6和7 一阶近似。5和6之间虽然没有边,但是他们有4个相同的邻居节点,所以5和6二阶近似。

基于因子的分解方法

LLE假设每个节点都是嵌入空间中相邻节点的线性组合。如果假设图G的邻接矩阵元素代表节点j能够表示节点i的权重,我们定义:

在这里插入图片描述

于是我们可以通过最小化:

在这里插入图片描述

来求解嵌入后的图:
在这里插入图片描述

为了去除退化解,嵌入的方差被约束为:

在这里插入图片描述

考虑到平移不变性,嵌入以0为中心:
在这里插入图片描述

上述约束优化问题可以简化为特征值问题,其解是取稀疏矩阵
在这里插入图片描述

的底部d+1特征向量,并丢弃与最小特征值对应的那个特征向量。
Laplacian Eigenmaps

拉普拉斯特征映射的目的是在权重wij较高时,保持两个节点嵌入后离得较近,也就是说被分割的太远的两个相似节点会得到更多的反馈(惩罚),具体来说,就是要最小化以下目标函数:

在这里插入图片描述

其中L是图G的拉普拉斯算子,目标函数受到:
在这里插入图片描述

约束,以消除琐碎的解。
Cauchy graph embedding
拉普拉斯特征映射对对嵌入节点之间的距离使用二次方的惩罚函数:
在这里插入图片描述

因此,在保持节点之间的相似性的同时,节点之间的差异性会被破坏。柯西嵌入通过使用:
在这里插入图片描述

替换原有的惩罚函数来解决这个问题,重新排列后,要最大化的目标函数变成:
在这里插入图片描述

伴随着:
在这里插入图片描述


在这里插入图片描述

两个约束。新的目标函数是距离的反函数,因此更加强调相似的节点而不是不同的节点。

基于随机游走的方法

DeepWalk

DeepWalk方法受到word2vec的启发,首先选择某一特定点为起始点,做随机游走得到点的序列,然后将这个得到的序列视为句子,用word2vec来学习,得到该点的表示向量。Deepwalk通过随机游走可以获图中点的局部上下文信息,因此学到的表示向量反映的是该点在图中的局部结构,两个点在图中共有的邻近点(或者高阶邻接点)越多则对应的两个向量之间的距离就越短。

node2vec

与DeepWalk相似,node2vec通过最大化随机游走得到的序列中的节点出现的概率来保持节点之间的高阶邻近性。与DeepWalk最大的区别在于,node2Vec采用有偏随机游走,在广度优先(bfs)和深度优先(dfs)图搜索之间进行权衡,从而产生比DeepWalk更高质量和更多信息量的嵌入。
在这里插入图片描述
BFS和DFS的例子

Hierarchical representation learning for networks(HARP)

DeepWalk和node2vec随机初始化节点嵌入以训练模型。由于它们的目标函数是非凸的,这种初始化很可能陷入局部最优。HARP引入一种策略,通过更好的权重初始化来改进解决方案并避免局部最优。为此,HARP通过使用图形粗化聚合层次结构上一层中的节点来创造节点的层次结构。然后他生成最粗糙的图的嵌入,并用所学到的嵌入初始化精炼图的节点嵌入(层次结构中的一个)。它通过层次结构传播这种嵌入,以获得原始图形的嵌入。因此,可以将HARP与基于随机游走的方法结合使用,以获得更好的优化函数解。

基于深度学习的方法

Structural deep network embedding(SDNE)

SDNE建议使用深度自动编码器来保持一阶和二阶网络邻近度。它通过联合优化这两个近似值来实现这一点。该方法利用高度非线性函数来获得嵌入。模型由两部分组成:无监督和监督。前者包括一个自动编码器,目的是寻找一个可以重构其领域节点的嵌入。后者基于拉普拉斯特征映射,当相似顶点在嵌入空间中彼此映射得很远时,该映射将会受到惩罚。

在这里插入图片描述
半监督的SDNE模型

Deep neural networks for learning graph representations(DNGR)

DNGR结合了随机游走和深度自动编码器。该模型由3部分组成:随机游走,正点互信息(PPMI)计算和叠加去噪自编码器。在输入图上使用随机游走模型生成概率共现矩阵,将该矩阵转化为PPMI矩阵,输入到叠加去噪自动编码器中得到嵌入。输入PPMI矩阵保证了自动编码器模型能够捕获更高阶的近似度。此外,使用叠加去噪自动编码器有助于模型在图中存在噪声时的鲁棒性,以及捕获任务(如链路预测和节点分类)所需的底层结构。

Graph convolutional networks(GCN)

上面讨论的基于深度网络的方法,即SDNE和DNGR,以每个节点的全局(一行DNGR的PPMI和SDNE的邻接矩阵)作为输入。对于大型稀疏图来说,这可能时一种计算代价很高且不适用方法。图卷积网络(GCN)通过在图上定义卷积算子来解决这个问题。该模型迭代的聚合了节点的邻域嵌入,并使用在前一次迭代中学到的嵌入及其嵌入一个节点来描述全局邻域。
参考链接:https://zhuanlan.zhihu.com/p/62629465
参考链接:https://www.jianshu.com/p/c76cb0ce3c8a

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习深度学习、自然语言处理等人工智能基础知识总结以及源代码.zip 说明 机器学习深度学习、自然语言处理基础知识总结。 目前主要参考李航老师的《统计学习方法》一书,也有一些内容例如XGBoost、聚类、深度学习相关内容、NLP相关内容等是书中未提及的。 由于github的markdown解析器不支持latex,因此笔记部分需要在本地使用Typora才能正常浏览,也可以直接访问下面给出的博客链接。 Document文件夹下为笔记,Code文件夹下为代码,Data文件夹下为某些代码所使用的数据集,Image文件夹下为笔记部分所用到的片。 由于时间和精力有限,部分代码来自github开源项目,如Seq2Seq、Transformer等部分的代码,部分章节代码待补充。 机器学习 线性回归(笔记) 感知机(笔记+代码) KNN(笔记+代码) 朴素贝叶斯(笔记+代码) 决策树(笔记+代码) 逻辑回归(笔记+代码) 最大熵(笔记+代码) SVM(笔记+代码) AdaBoost(笔记+代码) GBDT(笔记+代码) EM算法(笔记+代码) 隐马尔可夫模型(笔记+代码) 条件随机场(笔记) 随机森林(笔记+代码) XGBoost(笔记) 聚类(笔记) 特征工程之特征选择(笔记) 特征工程之降维算法(笔记深度学习 神经网络笔记+代码) RNN(笔记) LSTM和GRU(笔记) CNN(笔记) 深度学习中的最优化方法(笔记) 自然语言处理 词嵌入之Word2Vec(笔记) 词嵌入之GloVe(笔记) 词嵌入之FastText(笔记) TextCNN(笔记+代码) Seq2Seq(笔记+代码) Transformer(笔记+代码) BERT(笔记) LSTM+CRF进行序列标注(笔记) 主题模型(笔记

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值