超图 embedding 相关论文笔记

超图 embedding 相关论文笔记。按照时间先后排序

名称 会议/期刊 时间
Hypergraph Neural Network 会议 2019.2
Dynamic Hypergraph Neural Networks 会议 2019
Be More with Less: Hypergraph Attention Networks for Inductive Text Classification 2020.11.1
Dual-view hypergraph neural networks for attributed graph learning 2021.1.1

1 Hypergraph Neural Networks (HGNN)

这一篇论文可以说是超图 embedding 相关论文中影响力较大的一篇。文章从纯谱域角度,设计了基于超图结构数据的 embedding 模型。由于我后期的工作重点以空域方法为主,本文只对 HGNN 做简单的介绍,不详细分析。

普通图和超图的区别:

  • 普通图:(X) + (A)
  • 超图:(X) + (H)
image-20210811203856967

文章中构造超图的方法为 KNN,构造得到的超图为 K-均匀超图。

def construct_H_with_KNN_from_distance(dis_mat, k_neig, is_probH=True, m_prob=1):
    """
    construct hypregraph incidence matrix from hypergraph node distance matrix
    :param dis_mat: node distance matrix
    :param k_neig: K nearest neighbor
    :param is_probH: prob Vertex-Edge matrix or binary
    :param m_prob: prob
    :return: N_object X N_hyperedge
    """
    n_obj = dis_mat.shape[0]
    # construct hyperedge from the central feature space of each node
    n_edge = n_obj
    H = np.zeros((n_obj, n_edge))
    for center_idx in range(n_obj):
        dis_mat[center_idx, center_idx] = 0
        dis_vec = dis_mat[center_idx]
        nearest_idx = np.array(np.argsort(dis_vec)).squeeze()
        avg_dis = np.average(dis_vec)
        if not np.any(nearest_idx[:k_neig] == center_idx):
            nearest_idx[k_neig - 1] = center_idx

        for node_idx in nearest_idx[:k_neig]:
            if is_probH:
                H[node_idx, center_idx] = np.exp(-dis_vec[0, node_idx] ** 2 / (m_prob * avg_dis) ** 2)
            else:
                H[node_idx, center_idx] = 1.0
    return H

框架图:

image-20210811205034650

简单来说,就是每一个超边 (e) 先聚合得到每一个节点 (v) 的特征,然后再将超边 (e) 的特征反馈到其包含的每一个节点 (v) 上去。

实验结果(分类):

image-20210811210254233

2 Dynamic Hypergraph Neural Networks (DHGNN)

本文最大的创新点:采用图进化的思想进行超图 embedding 。本文提出了两个算法:动态超图构建(dynamic hypergraph construction,DHG)和超图卷积(HGC)。整个模型采用多个堆叠的 DHG+HGC 层,即 {DHG+HGC} - {DHG+HGC} - ... - {DHG+HGC} 。最终模型能够得到较好的 embedding 。在经过对比后,该模型是当时的 sota 方法。

图进化思想:每一次更新 embedding, 都重新构造一次超图

image-20210811220556818
  • DHG算法:
image-20210811220713149
  1. 首先对当前的 embedding 矩阵 (X) 使用 K-Means 算法,得到簇类结果 (C)(C[i]) 表示第 (i) 簇,(C. ext{center}) 表示簇类中心的集合。

  2. 对每一个节点 (u) ,通过 KNN 算法找到和该节点最近的 k 个节点(包含自身),构成集合 (e_b) 。将 (e_b)(u) 共同构成一个超边。

  3. 找出簇类中心离当前节点 (u) 的距离前 (S-1) 近的簇。对于每一个簇的节点集 (C_i),与节点 (u) 共同构成一个超边。即这一步一共会构造 (S-1) 个超边。

  • HGC算法:
image-20210811222853239

引入了 节点集注意力超边集注意力 两个层次的注意力来进行图 embedding,思路比较直接。

image-20210811222733672

模块重要性: 可以看出动态超图构建是非常重要的过程,移除直接导致模型效果骤降。

image-20210811223120284

实验结果

image-20210811224130880

3 Be More with Less: Hypergraph Attention Networks for Inductive Text Classification(HyperGAT)

本文提出了一种基于超图结构数据的模型,HyperGAT。最终将此模型应用到NLP中的文字表示学习上,在当时属于sota方法。

本文提出的模型与 DHGNN 中提到的模型有一些区别,主要表现在节点注意力的计算方式和超边注意力的计算方式上,个人任务 DHGNN 中的计算方式更常规,因此本文不再介绍。另外,本文的实验baseline也主要基于文本分类任务,没有太多参考价值。

4 Dual-view hypergraph neural networks for attributed graph learning (DHGNN)

之前写好的没保存,就不重新写了。整体感觉不太靠谱。基本思路是将普通图从结构和属性两种角度分别构造超图,共同学习,分别得到结构超图的 embedding (z^s) 和属性超图的 embedding (z^a) ,然后再引入注意力机制融合两个 embedding, 得到最终的 embedding (z),用于下游任务。对比其他的图 embedding 算法,该方法是sota的。

实验效果

image-20210815202216012

---- suffer now and live the rest of your life as a champion ----
原文地址:https://www.cnblogs.com/popodynasty/p/15141648.html