BiNE:bipatite network embedding

bipatite 网络嵌入工作

bipatite network 分别有两种节点集合,以及集合之间的连接(边)构成,即(U,V,E),其中E的边可以构成一个 |U| x |V| 的权重矩阵W。

BINE: 的contribution之一即同时区别了显式(explicit)和隐式(implicit)的关系。其中,显式的关系和LINE的一阶概率是一致的,采用了KL散度对节点的向量进行计算——这里使用sigmoid函数计算节点的相似度,同时观察相似度利用节点权重(边)——我们知道,在PTE模型中,采用了softmax函数计算节点的二阶相似度,也就是所谓的隐式概率,在BiNE中,利用了DeepWalk类似的解决办法(结合skip-gram),也是其论文的重点。

explicit relations:一阶相似度,采用KL散度拟合边权重和sigmoid计算的节点相似度;

implicit relations:二阶相似度,首先采用随机游走生成两类序列,然后利用skip-gram学习。在构造2-阶相似度中,利用co-HITS算法,分别计算节点u,v的相关系数:


很明显,相似度U是集合了i到j之间的所有路径权重(2-hop),相似度集合了同时到达i,j的所有路径权重(2-hop),从而得到两个权重矩阵(邻接矩阵),基于这两个矩阵,生成随机游走的序列(具体见论文),但是论文其实也没有很详细的介绍过程,可能需要看相关的源码

BiNE

得到了序列之后,第二步就是根据序列学习每个节点的向量表示(distributed representation),运用skip-gram模型,把图的随机游走序列作为输入。这里,另一个trick,就是对每个节点,生成其对应的上下文表示,利用上下文表示进行概率计算 —— 这里怎么得到上下文表示呢?没有说明,应该是在随机节点向量的时候同时初始化的,但是会考虑上下文中其他节点的表示嘛?

同样的,需要采用负采用优化,这里的负采用不是随机选取负样本,而是通过LSH对向量进行映射,分组,在不同的桶里面选出不相干的负样本。

在得到这些数据之后,最后需要联合优化了:


其中O2,O3为二阶的目标函数,O1为一阶的目标函数。因为用到SGA,推导没看,所以略过这部分。

最后就是实验。但是没有对比PTE模型,因为本质上这还是同构的图,很难说在异构环境中的效果会怎么样。而且,BiNE模型明显要比PTE更加复杂。

猜你喜欢

转载自blog.csdn.net/qifeiyang112358/article/details/82802636