Machine Learning with Graphs 之 Anonymous Walk Embeddings

在这里插入图片描述这儿涉及到一个概念anonymous walks,即匿名游走,具体的论文是ICML2018的同名论文:Anonymous Walk Embeddings, ICML 2018 https://arxiv.org/pdf/1805.11921.pdf
首先对于随机游走(random walk)而言,它是node的序列,而序列是根据一定的随机游走策略获得的。对于一个random walk序列而言,其state往往是节点的全局index(或者叫做global name)或者 label,但这样的state往往是unavailable的,因此匿名游走就是随机游走的一个匿名版本,即使global name不可获取,依旧可以提供一种灵活的方式来重建网络,形式化表示为:
w = ( v 1 , v 2 , . . . , v k ) a = ( f ( v 1 ) , f ( v 2 ) , . . . , f ( v k ) f ( v i ) = m i n p j ∈ p o s ( w , w i ) p o s ( w , w i ) w = (v_1, v_2, ..., v_k) \\ a = (f(v_1), f(v_2), ..., f(v_k) \\ f(v_i) = \underset{p_j\in pos(w,w_i)}{min}pos(w,w_i) w=(v1,v2,...,vk)a=(f(v1),f(v2),...,f(vk)f(vi)=pjpos(w,wi)minpos(w,wi)
我们称 w ↦ a w \mapsto a wa为从random walk w w w往anonymous walk a a a的映射。
看着挺复杂,其实一句话概括就是匿名游走的节点如果在先前出现过,则将此时的index设置为它第一次出现时的index,习惯性从1开始计数,每当遇到一个新的没有遇到过的节点,则自增state(index),即state的最大值等于这一条walk中存在的unique的节点数目。

在这里插入图片描述在这里插入图片描述

即匿名游走是对节点的身份无感知的,具体在论文中也解释了这样一种游走方式的合理性以及应用场景。一个网络的全局拓扑结构往往是有意隐藏的,举例来说,社交网络会限制外人获取到你的朋友关系,万维网新创建的链接也往往此时不为搜索引擎所感知,然而,对于单个节点而言(称之为observer),它可以以它自己为起点,展开随机游走来对网络进行探索,然后把这个过程传递给他的邻居节点,并且记录下在一条随机游走序列中所观察到的状态states。对于一个观察者而言,节点的global names是不为自己所知道的,因此一种方式就是匿名地记录状态,用遇到的节点用第一次出现的index来描述。这样的方式不仅简明扼要,而且对于一些对隐私安全有限制的场景也是非常常用的,因为它不允许你记录nodes的完整描述。

与此同时,在先前的工作:Reconstructing markov pro- cesses from independent and anonymous experiments. 也已经证明,对于一个节点 u u u而言,它处在网络 G G G当中,如果已知它的长度为 l l l的anonymous walk的分布 D l D_l Dl,那么是足够重建一个球形的拓扑结构 B ( u , r ) B(u,r) B(u,r),其中心是 u u u,半径是 r r r。即能够得到节点 u u u r r r hop的拓扑结构。对于学习表征的任务而言,图的拓扑结构是已知的,因此可以很准确地计算匿名游走的分布 D l D_l Dl,因为两个不同的子图,不可能有相同的分布 D l D_l Dl,因此如果把匿名游走的分布,由单个节点泛化到整个网络的话,就能得到整个网络的feature representation。

在这里插入图片描述
从上面对匿名游走的定义可以知道,对于任意一个给定的graph而言,它的路径为 l l l的匿名游走的pattern数目,是与路径长度 l l l呈指数的关系的,如上图。举例来说,对于长度为3的匿名随机游走,它的数目为5。即
w 1 = 111 , w 2 = 112 , w 3 = 121 , w 4 = 122 , w 5 = 123 w_1 = 111, w_2 = 112, w_3 = 121, w_4 = 122, w_5 = 123 w1=111,w2=112,w3=121,w4=122,w5=123,整个数目的上界为n!,比如说长度为3的随机游走,第一个位置只能取0,第二个位置可以取1,可以取2,第三个位置可以取1,2,3,但是由于index的自增性质,因此不可能出现1,1,3(只能是1,1,2),因此会比n!少。但为什么是指数增长,还没有想通。
在这里插入图片描述
对于上面这个例子还有一个比较困惑的地方,按理不应该存在1,1,1这样的情况,因为随机游走难道还能自己走向自己吗?同理1,1,2以及1,2,2也不能理解。后面我领悟到了,这算的是有向图,即可以存在自己指向自己的情况。

长度为 l l l的匿名随机游走,可以产生 η \eta η 种类型的pattern,对于一个节点 u u u而言,我们可以统计出每种pattern出现的概率或者频数(类似于前两张所提到的graphlet, DGV),然后作为表征节点 u u u的一个向量 A l u = ( a 1 u , a 2 u , . . . , a η u ) A_l^u = (a_1^u, a_2^u,..., a_{\eta}^u) Alu=(a1u,a2u,...,aηu)。至于这个概率 p ( a i u ) p(a_i^u) p(aiu)的计算方式可以是第i种pattern出现的频数/总共所有pattern出现的频次数目,或者对于加权图,可以引入边的weights来计算。那么泛化到整个网络而言,网络的特征就可以用
p a i = 1 N ∑ u ∈ G ∑ p ( w ) w ∈ W l u ∈ G , w ↦ a i p_{a_i} = \frac{1}{N} \underset{u\in G}{\sum} \underset{w \in W_l^u\in G, w \mapsto a_i}{\sum p(w)} pai=N1uGwWluG,waip(w)
其中 N N N是网络的节点数目, p ( a i ) p(a_i) p(ai)是对应pattern i的分量。即得到与之前WL或者Graphlet kernel等类似的kernel的特征来表征这个图。

那么随机而来的一个问题,就和之前Graphlet kernel一样,计算量极大。真整个anonymous walk embedding的算法时间复杂度为 o ( n l ( d i n m a x ( v ) . d o u t m a x ) ) l / 2 o(nl(d_{in}^{max}(v).d_{out}^{max}))^{l / 2} o(nl(dinmax(v).doutmax))l/2
这儿涉及到一个定理,(Tubig, 2012)
k l 2 < = ( ∑ u ∈ G d i n l ) ( ∑ u ∈ G d o u t l ) k_l^2 <=( \underset{u \in G}{\sum} d_{in}^{l})( \underset{u \in G}{\sum} d_{out}^{l}) kl2<=(uGdinl)(uGdoutl)
因此随机游走的数目最多为 n . ( d i n m a x ( v ) . d o u t m a x ( v ) ) l / 2 n.(d_{in}^{max}(v).d_{out}^{max}(v))^{l/2} n.(dinmax(v).doutmax(v))l/2,其中 d i n / o u t m a x d_{in/out}^{max} din/outmax是graph里面的最大入度和出度。还需要o(l)的时间复杂度来进行random walk到anonymous walk的映射。
在这里插入图片描述因此,这儿也采用了采样的方式,即不完全计算所有的匿名游走路径,而是通过采样一定数目的路径来近似真实的分布,即随机抽取m条随机游走路径,为了保证采样的分布和真实的分布以一定的置信度近似,因此m往往取得足够的大。具体而言,如果让
A l = ( a 1 , a 2 , . . . , a η ) A_l = (a_1, a_2, ..., a_{\eta}) Al=(a1,a2,...,aη)为路径为 l l l得匿名游走的集合,因此两个离散分布的差,可以形式化用L1距离表示为
∥ P − Q ∥ 1 = ∑ a i ∈ A ∣ P ( a i ) − Q ( a i ) ∣ \lVert P - Q \rVert_1 = \underset{a_i \in A}{\sum} \lvert P(a_i) - Q(a_i) \rvert PQ1=aiAP(ai)Q(ai)∣
对于grpah G G G 我们让 D l D_l Dl A l A_l Al的真实分布,然后我们让 X m = ( X 1 , X 2 , . . . , X m ) X^m = (X_1, X_2, ..., X_m) Xm=(X1,X2,...,Xm)为从真实分布独立同分布地采样的m个样本,那么采样的分布表示为 D m D^m Dm,其表示为:
D m ( i ) = 1 m ∑ [ X j = a i ] X j ∈ X m D^m(i) = \frac{1}{m} \underset {X_j \in X^m}{\sum [ X_j = a_i ]} Dm(i)=m1XjXm[Xj=ai]
其中 [ x ] = 1 [x] = 1 [x]=1 if x is true and 0 otherwise. 虽然看起来复杂,其实就是一个统计 a i a_i ai出现的频率当作此时 i i i位置的分布分量。
然后对于任意的 ϵ > 0 \epsilon > 0 ϵ>0 and δ ∈ [ 0 , 1 ] \delta \in [0,1] δ[0,1], 采样的数目 m m m必满足 P { ∥ D m − D l ∥ 1 > = ϵ } < = δ P\{\lVert D^m - D_l \rVert _1 >= \epsilon \}<= \delta P{∥DmDl1>=ϵ}<=δ,推导得到:
m = ⌈ 2 ϵ 2 ( l o g ( 2 η − 2 ) ) − l o g ( δ ) ⌉ m = \lceil \frac{2}{\epsilon ^2}(log(2^\eta - 2)) - log (\delta) \rceil m=ϵ22(log(2η2))log(δ)⌉
举例来说,如果长度为 l l l,那么pattern数目 η = 877 \eta = 877 η=877,如果我们取 ϵ = 0.5 \epsilon = 0.5 ϵ=0.5 以及 δ = 0.05 \delta = 0.05 δ=0.05,那么得到的 m = 4888 m = 4888 m=4888,如果 ϵ = 0.1 \epsilon = 0.1 ϵ=0.1 以及 δ = 0.01 \delta = 0.01 δ=0.01,那么采样的数目就会增加到122500. 即采样的数目m与 ϵ \epsilon ϵ呈反比,与 δ \delta δ也呈现反比。具体上面的证明,可以看一下引用的论文,这儿一个直观的理解就是,如果采样数目m越大,那么越接近真实的分布,即真实分布与采样分布之间的差会更小,因此可以让上面的约束更加严格,即 ϵ \epsilon ϵ δ \delta δ都取更小的值。如果保持 ϵ \epsilon ϵ不变,那么当增大 δ \delta δ的值时,意味着对条件放松,那么我们少采样一些样本,即m减少也是可以的满足约束。

在这里插入图片描述上面的方法类似于graph kernel的方式,即一种feature-based model,下面介绍的是一种data-driven model,即直接来学习这样一种graph以及anonymous walk的embedding。

在这里插入图片描述
这儿又是借鉴了NlP的思想,将一条anonymouse walk当作一个单词word,而将整个graph当作一篇document,而从相同节点随机采样得到的一系列anonymous walks视作co-occurring words的集合。因此,对于每一个节点 u u u,我们可以采样 T T T给random walks,然后把它们映射为anonymous random walks, 然后得到整个graph的各个节点的arw集合,即可以视作得到了一系列在document里面的句子的集合。因此对于一个匿名游走的矩阵 W W W,它的维度为 η × d a \eta \times d_a η×da,其中 d a d_a da是anonymous random walk特征的维度,然后我们训练这样一个模型,它的输入的co-occurring context anonymous walk以及整个graph的表征,我们要预测一个目标anonymous walk。
即损失函数如上,其中 Δ \Delta Δ是窗口的大小,即对于目标词而言,它上下文词的数量。

在这里插入图片描述最大似然估计表示如上,其中概率的计算用到了softmax,其中分子的计算,即用窗口 Δ \Delta Δ个anonymous random walk的向量的平均值 然后与整个graph的向量 z G z_G zG进行拼接,然后优化的参数为 U ∈ R d a + d g U \in R^{d_a + d_g} URda+dg 以及 b ∈ R b \in R bR,经过这个线性层,可以得到未归一化的概率得分,同理因为完全的softmax分母的计算量极大,因此也用到了negative sampling的技术。而整个graph的向量,在不同(context, target)的pair中都在共享。
因此这个模型重复如下的操作,实现训练:
【1】对于采样得到的co-occured anonymous walks,模型根据上述公式计算损失
【2】通过梯度反向传播,模型更新context walks在W中的表征,以及整个graph的表征
在这里插入图片描述在这里插入图片描述当然在后续的章节,也会介绍这种层次化的embedding方式,即根据不同的聚集簇来获取整个graph的表征。

在这里插入图片描述
在这里插入图片描述

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

猴猴猪猪

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

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

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

打赏作者

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

抵扣说明:

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

余额充值