首页 > 其他分享 >图表示学习-deepwalk

图表示学习-deepwalk

时间:2023-04-17 10:22:53浏览次数:33  
标签:表示 deepwalk vi 学习 Wvi gram skip 节点

Graph Embedding

先从Word Embedding来说,现在的NLP语言取得了巨大突破一大部分原因是将高度离散化的词语符号表示,转换为了低维的连续分布的表示。

eg:

我爱香蕉

我爱苹果

用onehot来表示:

我 0 [1,0,0,0]

爱 1 [0,1,0,0]

苹果 2 [0,0,1,0]

香蕉 3 [0,0,0,1]

但是这种方法不能够表现出相似性的关系,来就有了更聪明的方法,考虑将这些词语用高维空间中的向量表示,如果两个词向量之间的距离近,那么它们对应的词就具有越高的语义相似性,这种思想即word2vec。用word2vec可以变成:

  • 我 [1,1,1]
  • 爱 [1,-1,1]
  • 苹果 [-1,1,0.5]
  • 雪梨 [-1,1,0.4]

类比在图上也是一样,在图上,如果两个节点之间的路径短,那么这两个节点的相似性一定很高,也就是向量之间的距离短,考虑图G(V,E),在其基础上添加顶点的类别,则形成标注图(labeled graph)GL=(V,E,X,Y),其中X∈R(|v|*d)为顶点嵌入,Y∈R(|V|×|C|),d为特征维数,Y为标签集。 注意这种写法指X和Y均为矩阵,X一共有|V|行,每行对应一个顶点的特征向量,有d维;并且每个结点可能属于多个类别⊂C。(指multi-label classification,而不是multi-class每个样本只归属一类别)。 目标则是学习得到嵌入表示X,或者说映射Φ:V↦X,使得在低维的嵌入空间中,图结点有很好的分布式连续表达,能够很好保持图的邻接结构,即结点向量间的距离能够衡量原图中的邻接关系强弱。

下图来自deepwalk论文中的空手道数据集的deepwalk的实验结果。

img

Deep Walk

将图中的节点当作词语,几个节点构成的路径当作句子。

Random walk

随机游走的方式得到节点序列,就是从一个节点除法,走L步,得到的节点序列

,其中从一个节点到相邻的节点之间是随机的饿过程。

w1,w2,......,wL

随机游走的好处:

可以实现并行计算
可以轻松应对动态网络,对于任意新加的点,不用再训练全图。

幂律分布

与文本语言相似,图中,少量的节点拥有大量的连接,严重的分布不均匀。在论文中有说明:

If the degree distribution of a connected graph follows a power law (i.e. scale-free), we observe that the frequency which vertices appear in the short random walks will also follow a power-law distribution.
图是符合幂律分布,他的子序列也符合幂律分布,因此可以尝试用语言模型来解决。

Skip-gram

在word2vec中提到了两种LM,一种CBOW,输入为前后w个词,输出为中间词;而另外一种是skip-gram,输入中间词,输出前后w,skip-gram的计算量更少,deepWalk选择skip-gram;下图是窗口为2的情况;
img
则最终的优化问题变成了:
$$
minΦ−logPr({vi−w,…,vi−1,vi+1,…,vi+w}∣Φ(vi))
$$
整体的算法流程:

论文中给出的伪代码:
img

img

总结一下:

1、每次随机选择一个起始点vi
2、从vi开始,做长为|Wvi|=t的随机游走。
3、依据得到的Wvi,做skip-gram。即对每一vj∈Wvi,每一uk∈Wvi[j−w:j+w],做梯度下降更新参数

$$
J(Φ)=−logPr(uk∣Φ(vj))
,
Φ=Φ−α∂J/∂Φ
$$

其他的就是一些工程上的问题了,这里不再细致讨论。

标签:表示,deepwalk,vi,学习,Wvi,gram,skip,节点
From: https://www.cnblogs.com/ai-researcher/p/17324949.html

相关文章

  • 人工智能技术助力教育行业:智能化教学是否能够提高学生学习效率?
    智能化教学已经成为教育行业的一个热门话题,智能化教学是指利用人工智能技术来辅助教学,提高学生的学习效率和学习成果。那么,智能化教学是否能够提高学生学习效率呢?一、智能化教学的优势智能化教学的优势主要体现在以下几个方面:1.个性化教学智能化教学可以根据学生的学习情况和......
  • 从零开始学习MySQL调试跟踪(2)
    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。作者:Yejinrong/叶金荣文章来源:GreatSQL社区投稿启用coredump制造一个coredump场景真实故障场景分析跟踪上一篇文档介绍了如何构建gdb跟踪调......
  • 学习MySQL数据库的第三天(DDL修改表操作 删除表操作)
    DDL修改表(增加字段、删除字段、修改字段、修改表名)添加字段ALTERTABLE表名ADD字段名类型(长度);修改字段ALTERTABLE表名旧字段名新字段名类型(长度)[comment注释];删除字段ALTERTABLEDORP字段名;修改表名ALTERTABLE表名RENAMETO新表名;DDL删除表操作删除......
  • C++学习 第五天
    今日内容:用户登录注册系统 用户登录注册系统创建cpp文件并声名函数:创建结构体头文件:导入头文件:定义注册函数:初始化用于输入信息的局部变量 判断输入的性别是否正确实例当前注册的对象 并将注册的用户信息存储在全局变量中(存贮在数据库中)优化性别判断......
  • 深度学习正则化之Dropout
    一、Dropout   丢弃法(DropoutMethod):在训练一个深度神经网络时,可以随机丢弃一部分神经元(同时丢弃其对应的连接边)来避免过拟合。训练时,每次选择丢弃的神经元是随机的,这些随机选出隐藏层的神经元将被删除,它们将不再传递信号。常规dropout(训练测试不一致,测试时调整输入......
  • fastdds学习之4——DDS层
    eProsimaFastDDS公开了两个不同的API,以在不同级别与通信服务交互。主要API是数据分发服务(DDS)数据中心发布订阅(DCPS)平台独立模型(PIM)API,简称DDSDCPSPIM,由FastDDS遵循的数据分发服务1.4版规范定义。本节旨在解释FastDDS下此API的主要特性和使用模式,并对其分为五个模块进行深入......
  • Python 元学习实用指南:1~5
    原文:Hands-OnMetaLearningwithPython协议:CCBY-NC-SA4.0译者:飞龙本文来自【ApacheCN深度学习译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。不要担心自己的形象,只关心如何实现目标。——《原则》,生活原则2.3.c一、元学习导论元学习是当前人工智能领域最有前途和......
  • Python 元学习实用指南:6~10
    原文:Hands-OnMetaLearningwithPython协议:CCBY-NC-SA4.0译者:飞龙本文来自【ApacheCN深度学习译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。不要担心自己的形象,只关心如何实现目标。——《原则》,生活原则2.3.c六、MAML及其变体在上一章中,我们了解了神经图灵机(N......
  • Python 强化学习实用指南:1~5
    原文:Hands-OnReinforcementLearningwithPython协议:CCBY-NC-SA4.0译者:飞龙本文来自【ApacheCN深度学习译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。不要担心自己的形象,只关心如何实现目标。——《原则》,生活原则2.3.c一、强化学习导论强化学习(RL)是机器学习的......
  • Python 强化学习实用指南:11~14
    原文:Hands-OnReinforcementLearningwithPython协议:CCBY-NC-SA4.0译者:飞龙本文来自【ApacheCN深度学习译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。不要担心自己的形象,只关心如何实现目标。——《原则》,生活原则2.3.c十一、策略梯度和优化在最后三章中,我们学......