资讯详情

知识图普嵌入技术的极简教程:KGE以及如何计算它们

图片是我最喜欢的数据结构之一。它们可以让我们表达复杂的现实世界网络,如快速交通系统(如公交道路、地铁等)、区域或全球空中交通,或人们的社交网络。而且它们非常灵活,很容易被人类理解,但为了让计算机理解和学习它们,我们需要额外的一步(称为矢量化)。 这个解释可能太简单了,我们将在我的后续部分详细解释。

知识图谱有什么特别之处?

为了轻松理解知识图和其他图的区别,我们想象一个不同层次的游戏,随着游戏的深入,每个层次都会变得困难。

Level 1:可以是一个简单的无向图,比如大学里的朋友,朋友是节点,朋友之间的关系是边缘。这里我们只有节点和边缘,没有什么太花哨的。

Level 2:在上一层的基础上添加一层信息,如方向,以便我们得到一个方向图。一个简单的例子是城市范围内的公共汽车网络。公共汽车站被视为节点,公共汽车路线被视为边缘,每辆公共汽车从一个车站移动到另一个车站,这是为了增加方向信息。

Level 3:我们使用向图,并向节点和边缘添加各种属性。想象一下互联网上的社交网络,节点上的属性是基于用户的社交网络类型。例如,它可以 Twitter、Facebook 或 YouTube。边缘属性可以是不同用户之间的互动类型,即关注(在 Twitter 在情况下)、朋友或关注(在 Facebook 在条件下)和订阅(在 YouTube )。图的有向性在这里开始发挥作用,因为上面这些属性只能是单向的(相互关注就是有两条边)。例如,你可以注意 Elon Musk,但他可能不在 Twitter 关注你,这是一个方向的边缘。

Level 4:在上一级的图中,不使用节点和边缘,而是使用三元组表示:三元组是知识图谱的构建块,由 3 由元素组成的元组,即源节点(头)、关系和目标节点(尾)。

这就是我们所说的知识图谱,源节点和目标节点有时也被称为实体。

知识地图一词的使用有点模糊,因为知识地图没有固定的定义。从广义上讲,任何包含一些知识/重要信息的大地图都可以称为知识地图。这里的关键是我们将三元组作为知识地图的基本组成部分。

嵌入知识图谱的方法

使用图作为机器学习算法的输入是必要的,因为向量化或嵌入(物理数字表示和图之间的关系表示)。我们对知识图的处理方法不同于其他机器学习模型,因此我们需要不同的技术来学习它们的数值表示(或嵌入)。生成知识图嵌入 (KGE) 有很多方法,我们致分为 3 个部分:

生成嵌入时使用基于距离的函数(在欧几里得空间)。我们可以建立一个简单的算法使头向量和关系向量的组合等于尾向量。它可以表示为 h r ≈ t。这种算法叫做 TransE。还有其他版本的算法,但很少修改。一些例子包括 TransH、TransR、TransD、TransSparse 和 TransM。

该技术提出的初始算法是基于张量分解的想法 RESCAL。三向张量以 n x n x m 其中,形式定义 n 实体的数量,m 是关系的数量。张量保持值 1 表示实体之间存在关系, 0表示不存在。

嵌入是通过分解这个张量来计算的。但是对于大图来说,这通常是非常耗时的,所以有很多基于 RESCAL 理念的 DistMult、HolE、ComplEx 和 QuatE 算法优化解决计算量问题。

神经网络现在在很多领域都很流行,用于搜索KGE这很正常。Semantic Matching Energy它定义了一种能量(energy )通过使用神经网络元组分配一个值的函数。神经张量网络(Neural Tensor Network)使用能量函数,但用双线张量层代替神经网络的标准线性层。

像 ConvE 这种卷积神经网络以图像的形式重塑实体和关系的值表示,然后利用卷积滤波器提取特性,学习最终嵌入。我们也可以找到它 GAN 启发模型(例如 KBGAN)和基于 Transformer 例如 HittER)来计算KGE。

我们有多个算法来实现这些算法 python 库,例如:

  • LibKGE
  • PyKEEN
  • GraphVite
  • AmpliGraph

KGE 算法的结构

构建算法有一些共同的基本思想来计算KGE。以下列出了一些想法:

这是在知识图中产生否定或损坏三元组的概念。负三元组不属于原图的三元组。这些可以随机生成,也可以通过伯努利负采样等策略生成。

它是一个包装三元组的函数,输出一个值或一个分数。如果分数高,三元组是有效的。如果分数低,则为负三元组。评分函数是构建的 KGE 算法的重要组成部分之一。

由于算法是根据优化问题建模的,我们在训练过程中使用了损失函数。损失函数使用正负三元组的分数来计算损失。我们的目标是尽可能减少损失,优化器必须是减少损失的过程。

一般情况下,损失函数包括损失函数——Cross entropy loss, Pairwise margin-based hinge loss等。

生成嵌入后的下一步是什么?

学习 KGE 找到嵌入式算法并应用它们是非常有趣的。下一步是什么?嵌入的目的是什么?

知识图谱中可以应用一些下游任务,例如:

这也被称为链接预测,我们的目标是预测知识图中缺失的关系或潜在的可能关系。它也可以被称为知识图增强。 这个任务可以归结为找到一个事实,它可以最好地表达给定的关系和实体。简言之,任务是猜测 (?, r, t) 或 (h, r, ?) 缺失的部分也可以分别称为头部预测或尾部预测。我们使用基于等级的评估技术来找到嵌入我们知识图的性能。

这是一个识别给定三元组是否有效的问题,即它是正三元组还是负三元组。这项任务的输出只有是否。使用评分函数并设置阈值将正三元组与负三元组分开。一般来说,这是一个二元分类的问题。

推荐系统是KEG应用的一个重要领域。嵌入的质量对上述任务的性能和准确性非常重要。这些任务的结果告诉我们是否可以生成高质量的嵌入。

https://www.overfit.cn/post/0248ec021912474a9de9be2ab287c33a

作者:Rohith Teja

标签: 风门开闭状态传感器kge22

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台