超圖 embedding 相關論文筆記
- 1 Hypergraph Neural Networks (HGNN)
- 2 Dynamic Hypergraph Neural Networks (DHGNN)
- 3 Be More with Less: Hypergraph Attention Networks for Inductive Text Classification(HyperGAT)
- 4 Dual-view hypergraph neural networks for attributed graph learning
超圖 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 | |
Hypergraph reconstruction from network data | 2021.1.15 | |
NetVec: A Scalable Hypergraph Embedding System | 2021.5.9 |
1 Hypergraph Neural Networks (HGNN)
這一篇論文可以說是超圖 embedding 相關論文中影響力較大的一篇。文章從純譜域角度,設計了基於超圖結構資料的 embedding 模型。由於我後期的工作重點以空域方法為主,本文只對 HGNN 做簡單的介紹,不詳細分析。
普通圖和超圖的區別:
- 普通圖:\(X\) + \(A\)
- 超圖:\(X\) + \(H\)
文章中構造超圖的方法為 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
框架圖:
簡單來說,就是每一個超邊 \(e\) 先聚合得到每一個節點 \(v\) 的特徵,然後再將超邊 \(e\) 的特徵反饋到其包含的每一個節點 \(v\) 上去。
實驗結果(分類):
2 Dynamic Hypergraph Neural Networks (DHGNN)
本文最大的創新點:採用圖進化的思想進行超圖 embedding 。本文提出了兩個演算法:動態超圖構建(dynamic hypergraph construction,DHG)和超圖卷積(HGC)。整個模型採用多個堆疊的 DHG+HGC 層,即 {DHG+HGC} - {DHG+HGC} - ... - {DHG+HGC} 。最終模型能夠得到較好的 embedding 。在經過對比後,該模型是當時的 sota 方法。
圖進化思想:每一次更新 embedding, 都重新構造一次超圖
- DHG演算法:
-
首先對當前的 embedding 矩陣 \(X\) 使用 K-Means 演算法,得到簇類結果 \(C\)。 \(C[i]\) 表示第 \(i\) 簇,\(C.\text{center}\) 表示簇類中心的集合。
-
對每一個節點 \(u\) ,通過 KNN 演算法找到和該節點最近的 k 個節點(包含自身),構成集合 \(e_b\) 。將 \(e_b\) 和 \(u\) 共同構成一個超邊。
-
找出簇類中心離當前節點 \(u\) 的距離前 \(S-1\) 近的簇。對於每一個簇的節點集 \(C_i\),與節點 \(u\) 共同構成一個超邊。即這一步一共會構造 \(S-1\) 個超邊。
- HGC演算法:
引入了 節點集註意力 和 超邊集註意力 兩個層次的注意力來進行圖 embedding,思路比較直接。
模組重要性: 可以看出動態超圖構建是非常重要的過程,移除直接導致模型效果驟降。
實驗結果
3 Be More with Less: Hypergraph Attention Networks for Inductive Text Classification(HyperGAT)
本文提出了一種基於超圖結構資料的模型,HyperGAT。最終將此模型應用到NLP中的文字表示學習上,在當時屬於sota方法。
本文提出的模型與 DHGNN 中提到的模型有一些區別,主要表現在節點注意力的計算方式和超邊注意力的計算方式上,個人任務 DHGNN 中的計算方式更常規,因此本文不再介紹。另外,本文的實驗baseline也主要基於文字分類任務,沒有太多參考價值。