网络表示学习简单总结(一)

1. 网络表示学习的定义

       简单来说,网络表示学习就是通过相关算法将网络中的节点用一个低维稠密的向量空间表示(其中向量空间的维度远远小于节点的总个数),并且能够保持原有网络的相关结构和特征,然后再输入到深度学习的相关算法去完成节点分类,链路预测以及网络可视化等任务。

2. 网络表示学习算法的研究

2.1 基于网络结构的网络表示学习

2.1.2 利用矩阵特征向量计算:早期的算法研究就是谱聚类算法通过计算关系矩阵的前k个特征向量或奇异向量来得到k维的节点表示。这里说的关系矩阵一般就是网络的邻接矩阵或Laplace矩阵。这种基于谱聚类方法的时间复杂度较高。另一方面,谱聚类方法需要将关系矩阵整体存在于内存中,空间复杂度也较高。
2.2.2 基于简单神经网络的算法:1)DeepWalk:是将word2vec的概念进行了推广,该概念假设两个具有相似上下文的单词具有相似的含义,从而学习单词的嵌入。对于DeepWalk则采用截断随机游走依次遍历网络中的每个节点,从而获得关于每个节点的若干个节点序列,然后用Skip-gram和Hierarchical Softmax模型对随机游走序列中每个局部窗口内的节点对进行概率建模,最大化随机游走序列的似然概率,并最终使用随机梯度下降学习参数。这样的方法可以不用网络节点邻接矩阵进行建模,也能获取每个节点的结构信息。2)LINE:基于广度优先算法,提出两个相似性的概念,1阶相似性表示网络的局部特征(观察到的节点连接刻画1阶相似性),2阶相似性表示网络的全局特征(用不直接相连的节点的共同邻居刻画两个节点之间的2阶相似性),在训练时采用了词向量的负采样的方法降低时间复杂度。该算法有效适用于大规模的有向带权图。
2.1.3 基于矩阵分解的方法:1)GraRep算法考虑了一种特别的关系矩阵. GraRep 通过SVD分解对该关系矩阵进行降维从而得到k步网络表示.形式化地,假设首先对邻接矩阵A进行归一化处理,使得矩阵A中每行的加和等于1.则GraRep算法在计算k步网络表示时分解了矩阵Ak,该关系矩阵中的每个单元对应着两个节点间通过k步的随机游走抵达的概率.更进一步,GraRep尝试了不同的k值, 并将不同k值对应的k步网络表示拼接起来,组成维度更高,表达能力也更强的节点表示.但 GraRep 的主要缺点在于其在计算关系矩阵Ak的时候计算效率很低。
2.1.4 基于深层神经网络的方法:1)SDNE算法:使用深层神经网络对节点表示间的非线性进行建模,一是由Laplace矩阵监督的建模第一级相似度模块,另一个是由无监督的深层自编码器对第二级相似度关系进行建模。采用深层自编码器的中间层作为节点的向量表示。

你可能感兴趣的:(网络表示学习,网络表示学习,人工智能)