作者:哈工大SCIR 刘勇杰 姜天文 刘铭
1、《大词林》简介
《大词林》,由哈尔滨工业大学社会计算与信息检索研究中心推出,是一个自动构建的大规模开放域中文实体知识库。相比于人工的开放域实体知识库。《大词林》的构建不需要领域专家的参与,而是基于多信息源自动获取实体类别并对可能的多个类别进行层次化,从而达到知识库自动构建的效果。同时也正是由于《大词林》具有自动构建能力,其数据规模可以随着互联网中实体词的更新而扩大,很好地解决了以往的人工构建知识库对开放域实体的覆盖程度极为有限的问题。
2、构建背景:开放域实体
命名的本质是区分事物,它的历史和人类使用语言的历史一样长久。人类在认识世界的时候,要把一件事物同它周围的其他事物区分开,最简单的方法是给它取一个特有的名字。名字有不同的粒度,如“熊猫”是一种动物共用的名字,而“孙中山”则是一个人名,单一个体专用的名字。这种不同是由于人们对事物的区分需求不同造成的。如人们通常对动物仅需要区分到“种”即可,而无需知道每一个个体的名字;但对人则需要区分到个体,因此每个人都有特定的名字。进一步讲,这种区分上的需求源自于人们对事物的兴趣,兴趣越浓厚,认识越深刻,区分的需求就越强烈,命名的粒度也就越细。
在自然语言处理领域,命名性的指称被称为“命名实体( Named Entity,简称 NE) ”,是承载信息的重要语言单元。 1995 年,命名实体识别( Named Entity Recognition, NER)由第六届消息理解会议( The sixth Message Understanding Conference,简称 MUC-6)第一次引入,主要任务是自动识别出文本中出现的命名性指称和有意义的数量短语并加以归类,包括三大类(实体类、时间类和数字类) 、七小类(人名、地名、机构名、时间、日期、货币和百分比)命名实体。其中时间、日期、货币和百分比的构成有明显的规律,相对容易识别和分类。因此,通常研究者们主要针对人名、地名和机构名这三类命名实体开展研究工作。本文将这三类命名实体称为“传统命名实体”。
虽然传统命名实体被人们在日常写作和交流中频繁用到,但从自然语言处理领域的应用需求看,仅这三个类别是远远不够的。例如,产品名(如:“诺基亚 N97” )、会议名(如:“ 20国集团伦敦峰会” )、疾病名(如:“甲型 H1N1 流感” )、赛事名(如:“南非世界杯” )等在商务、新闻、医药和体育领域的各种应用中也非常重要。因此,一些工作开始在传统命名实体识别之外,进一步研究类别更加广泛的命名实体。这些实体很难由人工预先定义出一个完备的类别体系,称之为开放域实体。
和传统命名实体相比,开放域实体有以下两个主要特点:
(1) 类别更多,且不限定。比如可能的类别包括药品、动物、植物、赛事、会议、菜肴等等,远远多于传统命名实体。而且随着社会的进步,一些新的类别可能出现,因此靠人工难以确定一种固定的完备的类别体系。
(2) 类别更细,且有层次。比如传统命名实体中的机构名可以进一步细分为:学校名、公司名、政府部门名、新闻机构名等;学校名则还可以继续细分为高校名、中学名、小学名等。这些类别通过上下位关系连接,构成一种偏序结构。
由此可见,对于开放域实体,已无法将其类别标定简单地看作分类问题。
近年来,一些学者或机构开始为开放域实体构建知识库,以更好地为信息抽取、信息检索、开放域问答等自然语言处理任务提供支持。其中包含实体类别的知识库有英文的WordNet、汉语的知网( HowNet)以及《同义词词林》等。哈工大社会计算与信息检索研究中心为了扩充《同义词词林》,利用已有的汉语词语相关资源并投入大量的人力和物力,完成了一部具有汉语大词表的《哈工大信息检索研究室同义词词林扩展版》(以下简称《同义词词林(扩展版)》),最终的词表包含 77,343 条词语。
但这些知识库需要领域专家的人工构建,使得构建的过程耗时费力从而无法大规模化,对互联网中海量开放域实体的覆盖程度极为有限。《大词林》正是在此背景下提出,旨在构建一个不需要领域专家的参与,自动获取实体类别并对可能的多个类别进行层次化的知识系统,其数据规模可以随着互联网中实体词的更新而扩大,很好地解决以往的人工构建知识库对开放域实体的覆盖程度极为有限的问题。
3、多信息源的开放域命名实体类别(上位词) 获取
开放域命名实体的类别体系不可预先确定,且同一个命名实体可能属于多个不同粒度的类别,比如“高加索牧羊犬”可能属于的类别包括“狗”、“犬科动物”、“动物”等。命名实体的上位词( Hypernym)指示了其类别,上述的“狗”、“犬科动物”和“动物”都是“高加索牧羊犬”的上位词。目前被广泛使用的人工构建的语义词典中就有这样的上下位关系,比如英语的 WordNet、汉语的知网和同义词词林(扩展版)。但这些词典资源的规模和覆盖范围有限,而人工构建的过程需要大量专业知识,特别费时费力。因此,许多研究者尝试采用自动的方法抽取上位词。本文中也采用上位词抽取的方法来获取开放域命名实体的类别。
以往的上位词抽取研究工作中,常用的方法包括:基于模式匹配的方法、基于统计分布相似度的方法和基于在线百科的方法。基于模式匹配的方法的准确率和召回率都不高,原因是语言表达的灵活性使得模式匹配难免会匹配到错误的上位词,同时模式的覆盖范围也很有限。基于统计分布相似度的方法都基于一个基本假设:下位词的上下文词汇是其上位词上下文词汇的一个真子集。举个例子, “熊猫”的上下文一定也是“动物”的上下文,但反过来,“动物”的上下文不一定都是“熊猫”的上下文,也包括了其他种类动物名称的上下文。但这样的假设太强,并不能够总是成立。基于在线百科的方法是用百科页面中的类别标签和信息框( Infobox)等结构化信息来获取一个词的各种语义关系(包括上位词),因此可以得到较高的准确率,但这种方法会受到百科本身的限制,无法为不在百科中的词找到上位词。
我们受到了人们在遇到未知命名实体时的行为的启发,提出一种简单但有效的弱监督的框架,基于多个来源来挖掘给定实体的上位词列表。当人们听到或看到一个未知的命名实体而想知道它的意思的时候,他们经常用到两种方法:利用已用知识推测;询问或查阅资料。第一种方法,通常是根据命名实体的字面信息猜测其类型和意思,比如看到了“马来西亚航空公司”,容易推测出它是一家公司。第二种方法,在以往人们通常会问知识渊博的人或者查阅图书资料,随着现在互联网上信息的极大丰富,以及搜索引擎技术的成熟,人们往往借助搜索引擎获取想要的知识,对于我们的问题,通常只需要输入命名实体,即可以从搜索返回结果中得到答案。另外,如果搜索结果中包含一些关于这个命名实体的权威网页(比如在线百科、专业领域网站),则浏览这些网页即可获得更准确的信息。《大词林》模拟这个过程,利用来自上述多个来源的证据应用于命名实体类别的挖掘。
具体来说,我们的方法分为两个主要步骤:类别侯选抽取和类别排序( 如图 1 所示)。
第一个步骤, 从多个来源抽取开放域命名实体类别的候选,包括搜索结果中的高频名词或名词短语、在线百科中的类别标签以及命名实体本身的核心词;
第二个步骤, 对这些开放域命名实体类别候选进行排序,采用启发式的方法自动构建训练语料, 训练排序模型来解决此问题。
图1 基于多信息源的开放域命名实体类别挖掘方法框架图
3.1 基于多信息源的开放域命名实体类别候选抽取
给定一个命名实体后,要确定其上位词,一种办法是依次判断词表中所有的词是不是其上位词,但这样做搜索的空间太大,不现实。因此,我们首先抽取上位词的候选,缩小搜索范围,提高效率。我们主要采用 Web 挖掘的方法来获取命名实体类别候选,通过搜索引擎搜索实体,从搜索结果、在线百科页面和实体核心词三类来源获取候选。采用 Web 挖掘的方法的主要优势在于互联网的覆盖领域广且数据海量从而避免数据稀疏情况。
3.2 开放域命名实体类别排序
当我们为每一个实体获取了开放域命名实体类别的候选后,将通过排序模型对这些候选进行排序, 排序模型的训练需要大量命名实体及其类别的标注语料。考虑到人工标注费时费力,我们提出了一种启发式的策略来自动收集训练语料。排序模型算法的选择方面,我们对比了三种模型:基于线性核函数(Linear Kernel) 的支持向量机(Support Vector Machine, SVM) 、基于径向基函数(Radial Basis Function, RBF) 核的 SVM,以及逻辑回归(Logistic Regression),并将三种模型的结果集成作为最终的排序结果。
要训练统计机器学习模型的参数,训练语料是必须的。我们提出一种启发式的方法,利用在线百科来获取语料。首先从百科中抽取实体名,然后按 3.1 节方案抽取类别候选,接着利用以下两个原则获取训练语料:
原则 1: 类别的来源越多越可能是正确的;
原则 2: 类别的先验概率越高,越可能是正确的。
然后,根据这两个原则对候选进行排序,我们选取排在第一位的为正例,最后一位的为反例,如果有并列,则都选作训练语料。按照这个方法,我们获得了大量的训练实例,当然不可避免数据中包含噪声,然后训练统计机器学习模型,包括基于线性核函数的 SVM、基于径向基函数核的 SVM 和逻辑回归模型。
4、实体类别(上位词)的补充及其层次化
虽然基于多信息源挖掘汉语开放域命名实体类别,可以相互验证和相互补充,来提高最终结果的准确率和召回率,但是对于每一个实体来说,它的上位词未必是完备的。通过实际观察数据可以发现大部分实体只是拥有少量的几个上位词,平均来讲,每个词的上位词也只有两个,也就是说,有大量的实体,它的实际上位词比我们自动挖掘出来的要多。开放域实体类别(上位词)补充的内容主要是针对以上现象,使用基于推荐算法的实体上位词补充,来丰富完善实体的上位词。具体思路为: 将实体看做是用户,将上位词看作是商品,现在已知每个用户买过一些商品(对应到我们的上位词自动挖掘系统中也就是每个词有一些上位词), 想要通过其他用户的购买商品情况来推测某些用户还有可能购买什么商品(对应到我们的上位词自动挖掘系统中也就是某些实体还有可能拥有哪些上位词)。
通过以上转化,我们已经将实体上位词的补充问题转化为了商品推荐问题,下面我们通过例子介绍如何使用推荐算法进行实体上位词的补充。例如,对于一个实体“草莓”来说,它有两个上位词:“农产品”和“水果”,对于另外两个上位词“香蕉”和“橙子”来说,它们的上位词相同,都有三个:“农产品”,“水果”以及“植物”。这时,我们可采用商品推荐算法将上位词“植物”推荐给实体“草莓”。
我们从多信息源挖掘获得了开放域命名实体的类别,但这些类别之间仍然可能存在上下位关系。 图显示了一个例子,左侧为抽取获得的上位词列表(即类别列表),“植物”和“毛茛科”都是“ 乌头”的上位词。而事实上,“植物”同时也是“毛茛科”的上位词, 图右侧显示了上位词之间层次关系,这样的结构化信息可以将不同的命名实体组织在一个有向无环图中,对于构建知识库是至关重要的。开放域实体上位关系层次化的任务就是对于给定的一个命名实体及其上位词列表,学习得到上位词之间的层次关系。
图2 开放域命名实体类别层次化示例
首先是基于 Apriori 算法的上位词层次化,将原始挖掘上位词间的上下位关系问题转化为了一个等价的新问题, 即通过挖掘频繁项集关联规则来求解上位词之间的上下位关系问题。接下来,通过对实验结果的总结与分析,我们又引入了同义词词林来补充上位词层次化关系中的顶端关系。之后,我们使用基于词结构的上位词层次化方法,其中包含两个方案,基于后缀上位词的上位词层次化方法,以及基于分类的上位词层次化方法。两种算法的设计都是直接针对于上位关系层次化,对问题进行分析之后进行了一系列合理假设。
基于后缀上位词的上位词层次化方法基于的假设为,在众多上位词当中,有一些上位词,当它们作为其他词的后缀时,往往也是那些词的上位词。例如“医院”这个上位词作为另一个词的后缀时,如“哈工大校医院”,那么“医院”是“哈工大校医院”的上位词。
基于分类的上位词层次化方法基于的假设为,对于大多数实体来说,都可以分为“人”,“物”,“时间”,“空间”以及“抽象事物”中的一种,这五大类别也是来源于同义词词林顶端的五个上位词。而对于一些上位词,它们的上位词根节点并不在这五大类别之中。使用基于分类的层次化算法,目的便是将这些根节点并不在五大类别之中的上位词尝试划分到以上的五个基本实体类别当中。对这些上位词进行分类层次化的空间是很大的,该方法理论上可以进一步丰富整个实体关系图谱中的上位关系,尤其会使根节点部分的上位关系进一步完善,使得之前与关系主体未连接的实体及上位词能够和其他的实体以及上位词建立关系。
5、同义词间的上位词结构归一
在大词林中输入实体词进行查询, 不仅会返回实体词的上位词, 还会返回实体词的同义词,在大词林的早先版本中,不同的同义词之间上位词结构是单独获取的,也就是说“哈工大”与“哈尔滨工业大学”虽然是同义词,但是它们的上位词结构并不一定是一致的(上位词结构不一致),并且会存在“哈工大”的同义词列表中有“ HIT”,但是“ HIT”的同义词列表中却没有“哈工大”的情况(同义词不一致)。
同义词不一致的问题是由于大词林中的同义词是由网络中自动挖掘得到的,这样就会出现在针对“哈工大”进行同义词挖掘时,挖掘到“ HIT”,而针对“ HIT”挖掘时,只挖掘到“ 哈尔滨工业大学”、“ Harbin Institute of Technology”,而未发现“ 哈工大”这一不一致现象。针对此问题,我们改变了大词林中对同义词的存储方式,将同义词存储为二元等价对。针对上例,会存在三个二元组“哈工大-HIT”、“ HIT-哈尔滨工业大学” 和“ HIT- Harbin Instituteof Technology”。那么这时再搜索“ HIT”的同义词时,就能得到 HIT->哈工大->哈尔滨工业大学-> Harbin Institute of Technology 这样的一个链条,也就不会出现“ HIT”的同义词没有“哈工大”的问题了。
同义词不一致的问题解决了, 就可以解决上位词结构不一致的问题了。 原先查询实体词时, 只会返回该实体词的上位词结构, 这样显然会造成同义词之间的上位词结构不一致。 图5 是老版本大词林搜索“ HIT”的查询结果, 可见虽然“ HIT”与“哈尔滨工业大学”、“ HarbinInstitute of Technology”、“哈工大” 互为同义词,但是其同义词列表中却只有“哈尔滨工业大学”、“ Harbin Institute of Technology”,且上位词结构与其他词相比缺省很多。
图3 HIT 同义词(旧版大词林)
如果在查询一个实体词时, 能把其同义词的上位词结构也一并考虑进来, 那么不同的同义词之间, 就会拥有相同的上位词结构。图 6 与图 7 是当前“哈工大”与“ HIT”的查询结果,可见同义词的上位词结构已经一致了。
图4 哈工大展示结果
图5 HIT 展示结果
6、数据统计
近 30 天的新老访客数对比如图 8 所示:截止 4 月 07 日的 30 天内,新访客创造了 870的浏览量,占总访问量的 66.53%。
图6 新老访客数对比
访客的地域分布统计如图 9 所示:在访问大词林的用户中,位于北京的用户最多,占比达到 43%,其次是位于广东的用户和位于哈尔滨的用户,分别占比 20%和 18%。
图7 访客地域分布统计
大词林一直在扩充实体与上位词之间的上下位关系, 截止 2018 年 3 月 18 日,大词林所包含的实体词数目已超过千万,如图 10 所示。
图8 大词林实体数量增长图
目前, 大词林已拥有 12,081,984(一千万对)优质(置信度>99%) 实体上下位关系对。其中,优质上下位关系覆盖的实体数量为 6,476,934 (六百万)。平均每个实体拥有 1.86 个优质上位词、平均每个上位词拥有 72.74 个实体词。
7、准确率判断结果
从大词林的数据库中随机抽取数据进行人工评价,准确率如下。 评价时采用的准确率计算方法如下:
其中, S 代表抽样数据数量, N 代表正确数据数量。
判断准确率时将实体词与上位词和上位词与上位词之间的关系分开考虑,原因在于实体词的数量要数倍于上位词。
1) 实体词与上位词之间的上下位关系Check_hhpai准确率在 90%以上;
2) 上位词与上位词之间的上下位关系Check_hyperhierarchy准确率在 90%以上。
8、结语
《大词林》系统网站( http://www.bigcilin.com/)支持用户查询任意实体,并以有向图的形式展现实体的层次化结构,同时支持以目录方式浏览部分公开的知识库。 人工智能中关键的一步是知识的获取与构建,《大词林》作为基于上下位关系的中文知识库,随着互联网中实体词数目的增加而不断扩充其数据规模,并即将加入实体间关系、实体属性等网状关系结构,这对于基于知识库的智能系统无疑是一笔巨大的宝藏。目前《大词林》已被科大讯飞、腾讯、奇虎 360 等多所公司以及高校付费使用。
本期责任编辑: 赵森栋
本期编辑: 吴 洋
“哈工大SCIR”公众号
主编:车万翔
副主编: 张伟男,丁效
责任编辑: 张伟男,丁效,赵森栋,刘一佳
编辑: 李家琦,赵得志,赵怀鹏,吴洋,刘元兴,蔡碧波,孙卓
长按下图并点击 “识别图中二维码”,即可关注哈尔滨工业大学社会计算与信息检索研究中心微信公共号:”哈工大SCIR” 。