文献阅读(53)AAAI2021-Adversarial Directed Graph Embedding

本文是对《Adversarial Directed Graph Embedding》一文的浅显翻译与理解,如有侵权即刻删除。

朋友们,我们在github创建了一个图学习笔记库,总结了相关文章的论文、代码和我个人的中文笔记,能够帮助大家更加便捷地找到对应论文,欢迎star~

Chinese-Reading-Notes-of-Graph-Learning

更多相关文章,请移步:文献阅读总结:网络表示学习/图学习

Title

《Adversarial Directed Graph Embedding》

——AAAI2021

Author: Shijie Zhu

总结

笔记参考:https://zhuanlan.zhihu.com/p/408915714

文章认为在有向图嵌入中,传统的方法往往会独立地为节点学习其源嵌入和目标嵌入,而对于度数较小的节点和没有出度或入度的节点嵌入生成并不友好。因此,文章提出了DGGAN算法,利用对抗学习的思想来为有向图中的节点学习嵌入。具体而言,文章学习了一个判别器和两个生成器,由生成器分别生成假的源嵌入和目标嵌入,再由判别器进行区分,在对抗的过程中学习到最佳的节点嵌入。

1 概述

文章认为,现有的有向图嵌入主要存在两类问题:

(1)以HOPE为代表的矩阵分解方法,依赖于严格的邻近性度量算法(比如Katz)和图邻接矩阵的低秩假设,因此很难泛化到不同类型的图和任务中。而且,HOPE无法扩展应用到大规模图上,因为它需要整个图邻接矩阵作为输入,而后通过矩阵分解来得到节点嵌入。

(2)以APP为代表的浅层模型方法,往往关注于图的显式结构而忽略了其隐式结构。这些方法按照边的指向进行随机游走,从采样中学习节点嵌入,但这种策略对于度数较小的节点和没有出度或入度的节点而言,很难学习到有效的节点嵌入。
文章针对这一问题,给出了示例:

在这里插入图片描述
以该图为例,传统方法对C与A之间边的判别,无论指向哪边,都会得到同样的概率结果。而事实上,由C到A的有向边显然比反方向的有向边产生的可能性更大。此外对于C和B这种只有出度或者入度的情况在现实世界数据集中也很常见,可见上图中的饼状分布。

2 算法框架

基于上述情况,文章结合对抗学习(即生成对抗网络GAN),设置了一个判别器和两个生成器,利用两者间的对抗学习表达能力更强的节点嵌入。该算法示意图如下:

在这里插入图片描述

此外,应当注意的是,在有向图中,一个节点有着两个身份,在发出交互时,扮演着源节点的角色,在收到交互时,扮演着目标节点的角色。因此,有向图嵌入的方法,往往会为同一个节点学习两种身份不同的嵌入。在此,对一个节点u,规定s_u为其源嵌入,t_u为其目标嵌入。

2.1 生成器

文章指出,生成器在此有三个目标:

(1)应当生成尽可能接近真实值的源嵌入和目标嵌入;

(2)应当有能力生成不存在的节点;

(3)对于没有出度或者入度的节点,应当有能力生成假的节点嵌入。

对于第一个目标,文章构建了两个生成器,G_s用来生成源嵌入,G_t用来生成目标嵌入。对第二和第三个目标,文章在两个生成器间构造了一个分布p_z,该分布作为样本被两个生成器所共享,通过分布生成的隐藏变量z就可以作为不存在节点嵌入生成。此外,算法没有直接从该分布中生成样本,而是通过多层感知机MLP来增强假嵌入的表达能力。进而,生成器可以形式化如下:

在这里插入图片描述

其中,f表示MLP,其构造包括隐藏变量和生成器参数。对隐藏变量z而言,其作为两个生成器间的桥梁,保证了两个生成器并非独立训练,而是互相更新生成更有效的节点嵌入。换言之,生成器通过从分布中选取隐藏变量,再经过MLP筛选去最接近真实值的节点嵌入作为假嵌入。

对于隐藏变量来源的分布,文章选取高斯分布如下:

在这里插入图片描述
由于两个生成器间的隐藏变量分布是共享的,因此生成器参数包括:

在这里插入图片描述

生成器的目的在于,生成尽可能接近真实节点嵌入的假嵌入,因此要约束假嵌入与真嵌入间的交互概率尽可能大,其损失函数如下所示:

在这里插入图片描述

2.2 判别器

判别器D的目标在于将真实的节点嵌入和伪造的节点嵌入进行有效区分,给出任意节点对,其对于真实的节点交互得到尽可能大的概率,对于含有假嵌入的节点交互得到尽可能小的概率。关于概率的计算公式如下:

在这里插入图片描述

在这种情况下,其损失目标要分两种情况进行讨论。

对于正样本,即一次交互中的两个节点均为真实节点且该交互存在,此时应当鼓励其概率尽可能大,损失函数如下:

在这里插入图片描述

对于负样本,即包含假嵌入的节点对,应当迫使两者间的交互概率尽可能小,损失函数如下:

在这里插入图片描述

将两个损失函数相加,就得到了关于判别器的损失函数。

2.3 训练过程

算法在训练时,先固定生成器的参数不变,通过生成假嵌入进行判别,来优化判别器参数。而后,再固定判别器参数不变,仍然重复上述过程,来优化生成器参数。通过生成器与判别器间的对抗不断对模型及节点嵌入进行优化,直到损失值收敛。其伪代码如下:

在这里插入图片描述

2.4 计算复杂度

此外,文章还讨论了算法的计算复杂度,在此不再赘述。

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值