[论文阅读] (ASONAM2019) Meta-GNN: 属性异构网络中用于半监督学习的元图神经网络

article/2025/8/28 16:53:27

论文标题:Meta-GNN:Metagraph Neural Network for Semi-supervised learning in Attributed Heterogeneous Information Networks

作者:Aravind Sankar, Xinyang Zhang, Kevin Chen-Chuan Chang

单位:Department of Computer Science, University of Illinois, Urbana-Champaign, USA

论文链接:https://dl.acm.org/doi/pdf/10.1145/3341161.3342859

论文引用:Sankar A , Zhang X , Chang C C . Meta-GNN: metagraph neural network for semi-supervised learning in attributed heterogeneous information networks[C]// ASONAM '19: International Conference on Advances in Social Networks Analysis and Mining. 2019.

概述

难点

AHIN中的半监督学习相对于同构网络以及HIN更困难。例如:对DBLP中的作者进行分类,他的共同作者以及出版的期刊都是上下文节点(context nodes),提供了相关性特征,在对作者分类时需要考虑进去。但是,这些上下文节点有不同的属性且发挥不同的作用:(a) 不同的节点类型(期刊<-->共同作者),(b) 同一节点类型但不同的结构取向(引用<->被引用)

作用

有了元图卷积,就可以有以下两个insights:

  • 高阶语义局部性:元图(meta-graph)通过特定的子结构指定语义关系,提供了一个框架用于捕获高阶语义局部性(非直接邻居),例如通过共同作者这种关系(类似于元路径,meta-path)
  • 准确的语义角色:根据本地上下文节点的节点类型和结构连接模式对其进行准确的语义角色识别,例如共同作者和出版期刊

论文贡献

  • 利用元图来定义关注的节点的局部上下文(local context)或感受野(receptive field),以此介绍了一种新颖的用于AHIN(Attributed Heterogeneous Information Networds)的图卷积
  • 提出新颖的神经结构——Meta-GNN,用到了多层元图卷积层,使用注意力机制来学习每个节点个性化的元图权重
  • 在多个真实数据集进行实验,证明Meta-GNN的有效性

定义

几个节点的类型

target node,对象节点,在一个元图中的研究对象,是主体;

context node,上下文节点相对于target node的关联节点;

auxiliary node,辅助节点,用于关联target node和context node的中间节点。

AHIN

即属性异构信息网络,Attributed-HIN。图的基本表示是Graph=(Vertex, Edge),而AHIN带有属性,那么表示为G=(V,E,X),其中X就是属性矩阵,N\times D维(N表示图中几点的数量,D表示属性的维度)。由于有不同类型的节点,而每个节点类型可能属于不同的特征空间,因此作者将所有类型的特征连接起来,用零填充不属于这个数据类型的特征。

meta-graph

熟悉HIN的同学一定知道meta-path,meta-graph和meta-path的概念很像,但是meta-path与meta-graph不同在于前者从起点到终点只能存在一条路径,而后者可以存在多条路径。我们看图1,1(a)中的M_3可以看作是一个meta-path,也就是说meta-path是meta-graph的一个特例。

图1 元图示例

作者给出了meta-graph的数学描述:

Definition: A metagraph M   with target node t_M , context  node c_M is defined as M = (V_M,E_M ,t_M ,c_M ,B_M )with node type mapping l_M:V_Mx \mapsto L  where V_Mis the set of nodes with t_M ,c_M \in V_M, E_Mis the set of links and B_M=V_M-{\left \{ \left.t_M,c_M \right \} \right. is the set of auxiliary nodes.

meta-graph实例

定义一个S_u=(V_s,E_s)表示meta-graph的实例,其中u表示目标节点(target node),满足V_s\subseteq V,E_s\subseteq E,即实例中的边都是图中的边,实例中的点都是图中的点,很好理解;并且要满足一个映射\psi _S:V_S \mapsto V_M,这个映射表示的是,从元图的实例映射到元图M,需要满足1)元图实例的目标节点映射到元图中需要是元图M中的t_M;2)元图实例的节点映射到元图中需要是相同类型的;3)实例中的边需要是元图中定义的边。

meta-GNN网络

卷积层

定义公式为,H=\sigma(\hat{A}XW),也就是普通的GCN卷积层,其中\hat{A}=D^{-\frac{1}{2}}AD^{-\frac{1}{2}}+I_ND表示度矩阵,A表示邻接矩阵,只是这个邻接矩阵不是同构图中的邻居关系而是元图中target node和context node的连接关系,I_N是单位对角矩阵。而目前还没有定义出A的表示,接下来作者就是要讲述如何定义这个A

定义下感受野(receptive field):target node u的关于元图M的感受野是所有元图M的元图实例,用I^M_u表示。

另外,在每个元图中,两个节点的即使是相同类型的也可能对元图起不同的作用,例如图1(a)中的M_2元图,P_1P_2的节点类型相同但是要表达引用和被引用的关系,是不能互换的,因此作者定义了语义角色(semantic roles),定义为:在一个元图中,如果存在一个映射\Omega _M使得在元图中,使得两个节点u,v满足\Omega _M(u)=v,\Omega _M(v)=u而其余节点都满足\Omega _M(x)=x,那么u,v有着相同的语义角色。简单来说图1(a)中的M_2元图的P_1P_2有着不同的语义角色而图1(a)中的M_1元图的P_1P_2有着相同的语义角色。那这个语义角色有什么用呢?作者在下面就用到了它。

在一个元图中,假设有K_M种语义角色,那么除了target node之外的所有节点都可以映射到某一个语义角色,那么可以写成\phi_M:V_M-\left \{ t_M \right \} \mapsto \left \{ 1,\cdots ,K_M \right \}

接下来,就用这个语义角色来定义元图中的邻接矩阵A了。定义A中的每个元素为

A_{kij}^M=\sum _{S_{v_i}\in I_{v_i}^M,v_j \in V_S-\left \{ v_i \right \}}I(\phi_M(\psi _S(v_j))=k)

这个公式比较长,用语言简单解释下,就是某个元图M的邻接矩阵A在目标节点v_i上的邻接矩阵的计算内容为:对v_i所有的元图实例S_{v_i},另外一个节点v_j在这多个元图实例中语义角色为k的总数量。那么最终的A的维度是K_M \times N\times N,有M个这样的矩阵。那么原本的图卷积就变换形式用到meta-GNN中了,每个节点v_i关于M的卷积可以写成

h^M(v_i) = \sigma (w_0x_i+\frac{1}{D_{ii}^M}\sum _{j=1}^N\sum _{k=1}^{K_M}w_kA_{kij}^Mx_j)

其中x_i,x_j分别表示节点i,j的特征,D_{ii}^M表示在元图M中节点i的元图实例的数量,用来做normalization,写成矩阵形式就是

H^M=\sigma (XW_0^M+(D^M)^{-1}\sum _{k=1}^{}K_M}A_k^MXW_k^M)

最后作者使用注意力机制将这M个元图融合。

 


http://chatgpt.dhexx.cn/article/opFumRfI.shtml

相关文章

【推荐系统】HIN异构信息网络(Hetegeneous Information Network)

异构信息网络 (Hetegeneous Information Network 以下简称 HIN&#xff09;&#xff0c;是由 UIUC 的 Han Jiawei 和 UCLA 的 Sun Yizhou 在 2011 年的 VLDB 论文中首次提出 [1]。 简单地理解&#xff0c;HIN 就是一个有向图&#xff0c;图中的节点和边都可以有不同的类型&…

HIN 异构信息网络(Heterogeneous Information Network)

信息网络(Information Network) 信息网络可以用一个有向图G (V, E) 来表示&#xff0c;其中V代表 Object&#xff0c;E代表 Edge。并且用映射函数 ϕ : V → A 来表示每一个object v ∈ V 属于object类型集合A: ϕ(v) ∈ A,用映射函数ψ : E → R.表示每条边 e ∈ E 属于边的…

HIN应用调研总结

文章目录 1. 代码安全iDev: enhancing social coding security by cross-platform user identification between GitHub and stack overflow【A】 2. API推荐Group preference based API recommendation via heterogeneous information network【A】 3.Andorid恶意软件检测Out-…

附件上传技术分享

开发工具与关键技术&#xff1a;VS&#xff0c;MVC 作者&#xff1a;陈梅 撰写时间&#xff1a;2019年7月12日 图片代码来源于老师教程 附件上传技术&#xff0c;是开发MVC项目中比较常见的一种技术&#xff0c;准确的来说&#xff0c;这是一种必须要用到的技术。现在我们来看一…

上传附件——单页面

上传附件——单页面 效果 代码 index.vue <el-form-itemv-iffileListIsShowlabel上传附件><el-upload:file-listfileList:http-requestuploadFile:limit1:on-exceedexceed:on-removehandleRemoveaccept.pdf, .jpg,.bmp,.png, .doc, .xls, .pptx,.xlsxaction#classu…

Servlet 实现上传附件(支持多附件)

原创作品&#xff0c;允许转载&#xff0c;转载时请务必以超链接形式标明文章 原始出处 、作者信息和本人声明。否则将追究法律责任。 作者&#xff1a; 永恒の_☆ 地址&#xff1a; http://blog.csdn.net/chenghui0317/article/details/9502143 一、简单介绍 使用 Servlet…

odoo 上传附件的几种方式

目录 1、上传图片 2、上传不同附件 3、page页面添加附件看板 4、如何在一个视图里面多个page页面添加文件&#xff1f; 1、上传图片 odoo中有一个product.image模型&#xff0c;继承该模型可以实现多张图片的上传和预览。实现效果如下图所示&#xff1a; python代码&#x…

原生js--封装点击上传附件

在日常开发中&#xff0c;经常会有点击按钮上传附件的功能需求。 在我们平时的开发中&#xff0c;已经习惯把当前项目所用到的UI框架中的上传组件拿来直接使用 例如&#xff1a;antd的上传组件 以及element的上传组件&#xff0c;其实在用法上都大同小异。 这种都是直接引用组…

uniapp 上传附件

附件上传 一、uni附件上传 一、uni附件上传 1、模板部分 <!-- 附件 --><view class""><view class"content-title"><span></span>附件:</view><view class"content-main" style"border: 0;"…

vue上传附件

流程&#xff1a;点击上传到–》文件服务器upload—》调用saveFile–》调用FileLists 文件操作列表&#xff1a; <FormItem label"附件信息"><Upload :action"uploadUrl()" name"multipartFile" multiple :on-remove"handleRemov…

WangEditor添加上传附件功能 vue3

看官方文档要求 WangEditor/editor 版本 >5.1.16 下载上传附件的插件 yarn add wangeditor/plugin-upload-attachment 首先要注册到编辑器&#xff0c;如果把下面的代码写在WangEditor的组件里出现第一次使用编辑没问题&#xff0c;但是第二次编辑会报错的问题&#xff0…

csdn如何上传附件

首先登陆你的csdn博客&#xff0c;看到首页有个下载 点击下载 进去之后点击上传资源 然后就可以上传附件了 不过他会审核两天&#xff0c;不要着急&#xff0c;过两天就发布出来了

java fileupload上传附件到服务器,可携带参数(简单易用)可跨域,看这篇就够了

一个很简单实用的上传附件实例 首先主要用到的包&#xff1a; 先看服务端代码&#xff0c;我这里是用了Servlet&#xff0c;在web.xml配置 <servlet><servlet-class>com.file.FileEntryServlet</servlet-class><servlet-name>FileServlet</servlet…

公众号的附件怎么上传(如Word、Excel、Pdf等)

公众号我们都接触过&#xff0c;有企业的、有单位的、有个人的&#xff0c;公众号主要用来发布文章和消息&#xff0c;可以提供企业单位的对外沟通&#xff0c;提升企业单位的形象。 随着公众号的日益强大&#xff0c;我们也可以利用公众号对外发布招聘、重大消息公示、资料收…

网络安全实验之《VPN》实验报告

一、实验目的 (1)课上实验&#xff1a; 1.在Windows中配置&#xff08;内置或者专有&#xff09;IPSec。 2.通过抓包工具抓取建立IPSec的协商密钥过程&#xff0c;和建立之后的加密通信数据包&#xff0c;并进行分析。 (2)课后实验&#xff1a; 1.配置Cisco Packet Tracer…

课程实验三-bomb实验

实验题目&#xff1a; 程序运行在linux环境中。程序运行中有6个关卡&#xff08;6个phase&#xff09;&#xff0c;每个phase需要用户在终端上输入特定的字符或者数字才能通关&#xff0c;否则会引爆炸弹&#xff01;需要使用gdb工具反汇编出汇编代码&#xff0c;结合c语言文件…

cachelab实验

计算机系统原理实验日志 一、实验内容 1、编写一个C程序&#xff08;csim.c&#xff0c;大约200-300行&#xff09;&#xff0c;用于模拟Cache的行为。 2、已提供一个参考的cache模拟器(可执行文件csim-ref)&#xff0c;目标是自己写的 csim和参考的csim-ref行为一致&#…

认真一点!-实验吧

这个题其实是个布尔盲注题&#xff0c;怎么说&#xff0c;正常是you are in&#xff0c;报错是you are not in&#xff0c;触发waf是sql injection detected 然后fuzz一下&#xff0c;图我就不贴了&#xff0c;做的时候忘了截下图 结果大概是过滤了and&#xff0c;空格&#…

Lab1实验分享

文章目录 一.内核的物理位置二.Bootloader三.编译和链接四.va_list、va_start和va_end三个宏的用法。五.ELF文件的结构六.lp_Print()函数流程图 一.内核的物理位置 操作系统最重要的部分是操作系统内核&#xff0c;因为内核需要直接与硬件交互管理各个硬件&#xff0c;从而利用…

CSAPP实验二——bomb lab实验

CSAPP实验二—— bomb lab实验 实验前准备第一部分&#xff08;phase_1&#xff09;第二部分&#xff08;phase_2&#xff09;第三部分&#xff08;phase_3&#xff09;第四部分&#xff08;phase_4)第五部分&#xff08;phase_5&#xff09;第六部分&#xff08;phase_6&#…