知识图谱笔记:TransE

news/2025/2/22 17:29:39/

1 知识图谱介绍

  • 一条知识图谱可以表示为一个三元组(sub,rel,obj)。
    • 举个例子:小明的爸爸是大明,表示成三元组是(小明,爸爸,大明)。
    • 前者是主体,中间是关系,后者是客体。
    • 主体和客体统称为实体(entity)。
    • 关系有一个属性,不可逆,也就是说主体和客体不能颠倒过来。
  • 知识图谱的集合,链接起来成为一个图(graph)
    • 每个节点是一个一个实体
    • 每条边是一个关系,或者说是一个事实(fact)
      • 有向图,主体指向客体。
  • 正式地,使用(h,r,t)来表示三元组
    • h表示头实体
    • r表示关系
    • t表示尾实体

2 知识表示

  • 知识表示是让知识图谱的实体和关系向量化
    • 将知识库中所有的实体、关系表示成一个低维度、稠密的向量

3 TransE

  • TransE算法认为,一个正确的三元组的embedding(h,r,t)会满足矢量的加法
    • \overrightarrow{h}+\overrightarrow{r}=\overrightarrow{t}

  • 如果是一个错误的三元组,那么它们的embedding之间就不满足这种关系

  • ——>定义一个距离d(\vec x , \vec y)来表示两个向量之间的距离
    • 对一个正确的三元组(h,r,t)来说,距离d(\overrightarrow{h}+\overrightarrow{r},\overrightarrow{t})越小越好
    • 对于一个错误的三元组(h',r,t'),距离d(\overrightarrow{h'}+\overrightarrow{r},\overrightarrow{t'})越大越好
    • 所以目标函数为:
        • S——正确的三元组集合
        • S'——错误的三元组集合
        • γ——正负样本距离的间距(一个常数)
        • [x]+——max(0,x)
        • 通常为了方便训练并避免过拟合,会加上约束条件

 参考内容:TransE算法详解_MonkeyDSummer的博客-CSDN博客


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

相关文章

程序员自由创业周记#8:怎么设计

软件的样子 就像建造房子,工人施工需要照着图纸,没有图纸直接上手施工倒是也可以,只是房子的质量和样子都不敢恭维。程序员在一定意义上与建筑工人很像,只不过他们码砖,我们码码。软件开发之前也需要提前设计好界面&a…

jvm-堆

1.堆的核心概念 一个jvm实例只存在一个堆内存,堆也是java内存管理核心区域 java堆区在jvm启动的时候即被创建,其空间大小就确定了,是jvm管理最大的一块内存空间; 堆可以处于物理上不连续的内存空间,但在逻辑上它应该被…

百亿级访问量,如何做缓存架构设计

说在前面 在40岁老架构师 尼恩的读者社区(50)中,最近有小伙伴拿到了一线互联网企业如阿里、网易、有赞、希音、百度、网易、滴滴的面试资格,遇到一几个很重要的面试题:: 分布式缓存系统,如何架构?百亿级访…

DEAP库文档教程一

DEAP是一个新的用于快速验证和测试新想法的演化计算框架。它致力于直接地构建算法和数据结构的简单化。它可以很好地应用在并行机制中。下面的文档将会展示许多关键概念以及构建你自己的演化算法时的一些特征。 第一步 1、总览(从这里开始) 2、安装 3、如何进入端口?(porting…

java+jsp+servlet+mysql蛋糕商城

项目介绍: 本系统为基于jspservletmysql的蛋糕商城,包含管理员和用户角色,用户功能如下: 用户:注册、登录系统;查看商品分类;查看热销、新品商品;查看商品详情;搜索商品…

小白学Go 基础02-了解Go语言的诞生与演进

Go语言诞生于何时?它的最初设计者是谁?它为什么被命名为Go?它的设计目标是什么?它如今发展得怎么样?带着这些问题,我们一起穿越时空,回到2007年9月Go语言诞生的那一历史时刻吧。 Go语言的诞生 …

时序预测 | Matlab实现CNN-XGBoost卷积神经网络结合极限梯度提升树时间序列预测

时序预测 | Matlab实现CNN-XGBoost卷积神经网络结合极限梯度提升树时间序列预测 目录 时序预测 | Matlab实现CNN-XGBoost卷积神经网络结合极限梯度提升树时间序列预测效果一览基本描述程序设计参考资料 效果一览 基本描述 时序预测 | Matlab实现CNN-XGBoost卷积神经网络结合极限…

linux上vscode中.cpp文件中引入头文件.hpp时报错:找不到头文件(启用错误钵形曲线)

当在.cpp文件中引入系统给定的头文件时&#xff1a;#include < iostream > 或者引入自定义的头文件 &#xff1a;#include <success.hpp> 报错&#xff1a;找不到相应的头文件&#xff0c;即在引入头文件的改行底下标出红波浪线 解决方法为&#xff1a; &#…