精华内容
下载资源
问答
  • Attention-guide Walk Model in Heterogeneous Information Network for Multi-style Recommendation Explanation
  • DeepWalk:Online Learning of Social RepresentationsAbstractIntroduction Abstract DeepWalk是一种用于学习网络节点潜在表示的方法。这些潜在表示方法可以在一个连续的向量空间中编码网络中的社会关系,并能很好...

    Abstract

    DeepWalk是一种用于学习网络节点潜在表示的方法。这些潜在表示方法可以在一个连续的向量空间中编码网络中的社会关系,并能很好地被统计模型利用。DeepWalk在语言转图片的语言模型和非监督学习中取得了卓越的成果。
    DeepWalk通过从随机游走中获得的本地信息,将游走视为句子的等效,从而来学习潜在表示。作者在Youtube、BlogCatalog等社交网络的多标签网络分类任务上使用了DeepWalk的潜在表示。结果证明Deepwalk的效果超过了这项任务的基准水平,尤其在缺少信息的情况下,DeepWalk使得网络可以全局查看。在标记数据是稀疏的情况下,DeepWalk的 F F F1得分最高可以比其他方法高近10%。在一些实验中,DeepWalk可以只使用减少60%的数据就取得优于基准方法的结果。
    DeepWalk也可扩展。 它是一种在线学习算法,可建立有用的增量结果,并且可以并行化。 这些特征使其有广泛的实际应用,例如网络分类和异常检测。

    1.Introduction

    网络表示的稀疏性既是优点也是缺点。稀疏性允许设计高效的离散算法,但使得学习过程中更难收敛。网络中的机器学习模型必须有能力处理这种稀疏性。
    在这篇文章中,作者介绍了深度学习的技巧,并被首次证明可成功应用于自然语言处理的网络分析。作者设计了DeepWalk算法,通过对一段短的随机游走建模,来学习图顶点的社会表示。图顶点的社会表示是一种潜在表示,这种表示可以包含了邻居的相似性和邻近区域的成员关系。这种潜在表示在一个连续低维向量空间里编码了顶点的社会关系。DeepWalk生成了一个自然语言模型,用于处理由一系列随机游走组成的特殊语言。这些自然语言模型已经被用于处理人类语言的语义、系统结构,甚至逻辑推理。
    DeepWalk以图为输入,以潜在表示为输出。下图就是将作者方法应用于学习好的Karate网络的效果。
    在这里插入图片描述除了惊人的相似性之外,作者注意到图(1b)的线性可分离部分对应于通过输入图(1a)中的模块化最大化找到的聚类(显示为顶点颜色)。
    为了将DeepWalk应用于现实场景中,作者用DeepWalk来挑战大型异质图的多标签网络分类任务。在关系分类问题中,特征向量之间的链接违反了传统的 i . i . d . i.i.d. i.i.d.假设。解决此问题的方法通常使用近似推理技术来利用依赖信息来改善分类结果。作者的方法不同于这些方法因为他通过学习图的标签无关表示。作者的标签无关表示的质量不受选择哪个标记的顶点所影响,因此可以在多个任务中共享同一个表示。
    在创建社交维度时,DeepWalk胜过其他潜在表示方法,尤其是在标记节点稀缺时。 使用非常简单的线性分类器(例如逻辑回归),作者的表示方法就可能具有出色的性能。 作者的表示形式是通用的,可以与任何分类方法(包括迭代推断方法)结合使用。 DeepWalk是一种可并行化的在线算法,可实现所有这些功能。
    作者的贡献点如下:
    ·将深度学习作为一种图分析的工具,以构建适用于统计建模的强大表示形式。 DeepWalk学习短时随机游走中存在的结构规律。
    ·作者在多个社交网络上广泛评估了作者在多标签分类任务的表示。 作者发现,在存在标签稀疏性的情况下,分类性能显着提高,在作者考虑的最稀疏问题上,Micro F F F1的改进率为5%-10%。 在某些情况下,即使训练数据减少了60%,DeepWalk的表现也可能胜过其他方法。
    ·通过使用并行实现方法构建Web规模图(例如YouTube)的表示,作者展示了算法的可扩展性。 此外,作者描述了构建作者的方法的流版本所需的最小更改。
    本文的其余部分安排如下。 在第2和第3节中,作者讨论了数据网络中分类的问题公式,以及它与我们的工作之间的关系。 在第4节中,作者介绍了DeepWalk,即社交表示学习方法。 作者将在第5节中概述实验,并在第6节中介绍其结果。在第7节中,作者将对相关工作进行讨论并得出结论。

    2.Problem Definition

    考虑将社交网络的成员分为一个或多个类别。 令 G = ( V , E ) G =(V,E) G=VE,其中 V V V代表网络的成员, E E E是它们的连接, E ⊆ ( V × V ) E⊆(V×V) EV×V,而 G G GL = ( V , E , X , Y ) =(V,E,X,Y) =VEXY是部分 带标签的社交网络,具有属性 X ∈ R X∈R XR|V|×S,其中 S S S是每个属性向量的特征空间的大小, Y ∈ R Y∈R YR|V|×|y|,y是标签集。
    传统的机器学习分类,旨在学习将X的元素映射到标签集Y的映射H。在本文的案例中,作者利用嵌入在G结构中的示例的相关性的重要信息来达到优秀的效果。
    在文献中,这被称为关系分类(或集体分类问题)。 传统解决关系分类问题作方法将该问题作为无向马尔可夫网络中的推理提出,然后使用迭代近似推理算法(例如迭代分类算法,Gibbs Sampling 或标签松弛)进行计算给定网络结构下标签的后验分布。
    作者提出了一种不同的方法来捕获网络拓扑信息。 与其将标签空间作为特征空间的一部分进行混合,作者提出了一种无监督方法,该方法学习出能够捕获与标签分布无关的图结构的特征。
    结构表示和标记任务之间的这种分离避免了级联错误,该级联错误可能在迭代方法中发生。 而且,相同的表示可以用于与该网络有关的多个分类问题。
    作者的目标是学习出 X X XE ∈ R ∈R R|V|×d,其中d是较小的潜在维数。 这些低维表示形式是分布式的。 意思是每个社会现象都由维度的子集表达,每个维度都对空间表达的社会概念的子集有所贡献。
    利用这些结构特征,作者将扩大属性空间以帮助分类决策。 这些特征是通用的,可以与任何分类算法(包括迭代方法)一起使用。 但是,作者认为这些功能的最大用途是易于与简单的机器学习算法集成。 它们将在现实世界的网络中适当扩展,如作者将在第6节中所示。

    3.Learning Social Representation

    我们力求学习具有以下特质的社会表示:
    适应性:真实的社交网络正在不断发展; 新的社会关系不应需要重复全部学习过程。
    社区意识:潜在维度之间的距离应代表用于评估网络相应成员之间的社会相似性的度量。 这允许具有同构性的网络泛化。
    低维:当标签数据稀疏时,低维模型可以更好地泛化,并加快收敛和推演速度。
    连续的:我们需要潜在表示来对连续空间中的部分社区成员进行建模。 除了展示社区成员的细微差别,连续表示在社区间具有平滑决策边界,从而可以进行更可靠的分类。
    使用最初为语言建模设计的优化技术,通过从短随机游走流中学习顶点的表示形式,我们满足上述这些要求。 在这部分,我们回顾了随机游走和语言建模的基础,并描述了它们的组合是如何满足我们的要求的。
    在这里插入图片描述

    3.1 Random Walk

    我们将根为顶点 v v vi的随机游走表示为 W W Wvi。 这是具有随机变量 W W Wvi1 W W Wvi2,…, W W Wvik,则 W W Wvik+1是从顶点 v v vk的邻居中随机选择的一个顶点。 随机游走已被用于内容推荐和社区检测中各种问题的相似性度量。 它们也是一类输出敏感算法的基础,该算法使用它们以与输入图的大小成线性关系的时间复杂度计算本地社区结构信息。
    正是这种与本地结构的联系促使我们使用短随机游走流作为我们从网络提取信息的基本工具。 除了捕获社区信息之外,使用随机游走作为我们算法的基础还为我们提供了两个其他理想的特性。 首先,本地探索很容易并行化。 几个随机的walker(在不同的线程,进程或计算机里)可以同时浏览同一图形的不同部分。 其次,依靠从短距离随机游走中获得的信息,可以适应图结构中的细微变化,而无需全局重新计算。 我们可以以与整个图呈线性关系的时间复杂度,在发生变化的图区域里使用新的随机游走迭代地更新学习的模型。

    3.2 Connection:Power laws

    选择在线随机游走作为获取图结构的初始方法之后,我们现在需要一种合适的方法来获取此信息。 如果连接图的度数分布遵循幂定律(即无标度),则我们观察到在短随机游走中顶点出现的频率也将遵循幂律分布。
    自然语言中的单词频率遵循相似的分布,并且来自语言建模的技术解释了这种分布行为。 为了强调这种相似性,我们在图2中显示了两种不同的幂律分布。第一种来自无标度图上的一系列短随机游动,第二种来自英语维基百科上的100,000条文章。
    我们工作的核心贡献在于,可以将用于建模自然语言(符号频率遵循幂律分布(或齐普夫定律)的模型)的技术重新用于网络中的社区结构建模。 我们将在本节的其余部分中回顾语言建模方面不断发展的工作,并将其转换为学习满足我们标准的顶点表示。

    3.3 Language Modeling

    语言建模的目的是估计在词库中出现特定单词序列的可能性。 形式化描述:给定单词 W W W1n =( w w w0 w w w1,··· w w wn)的序列,其中 w w wi V V V V V V是词汇量),我们想最大化Pr( w w wn | w w w0 w w w1,·· ·, w w wn-1)在所有训练词库上。 表示学习的最新工作集中于使用概率神经网络来构建单词的一般性表示,这将语言建模的范围扩展到了其最初的目标之外。
    在这项工作中,我们提出了一种语言建模的一般化方法,通过一系列短随机游走来探索图。 这些游走可以被认为是特殊语言中的短句子和短语。 直接的模拟是估计在给定在随机游走下已访问的所有顶点中,观察到顶点 v v vi的可能性。
    在这里插入图片描述
    我们的目标是学习潜在表示,而不仅仅是节点共现的概率分布,因此我们引入映射函数Φ:v∈V 7→R | V |×d。 该映射Φ表示与图中的每个顶点v相关联的潜在社会表示。 (实际上,我们用自由参数的| V |×d矩阵表示Φ,稍后将其用作XE)。 然后,问题是估计可能性:
    在这里插入图片描述然而,随着步行长度的增加,计算该条件概率变得不可行。
    语言建模的松弛使预测问题成为要解决的问题。 首先,它不是使用上下文来预测缺失的单词,而是使用一个单词来预测上下文。 其次,上下文由出现在给定单词左右两侧的单词组成。 最后,它消除了对问题的排序约束,而是要求模型最大化任何单词在上下文中出现的概率,而无需知道其相对于给定单词的偏移量。 在顶点表示建模方面,这产生了优化问题:
    在这里插入图片描述
    我们发现这些松弛对于社会表示学习特别理想。 首先,顺序独立性假设可以更好地捕捉随机游走所提供的“近距离”感。此外,这种松弛对于通过一次建立一个顶点来构建小模型来加快训练时间非常有用。
    通过公式3解决优化问题,建立了可以捕获顶点之间局部图结构中的共享相似性的表示。 具有相似邻域的顶点将获得相似的表示,从而可以泛化机器学习任务。
    通过结合截断的随机游走和语言模型,我们制定了一种满足我们所有期望属性的方法。 此方法生成低维的社交网络表示,并存在于连续的向量空间中。 它的表示编码了社区成员的潜在形式,并且由于该方法输出有用的中间表示,因此它可以适应不断变化的网络拓扑。

    4.Method

    在本节中,我们讨论算法的主要组成部分。 我们还介绍了我们方法的几种变体,并讨论了它们的优点。
    在这里插入图片描述

    4.1 Overview

    像在任何语言建模算法中一样,唯一需要的输入是一个词库和一个词汇表 V V V。DeepWalk将一组短截短的随机游走视作自己的词库,而图顶点则是它自己的词汇表( V = V V = V V=V)。 虽然在训练之前知道 V V V和随机训练中顶点的频率分布是有益的,但该算法没有必要像4.2.2所示那样。

    4.2 Algorithm: DeepWalk

    在这里插入图片描述

    该算法包括两个主要部分; 首先是随机游走发生器,其次是更新过程。 随机游走生成器采用图G并统一采样随机顶点 v v vi作为随机游走 W W Wvi的根。 游走从访问的最后一个顶点的邻居均匀采样,直到达到最大长度( t t t)。 虽然我们在实验中将随机游走的长度设置为固定,但并不限制随机游走的长度为同样的长度。 这些游走可能会重新开始(即有回到其根源的概率),但是我们的初步结果并未显示出使用重新开始的任何优势。 实际上,我们的实现指定了从每个顶点开始的长度为 t t t的随机游走 γ γ γ的数量。
    算法1中的3-9行显示了我们方法的核心。 外循环指定了随机游走次数 γ γ γ,我们应该在每个顶点处开始随机游走。 我们将每次迭代视为对数据进行“传递”,并在此传递过程中对每个节点进行一次游走采样。 在每次遍历开始时,我们都会生成一个随机排序以遍历顶点。 这不是严格要求的,但是众所周知,它可以加快随机梯度下降的收敛速度。
    算法1中的3-9行显示了我们方法的核心。 外循环指定了次数γ,我们应该在每个顶点处开始随机游走。 我们将每次迭代视为对数据进行“传递”,并在此传递过程中对每个节点进行一次步行采样。 在每次遍历开始时,我们都会生成一个随机排序以遍历顶点。 这不是严格要求的,但是众所周知,它可以加快随机梯度下降的收敛速度。
    在内循环中,我们遍历图的所有顶点。 对于每个顶点,我们生成一个随机游动| Wvi | = t,然后使用它来更新我们的表示形式(第7行)。 我们使用SkipGram算法根据等式3中的目标函数更新这些表示。
    在这里插入图片描述

    4.2.1 SkipGram

    SkipGram是一种语言模型,可最大程度地提高出现在窗口 w w w中句子中的单词之间的共现概率。 它使用以下独立性假设近似公式3中的条件概率
    在这里插入图片描述算法2迭代出现在窗口 w w w(第1-2行)中的随机游走中所有可能的搭配。 对于每个顶点,我们将每个顶点 v v vj映射到其当前表示向量 Φ Φ Φ v v vj)∈ R R Rd(见图3b)。给定 v v vj表示形式,我们希望最大化其在游走中邻居的概率(第3行)。 使用几种分类器来学习这样的后验分布,例如,使用逻辑回归对先前的问题建模将导致大量的标签(等于| V |),可能达数百万或数十亿。 计算资源可能跨越整个计算机集群。为避免这种必要性并加快训练时间,我们改用Hierarchical Softmax来近似概率分布。

    4.2.2 Hierarchical Softmax

    给定uk∈V,在第3行中计算Pr(uk |Φ(vj))是不可行的。 计算分区函数(归一化因子)的代价很高,因此我们将使用 Hierarchical softmax分解条件概率。 我们将顶点分配给二叉树的叶子,从而将预测问题转化为最大化层次结构中特定路径的概率(参见图3c)。 如果到顶点uk的路径由一系列树节点(b0,b1,…,b[log | V |] (上取整))标识,(b0 =根,b[log | V |] (上取整) = uk),则
    在这里插入图片描述现在,Pr(bl |Φ(vj))可以用一个二进制分类器建模,该分类器分配给节点bl的父节点,如公式6所示
    在这里插入图片描述其中Ψ(bl)∈Rd是分配给树节点bl的父级的表示形式。 这降低了从O(| V |)到O(log | V |)计算Pr(uk |Φ(vj))的计算复杂度。
    通过为随机游走中的频繁顶点分配较短的路径,我们可以进一步加快训练过程。 霍夫曼编码用于减少树中频繁元素的访问时间。

    在这里插入图片描述

    4.2.3 Optimization

    模型参数集为θ= {Φ,Ψ},其中每个的大小为O(d | V |)。 随机梯度下降(SGD)用于优化这些参数(第4行,算法2)。 使用反向传播算法估计导数。 SGD的学习率最初在训练开始时设置为2.5%,然后随着到目前为止看到的顶点数量线性减少。

    4.3 Parallelizability

    如图2所示,社交网络中随机游走的顶点的频率分布和语言中的单词都遵循幂律分布。这会导致少量顶点出现长尾,因此,更新影响Φ的本质是稀疏的。在多处理器的情况下,这使我们可以使用异步随机梯度下降(ASGD)。鉴于我们的更新是稀疏的,并且我们没有获得访问模型共享参数的锁,因此ASGD将实现最佳收敛速度。当我们在一台使用多线程的机器上进行实验时,已证明该技术具有高度的可扩展性,可用于超大规模的机器学习。图4展示了并行化DeepWalk的效果。它表明,随着我们将处理器数量增加到8,处理BlogCatalog和Flickr网络的速度是一致的(图4a)。它还表明,相对于串行运行DeepWalk而言,预测性能没有损失(图4b)。
    在这里插入图片描述

    4.4 Algorithm Variants

    在这里,我们讨论了我们提出的方法的一些变体,我们认为可能会引起人们的兴趣。

    4.4.1 Streaming

    这种方法的一个有趣的变体是流传输方法,可以在不了解整个图形的情况下实现它。在此变体中,来自图的短游走将直接传递给表示学习代码,并且直接更新模型。对学习过程的一些修改也将是必要的。首先,使用递减的学习速率可能不再合乎需要,因为它假设知道了总语料库大小。相反,我们可以将学习率α初始化为较小的恒定值。这将需要更长的时间来学习,但是在某些应用程序中值得。其次,我们不必再构建参数树。如果V的基数已知(或可以有界),我们可以为该最大值构建Hierarchical Softmax树。可以在第一次看到顶点时将其分配给其余的叶子之一。如果我们有能力先验估计顶点频率,我们仍然可以使用霍夫曼编码来减少频繁的元素访问时间。

    4.4.2 Non-random walk

    某些图是由agent与一系列元素(例如,用户在网站上的页面导航)交互的副产品创建的。 当这样的非随机游走流创建图时,我们可以使用此过程直接为建模阶段提供数据。 以这种方式采样的图形不仅将捕获与网络结构有关的信息,而且还将捕获与遍历路径的频率有关的信息。
    我们认为,该变体还包含语言建模。 可以将句子视为经过适当设计的语言网络的有针对性的遍历,而SkipGram之类的语言模型旨在捕获这种行为。
    可以将这种方法与流式变体(第4.4.1节)结合使用,以在不断发展的网络上训练要素,而无需明确构造整个图。 使用此方法来建立和更新表示可以实现Web规模分类,而无需处理Web规模图。

    5. EXPERIMENTAL DESIGN

    在本节中,我们概述了将在实验中使用的数据集和方法。 复现我们结果的代码和数据将在第一作者的网站上提供。(实验部分比较清晰,只选择性进行翻译)

    5.1 Datasets

    An overview of the graphs we consider in our experiments is given in Figure 1.
    • BlogCatalog is a network of social relationships provided by blogger authors. The labels represent the topic categories provided by the authors.
    • Flickr is a network of the contacts between users of the photo sharing website. The labels represent the interest groups of the users such as ‘black and white photos’.
    • YouTube is a social network between users of the popular video sharing website. The labels here represent groups of viewers that enjoy common video genres (e.g. anime and wrestling).

    5.2 Baseline Methods

    To validate the performance of our approach we compare it against a number of baselines:
    • SpectralClustering : This method generates a representation in Rd from the d-smallest eigenvectors of L L L, the normalized graph Laplacian of G. Utilizing the eigenvectors of L L L implicitly assumes that graph cuts will be useful for classification.
    • Modularity : This method generates a representation in Rd from the top-d eigenvectors of B B B, the Modularity matrix of G. The eigenvectors of B encode information about modular graph partitions of G . Using them as features assumes that modular graph partitions will be useful for classification.
    • EdgeCluster : This method uses k-means clustering to cluster the adjacency matrix of G. Its has been shown to perform comparably to the Modularity method, with the added advantage of scaling to graphs which are too large for spectral decomposition.
    • wvRN : The weighted-vote Relational Neighbor is a relational classifier. Given the neighborhood N N Ni of vertex v v vi, wvRN estimates Pr(yi |Ni ) with the (appropriately normalized) weighted mean of its neighbors (i.e Pr(yi |Ni ) = 1 P wij Pr(yj | Nj )). It has shown Z vj ∈Nisurprisingly good performance in real networks, and has been advocated as a sensible relational classification baseline .
    • Majority: This naive method simply chooses the most frequent labels in the training set.

    6. Experiment

    在本节中,我们将对我们的方法进行实验分析。 我们对许多多标签分类任务进行了彻底评估,并分析了其在多个参数中的敏感性。

    6.1 Multilabel-Classification

    为了便于我们的方法与相关基准方法之间的比较,我们使用与[39,40]中完全相同的数据集和实验程序。 具体来说,我们随机采样标记节点的一部分(TR),并将其用作训练数据。 其余节点用作测试。 我们重复此过程10次,并报告Macro-F1和Micro-F1的平均性能。 如果可能,我们直接在此处报告原始结果[39,40]。
    对于所有模型,我们使用由LibLinear 扩展实现的一对一逻辑对数回归,以返回最可能的标签,如[39]所示。 我们提供(γ= 80,w = 10,d = 128)的Deep-Walk结果。 (SpectralClustering,Modularity,EdgeCluster)的结果使用了Tang和Liu的首选维数d = 500。

    6.2 Flickr

    在此实验中,我们将Flickr网络上的训练率(TR)从1%更改为10%。 这相当于在整个网络中大约有800至8,000个节点被标记为分类。 表3给出了我们的结果,与先前的实验一致。 相对于Micro-F1,DeepWalk优于所有基准方法至少3%。 此外,当仅标记了图表的3%时,其他方法已经有了10%的数据,Micro-F1性能也优于其他所有方法。 换句话说,DeepWalk的训练数据不到60%,表现就优于基准方法。 它在Macro-F1中的性能也相当好,最初的性能接近SpectralClustering,但差距仅达到1%。

    6.1.3 Youtube

    YouTube网络比我们之前尝试过的网络要大得多,并且它的规模使我们无法运行两种基准方法(SpectralClustering和Modularity)。 它比我们之前考虑的更接近真实世界的图。
    表4中列出了将训练比率(TR)从1%更改为10%的结果。它们表明,DeepWalk在创建图形表示形式EdgeCluster方面明显优于基准方法。 当使用1%的标记节点进行测试时,Micro-F1可以提高14%。Macro-F1显示相应的10%的增加。 随着训练数据的增加,这种领先优势逐渐缩小,但是DeepWalk在Micro-F1中领先3%,而在Macro-F1中令人印象深刻的5%改善。
    此实验展示了使用社交表示学习进行多标签分类可能带来的性能优势。 DeepWalk可以缩放到大图,并且在这种稀疏标记的环境中表现出色。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    6.2 Paremeter Sensitivity

    为了评估DeepWalk的参数化更改如何影响其对分类任务的性能,我们对两个多标签分类任务(Flickr和BlogCatalog)进行了实验。 为了简洁起见,我们已固定窗口大小和步行长度以强调局部结构(w = 10,t = 40)。 然后,我们更改潜在维数(d),每个顶点开始的遍历数(γ)以及可用的训练数据量(TR),以确定它们对网络分类性能的影响。

    6.2.1 Effect of Dimensionality

    图5a显示了增加可用于我们模型的潜在维数的效果。 图5a1和5a3检查了改变尺寸和训练比率的影响。 Flickr和BlogCatalog的性能非常一致,表明模型的最佳尺寸取决于训练示例的数量。 (请注意,Flickr的1%的示例与BlogCatalog的10%的示例数量差不多)。
    图5a2和5a4检查了改变每个顶点的维数和游走次数的影响。 维度的相对性能在不同的γ值上相对稳定。 这些图表有两个有趣的观察结果。 首先,通过在两个图中每个节点开始γ= 30个游走,可以最大程度地实现收益。 第二个是两个图之间的不同γ值非常一致。 Flickr的边缘比BlogCatalog多一个数量级,我们发现这种行为很有趣。
    这些实验表明,我们的方法可以制作各种大小的有用模型。 他们还表明,模型的性能取决于所看到的随机游走次数,并且模型的适当维数取决于可用的训练示例。

    在这里插入图片描述在这里插入图片描述在这里插入图片描述

    6.2.2 Effect of sampling frequency

    图5b显示了增加γ(从每个顶点开始的随机游走次数)的影响。 对于不同的尺寸(图5b1,图5b3)和训练数据量(图5b2,图5b4),结果非常一致。 最初,增加γ对结果有很大的影响,但是这种影响很快变慢(γ> 10)。 这些结果表明,仅需少量的随机游走,我们便能够学习有意义的顶点潜在表示。

    7. Related Work

    我们提出的方法与以前的工作之间的主要区别可以归纳如下:
    1.我们学习潜在的社会表征,而不是计算与中心性或分区有关的统计数据。
    2.我们不尝试扩展分类程序本身(通过集体推断或图核)。
    3.我们提出了一种仅使用本地信息的可扩展的在线方法。 大多数方法都需要全局信息,并且是离线的。
    4.我们将无监督表示学习应用于图形。 在本节中,我们讨论网络分类和无监督特征学习中的相关工作。

    7.1 Relational Learning

    关系分类(或集体分类)方法[15、25、32]使用数据项之间的链接作为分类过程的一部分。 集体分类问题中的精确推论是NP难的,解决方案集中在近似推论算法的使用上,这可能无法保证收敛。
    与我们工作最相关的关系分类算法通过学习集群[33],在附近节点之间添加边缘[14],使用PageRank [24]或通过扩展关系分类以将其他特征考虑在内来整合社区信息[43] 。 我们的工作采用了截然不同的方法。 代替新的近似推理算法,我们提出了一种学习网络结构表示的过程,然后可以将其用于现有的推理过程(包括迭代过程)。
    我们还提出了许多用于从图形生成特征的技术[13、17、39-41]。 与这些方法相比,我们将特征创建过程构架为表示学习问题。
    已经提出了Graph Kernels [42]作为使用关系数据作为分类过程的一部分的方法,但是除非近似[20],否则它会非常缓慢。 我们的方法是互补的; 我们将学习将其直接用作任何分类方法的特征,而不是将结构编码为内核函数的一部分。

    7.2 Unspervisied Feature Learning

    已经提出了分布式表示来建模概念之间的结构关系[18]。 这些表示通过反向传播和梯度下降进行训练。 计算成本和数值不稳定导致这些技术被放弃了将近十年。 最近,分布式计算允许训练更大的模型[4],并且出现了无监督学习算法的数据增长[10]。 分布式表示通常通过神经网络进行训练,这些网络在诸如计算机视觉[22],语音识别[8]和自然语言处理[1,7]的各个领域都取得了进步。

    8. Conclusion

    我们提出了DeepWalk,这是一种学习顶点的潜在社会表示的新颖方法。 使用来自截断的随机游走的本地信息作为输入,我们的方法学习了一种编码结构规律性的表示形式。 在各种不同图形上进行的实验说明了我们的方法在挑战性多标签分类任务中的有效性。
    作为一种在线算法,DeepWalk也是可扩展的。 我们的结果表明,我们可以为对于基准方法而言太大的图创建有意义的表示。 在如此大的图上,我们的方法大大优于其他为稀疏性而设计的方法。 我们还表明,我们的方法是可并行的,允许处理器同时更新模型的不同部分。
    除了有效和可扩展之外,我们的方法还是一种有吸引力的语言建模方法思路。 这种联系是相互有好处的。 语言建模的进步可能会继续为网络生成改进的潜在表示。 在我们看来,语言建模实际上是从不可观察的语言图中采样的。 我们认为,从建模可观察图获得的想法可能反过来可以改进建模不可观察图的想法。
    我们在该领域的未来工作将集中于进一步研究这种对偶性,使用我们的结果改进语言建模,并加强该方法的理论依据。

    展开全文
  • Walk hand in hand with me through all eternityHave faith, believe in me, give me your handLove is a symphony of perfect harmonyWhen lovers such as we walk hand in handBe not afraid, for I am with you ...

    Walk hand in hand with me through all eternity

    Have faith, believe in me, give me your hand

    Love is a symphony of perfect harmony

    When lovers such as we walk hand in hand

    Be not afraid, for I am with you all the while

    So lift your head up high and look toward the sky

    Walk hand in hand with me, this is our destiny

    No greater love could be, walk hand in hand

    Walk with me

    Be not afraid, for I am with you all the while

    So lift your head up high and look up to the sky

    Walk hand in hand with me, this is our destiny

    No greater love could be, walk hand in hand

    Walk with me

    展开全文
  • Pillar Walkthrough 翻译

    千次阅读 2013-04-05 17:18:19
    Pillar Walkthrough Note 阅读这份手册之前,假定读者已经完成了Salt Stack基础 手册的阅读。 Pillar接口是Salt众多组件中最重要的部署组件,Pillar被用来为特别的从服务器生成特定数据的接口。在Pillar中...

    官方文档地址:http://docs.saltstack.com/topics/tutorials/pillar.html

    Pillar Walkthrough

    Note

    阅读这份手册之前,假定读者已经完成了Salt Stack基础 手册的阅读。


    Pillar接口是Salt众多组件中最重要的部署组件,Pillar被用来为特别的从服务器生成特定数据的接口。在Pillar中生成的数据提供给所有的Salt组件并且被用来一下目的:

    高度敏感数据:

    所有通过pillar传输的信息能够保证被提交给目标主机,这使得Pillar引擎在Salt中被用来管理安全的信息,如,密码的Key和密码口令等。

    从服务器配置:

    从服务模块如远程执行模块,状态,反馈信息都可以使用存储在pillar中的数据来配置。

    变量:

    那些需要分配给特定的从服务器或者群组的变量可以在pillar中定义并且能够在SLS配置模板和稳重中使用。

    任意数据:

    Pillar能够包含任意基本的数据结构,如,列表数据,或者k/v存储。可以让数据容易在SLS文档中使用。

    因此,Pillar是在使用Slat的过程中最重要系统之一,这篇教程设计用来在几分钟之内编写一个简单的pillar文件,然后运用这个Pillar 使它的数据是可用的在pillar文件中。


    设置Pillar

    默认情况下,Pillar 已经运行在了Salt系统中,在从服务器上的Pillar的数据能够通过下面的命令查看到:

    # salt '*' pillar.data

    默认情况下,主服务器的配置文件内容装载在fillar中对所用的从服务器来说,通过配置主服务器的配置文件来使全局的从服务器生效。

    Pillar是类似内置的state 文件,它有sls文件组成且有一个视图文件,就像state tree(翻译为,state 文件)。相对于state文件,Pillar 存储在Slat主服务器上的不同目录。默认的目录是/srv/pillar


    注意:

         Pillar的目录能够通过修改主服务配置文件中的pillar_roots选项进行更改。


    在配置Pillar之前,需要创建/srv/pillar目录。

    # mkdir /srv/pillar

    一个简单的视图文件,格式类似state,需要创建,其内容如下:

    /srv/pillar/top.sls

    base:
      '*':
        - data

    视图文件包含data.sls文件,这个文件在所有的从服务器上生效,/srv/pillar/data.sls文件如下:

    /srv/pillar/data.sls

    info: some data

    至此,保存该文件,从服务器上的pillars信息将被更新:

    # salt '*' pillar.data

    info关键字的信息会出现在返回的pillar数据中


    更多复杂的数据:

    Pillar文件是SLS文件,像states,但是不想sates文件,他们不需要定义格式,数据可以是任意的,下面的例子中,通过UID设置用户数据,

    /srv/pillar/usrs/init.sls

    users:
      thatch: 1000
      shouse: 1001
      utahdave: 1002
      redbeard: 1003


    注意:

    相同的目录中查找 states文件在Pilla目录中,因此 users/init.sls文件能够在视图文件中被引用。


    视图文件需要更新一下以引用这个sls文件:

    /srv/pillar/top.sls

    base:
      '*':
        - data
        - users

    现在的话,这些数据对从服务器来说是可用的了。使用Jinjia 在state文件中引用pillar 中的数据。

    /srv/salt/users/init.sls

    {% for user, uid in pillar.get('users', {}).items() %}
    {{user}}:
      user.present:
        - uid: {{uid}}
    {% endfor %}
    以上可以把users 安全的定义在一个pillar中,并且user 数据可以应用在sls文件中。



    Pillar作为states 的参数

    Pillar最重要的一个抽象功能就是能够作为states的参数。而不是定义宏或者函数,在states文件内容中,可以自由地参数化相对于所有的从服务器的pillar.

    以上的话可以让Salt变的更加灵活,这意味着一些简单的sls格式的文件能够用作结构的参数而不需要重构state文件树。

    一个简单的例子是根据不同的Linux 分发版本引导安装不同的软件包在pillar中定义。

    /srv/pillar/pkg/init.sls

    pkgs:
      {% if grains['os_family'] == 'Debian' %}
      apache: httpd
      vim: vim-enhanced
      {% elif grains['os_family'] == 'RedHat' %}
      apache: apache2
      vim: vim
      {% elif grains['os'] == 'Arch' %}
      apache: apache
      vim: vim
      {% endif %}

    这个新的pkg sls需要增加到视图文件中:

    /srv/pillar/top.sls

    base:
      '*':
        - data
        - users
        - pkg

    至此,从服务器将会根据各自的操作系统自动对应在pillar 只内定义的软件安装包,所以sls文件可以安全的引用:

    /srv/salt/apache/init.sls

    apache:
      pkg.installed:
        - name: {{ pillar['pkgs']['apache'] }}

    更或者,假如pillar不可以用,也可以这样设置缺省值:

    NOte:

          在这个例子中使用的pillar.get 函数是在Salt 0.14.0版本中增加的。

    /srv/salt/apache/init.sls

    apache:
      pkg.installed:
        - name: {{ salt['pillar.get']('pkgs:apache', 'httpd') }}

    在上面的例子中,假如  pillar 的变量pillar['pkgs'] ['apache'] 在从服务器上没有被设置,那么默认的'httpd'将会被使用。


    Pillar使简单的states变的灵活

    Pillar其中一个设计目标是使简单的sls格式变得易用和灵活,而不是需要复杂和重构state文件。

    简单的格式:

    /srv/salt/edit/vim.sls

    vim:
      pkg:
        - installed
    
    /etc/vimrc:
      file.managed:
        - source: salt://edit/vimrc
        - mode: 644
        - user: root
        - group: root
        - require:
          - pkg: vim

    可以很容易地转换成一个强大的、参数化公式:

    /srv/salt/edit/vim.sls

    vim:
      pkg:
        - installed
        - name: {{ pillar['pkgs']['vim'] }}
    
    /etc/vimrc:
      file.managed:
        - source: {{ pillar['vimrc'] }}
        - mode: 644
        - user: root
        - group: root
        - require:
          - pkg: vim

    vimrc的源位置可以通过pillar 改变:

    /srv/pillar/edit/vim.sls

    {% if grain['id'].startswith('dev') %}
    vimrc: salt://edit/dev_vimrc
    {% elif grain['id'].startswith('qa') %}
    vimrc: salt://edit/qa_vimrc
    {% else %}
    vimrc: salt://edit/vimrc
    {% endif %}

    确保正确的vimrc发送正确的从服务器上。

    更多关于Pillar

    Pillar的数据创建在Salt主服务器上并且安全的分发到从服务器上。Salt当定义pillar的时候 并不局限于pollar sls 文件,可以从其他额外的源取得数据。对于那些把基础结构信息存储在其他的地方会很有用。
    参考信息和其他外部Pillar接口可以 在Salt 文档中找到:

    Pillar

    http://docs.saltstack.com/topics/pillar/index.html


















    展开全文
  • [3]原文:A Walkthrough explains a product or service in terms of features, benefits, and in general what the product or service allows you to do. It is most often split into more than one section, ...

    问题概述

      用户想了解你提供的服务和产品,以便决定是否加入服务或购买产品。

    示例

    在这里插入图片描述

    用途

    • 用于让用户在产品上花费时间或金钱之前,深入了解一下产品;
    • 用于帮助销售产品;
    • 用于让用户做出“知根知底”的购买决定[1];
    • 用于指导用户处理日常任务;
    • 用于让用户了解产品及它能做什么;
    • 用于让用户了解产品的独特之处;
    • 用于让用户了解与网站无关的问题[2]。

    解决方案

      在用户使用产品前,展示产品的主要功能。在真正的用户体验产品前,展示产品和/或价值主张。本模式通常以静态或动态幻灯片或视频方式展示。保持展示简短,突出重点,因为用户为了使用产品经常会跳过或快速略过展示。
      本模式解释产品或服务的特点、好处及用途,通常分为多个部分,有时会将每个部分放在独立的页面上[3]。
      为此,以下是在开发演练功能时要谨记的几个原则:

    关注用户任务

      不论本模式严格意义上来说是营销工具还是教学工具,重要的是要关注用户任务。如何帮助用户?目标是在描述要点和解释一切之间取得良好的平衡,仅仅描述要点可能无法给用户提供足够详细的产品视图,无法让他们下决心使用产品,但是如果描述过于详细,又可能会吓跑用户。
      克制炫耀最新及最优秀功能的冲动——最重要的是让用户相信产品能解决他们的根本问题。新用户对花哨功能不感兴趣,只想达到他们的目的。

    提供可视化参考

      不能只用文字描述产品及其特点,要将其可视化!用截屏、插图、视频剪辑等方式展示如何使用产品。
       这让用户对产品有更好的体验——应该点击哪里、实际产品有多么的易于使用、产品如何工作和使用[4]。

    包含直接链接

      用户使用演练功能来了解产品或服务,他们会往返于演练功能与产品之间。演练功能是用户的参考点,因此要便于用户在演练功能与产品之间切换。可能的话,提供到介绍的模块的直接链接。

    预先排除问题

      解决用户在决定是否使用产品时最可能关注问题:“产品安全吗?”、“便于导入数据吗?”、“如果要外出,可以导出数据吗?”。排除用户关心的问题,这样他们就能放心地使用产品或服务了。

    说明

      产品或服务的演练功能让用户了解以下内容:

    • 产品能做什么;
    • 是否是用户一直在寻找的产品;
    • 产品是否能帮助用户完成任务;
    • 用户是否应该加入服务或购买产品。
        产品或服务的费用昂贵,用户在购买之前需要大量的劝说和鼓励。演练功能让用户在购买前就能一睹产品的特点。

    原文地址:http://ui-patterns.com/patterns/Tour
    [1]原文:Use to allow users to make an “informed” purchase decision.
    [2]原文:Use to teach users about non-website related issues.
    [3]原文:A Walkthrough explains a product or service in terms of features, benefits, and in general what the product or service allows you to do. It is most often split into more than one section, which is sometimes put on separate pages.
    [4]原文:This will allow your users to get a better feeling of where exactly to click – but also how easy your product actually is – how it was meant to work and be used.

    展开全文
  • 背景介绍 这几年图神经网络模型(如谱聚类的GCN、GAT等等)都挺火的,这些图神经网络即将节点或图映射到一个低维空间(称为图嵌入);而除了GNN还有很多图嵌入方法...论文:《DeepWalk: Online Learning of Social Repr
  • 转到博客浏览效果可能不佳(比如序号无法正常显示,可以下载文档) ...1.Most cities in the country have introduced “Clean Air Zones” whereby factories and households are on...
  • 大学英语综合教程四 Unit 8 课文内容英译中 中英翻译   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博客地址为:亓官劼的博客 本文原创为亓官劼,请...
  • Go walk树的Erlang翻译

    2015-03-10 19:41:01
    <p>I am trying to implement the <code>Walk</code> function from <a href="http://golang.org/doc/play/tree.go" rel="nofollow">here</a> which is implemented in Go into erlang. <p>Here is the result: ...
  • 大学英语综合教程三 Unit 2 课文内容英译中 中英翻译   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博客地址为:亓官劼的博客 本文原创为亓官劼,请...
  • 大学英语综合教程三 Unit 8 课文内容英译中 中英翻译   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博客地址为:亓官劼的博客 本文原创为亓官劼,请...
  • 大学英语综合教程三 Unit 7 课文内容英译中 中英翻译   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博客地址为:亓官劼的博客 本文原创为亓官劼,请...
  • 大学英语综合教程三 Unit 1至Unit 8课文内容英译中 中英翻译   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博客地址为:亓官劼的博客 本文原创为亓官劼...
  • 使用DeepWalk从图中提取特征

    千次阅读 2019-12-03 15:00:34
    在Python中实施DeepWalk以查找相似的Wikipedia页面 数据的图示 当你想到“网络”时,会想到什么?通常是诸如社交网络,互联网,已连接的IoT设备,铁路网络或电信网络之类的事物。在图论中,这些网络称为图。 ...
  • 大学英语综合教程二 Unit 7 课文内容英译中 中英翻译   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博客地址为:亓官劼的博客 本文原创为亓官劼,请...
  • Python3 调用谷歌翻译 将英文翻译成中文 代码如下: import urllib.request import execjs class Py4Js(): def __init__(self): self.ctx = execjs.compile(""" function TL(a) { var k = ""; var b = ...
  • Blowing in the wind 翻译

    2016-08-17 13:00:00
    How many roads must a man walk downBefore they call him a man How many seas must a white dove sailBefore she sleeps in the sand How many times must the cannon balls flyBefore they're forever bann...
  • Caching in Named Data Networking for the Wireless Internet of Things 研究关于将命名数据网络中的缓存运用于无线物联网   Mohamed Ahmed Hail *, Marica Amadeo + ,Antonella Molinaro + , ...
  • Lesson 24 - Going out for a Walk Walking for walking' s sake may be as highly laudable and exemplary a thing as it is held to be by those who practise it. My objection to it is that it stops the ...
  • 正好时值学校要求写文献阅读报告,然而至少一万字的报告实在是让人望而却步,于是想到了自己使用Python去实现自动读取英文文献,并翻译生成综述(当然,只适用于凑字数的情况,如果需要写综述,还是建议自己总结归纳)...
  • Python 3 os.walk使用详解

    2020-12-04 20:33:51
    Python 3os.walk(top, topdown = True, onerror = None, followlinks = False)文件结构Test folder:SubTest1 folder:ThirdLayer folder:SubTest2 folder:示例代码1:import ospath = 'D:\Test'for root, dirs, files...
  • 3 00:00:11,690-> 00:00:13,549 我生命中的多年尝试 并且保存成带有 trans 字符的文件 编写python代码 import os for root,dirs,files in os.walk("./"): for name in files: if "srt" in name: fr=open("./"+...
  • 1 多语言和翻译的区别 多语言 游戏中可以动态切换语言,比如中文、英文、西班牙文,这要求项目中要并存多语言的配置,比如i18n_zh.json、i18n_en.json、i18n_es.json,游戏根据语言设置动态加载对应的i18文件。 翻译...
  • 官网mininet walkthrough不完全翻译,原文 本教程展示了大部分mininet命令,以及和Wireshark的交互应用。 日常使用指令 显示mininet开启选项 $ sudo mn -h 开启Wireshark 为了通过Wireshark查看控制流,首先打开...
  • It was a little larger than his walk-in closet. A florescent light buzzed from the ceiling. My father once told me that he planned on taking out a wall and installing a big bay window. He liked the...
  • Unit 9 -The Ones Who Walk Away from Omelas The Ones Who Walk Away from Omelas Ursula Le Guin WITH a clamor of bells that set the swallows soaring, the Festival of ...The rigging of the boats in h.
  • 英文翻译成中文脚本

    2019-09-21 14:36:20
    import os from googletrans import Translator import shutil if __name__ == '__main__': translate = Translator() # 1.输入要翻译成中文的文件夹路径 ... for root, dirs, files in os.walk(pa...
  • Unit 15A -Clearing in the Sky Clearing in the Sky Jesse Stuart "This is the way," said my father, pointing with his cane across the deep valley below us. "I want to show you something!" "Isn't it ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,981
精华内容 3,192
关键字:

walkin翻译