graph --- > Graph embedding (二)

本文介绍了SeedNE和Struc2Vec两种图嵌入方法。SeedNE提出了一种自步学习的负采样策略,通过调整采样概率,更好地捕捉节点的动态价值。Struc2Vec则利用层次带权图和动态时间规整(DTW)计算节点间结构相似度,通过随机游走生成向量表示。文章详细阐述了两种方法的背景、算法流程和优化策略。
摘要由CSDN通过智能技术生成

SeedNE

背景

本文聚焦在deepwalk这类方法中使用的负采样方法,其认为传统的负采样并不能采样出真正有价值的节点,因此提出一种更好的采样负例的方法,不仅采样出更有价值的节点,并且可以基于训练的不同过程分别采样出当前最合适的节点

DeepWalk这一类的方法采用的负采样方式是与节点度的大小有关的,它们的出发点是度越大的节点带有的信息越多,所以采样越多这样的节点就会有更好的效果。但是也没有证据证明这种方式能获得好的效果。另外,DeepWalk这类方法的采样方式是固定的,并不会随着训练过程的变化而变化。事实上从后文来看,这种采样方式忽略了很多低连接顶点有可能会很有用的事实,所以这也正是本文改进的地方。

方法

课程学习(Curriculum Learning)由Montreal大学的Bengio教授团队在2009年的ICML上提出,主要思想是模仿人类学习的特点,由简单到困难来学习课程(在机器学习里就是容易学习的样本和不容易学习的样本),这样容易使模型找到更好的局部最优,同时加快训练的速度。

自步学习(self-paced learning) 是基于课程学习(curriculum learning)发展而来的。相比于curriculum learning中需要将所有的样本人为的进行”难易”程度的排序,self-paced learning更进一步的通过添加一个正则项(SP-regularizer),来实现模型自动挑选简单的,也就是易于分类的样本(high-confidence samples)

DeepWalk目标

优化相邻节点的概率
m a x ∏ i = 1 n ∏ j ∈ c i   l o g   p ( v j ∣ v i ) = m a x   l o g   p ( v p ∣ v i ) + ∑ j ∈ N v i l o g ( 1 − p ( v j ∣ v i ) ) \begin{aligned} max \prod_{i=1}^n \prod_{j\in c_i}\ log \ p(v_j|v_i) = max\ log\ p(v_p|v_i) + \sum\limits_{j\in N_{v_i}}log(1-p(v_j|v_i)) \end{aligned} maxi=1njci log p(vjvi)=max log p(vpvi)+jNvilog(1p(vjvi))
也即,对于目标节点 v i v_i vi,想要增大邻居节点 v p v_p vp的概率得分 p ( v p ∣ v i ) p(v_p|v_i) p(vpvi),减少非邻居节点 v j v_j vj的条件概率 p ( v j ∣ v i ) p(v_j|v_i) p(vjvi) N v i N_{v_i} Nvi是负采样得到的负例节点集合。在deepwalk中,这个负例根据节点度的大小采样得到
缺点:

  • 并不能真正反映节点的包含的信息价值,一些度小的节点也可能有很大的价值。
  • 在训练过程中,每个节点的节点表示向量会发生变化,因而两个节点在嵌入空间的距离也会发生变化,所以不同的节点对于目标节点的影响是会随着训练的进行而逐渐变化的。

Self-Paced Networkd embedding

衡量一个节点对于目前节点的价值方法是 p ( v j ∣ v i ) p(v_j|v_i) p(vjvi),即 v j v_j vj v i v_i vi邻居的概率
p ( v j ∣ v i ) = σ ( u j T u i ) = 1 1 + e x p ( − u j T u i ) p(v_j|v_i) = \sigma(u_j^T u_i)= \frac{1}{1+exp(-u_j^Tu_i)} p(vjvi)=σ(ujTui)=1+exp(ujTui)1

如果 p ( v j ∣ v i ) p(v_j|v_i) p(vjvi)很大,称这样的节点为复杂负样本点,反之称为简单负样本点。对于一个目标节点,显然复杂点对目标节点的影
响最大。分开复杂节点肯定比简单节点更难。

所以该文提出一种选取负样本点的方法:
对于每个目标节点,选取在向量空间中与它最相近的几个节点,采样的分布满足
p i j = e x p ( u j T u i ) ∑ j ∈ N v i e x p ( u j T u i ) p_{ij}=\frac{exp(u_j^Tu_i)}{\sum_{j\in N_{v_i}}exp(u_j^Tu_i)} pij=jNviexp(ujTui)exp(ujTui)
也就是说,下训练过程中,复杂点被选中的概率很大。

最终的优化函数为:
m a x   l o g   p ( v p ∣ v i ) + ∑ p i j ′ , j ∼ N v i l o g ( 1 − p ( v j ∣ v i ) ) + l ( μ ) s . t . p i j ′ = { p i j , p i j < l ( μ ) 0 o t h e r s d f max\ log\ p(v_p|v_i) + \sum\limits_{p'_{ij}, j\sim N_{v_i}} log(1-p(v_j|v_i))+l(\mu)\\ s.t. p'_{ij}=\left\{\begin{matrix} p_{ij}, & p_{ij} < l(\mu)\\ 0 & other sdf \end{matrix}\right. max log p(vpvi)+pij,jNvilog(1p(vjvi))+l(μ)s.t.pij={ pij,0pij<l(μ)othersdf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值