链接: link.
提出了DeepWalk,这是一种用于学习网络中顶点的潜在表示的新方法。这些潜在的表示编码在连续向量空间中的社交关系,这可用于统计模型中。
DEEPWALK使用从截断的随机游走中获取的局部信息来学习潜在表示,通过把游走视为句子的等效。我们演示了DeepWalk针对社交网络(如BlogCatalog,Flickr和YouTube)的多个多标签网络分类任务的潜在表示。当标记数据稀疏时,DeepWalk的表示比baselines高了10%的F1分数,使用的训练数据少60%。
DeepWalk也是可扩展的。它是一种在线学习算法,可以构建有用的增量结果,并且可以简单地并行化。这些特性使其适用于广泛的现实世界应用,如网络分类和异常检测
网络表示的稀疏性既是优势,也是弱点。稀疏性使得能够设计有效的离散算法,但是使得在统计学习中更难概括。网络中的机器学习应用(例如网络分类,内容推荐,异常检测和缺失链路预测)必须能够处理这种稀疏性才能生存。
在本文中我们首次将深度学习(无监督特征学习)技术引入网络分析。我们开发了一种算法DeepWalk,通过对短随机游走流进行建模来学习图顶点的社交表示。社交表示是捕获邻域相似性和社区成员的顶点的潜在特征。这些潜在表示在具有相对较少维度的连续向量空间中编码社交关系。DeepWalk概括了神经语言模型,以处理由一组随机游走生成组成的特殊语言。
DeepWalk将图作为输入并生成潜在表示作为输出。
图1:我们提出的方法学习了Rd中社交互动的潜在空间表示。学习的表示对社区结构进行编码,因此可以用于标准的分类方法。
我们评估DeepWalk在大型异构图中具有挑战性的多标签网络分类问题的性能。
本文贡献:
我们考虑将社交网络的成员分类为一个或多个类别的问题。
我们提出了一种不同的方法来捕获网络拓扑信息。我们提出了一种无监督的方法,它可以学习捕获图形结构的特征而不依赖于标签的分布,而不是将标签空间混合为特征空间的一部分。结构表示和标记任务之间的这种分离避免了级联错误
我们寻求学习有以下特征的社交表示:
我们的方法通过使用最初为语言建模设计的优化技术来学习来自短随机游走流的顶点的表示来满足这些要求。
以 vi为根节点生成的一条随机游走路径为Wvi。路径上的点为随机变量W(1)vi,,,W(k)vi,其中W(k+1)vi是从顶点Vk邻居中随机选择的顶点。随机游走已被用作内容推荐和社区检测中各种问题的相似性度量。随机游走也是一类output sensitive算法的基础,它们使用随机游走来计算与输入图形的大小一致的时间上的局部社区结构信息。
除了捕获社区信息之外,使用随机游走作为我们算法的基础还为我们提供了另外两个理想的属性。首先,局部探索很容易并行化。几个随机游走者(在不同的线程,进程或机器中)可以同时探索同一图形的不同部分。其次,依赖于从短随机游走获得的信息使得可以适应图结构中的小变化而无需全局重新计算。我们可以迭代地更新学习模型,通过从变化的区域线性到整个图形的新的随机游走。
如果连通图的度分布遵循幂律(即无标度),我们观察到顶点出现在短随机游走中的频率也将遵循幂律分布。
语言建模的目标是估计出现在语料库中的特定单词序列的可能性。表征学习方面最近的工作重点是使用概率神经网络来构建单词的一般表示,从而将语言建模的范围扩展到其原始目标之外。
我们提出语言建模的概括,通过短随机游走流来探索图形。这些游走可以被认为是一种特殊语言的短句和短语;直接模拟是估计在给定随机游走中到目前为止所访问的所有先前顶点下 观察顶点vi的可能性
我们的目标是学习潜在的表示,而不仅仅是节点共现的概率分布。引入映射函数,该映射表示与图中的每个顶点v相关联的潜在社交表示(实际上我们用矩阵表示映射函数)。
最近语言建模的松弛使预测问题发生了变化。首先,它不使用上下文来预测缺失的单词,而是使用一个单词来预测上下文。其次,上下文由出现在给定单词的右侧和左侧的单词组成。最后,它消除了对问题的排序约束,相反,要求模型最大化任何单词出现在上下文中的概率,在不知道给定单词的offset(偏移)下。
我们认为这些松弛对于社会表征学习尤其可取。首先,顺序独立性假设更好地捕获随机游走提供的“接近度”感。此外,这种松弛对于通过构建小模型来加速训练时间非常有用,因为一次给出一个顶点。
优化。构建捕获顶点之间的局部图结构中的共享相似性的表示。具有相似邻域的顶点将获得类似的表示(编码共引用相似性),允许对机器学习任务进行概括。
通过结合截断的随机游走和语言模型,我们制定了满足所有所需属性的方法。该方法生成低维度的社交网络的表示,并且存在于连续向量空间中。它的表示潜在的社区成员形式进行编码。
唯一需要的输入是语料库和词汇表。DeepWalk认为一组短截断的随机游走作为自己的语料库,把图形顶点作为自己的词汇表。
该算法由两个主要部分组成; 第一个随机游走生成器,第二个是更新程序。随机游走生成器采用图G并均匀地采样随机顶点vi作为随机游走Wvi的根。游走从访问的最后一个顶点的邻居均匀地采样,直到达到最大长度t。
算法1中的第3-9行显示了我们方法的核心。外循环指定了次数,即我们应该在每个顶点开始随机行走。我们将每次迭代视为对数据进行“传递”,并在此传递期间对每个节点进行一次游走。在每次传递开始时,我们生成一个随机排序来遍历顶点。这不是严格要求的,但众所周知的是加速随机梯度下降的收敛 。在内层循环中,我们迭代图的所有顶点。对于每个顶点vi,我们生成随机游走,然后使用它来更新我们的表示(第7行)。我们使用SkipGram算法来更新这些表示。
SkipGram是一种语言模型,它最大限度地提高了出现在一个窗口内的单词在一个句子中的并发概率。
算法2迭代出现在窗口w(第1-2行)内的随机游走中的所有可能的搭配。对于每个,我们将每个顶点vj映射到其当前表示向量。给定vj的表示,我们希望最大化其邻居在游走中的概率(第3行)。我们可以使用几种分类选择来学习这种后验分布。为了加快训练时间,我们使用Hierarchical Softmax 来近似概率分布。
计算分区函数(归一化因子)是昂贵的,因此我们将使用Hierarchical softmax对条件概率进行分解。我们将顶点分配给二叉树的叶子,将预测问题转化为最大化层次结构中特定路径的概率。
通过为随机游走中的频繁顶点分配较短的路径,我们可以进一步加快训练过。哈夫曼编码用于减少树中频繁元素的访问时间。
用SGD优化参数,使用反向传播算法估计导数
鉴于我们的更新很稀疏,并且我们不需要获得访问模型共享参数的锁,异步随机梯度下降(ASGD)将实现最佳的收敛速度
流式方法可以在不知道整个图的情况下实现。在此变体中,来自图的小游走直接传递到表示学习代码,并且模型直接更新。对学习过程的一些修改也是必要的。首先,使用衰减学习率可能不再合乎需要,因为它假定了总语料库大小。我们可以将学习率初始为小的常数值。这需要更长的时间来学习,但在某些应用中可能是值得的。其次,我们不一定能建立一个参数树。如果V的基数已知(或可以有界),我们可以为该最大值构建Hierarchical Softmax树。当第一次看到顶点时,可以将顶点分配给剩余的一个叶子。如果我们能够先验地估计顶点频率,我们仍然可以使用哈夫曼编码来减少频繁的元素访问时间。
一些图被创建为与一系列元素交互的代理的副产品(例如,用户在网站上的页面导航)。当通过这种非随机游走流创建图形时,我们可以使用此过程直接提供建模阶段。以这种方式采样的图不仅将捕获与网络结构相关的信息,还将捕获遍历路径的频率。
这种方法可以与流变体结合使用,在不需要明确构建整个图的情况下,在不断发展的网络上训练特征。使用这种技术维护表示可以实现网络规模分类,而无需处理网络规模图的麻烦
在许多多标签分类任务中对其进行了全面评估,并分析了它在多个参数中的灵敏度
我们随机抽样标记节点的一部分,并将其用作训练数据。其余节点用作测试。我们重复这个过程10次,并报告Macro-F1和Micro-F1的平均表现。
我们将BlogCatalog网络上的训练比率从10%提高到90%。我们的结果如表2所示。粗体数字代表每列中的最高性能.
DeepWalk的性能始终优于EdgeCluster,Modularity和wvRN。SpectralClustering的性能证明更具竞争力,但当Macro-F1(<=20%)和Micro-F1(<=60%)上的标记数据稀疏时,DeepWalk仍然表现优异。
当仅标记图的一小部分时,这种强大的性能是我们方法的核心优势。在下面的实验中,我们研究了表示在更稀疏标记图上的表现
我们将Flickr网络上的训练比率从1%变为10%。这对应于在整个网络中标记有大约800到8,000个节点用于分类。表3显示了我们的结果,这与先前的实验一致。相对于MicroF1,DeepWalk的性能优于所有基线至少3%。此外,只有3%的图表被标记时,其Micro-F1性能优于所有其他方法,即使它们已被给予10%的数据。换句话说,DeepWalk可以比基线减少60%的训练数据。它在Macro-F1中表现也相当不错,最初表现接近SpectralClustering,但之后改善了1%
YouTube网络比我们之前尝试的网络大得多,其大小阻止了我们的两种基线方法(SpectralClustering和Modularity)在其上运行。它比我们之前考虑过的更接近真实世界图。
实验表明,DeepWalk明显优于用于创建图表示的可扩展基线EdgeCluster。
DeepWalk可以扩展到大图,并且在这种稀疏标记的环境中表现非常好。
为了评估DeepWalk参数的变化如何影响其在分类任务中的表现,我们对两个多标签分类任务(Flickr和BlogCatalog)进行了实验。
我们提出了DeepWalk,一种用于学习顶点的潜在社交表示的新方法。使用来自截断的随机游走的局部信息作为输入,我们的方法学习编码结构规则的表示。
作为在线算法,DeepWalk也是可扩展的。我们的结果表明,我们可以为图创建有意义的表示,这些图对于标准光谱方法来说太大了。在如此大的图上,我们的方法显着优于其他设计用于稀疏性的方法。我们还表明我们的方法是可并行化的,允许工作者同时更新模型的不同部分