知识图谱嵌入方法-transE

news/2024/10/30 19:22:52/

目录

一、知识图谱嵌入

二、transE算法

三、缺点

一、知识图谱嵌入

       知识图谱(Knowledge GraphKG) 是大规模语义网络知识库,利用三元组(实体,关系,实体)来描述具体的知识,其具有语义丰富、结构友好、易于理解等优点。

       当今大规模知识库(知识图谱)的构建为许多自然语言处理任务提供了底层支持,例如问答系统、推荐系统等诸多领域,但由于其规模庞大且不完备,如何高效存储(低维稠密)[1]和补全知识库[2]成为了一项非常重要的任务,这就依托于知识表示学习(知识图谱嵌入技术)。

[1]计算机是无法直接处理自然语言的,自然语言中的词或知识必须将其编码成数字,计算机才能处理。稀疏编码能有效编码词汇信息,例如one-hot编码就是稀疏编码,词袋中[我,爱,苹果]三个字,对三个词进行编码,即[100]表示,[010]表示,苹果[001]表示,one-hot编码的优点就是直观有效地表示词汇,用向量中1位置表示该词在词袋中的位置。但其缺点就是随着词袋中词汇数量的增加,词汇向量表示的维度随之增加,当词袋中有一万个词时,词汇向量表示维度将达到一万,这种只用一个1,其余全是0的高维度稀疏编码必然造成编码繁琐、后期处理难度大。所以采用某种技术实现低维稠密编码,既降低了编码维度,也使得词与词之间存在关联,例如word2vec实现了关系相近的词在向量空间中离得近。同样,在知识图谱采用某种技术将实体、关系进行编码,同时保留两个实体间的关系,这种技术就是后文讲到的知识图谱嵌入(Knowledge Graph EmbeddingKGE)。

[2]两个实体实际上有联系,但是在知识图谱中并未有直接边相连,如图1所示,例如[奥巴马]毕业于[哈弗大学],但在知识图谱中,关系[毕业于]不存在,若在以此知识图谱为支撑的问答系统任务中,因为缺少关系,则会导致问答回复错误。所以需要某种技术补全知识图谱,这种技术就是知识图谱嵌入,编码后进行关系预测,即根据两个已知实体,预测该实体间的关系。

1 实体间缺少关系

       表示学习旨在学习一系列低维稠密向量来表征语义信息,而知识表示学习是面向知识库中实体和关系的表示学习,将实体和关系投影到低维向量空间,实现实体和关系的语义信息表示。

二、transE算法

       知识图谱中的事实是用三元组 (头实体h , 关系r , 尾实体t )的结构组织的,那么如何用低维稠密向量来表示它们,才能得到这种依赖关系呢?

         transE算法就是一个非常经典的知识表示学习,其算法的思想非常简单,它受word2vec平移不变性的启发,关系的向量表示解释成头、尾实体向量之间的转移向量,如果一个三元组(h, r, t)为真,那么向量空间中对应向量需要符合h + r ≈ t,如图23所示。

2 实体-关系空间

3 平移距离示例

那如何进行学习(知识图谱嵌入)呢?

3 知识图谱嵌入流程

       如图4所示,首先从训练集中抽取样本初始化样本的向量,然后基于距离的评分函数来对关系进行打分。

       如何设置打分模型损失函数是个关键,表示学习没有明显的监督信号,模型不会明确地告诉人们学到的表示正确与否,想要正确学习需要引入相对的概念,我们称正确的为正样本,错误的称为负样本,负样本是然后随机替换三元组的某个实体。相对负样本来说,正样本打分要更高。损失函数如下:

   1

S 表示正样本集

h,r,t 表示正样本的(头实体,关系,尾实体)

S’  表示负样本集

h’,r,t’ 表示负样本的(头实体,关系,尾实体)

Σ 表示求和公式

[ ]+ 表示max(0,x),即当x大于0x的值,当x小于0,取0

γ 表示正负样本之间的间距,类似于支持向量机中的margin[3]

d(x,y) 表示xy向量的距离,这个距离可以是1范数,式(2)或2范数,式(3)。

2

 (3

       这个损失函数很好理解,当正确三元组的距离越小,错误三元组的距离越大时,整体就会越接近0

[3] 类似于支持向量机,这个方法也是线性分类,是将正样本和负样本点在空间中尽可能离得远,度量方法先画一条直线将两类点分开,并且使得这条直线距离两类点的间隔(Margin)最大。比如图4:(b)中直线Amargin,要比(c)中直线Bmargin大,因此A直线要比B直线好很多。

4 支持向量机的margin

举例:

这里实体有张三、李四、王五,关系有朋友,仇人,陌生人,其向量初始化为

张三(13-5
李四(-3
45
王五(
2-13
朋友(
357
仇人(
-12-1
陌生人(
2-40

有三对三元组(张三,朋友,李四)、(张三,仇人,王五)、(李四,陌生人,王五),向量表示为:

((13-5),(357),(-345))
((
13-5)、(-12-1)、(2-13))
((
-345)、(2-40)、(2-13))

同时替换部分样本中的实体,(张三,朋友,王五)、(李四,仇人,王五)、(张三,陌生人,王五),以形成负样本,向量表示为:

((13-5),(357),(2-13))
((
-345)、(-12-1)、(2-13))
((
13-5)、(2-40)、(2-13))

进行损失计算,假设我们用2范数,

正样本:

 负样本:

 

 γ=2

通过梯度下降法更新之前随机生成的向量,最后最小化损失。

三、缺点

       不适合一对多、多对一、多对多,会出现冲突映射,一个实体在不同三元组内的表示融合,导致不明确甚至错误的语义信息。

举例:

5 transE不支持一对多示例

       如图5hr不变,h+r不变,当h+r分别趋向于t1t2t3t4的时候,致使t1t2t3t4无限接近,实际上四者分别独立。


http://www.ppmy.cn/news/42111.html

相关文章

工作中英语学习的几个阶段

1. 学习英语的几个阶段 在汽车行业中,英语是一种重要的工作语言。为了更好地掌握这个行业,我们需要了解英语熟练度的几个等级。英语熟练度通常被分为以下几个等级: 初级水平:能够理解常见的日常用语和简单的句子。在沟通中需要依…

【Vue】学习笔记-事件处理

事件的基本用法 使用v-on:xxx 或xxx 绑定事件,其中xxx是事件名事件的回调需要配置在methods对象中,最终会在vm上methods中配置的函数,不要用箭头函数,否则this就不是vm了methods中配置的函数,都是被vue所管理的函数。…

Amazon 中国区配置 PingIdentity 身份集成实现 Redshift 数据库群集单点登录

无疑使用单点登录 (SSO)访问组织中的多种应用程序能够提升用户体验 。 如果您负责为 Amazon Redshift 启用 SSO,则可以使用 ADFS、PingIdentity、Okta、Azure AD 或其他基于 SAML 浏览器的身份提供程序设置 SSO 身份验证。 这篇文章向您展示了如何将 PingOne 设置为…

Redis篇之五大数据类型

1、五大数据类型 4.1、String(字符串) String是Redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value String类型是二进制安全的。意味着Redis的string可以包含任何数据。比如jpg图片或者序列化的对象…

【Java实验】继承

目录 任务一 扩充类 1. 扩充Shape类族,创建椭圆Ellipse类 2. 创建椭圆类的子类Circle类 任务二 创建一个碟包

推荐NLP基础 RNN循环神经网络

NLP概述 Natural Language Processing(NLP, 自然语言处理) 目的:让计算机处理或“理解”自然语言,以执行语言翻译和问题回答等任务;最终 来讲就是构建机器语言和人类语言之间的沟通桥梁,实现人机交流为最终目的。 常见应用&…

Segment Anything文章要点

核心方法: 1. 数据 Unfortunately, there is no web-scale data source for segmentation; to address this, we build a “data engine” 没有大规模的数据源用于分割; 为了解决这个问题,我们构建了一个“数据引擎” We iterate between using our efficient mo…

Java并发篇二

ForkJoin 在JDK1.7,并行执行任务,提高效率,大数据量才会使用 特点:大任务拆分成小任务,工作窃取,里面维护的是双端队列 package com.kuang.forkjoin;import java.util.concurrent.RecursiveTask;/*** 如…