node2vec的一些思考

article/2025/11/6 18:52:07

概述

论文主要观点

本文将抽取网络中节点的特征转化成最优化一个“可能性”目标函数问题,这个“可能性”是该节点可以保存其邻居节点的信息。

成果

  • node2vec,如上述,利用SGD优化,高效
  • “随机选择邻居”算法,可让node2vec可适应不同的网络

方法模型

定义可能性,并且给予两个条件,构成要优化的目标函数; 
这里写图片描述

条件独立性: 
这里写图片描述

节点之间对称性: 
这里写图片描述

最后目标函数: 
这里写图片描述 
既然目标函数描述的是此节点能保存相邻节点的可能性,那么最重要的就是对于相邻节点的选择算法了,在这里本文利用了一种“Random Walks”的方式,其中含有几个参数,该算法可以在BFS和DFS中随意变换以达到最好的效果,这部分没具体看,不做详细记录。

创新点

本文的“保存相邻节点可能性”来自于一篇自然语言处理论文,在自然语言中,源文件是线性的,只要设置一个“滑动窗口”即可方便实现。那么本文将该线性方法使用到非线性的图中,创新点就在于引入“Random Walks”的邻居节点选择方式。

总结

本文的特征抽取方式类似于聚类分析的非监督方法,本质上都是利用相邻节点之间的联系。文中提到了网络中的节点一般有两种相似度量:1.内容相似性,2.结构相似性。其中内容相似性主要是相邻节点之间的相似性,而结构上相似的的点并不一定是相邻的,可能隔得很远,这也是文中为何要把BFS和DFS相结合来选择邻居节点的原因。

我的想法

这是一篇很有启发作用的好文章。总的来说,你可以以两个方式来看一个网络中的节点,第一,“看本身”,只看这个节点,用其本身的表象来抽取特征,对应于监督方式;第二,“看联系”,看其和其周围的节点,其周围节点一定具有一定的相似度,对应于无监督方式。 
那么对于任何问题,我们如果想去看联系,首先要根据某种规则让他们存在联系,这种存在联系的过程必须是自然的,才能很好的体现出“无人为干预”的自主聚类形式。

Entelecheia(简书作者) 
原文链接:http://www.jianshu.com/p/a9a2ed8b98be

2.node2vec: Scalable Feature Learning for Networks

文章地址:​KDD 2016

这篇文章来自于Jure Leskovec的组。文章所提出的方法软件实现。

文章的主要想法就是,利用SkipGram的方法,来为Networks抽取Representation。那么,自然,根据SkipGram的思路,最重要的就是定义这个Context,或者说是Neighborhood。​从文本的角度来说,这个Neighborhood当然就是当前Word周围的字,这个定义非常自然。但是对于Graph或者Network来说就来得没那么容易了。

文章阐述了一般所采用Depth-First Search或者是Breadth-First Search来Sample一个Node的周边Node的问题。简单来说,BFS比较容易有一个Microscopic的View而DFS容易有一个Macro-view,两者都有Representative的问题。

文章的核心思想是采用Random Walk来代替DFS或者BFS。文章定义了一种二阶的Random Walk,拥有两个参数,来控制多大的概率反复经过一些Node和控制所谓的Inward和Outward。总之,整个Random Walk的目的就是在DFS和BFS之间采取某种平衡。

文章虽然提出的是关于Node Feature提取的算法,但是Edge Feature也可以很容易从Node Feature导出。

总体感觉是,硬要用SkipGram或者WordVec的想法在Networks上做,还显得比较牵强。因为有这个Neighborhood的概念,在Graph上,反而不是那么直观得定义,因此所有类似的工作都显得比较别扭。当然,这篇文章也不失为一种不错的Heuristic。​

作者:洪亮劼 
原文链接:http://weibo.com/ttarticle/p/show?id=2309404006947190904515

程序源代码: 
http://snap.stanford.edu/node2vec/


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

相关文章

Node(二)

一、node的文件系统 1、二进制文件的读写(按字节读写:一个字节是8个二进制位) (1)读二进制文件 fs.read(fd,buffer,offset,length,position,callback) fd…

【论文精读】node2vec: Scalable Feature Learning for Networks

node2vec: Scalable Feature Learning for Networks 可扩展的 图嵌入 表示学习算法 可扩展:算法可用于互联网规模级别的数据,在有限的时间和空间中 图嵌入:将图的连接信息嵌入到连续、低维、稠密的D维空间中 表示学习:用数据驱…

Graph Embedding(DeepWalk,LINE,Node2vec)

为什么要对图进行嵌入? 直接在这种非结构的,数量不定(可能数目非常多),属性复杂的 图 上进行机器学习/深度学习是很困难的,而如果能处理为向量将非常的方便。但评价一个好的嵌入需要: 保持图属…

深度学习 - 33.GraphEmbedding Node2vec 图文详解

一.引言 前面介绍了如何生成带权的图: GraphEmbedding - networkx获取图结构 从带权的图随机游走生成序列: GraphEmbedding - DeepWalk 随机游走 embedding 向量的评估与可视化: GraphEmbedding - embedding 向量的降维与可视化 以及复杂度O(1)的采样算法 Alias: GraphEmbe…

Node2Vec算法介绍

大家好,我是Linzhuo,今天又来给大家分享graph embedding的相关知识啦。 在上一篇文章中,我们介绍了graph embedding的经典方法:Deepwalk,其通过随机游走(Random walk)的方式将Graph embedding与Word embedding的方法(w…

KDD 2016 | node2vec:Scalable Feature Learning for Networks

目录 前言Abstract1.IntroductionPresent work 2.Related Work3.Feature Learning Framework3.1 Classic search strategies3.2 node2vec3.2.1 Random Walks3.2.2 Search bias α \alpha α3.2.3 The node2vec algorithm 3.3 Learning edge features 4.Experiments4.1 Case St…

PyG基于Node2Vec实现节点分类及其可视化

文章目录 前言一、导入相关库二、加载Cora数据集三、定义Node2Vec四、定义模型五、模型训练六、可视化完整代码前言 大家好,我是阿光。 本专栏整理了《图神经网络代码实战》,内包含了不同图神经网络的相关代码实现(PyG以及自实现),理论与实践相结合,如GCN、GAT、GraphS…

浅析 v-node

浅析 v-node 🌈 本节我们来探索一下虚拟DOM,将会从以下4个方面进行阐述: 虚拟DOM的本质虚拟DOM的优势虚拟DOM转换真实DOM 过程虚拟DOM树 diff算法 虚拟DOM的本质 ⭐️虚拟DOM 本质上是一个 js 对象,用于描述页面的结构&#x…

deepwalknode2vec 代码实战

提示:笔记内容来自于B站up主同济子豪兄 文章目录 1. Embedding嵌入的艺术2. deepwalk2.1. 什么是图嵌入?2.2. deepwalk的步骤1、生成graph;2、利用random walk生成多个路径;3、训练表示向量的学习;4、为了解决分类个数…

Node2Vec

Node2Vec 论文名称:node2vec: Scalable Feature Learning for Networks 论文地址:https://www.kdd.org/kdd2016/papers/files/rfp0218-groverA.pdf Node2Vec是用于学习网络节点的连续特征表示。node2vec将节点映射为低维特征表示,最大化网…

node2vec python 实现和理解

1. 安装 pip install node2vec 2. 使用案例 import networkx as nx from node2vec import Node2Vec# Create a graph 这里可以给出自己的graph graph nx.fast_gnp_random_graph(n100, p0.5)# Precompute probabilities and generate walks - **ON WINDOWS ONLY WORKS WITH …

node2vec的一些理解

node2vec node2vec也是一种网络嵌入的表示方法,它是基于DeepWalk的基础上进行改进的。主要改进的地方在于它在随机游走的过程中加入了一个权重,使得游走可以采用深度优先和广度优先的策略进行游走。 Search bias α 使得随机游走产生片偏差的最简单的…

从word2vec到node2vec

word2vec 1. 什么是word2vec 在自然语言处理任务(NLP)中,最细粒度是词语,所以处理NLP问题,首先要处理好词语。 由于所有自然语言中的词语,都是人类的抽象总结,是符号形式的。而对于数学模型&a…

详解Node2vec以及优缺点

1. 论文介绍 首先介绍了复杂网络面对的几种任务: 网络节点的分类,通俗点说就是将网络中的节点进行聚类,我们关心的是哪些节点具有类似的属性,就将其分到同一个类别中。链接预测,就是预测网络中哪些顶点有潜在的关联。…

node2vec论文阅读

本文要阅读的论文来自数据挖掘领域的顶级会议KDD-2016. 论文介绍了一种Graph representation方法 得益于CNN以及Seq2seq等模型,深度学习在图像和自然语言处理等领域有很好的应用。然而在涉及到图(有向图,无向图)结构的应用比如社…

【Graph Embedding】node2vec:算法原理,实现和应用

前面介绍过基于DFS邻域的DeepWalk和基于BFS邻域的LINE。 DeepWalk:算法原理,实现和应用 LINE:算法原理,实现和应用 node2vec是一种综合考虑DFS邻域和BFS邻域的graph embedding方法。简单来说,可以看作是eepwalk的一…

图与推荐系统(一):Graph Embedding之node2vec (原理 + 代码实战)

文章目录 一. 介绍二. 公式三. 代码细节四. 代码 一. 介绍 node2vec是一种综合考虑DFS邻域和BFS邻域的graph embedding方法。简单来说,可以看作是deepwalk的一种扩展,是结合了DFS和BFS随机游走的deepwalk。node2vec通过调整方向的参数来控制模型更倾向B…

图神经网络之Node2Vec详解

目录 背景传统算法存在的问题算法背景动机 算法随机序列的生成Node2Vec算法算法的具体流程: 总结相关资料 背景 传统算法存在的问题 一些方法中所提出的特征需要依赖人手工定义,这需要特定领域内专业人士来完成,而且依靠人手工定义特征的有…

node2vec算法

图嵌入算法 一、背景1.提出2.应用3.特点 二、DeepWalkRandomWalk 三、node2vec引言node2walkskip-gram(用中心词预测周围词) 一、背景 1.提出 ①使用邻接矩阵表示网络时,由于矩阵中大多数元素是0,难以体现节点间关系,同时数据的稀疏性使得计…

node2vec代码实现及详细解析

目录 前言1.数据导入2.node2vecWalk2.1 归一化转移概率2.1.1 原理解析2.1.2 Alias采样2.1.3 代码实现 2.2 node2vecWalk的实现 3.LearnFeatures4.参数选择5.完整代码 前言 在KDD 2016 | node2vec:Scalable Feature Learning for Networks 中我们详细讨论了node2vec…