知识图谱与异构图神经网络(7)--1

        知识图谱是由实体(节点)和关系( 不同类型的边) 组成的多关系图。作为一种非常重要又特殊的图结构数据,知识图谱被广泛应用在人工智能和自然语言处理领域,从语义解析、命名实体消歧到问答系统、推荐系统中都可以看到来自知识图谱的技术推动。本质上,可以将知识图谱看作一种异构网络图,因此很多异构图神经网络可以直接应用在知识图谱上作为表示学习的方法。由于知识图谱的特殊性,它又有很多原创的嵌入方法,并且这些知识图谱的嵌入方法又反过来推动了新的图神经网络结构的研究。本章将探讨知识图谱上的经典嵌入方法及图神经网络在知识图谱上的应用和改进。

1 .知识图谱嵌入

        一般来讲,知识图谱由一系列三元组的事实(h,r,t)构成,每个事实中包含两个实体 h,t和它们之间的关系r。这些三元组合在一起,就构成了一个图 KG=(h,r,t)。 在这个图中,实体表示节点,实体间的关系表示边。

        知识图谱的表示学习,或者说知识图谱嵌入,是将实体和关系映射到一个低维连续空间上。也就是说,类似于普通的图嵌入,知识图谱嵌入旨在学习实体和关系的向量化表示。知识图谱嵌入的关键是合理定义知识图谱中关于事实(三元组(h,r,t))的打分函数fr(h,t)  通常,当事实(h,r,t) 成立时们期望最大fr(h,t)  我们可通过最大化 

来学习所有实体及关系的向量化表示,其中O表示知识图谱中所有三元组的集合。

        知识图谱并不能覆盖所有的知识,因此其核心任务之一就是利用已有的知识对未知的部分进行推理和补全KGC。这些都可以通过知识图谱嵌入的方法来解决。当我们得到了所有实体和关系的嵌入表示后,可以用定义的打分函数评价每个可能的三元组,以得到缺失的实体或者关系。假设在一个知识图谱上有一些缺失的关系,如在实体Forest GumpEnglish之间存在某种联系,但在构建知识图谱时我们并没有把它囊括进来,这时可以通过知识图谱嵌入的方法对所有已知的实体和关系进行表示学习,然后用它们预测 Forest Gump 和 English之间未知的关系。除了补全关系,知识图谱补全也包含对缺失实体的预测,如上例中,如果我们已知Forest GumpLanguage, 以推测出缺失的实体应该是 English

        传统的知识图谱推理一般只推测已经出现过的实体之间的关系,称之为转导推理或者直推式学习,而Teru等人提出了另一种推理任务,他们想将推理一般化到未见过的实体,这种新任务叫作归纳推理

除了知识图谱的推理和补全,在知识图谱上我们还可以:

(1)对三元组分类,判断三元组事实(h,r,t)   是否为真。

(2)对实体分类,将实体归类为不同的语义类别。

(3)实体判别,判断两个实体是否为同一个目标。

知识图谱嵌入还可以辅助完成很多下游任务,包括关系抽取、问答 系统、推荐系统等。

        随着对知识图谱相关研究的深入,出现了基于不同思路的知识图谱嵌入方法,这些方法定义了不同的嵌入空间或者不同的损失函数。将它们分为距离变换模型、语义匹配模型和知识图谱上的图神经网络模型。

2.距离变换模型
2.1 TransE

        Mikolov 等人发现,利用该模型后,词向量空间存在平移不变现  象。受到该平移不变现象的启发,Border 等人提出了TransE模型,将知识库中的关系看作实体间的某种平移向量。对于每个事实三元组(h,r,t),假设它们分别有向量表示h,r,t TransE模型将实体和关系表示在同一空间中,把关系向量r 看作头实体向量h 和尾实体向量t 之间的平移,即h+r≈t。我们也可以将r 看作从h  t 的翻译,因此TransE模型也被称为翻译模型。它的打分函数可以定义为h+rt距离的负, 

fr(h,t)=-||h+r-t||L1/L2   

2.2TransH模型

        虽然TransE 模型简单高效,计算复杂度低,在大规模稀疏知识库上具有 较好的性能与可扩展性,但是它不能解决多对一和一对多关系的问题。以多对一关系为例,固定r t,TransE模型为了满足三角闭包关系,训练出来的头节点的向量会很相似,但实体在涉及不同关系时应该具有不同的表示形式。为了解决TransE模型在处理一对多、多对一、多对多复杂关系时的局限性 ,TransH模型提出让一个实体在不同的关系下拥有不同的表示。对于关系r,  TransH模型同时使用平移向量r 和超平面的法向量 wr 来表示它。对于一个 三元组(h,r,t),TransH模型先将头实体向量h和尾实体向量t 投影到关系r对应的超平面上,分别得到h\perp t\perp,   再对投影用的TransE模型进行训练和学习。

        其中,h\perp=h-{_W{R}}^{T}hwr需要注意的是,关系r 可能存在无限个超平面(在二维空间中,超平面是一个直线;在三维空间中,超平面是一个平面;而在更高维度的空间中,超平面则是一个更高维度的“平面”,它将空间分割成两个部分)TransH 模型简单地令rwr近似正交,来选取某一个超平面。

2.3TransR模型

        TransR模型与TransH模型的思想类似,它引入的是关系特定的语义空间, 而不是超平面。虽然TransH 模型使每个实体在不同关系下拥有了不同的表示, 但是它仍然假设实体和关系处于相同的语义空间中,这在一定程度上限制了TransH模型的表示能力。TransR 模型则将一个实体看作多种属性的综合体,不同的关系拥有不同的语义空间并关注实体的不同属性。对于每一个关系r,TransR模型定义投影矩阵Mr, 将实体向量h和t从实体空间投影到关系r 对应的子空间:

h=Mrht⊥=Mrt,然 TransR模型利用和TransH模型相同的翻译关系h1+r≈t1三元组的评分函数:

2.4TransD

        虽然 TransR模型较TransE模型和TransH模型有显著的改进,但它仍然有如下缺点。

(1)在同一个关系下,头实体和尾实体共享相同的投影矩阵。然而,一个关系的头实体和尾实体的类型或属性可能差异巨大。例如,对于三元组(姜文, 出演,让子弹飞),“姜文”和“让子弹飞”的类型完全不同,一个是人物, 一个是电影。

(2)从实体空间到关系空间的投影是实体和关系之间的交互过程,因此TransR模型让投影矩阵仅与关系有关是不合理的。

( 3 ) 与TransE模型和TransH模型相比,TransR型引入了空间投影,使得TransR模型的参数量急剧增加,计算复杂度大大提高。

为了解决这些问题,TransD模型设置了两个分别将头实体h和尾实体t影到关系空间的投影矩阵Mr1  Mr2

h=Mr1ht⊥=Mr2t

其中,Mr₁由一个对应关系的向量wr 和一个对应头实的向量wh组成, Mr₂ 则由wr 和一个对应尾实体的向量wt组成:Mr₁=wr{W_{h}}^{T}+I,Mr2={w_{t}}^{T}+I  这样投影矩阵就不仅和关系有关,还和被投影的实体有关系。另外, 通过两个向量外积的定义方式,TransD模型可以使投影矩阵的参数变少,从而降低模型的复杂度。

3 .语义匹配模型

        语义匹配模型利用基于相似性的评分函数,通过匹配实体的潜在语义和向量空间表示中包含的关系来度量事实的可信性。

3.1RESCAL模型

        RESCAL模型又称双线性模型,它将每个关系r都表示为一个矩Mr,  矩阵对潜在因素之间的成对交互作用进行了建模。所谓双线性模型,指的是它的得分函数是一个双线性函数:

这个得分函数的值描述了ht的所有分量之间的成对相互作用。

3.2 DistMult模型

        DistMult模型是RESCAL模型的简化版本,它通过将Mr限制为对角矩阵来减少参数的数量。对于每一个关系r,它要求Mr=diag(r), 其中r是对应关系r的一个向量。它的评分函数与RESCAL相同,不同的是,由于Mr是一个对角阵,它只捕获h和t在相同维度上的分量之间的交互作用。也就是说,在RESCAL中的双线性函数式中,i≠j 的分量消失了,评分函数可以重写为

这样,DistMult模型可以将每一个关系的参数数量减少至O(d)。然而,DistMult 模型只能处理对称的关系,因为对于任意的h和t ,h^{T}diag(r)t=t^{T}diag(r)h都是成立的。显然,在一般的知识图谱上,关系并不总是对称的,所以DistMult模型有很大的局限性。

3.3HolE模型

        HolE模型将RESCAL模型的表达能力与DistMult模型的效率和简单性进行了结合。它把实体和关系都表示为同一个向量空间中的向量。给定一个事实 (h,r,t),先使用循环相关操作*将实体对(h,t)表示成:

然后将实体对的表示与关系的表示进行匹配,得到一个得分函数:

fr(h,t)=r^{T}(h*t) ,循环相关运算压缩了h 和t 之间的相互作用,减少模型参数(每个关系只要 O(d) 个参数)。另外,循环相关运算符是不可交换的。因此,HolE 模型可以像RESCAL模型一样对非对称关系建模。

3.4 语义匹配能量模型

        语义匹配能量模型也是对事实中的实体和关系进行语义匹配。不同的是,它使用一个更复杂的神经网络架构来实现。 首先,在输入层,将三元组(h,r,t)的每个元素映射为嵌入向量h,r,t;然后, 在隐含层,将关系向量r 和头实体向量h 组合,得到一个分数 gu(r,h)同时,将关系向量r 和尾实体向量t组合,得到gv(r,t)。最终,将这两个分数组合, 得到最终的匹配分数,如

3.5神经张量网络模型

        神经张量网络模型是另一种经典的神经网络语义匹配模型。在这个模型里,r不再仅用一个向量或矩阵来表示,而是引入了一个对应的张量Sr及对应的矩阵{M_{r}}^{1},{_M{r}}^{2}, 分别表示两种匹配关系:线性和双线性。它的得分函数是:

其中 b表示一个偏差的向量参数。神经张量网络模型是一个最具表达力的模 型,几乎涵盖了所有的匹配关系,但是它的参数过多,导致不能有效地处理大 型的知识图谱。

3.6 ConvE 模型

        ConvE模型采用一个2D卷积得到实体和关系的匹配分数:

它先把头实体h和关系r 重塑成二维矩阵Mh和Mr,   然后利用卷积(*为卷积操作,\omega为卷积核)和全连接层(参数为W)获取交互信息,最后与尾实体向量t相乘。它不像神经张量网络模型那样复杂,又可以叠加多层以增强表达力,在复杂度和表达力之间取得了很好的平衡。它很容易训练,可以被应用在大规模的知识图谱中。

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

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

相关文章

微服务下设计一个注解标识是否需要登录

需求 现在我们是微服务系统,需要设计一个注解 RequiredLogin ,当标识这个注解时表示系统需要登录才能继续操作。 实现思路 首先,需要明确我们要拦截的是从浏览器过来的请求,服务之间的互相调用是不需要拦截的(比如 …

【python设计模式1】面向对象设计原则

目录 设计模式分类 面向对象 接口 面向对象设计原则 里氏替换原则 依赖倒置原则 接口隔离原则 单一职责原则 设计模式是对软件设计中普遍存在或反复出向的各种问题所提出的解决方案。每一个设计模式系统地被命名、解释和评价了面向对象系统中一个重要和重复出现的设计。…

基于MicroPython的ESP32控制LED灯闪烁设计方案的Wokwi仿真

以下是一个基于MicroPython的ESP32控制LED灯闪烁设计方案的Wokwi仿真: 一、硬件准备: 在Wokwi仿真平台(https://wokwi.com/)选择ESP32开发板,添加一个LED灯,和一个220欧姆限流电阻。 二、硬件连接: 1. 将LED灯的阳极…

【例题】lanqiao4403 希尔排序模板题

插入排序每次只能将数据移动一位。 已知插入排序代码为: def insert_sort(a):for i in range(1,len(a)):ji-1while j>0 and a[j]>a[i]:a[j1]a[j]j-1a[j1]a[i]return a希尔排序在插入排序的基础上,将数据移动n/2,n/4,…,1位。 for i in range(ga…

Git:Git管理

目录 Git 文件管理检测文件状态 status跟踪新文件 add提交更新 commit撤销提交 Commit Git 校验和历史查看 log版本回退 resetgit 忽略文件 Git 分支管理Git 提交对象Git master分支Git 分支管理本地分支管理远程分支管理分支hotfix处理 Git 工作流常见分支冲突处理分支合并冲突…

冒泡排序的C++语言实现(不用std::sort)

自己写一个冒泡排序的代码。 void vSort(std::vector<int> & vec, bool bDescending) {//冒泡排序int iTail vec.size()-1;while(iTail > 0){for(int k 0; k < iTail; k){int f1 vec.at(k);int f2 vec.at(k1);if(f1 < f2){//默认是降序int iTmp vec.a…

第十一章 【后端】商品分类管理微服务(11.3)——商品管理模块 yumi-etms-goods

11.3 商品管理模块 yumi-etms-goods 新建 yumi-etms-goods 模块 添加依赖 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns&#

ESP32工程添加.c .h文件及常见错误

一、编译环境添加 如果编译的文件在main文件夹下&#xff0c;在main文件夹下的CMakeLists.txt中添加对应的.c文件&#xff0c;如下图所示。 二、常见问题 1- undefined reference to xxx C语言中使用static修饰函数时&#xff0c;意味着该函数的作用域仅限于定义它的文件。…

【Python123题库】#体育收入排行2012-2019

禁止转载&#xff0c;原文&#xff1a;https://blog.csdn.net/qq_45801887/article/details/140087809 参考教程&#xff1a;B站视频讲解——https://space.bilibili.com/3546616042621301 有帮助麻烦点个赞 ~ ~ Python123题库 体育收入排行2012-2019 体育收入排行2012-2019 …

CentOS7 MySQL8.0 启动失败 Data Dictionary initialization failed

CentOS7 MySQL8.0 启动失败 Data Dictionary initialization failed 重点&#xff01;&#xff01;&#xff01; 此方案会删除数据的&#xff01;&#xff01;&#xff01; 类似重置一样&#xff01; 报错 查看日志&#xff1a;/var/log/mysqld.log 解决方案 查看配置文…

Python热频随机森林分类器算法模型模拟

&#x1f3af;要点 研究发射测量斜率和时滞热频率表征&#xff0c;使用外推法计算三维磁场并定性比较使用基于焓的热演化环模型模拟每条线的热力学响应&#xff0c;测试低频、中频和高频热场景使用光学薄、高温、低密度等离子体的单位体积辐射功率或发射率公式等建模计算使用直…

动手学深度学习(四)卷积神经网络-下

全连接层存在的问题&#xff1a;参数过大&#xff0c;计算成本过高。 一、网络中的网络&#xff08;NiN&#xff09; 1、NiN块 ①NiN块的结构 NiN串联多个由卷积层和“全连接”层构成的小网络来构建一个深层网络。这种由卷积层和“全连接”层构成的小网络就是NiN块。 &#…

SpringBoot框架之KOB项目 - 配置Mysql与注册登录模块(上)

框架模型 每一个客户端&#xff08;client&#xff09;都会和后端&#xff08;SpringBoot&#xff09;进行通信&#xff0c;例如如果一个用户进行登录&#xff0c;需要向后端发送username、password&#xff0c;SpringBoot可以理解为一个一直在跑的程序&#xff0c;不断对用户…

3.Java高级编程实用类介绍(一)

三、Java高级编程实用类介绍(一) 文章目录 三、Java高级编程实用类介绍(一)一、枚举类型二、包装类三、Math 一、枚举类型 使用enum进行定义 public enum 枚举名字{值1,值2.... }二、包装类 每个基本类型在java.lang包中都有一个相应的包装类 /** new包装类&#xff08;字符…

上海儿童自闭症寄宿制学校,让孩子找到归属感

在探讨自闭症儿童教育的广阔图景中&#xff0c;上海作为一座充满人文关怀的城市&#xff0c;始终致力于为这些特殊的孩子提供更加全面、专业的支持体系。而当我们把这份关注与努力投射到具体实践上&#xff0c;广州的星贝育园自闭症儿童寄宿制学校便成为了这样一个温馨而有力的…

JVM OutOfMemoryError 与 StackOverflowError 异常

目录 前言 堆溢出 虚拟机栈和本地方法栈溢出 方法区溢出 前言 JVM规范中规定, 除了程序计数器之外, 其他的运行时数据区域, 例如堆栈, 方法区, 都会出现OutOfMemoryError异常. 那么到底是怎么样的代码, 才会引起堆溢出, 栈溢出, 或者是方法区的溢出呢? 如果遇到了又该如何…

鸿蒙next json解析 ArkUI 带你玩转 arkts json解析

前言导读 相信很多同学再开发过程中都会遇到json解析的处理&#xff0c;不管是跟服务端交互 或者是读取本地的json 都会遇到json解析 那么正好今天有空正好讲一下鸿蒙next里面的json解析 JSON解析与生成 本模块提供了将JSON文本转换为JSON对应对象或值&#xff0c;以及将对象…

Mac OS系统如何下载安装Python解释器

目录 Mac安装Python的教程 mac下载并安装python解释器 如何下载和安装最新的python解释器 访问python.org&#xff08;受国内网速的影响&#xff0c;访问速度会比较慢&#xff0c;不过也可以去我博客的资源下载&#xff09; 打开历史发布版本页面 进入下载页 鼠标拖到页面…

【经典文献】双边滤波

文章目录 ICCV 1998基本思路双边高斯滤波 ICCV 1998 1995年&#xff0c;Aurich和Weule提出一种非线性高斯滤波器&#xff0c;三年后&#xff0c;Tomasi和Manduchi将其用于图像平滑&#xff0c;并将其命名为双边滤波。 Aurich, V., & Weule, J. (1995). Non-linear Gaussi…

【C++】list常见用法

&#x1f525;个人主页&#x1f525;&#xff1a;孤寂大仙V &#x1f308;收录专栏&#x1f308;&#xff1a;C从小白到高手 &#x1f339;往期回顾&#x1f339;&#xff1a;[C]vector常见用法 &#x1f516; 流水不争&#xff0c;争的是滔滔不息。 文章目录 一、list的介绍li…