Network Embedding中方法回顾

网络嵌入方法(Network Embedding)旨在学习网络中节点的低维度潜在表示,所学习到的特征表示可以用作基于图的各种任务的特征,例如分类,聚类,链路预测和可视化。

传统意义上的 Graph Embedding 被看成是一个降维的过程,而主要的方法包括主成分分析(PCA)和多维缩放(MDS)。所有的方法都可以理解成运用一个 n × k 的矩阵来表示原始的 n × m 矩阵,其中 k << n。

在 2000 年代早期,又提出了其他方法,如 IsoMap 和 LLE,以保持非线性流形的整体结构。总的来说,这些方法都在小型网络上提供了良好的性能。 然而这些方法的时间复杂性至少是二次的,这使得它们无法在大规模网络上运行。

另一类流行的降维技术使用可从图中导出的矩阵的光谱特性(例如,特征向量)来嵌入图的节点。拉普拉斯特征映射(Laplacian eigenmaps)通过与其k个最小非平凡特征值相关联的特征向量表示图中的每个节点。 

MDS

MDS证明过程 

Isomap

LLE

LLE用到了近邻的思想,用近邻样本来线性加权来近似目标样本;Embedding是指在低维空间学习嵌入表示,保持这些表示的近邻关系和原来的近邻关系基本一致。LLE的总体思想可以概括为两个部分:高维空间近邻线性重构 & 低维空间嵌入表示保持近邻关系

LLE优化目标\min_{w} \ \ \ \left \| x_{i}-\sum_{j\in \mathbb{N}_{x_{i}}}w_{i,j}x_{j} \right \| \\ s.t. \ \ \mathbf{w}\mathbf{1}^{n}=1

LLE求解

PCA 

设有m条n维数据,将m条n维数据化为m行n列的矩阵X

  • 将矩阵X中的每一行减去改行的均值
  • 计算协方差矩阵Cov(X)=\frac{1}{m}XX^{T}
  • 计算协方差矩阵的特征值和特征向量
  •  计算协方差矩阵的特征值,将特征值从高到低排序,然后每个特征值对应一个特征向量。前k个特征向量组成矩阵P

  • 降维后的数据为Y=PX

Laplacian Eigenmaps

普拉斯特征映射是一种基于图的降维算法,它希望在高维相互间有关系的点(在图中相连的点)在降维后的空间中尽可能的靠近,从而在降维后仍能保持原有的数据结构。

使用时算法具体步骤为:

  • 步骤1:构建图:使用某一种方法来将所有的点构建成一个图,例如使用KNN算法,将每个点最近的K个点连上边。K是一个预先设定的值。
  • 步骤2:确定权重:确定点与点之间的权重大小,一种可选的简化设定是W_{i,j}=1如果点ii,jj相连,否则W_{i,j}=0
  • 步骤3:特征映射: 计算拉普拉斯矩阵L的特征向量与特征值:Ly=\lambda Dy
  • 使用最小的m个非零特征值对应的特征向量作为降维后的结果输出。

W是图的邻接矩阵,对角矩阵D是图的度矩阵(D_{ii}=\sum_{i=1}^{n}W_{i,j}),L=D-W为图的拉普拉斯矩阵

DeepWalk

DeepWalk算法主要包括两个步骤,第一步为随机游走采样节点序列,第二步为使用skip-gram model word2vec学习表达向量。

①构建同构网络,从网络中的每个节点开始分别进行Random Walk 采样,得到局部相关联的训练数据; ②对采样数据进行SkipGram训练,将离散的网络节点表示成向量化,最大化节点共现,使用Hierarchical Softmax来做超大规模分类的分类器

RandomWalk是一种可重复访问已访问节点的深度优先遍历算法。给定当前访问起始节点,从其邻居中随机采样节点作为下一个访问节点,重复此过程,直到访问序列长度满足预设条件。

Node2Vec

通过特定的游走方式进行采样,对于每个点都会生成对应的序列。再将这些序列视为文本导入word2vec中的cbow或者skip-gram模型,即可得到每个节点的向量(对应word2vec中每个词的向量)

说到随机游走的采样,本文分析了两种图的游走方式,深度优先游走(Depth-first Sampling,DFS)广度优先游走(Breadth-first Sampling,BFS)

复杂网络处理的任务其实离不开两种特性,前面也提到过:一种是同质性,就是之前所说的社区。一种就是结构相似性,值得注意的是,结构相似的两个点未必相连,可以是相距很远的两个节点。

BFS倾向于在初始节点的周围游走,可以反映出一个节点的邻居的微观特性;而DFS一般会跑的离初始节点越来越远,可以反映出一个节点邻居的宏观特性。

对于一个随机游走,如果已经采样了t,现在停留在节点v上,那么下一个要采样的节点x是哪个?作者定义了一个概率分布,也就是一个节点到它的不同邻居的转移概率:

直观的解释一下这个分布:

  • 如果t与x相等,那么采样x的概率为 \frac{1}{p} ;
  • 如果t与x相连,那么采样x的概率1;
  • 如果t与x不相连,那么采样x概率为\frac{1}{q}

参数p、q的意义分别如下:

返回概率p:

  • 如果p>max(q,1),那么采样会尽量不往回走,对应上图的情况,就是下一个节点不太可能是上一个访问的节点t。
  • 如果p<min(1,q)  ,那么采样会更倾向于返回上一个节点,这样就会一直在起始点周围某些节点来回转来转去。

出入参数q:

  • 如果q>1,那么游走会倾向于在起始点周围的节点之间跑,可以反映出一个节点的BFS特性。
  • 如果q<1,那么游走会倾向于往远处跑,反映出DFS特性。

当p=1,q=1时,游走方式就等同于DeepWalk中的随机游走。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值