图神经网络-DeepWalk

2024-09-04 18:38
文章标签 神经网络 deepwalk

本文主要是介绍图神经网络-DeepWalk,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

  • 论文地址:https://arxiv.org/pdf/1403.6652.pdf
  • 发表会议:KDD2014

这篇论文是基于embedding的同质图网络节点表示学习的开山之作。

文章目录

      • 目的
      • 动机
      • 方法
      • 实验
      • 不足

目的

给定一个图,返回节点的embedding表示,节点的embedding表示嵌入了图的结构信息。

动机

图通常是很大的,直接对全图进行表示学习是不现实的。所以作者借鉴了random walk的思想。random walk是一种在图上进行随机游走的算法,即从一个节点走到它的任意邻居节点的概率是相同的。通过若干随机游走序列,就可以表示出整张图的结构信息。作者采用random walk的思想有两点原因:(1)random walk可以并行工作,即可以同时从图中不同节点进行游走,这样就可以在很快的时间内游走完整张图。(2)随机游走只需要图的局部结构,这样当图的一部分变化时,可以很快地去学习新的表示,即对动态图具有很好的适应性。

那么如何利用random walk来学习节点的表示呢?在自然语言处理中,学习单词的嵌入表示时采用的方法是基于上下文预测中间词(CBOW),或基于中间词预测上下文(skip-gram)。无论哪种方法,都是基于一种概率模型的方法来学习单词的表示。而random walk得到的节点也是一个序列,所以作者就想把自然语言处理中的单词表示方法引用到图的节点表示上。为了更具有说服性,作者对比了文本中的单词出现频数和在图中随机游走节点的出现频数,发现它们都遵循幂率(power law)

幂率(power law):
所谓幂律,是说节点具有的连线数(度)和这样的节点数目乘积是一个定值,或者说,出现连接数为k的概率 p(k),反比于k的n次方。其中,n称为幂数,它是很接近于2的一个常数。比如有10000个连线的大节点有10个,有1000个连线的中节点有100个,100个连线的小节点有1000个……,即度越大的节点越少,在对数坐标上画出来会得到一条斜向下的直线。一个现实的例子是:在绝大多数网站的连接数很少的情况下,却有极少数网站拥有高于普通网站百倍、千倍甚至万倍的连接数。统计物理学家习惯于把服从幂次分布的现象称为无尺度现象(scale-free)。
此外,论文中也提到了Zipf’s law,它和幂律的性质很像。

作者发现,和图中节点度和节点数的关系一样,在图中随机游走节点出现的频数也遵循幂律,即随机游走访问到某个节点的频数和具有这样频数的节点数目乘积是一个定值,换句话说,频数越大,这样的节点越少。这和文本中单词的出现频数一样,在文本中出现频数越高的单词数量越少,即大部分单词出现的频数很小,而出现频数较高的单词也仅有一些副词等。

上述思想可以用下图表示:
在这里插入图片描述
左图是random walk中节点出现频数(横坐标)和出现此频数的节点的数量(纵坐标)图。右图是文本中单词出现频数(横坐标)和出现此频数的单词的数量(纵坐标)。两者的相似性提供了更加具有说服力的理由,使得deepwalk可以借鉴自然语言处理中用概率建模节点表示的方法。

方法

首先模仿skip-gram,通过给定的上下文预测中间词,使得中间词的条件概率最大。那么在deepwalk中,首先根据random walk得到节点序列,然后最大化序列中某节点周围节点出现的概率(最小化负对数损失):
在这里插入图片描述
而skip-gram是对窗口内的每一对单词最大化条件概率的,它去掉了单词序列顺序的限制,即不考虑单词排列的顺序。所以deepwalk也采用最大化random序列中每一对节点的条件概率: P r ( u k ∣ Φ ( v j ) ) Pr(u_k|\Phi(v_j)) Pr(ukΦ(vj))。这会产生一个问题,即如果利用softmax,需要计算的标签概率数大小等于|V|,即图中节点的个数,时间复杂度太高。于是再根据skip-gram的改进算法,利用Hierarchical Softmax来计算概率,把图中节点做为二叉树中的叶子结点,这样计算 P r ( u k ∣ Φ ( v j ) ) Pr(u_k|\Phi(v_j)) Pr(ukΦ(vj))就转化为计算从根节点到目标叶子结点路径的概率:
在这里插入图片描述
这里每一个 P r ( b l ∣ Φ ( v j ) ) Pr(b_l|\Phi(v_j)) Pr(blΦ(vj))都只需一个二分类器来计算。于是最终的时间复杂度从O(|V|)降到了O(log|V|)。Hierarchical Softmax如下图所示:
在这里插入图片描述

整个算法流程如下所示:
在这里插入图片描述
模型的输入是窗口大小 w w w,embedding维度 d d d,在每个顶点进行随机游走的次数 γ \gamma γ,随机游走的步长 t t t。输出是每个节点的表示 Φ \Phi Φ

  1. 首先从均匀分布中采样每个节点的初始表示 Φ \Phi Φ
  2. 对图中节点构造一个二叉树 T T T
  3. 开始外层循环,即共进行 γ \gamma γ次随机游走。
  4. \qquad 每次循环首先打乱所有节点的顺序(便于模型更快收敛)
  5. \qquad 对于图中每个节点 v i v_i vi
  6. \qquad \qquad v i v_i vi出发进行随机游走得到节点序列 W v i W_{v_i} Wvi
  7. \qquad \qquad 根据 W v i W_{v_i} Wvi w w w Φ \Phi Φ来进行skip-gram算法,来更新节点表示 Φ \Phi Φ

其中skip-gram算法如下:
在这里插入图片描述
输入是窗口大小 w w w,从 v i v_i vi出发进行随机游走得到节点序列 W v i W_{v_i} Wvi,当前节点表示 Φ \Phi Φ。目的是更新节点的表示。

  1. 对于节点序列 W v i W_{v_i} Wvi中的每个节点 v j v_j vj
  2. \qquad 对于 v j v_j vj上下文窗口大小w内的每个节点 u k u_k uk
  3. \qquad \qquad 根据Hierarchical Softmax来计算损失函数: J ( Φ ) = − l o g P r ( u k ∣ Φ ( v j ) ) J(\Phi)=-logPr(u_k|\Phi(v_j)) J(Φ)=logPr(ukΦ(vj))
  4. \qquad \qquad 梯度下降更新节点表示 Φ = Φ − α ∗ ∂ J ∂ Φ \Phi=\Phi-\alpha*\frac{\partial J}{\partial \Phi} Φ=ΦαΦJ

除了使用Hierarchical Softmax加快计算速度外,还可以更进一步,计算出节点出现的频率,然后根据哈夫曼编码构造二叉树。

实验

作者利用学到的节点表示在multi-label classification任务上进行了测试,效果显著。

不足

按照deepwalk之后的论文来看,deepwalk存在以下不足:

  1. deepwalk是一种dfs遍历的方式,所以更加注重二阶相似性(也叫社区相似性,即具有共同的邻居的节点相似),而没有考虑到一阶相似性(也叫结构相似性,即图中真实存在的节点-边结构信息。
  2. deepwalk只适用于无权重的图,无法学习有权重的图的节点表示。

参考

  1. 幂律-百度百科
  2. http://lihailian.bokee.com/6013647.html
  3. https://www.cnblogs.com/lavi/p/4323691.html
  4. 齐夫定律-百度百科

这篇关于图神经网络-DeepWalk的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1136718

相关文章

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}

机器学习之监督学习(三)神经网络

机器学习之监督学习(三)神经网络基础 0. 文章传送1. 深度学习 Deep Learning深度学习的关键特点深度学习VS传统机器学习 2. 生物神经网络 Biological Neural Network3. 神经网络模型基本结构模块一:TensorFlow搭建神经网络 4. 反向传播梯度下降 Back Propagation Gradient Descent模块二:激活函数 activ

图神经网络框架DGL实现Graph Attention Network (GAT)笔记

参考列表: [1]深入理解图注意力机制 [2]DGL官方学习教程一 ——基础操作&消息传递 [3]Cora数据集介绍+python读取 一、DGL实现GAT分类机器学习论文 程序摘自[1],该程序实现了利用图神经网络框架——DGL,实现图注意网络(GAT)。应用demo为对机器学习论文数据集——Cora,对论文所属类别进行分类。(下图摘自[3]) 1. 程序 Ubuntu:18.04

基于深度学习 卷积神经网络resnext50的中医舌苔分类系统

项目概述 本项目旨在通过深度学习技术,特别是利用卷积神经网络(Convolutional Neural Networks, CNNs)中的ResNeXt50架构,实现对中医舌象图像的自动分类。该系统不仅能够识别不同的舌苔类型,还能够在PyQt5框架下提供一个直观的图形用户界面(GUI),使得医生或患者能够方便地上传舌象照片并获取分析结果。 技术栈 深度学习框架:采用PyTorch或其他

图神经网络(2)预备知识

1. 图的基本概念         对于接触过数据结构和算法的读者来说,图并不是一个陌生的概念。一个图由一些顶点也称为节点和连接这些顶点的边组成。给定一个图G=(V,E),  其 中V={V1,V2,…,Vn}  是一个具有 n 个顶点的集合。 1.1邻接矩阵         我们用邻接矩阵A∈Rn×n表示顶点之间的连接关系。 如果顶点 vi和vj之间有连接,就表示(vi,vj)  组成了

自然语言处理系列六十三》神经网络算法》LSTM长短期记忆神经网络算法

注:此文章内容均节选自充电了么创始人,CEO兼CTO陈敬雷老师的新书《自然语言处理原理与实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】 文章目录 自然语言处理系列六十三神经网络算法》LSTM长短期记忆神经网络算法Seq2Seq端到端神经网络算法 总结 自然语言处理系列六十三 神经网络算法》LSTM长短期记忆神经网络算法 长短期记忆网络(LSTM,Long S

神经网络训练不起来怎么办(零)| General Guidance

摘要:模型性能不理想时,如何判断 Model Bias, Optimization, Overfitting 等问题,并以此着手优化模型。在这个分析过程中,我们可以对Function Set,模型弹性有直观的理解。关键词:模型性能,Model Bias, Optimization, Overfitting。 零,领域背景 如果我们的模型表现较差,那么我们往往需要根据 Training l

如何将卷积神经网络(CNN)应用于医学图像分析:从分类到分割和检测的实用指南

引言 在现代医疗领域,医学图像已经成为疾病诊断和治疗规划的重要工具。医学图像的类型繁多,包括但不限于X射线、CT(计算机断层扫描)、MRI(磁共振成像)和超声图像。这些图像提供了对身体内部结构的详细视图,有助于医生在进行准确诊断和制定个性化治疗方案时获取关键的信息。 1. 医学图像分析的挑战 医学图像分析面临诸多挑战,其中包括: 图像数据的复杂性:医学图像通常具有高维度和复杂的结构

临床基础两手抓!这个12+神经网络模型太贪了,免疫治疗预测、通路重要性、基因重要性、通路交互作用性全部拿下!

生信碱移 IRnet介绍 用于预测病人免疫治疗反应类型的生物过程嵌入神经网络,提供通路、通路交互、基因重要性的多重可解释性评估。 临床实践中常常遇到许多复杂的问题,常见的两种是: 二分类或多分类:预测患者对治疗有无耐受(二分类)、判断患者的疾病分级(多分类); 连续数值的预测:预测癌症病人的风险、预测患者的白细胞数值水平; 尽管传统的机器学习提供了高效的建模预测与初步的特征重

回归预测 | MATLAB实现PSO-LSTM(粒子群优化长短期记忆神经网络)多输入单输出

回归预测 | MATLAB实现PSO-LSTM(粒子群优化长短期记忆神经网络)多输入单输出 目录 回归预测 | MATLAB实现PSO-LSTM(粒子群优化长短期记忆神经网络)多输入单输出预测效果基本介绍模型介绍PSO模型LSTM模型PSO-LSTM模型 程序设计参考资料致谢 预测效果 Matlab实现PSO-LSTM多变量回归预测 1.input和outpu