查看原文
其他

知识图谱技术:Probase概率性概念图谱与NELL实时知识库学习系统总结

刘焕勇 老刘说NLP
2024-10-08

在前面的文章中,我们介绍了以bigcilin、CN-probase为代表的确定性上下位概念图谱项目,以及openie系列的开放知识图谱构建项目。

本文,将继续围绕这两个点,进一步介绍Probase概率性概念图谱以及著名的NELL实时知识库的构建方法。

一方面,就概率性概念图谱而言,当前的知识,都严格地认为知识库应该提供标准的、定义良好的和一致的可重用信息,但对于概念而言,这显然未能反映真实情况,因为概念本身就是很主观且模糊的,例如,什么是大公司、什么是美丽的城市并没有明确的界限。此外,通过机器自动化获取概念上下位的方式并不能严格梳理出一致性的分类标准,常常会引入错误和不一致问题。Probase概率性概念图谱对此作出了一个探索性的工作;

与openiex相比,NELL的输入包括预定义的关系类型、关系类型、对应的模式集合以及对应的少量样例,目前已经积累了2,810,379个知识库,其中包括1,186个不同类别和关系的断言实例,对其进行剖析,对于理解这种实时学习系统有重要作用。

一、Probase概率性概念图谱

Probase(A Probabilistic Taxonomy)是微软提出的一个大规模概念知识图谱,包含5,401,933个概念,12,551,613个实例,87,603,947条IsA三元组。利用该图谱,可以将实体映射到不同的语义概念,并根据实体文本内容被标记上相应的概率标签。

如“甲骨文市值很高”中的“甲骨文”这个词会映射到“大公司”、“硅谷巨头”、“古代文字”、“埃里森”等概念,根据微软知识图谱对“市值”的定义以及所用在的场景,再结合“甲骨文”,结合概率标签可计算出这里的甲骨文指的是“硅谷巨头”这一概念而非“古代文字”。

1、Probase的由来

Probase主要是受当前分类体系数据规模以及扩展性太差两个方面而提出的。

一方面,在分类体系数据规模上。目前,在关于知识的分类上,已经出现了关于特定领域分类体系的工作(如Cyc),但出于精确性的要求和技术的成熟度,大多由人工构建而成,这个费力、耗时和昂贵的过程限制了分类法的范围和规模,例如,大约120000个概念的Cyc经过了许多领域知识专家超过25年的持续努力。

为了克服这个瓶颈,虽然一些开放领域的知识库(如Freebase),通过众包的思想,依靠社区共建的方式来扩大规模,但也只是涵盖了几个具体概念(如书籍、音乐和电影),缺乏对许多其他概念的全面覆盖;采用机器自动分类法如(KnowItAll、TextRunner、YAGO和NELL等)虽然已经获取了大量的分类体数据,但在概念空间方面的规模和覆盖范围仍然有限。

另一方面,在分类法对知识体系的扩展性上,当前的知识,都严格地认为知识库应该提供标准的、定义良好的和一致的可重用信息,但对于概念而言,这显然未能反映真实情况,因为概念本身就是很主观且模糊的,例如,什么是大公司、什么是美丽的城市并没有明确的界限。

此外,通过机器自动化获取概念上下位的方式并不能严格梳理出一致性的分类标准,常常会引入错误和不一致问题起,(如通过A is-a B模式很有可能得到一些模糊的结果)。

因此,通过机器自动的方式,从大规模非结构化文本中获取具有概率值的分类数据成为了Probase这一工作的主要内容。

2、Probase的构建

Probase提出了一种通用的概率分类法抽取框架,该框架包括一个从web文本中提取上下位is-a对的迭代学习算法和一个将上下位关系对连接到层次结构中的分类构建算法,从16亿个网页的语料库中自动构建,并达到了92.8%的精度,拥有近270万个概念,是YAGO的8倍,成为概念空间方面最大的分类法。

其中,每个is-a关系边上都包含一个概率值,以衡量其合理性(通过判断给定上下位对的合理性,可以有助于发现错误和整合异构知识源)和代表性(d如苹果大概率是水果,其次是苹果公司,这个有助于后续的概念化和推理操作)。

1)概念对关系模式的获取

与一般的概念上下位获取方式类似,Probase采用了基于句法和语义迭代的方式来实现概念对模板的扩充。其中:

基于句法的迭代使用一组固定的语法模式(Hearst模式)进行匹配抽取,例如采用NP such as NP,}∗{(or and) NP形式,利用词性标注和短语识别,抽取出句子中的名词性短语(NP),并根据其位置以及所在的句法关系模式,抽取出上下位关系对,从“animal such as cat or ”中抽取出(cat, is-a, animal)。

然后再使用这个结果获取更多的句法模式这种句法模式的提取能力有限,有些模式会抽取出许多错误结果,高质量的句法模式很少见。因此,为了保证句法模式的准确性。

基于语义的迭代指在每次获取概念对时,通过计算上位概念和概念实例之间的关系度(如共现次数、PMI值),可以利用这种数值的度量来提高概念上下位的准确性。

2)概念对关系实例的获取

为了保证概念上下位提取的准确性,Probase将上下位关系对获取进一步分成句法抽取、超级概念检测以及子概念检测三个部分。

1.概念对抽取

句法抽取负责检测句子中的候选超概念Xs和候选子概念Ys,例如,要求Xs中的每个元素都必须是复数形式的名词短语,且将所有潜在的子概念都包含在Ys中,在获取子概念阶段,基于使用中的herst模式,使用包括“逗号”(,)、“和”(and)、“或”(or)等在内的连词作为分隔符来提取候选列表。

2.上位概念探测

上位概念探测用于解决在提取过程中出现多个概念的情况,事实上,由于提取模式自身以及实际表述的问题,在抽取过程中,一个句子中通常会存在多个超级概念,即Xs,因此需要从Xs中删除不太可能的超级概念,直到保留一个。而删除的操作,转化为候选概念的排序过程,即计算候选超级概念中的每个概念的得分,取得分最高的作为结果。

在Probase的工作中,通过计算两个超级概念似然比的方法进行排序,其思想在于,超级概念应该和位于该概念下的实例保持较高的相关性,例如,p(动物|猫)的可能性应该比p(狗|猫)高得多。因此,给定两个超级概念x1和x2,通过计算两者之间的似然比,来获取最佳的结果:

为了估计出p(yi|x1)的概率,根据贝叶斯公式,需要统计出p(x1|yi)以及p(x1,yi)的概率,但受限于语料会带来经典的稀疏性问题,p(yj|xi)很有可能为0,为了避免这种情况,设计P(yj|Xi)=ε,其中ε是一个小正数来解决这个问题。

3.下位概念检测

下位概念检测是在得到上位概念后的一个步骤,假设已经从一个句子中识别出了上位概念Xs,要求从候选下位概念Ys中找到它的子概念。通过观察发现,候选子概念越接近模式关键字(如such as),就越有可能是有效的子概念,如果找到子概念都有效的最大范围,那么在这个范围下的所有子概念都应当是正确的。因此,下位检测的任务就变成了找到最佳的范围k,与识别上位概念类似,定义最大似然函数进行抽取。

3)概念体系的构建

在完成概念对的抽取后,可以得到大量的概念对,这些概念对之间处于一种平面的状态,还需要进一步根据根据父子级关系合并成树状的数据结构,接着再由横向或是纵向合并原则将各个子树合并成完整的图谱,这个合并子树的地过程,也就是概念体系构建,如下图所示的集中情况。

图-probase概念体系构建的过程

整个过程可分为局部分类学构建阶段、水平分组阶段和垂直分组阶段,首先从每个句子创建一个局部分类法,然后对根节点具有相同标签的局部分类法执行水平合并给定两个子树,对其进行合并的核心在于计算两个子树的相似度。

4)概念概率量化
在完成概念体系的构建之后,对于一个子概念,通常会有多个上位概念。而如何对这种上位关系进行概率数值化,以解决概念之间的不确定问题,Probase提出了一个概率框架解决这个问题。

该框架计算isA对的联合概率来表示这条关系的真实性以及概念与其实例之间的条件概率来表示典型性。其中:

首先,在联合概率方面,pi可能取决于信息来源的类型,来自《纽约时报》的证据比来自公共论坛的证据更可信;

其次,pi可能取决于在整个抽取过程中证据si时的可信度。probase通过一组特征Fi来描述每个证据si,例如:从中提取si的页面的PageRank得分、si中使用的Hearst模式得分、以x作为超概念的句子数、以y作为子概念的句子数、si中的子概念数、y在si中的位置等等。

最后在这些特征基础之上,运用朴素贝叶斯公式对建模在给定特征下的联合概率进行推导。在训练阶段利用WordNet来建立训练集,给定一对(x,y),如果x和y都出现在WordNet中,并且WordNet中有一条从x到y的路径,则将(x,y)看作成一个正例;如果x和y都出现在WordNet中,但是没有从x到y的路径,则将(x,y)看成一个负例。

3、Probase的总结

关于概念(如人、动物、植物、天体等)的知识以及对知识进行概念化的能力(如猫是动物、苹果是水果)是人类理解认识世界的重要基础,Probase在非确定的概念分类上的归类思想很有借鉴意义。在分类法中容纳和建模概念的不确定性在使用上十分必要,不确定性可以在定量上通过计算实例和概念之间的所属概念进行度量,在定性上可以通过某个概念的具体例子来表示这个概念,这个与wordnet通过适用同义词集合来表示一个概念的思想十分类似。

基于probase这种思想,在实际的工业应用场景中有很大的作用。例如,一方面可以即将模糊的概念具体化为一组最典型的例子,以“中国移动”、“塔塔集团”和“巴西石油公司”来表示“最大的公司”,“中国”、“印度”和“巴西”都可以解释为“国家”、“大国”、“发展中国家”、“金砖四国”或“新兴市场”这几个模糊的概念;另一方面可以对概念进行实例化,给定一个概念,推断其典型和可能的实例,从最大的公司到中国移动、塔塔集团等,此外,也可以进行逆操作,如实例抽象,给定一个或多个实例,推断它们所属的典型和可能的概念,从中国、印度、巴西到新兴市场或金砖四国。

二、NELL永无止境的语言学习者

1、NELL的由来

NELL(Never-Ending Language Learner) 永无止境的语言学习者,是由卡内基梅隆大学从2009年开始开发的一个实时知识库学习系统,该系统通过7*24的机制,基于Bootstrapping思想+间歇性的人工干预的方法,从互联网web这种自动抽取三元组知识。

NELL的输入包括预定义的关系类型、关系类型、对应的模式集合以及对应的少量样例。在最开始的版本中,NELL定义了城市(City)、国家(Country)、运动员(Athlete)、公司(Company)、运动(Sports)、队伍(Team)、经济部门(Economic Sector)、情感(Emotion)等123个概念类别,以及位于(LocatedIn)、总部位于(HeadquarteredIn)等55种关系。

上面两表定义了Company等实体类型、playsSport(arg1,arg2)等关系类型对应的模式结合,每个关系(谓词)的少量标记训练样例。NELL试图根据种子实例在大规模纯文本中学习关系的描述模式,并基于模式获取大量结构化知识。

2、NELL的构建路线

NELL学习的目的包括三个:把名词短语划分到给定类别,将名词短语被映射到概念;分类名词短语之间的语义关系,将动词短语映射到关系;识别新的推理规则,用于发现新的关系实例。

NELL系统通过四个来源来进行知识抽取,包括CPL、CSEAL、CMC、RL,分别输出候选事实对(candidate facts),最后通过知识集成器KI完成高置信度的知识准入,存入到到标准事实(belief)当中,最开始的标准事实为少量标记训练样例,该少量数据参与到四个部分的实际工作中。

1)基于模式的关系实例获取

CPL使用名词短语与上下文模式的共现统计关系来学习实体类别和关系类型的抽取模式,并使用学习到的模式来获取关系实例。为了保证高精度以及避免特殊模式,NELL设定了严格的条件进行处理,例如模式频次至少大于2的模式才能给予保留。具体详细的步骤如下:

步骤1.名词性短抽取。 使用OpenNLP包对句子进行词性标注,并根据设定的构成规则来识别名词性短语。

步骤2.抽取候选类别模式。 根据预先设定好的规则来提取候选类别模式。例如:1.如果该名词短语前面是动词,并且后面跟着一连串的形容词、介词或定语(如'被arg1收购'),将该名词短语的前置词作为候选模式;2.如果该名词短语前面是名词和形容词并且后面跟着一连串的形容词、介词或定语('arg1的前CEO')时,将该名词短语的前置词作为候选模式。

步骤3.关系实例抽取。 如果句子同时包含两个名词性短语,并且满足对应实体类别的要求,那么则将这两个名词性短语抽取形成实体关系对。

步骤4.关系模式抽取。 如果两个名词短语之间满足两个间隔不超过5个字符,包含一个实词、一个非大写词以及至少一个非名词,则将两个名词性短语之间的词语提取为一个候选关系模式。

2)基于互联网搜索的关系实例获取

SEAL(SEAL),采用了借助互联网搜索结果的实例扩充方法。通过对每个类别或关系实例在互联网上进行查询,对返回的页面进行半结构化信息提取,例如进行列表和表格提取,得到相应关系的新实例。

3)基于逻辑回归模型的关系实例分类

CMC(Coupled Morphological Classifier),对每个类别建立一个布尔L2正则化逻辑回归模型,利用单词、大写、词缀、语篇等不同的形态特征来表示名词短语,并对名词短语进行多分类,例如“苹果”可以对应于食物和公司两种类型。

4)基于推理规则的关系实例生成

RL(Rule Learner)模块,进行规则学习,并利用学习到的规则来推断新的关系实例,类似于FOIL中学习概率性的Horn子句,例如下表中所示:

通过athleteInLeague(?x,NBA),某个人如果是NBA球员,那么这个人必定是打篮球的。

5)多源关系实例生成

KI(Knowledge Integrator),通过设定准入条件,如在单一来源中得到的概率值大于0.9,或者概率很低但来自于多个获取来源时,将候选实体转化为标准事实实例。

3、NELL的总结

NELL使用四个子系统组件,以互补的方式学习提取知识。目前,NELL已经积累了2,810,379个知识库,其中包括1,186个不同类别和关系的断言实例。

这种实时知识库系统的思路值得我们借鉴:

一方面,其采用了典型的流水线识别方法,并定义了多种学习任务,先进行名词短语提取,形成名词短语对以及所在的上下文,随后将名词性短语分类到预先定义好的概念类别上;

另一方面,利用名词短语对的类别信息及其上下文信息,对名词性短语对之间的语义关系进行分类;通过计算两个名词性短语是否为同义词来进行实体消歧(采用基于字符串相似度以及事实三元组的相似度),最后,基于事实三元组学习推断规则。

参考文献

1、https://www.microsoft.com/en-us/research/project/probase/
2、https://www.cs.cmu.edu/afs/cs.cmu.edu/Web/People/acarlson/papers/carlson-aaai10.pdf

关于我们

老刘,刘焕勇,NLP开源爱好者与践行者,主页:https://liuhuanyong.github.io。

就职于360人工智能研究院、曾就职于中国科学院软件研究所。

老刘说NLP,将定期发布语言资源、工程实践、技术总结等内容,欢迎关注。


继续滑动看下一个
老刘说NLP
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存