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=1∏nj∈ci∏ log p(vj∣vi)=max log p(vp∣vi)+j∈Nvi∑log(1−p(vj∣vi))
也即,对于目标节点 v i v_i vi,想要增大邻居节点 v p v_p vp的概率得分 p ( v p ∣ v i ) p(v_p|v_i) p(vp∣vi),减少非邻居节点 v j v_j vj的条件概率 p ( v j ∣ v i ) p(v_j|v_i) p(vj∣vi)。 N v i N_{v_i} Nvi是负采样得到的负例节点集合。在deepwalk中,这个负例根据节点度的大小采样得到。
缺点:
- 并不能真正反映节点的包含的信息价值,一些度小的节点也可能有很大的价值。
- 在训练过程中,每个节点的节点表示向量会发生变化,因而两个节点在嵌入空间的距离也会发生变化,所以不同的节点对于目标节点的影响是会随着训练的进行而逐渐变化的。
Self-Paced Networkd embedding
衡量一个节点对于目前节点的价值方法是 p ( v j ∣ v i ) p(v_j|v_i) p(vj∣vi),即 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(vj∣vi)=σ(ujTui)=1+exp(−ujTui)1
如果 p ( v j ∣ v i ) p(v_j|v_i) p(vj∣vi)很大,称这样的节点为复杂负样本点,反之称为简单负样本点。对于一个目标节点,显然复杂点对目标节点的影
响最大。分开复杂节点肯定比简单节点更难。
所以该文提出一种选取负样本点的方法:
对于每个目标节点,选取在向量空间中与它最相近的几个节点,采样的分布满足:
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=∑j∈Nviexp(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(vp∣vi)+pij′,j∼Nvi∑log(1−p(vj∣vi))+l(μ)s.t.pij′={
pij,0pij<l(μ)othersdf