美文网首页
DeepWalk对图节点的学习

DeepWalk对图节点的学习

作者: thelong的学习日记 | 来源:发表于2019-07-20 22:57 被阅读0次

首先从整体介绍一下图表示学习,然后分别从原理,核心代码,应用三个部分介绍DeepWalk。

图表示学习

现实世界中许多场景可以抽象为一种图结构,如社交网络,交通网络,电商网站中用户与物品的关系等。
在传统的机器学习分类设置中,我们的目标是学习一个假设H,它将X的元素映射到标签集Y.而现在我们可以利用通过嵌入在图结构中的示例的依赖性的重要信息来实现卓越的性能。
Graph Embedding—图的表示学习技术将图中的节点以低维稠密向量的形式进行表达,要求在原始图中相似的结点在低维表达空间也接近。

DeepWalk算法原理

DeepWalk的思想是使用图中节点与节点的共现关系来学习节点的向量表示。,其给出的方法是使用随机游走(RandomWalk)的方式在图中进行节点采样
DeepWalk=random walk(爬取很多条序列) + word2vec(对序列里的单词进行向量化)
RandomWalk是一种可重复访问已访问节点的深度优先遍历算法。给定一个起始节点,从邻居中随机采样作为下一个节点,重复此过程,直到访问序列长度满足预设条件,RandomWalk算法伪代码:

a=10   #访问序列长度
Graph graph  #定义的图
vertex v   #初始顶点
def RandomWalk(G=graph,v, a)
    w=[]        #w是访问序列
    w.append(v)  #将初始节点v加入访问序列
    for i in  range(a):
          cur=w[-1]  
          cur_neibor=list(G.Neighbor(cur))    #cur_neibo是顶点v的所有邻居节点
          w.append(random.choice(cur_neibor))  #随机取一个邻居节点加入访问序列

DEEPWALK的整体算法流程如下:

DeepWalk.jpg

其中第2步是构建Hierarchical Softmax,第3步对每个节点做γ次随机游走,第4步打乱网络中的节点,第5步以每个节点为根节点生成长度为t的随机游走,第7步根据生成的随机游走使用skip-gram模型利用梯度的方法对参数进行更新。

DEEPWALK算法伪代码如下:

def DeepWalk( nodes, num_walks, walk_length):
      walks = []
      for _ in range(num_walks):    #对应第三步
          random.shuffle(nodes)      #对应第四步
          for v in nodes:                   #第五步
          walks.append(RandomWalk(v=v,a=walk_length))  #第六步
       return walks

很好奇 算法流程第七步skipgram是什么意思,该怎么实现呢?

相关文章

  • DeepWalk对图节点的学习

    首先从整体介绍一下图表示学习,然后分别从原理,核心代码,应用三个部分介绍DeepWalk。 图表示学习 现实世界中...

  • networkEmbedding-DW方法总结

    1. DeepWalk time: 2014 对图从一个节点开始使用random walk来生成类似文本的序列数据...

  • 使用DeepWalk从图中提取特征

    目录 数据的图示 不同类型的基于图的特征 节点属性 局部结构特征 节点嵌入 DeepWalk简介 在Python中...

  • Graph Embedding之DeepWalk

      DeepWalk是一种用来学习图(网络)中顶点的潜在表示的一种基于简单神经网络的算法。DeepWalk 算法第...

  • NLP(二)学习《DeepWalk: Online Learni

    0 介绍 DeepWalk把图作为输入,把生成的潜在表示作为输出。DeepWalk通过随机游走获得结构规律。 1 ...

  • DeepWalk学习笔记

    DeepWalk的输入是一张图或者网络,输出为网络中顶点的向量表示。DeepWalk通过截断随机游走(trunca...

  • DeepWalk学习

    DeepWalk Background 使用机器学习的算法解决问题需要有大量的信息,但是现实世界中的网络中的信息往...

  • 2018-09-04-一句话总结网络表示学习经典算法-DeepW

    - DeepWalk: 将已知网络构造成二叉树,对每个节点采用若干次随机游走得到固定长度的局部序列信息,然后使用S...

  • DeepWalk

    1.背景 DeepWalk是一种学习网络中节点的隐式表征的新颖方法。这些隐式表征把社会关系编码到统计模型易于使用的...

  • GRAPH CLUSTERING WITH THE WEAK S

    摘要 图聚类,它以无监督的方式给定节点特征和边连接的集合对图的节点进行聚类,长期以来一直在图学习中进行研究,并且在...

网友评论

      本文标题:DeepWalk对图节点的学习

      本文链接:https://www.haomeiwen.com/subject/pzoulctx.html