transE评价方法

Posted by Sunder on August 14, 2016

本文介绍transE的评价方法。

我们得到每个实体和关系的embedding之后,如何评估这些学得的embedding的质量呢?这里介绍一个评估方法—Link prediction。这个方法不仅可以用于评估transE,但凡是评估embedding的质量,都可以用这个评估方法。

基本的评价过程

假设整个知识库中一共有n个实体,那么评价过程如下:

  • 将一个正确的三元组a中的头实体或者尾实体,依次替换为整个知识库中的所有其它实体,也就是会产生n个三元组。
  • 分别对上述n个三元组计算其能量值,在transE中,就是计算h+r-t的值。这样可以得到n个能量值,分别对应上述n个三元组。
  • 对上述n个能量值进行升序排序。
  • 记录三元组a的能量值排序后的序号。
  • 对所有的正确的三元组重复上述过程。
  • 每个正确三元组的能量值排序后的序号求平均,得到的值我们称为Mean Rank。
  • 计算正确三元组的能量排序后的序号小于10的比例,得到的值我们称为Hits@10。

上述就是评价的过程,共有两个指标:Mean Rank和Hits@10。其中Mean Rank越小越好,Hits@10越大越好。

改进

但是上述过程存在一个不合理的地方:在将一个正确的三元组a的头或者尾实体替换成其它实体之后得到的这个三元组也有可能是正确的,在计算每个三元组的能量并排序之后,这类正确的三元组的能量有可能排在三元组a的前面。但是上面所说的基本评价过程并没有考虑这点。因此我们把上述基本评价过程得到的结果称为Raw Mean Rank和Raw Hits@10,把改进方法得到的结果称为Filtered Mean Rank和Filtered Hits@10。

为了更好的评价embedding的质量,我们对上述方法进行改进。

  • 将一个正确的三元组a中的头实体或者尾实体,依次替换为整个知识库中的所有其它实体,也就是会产生n个三元组。
  • 分别对上述n个三元组计算其能量值,在transE中,就是计算h+r-t的值。这样可以得到n个能量值,分别对应上述n个三元组。
  • 对上述n个能量值进行升序排序。
  • 记录三元组a的能量值排序后的序号k。
  • 如果前k-1个能量对应的三元组中有m个三元组也是正确的,那么三元组a的序号改为k-m。
  • 对所有的正确的三元组重复上述过程。
  • 每个正确三元组的能量值排序后的序号求平均,得到的值我们称为Filtered Mean Rank。
  • 计算正确三元组的能量排序后的序号小于10的比例,得到的值我们称为Filtered Hits@10。

评价的基本内容基本介绍完了。后面介绍如何用TensorFlow实现。


Creative Commons License
This work is licensed under a CC A-S 4.0 International License.