ComE: From Node Embedding to Community Embedding

原文:Zheng, Vincent W., et al. “From node embedding to community embedding.” arXiv preprint arXiv:1610.09950 (2016).

这篇文章是第一个提出 community embedding 的文章,思路为先利用 line 的方法训练 first order loss 和 second order loss 得到 embedding,然后使用 GMM 模型进行聚类(下图(3)过程),得到 community embedding(下图(1))过程。文章的主要贡献在于实现了(2)过程,从而完成了下面的闭环。得到的模型既能进行 node embedding ,也能进行 commuity detection。

ComE: From Node Embedding to Community Embedding_第1张图片

实验部分
作者在 community detection 和 Node Classification 两个问题上与 DeepWalk、node2vec、LINE、GraRep、SAE等方法进行了对比。

  • 在 community detection 任务上,对所有方法的输出使用GMM方法进行聚类,然后评价 NMI 和 Conductance。提升效果分别为 1.1%~2.8%(Condunctance)和 2.5%~7.8%(NMI)。
  • 在 node classification 任务上。对所有方法输出用 LibSVM 训练分类器,然后评价 Macro-Fi 和 Micro-F1。提升达到 9.52%~43.5%(Macro-F1),6.9%~19.4%(Micro-F1)。

时间复杂度:

  • 随机游走: O(Nγl) γ 为游走次数, l 为游走序列长度
  • 社团发现和embedding: O(NK) K 为聚类个数
  • first order embedding: O(M)
  • second order embedding: O(Nγl)
  • higher order embedding: O(MK)

总的复杂度为: O(N)+O(M) ,即为线性复杂度。

作者公布了算法代码:ComE

1. Node embedding

这部分完全来自于LINE方法。

输入:图G
输出:节点的embedding

  • first order loss

    O1=(vi,vj)Elogσ(ϕTjϕi)

    其中 σ 为 sigmoid 函数。

  • second order loss

    Δij=O2=logσ(ϕTjϕi)+t=1KEvlPn(vl)[logσ(ϕTlϕi)]αvlVvjCiΔij

    其中 α>0 为超参数

2. Community Detection and Embedding

这部分完全使用了GMM模型。

输入:节点的embedding
输出:节点属于每个社团的概率,每个社团的分布

高斯分布

N(x|μ,Σ)=1(2π)D/21|Σ|1/2exp(12(xμ)TΣ1(xμ))

  • high order proximity
    似然函数如下:
    i=1Nlogk=1Kp(zi=k)p(vi|zi=k;xi,μk,Σk)

其中:

p(zi=k)=πik,s.t.kπik=1p(vi|zi=k;xi,μk,Σk)=N(xi|μk,Σk)

即:

L=i=1Nlogk=1KπikN(xi|μk,Σk)(1)

  • 优化方法:EM算法
    E步:
    γik=πikN(x|μk,Σk)Kj=1πijN(x|μj,Σj)

    M步:
    πk=μk=Σk=NkN1Nki=1Nγikxi1Nki=1Nγik(xiμk)(xiμk)T

    其中 Nk=Ni=1γik ,表示属于k类的点的概率和。

3. 从 community embedding 反馈到 node embedding

这部分是文章的创新。 重新审视(1)式,
L=i=1Nlogk=1KπikN(xi|μk,Σk)(1)
我们**把 μ,Σ 看做已知参数,通过迭代修改 x 的值来优化 L ,这样能够使得同一个社团的节点的embedding能够靠近。** 定义 higher order loss 如下:
O3=βKi=1Nlogk=1KπikN(xi|μk,Σk)
其中 ** β>0 为超参数**。 总的损失函数为:
L=O1(x)+O2(x,x)+O3(x,π,μ,Σ)
因此模型的框架如下:
  1. 固定 x,x , 优化 π,μ,Σ

    此时,模型退化为GMM模型,直接使用EM算法即可。

  2. 固定 π,μ,Σ ,优化 x,x

    使用梯度下降方法优化。
    O3 中,由于 log 内部有求和符号,因此很难直接求导。尝试优化 O3 的上界。

    O3=βKi=1Nk=1KπiklogN(xi|μk,Σk)

    由 Jensen 不等式知 O3>O3
    所以实际上,此时的损失函数为:
    L=O1(x)+O2(x,x)+O3(x,π,μ,Σ)

算法伪代码如下: ![alg][2]

4. 超参数敏感性

α=0.1 时,两个任务都取得最好效果。 β=0.1 时,两个任务取得最好效果。 实际上,当 α β 在 [0.001,1] 之间时模型的表现很稳定。 迭代次数:个位数。 总体时间复杂度为线性。

5. 文章的思考

  • 虽然GMM和LINE本身的收敛性没有问题,但是如何保证这两个过程交叉迭代起来也可以收敛呢?

  • 文章在community detection问题上只与network embedding的方法作了对比,那么与传统的community detection方法比起来怎么样呢?

  • 文章只是基于LINE作了GMM,那么是否可以基于其它的方法呢?效果怎么样?

你可能感兴趣的:(社团发现)