ProGAN: Network Embedding via Proximity Generative
Adversarial Network
使用相似性生成对抗网络的网络嵌入
动机:
发现不同节点之间的邻近性是学习良好的节点表示的关键。网络中的边很稀疏,不能很好地披露不同节点的相似性,且大多数算法不能完全利用网络拓扑结构和属性信息。因此作者提出ProGAN可以生成邻近性。通过保留真实的相似性和生成的相似性,生成节点表示。
算法:
G = {V,W ,X} ,其中V表示节点集、W表示邻接矩阵、X表示属性矩阵。不同节点间的相似性被描述成三元组< v i , v j , v k v_i,v_j,v_k vi,vj,vk>,其中 v i v_i vi是参考节点, v j v_j vj是与 v i v_i vi相似的正节点, v k v_k vk是与 v i v_i vi不相似的负节点。
原始空间的相似性满足:
sim ( v i , v j ) > sim ( v i , v k ) \operatorname{sim}\left(v_{i}, v_{j}\right)>\operatorname{sim}\left(v_{i}, v_{k}\right) sim(vi,vj)>sim(vi,vk)
在进行节点表示的时候,应保留不同节点间的相似性。E看作是原始节点的低维表示,相似性满足:
sim ( E i . , E j . ) > sim ( E i . , E k . ) \operatorname{sim}\left(E_{i} ., E_{j} .\right)>\operatorname{sim}\left(E_{i} ., E_{k} .\right) sim(Ei.,Ej.)>sim(Ei.,Ek.)
假设真实三元组分布(未知)为 P ( v i , v j , v k ) P\left(v_{i}, v_{j}, v_{k}\right) P(vi,vj,vk),ProGAN的任务为学习一个分布 Q ( v i , v j , v k ) Q\left(v_{i}, v_{j}, v_{k}\right) Q(vi,vj,vk)以逼近原始网络中的三元组分布。那么从Q中生成的三元组就应该逼近真实的相似性。
生成的三元组中的节点应该同样逼近真实节点,即生成的节点分布 Q ( v i ) Q\left(v_{i}\right) Q(vi)也近似真实的节点分布 P ( v i ) P\left(v_{i}\right) P(vi)。
ProGAN共包含三个部分:生成器、判别器、编码器
生成器
生成三元组和节点。
生成器生成的节点 v ^ ∼ G ( z 1 , z 2 ) \hat{v} \sim G\left(z_{1}, z_{2}\right) v^∼G(z1,z2), z 1 , z 2 z_1,z_2 z1,z2是生成器的两个输入噪音。生成器的目标是:改变 z 1 , z 2 z_1,z_2 z1,z2控制两个生成节点的相似性。因此为了满足: sim ( v ^ i , v ^ j ) > sim ( v ^ i , v ^ k ) \operatorname{sim}\left(\hat{v}_{i}, \hat{v}_{j}\right)>\operatorname{sim}\left(\hat{v}_{i}, \hat{v}_{k}\right) sim(v^i,v^j)>sim(v^i,v^k),生成 ⟨ v ^ i