知识图谱-KGE-语义匹配-双线性模型-2019:TuckER

news2024/11/15 10:59:32

【paper】 TuckER: Tensor Factorization for Knowledge Graph Completion
【简介】 这篇文章是英国爱丁堡大学的研究者发表于 ICML 2019 上的文章,提出了 TuckER,是一个线性的张量分解模型,对表示三元组事实的二值张量做 Tucker 分解。

背景知识

本模型基于 1966 年 Tucker 提出的 Tucker decomposition,它将一个张量分解为一个 core tensor 和一组矩阵相乘的形式,可以被视为一种高阶 SVD 的形式,在矩阵是正交的和 core tensor 是“all-orthogonal(全正交)”的 special case 下。

文章声称 TuckER 是 fully expressive 的,这个词也在很多文章中见过,这里解释了它的含义:

对于给定的 golden triplet,一定有 embedding 各维度值的分配方法,使其与负样本分开。

TuckER 可以视为各种 bilinear model (RESCAL、DistMult、ComplEx、SimplE)的通用情况。

Related Work 中介绍了几大 bilinear 模型的方法和打分函数。

Tucker 分解:

一篇博客里介绍得很清楚,贴在这里好了:TuckER:Tensor Factorization for Knowledge Graph Completion_三石说的博客-CSDN博客_tensor factorization

模型

TuckER 对三元组的打分函数:

文章说,TuckER 的优势在于没有将所有的知识编码到 embedding 中,一些被储存在 core tensor 中,通过 multi-task learning 在实体和关系中共享。(不太理解。。。)

将上式计算出的三元组得分输入到 sigmoid 函数中,得到一个概率值,然后计算 loss(伯努利负 log-likelihood loss):

上面博客中的博主研读了代码:

在看代码之前,我认为这个评分函数是对整个三元组的评分,实际上代码中并不是这个意思。前向传播计算输出的是,一个矩阵,大小为(batch,len(entity)),输入的是一个batch的头实体和关系,相当于是在预测尾实体出现在每个位置的概率值。然后将这个概率值同目标位置组成的矩阵(正确位置为1)计算loss(可以理解为二分类问题)

理论分析

和 Rescal 的关系

Rescal 的打分函数是这样的:

少了一个矩阵 B,关系矩阵就是 core tensor ZZ 的 slice。

表示非对称关系

对称关系训练出的矩阵是对称的,非对称关系的矩阵是非对称的。

实验

在四个数据集(FB15k、FB15k-237、WN18、WN18RR)上进行了实验。

【code】 https://github.com/ibalazevic/TuckER

这个代码是用 PyTorch 实现的,看起来很简洁的样子,有时间的话真想好好学习一下,试着跑一下,but我没有。。。

双线性模型(六)(CrossE、RotatE、TuckER) - 胡萝不青菜 - 博客园

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

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

相关文章

python中nmupy获取本地数据和索引

1. numpy读取数据 可以使用numpy中的loadtxt进行数据读取,所包含的参数如下 参数名解释frame文件,字符串等也可以是.gz或bz2压缩文件dtype数据类型,即CSV中字符串以什么数据类型读入数组中,默认是np.floatdelimiter分隔字符串&a…

CAS:2379387-10-5;TPE-丙烯酰胺;AIE聚集诱导发光

英文名称:2-Propenamide,N-[4-(1,2,2-triphenylethenyl)phenyl]- 英文同义词:2-Propenamide,N-[4-(1,2,2-triphenylethenyl)phenyl]- CAS号:2379387-10-5 分子式:C29H23NO 分子量:401.5 结构式: AIE聚集诱导发光材料的特点: 1.在固态下有强发光特性&…

Typecho-handsome主题如何统计全站字数

💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后…

phpstudy2020安装及简单使用教程

phpstudyV8.0以上使用教程 简介安装步骤配置搭建网站自己的第一个PHP程序 最新版长这样 简介 按我的理解,phpstudy是一个集成式的PHP运行环境,虽然是个软件,但他实现的功能就是给PHP语言编写的脚本赋予一个可执行的环境,可以…

GPR(高斯过程回归)

写在前面:   本文为科研理论笔记的第三篇,其余笔记目录传送门: 理论笔记专栏目录 介绍结束下面开始进入正题: 1 高斯分布 ​   一元高斯分布的概率密度函数为: p(x)1σ2πexp⁡(−(x−μ)22σ2);简写为&#xff…

Lecture2:损失函数及优化

目录 1.损失函数 1.1 支持向量机SVM 1.1.1 SVM的代价函数及优化目标 1.1.2 如何理解将SVM成为大间距分类器 1.1.3 大间距分类器的数学原理 1.1.4 SVM核函数(构建非线性分类器) 及控制点的选择 1.1.5 构建自己的SVM 1.2 softmax分类器 1.3 soft…

06-07-08 - 突破512字节的限制

---- 整理自狄泰软件唐佐林老师课程 1. 突破限制的准备工作 辅助函数 字符串打印软盘读取内存比较根目录区查找 1.1 字符串打印 问题: 主引导程序中如何进行字符串的打印? 1.1.1 BIOS中的字符串打印 指定打印参数(AX 0x1301&#xff0…

Web大学生网页作业成品:个人博客主页 (纯HTML+CSS代码)

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

HUST编译原理实验2

语法分析,建立并显示语法树 以识别 a 10.01; 为例,阐述语法分析的构造过程 1. 建立AST储存结构 由a 10.01得知,语法构成为: SentenceList->Sentence->Exp SEMI->ID ASSIGNOP FLOAT SEMI因此,需要储存结构如下 typ…

Java数据结构与Java算法学习Day10---图的了解和无向图(简略笔记记录)

目录 1.1图的定义及分类 142 1.2无向图 143 1.2.1图的相关术语 143 1.2.2无向图的存储结构 144 1.3图的API设计 145 1.4图的搜索 146 1.4.1深度优先搜索 146 1.4.2深度优先搜索API设计 147 1.5广度优先搜素 149 1.5.1广度优先搜索API设计及代码实现 150 1.5.2广度…

QT 系统学习 day04 事件(鼠标,键盘), UDP 通信, TCP 通信,多个定时器,重写绘画事件

1. 事件 (有 键盘按下, 鼠标按下, 鼠标双击等) 1.重写键盘按下事件, 函数: void keyPressEvent(QKeyEvent *event) /*** 按键按下事件 ***/ 代码: void keyPressEvent(QKeyEvent *event) /*** 按键按下事件 ***/{q…

【吴恩达机器学习笔记】十五、大规模机器学习

✍个人博客:https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 📣专栏定位:为学习吴恩达机器学习视频的同学提供的随堂笔记。 📚专栏简介:在这个专栏,我将整理吴恩达机器学习视频的所有内容的笔记&…

低代码开发平台——体验系统的重要性

什么是优秀的体验? 简而言之,优质的体验意味着可以随时随地根据客户的需求提供服务,这在数字化的世界中,意味着真正的多重体验。Gartner早在2018年就定义了MXDP(多体验开发平台),以应对我们日常…

游戏开发38课 unity 模板测试

ShaderLab 命令:模板 配置与 GPU 上的模板缓冲区相关的设置。 模板缓冲区为帧缓冲区中的每个像素存储一个 8 位整数值。为给定像素执行片元着色器之前,GPU 可以将模板缓冲区中的当前值与给定参考值进行比较。这称为模板测试。如果模板测试通过&#xff…

liunx如何重启mysql

Linux如何重启MySQL Linux中重启MySQL可以使用service mysql restart命令和脚本启动方式/etc/inint.d/mysql restart。 推荐:MySQL教程 其他命令如下: 一、 启动 1、使用 service 启动:service mysql start 2、使用 mysqld 脚本启动&am…

使用redis做分布式锁

思路步骤 获取锁, 使用 SETNX 命令设置一个key.如果没获取到,从新拿锁,返回步骤1 ; 从新拿锁可以设置等待时间;也可以记录拿锁次数为了做“避免死循环”.如果获取到,使用 EXPIRE 给锁加存活时间;接步骤3,执行业务&…

微机----------------中断控制器8259A(可编程的中断控制器)

目录 功能8259A的引脚8259A的工作方式中断响应顺序8259A的中断优先级管理8259A中断屏蔽管理⭐8259A的中断结束管理功能 ①单片825能管理8级中断,并且可级联管理64级 ②可对任一级中断单独屏蔽或允许 ③中断被响应后,可直接提供中断类型号 ④可通过编程选择其工作方式 IRR中断…

C++入门篇

入门C命名空间命名空间定义命名空间的使用C输入,输出缺省参数缺省参数概念缺省参数分类函数重载函数重载概念C支持函数重载的原因引用引用概念引用特性具体应用const修饰的常量进行引用(常引用)传值,传引用的效率引用和指针的区别…

【无标题】3 GENERIC语句 和 INTEGER类型

【VHDL】【作业】3 GENERIC语句 和 INTEGER类型 文章目录【VHDL】【作业】3 GENERIC语句 和 INTEGER类型前言什么是GENERIC语句?32位加法器仿真波形总结每天进步一点点 笔记仅供自学,用来回看复习,不一定适合你,如有错误请指出。前…

SpringBoot:概述

Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用 Spring 的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。 ~ 本篇内容包括:Spring Boo…