zoukankan      html  css  js  c++  java
  • 超图 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 ----
  • 相关阅读:
    如何在腾讯云上安装Cloud Foundry
    Chrome浏览器扩展程序的本地备份
    如何在Kubernetes里创建一个Nginx service
    如何在Kubernetes里创建一个Nginx应用
    在Mac里给Terminal终端自定义颜色
    linux sed命令详解
    跟我一起写Makefile--- 变量(嵌套变量+追加变量+overrid+多行变量+环境变量+目标变量+模式变量)
    makefile详解 嵌套执行make,定义命令包
    makefile学习笔记(多目录嵌套调用、变量使用)
    Makefile所有内嵌函数
  • 原文地址:https://www.cnblogs.com/popodynasty/p/15141648.html
Copyright © 2011-2022 走看看