知识库构建前沿

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

知识库构建前沿:自动和半自动知识提取

编者按:在过去几十年,人们曾尝试采用直接编辑知识、利用大众智慧、自动或半自动知识抽取三类方法来构建知识库。随着时代发展,直接编辑知识由于受时间和经济成本的约束,这种方式很难实现大规模知识库的构建。而利用大众智慧是指利用互联网众包机制,过于依赖激励机制将降低知识库运行稳定性。微软亚洲研究院主管研究员史树明在本文中重点讨论第三类方法——自动或半自动知识抽取,其基本思想是设计自动或半自动的算法,从现有的(自然语言)文档中提取知识。这个过程又被称为信息提取,定义为从非结构化和半结构化文本中提取结构化信息。

微软亚洲研究院主管研究员史树明

正如动物依靠对环境和食物的认知来维持生存、人类依靠知识和技能来扮演社会

角色一样,计算机应用程序和系统也依赖特定的“知识”来完成特定的功能。近些年,包括互联网搜索系统、自动导航系统、自动问答系统、机器翻译系统、语音识别系统等在内的智能系统取得了巨大进展,其背后是更深、更广、更新和更加准确的知识库的构建和使用。

人类通过五官来获取知识,并通过语言和文字来实现知识的交流、共享和传承,由此建立起人类庞大的知识体系。然而,这些丰富的知识并不能够被计算机系统自然而直接地使用,原因在于当前的计算机程序远未达到理解自然语言和洞悉人类智慧的程度和水平(甚至不少人怀疑这一天能否到来)。而我们又确实需要计算机系统能够具备一些知识,以便在不威胁到人类生存的前提下帮助人类完成一些“高级”任务。因此,我们的目标便自然地设定为以合理的代价构建一个尽可能丰富、准确和与时俱进的知识库。

在过去几十年,人们曾尝试采用直接编辑知识、利用大众智慧、自动或半自动知识抽取三类方法来构建知识库。

直接编辑知识是指知识编辑人员把自己头脑中的知识写成计算机能够处理的格式,例如把“狗是一种动物”写成“IsA(狗,动物)”。在这种情况下,知识的编辑工作通常由从事知识库构建的研发人员或者数据标定人员来完成。受时间和经济成本的约束,这种方式很难实现大规模知识库的构建。利用大众智慧是指利用互联网众包机制,把知识编辑工作交给成千上万的互联网志愿者大军,知识库Freebase的维护就依赖于这种机制。众包的核心是设计合理的激励机制,使互联网用户利用业余时间向知识库贡献一些信息。本文重点讨论第三类方法——自

动或半自动知识抽取,其基本思想是设计自动或半自动的算法,从现有的(自然语言)文档中提取知识。这个过程又被称为信息提取,定义为从非结构化和半结构化文本中提取结构化信息。由于抽取算法的选择往往依赖于所要进行的知识提取任务,因此我们首先介绍知识类型和提取任务。

知识类型和知识提取任务

当前多数智能系统所涉及到的主要知识基本上可以表示为一个包含多种不同类型的结点和边的知识图以及图结点之间的关系集合。图1 展示了一个简单的知识子图,而表1 则列举了此子图上一些结点之间的关系。

1.知识类型

知识图中可能包含三类结点:

实体如某一个人物、某一个国家、某一个机构、某一条狗、某一种编程语言、某一个学科等。图1 中的实体包括E1、E2 和E3。

语义类一种类型的实体或一些实体的集合,如国家、亚洲国家、动物、山脉等。图1 中C1、C2、C3 为语义类。

文本通常作为实体和语义类的名字、描述等,如图1 中的T1~T4。

知识图中结点之间的边的类型包括:

实体—语义类从一个实体指向它所属的语义类。此类型的边在图1 中标记为“类”。

子类—父类从一个语义类指向其父类,在图1 中用“超类”来标识。

属性从一个实体指向它的属性值。不同的属性类型对应于不同类型的边,如图1 中“出生地”和“妻子”是两种不同的属性。所有实体和语义类都拥有一个特殊的属性“名字”,它指向文本类型的结点,表示此实体或语义类的名字或自然语言表达(如中文名、英文名等)。

对于“关系”,维基百科给出了很好的定义和描述,即关系是一个函数,它把k 个点映射到一个布尔值。例如,假设关系R(X, Y, Z) 表示“X 认为Y 喜欢Z”,则当且仅当“张三认为李四喜欢王五”时,R( 张三, 李四, 王五)=TRUE。

如果把上述定义直接运用到知识库上,关系则是一个把k 个图结点(实体、语义

类或文本结点)

映射到布尔值的函数。值得注意的是,有一类特殊的关系叫做事件,其特点是函数参数中包含时间,并且对应于一个或多个动作1。属性也可以看作是一种特殊的(二元)关系,即从实体和属性值到布尔值的映射。

2.权重的重要性

在知识图的结点和边上附加合适的权重对于上层应用至关重要。结点权重的重要性类似于互联网搜索中的网页等级,它通常标识着结点出现的频度或结点的先验概率。而将边的权重和结点的权重结合起来可以用来计算在给定一个结点的情况下其它结点出现的后验概率。例如在图2中,如果边和结点的权重都是合理的,上层应用就可以知道,对于实体E1 来说,“苹果”比“明目果”更常见,在文章中提到“苹果”时,在更多的情况下是指E1 或E2 而不是E3 或E4。权重信息通常需要通过自动或者半自动统计的方法而不是通过人的编辑而得到。

3.知识提取任务

知识提取的主要任务就是构建知识图以及生成图结点间的关系,具体子任务包括:实体名提取提取实体名并构造实体名列表。

语义类提取构造语义类并建立实体(或实体名)和语义类的关联。

属性和属性值提取为语义类构造属性列表,并提取类中所包含实体(或实体名)的属性值。

关系提取构造结点间的关系函数,并提取满足关系的结点元组。

4.知识提取方法

知识提取方法的典型输入是自然语言文本(如句子)或带标记的自然语言文档(如网页、搜索引擎查询日志等),输出是知识图的子图或者关系集合的子集。针对每一种知识提取任务,都有大量的方法被提出来。本文重点选取了简单、有效、扩展性良好的方法,而避开那些看上去似乎很有技术含量实则堪称“鸡肋”的方法。

5.

6.实体名提取

实体名提取的任务是构建一个词表,词表中主要包含实体名(如“中国”),同时也包括语义类的名称(或称类型名,如“国家”)。常见的词表构建方法有:从百科类站点中提取,从垂直站点中提取,利用模式从网页和句子中提取,以及利用命名实体识别(named entity recognition, NER)技术从自然语言句子中提取。

最简单的方法是从百科类站点(如维基百科、百度百科、互动百科等)的标题和链接中提取实体名。这种方法的优点是能够得到开放域上几乎所有类型的最常见的实体名,其缺点是对于中低频实体的覆盖率较低。相比而言,针对某些垂直网站而特别设计的抽取算法则可以在特定类型和领域上实现很高的覆盖率。例如,

相关文档
最新文档