An Attention-based Graph Neural Network for Heterogeneous Structural Learning

article/2025/8/28 16:35:35

论文链接:https://arxiv.org/abs/1912.10832

代码链接:https://github.com/didi/hetsann

Abstract

针对HIN(Heterogeneous Information Network)的表示学习,提出 HetSANN(Heterogeneous Graph Structural Attention Neural Network) 模型,不使用元路径(mate-path)直接编码HIN中的信息。通过以下两种方法表示异构信息:

  • 将异构节点映射到低维实体空间
  • 通过Attention机制,应用GNN聚合投影后邻居节点间的各种关系

除此之外,还提出了关于HetSANN的三个扩展:

  • voices-sharing product attention for the pairwise relationships in HIN
  • cycle-consistency loss to retain the transformation between heterogeneous entity spaces
  • multi-task learning with full use of information。

Introduction

目前在HIN(heterogeneous information network)上的大多数方法都是基于元路径,将异构图修转化为同构图,再用同构图的嵌入式表式方法来学习网络的向量表示,从而获取异构图的低维向量空间。

image-20220108202734171

但上述的方法存在两个major challenge:

  • C1:如何对不同类型的节点建模?
  • C2:如何保留不同关系间的语义信息?

当前很多的HIN嵌入学习都基于元路径,如matepath2vec,HAN。存在两个主要问题

  • 元路径的定制需要由领域专家来完成,但很难手工选出全部有价值的元路径
  • 存在信息损失,异构节点或边的特征在基于元路径生成节点对时可能会丢失,甚至会导致较差的嵌入性能。

本文提出新的方法,不需要元路径直接对HIN的结构信息进行编码,提出了一种既能保留结构和语义信息的HIN低维空间向量学习方法。具体的来说,利用GNN来传递HIN的结构信息,通过task-guided的目标函数来进行训练(本文中为节点分类损失)。为了应对HIT中的挑战,设计了类型感知注意力层(Type-aware Attention Layer )来替代传统GNN中的卷积层。对每个Type-aware Attention Layer,定义了一种从不同实体空间的顶点投射到相同的低维目标空间的方法,用于异构节点间的交互(C1)。并采用注意力机制,将含有不同语义信息的不同类型的边用于邻居节点的聚合(C2),还设计了两种注意力打分函数concat product and voices-sharing product

本文贡献:

  • 提出HetSANN,不用元路径,直接使用结构信息实现更多信息表示
  • 提出HetSANN的3个扩展
    • E1:通过多任务学习提高信息共享。Enhance the extent of sharing information with multi-task learning
    • E2:考虑有向边和反向边之间的成对关系。Take the pairwise relationship between the directed edge and the reversed edge into account (voices-sharing product).
    • E3:对转化操作引入限制以保持循环一致性。Introduce a constraint to the transformation operation to keep cycle consistent.
  • 用三个异构图数据集对HetSANN的效果进行评估。结果表名HetSANN的优越性。

Heterogeneous Graph Structural Attention Neural Network (HetSANN)

异构图 G = { V , E } G=\{V,E\} G={V,E},节点类型集 A A A,边集合类型 R R R,节点 i i i j j j的边用 e = ( i , j , r ) e=(i,j,r) e=(i,j,r)表示, r r r是relationship type, r ∈ R r \in R rR。反边表示为 e ~ = ( i , j , r ~ ) \tilde{e}=(i,j, \tilde{r}) e~=(i,j,r~),跟节点 j j j相邻的边集合为 ε j = { ( i , j , r ) ∈ ε ∣ i ∈ V , r ∈ R } \varepsilon_j=\{(i,j,r)\in \varepsilon|i\in V,r\in R\} εj={(i,j,r)εiV,rR}

本文目标为节点为 ϕ ( i ) \phi(i) ϕ(i)类型的节点生成它的低维表示 h i ∈ R n ϕ ( i ) h_i\in \mathbb{R}^{n_{\phi(i)}} hiRnϕ(i)其中 n ϕ ( i ) n_{\phi(i)} nϕ(i)为嵌入空间的维度。可能会出现各种关系类型。为了处理节点见存在多种关系的情况,提出HetSANN

image-20220108211915695模型整体结构如上所示,其中核心是type-aware attention laye。

Type-aware Attention Layer (TAL)

进行嵌入学习前,对每个节点 i i i,先为其添加闭环(self-loop relation),并为其添加冷启动初始状态 h i 0 ∈ R n ϕ ( i ) ( 0 ) h_i^{0}\in \mathbb{R}^{n^{(0)}_{\phi(i)}} hi0Rnϕ(i)(0).冷启动状态为节点的属性特征,对没属性的节点则可用零向量或one-hot向量。

每个TAL都采用多头注意力机制。

image-20220108214711624

如上图所示,每个头部由两个部分构成:转化操作和邻域信息的聚合

  • Transformation Operation (C1)

    首先,应用线性变化W对节点 j j j的邻居节点进行转换,例如上图中作者A1映射到文章空间P1.
    h ^ ϕ ( j ) , i ( l + 1 , m ) = W ϕ ( j ) , ϕ ( i ) ( l + 1 , m ) h i ( l ) \hat{h}^{(l+1,m)}_{\phi(j),i}=W^{(l+1,m)}_{\phi(j),\phi(i)}h_i^{(l)} h^ϕ(j),i(l+1,m)=Wϕ(j),ϕ(i)(l+1,m)hi(l)
    其中, l l l表示第 l l l层。

  • Aggregation of Neighborhood (C2)

    为了保留节点间不同类型的关系,采用 ∣ R ∣ |R| R个注意力打分函数,如 F l + 1 , m = { f r ( l + 1 , m ) ∣ r ∈ R } F^{l+1,m}=\{f_r^{(l+1,m)}|r\in R\} Fl+1,m={fr(l+1,m)rR}。对于节点j的每条边 e = ( i , j , r ) ∈ ε j e=(i,j,r)\in \varepsilon_j e=(i,j,r)εj
    o e l + 1 , m = σ ( f r ( l + 1 , m ) ( h ^ ϕ ( j ) , j ( l + 1 , m ) , h ^ ϕ ( j , i ) ( l + 1 , m ) ) ) o_e^{l+1,m}=\sigma(f_r^{(l+1,m)}(\hat{h}^{(l+1,m)}_{\phi(j),j},\hat{h}^{(l+1,m)}_{\phi(j,i)})) oel+1,m=σ(fr(l+1,m)(h^ϕ(j),j(l+1,m),h^ϕ(j,i)(l+1,m)))
    σ \sigma σ是激活函数LeakyReLU,注意力系数 o e ( l + 1 , m ) o_e^{(l+1,m)} oe(l+1,m)反映边 e e e对节点 j j j的重要性程度。为所有类型的边采用相同形式的注意力机制,但是参数不同,

    常见的注意力打分函数concat product,GAT也采用这种
    f r ( l + 1 , m ) ( e ) = [ h ^ ϕ ( j ) , j ( l + 1 , m ) T ∣ ∣ h ^ ϕ ( j , i ) ( l + 1 , m ) T ] a r ( l + 1 , m ) f^{(l+1,m)}_r(e)=[{\hat{h}^{(l+1,m)}_{\phi(j),j}}^T||{\hat{h}^{(l+1,m)}_{\phi(j,i)}}^T]a_r^{(l+1,m)} fr(l+1,m)(e)=[h^ϕ(j),j(l+1,m)Th^ϕ(j,i)(l+1,m)T]ar(l+1,m)
    其中 a r ( l + 1 , m ) ∈ R 2 n ϕ ( j ) ( l + 1 , m ) a_r^{(l+1,m)}\in \mathbb{R}^{2n_{\phi(j)}^{(l+1,m)}} ar(l+1,m)R2nϕ(j)(l+1,m)是可训练的注意力系数,该参数在类型为 r r r的边中共享。

    对异构的边使用注意力机制,注意力系数归一化如下:
    α e ( l + 1 , m ) = e x p ( o e ( l + 1 , m ) ) / ∑ k ∈ ε j e x p ( o k ( l + 1 , m ) ) \alpha_e^{(l+1,m)}=exp(o_e^{(l+1,m)})/\sum_{k\in\varepsilon_j}exp(o_k^{(l+1,m)}) αe(l+1,m)=exp(oe(l+1,m))/kεjexp(ok(l+1m))
    由此得到了邻居节点和 j j j在同一空间的表示,已经 j j j向量的权重,由此,计算得到节点 j j j的邻居聚合,
    h j ( l + 1 , m ) = σ ( ∑ e = ( i , j , r ) ∈ ε j α e ( l + 1 , m ) h ^ ϕ ( j ) , i ( l + 1 , m ) ) h_j^{(l+1,m)}=\sigma(\sum_{e=(i,j,r)\in\varepsilon_j}\alpha_e^{(l+1,m)}\hat{h}^{(l+1,m)}_{\phi(j),i}) hj(l+1,m)=σ(e=(i,j,r)εjαe(l+1,m)h^ϕ(j),i(l+1,m))
    当节点 i i i和节点 j j j之间的边存在多种类型,都 j j j的隐状态就要和对应的权重 a l p h a alpha alpha多次相乘。

    对上式采用M头注意力机制,拼接得到输出
    h j ( l + 1 ) = ∣ ∣ m = 1 M h j ( l + 1 , m ) h_j^{(l+1)}=||_{m=1}^M h_j^{(l+1,m)} hj(l+1)=m=1Mhj(l+1,m)
    HetSANN的聚合式基于原始边(raw links)而不是基于元路径的,因此需要更多层,因此HetSANN可以捕获到高阶的相似度信息。为了更好的训练,采用残差连接的机制,重写上式,得到
    h j ( l + 1 ) = h j ( l ) + ∣ ∣ m = 1 M h j ( l + 1 , m ) h_j^{(l+1)}=h_j^{(l)}+||_{m=1}^M h_j^{(l+1,m)} hj(l+1)=hj(l)+m=1Mhj(l+1,m)

Model Training and Three Extensions

TAL输出了每个节点的低维表示,如 h j = h j ( L ) h_j=h_j^{(L)} hj=hj(L),为了面向具体任务(节点分类),采用一层全连接层和一层softmax构成分类器,最小化交叉熵损失
F c l a s s = − ∑ i ∈ V p y i l o g y i ~ F_{class}=-\sum_{i\in V_p} y_i log\tilde{y_i} Fclass=iVpyilogyi~
y i y_i yi y i ~ \tilde{y_i} yi~分别为节点 i i i的真实值和预测值

  • E1: Multi-task Learning
  • E2: Voices-sharing Product
  • E3: Cycle-consistency Loss

Experiments

数据集IMDB,DBLP,AMiner,对比其它的模型DeepWalk、metapath2vec、HERec、HAN、GCN、R-GCN、GAT,采用各种变形的方法,其中.M,.R,.V分别对应 multi-task learning to optimize the parameters, voices-sharing product in relations attention mechanism 和cycle-consistency loss to retain the transformation between vertices,


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

相关文章

【论文解读 | IJCAI2020】NSHE - Network Schema Preserving Heterogeneous Information Network Embedding

文章目录 摘要1 引言2 相关工作3 我们的方法3.1 保留成对邻近性3.2 保留网络架构邻近性网络架构实例抽样网络模式实例采样多任务学习保留模式 4 实验5 结论 论文链接: Network Schema Preserving Heterogeneous Information Network Embedding 代码链接&#xff1a…

【火】爆肝1w+字把SQL注入讲的明明白白!

Hello大家好~这里是KOKO师傅 SQL注入是Web渗透测试里hin常用的方法,我用1w字让你入门SQL注入! 一、数据库基础 1.1 数据库概述 • 数据库(DataBase, DB):存储在磁带、磁盘、光盘或其他外存介质上、按一定结构组织在一起的相关数据的集合。 • 数据库…

【论文翻译 | AAAI19】HHNE - Hyperbolic Heterogeneous Information Network Embedding 双曲异构信息网络嵌入

文章目录 摘要1 引言2 相关工作3 相关知识3.1 HIN相关定义3.2 HIN中的关系分布 4 双曲空间中的HIN嵌入4.1 双曲几何 6 结论 双曲空间 异构网络嵌入 参考阅读: HHNE 摘要 异构信息网络(HIN)嵌入是一种将HIN映射到低维空间的技术,引起了广泛的研究。现有…

我用开天平台做了一个字符串检查API,hin 简单~~

摘要:本文使用了工作台的API全生命周期管理和函数管理功能,编写字符串检查的函数,实现了API的快速创建和发布。 本文分享自华为云社区《【我用开天平台做了一个字符串检查API》,作者:人类群星闪耀时。 1 开天集成工作…

DyHNE-Dynamic Heterogeneous Information Network Embedding with Meta-path based Proximity

文章目录 摘要1 引言2 相关工作2.1 网络嵌入2.2 HIN嵌入2.3 动态网络嵌入 4 DyHNE模型4.1 基本思想4.2 静态HIN嵌入 5 结论 来源:IEEE Trans2020 作者:北邮陆元福等人 摘要 异构信息网络(HIN)嵌入的目的是学习节点的低维表示,同时保持HIN中的…

AdaptiveAvgPool2D 不支持 onnx 导出,自定义一个类代替 AdaptiveAvgPool2D

AdaptiveAvgPool2D 不支持 onnx 导出,导出过程会告诉你,onnx不支持那个动态操作巴拉巴拉 我用的是 pp_liteseg 导出为 onnx 模型,都一样,paddle和Torch的 Adaptive Pool2D 都是动态的,onnx暂时都不支持,我…

ICLR 2023 | 3D UX-Net:超强的医学图像分割新网络

点击下方卡片,关注“CVer”公众号 AI/CV重磅干货,第一时间送达 点击进入—>CV微信技术交流群 转载自:CVHub Title: 3D UX-Net: a Large Kernel Volumetric ConvNet Modernizing Hierarchical Transformer for Medical Image Segmentation …

异构信息网络 Heterogeneous information network (HIN)

异构信息网络包含多类节点和多类连接关系,由于此类网络能够灵活的对异构数据及逆行建模,越来越多的被应用于推荐系统,处理复杂的多元异构的数据。 这里给出异构信息网络 Heterogeneous information network (HIN),网络模式 Networ…

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

论文标题: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 Sc…

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

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

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

信息网络(Information Network) 信息网络可以用一个有向图G (V, E) 来表示,其中V代表 Object,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-…

附件上传技术分享

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

上传附件——单页面

上传附件——单页面 效果 代码 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…