[论文阅读笔记] Unsupervised Attributed Network Embedding via Cross Fusion
[论文阅读笔记] Unsupervised Attributed Network Embedding via Cross Fusion
本文结构
- 解决问题
- 主要贡献
- 算法原理
- 实验结果
- 参考文献
(1) 解决问题
现在常常用来处理属性网络表征的方式有两种:(1)在网络结构上传播属性(2)通过自编码器架构。
这两种常用的属性网络表征方法有各自的局限性和优点:(1)基于传播的方法依赖于网络中现有的边来传播信息,因此往往偏向于建模网络结构信息而非节点属性信息,从而更加擅长于处理结构信息(可以通过多层叠加考虑距离更远的邻居信息,但是因此也存在过平滑问题)。(2)基于自编码器的方法比较擅长于处理属性信息,但是在网络结构上往往忽略了除了直接邻居之外更远的邻居(即存在欠平滑问题)。
本篇论文设计了交叉融合层,在结合双方优点的同时来解决这些局限性。
(2) 主要贡献
Contribution:提出了一个带有交叉融合层的多视图框架来学习属性网络嵌入(融合了基于传播的方法和基于自编码器的方法各自的优点,并且解决各自的局限性)
(3) 算法原理
模型的主要思路: 下图为论文所提出的 CFANE 模型的总体框架。首先,节点属性和结构被分为两个视图分别处理(避免了结构信息覆盖了属性信息)。其次,通过堆叠多个交叉融合层(CFANE的核心)有效地融合和交换两个视图信息以结合两种主流方法的优点。然后,通过添加一个视图加权层计算每个节点之于两个视图的权重,从而整合结构表示向量和属性表示向量生成最终节点表示向量。最后,通过优化一个多目标重构函数使得节点表示向量同时保留网络结构和节点属性信息。

交叉融合层: 交叉融合层以网络结构和属性作为输入,总体框架和步骤如下图所示。

每个节点在每个交叉融合层都有两个表示向量(结构表示向量和属性表示向量),下标1和下标2分别表示结构向量和属性向量,上标表示第几层(交叉融合层)。
交叉融合层在做什么事呢?
第一步(即 Figure 3 中的 Ego-network Partition & Aggregation 蓝框),为网络中的每个节点生成其对应的自我中心网络(ego-network:由该节点以及其邻居还有邻居之间的边构造的子图),并且进行子网络的社区划分和近邻向量的聚合生成中心节点向量。那么如何进行子图的社区划分呢?由于节点对应的 ego-network 一般比较小,本文直接将子图中不同的连通分支(除去中心节点本身)作为一个社区。得到子图社区划分结果之后,如何进行节点近邻聚合呢?首先,对于中心节点的每个社区(假设有 tu 个),采用平均聚合的方式(如GCN)聚合其中的节点得到中心节点的 tu 个表示向量,如下公式(3)所示(计算给定节点u的第j个社区的平均聚合结果)。其次,对节点u的 tu 个表示向量在进行一次加权聚合得到节点u表示向量,如下公式(4)所示,各个社区的权重系数采用注意力机制确定,如下公式(5)所示。(GCN的聚合相当于把所有邻居节点看成是一个社区,而GAT的聚合相当于把每个邻居节点都看成是一个社区了,而本文所采用的聚合方法可以看成是GAT和GCN聚合方式的一种平衡)



第二步(即 Figure 3 中的 Feature Exchange 蓝框),进行结构视图和属性视图之间的信息交换。除了编码邻居的异质性之外(第一步的近邻聚合所做的事),CFANE 还要解决在沿着网络结构传播关键信息的同时维持节点属性的可区分特征,不至于使得节点属性被网络结构信息覆盖这个关键问题。为了达到以上的目标,CFANE 给属性和结构各自分配一个视图,两个视图是互补而非对应,因此还要考虑如何交换两个视图的信息(使用自注意力机制)。自注意机制有两个优点(1)自注意可以学习两个视图的重要性,不会使得一个视图覆盖另一个视图。(2)自注意力可以为每个视图都输出一个向量,以便于交叉融合层可以自然的堆叠。交叉融合层第二步的具体做法如下:(1)首先,通过映射矩阵分别变换两个视图的特征,作用是逐层减少嵌入向量的维度,如公式(6)所示,f即为对应降维后的中间向量。(2)其次,与标准的自注意力机制一致,为每个节点向量(结构和属性)计算对应的查询向量q和关键向量k,如公式(7)所示。(3)接着,通过公式(8)融合结构视图向量和属性视图向量(各视图对应信息的权重由自注意力机制计算得到),分别计算下一交叉融合层的节点结构表示向量和属性表示向量(u为激活函数,采用LeakyReLU作为激活函数,添加层间的非线性关系)。



第三步(即 Figure 3 中的 View Weightingu部分),在所有交叉融合层结束之后,结合两个视图的输出向量(结构和属性)成一个统一的表示向量。考虑到对于某些节点来说,网络结构视图可能是更重要的,而对于某些其他节点来说属性视图可能是更重要的,因此有必要对各个结构向量和属性向量进行加权(视图权重层所做的事),如公式(9)所示,权重系数由公式(10)确定。


多目标重构函数的设计: 设计多目标重构函数在表示向量学习过程中保存网络结构和属性。对于网络结构,采用Skip-Gram模型的目标函数,如公式(11)所示。对于节点属性,直接采用重构函数,如公式(12)所示。最终,总的目标函数如公式(13)所示。



(4) 实验结果
- 节点分类

- 节点聚类

- 参数实验

- BlogCatalog 数据集的可视化结果

(5) 参考文献
Pan G, Yao Y, Tong H, et al. Unsupervised Attributed Network Embedding via Cross Fusion[C]//Proceedings of the 14th ACM International Conference on Web Search and Data Mining. 2021: 797-805.
[论文阅读笔记] Unsupervised Attributed Network Embedding via Cross Fusion的更多相关文章
- [论文阅读笔记] Structural Deep Network Embedding
[论文阅读笔记] Structural Deep Network Embedding 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问题 现有的表示学习方法大多采用浅层模型,这可能不能 ...
- [论文阅读笔记] GEMSEC,Graph Embedding with Self Clustering
[论文阅读笔记] GEMSEC: Graph Embedding with Self Clustering 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问题 已经有一些工作在使用学习 ...
- Nature/Science 论文阅读笔记
Nature/Science 论文阅读笔记 Unsupervised word embeddings capture latent knowledge from materials science l ...
- [论文阅读笔记] Fast Network Embedding Enhancement via High Order Proximity Approximati
[论文阅读笔记] Fast Network Embedding Enhancement via High Order Proximity Approximation 本文结构 解决问题 主要贡献 主要 ...
- [论文阅读笔记] Community aware random walk for network embedding
[论文阅读笔记] Community aware random walk for network embedding 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问题 先前许多算法都 ...
- [论文阅读笔记] LouvainNE Hierarchical Louvain Method for High Quality and Scalable Network Embedding
[论文阅读笔记] LouvainNE: Hierarchical Louvain Method for High Quality and Scalable Network Embedding 本文结构 ...
- [论文阅读笔记] Adversarial Mutual Information Learning for Network Embedding
[论文阅读笔记] Adversarial Mutual Information Learning for Network Embedding 本文结构 解决问题 主要贡献 算法原理 实验结果 参考文献 ...
- 论文阅读笔记(二十一)【CVPR2017】:Deep Spatial-Temporal Fusion Network for Video-Based Person Re-Identification
Introduction (1)Motivation: 当前CNN无法提取图像序列的关系特征:RNN较为忽视视频序列前期的帧信息,也缺乏对于步态等具体信息的提取:Siamese损失和Triplet损失 ...
- 论文阅读笔记(十八)【ITIP2019】:Dynamic Graph Co-Matching for Unsupervised Video-Based Person Re-Identification
论文阅读笔记(十七)ICCV2017的扩刊(会议论文[传送门]) 改进部分: (1)惩罚函数:原本由两部分组成的惩罚函数,改为只包含 Sequence Cost 函数: (2)对重新权重改进: ① P ...
随机推荐
- struct 模块
1. Struct 简介 2. Struct 代码示例 2.1 struct.pack 2.2 struct.unpack 2.3 struct.calcsize 1. Struct 简介 当 pyt ...
- 大数翻倍法求解CRT
目录 正文 引入 大数翻倍法 复杂度证明 大数翻倍法的优势 最后的最后:上代码! 注:做法和思路是 zhx 在一次讲课中提出的,如有侵权,请联系作者删除 其实别的题解也有提到过暴力做法,但这里将会给出 ...
- Java中的线程池用过吧?来说说你是怎么理解线程池吧?
前言 Java中的线程池用过吧?来说说你是怎么使用线程池的?这句话在面试过程中遇到过好几次了.我甚至这次标题都想写成[Java八股文之线程池],但是有点太俗套了.虽然,线程池是一个已经被说烂的知识点了 ...
- 多维数据处理之主成分分析(PCA)
在灵巧手与假手理论中,为了研究人手的运动协同关系,需要采集各个关节的运动学量或者多个采集点的肌电信号,然而由于人手关节数目或者EMG采集点数量较多,加上多次采样,导致需要过多的数据需要处理.然而事实上 ...
- Windows中的共享文件和文件服务器
目录 共享文件的设置 默认共享 关闭默认共享 关闭共享服务 共享文件夹权限 文件服务器资源管理器的搭建 文件共享是指主动地在网络上共享自己的计算机文件.一般文件共享使用P2P模式,文件本身存在用户本人 ...
- Python中的可迭代Iterable和迭代器Iterator
目录 Iterable可迭代对象 如何判断对象是否是可迭代对象Iterable Iterator迭代器 如何判断对象是否迭代器Iterator 将Iterable转换成Iterator Iterabl ...
- ADB调试工具的使用
ADB(Android Debug Bridge)安卓调试桥,ADB工具是可以方便调试安卓应用的工具. ADB的安装 下载ADB工具,解压, 将ADB工具的目录加入系统环境变量中,打开CMD窗口,输入 ...
- android Javah生成JNI头文件
项目要用到c语言库,因此来学习下jni 首先是在cmd中使用javah,出现了javah不是内部或外部命令的错误提示,javah是jdk自带的工具,提示说明在系统环境变量中没有jdk的路径,或者配置错 ...
- 基于react hooks,antd4 配置生成表单并自动排列
react后台项目,大多都是表单处理,比如下列4种常见1*n布局 (如果手工编码,大量的Row,Col, Form.Item的嵌套,排列,如果加上联动处理,代码将十分臃肿,不易维护) 一行一列 一行两 ...
- [CSP-J2019 江西] 道路拆除 题解
发现大家都是将路径拆成三条链来做,这里提供一种暴力的乱搞方法. 思路 看到这一道题的第一想法就是跑最短路.可是仔细想想就发现,由于重合的路径只算一遍,所以导致两条最短路不一定是最优解. 接着,看到数据 ...