知识图谱评价指标hit@n、MR

本文详细介绍了知识图谱链接预测中常用的评估指标,包括Mean Reciprocal Rank (MRR)、Mean Rank (MR) 和 Hit@n。MRR衡量的是正确答案在排序列表中的平均倒数排名,值越大越好;MR则是正确答案的平均排名,值越小越好;Hit@n则关注正确答案是否出现在排名前n的位置,比例越大表示模型性能越好。这三个指标在评估知识图谱完成任务时具有重要意义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MRR

MRR的全称是Mean Reciprocal Ranking,其中Reciprocal是指“倒数的”的意思。具体的计算方法如下:
在这里插入图片描述
其中S是三元组集合,i 是三元组集合个数,rank_i 是指第i个三元组的链接预测排名。
该指标越大越好。

我的理解:
对于每个 testing triple,以预测tail entity为例,我们将(h,r,t)中的t用知识图谱中的每个实体来代替,然后通过fr(h,t)【1】函数来计算分数,这样我们可以得到一系列的分数,之后按照降序将这些分数排列。

例如,对于三元组(Jack,born_in,Italy),链接预测的结果可能是:
在这里插入图片描述
【1】例如:transE的fr(h,t)为:
在这里插入图片描述
我们需要知道的是,d越小,说明两者关系越接近,分数也越高,所以f函数值是越大越好,那么在上个排列中,排的越前越好。

现在重点来了,我们去看每个 testing triple中正确答案,也就是真实的t到底能在上述序列中排多少位,比如说t1排100,t2排200,t3排60…,(上边的例子里这一条三元组t1排第二名)之后对这些排名求倒数再求平均,MRR就得到了。

MR

Mean rank 具体计算方式如下:
在这里插入图片描述
上述公式涉及的符号和MRR计算公式中涉及的符号一样。该指标越小越好。

我的理解:
对于每个 testing triple,以预测tail entity为例,我们将(h,r,t)中的t用知识图谱中的每个实体来代替,然后通过fr(h,t)函数来计算分数,这样我们可以得到一系列的分数,之后按照升序将这些分数排列。

Hit@n

该指标是指在链接预测中排名小于n的三元组的平均占比。具体的计算方法如下:
在这里插入图片描述

我的理解:
比如hit@10
还是按照上述进行f函数值排列,然后去看每个testing triple正确答案是否排在序列的前十,如果在的话就计数+1
最终 排在前十的个数/总个数 就是Hit@10

该指标越大越好

注意

MRR和HITS@10是两个重要指标,不可缺少。MR则不被认为是一个好的指标。

### 无监督知识图谱的评估方法和性能指标 对于无监督知识图谱而言,其评估主要依赖于内在质量评价而非外部标注数据。这涉及到多个方面的考量: #### 1. 结构一致性验证 通过衡量节点间连接模式是否遵循特定领域内的常识或已知规律来判断知识图谱的质量。例如,在医学知识图谱中,“药物A治疗疾病B”的关系应当合理存在。 #### 2. 聚类有效性指数(Clustering Validity Index, CVI) CVI 是一种常用的内部度量标准,适用于检测聚类结果的好坏程度。它能够反映簇内紧密性和簇间分离性的平衡状态。具体来说,Silhouette Coefficient 和 Davies-Bouldin Index 都是非常受欢迎的选择[^3]。 ```python from sklearn.metrics import silhouette_score, davies_bouldin_score def evaluate_clustering(data_points, labels): sil_coefficient = silhouette_score(data_points, labels) db_index = davies_bouldin_score(data_points, labels) return { "silhouette": sil_coefficient, "davies-bouldin": db_index } ``` #### 3. 嵌入空间可视化(Embedding Space Visualization) 利用降维算法(如t-SNE 或 UMAP),可以将高维度的知识表示映射到二维平面上以便观察相似对象间的分布情况。这种方法有助于直观理解模型学习到的信息结构并发现潜在异常点[^2]。 ```python import umap.umap_ as umap import matplotlib.pyplot as plt reducer = umap.UMAP() embedding = reducer.fit_transform(embeddings_matrix) plt.scatter(embedding[:, 0], embedding[:, 1]) plt.show() ``` #### 4. 新颖性(Newness)与覆盖率(Coverage) 这两个指标用来量化新加入的事实相对于已有事实的比例以及整个图覆盖了多少真实世界中存在的实体/关系组合。较高的新颖性和广泛的覆盖面意味着更好的表达能力[^1]。 #### 5. 描述逻辑系统的完备性检查 依据描述逻辑理论框架下的定义,确保所有概念、角色及其相互作用都得到恰当表述,并且不存在矛盾之处。这对于维护知识库的一致性和可靠性至关重要[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值