( Neurocomputing,2023)Relphormer:用于知识图谱表示的关系图Transformer

news2024/9/21 23:41:36

Relphormer:Relational Graph Transformer for Knowledge Graph Representations

资料

论文:Relphormer:Relational Graph Transformer for Knowledge Graph Representations
代码:https://github.com/zjunlp/Relphormer

摘要

Transformer在包括自然语言处理、计算机视觉和图挖掘在内的广泛领域中取得了显著的表现。然而,传统的Transformer架构在知识图谱(KG)表示上并未带来有希望的改进,该领域主要由平移距离范式主导。请注意,传统的Transformer架构难以捕获知识图谱固有的异构结构和语义信息。为此,我们提出了一种新的知识图谱表示Transformer变体,称为Relphormer。具体来说,我们引入了Triple2Seq,它可以动态采样上下文的子图序列作为输入,以缓解异构性问题。我们提出了一种新颖的结构增强自注意力机制,以编码关系信息并保持实体和关系内的语义信息。此外,我们利用掩蔽知识建模进行通用的知识图谱表示学习,这可以应用于包括知识图谱补全、问答和推荐在内的各种基于KG的任务。在六个数据集上的实验结果表明,Relphormer可以获得与基线相比更好的性能。

引言

在这里插入图片描述

完全应用Transformer架构到知识图谱有三个非平凡的挑战如下:

  1. 边和节点的异构性。请注意,KG是具有丰富语义边缘的关系图。多条边缘具有不同的关系信息,导致不同的异构表示。
  2. 拓扑结构和文本描述。KG是具有两种类型知识的文本丰富的网络,即拓扑结构和文本描述。不同的节点具有独特的拓扑和文本特征。例如,给定一个实体-关系对(ℎ, r),表征结构上下文和文本描述将在从ℎ和r推断实体节点时提供有价值的信息。然而,以前的Transformer架构通常将所有实体和关系视为普通标记,错过了本质的结构信息。
  3. 任务优化的普遍性。请注意,大多数以前的研究[10]遵循具有预定义评分函数的知识嵌入范式。然而,这种策略需要优化不同的对象用于实体/关系预测,并在推理中对所有可能的三元组进行昂贵的评分。与此同时,以前的KG表示学习方法难以为各种基于KG的任务提供统一的学习表示,如知识图谱补全、问答和推荐。因此,直观地设计一种新的技术解决方案用于知识图谱表示是有意义的。

为了解决上述问题,我们探索了Transformer架构在知识图谱表示中的应用,并提出了关系图Transformer(Relphormer)。

  1. 我们提出了Triple2Seq来解决边和节点的异构性,它将上下文子图作为输入序列进行采样。具体来说,我们将关系视为子图中的正常节点,然后将上下文子图输入Transformer模块。我们使用动态采样策略来最大程度地保留局部上下文信息和语义。
  2. 我们提出了一种结构增强机制来处理拓扑结构和文本描述。通过我们设计的模块,模型可以同时编码文本特征,同时保留结构信息。请注意,我们不仅关注知识图谱表示,这样的机制也适用于其他类型的基于Transformer的方法,以融入任何结构偏差。
  3. 我们提出了一种掩蔽知识建模机制,用于统一的知识图谱表示学习。受自然语言处理中掩蔽语言建模的启发,我们引入了一个统一的优化目标,即预测输入序列中被掩蔽的实体以及关系标记。通过这种方式,我们可以为知识图谱补全中实体和关系的预测简单地利用一个统一的优化目标。

方法

在这里插入图片描述

预备知识

G = ( E , R ) \mathcal{G} = (\mathcal{E}, \mathcal{R}) G=(E,R) 表示一个知识图谱,包含实体集 E \mathcal{E} E 和关系集 R \mathcal{R} R。我们用 V \mathcal{V} V 表示知识图谱中的节点集,即 V = E ∪ R \mathcal{V} = \mathcal{E} \cup \mathcal{R} V=ER。我们定义邻接矩阵 A = { a u v } ∈ { 0 , 1 } ∣ V ∣ × ∣ V ∣ \mathbf{A} = \{a_{uv}\} \in \{0, 1\}^{|\mathcal{V}| \times |\mathcal{V}|} A={auv}{0,1}V×V,如果节点对 ( u , v ) (u, v) (u,v) 相连则 a u v = 1 a_{uv} = 1 auv=1,否则 a u v = 0 a_{uv} = 0 auv=0。注意,节点对 ( u , v ) (u, v) (u,v) 可以是实体和关系之间的交互。我们定义三元组为 ( v s , v p , v o ) (v_s, v_p, v_o) (vs,vp,vo) 或简称 τ \tau τ,它是采样子图中的中心三元组。 τ G \tau_{\mathcal{G}} τG 是围绕中心三元组的上下文子图(包括中心三元组本身)。知识图谱表示学习的目标是学习一个映射 f : τ G → Y f: \tau_{\mathcal{G}} \rightarrow \mathcal{Y} f:τGY,其中 Y \mathbf{Y} Y 是标签集。

对于问答任务,每个问题都被标记有一个回答实体。给定一个问题,问答任务的目标是找到正确的答案。由于一些候选实体在知识图谱中,实体的潜在关联将有助于提高问答任务的性能。对于推荐任务,给定每个用户 u u u 的一组项目 ( i 1 , i 2 , . . . ) (i_1, i_2, ...) (i1,i2,...),目标是预测用户可能感兴趣的潜在项目。这里的KG指的是以项目为中心的知识图谱,它将外部项目的属性与不同类型的实体和关系组织起来。我们认为知识表示应该是统一的,无论是知识图谱表示学习还是与知识图谱表示相关的任务。接下来,我们将介绍Relphormer在知识图谱表示学习中的技术细节。

使用Triple2Seq的上下文子图采样

在这里插入图片描述

如前所述,知识图谱通常包含大量的关系事实,因此整个关系图不能直接输入变换器。为了缓解基于全图的变换器的限制,受到[20]的启发,我们提出了Triple2Seq,它使用上下文的子图作为输入序列来编码局部结构信息

上下文子图 τ G \tau_{\mathcal{G}} τG 在这里被定义为包含实体和关系的三元组集合。 τ G \tau_{\mathcal{G}} τG 由中心三元组 τ c \tau_{\mathcal{c}} τc 和其周围的邻域三元组集合 τ c o n t e x t \tau_{\mathcal{context}} τcontext 组成:
τ G = τ c ∪ τ c o n t e x t \tau_{\mathcal{G}} = \tau_{\mathcal{c}} \cup \tau_{\mathcal{context}} τG=τcτcontext
注意,子图采样过程是在三元组级别进行的,然后我们可以获取采样的邻域三元组集合 τ c o n t e x t \tau_{\mathcal{context}} τcontext
τ c o n t e x t = { τ ∣ τ i ∈ N } \tau_{\mathcal{context}} = \{\tau | \tau_i \in \mathcal{N}\} τcontext={ττiN}
其中 N \mathcal{N} N 是中心三元组 τ c \tau_{\mathcal{c}} τc 的固定大小邻域三元组集合。为了更好地捕获局部结构特征,我们在训练期间使用动态采样策略,并为每个epoch中的同一中心三元组随机选择多个上下文子图。我们经验性地设置样本分布为 E τ c ∼ P E_{\tau_{\mathcal{c}}} \sim \mathcal{P} EτcP,其中 P \mathcal{P} P 是三元组的度数。

经过Triple2Seq的过程后,我们可以获取上下文子图 τ G \tau_{\mathcal{G}} τG。同时,上下文子图的局部结构在邻接矩阵 A G \mathbf{A}_{\mathcal{G}} AG 中得以保留。我们注意到,实体-关系对信息对于知识图谱来说是一个非常关键的信号,这在诸如HittER[36]的分层变换器框架中证明了其有效性。因此,我们将实体-关系对表示为纯文本,并将关系视为上下文子图中的特殊节点。例如,上下文子图被转换为序列 { v 1 , v 2 , . . . , v m } \{v_1, v_2, ..., v_m\} {v1,v2,...,vm},其中包含中心三元组 τ c \tau_{\mathcal{c}} τc 的节点。

通过这种方式,我们可以获取节点对信息,包括实体关系、实体-实体和关系-关系对的交互。另一个优点是,关系节点可以被视为特殊节点。由于知识图中关系的数量远小于实体的数量,因此它可以在由Triple2Seq采样的上下文子图之间保持全局语义信息。值得注意的是,我们还添加了一个全局节点来明确保持全局信息。全局节点在自然语言预训练模型中扮演着类似[CLS]标记的角色。我们通过可学习的虚拟距离或固定距离将全局节点与上下文子图中的节点联系起来。因此,我们获得了最终的输入序列,其中包含一个特殊的虚拟节点来构建节点特征。

结构增强自注意力

在这里插入图片描述

注意,由于注意力机制的全连接特性,输入的序列可能会丢失结构信息;我们提出结构增强自注意力来保留上下文子图中重要的结构信息。我们使用注意力偏置来捕获上下文子图中节点对之间的结构信息。注意力偏置表示为 ϕ ( i , j ) \phi(i, j) ϕ(i,j),是节点 v i v_i vi 和节点 v j v_j vj 之间的偏置项。
a i j = ( h i W Q ) ( h j W K ) d + ϕ ( i , j ) a_{ij} = \frac{(h_iW_Q)(h_jW_K)}{\sqrt{d}} + \phi(i, j) aij=d (hiWQ)(hjWK)+ϕ(i,j)
ϕ ( i , j ) = f s t r u c t u r e ( A ~ 1 , A ~ 2 , . . . , A ~ m ) \phi(i, j) = f_{structure} \left( \tilde{\mathbf{A}}^1, \tilde{\mathbf{A}}^2, ..., \tilde{\mathbf{A}}^m \right) ϕ(i,j)=fstructure(A~1,A~2,...,A~m)
其中 A ~ \tilde{\mathbf{A}} A~ 是规范化的邻接矩阵, W Q W_Q WQ W K W_K WK 是变换器模块中的Query-Key矩阵。 h i h_i hi h j h_j hj 表示隐藏表示, d d d 是隐藏维度。结构编码器 f s t r u c t u r e f_{structure} fstructure 是一个线性层,输入是 A ~ m \tilde{\mathbf{A}}^m A~m,其中 m m m 是超参数。 A ~ m \tilde{\mathbf{A}}^m A~m ( A ~ \tilde{\mathbf{A}} A~ m m m 次幂) 指的是从一个节点到另一个节点通过 m m m 步所能到达的相关性。我们连接邻接矩阵作为整体结构信息。对于某些密集的KG,同一中心三元图在不同epoch中可能有太多上下文子图,这可能会导致训练过程中的不一致性。因此,我们利用上下文对比策略在动态采样中克服不稳定性。我们使用不同epoch中同一三元组的上下文子图来强制模型进行相似的预测。我们对上下文子图的输入序列进行编码,并取隐藏向量 h m a s k h_{mask} hmask 作为当前epoch t t t 的上下文表示 c t c_t ct,以及上一个epoch t − 1 t-1 t1 c t − 1 c_{t-1} ct1。目标是最小化不同子图之间的差异;我们得到上下文损失 L c o n t e x t u a l \mathcal{L}_{contextual} Lcontextual 如下:
L c o n t e x t u a l = − l o g e x p ( s i m ( c t , c t − 1 ) / σ ) e x p ( s i m ( c t , c t − 1 ) / σ ) + ∑ j e x p ( s i m ( c t , c j ) / σ ) \mathcal{L}_{contextual} = -log\frac{exp(sim(c_t,c_{t-1})/\sigma)}{exp(sim(c_t,c_{t-1})/\sigma)+\sum_jexp(sim(c_t,c_{j})/\sigma)} Lcontextual=logexp(sim(ct,ct1)/σ)+jexp(sim(ct,cj)/σ)exp(sim(ct,ct1)/σ)

其中 σ \sigma σ 表示温度参数, s i m ( c t , c t − 1 ) sim(c_t,c_{t-1}) sim(ct,ct1) 是余弦相似度 c t T ⋅ c t − 1 ∥ c t ∥ ∥ c t − 1 ∥ \frac{c_t^T \cdot c_{t-1}}{\|c_t\| \|c_{t-1}\|} ct∥∥ct1ctTct1 c t c_t ct 是epoch t t t 的隐藏状态表示,它属于不同的中心三元组。

掩蔽知识建模

在这里插入图片描述

在本节中,我们介绍了所提出的掩蔽知识建模用于知识图谱表示。通常,知识图谱补全的目标是学习一个映射 f : τ M , A G → Y f: \tau_{\mathcal{M}}, \mathbf{A}_G \rightarrow \mathcal{Y} f:τM,AGY。受掩蔽语言建模的启发,我们随机掩蔽输入序列中的特定标记,然后预测这些被掩蔽的标记。给定一个上下文子图节点序列 τ G \tau_{\mathcal{G}} τG,我们随机掩蔽中心三元组中的标记。具体来说,被掩蔽的中心三元组将分别是关系预测任务中的头实体或尾实体。我们表示候选集为 Y \mathcal{Y} Y,掩蔽知识建模的任务是在给定掩蔽节点序列 τ M \tau_{\mathcal{M}} τM 和上下文子图结构 A G \mathbf{A}_{\mathcal{G}} AG 的情况下,预测三元组 τ \tau τ 缺失的部分:
R e l p h o r m e r ( M A S K ( τ G ) , A G ) → A Relphormer(MASK(\tau_{\mathcal{G}}),\mathbf{A}_{\mathcal{G}})\rightarrow \mathcal{A} Relphormer(MASK(τG),AG)A
其中 Y ∈ R ∣ E ∣ + ∣ R ∣ \mathcal{Y} \in \mathbb{R}^{|\mathcal{E}| + |\mathcal{R}|} YRE+R。具体来说,我们只随机掩蔽序列中的一个标记,以便更好地整合上下文信息,这是由于上下文子图的独特结构。

训练和推理

在这里插入图片描述

训练Relphormer进行知识图谱表示学习。整体的Relphormer优化过程在算法1中说明。在训练期间,我们联合优化掩蔽知识损失和上下文对比约束对象。 L c o n t e x t u a l \mathcal{L}_{contextual} Lcontextual 可以视为整个损失 L \mathcal{L} L 的约束项,如下所示:
L = L M K M + λ L c o n t e x t u a l \mathcal{L} = \mathcal{L}_{MKM} + \lambda \mathcal{L}_{contextual} L=LMKM+λLcontextual
其中 λ \lambda λ 是超参数, L M K M \mathcal{L}_{MKM} LMKM L c o n t e x t u a l \mathcal{L}_{contextual} Lcontextual 分别是掩蔽知识和上下文损失。具体来说, L M K M \mathcal{L}_{MKM} LMKM 通过交叉熵损失计算。

实验

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2055532.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

提高网站并发量的有效策略有哪些?

提高网站并发量的有效策略有哪些? 1. 静态化 & 模板引擎2. 分离静态资源3. 数据库优化4. 缓存技术5. 镜像部署6. 负载均衡7. CDN加速 💖The Begin💖点点关注,收藏不迷路💖 1. 静态化 & 模板引擎 HTML静态化&a…

8月19日笔记

http隧道搭建(续) ABPTTS安装使用 一款基于 SSL 加密的 HTTP 端口转发工具,全程通信数据加密,比 reGerog 都要稳定。使用 python2 编写,但是该工具只支持 aspx 和 jsp 脚本的网站。 下载地址:https://github.com/nccgroup/ABPTT…

CentOS7上安装RabbitMQ

在 CentOS 7 上安装 RabbitMQ 需要一些步骤,包括安装必要的依赖项、启用 RabbitMQ 源以及安装 RabbitMQ 服务器。以下是详细的步骤: 1. 更新系统 首先,确保系统是最新的: sudo yum update -y2. 安装 Erlang RabbitMQ 依赖于 E…

【Python】成功解决 ModuleNotFoundError: No module named ‘PIL‘

【Python】成功解决 ModuleNotFoundError: No module named ‘PIL’ 下滑即可查看博客内容 🌈 欢迎莅临我的个人主页 👈这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地!🎇 🎓 博主简介:985高…

网络安全-防火墙初步认识。

文章目录 1. 防火墙是什么?2. 防火墙的工作原理是什么?3. 防火墙的分类有哪些?4. 实战4.1 防火墙管理和实验介绍4.2 防火墙命令行初体验实验目标:实验步骤: 4.3 防火墙Web初体验实验目标:实验步骤&#xff…

[星瞳科技]OpenMV是否属于单片机?

文件系统 MicroPyhon的文件系统是FatFS。 根目录 路径都是以根目录为起点。 当插入sd卡后,根目录就是SD卡;不插入sd卡,根目录就是内置的Flash。 如果需要,你可以在SD卡上,新建一个空文件:/flash/SKIPS…

你是如何克服编程学习中的挫折感的?

编程之旅:穿越挫折的迷雾,拥抱成长的阳光 在编程的浩瀚星空中,每个人都是探索未知的宇航员,面对着无尽的代码海洋和未知的Bug黑洞。挫折感,这位不速之客,时常在探索的旅途中悄然降临,试图用迷茫…

使用WINUI3 编写一个小软件1 C#

本篇主要是记录安装和运行的问题。 先说安装 因为我是WIN11,所以勾了,如果你是WIN10就不用勾选11那个,但是我不确定用11要不要10那个,所以就勾了,按安装手册来的。 2、创建项目 照着选就完事了,别选错 这…

运维学习————nginx-入门及反向代理搭建

目录 一、简介 二、正向代理和反向代理 1、正向代理 作用 2、反向代理 作用 三、单机版nginx部署 1、查看环境 2、环境安装以及nginx安装 2.1、安装pcre 2.2、安装gzip模块需要 zlib 库 2.3、安装Nginx 3、启动测试 四、反向代理配置 一、简介 nginx [engine x] 是…

python人工智能002:jupyter基本使用

小知识:将jupyter修改为中文,修改用户变量, 注意是用户变量,不是系统变量 新增用户变量 变量名:LANG 变量值:zh_CN.UTF8 然后重启jupyter 上一章的软件安装完成之后,就可以创建文件夹来学习写…

[PHP]-Laravel中Group By引发的问题思考

Laravel 和 ThinkPHP 是两个不同的 PHP 框架,它们在底层使用了相同的 SQL 查询语言来与数据库交互。然而,由于框架的设计和实现方式不同,它们在生成 SQL 查询时可能会表现出一些细微的差异,包括对 GROUP BY 子句的处理。 在调用查…

OpenCV学堂 | 汇总 | 深度学习图像去模糊技术与模型

本文来源公众号“OpenCV学堂”,仅用于学术分享,侵权删,干货满满。 原文链接:汇总 | 深度学习图像去模糊技术与模型 引言 深度学习在图像去模糊领域展现出了强大的能力,通过构建复杂的神经网络模型,可以自…

基于 html5 的图书管理系统--论文pf

TOC springboot532基于 html5 的图书管理系统--论文pf 第1章 绪论 1.1选题动因 当前的网络技术,软件技术等都具备成熟的理论基础,市场上也出现各种技术开发的软件,这些软件都被用于各个领域,包括生活和工作的领域。随着电脑和…

ansible[自动配置]

回顾 1、mysql和python (1)不需要执行mysql_ssl_rsa_setup (2)Change_master_to.不需要get public key 2、可以使用pymysql非交互的管理mysql (1)connpymysql.connect(host,user,password,database,prot)…

您需要知道的:大模型中的算力精度FP16 vs. FP32

正如海洋中的巨浪需要广阔的海域来形成,大模型的算力需求也要求我们拓宽对现有计算资源的认识。接下来的内容将引导我们穿越技术的波涛,探索在人工智能快速发展的今天,算力如何成为推动进步的关键力量。我们将分析FP16与FP32精度选择的权衡&a…

【一文详解】内外网文件摆渡系统如何搭建安全数传通道?

内外网文件摆渡系统主要应用于做了隔离的内外网之间,或者多个网络(比如生产网、测试网、办公网)之间的文件数据传输,涉及的行业主要包括集成电路、金融、电力、能源、医院、高新技术、新能源、科研机构、生物医药等,内…

2024秋招Java 面试必刷的1200 道Java大厂面试真题(含答案解析)

2024秋招即将来临,很多同学会问 Java 面试八股文有必要背吗? 我的回答是:很有必要。你可以讨厌这种模式,但你一定要去背,因为不背你就进不了大厂。 国内的互联网面试,恐怕是现存的、最接近科举考试的制度…

Ubuntu网络服务无法启动问题

问题 Ubuntu20.04卡死重启后网络服务打不开,没有下图中的有线一栏: 查看网络服务状态如下: systemctl status NetworkManager此时桌面右上角没有下图中网络图标: 解决 命令: sudo service network-manager sto…

Golang | Leetcode Golang题解之第350题两个数组的交集II

题目&#xff1a; 题解&#xff1a; func intersect(nums1 []int, nums2 []int) []int {sort.Ints(nums1)sort.Ints(nums2)length1, length2 : len(nums1), len(nums2)index1, index2 : 0, 0intersection : []int{}for index1 < length1 && index2 < length2 {i…

Unity的地编系统

目录 基础操作与流程&#xff1a; 模型和材质制作&#xff1a; 六边形地图系统&#xff1a; 无缝大地图实现&#xff1a; 插件与扩展功能&#xff1a; 导航与寻路系统&#xff1a; 案例教学与视频教程&#xff1a; 技术问答与社区支持&#xff1a; Unity地编系统中如何…