cs224w(图机器学习)2021冬季课程学习笔记3: Node Embeddings

简介: cs224w(图机器学习)2021冬季课程学习笔记3: Node Embeddings

1. 章节前言


  1. 图表示学习graph representation learning:学习到图数据用于机器学习的、与下游任务无关的特征,我们希望这个向量能够抓住数据的结构信息。

这个数据被称作特征表示feature representation或嵌入embedding。

image.png


  1. Why embedding?

任务:将节点映射到embedding space

  • embedding的相似性可以反映原节点在网络中的相似性,比如定义有边连接的点对为相似的点,则这样的点的embedding应该离得更近
  • embedding编码网络信息
  • embedding可用于下游预测任务


  1. node embedding举例:Zachary’s Karate Club network1 的二维节点嵌入可视化(将不同类的节点很好地分开了)

image.png

图源:Perozzi et al. DeepWalk: Online Learning of Social Representations. KDD 2014


2. Node Embeddings: Encoder and Decoder


  1. 图 G ,节点集合 V ,邻接矩阵 A (二元的)(简化起见:不考虑节点的特征或其他信息)


  1. 节点嵌入:目标是将节点编码encode为embedding space中的向量embedding,使embedding的相似度(如点积2)近似于图中节点的相似度(需要被定义)

image.png


  1. Encoder:将节点映射为embedding

定义一个衡量节点相似度的函数(如衡量在原网络中的节点相似度)

Decoder DEC 将embedding对映射为相似度得分

image.png


  1. two key components

image.png

d一般是64-1000维


  1. “shallow” encoding

image.png

image.png

Z每列是一个节点所对应的embedding向量。v是一个其他元素都为0,对应节点位置的元素为1的向量。通过矩阵乘法的方式得到结果。

这种方式就是将每个节点直接映射为一个embedding向量,我们的学习任务就是直接优化这些embedding。

缺点:参数多,很难scale up3到大型图上。

优点:如果获得了Z,各节点就能很快得到embedding。

有很多种方法:如DeepWalk,node2vec等


  1. Encoder + Decoder Framework Summary
  • Shallow encoder: embedding lookup
  • 优化参数:Z(包含每个节点对应的node embedding)
  • 在Lecture 6将介绍deep encoders(已完成对应章节的笔记,见cs224w(图机器学习)2021冬季课程学习笔记7 Graph Neural Networks 1: GNN Model)
  • Decoder: based on node similarity
  • 目标:对于相似点对 (u,v),最大化其embedding点积


  1. 节点相似的不同定义
  • 有边
  • 共享邻居
  • 有相似的structural roles
  • 本节课:随机游走random walk定义的节点相似度


  1. Note on Node Embeddings
  • 无监督/自监督unsupervised/self-supervised:不用节点的标签和特征,直接估算得到节点的一系列坐标(如embedding),这一系列坐标在某种程度上可以保留网络结构(由DEC捕获)
  • task independent


3. Random Walk Approaches for Node Embeddings


  1. 统一符号表示notation

image.png

image.png


  1. random walk:从某一节点开始,每一步按照概率选一个邻居,走过去,重复。停止时得到一系列节点

image.png


  1. random walk embeddings

image.png


  1. Why random walks?
  • Expressivity: Flexible stochastic definition of node similarity that incorporates both local and higher-order neighborhood information

Idea: if random walk starting from node 𝒖 visits 𝒗 with high probability, 𝒖 and 𝒗 are similar (high-order multi-hop information)

  • Efficiency: Do not need to consider all node pairs when training; only need to consider pairs that co-occur on random walks


  1. unsupervised feature learning

image.png


  1. feature learning as optimization

image.png


  1. random walk optimization

image.png

把最大似然估计翻过来,拆开,就成了需被最小化的损失函数L:

image.png

image.png

image.png

我们发现问题就在于用于softmax归一化的这个分母:

image.png


  1. 为了解决这个分母,我们使用negative sampling6的方法:简单来说就是原本我们是用所有节点作为归一化的负样本,现在我们只抽出一部分节点作为负样本,通过公式近似减少计算

image.png

这个随机分布不是uniform random,而是random in a biased way:概率与其度数成比例。


负样本个数k的考虑因素:

  • 更高的k会使估计结果更鲁棒robust(我的理解是方差↓)
  • 更高的k会使负样本上的偏差bias更高(其实我没搞懂这是为什么)
  • 实践上的k常用值:5-20


  1. 优化目标函数(最小化损失函数)的方法:随机梯度下降SGD


  1. random walks: summary

image.png


  1. random walk策略
  • Simplest idea: Just run fixed-length, unbiased random walks starting from each node

举例:DeepWalk7

问题:相似度概念受限

  • node2vec8

image.png

image.png

image.png

image.png

image.png

image.png


  • 其他随机游走方法:

image.png


  1. Summary so far
  • 节点嵌入:使embedding的向量距离能够反应原网络中的节点相似度
  • 衡量节点相似度的指标

Naive: 节点间有边

Neighborhood overlap (在Lecture 212 讲过)

random walk approaches(本节课所讲)

  • 需要根据具体情况来选择算法。node2vec在节点分类任务上表现更好,不同的方法在不同数据的链接预测任务上表现不同13。random walk approaches整体上更有效。


4. Embedding Entire Graphs


image.png

任务示例:

  • 分类有毒/无毒分子
  • 识别异常图


也可以视为对节点的一个子集的嵌入


  1. 方法1:聚合(加总或求平均)节点的嵌入

image.png

示例:Duvenaud D, Maclaurin D, Aguilera-Iparraguirre J, et al. Convolutional networks on graphs for learning molecular fingerprints[J]. arXiv preprint arXiv:1509.09292, 2015. 用图结构对分子进行分类。虽然方法很简单但是表现挺好。


  1. 方法2:创造一个假节点(virtual node),用这个节点嵌入来作为图嵌入

这个virtual node和它想嵌入的节点子集(比如全图)相连

image.png

示例:Li Y, Tarlow D, Brockschmidt M, et al. Gated graph sequence neural networks[J]. arXiv preprint arXiv:1511.05493, 2015.


  1. 方法3:anonymous walk embeddings14(以节点第一次出现的序号(是第几个出现的节点)作为索引)

image.png

这种做法会使具体哪些节点被游走到这件事不可知(因此匿名)

image.png

  • anonymous walks的个数随walk长度指数级增长:

image.png


  • anonymous walks的应用1:模拟图上长为 l ll 的匿名随机游走,将图表示为walks的概率分布向量(我感觉有点bag-of-anonymous walks、有点像GDV那些东西,总之都是向量每个元素代表其对应object的出现概率/次数)

image.png


  • sampling anonymous walks(图中这个m我还不知道是从哪来的)

image.png


  • anonymous walks的应用2:walk embeddings

image.png

image.png

image.png

image.png

image.png


  • Summary

image.png


  • Lecture 8中会讲到Hierarchical Embeddings方法,分层级聚合图中节点获得全图嵌入向量


5. 本章总结


  1. 如何使用节点嵌入:聚类、社区发现,节点分类,链接预测(通过concatenate、哈达玛积、取平均、求和、计算距离来得到链接嵌入)图分类(聚合节点嵌入或使用匿名随机游走获得图嵌入)

image.png

哈达玛积、sum/avg、L2距离在无向图上表现好,因为它们是commulative的(就是交换参数对结果没有影响);如果是有向图的话concatenate就会好


  1. Summary

image.png


相关文章
|
2月前
|
JavaScript 前端开发 程序员
前端学习笔记——node.js
前端学习笔记——node.js
56 0
|
2月前
|
机器学习/深度学习 计算机视觉 Python
模型预测笔记(三):通过交叉验证网格搜索机器学习的最优参数
本文介绍了网格搜索(Grid Search)在机器学习中用于优化模型超参数的方法,包括定义超参数范围、创建参数网格、选择评估指标、构建模型和交叉验证策略、执行网格搜索、选择最佳超参数组合,并使用这些参数重新训练模型。文中还讨论了GridSearchCV的参数和不同机器学习问题适用的评分指标。最后提供了使用决策树分类器进行网格搜索的Python代码示例。
158 1
|
3月前
|
Prometheus 监控 Cloud Native
prometheus学习笔记之node-export
prometheus 监控 node-exporter
|
4月前
|
Java jenkins Shell
jenkins学习笔记之五:Maven、Ant、Gradl、Node构建工具集成
jenkins学习笔记之五:Maven、Ant、Gradl、Node构建工具集成
|
4月前
|
机器学习/深度学习 算法 Python
【绝技揭秘】Andrew Ng 机器学习课程第十周:解锁梯度下降的神秘力量,带你飞速征服数据山峰!
【8月更文挑战第16天】Andrew Ng 的机器学习课程是学习该领域的经典资源。第十周聚焦于优化梯度下降算法以提升效率。课程涵盖不同类型的梯度下降(批量、随机及小批量)及其应用场景,介绍如何选择合适的批量大小和学习率调整策略。还介绍了动量法、RMSProp 和 Adam 优化器等高级技巧,这些方法能有效加速收敛并改善模型性能。通过实践案例展示如何使用 Python 和 NumPy 实现小批量梯度下降。
45 1
|
6月前
|
机器学习/深度学习 算法 BI
机器学习笔记(一) 感知机算法 之 原理篇
机器学习笔记(一) 感知机算法 之 原理篇
|
6月前
|
机器学习/深度学习 搜索推荐 PyTorch
【机器学习】图神经网络:深度解析图神经网络的基本构成和原理以及关键技术
【机器学习】图神经网络:深度解析图神经网络的基本构成和原理以及关键技术
1374 2
|
6月前
|
机器学习/深度学习 算法 数据可视化
技术心得记录:机器学习笔记之聚类算法层次聚类HierarchicalClustering
技术心得记录:机器学习笔记之聚类算法层次聚类HierarchicalClustering
69 0
|
6月前
|
数据采集 存储 编解码
技术笔记:Node.jsmm131图片批量下载爬虫1.01增加断点续传功能
技术笔记:Node.jsmm131图片批量下载爬虫1.01增加断点续传功能
108 0
|
6月前
|
机器学习/深度学习 分布式计算 API
技术好文:Spark机器学习笔记一
技术好文:Spark机器学习笔记一
48 0