本文主要记录论文《Knowledge Vault: A Web-Scale Approach to Probabilistic Knowledge Fusion》的主要脉络和我当时的心得。主要的部分如下:
这篇论文主要是介绍如何构建一个完整的知识库,主要讲述了作者以FreeBase为基础构建自己的知识库的过程。在讲述过程之前,我们需要了解以下的基本概念:
知识库的核心就是表示知识了,在文章中,知识被表示成为三元组。形式如下:
triples (subject, predicate, object)
实际例子如下:
(/m/02mjmr, /people/person/place_of_birth,/m/02hrh0_)
/m/02mjmr is the Freebase id for Barack Obama,
/m/02hrh0_ is the id for Honolulu
整个系统主要由三大部分组成:
Local closed world assumption (LCWA):
O(s,p) as the set of existing object values for a given s and p.
给定一个(s,p,o),如果(s,p,o) ∈ O(s,p),则它是正确的
如果 (s,p,o) !∈ O(s,p)并且 |O(s,p)| > 0,则它是错误的
如果|O(s,p)| = 0,我们就不打标签并把(s,p,o)扔出训练和测试集
对每个谓词拟合一个二分类器:
输入:含有该谓词的sentences的features和patterns
训练集:根据LCWA进行标注的sentences
备注:features和patterns described in M. Mintz, S. Bills, R. Snow, and D. Jurafksy. Distant supervision for relation extraction without labeled data. In Prof. Conf. Recent Advances in NLP, 2009.
抽取流程如下:
i. 运行一套标准的NLP工具,做命名实体识别,词类标注,依赖分析,co-reference resolution和实体链接,实体链接系统采用与【B. Hachey, W. Radford, J. Nothman, M. Honnibal, and J. Curran. Evaluating entity linking with wikipedia. Artificial Intelligence, 194:130–150, 2013.】类似的方法
ii. 用远程监督训练关系抽取器,方法和特征见【M. Mintz, S. Bills, R. Snow, and D. Jurafksy. Distant supervision for relation extraction without labeled data. In Prof. Conf. Recent Advances in NLP, 2009.】
dom树拟合分类器
输入: we use the lexicalized path (along the tree) between the two entities as a feature vector.
输出:the score of the extracted triples
上面讲了四种方式,最后结果需要合并,比较简单的是为每种抽取器的结果做一个特征向量,然后做一个分类器,来判定到底哪个抽取器的结果是对的。为每一个谓词都拟合了一个分类器。
这个特征向量有两个数字组成:
(1) 抽取这个三元组所用到的源数据的数量的平方根
(2) 抽取三元组用到的所有源数据抽取器打的分的平均分
这里有个问题,文章里面用的原词是“classifier”,翻译为分类器,但是应该是个回归
因为每种抽取器打的分没有必要有一样的标准,我们使用Platt Scaling处理分数
当源数据越多,真三元组的先验概率约趋近于1,假三元组的先验概率越趋近与0.5,但是一直低于0.5
网络上抽取的数据可能是不正确的,我们用Freebase上面已经存在的三元组来拟合一个先验模型,这个模型能够计算任何给定的三元组,即使之前在Freebase里面不存在。下面给出两种算法:
这个算法的详细介绍在【N. Lao, T. Mitchell, and W. Cohen. Random walk inference and learning in a large scale knowledge base.In EMNLP, 2011.】
算法的大值思路是先拿到关系p的实体结合(s集合和o集合),对于每个s,从s开始在图里面随机地walk,如果能够到对应地o,我们就把这个路径记下来,这可以看作是一种规则(rule)。
每一个对都会有很多这样的rule,我们拟合一个二分类器来合并这些路径(得到公共路径)。这个时候我们把一个确定地关系(谓词)p表示为了很多这样地路径,然后再训练一个分类器,以这些路径为特征,来推导谓词p。每个谓词p,都训练一个分类器。
使用神经网络的方式在图上算出某个关系的先验。
同样的要对两种方法做fuse
最后,对整个阶段做fusing,抽取阶段和先验阶段做一个fusing得到最后的置信度。
关于关系p,有一个实体对(s,o),我们也许有四种文档中抽出,我们去拟合一个extractor fusing的分类器,在这四种文档抽取关系过程中得到一些特征向量,最后把这些特征向量放在一起,在这些特征向量上面训练一个权重,得到新的分类器与分类器关于关系p的置信度
关于关系p,对于实体对(s,o),整个置信度的评分过程为: