前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WISE 2019 | ML-GCN:多标签图节点分类的半监督图嵌入

WISE 2019 | ML-GCN:多标签图节点分类的半监督图嵌入

作者头像
Cyril-KI
发布2022-11-10 11:23:41
4820
发布2022-11-10 11:23:41
举报
文章被收录于专栏:KI的算法杂记KI的算法杂记

题目:Semi-supervised Graph Embedding for Multi-label Graph Node Classification

会议:International Conference on Web Information Systems Engineering 2019

论文地址:https://arxiv.org/abs/1907.05743

之前的文章中有讲到GCN可以用作图的节点分类,并且给出了代码实现,具体可以参考:ICLR 2017 | GCN:基于图卷积网络的半监督分类以及PyG搭建GCN实现节点分类

GCN通过图卷积层集成节点、节点特征以及图拓扑关系来生成节点的状态向量,进而将其应用于节点分类等具体任务。对于简单的多标签分类任务来讲,GCN将图的特征矩阵经过多个图卷积层后得到每个节点的状态向量表示,然后再经过一个softmax函数来进行分类,最后再最小化softmax输出与真实标签的交叉熵损失。这种处理方式比较简单,但也容易丢失一些信息,如标签之间的相关性,从而无法得到较好的预测性能。

鉴于此,本文作者提出了新的基于GCN的半监督节点分类器:ML-GCN。具体来讲,ML-GCN首先使用GCN来嵌入节点特征和图形拓扑信息。然后随机生成一个标签矩阵,其中每一行(即标签向量)代表一种标签。标签向量的维数与GCN最后一次卷积操作前的节点向量维数相同。也就是说,所有的标签和节点都嵌入在一个统一的向量空间中。最后,在ML-GCN的模型训练过程中,将标签向量和节点向量连接起来作为skip-gram的输入,以检测节点-标签的相关性以及标签-标签的相关性。

值得注意的是,这篇论文提出的ML-GCN不是大家认为的由旷视研究院提出ML-GCN(基于图卷积网络的多标签图像识别模型),不过二者的思想是一致的,都是对标签间的依赖性进行建模。

1. GCN回顾

ML-GCN是基于GCN的,因此本文就先回忆一下GCN的具体处理过程,这部分内容在之前的文章中已经详细讲解过。

1.1 GCN原理

给定一个无向图

,其中

分别表示带标签的节点和不带标签的节点,

表示节点数目,在半监督学习中,一般不带标签的节点为大多数,我们的任务是推导出这些节点的标签;

为边集;

表示节点特征矩阵;标签矩阵

一共

行,为01矩阵,

表示标签的总类别数;

为邻接矩阵;

为度矩阵。

因此,对称归一化拉普拉斯矩阵可以定义为:

GCN每一层的操作可以定义为:

其中

表示带自环的邻接矩阵,

为单位矩阵。

为加上自环后的度矩阵;

为层权重矩阵;

为激活函数,比如ReLU;

,也就是节点特征矩阵;经过多层卷积后,我们得到了最终的

即GCN学到的节点的状态向量表示。

假设经过最后一层图卷积后得到了

,为了实现分类任务,我们可以加上一个sigmoid层:

这里

,每一行表示一个节点的各个标签的概率。最后,最小化结果与标签矩阵

的交叉熵损失:

1.2 GCN缺点

上述GCN模型简单易懂,但这种简单的模型可能存在一些问题:

  • 如果我们使用较少的层来构造GCN,那么最后一层维度与倒数第二层维度之间的差异可能会非常大,这可能会造成隐藏特征的丢失,使模型难以优化。例如Citeseer引文网络,它的输入特征维数为3703,标签数量为6,如果我们使用双层GCN,无论隐藏层维数的设置如何,我们都不能让维数平滑下降。
  • 如果我们简单地堆叠更多的层,该模型将混合来自不同标签的节点的特性,使它们难以区分。
  • 具有sigmoid层的多标签分类模型不能捕获标签关系,因为它单独处理每个标签。因此,它可能会丢失关于多标签图数据集的一些信息。

为了解决上述问题,本文提出了一个新的基于GCN的多标签节点分类模型ML-GCN。

2. ML-GCN

2.1 skip-gram

鉴于本文需要用到skip-gram的知识,因此这里简单回顾一下。假设窗口长度为w=2,单词序列为:

,我们的目标是使得以下概率最大化:

我们假设预测间是相互独立的,即我们需要最大化:

因此,假设上下文长度为

,中心词为

,那么上述优化目标可以被表示为:

考虑到:如果概率较小那么连乘后概率会非常小,因此对上述概率进行对数处理:

其中

表示文本长度。

在skip-gram中,假设当前中心词为

,要预测的上下文词语为

,那么上述概率可以表示为:

其中

可以理解为一开始初始化的两个参数矩阵,也就是参数

的组成部分,这两个矩阵的维度都为

。其中矩阵

可以理解为中心词矩阵,矩阵

为上下文矩阵。简单来说,就是将中心词向量与所有上下文词向量的内积运算做softmax,进而得到某个特定上下文单词

出现的概率。

上述公式的内在逻辑为:如果两个单词越相似,那么它们的词向量就越相似,那么内积就越大,概率也就越大。最大化概率,也就是最大化中心词向量与其上下文词向量的相似性

具体训练步骤:

1. 将所有单词进行one-hot编码,每个单词编码后的长度为

2. 将所有单词经过中心词矩阵

得到其长度为

的向量表示,即

3. 初始化一个权重矩阵

,维度同样为

,也就是前面提到的上下文矩阵。

4. 取出中心词的词向量

,然后与上下文矩阵中的所有向量做内积运算,这里也包括了单词

的向量,此时我们可以得到

个数字,然后进行softmax运算,以得到概率。

5. 对所有单词都求出其概率,然后概率之和最大化,利用梯度下降法反向更新上述两个矩阵。

2.2 ML-GCN思想

ML-GCN与GCN最大的不同在于其引入了一个标签嵌入矩阵

,即将每一个类的标签都表示为一个长度为

的向量。标签向量矩阵一开始是随机初始化的,这里的

与最后一次图卷积运算前的维度一致。假设最后一层卷积的输出为

,那么

下图给出了ML-GCN的具体框架:

由上图可知,原始图一共有7个节点,那么假设

,经过第一层卷积后,变成

,也就是上面提到的

,然后我们随机初始化

,也就是一共三个类别。然后,利用

计算label-label损失,同时结合

计算node-label损失。最后,将

经过第二层卷积,得到最终的图卷积结果并计算交叉熵损失。

上面的描述只是一个大概的框架,接下来我们进行详细的说明。

考虑一个具有多个标签的节点,输入为节点向量和对应的标签向量,我们的目标是最大化给定节点的这些标签出现的概率。如果我们将一个节点及其标签视为一个句子,那么目标可以被描述为:给定一个中心单词(节点),进而预测临近单词(标签),这是skip-gram的基本思想,即:根据中心词语以预测其上下文词语。例如,如下图所示:

节点

具有4个标签,我们可以将节点和标签都视为单词以生成一个句子,然后我们利用skip-gram进行计算。

现在将skip-gram引入到节点标签句子中:给定节点

及其标签

,此时

的向量表示为

的第

行,

的标签向量为

,我们考虑节点

作为中心词,其标签作为上下文词语。由于各个标签间没有顺序关系,因此我们可以组成

个node-label对,即上图所示。

对于任意一个节点

,我们通过最大化以下函数来优化节点及其标签嵌入:

最大化节点与其标签共现的对数概率

经过上述处理后,我们可以在特征维降至标签类之前更好地在高维空间捕获node-label相关性。

参考上述思想,我们可以捕获label-label相关性。具体来讲,给定节点

及其标签

,不同于前面最大化节点与标签共现的概率,在这里我们最大化标签与标签之间共现的概率,即:

对于某一个节点来说,如果该节点只有一个label,那么我们只考虑计算node-label相关性,如果该节点有多个label,那么我们可以同时考虑node-label相关性和label-label相关性。

2.3 协同优化和负采样

如果标签类数过多,上述计算将变得十分复杂,因此可以考虑使用负采样。对于nodel-label相关性,我们可以考虑将其从:

变为:

这里

为超参数,即需要采样的node-label个数。

对于label-label相关性,同样可以变为:

因此,ML-GCN的整体流程可以描述如下:

假设一共需要训练

轮,对其中每一轮:

  • 将节点的特征向量矩阵经过多个GCNConv层,以得到最终的状态向量表示

经过一个sigmoid函数,再与标签计算交叉熵损失。

  • 计算经过负采样后的node-label损失。
  • 计算经过负采样后的label-label损失。
  • 将三个损失进行加权,然后利用Adam优化加权损失。

3. 实验

数据集:

实验结果:

其中,Partly ML-GCN为只计算node-label损失的ML-GCN。可以发现,ML-GCN效果是最好。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-07-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 KI的算法杂记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图数据库 KonisGraph
图数据库 KonisGraph(TencentDB for KonisGraph)是一种云端图数据库服务,基于腾讯在海量图数据上的实践经验,提供一站式海量图数据存储、管理、实时查询、计算、可视化分析能力;KonisGraph 支持属性图模型和 TinkerPop Gremlin 查询语言,能够帮助用户快速完成对图数据的建模、查询和可视化分析。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档