走进知识图谱(二)【世界知识图谱篇】知识表示的经典模型与平移模型及基于复杂关系建模的知识表示学习

        上篇文章提到,该系列文章将主要围绕世界知识图谱和语言知识图谱这两大类知识图谱进行展开,并且提到知识图谱的主要研究包括了知识表示学习、知识自动获取和知识的推理与应用三大部分。今天主要介绍世界知识图谱的知识表示学习,其中包括经典的知识表示学习模型、平移模型和平移模型的一个变种——基于复杂关系建模的知识表示学习。

        知识表示学习

        知识图谱的知识表示主要解决的问题就是:如何把知识图谱中结构化的知识更好的表示成计算机可以高效率处理应用的形式。因为知识图谱中的结构化知识虽然对于人类来讲看上去很好理解,但是其本身的图结构,对于计算机来说是很难利用的。因此,把知识图谱中的知识表示成计算机易于处理的低维稠密向量,不仅可以方便计算机高效处理,还可以解决原本知识图谱中表示存在的结构稀疏的问题。而知识图谱中的主要内容包括实体和关系两者,因此知识图谱的知识表示的核心就是:对知识图谱中的实体和关系,以及实体和关系之间的联系这三者进行表示,并且是表示成低维稠密向量。

        知识表示存在以下几个问题:1. 实体和关系的种类众多 2. 实体和关系的形式众多 3. 以上两者导致的知识图谱中的实体和关系不准确针对知识表示存在的问题。

        研究人员的研究方案也就包括:1. 如何充分表示不同的实体和关系,以及解决其中的不准确信息 2. 如何把同一个实体和关系的不同形式表现出来,即融入世界知识在不同形式的信息载体中的信息。

        知识表示学习旨在将实体与关系表示为低维连续空间之中的向量,在此使用粗体的符号 h, t,r 表示头尾实体与关系对应的表示向量。

知识表示学习的经典模型

        知识表示的经典模型主要包括:结构向量模型(Structure Embedding,SE)、语义匹配能量模型(Semantic Meaching Energy,SME)、隐变量模型(Latent Factor Model,LFM)、矩阵分解模型(RESCAL及其改进HolE)。

1. 结构向量模型结构向量模型为头实体与尾实体分别设计了一个关系特化的映射矩阵 r, Mr, ,这些映射矩阵将会在训练过程中进行自动更新。模型对每个三元组(h,r,t)的评分函数定义为:

E(h,r,t)=∥M r,1​ h−M r,2t∥

|| || 是欧式距离,其公式是:d(x,y) = sqrt( (x1-y1)^2 + (x2-y2)^2 + ... + (xn-yn)^2 )。M r,1​·h是实体h在关系r下的嵌入向量,M r,2·t是实体t在关系r下的嵌入向量。这里的意思是,两个实体之间在关系r下的距离,等于两个实体的嵌入向量在关系r的映射矩阵下的欧式距离。欧式距离越小,两个实体的距离越小。即这两个实体和关系r之间联系非常大。

2. 语义匹配能量模型语义匹配能量模型与结构向量模型不同,使用低维向量表示实体及关系。在此之上,模型使用矩阵映射、点乘等操作,对实体与关系的联系进行评估。具体地,语义匹配能量模型设计了线性形式与双线性形式两种对元组的评分函数。

E(h,r,t)=(M1​h+M2​r+b1​)⊤(M3​t+M4​r+b2​)

E(h,r,t)=((M1​h⊙M2​r)+b1​)⊤((M3​t⊙M4​r)+b2​)

其中,⊙是element-wise(Hadamard)积;M1, M2, M3, M4是投影函数的权重矩阵,b1, b2是偏置。
3. 隐变量模型隐变量模型将实体表示成低维向量。将关系表示为双线性变换矩阵Mr ,在知识表示学习效果与计算复杂度方面都有显著改善。模型的评分函数为:

E(h,r,t) = hMrt

4. 矩阵分解模型。矩阵分解模型基于矩阵分解的方式进行知识表示学习,其中以 RESCAL模型和HolE模型为代表。

平移模型(TransE)

        平移的思想在Bordes 等研究者在2013年提出知识表示学习算法平移模型TransE之前就被广泛应用,以Word2Vec为例。它是Google AI 2013年提出的一种词向量模型,它通过训练一个神经网络来学习词之间的联系,并将词映射到一个低维空间中。平移模型将实体和关系映射至同1个低维向量空间,将实体与实体之间的关系表示为实体之间的平移操作。 

 平移模型的思想就是两个头尾实体可以表示成一个实体向量等与另一个实体向量与关系向量的和。其评分函数为:

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

由于只考虑了向量之间的平移操作,平移模型的计算复杂度大大降低并且学到的知识表示在知识图谱补全等任务方面的效果也得到了显著提升。但是其也存在:

  • 过于理想化的平移假设,在对知识图谱中的复杂关系进行建模时往往存在问题
  • 仅仅关注知识图谱三元组的局部信息,而忽略了知识图谱网络的全局结构与关系之间的推理逻辑
  • 只关注了知识图谱自身的网络结构信息,忽略了众多多源异质的丰富信息,如文本、实体类型与图像等信息

等问题,因此研究人员陆续提出了多个基于平移模型TransE的改进模型,下面先介绍一种基于复杂关系建模的知识表示学习。

基于复杂关系建模的知识表示学习

        TransE模型(经典的平移模型)无法解决复杂关系建模的问题,因为它只能对1对1的关系进行建模,对于1对多和多对多的关系则无法建模。而其改进模型TransR则可以很好的解决该问题。

TransR 与传统模型的主要差异在于它为 每种关系定义了单独的语义空间 ,并使用不同的映射矩阵 Mr 定义从实体空间到各个关系空间的映射。

TransR可以让每个实体针对每个关系有不同的映射结果,可以很好的解决1对多和多对多的关系。

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

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

相关文章

Android 13 Launcher——长按图标弹窗内容修改以及小组件等隐藏起来

目录 一.背景 二.实现思路 三.布局文件修改 四.隐藏代码中原先的view 一.背景 由于定制化开发需要将原先的长按图标原生弹窗界面隐藏,然后显示自定义的弹窗界面,如下就是我们来实现自定义的弹窗界面

redis Set类型命令

Redis中的Set是一种无序、不重复的集合数据结构,它提供了一系列的操作命令用于对Set进行添加、删除和查找等操作。以下是Redis中Set类型常见的一些命令: SADD key member [member …]:将一个或多个成员添加到指定的集合中。 示例:…

day-18 代码随想录算法训练营(19)二叉树 part05

513.找树左下角的值 思路一:层序遍历,每一层判断是不是最后一层,是的话直接返回第一个; 如何判断是不是最后一层呢,首先队列头部,其次记录左右子节点都没有的节点数是不是等于que.size();或…

【ARM 嵌入式 编译系列 6 -- GCC objcopy, objdump, readelf, nm 介绍】

文章目录 GCC objcopy 简介objcopy 常用参数 GCC objdump 简介GCC readelf 介绍GCC nm 介绍 GCC objcopy 简介 objcopy 是 GNU二进制工具集(binutils)的一部分,主要用于复制和转换目标文件。 在ARM GCC中,arm-none-eabi-objcopy通常用于从链接后的ELF格…

C语言 字符指针

1、介绍 概念: 字符指针,就是字符类型的指针,同整型指针,指针指向的元素表示整型一样,字符指针指向的元素表示的是字符。 假设: char ch a;char * pc &ch; pc 就是字符指针变量,字符指…

数据库--数据类型

数据库相关链接: 数据库基础操作--增删改查:http://t.csdn.cn/189CF 数据库--三大范式、多表查询、函数sql:http://t.csdn.cn/udJSG 数据类型 创建表的时候,我们在类型这里给出了不同的选项,比如有int ,…

python num循环怎么从1开始

如何实现python for循环从1开始? range()函数的作用和用法: 编写一个从数值1开始的循环: 执行后得到的结果 其他注意事项

HCIA---动态路由---RIP协议

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 目录 前言 一.动态路由 二.动态路由协议分类 IGP:内部网关协议 EGP:外部网关协议 三.RIP协议概述 RIP版本分类: RIP三要素: RIP…

3.0 Python 迭代器与生成器

当我们需要处理一个大量的数据集合时,一次性将其全部读入内存并处理可能会导致内存溢出。此时,我们可以采用迭代器Iterator和生成器Generator的方法,逐个地处理数据,从而避免内存溢出的问题。 迭代器是一个可以逐个访问元素的对象…

【LeetCode】870 . 优势洗牌

870 . 优势洗牌 方法:贪心 思路 这道题的思想类似于 “田忌赛马” ,把 nums1 当成是田忌的马,nums2 当成是齐威王的马。 讨论田忌的下等马(nums1 的最小值): 如果它能比过齐威王的下等马(nums…

Java设计模式之策略模式

1. 策略模式介绍 1、根据它来避免 if-else 或 switch 分支判断,避免使用多重条件转移语句; 2、支持“开闭原则”,可以在原有基础上选择行为方法,同时允许增加行为方法。 2. 策略模式结构类 ① 接口或抽象类:自定义接口…

探讨uniapp的navigator 页面跳转问题

navigator 页面跳转。该组件类似HTML中的<a>组件&#xff0c;但只能跳转本地页面。目标页面必须在pages.json中注册。 "tabBar": {"color": "#7A7E83","selectedColor": "#3cc51f","borderStyle": "bl…

分布式学习最佳实践:从分布式系统的特征开始

正文   在延伸feature&#xff08;分布式系统需要考虑的特性&#xff09;的时候&#xff0c;我逐渐明白&#xff0c;这是因为要满足这些feature&#xff0c;才设计了很多协议与算法&#xff0c;也提出了一些理论。比如说&#xff0c;这是因为要解决去中心化副本的一致性问题&…

第三节:在WORD为应用主窗口下关闭EXCEL的操作(1)

【分享成果&#xff0c;随喜正能量】夏日里的遗憾&#xff0c;一定都会被秋风温柔化解。吃素不难&#xff0c;难于不肯捨贪口腹之心。若不贪口腹&#xff0c;有何吃素之不便乎。虽吃华素&#xff0c;不吃素日&#xff0c;亦须少吃。以一切物类&#xff0c;皆是贪生怕死&#xf…

【Linux】以太网协议——数据链路层

链路层解决的问题 IP拥有将数据跨网络从一台主机送到另一台主机的能力&#xff0c;但IP并不能保证每次都能够将数据可靠的送到对端主机&#xff0c;因此IP需要上层TCP为其提供可靠性保证&#xff0c;比如数据丢包后TCP可以让IP重新发送数据&#xff0c;最终在TCP提供的可靠性机…

【LeetCode】102. 二叉树的层序遍历、107. 二叉树的层序遍历 II

作者&#xff1a;小卢 专栏&#xff1a;《Leetcode》 喜欢的话&#xff1a;世间因为少年的挺身而出&#xff0c;而更加瑰丽。 ——《人民日报》 102. 二叉树的层序遍历 102. 二叉树的层序遍历 给你二叉树的根节点 root &#xff0c;返回其节…

记录一下Java实体转json字段顺序问题

特殊需求&#xff0c;和C交互他们那边要求字段顺序要和他们定义的一致(批框架) 如下&#xff1a; Data public class UserDto {private String name;private Integer age;private String addr; }未转换前打印&#xff1a; 转换后打印&#xff1a; 可以看到转换为json顺序打印…

SpringMVC 的基本概念(一)

1.1 关于三层架构和 MVC 1.1.1 三层架构 我们的开发架构一般都是基于两种形式&#xff0c;一种是 C/S 架构&#xff0c;也就是客户端 / 服务器&#xff0c;另一种是 B/S 架构&#xff0c;也就 是浏览器服务器。在 JavaEE 开发中&#xff0c;几乎全都是基于 B/S 架构…

Windows 环境下 Python3 离线安装 cryptography 失败

发布Flask Web项目时&#xff0c;报错缺少Cryptography&#xff0c;于是尝试重新安装该库&#xff0c;但本机没有网络&#xff0c;只支持手动离线安装&#xff0c;尝试了pip、setup.py两种方式安装&#xff0c;结果都报错。。最后使用将安装包拷贝至本机(在其他电脑上安装的sit…