网络表示学习总结

article/2025/9/20 15:57:58

我的GitHub博客:咖啡成瘾患者


  • 网络的邻接矩阵表示
  • 网络的分布式表示
  • 网络表示学习的经典工作
    • Deepwalk
    • LINE
    • node2vec
  • 网络表示学习的相关论文

最近看了paperweekly的两次关于网络表示学习的直播,涂存超博士与杨成博士讲解了网络表示学习的相关知识。本文将网络表示学习中的一些基本知识,结合自己的一些粗浅的理解,整理记录下来。

网络的邻接矩阵表示

用邻接矩阵是最直观的对网络数据的表示方法。在一个N个节点网络中,一个节点可以用N维向量来表示。

对一个N个节点的网络,用N*N的矩阵来表示一个网络,两个节点之间有边,则在对应的位置标记1(或者边的权值)。

下图所示为一个简单无向图的邻接矩阵表示,其中矩阵是沿对角对称的。

若图为一个无向图,邻接矩阵不一定沿对角对称。

邻接矩阵表示一个图,可以将矩阵的每一行,看做一个节点对应的向量,这种表示方法与文本表示中词的One-Hot表示方法。这种表示方法能够完整地表示图数据,准确地表示网络中的链接关系,但是弊端也很明显,对于一个N个节点的网络,表达这个网络需要N*N的矩阵,并且矩阵过于稀疏,不利于存储大规模网络。

网络的分布式表示

分布式表示(Distributed Representation)最早是由Hinton在1986年提出的一种词向量的表示方法,其核心思想是将词向量映射到一个K维的向量空间中,这样每个词可以用K维向量来表示。大名鼎鼎的Word2vec就是一种对词的分布式表示方案。

同理,将这个概念应用于网络数据中,即网络的分布式表示,网络中的每个节点对应文本中的每个单词,其表示过程就是将每个节点映射到一个K维的向量空间(通常情况下,K远小于网络中节点个数),用K维向量来表示每个节点。事实上,我们可以将这个过程理解为对网络结点的向量表示进行降维的过程,对于一个N个节点的网络,邻接矩阵表示法用N维向量来表示一个节点。但通过这样的降维过程,仅使用K维向量就可以表示一个节点,并且节点向量还能包含一定的“语义”信息,例如连接紧密的结点向量的距离也很相近。这样就将一个高纬向量表示为低维稠密的实值向量。

通常情况下,我们通过对每个节点的向量进行一定的限定,从而给定一个优化方向进行优化,得到一个最优化的结果,即为节点的表示向量。优化目标的设计,往往希望能够尽可能多的将网络信息通过向量表示出来,并使得到的向量具有一定的计算能力。在这个目标的前提下,在优化的过程中,往往会将网络的结构、节点的信息、边的信息等“嵌入”到节点向量中,因此,我们也常常将网络的表示学习过程叫做网络嵌入(Network Embedding)。通过设计特定的优化目标,我们可以将节点的不同信息嵌入到向量中,将节点映射到不同的低维向量空间。

下图所示的是Deepwalk1论文中所展示的节点向量,左图为原始网络,右图为将其映射到二维向量空间后的散点图,我们可以从图中看到,原始图中联系紧密的结点在映射到二维向量空间后距离较近,相同颜色的结点在原始图中联系紧密,在二维向量空间中分布较为密集。

网络表示学习的经典工作

Deepwalk

Deepwalk2是2014年发表在KDD上的一篇论文,这篇文章受到了word2vec3的启发,文章的思路就是对网络应用了word2vec的SkipGram模型。SkipGram模型原本是针对文本的,或者说是针对有序序列的,所以文章先应用随机游走得到一系列的网络中有序的节点序列,这些节点序列类似于文本中的句子,将这些“句子”跑SkipGram模型,从而得到“句子”每个“单词”的向量表示。过程如下图所示:

Deepwalk的随机游走过程事实上是对网络进行采样的过程,将网络中的节点通过随机游走的方式表示出来,两个节点联系越紧密,在一个随机游走过程中共现的可能性越大,反之若两个节点根本不连通,则一个随机游走过程是不可能将两个节点共现。因此deepwalk能很好的将网络的连接情况进行表达,且实验证明在网络规模较大时具有很高的效率。

LINE

LINE4是2015年提出的一中网络表示学习方法,该方法提出了一阶相似度与二阶邻近度的概念,基于这两个邻近度,提出了优化函数,得到的最优化结果即为每个节点的向量表示。

该方法的优化过程可以理解为基于两个假设:

  1. 直接相连的节点表示尽可能相近(一阶邻近度),如图中6,7。文中两个节点的联合概率表示其一阶邻近度:

    p1(vi,vj)=11+exp(u⃗ Tiu⃗ j)

  2. 两个节点公共的邻居节点越多,两个节点的表示越相近(二阶邻近度),如图中5,6。文中用两个节点的条件概率表示其二阶邻近度:

    p1(vj|vi)=exp(u⃗ Tju⃗ i)|V|k=1exp(u⃗ Tku⃗ i)

node2vec

node2vec5是2016年提出的一种方法,该方法在deepwalk的基础上进行了优化。deepwalk中的随机游走过程,实际是就是一种简单的深搜过程,每次随机随出一个与当前节点直接相连的节点作为后继节点,这种方法虽然能够保证采样到网络中的全局信息,但是对于该节点为中心的局部信息往往不能很好的进行采样。node2vec改进了这个随机游走的过程,它将广度优先搜索与深度优先搜索相结合。

node2vec的随机游走是一个参数控制的随机游走,不同于deepwalk的随机游走,当前节点到后继节点的概率并不是完全相等的。例如下图所示的情况,v为随机游走的当前节点,它的前驱节点为t,那么下一步需要判断v相连的下一个节点,以便进行进一步的游走,这时与其相连的节点的类型有三种:一种是t,v的前驱节点;第二种是 x1 ,不仅与v相连,还与其前驱节点相连;第三种是 x2 x3 ,不是v的前驱同时也不与其前驱相连。

如果节点向第一种节点游走,则返回前驱节点;向第二种节点游走,则为广搜的过程;向第三种节点游走则为深搜的过程。为了控制广搜与深搜,因此设计了参数 p q,通过这两个参数计算出偏移 a ,则真正的游走概率为原始概率的基础上乘上a得到。通过调整这两个参数,可以控制广搜和深搜的程度。所以deepwalk中的随机游走过程,就是一个 p=1 q=1 的node2vec。

网络表示学习的相关论文

涂存超博士在github上整理了一些相关论文,我就直接拿来主义了,链到涂存超博士的github上。

Must-read papers on network representation learning (NRL)/network embedding (NE)


  1. Perozzi B, Al-Rfou R, Skiena S. Deepwalk: Online learning of social representations[C]//Proceedings of the 20th ACM SIGKDD international conference on Knowledge discovery and data mining. ACM, 2014: 701-710. ↩
  2. Perozzi B, Al-Rfou R, Skiena S. Deepwalk: Online learning of social representations[C]//Proceedings of the 20th ACM SIGKDD international conference on Knowledge discovery and data mining. ACM, 2014: 701-710. ↩
  3. Mikolov T, Sutskever I, Chen K, et al. Distributed representations of words and phrases and their compositionality[C]//Advances in neural information processing systems. 2013: 3111-3119. ↩
  4. Tang J, Qu M, Wang M, et al. Line: Large-scale information network embedding[C]//Proceedings of the 24th International Conference on World Wide Web. International World Wide Web Conferences Steering Committee, 2015: 1067-1077. ↩
  5. Grover A, Leskovec J. node2vec: Scalable feature learning for networks[C]//Proceedings of the 22nd ACM SIGKDD international conference on Knowledge discovery and data mining. ACM, 2016: 855-864. ↩

http://chatgpt.dhexx.cn/article/QHbyuqOW.shtml

相关文章

Deep Multimodal Representation Learning(深度多模态表示学习)

多模态表示学习旨在缩小不同模态之间的异质性差距,在利用普遍存在的多模态数据中发挥着不可或缺的作用。基于深度学习的多模态表示学习由于具有强大的多层次抽象表示能力,近年来引起了人们的广泛关注。 多模态融合的核心问题是异质性间隙,而为…

干货!Labeling Trick: 一个图神经网络多节点表示学习理论

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! GNN 旨在学习单节点表示。当我们想要学习一个涉及多个节点的节点集表示(如链路表示)时,以往工作中的一个常见做法是将 GNN 学习到的多个单节点表示直接聚合成节点集的联合表示…

知识图谱表示学习

知识图谱是一种精细化的异构网络, 所以对其节点与边的表示学习也是一个热门的问题. 这里的学习依旧是得到它们的低维稠密向量. 这样做的好处: 降低知识图谱的高维性和异构性;增强知识图谱应用的灵活性;减轻特征工程的工作量;减少由于引入知识…

深度聚类:将深度表示学习和聚类联合优化

参考文献: 简介 经典聚类即数据通过各种表示学习技术以矢量化形式表示为特征。随着数据变得越来越复杂和复杂,浅层(传统)聚类方法已经无法处理高维数据类型。结合深度学习优势的一种直接方法是首先学习深度表示,然后再…

什么是表示学习(representation learning)表征学习 表达学习

机器学习算法的成功与否不仅仅取决于算法本身,也取决于数据的表示。数据的不同表示可能会导致有效信息的隐藏或是曝露,这也决定了算法是不是能直截了当地解决问题。表征学习的目的是对复杂的原始数据化繁为简,把原始数据的无效信息剔除&#…

知识表示学习模型

最近清华的THUNLP整理了Pre-trained Languge Model (PLM)相关的工作:PLMpapers,非常全面,想要了解最新NLP发展的同学不要错过。本来这篇是打算写一写Knowledge Graph BERT系列工作的,但是最近有在做知识图谱的一些东西所以就先整…

网络表示学习(network represention learning)

https://www.toutiao.com/a6679280803920216589/ 2019-04-13 15:40:48 1.传统:基于图的表示(又称为基于符号的表示) 如左图G (V,E),用不同的符号命名不同的节点,用二维数组&#x…

图表示学习

文章目录 1.导言1.1 为什么要研究图(graph)1.2 针对图结构的机器学习任务1.3 特征表示的难点1.4 特征表示的解决思路1.5 线性化思路1.6 图神经网络1.7 讨论:何谓Embedding1.8 总结 2.图结构表示学习2.1 deepwalk(深度游走算法)2.2 node2vec 3…

表示学习(特征学习)

文章目录 表示学习特征工程与表示学习深度学习的表示学习注:深度学习不等于多层神经网络什么时候用「手工提取」什么时候用「表示学习」? 关于特征表示学习的算法 参考资料 表示学习 表示学习的基本思路,是找到对于原始数据更好的表达&#…

表示学习与深度学习

1、表示学习 首先给出表示学习的定义: 为了提高机器学习系统的准确率,我们就需要将输入信息转换为有效的特征,或者更一般性称为表示(Representation)。如果有一种算法可以自动地学习出有效的特征,并提高最…

表示学习(Representation Learning)

一、前言 2013年,Bengio等人发表了关于表示学习的综述。最近拜读了一下,要读懂这篇论文还有很多文献需要阅读。组会上正好报了这篇,所以在此做一个总结。 鉴于大家都想要我的汇报PPT,那我就分享给大家,希望能对大家有所…

使用 Altium Designer 绘制PCB完整设计流程记录(2021.05.04更新)

前言 做了大半年的毕业设计,陆陆续续也是画了几个板子,有些东西感觉要趁现在记录下来,方便以后某天还想再画板子时查看。 修改日志 时间修改内容2021.05.04初稿完成 文章目录 前言修改日志一、关于AD版本二、原理图库和封装库三、绘制原理…

PCB设计流程步骤中的注意事项

PCB中文名称为印制电路板,又称印刷线路板,几乎所有电子设备中都会应用到PCB。这种由贵金属制成的绿色电路板连接了设备的所有电气组件,并使其能够正常运行。PCB原理图是一个计划,是一个蓝图。它说明的并不是组件将专门放置在何处&…

使用Cadence绘制PCB流程(个人小结)

之前使用过cadence画过几块板子,一直没有做过整理。每次画图遇到问题时,都查阅操作方法。现在整理一下cadence使用经历,将遇到问题写出来,避免重复犯错。 注:写该篇文章时,感谢于争博士的教学视频和《Cade…

AD原理图 PCB设计步骤

版权声明:本文为CSDN博主「唐传林」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/Tang_Chuanlin/article/details/79803575 本文总结一下AD画PCB的步骤,…

AD中画PCB详细流程

1.新建工程 先在电脑新建一个文件夹作为工程总文件夹,里面再新建三个子文件夹分别为BOM(Bill Of Materials)(物料清单)、PCB、SCH(Schematic)(原理图)如下图1.1.1 (注意:记住该路径,该工程所有…

干货|PCB电路板的组成、设计、工艺、流程及元器摆放和布线原则

大家对PCB电路板电路这个词很熟,有的了解PCB电路板的组成,有的了解PCB电路板的设计步骤,有的了解PCB电路板的制作工艺......但是对整个PCB电路板的组成、设计、工艺、流程及元器件摆放和布线原则,及后期的注意事项没有一个综合的了…

pcb板制作流程图解

转载链接:http://www.360doc.com/content/16/0529/15/33072037_563261798.shtml 我们来看一下印刷电路板是如何制作的,以四层为例。 四层PCB板制作过程: 1.化学清洗—【Chemical Clean】 为得到良好质量的蚀刻图形,就要确保抗蚀层…

PCB简单绘制一般步骤

1、使用CAD或CAXA,布局线路板图纸 2、生成DWG/DXF格式文件,比如A.dwg 3、使用Altium Designer,文件——新建——PCB,新建一块板子 4、导入A.dwg,文件——导入——DXF/DWG——选择A.dwg导入 ——作为元素导入——比例为mm——绘…

PCB 基础~典型的PCB设计流程,典型的PCB制造流程

典型的PCB设计流程 典型的PCB制造流程 • 从客户手中拿到Gerber, Drill以及其它PCB相关文件 • 准备PCB基片和薄片 – 铜箔的底片会被粘合在基材上 • 内层图像蚀刻 – 抗腐蚀的化学药水会涂在需要保留的铜箔上(例如走线和过孔) – 其他药水…