[datawhale202302]CS224W图机器学习:图嵌入表示学习导论

27 篇文章 1 订阅
文章介绍了图嵌入的基本框架,包括编码解码思想,以及DeepWalk和Node2Vec等基于随机游走的方法。重点讨论了节点和全图的嵌入目标,强调了嵌入向量应能保留原图特征,并探讨了不同随机游走方法的优缺点。此外,还提及了全图嵌入的几种策略,如节点嵌入求和、虚拟节点方法和匿名随机游走。
摘要由CSDN通过智能技术生成

结论速递

这是图嵌入表示学习的导论。

节点嵌入的框架为编码解码,可以类比自然语言处理中的机器翻译,目标是特征空间里相似的点与原图相似的点尽可能接近。这里原图相似的点的描述比较重要,简单的方法是查表,最经典的就是随机游走。简单介绍了基于随机游走的DeepWalk和Node2Vec,后面论文精讲还会仔细讲。

全图的嵌入有三种思路。

前情提要

  1. 图机器学习导论
  2. 图的基本表示及特征工程

1 问题引入

前面的任务当中提到,机器学习为了达到比较好的效果,会先进行特征工程,将数据转化为D维向量。

传统的图机器学习也是类似,如果使用特征工程,将图转化为一个D维向量,就可以用传统的机器学习方法来完成图机器学习任务了。若我们将特征工程的方法自动化,让机器自动学习特征,那么可以称为表示学习,这是深度学习的一个重要概念。

描述图的特征,分为以下几个维度:

  • 节点
  • 子图/全图

将图映射维D维向量的方法可以简单分为以下几种:

  • 人工特征工程:见

    图的基本表示及特征工程

  • 图表示学习:通过随机游走构造自监督学习任务。DeepWalk,Node2Vec都属于这个类型。

  • 深度学习:图神经网络

请添加图片描述

需要注意的是,表示学习提取的向量是与具体的下游任务无关的(而非反馈式的),是无监督/自监督的(与下游任务的标签无关)。

以将节点映射为d维向量为例,d维向量需要满足:

  • 低维:向量维度远小于节点数
  • 连续:每个元素都是实数(有正有负,有大有小)
  • 稠密:每个元素都不为0

同时,需要能够描述原图的特征(嵌入向量应能够包含网络连接信息)。

以DeepWalk原论文中的例子为例,空手道俱乐部的图上的节点颜色是通过无监督聚类得到的,DeepWalk表示嵌入后,原图中被标为一类颜色的节点在嵌入空间依然接近。这就表示嵌入过程有效地保留了原图的这部分信息。

请添加图片描述

2 图嵌入的基本框架:编码解码

2.1 嵌入目标

我们以下面这个图G(V,A)为例,这是一个无权图,节点没有属性信息。

请添加图片描述

嵌入的目标是:在图上相近的节点在嵌入后(编码后)特征空间里依然是相近的节点。

  • 在嵌入空间中常以使用向量点乘数值(余弦相似度)来反映节点的相似度(这个过程叫做解码?)。
  • 在原图中,节点相似度需要人为定义,可以是,如两节点直接/间接相连,或两节点在图中扮演了相同的功能角色等),或者使用随机游走(random walks)

请添加图片描述

2.2 嵌入框架:编码解码

嵌入的训练步骤如下:

  1. Encoder编码器( E N C ( v ) = z v ENC(v)=z_v ENC(v)=zv):将节点变为D维向量
  2. Similarity function( s i m i l a r i t y ( u , v ) similarity(u,v) similarity(u,v):定义一个节点相似度的方程
  3. Decoder解码器(DEC)计算嵌入空间的节点相似度(余弦相似度)
  4. 迭代优化每个节点的D维向量,使得 s i m i l a r i t y ( u , v ) similarity(u,v) similarity(u,v) z v T z u z^T_v z_u zvTzu尽可能相似。(图中相似节点向量数量积大,不相似节点向量数量积小)

所以其实和NLP中机器翻译的seq2seq的编码器解码器结构很接近。

2.3 一些概念

2.3.1 编码器结构

编码器结构分为两类,

  • Shallow Encoding:最简单的编码器:查表
    每一个列为一个节点的嵌入结果
    DeepWalk和Node2Vec属于这一类

请添加图片描述

  • deep encoder:GNN后续会讲。

2.3.2 随机游走Random Walk

描述节点的一种表达形式,由KDD2014的[1403.6652] DeepWalk: Online Learning of Social Representations (arxiv.org)这篇论文提出。

一个醉汉在一个图上随机地走,得到的序列,叫做随机游走序列。除此之外,我们可以定义醉汉的随机游走的限制条件,从而得到有限的序列。

请添加图片描述

随机游走序列有什么用?

可以类比自然语言处理中句子这一概念来理解。

事实上,图机器学习与NLP中有许多概念都可以相互类比:

请添加图片描述

节点,可以理解为单词。DeepWalk可以联想为句子中mask了一个词,通过上下文补全这个mask的词。

当两个节点共同出现在同一个随机游走序列时,定义节点是相似的。类比句子上下文的概念。

随机游走的优点

  • 表示能力强
  • 计算便捷
  • 自监督

随机游走的缺点:

  • 无法立刻泛化到新加入的节点,在某种程度上会是一种过拟合。(词书里没有的词,无法解读)需要针对新节点,采样新的序列。

  • 无法描述点的功能,结构,角色。
    无法描述两个离得很远,但功能类似的节点。

    请添加图片描述

  • 没有利用到属性信息,只利用了图本身的连接信息。

2.3.3 DeppWalk

DeepWalk的计算过程此处先简单小结成下面的图,后面论文精读再展开。

请添加图片描述

其中优化具体为求极大似然估计。

请添加图片描述

优化的过程是随机梯度下降:SGD,先随机初始化(全局梯度下降),然后再单个随机梯度下降(mini batch SGD)

请添加图片描述

小结:请添加图片描述

2.3.4 Node2Vec

其他步骤与DeepWalk接近,区别在于,是有偏的二阶随机游走。

请添加图片描述

通过p,q两个参数来确定,是否向更远的地方探索。由于探索者记得上一个节点是哪个(从哪来)所以是一个二阶的随机游走。

请添加图片描述

  • BFS宽度优先:微观视野,探索邻域,p小q大。可以找到节点功能角色(中枢,桥接,边缘)
  • DFS深度优先:宏观视野,全局,探索远方,p小q大。可以找到同质社群。

小结:

请添加图片描述

2.3.5 其他随机游走方法

还有其他的随机游走的方法

请添加图片描述

不同方法有各自适用的范围

请添加图片描述

2.4 矩阵角度理解嵌入的求解

两个节点嵌入后相乘得到邻接矩阵中为1,亦即相连,所以两个节点相似。

请添加图片描述

在实际中,Z矩阵矮胖,不容易求矩阵分解,常用数值计算方法。

上述提到的方法的求解都可以理解为矩阵分解。

3 全图嵌入

目标是将子图或全图嵌入到一个新的特征空间

请添加图片描述

第一种方法是:对每个节点都做嵌入,直接对所有的节点嵌入求和

第二种方法是:做一个虚拟节点,然后把虚拟节点的嵌入作为子图的嵌入。

请添加图片描述

第三种方法:匿名随机游走(Anonymous Walks)

对一次游走,每次在路径中见到一个新的节点,就编一个号(对全图来说认号不认节点)

请添加图片描述

然后就可以对不同匿名随机游走序列进行编码,

  • 对不同匿名随机游走序列的个数数数,来构造向量(Bag of Anonymous Walks)(很熟悉的套路,先定义一个概念,然后Bag数数)

    请添加图片描述

    当匿名随机游走的长度固定时,如果要使误差大于 ϵ \epsilon ϵ的概率小于 δ \delta δ,需采样m次, m m m的计算公式如下:

    m = [ 2 ϵ 2 ( log ⁡ ( 2 η − 2 ) − log ⁡ ( δ ) ) ] m = [\frac2{\epsilon ^2}(\log(2^\eta - 2)-\log(\delta))] m=[ϵ22(log(2η2)log(δ))]

  • 还有另外一种对匿名随机游走进行编码方法
    请添加图片描述

除了上述三种思路之外,还有分层聚类的方法,这个将在图神经网络那边涉及。

请添加图片描述

4 图嵌入的使用

请添加图片描述

参考阅读

  1. cs224w同济子豪兄Github
  2. 斯坦福CS224W图机器学习、图神经网络、知识图谱【同济子豪兄】_哔哩哔哩_bilibili
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SheltonXiao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值