Efficient Representation Learning using Random Walks for Dynamic Graphs

这是Hooman Peiro Sajjad,Andrew Docherty,Yuriy Tyshetskiy于2019年发表的一篇论文,主要是对动态图随机游走序列提出了更新策略。

1.背景知识

节点的Representation Learning

把节点表示为低维的向量表达。

Random Walks

  • 随机游走可以捕获图的结构信息,用于节点表征学习。

    Eg: 𝑘阶随机游走,即给定序列前𝑘个节点后,选择出第𝑘+1个节点。

  • 从起始节点到终止节点的概率值 - 可用来表示相似度。(正比于u节点与v节点embedding之后的点乘结果)

随机游走中的节点对

已知 K 个长度为 L 的游走序列:
在这里插入图片描述
在这里插入图片描述
把节点对的第一项即节点 l 称为 target,后一项称为 context,p 称为context window size。

Vertex pair corpus

所有游走序列产生的节点对集合。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.相关研究

动态图

图的节点和边随着时间变化而增加或删除。
在这里插入图片描述

过去方法

基于静态图,当图发生变化时,再于新的snapshot上重新随机游走。- 低效

3.提出问题

论文提出了Unbiased Update Random Walks的方法,根据dynamic change更新游走序列,计算复杂度取决于其程度和比例。 - 高效

目标

给定 𝑡 时刻的游走序列,更新 𝑡+1 时刻的游走序列,使与单独从 𝒢(𝑡+1) 上得到的游走序列相同。(注意本文讨论的是无向无权图)

定义图的动态变化

  • 变化的边集:分别代表 Delete 和 Add 的边
    在这里插入图片描述
  • 变化的节点集:分别代表 Delete 和 Add 的节点
    在这里插入图片描述

定义受影响的节点和边

  • Affected vertice
    在这里插入图片描述
    这里的 “V(边集)” 表示边的两个端点的集合。
  • Affected walks
    至少包含一个受影响节点的游走序列。

4.更新random walks的3种方法比较

如下图(a)是 t 时刻的图,(b)表示在 t+1 时刻增加了 (B,D)这条边和 D 这个节点。
在这里插入图片描述

  • Static
    每次图变化后,在新图上重新产生所有游走序列。
    在这里插入图片描述

  • Naive Update
    新增的节点产生新的游走序列加入原来的序列集合,这种方法会导致有概率偏差。比如加入了节点 D 后,节点 A 应能游走到 D 才对,但是Naive Update 没有对 A 的游走序列进行改变。
    在这里插入图片描述

  • Unbiased Update
    从受影响序列中第一个出现的affected vertex之后重新游走该序列。为了让大家更好地理解这个方法,这里贴上原文描述。
    在这里插入图片描述在这里插入图片描述
    从伪代码可以看出,受影响的序列更新后,和未受影响的序列共同构成序列集合,再重新训练整个图。

  • 与此相对的有一个Fast Update:从受影响序列的初始节点重新开始游走 。

Transition Probabilites Error

通过游走序列的节点转移概率误差图,可证明Unbaised Update和RegRW(Static方法)产生序列相似,而简单粗暴的Naive Update则误差很大,Fast稍微好一点,但是依然效果不太好。
在这里插入图片描述

时间复杂度分析

可以看出Unbaised Update下限是只增加了一个新节点,上限和Static方法相同,相对来说更高效。
在这里插入图片描述

5.实验部分

Skip-Gram Model

上文提到的转移概率如下。

  • 目标节点和context共同出现的概率:
    在这里插入图片描述

  • 最小化损失函数:
    在这里插入图片描述

实验设置

  • 用了8个CPU和150GB内存。

  • 代码和数据集:Github

  • 对比算法:用于静态图的DeepWalk/node2vec;Naïve Update

数据集

由于这些数据集没有时间信息,因此是分多个时间片逐步加入边,构造动态图。比如:一开始选择40%的边构造初始图,然后每个时间片随机选择50条边加入,直至形成完整的图。由于加入边不一定保持整个图的连通性,因此在训练的时候只训练最大连通分量的节点。
Update Rate:每个时间片增加的边数

在这里插入图片描述

节点多分类任务

可以看出Unbaised Update可以达到和静态图更新接近的效果,而用时大大减少
在这里插入图片描述
在这里插入图片描述

参数Update Rate的影响

当Update Rate越大时,受影响的序列比例就越大。
在这里插入图片描述

6.总结与思考

  • 一种高效的增量式更新random walks的方法
    接近新的snap shot重新游走得到的序列效果;计算时间缩短,适合在节点多的大图上使用。
  • 论文中只讨论无向无权图的游走,如何利用边的方向或者权重?
  • temporal random walks中是否可以结合affected vertex设计更好的游走策略?
  • 以上文例子来看,如果 D 的 L 阶邻居们的游走序列都更新了,加上 D 自己的游走序列,那么就跟Static方法在最终图上游走是相同的效果,这样可能比Static更省时。那么在考虑这些L阶邻居的序列时,由于第L个节点游走回D的可能性较低,那么第L阶邻居就赋予比较小的权重?(给动态变化的部分赋予更大的权重)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值