Advertisement

机器学习项目(六)医疗知识图谱构建(五)

阅读量:

TransE、TransH、TransR、TransD等图嵌入模型在知识图谱中用于表征实体和关系,但存在共同空间假设、参数爆炸、计算复杂度高等问题。RandomWalk系列算法通过随机游走构建上下文,结合skip-gram学习节点向量,实现图谱中实体和关系的表征。DeepWalk基于深度游走,Node2vec结合广度和深度游走,Struc2vec利用结构信息构建上下文,这些方法在不同场景下有不同的实现和性能表现。尽管这些方法在图谱嵌入中取得了显著进展,但如何平衡计算效率和模型性能仍是一个重要挑战。

图表征学习

TransX系列算法
空间传递不变性
Queen-women+man = king

TransE模型通过为每个实体和关系分配一个向量,使得所有实体和关系在同一个向量空间中进行表示。在这样的空间中,每个正确的三元组(head, relation, tail)都可以通过将头实体通过关系映射到尾实体的位置上。我们定义头实体映射到尾实体的位置后与真实尾实体之间的距离为“势能差”,并优化实体和关系向量,使得所有势能差的总和达到最小。

在这里插入图片描述

存在一个问题
TransE模型虽简单却存在显著局限性,即其仅适用于处理一对一关系。具体而言,当(华科、地点、武汉)与(黄鹤楼、地点、武汉)同时存在于知识图谱中时,TransE模型会将“华科”与“黄鹤楼”这两者之间的向量表示计算得极为接近,然而实际上这两者之间的关联性并不显著。

TransH的实现机制是什么?它是如何处理单对多和多对一的关系场景的?其核心思路是为每个关系r,构建一个对应的投影空间。在此空间内,采用TransE模型进行处理。实体和关系被映射到同一个空间,其中通过投影操作将实体映射到特定关系r对应的子空间中。数学表达式如下:h_{wr} = w^T hw

在这里插入图片描述

TransE和TransH模型都基于实体和关系位于同一语义空间的向量假设,这样具有相似特性的实体会在空间中具有相似的位置特征。然而,由于每个实体可能包含多个属性,而不同关系则关注实体的特定属性,因此TransR方法对每个三元组首先将实体映射到与之相关的向量空间中,然后通过线性变换将头实体向量转换为尾实体向量。实体和关系被分配到独立的向量空间中。

如何实现TransR的工作流程?通过引入一个转换矩阵,可以将实体映射到对应的关系空间中,实现TransE模型的表达能力。具体而言,实体h在关系r下的表示为h_r = hM_r,而关系r对应的尾实体表示为t_r = tM_r

在这里插入图片描述

TransE、TransH、TransR存在什么问题
1.在同一个关系r下,投、尾实体共享相同的变换矩阵,然而,一个关系的头、尾实体的类型或属性可能差异巨大。例如,对于三元组(美国、总统、奥巴马),美国和奥巴马的类型完全不同,一个是国家,一个是人物
2.从实体空间到关系空间的投影是实体和关系之间的交互过程,因此TransR让变换矩阵仅与关系有关是不合理的
3.与TeansE和TransH相比,TransR由于引入了空间投影,使得TransR模型参数急剧增加,计算复杂度大大提高

TransD的运作机制是什么?它通过两个向量来表示每个实体,一个向量用于构建转移空间,另一个向量用于表示语义内容。数学表达式如下所示:
\begin{cases} M_{r h} = r_{p} h_{p}^{\top} + I \\ M_{r t} = r_{p} t_{p}^{\top} + I \end{cases}
其中,h_{\perp}t_{\perp}分别表示经过变换后的头实体和尾实体,其计算公式如下:
\begin{cases} h_{\perp} = M_{r h} h = h_{p}^{\top} h r_{p} + [h^{\top}, 0^{\top}]^{\top} \\ t_{\perp} = M_{r h} t = t_{p}^{\top} t r_{p} + [t^{\top}, 0^{\top}]^{\top} \end{cases}

RandomWalk系列算法在多个空间维度中表征实体间的关系。基于传递不变性特性,该算法能够完成头实体到尾实体的转换。

DeepWalk
DeepWalk系列算法的核心思路在于:在图谱中构建多样化的语境。通过模拟语言模型中的词嵌入方法(如word2vec中的skip-gram模型),学习图中节点的向量表示。
具体做法是:
通过不同游走策略构建多样化的语境,生成有效的向量表示。
将图中的节点模拟为语言模型中的单词,图中的节点序列(通过随机游走生成)模拟为语言中的句子,作为skip-gram模型的输入数据。

RandomWalk如何实现
随机游走:深度游走,广度游走
词向量编码:skip-gram

在这里插入图片描述

Node2vector如何实现
随机游走:深度游走和广度游走基于概率控制

词向量编码:skip-gram

在这里插入图片描述

结构2vec通过随机行走实现节点关系的捕捉机制。具体而言,该方法首先根据不同距离的邻居信息,计算节点对的结构特征;随后,构建多层加权无向图M,其中每层均为加权无向图,层之间存在有向连接关系;最后,在图M中进行随机行走,生成上下文序列。在词向量编码方面,结构2vec采用Skip-Gram模型进行词嵌入学习。

在这里插入图片描述

全部评论 (0)

还没有任何评论哟~