【论文翻译】CN-DBpedia: A Never-Ending Chinese Knowledge Extraction System

摘要

为了通过线上的百科网站构建知识库,已经有无数人付出了巨大的努力。这些知识库对机器理解文本信息发挥着至关重要的作用。然而,大多数非英文知识库,尤其是中文知识库,仍然非常少见。以往许多从在线百科网站中提取知识的系统,虽然适用于建立中文知识库,但仍面临着两大挑战。第一,构建本体和构建有监督的知识抽取模型需要消耗巨大的人力。二是知识库更新频率很低。为了解决这些问题,我们提出了一个永不停息的中文知识抽取系统:CN-DBpedia,它可以自动生成一个规模不断扩大、不断更新的知识库。特别是通过重用现有知识库的本体,建立一个端到端的事实抽取模型,降低了人力成本。我们进一步提出了一种智能的主动更新策略,以保持我们的知识库的新鲜度,而且不需要花费过多的人力。我们发布的在线服务API已经被调用了1.64亿次,这证明了我们系统的成功。

1 引言

随着Web应用程序的推动,万维网上充斥着前所未有的信息。但是,大多数信息只能由人读取,并不能由机器读取。为了使机器理解Web内容,已经有无数人为了通过线上百科网站构建知识库而付出了巨大的努力。因此,各种知识图谱或知识库已经被构建出来,例如Yago,DBpedia和Freebase。这些知识库在许多应用程序中发挥着重要的作用,例如问答和推荐系统。

如今,大部分的知识库都是英文知识库。非英文知识库,如中文知识库,仍然非常罕见。例如,DBpedia是一项公共项目,旨在从111种不同语言版本的维基百科中提取结构化的多语言知识。其英文版包含370多万个实体,而其中文版只包含约一百万个实体。中文应用的普及需要更多的中国知识库。

虽然已经存在许多知识库的构建方法,例如Yago,DBpedia 和 zhishi.me(中文知识库),但我们仍然面临两个挑战:

  1. 第一,如何降低人力成本?一般来说,构建一个只需要花费很少人力成本的知识库,并不是一件容易的事。许多手工制作的知识库在很大程度上依赖于人类的努力。例如,DBpedia使用众包方法构建本体,该本体用于键入实体。Yago使用人为指定的模式来丰富本体。此外,许多监督的方法被用来丰富知识库,其中大多数依靠的是手工构建的特征。
  2. 第二,如何保持知识库的新鲜度? 现有知识库的更新频率非常低。例如,DBpedia的更新频率为6个月。然而,新实体的出现速度非常快,这会导致知识库的过时。确保知识库新鲜度的一个直接解决方案是使知识库与数据源高频率同步。然而,高同步频率通常会导致高昂的成本和过于浪费资源,因为大多数实体是保持不变的。因此,我们需要一种智能的主动更新策略,该策略可以自动识别新实体以及知识库中被更改过的实体。

为了解决这些问题,我们提出了一个永不停息的中文知识抽取系统:CN-DBpedia。我们的贡献如下:

  1. 我们在构建中文知识库的过程中,降低了人力成本。我们首先提出重用现有的本体来减少构建高质量本体的困难。我们还提出了一种端到端的深度学习模型,无需监督就能自动从百科网站文章中提取结构化的事实。
  2. 提出了一种智能的主动更新策略,通过比较低的更新成本使知识库保持新鲜度。

本文的其余部分如下所示。在第2节中,我们介绍了CN-DBpedia的体系结构。在第3节中,我们将介绍如何减少构建CN-DBpedia的工作量,包括重用DBpedia的本体和构建端到端的提取模型,以丰富实体的信息框。在第4节中,我们详细阐述了我们的更新策略。第5节介绍了本系统的统计分析,包括所提取的知识的分布和信息的使用情况。最后,我们在第6节中总结了我们的论文。

2 系统架构

CN-DBpedia的系统架构如图1所示。该系统使用百度百科,沪东百科和中文维基百科(中国三大百科网站)作为主要数据来源。我们首先从那些百科网站的文章中提取原始知识。与维基百科不同,百度百科和沪东百科不提供任何转储文件。因此,我们需要使用爬虫来获取这些文章。百科网站中的文章包含许多结构化信息,例如摘要,信息框和类别信息。我们直接从这些结构化信息中提取事实,并将其填充到中文知识库中。

图1:CN-DBpedia的系统架构

然而,到目前为止所获得的知识库的质量还不够好。还有三个额外的步骤来提高知识库的质量。

  • 步骤1规范。由于在线百科网站是用户生成内容的网站,所以对内容的描述通常是多种多样的。不同的贡献者可能使用不同的名称和格式来描述相同的属性和值。例如,为了描述一个人的出生,一个编辑者可能使用属性birthday,另一个编辑者可能使用date of birth或其他一些东西。因此,我们需要规范化知识库中的属性和值。

  • 步骤2完善。当前的知识库是不完整的,因为没有实体包含类型信息,而且有些实体缺少信息框信息。为了用类型充实实体,我们重用了DBpedia中的本体(尤其是类型分类)和DBpedia类型的中文实体。通过从文章的中查找更多的SPO (主语 -谓词- 宾语)三元组,我们完善了实体的信息框信息。具体情况见第3节。

  • 步骤3修正。当前的知识库可能包含错误的事实。我们提出了纠正这些错误的两个主要步骤。一是误差检测,二是误差校正。我们使用两种方法来检测错误。第一个是基于规则的检测。例如,我们可以使用属性的域和范围来查找错误,属性生日的取值范围是日期,任何其他类型的值都是错误的。第二种错误检测方法是基于用户反馈。CN-DBpedia提供了一个用户搜索界面来浏览系统中的知识。该接口允许用户对SPO事实的正确性提供反馈。界面如图2所示。误差检测后,我们主要使用众包进行纠错。我们将错误事实分配给不同的贡献者,并汇总他们的修正结果。挑战在于如何将多个不同的贡献者提供的数据聚合成为一致的数据。一种简单但有效的方法是多数票法。

图2:CN-DBpedia提供给用户进行意见反馈的页面

3 降低人力成本

我们降低人力成本的第一个想法是重用现有知识库的本体,并使用现有知识库中的类型添加中文实体。第二个想法是构建一个端到端提取器来完善信息框。接下来,我们将阐述这两个概念。

3.1 跨语言的实体类型

构建一个被广泛接受的分类体系需要大量的人力工作。为了避免这种情况,我们重用了DBpedia的分类体系,因为它定义得很好,并且得到了广泛的认可。分类体系重用的第一步是使用英文DBpedia的类型输入中文实体。为了解决这个问题,我们开发了一个系统:CUTE(跨语言类型推断)。

图3:CUTE的架构

图3是CUTE的系统架构。系统构建了一个有监督的层次分类模型,该模型接受一个无类型的中文实体(具有其特征)作为输入,并在DBpedia中输出所有有效的英文类型。与单层分类模型相比,层次模型减少了分类时间,提高了分类精度。因此,构建有效模型的关键就归结为构建高质量的标记数据集。由于减少人工工作是我们主要关注的问题,因此我们开发了一个自动生成标记数据的程序。我们注意到英文/中文知识库中的一些实体可能具有相同的中文标签名称。因此,我们可以将中文实体与具有相同中文标签名称的英文实体配对。中文实体以及配对的英文实体的类型,自然都是带标签的样本。然而,上述方法构建的训练数据的质量仍然存在很多问题:

  • 在许多情况下,英文DBpedia实体的类型是不完整的,这就导致了带有不完整类型的标记样本出现。
  • 在某些情况下,英文DBpedia实体的类型是错误的,这导致一些样本的类型是错误的。
  • 按中文标签名称链接的实体可能会出错,从而导致样本错误。例如,《饥饿游戏》在DBpedia中是小说的标签名,而在中文知识库中是电影的标签名。
  • 中文实体的特征通常是不完整的。例如,一些演员可能只记录了一些基本信息,例如生日和身高,这将使对其细粒度类型(例如演员类型)的有效推断失去作用。

为了提高训练数据的质量,我们提出了两种方法:

  • 为了解决英文DBpedia实体的类型不完整的问题,我们首先将英文DBpedia实体的类型补充完整。
  • 为了解决后三个问题,我们对训练数据进行了噪声滤波,剔除了所有的错误样本。

3.2 信息框补全

补全信息框是充实CN-DBpedia的关键步骤。这一步的自动化对于降低人力成本是至关重要的。信息框包含关于实体的结构化<主语、谓语、宾语>(即三元组)事实,如<莱昂纳多·迪卡普里奥,出生地,好莱坞>。信息框补全是从百科网站的文章中为给定的一对实体和谓词抽取宾语的任务。我们将提取问题建模为一个序列到序列(seq2seq)的学习问题。输入是一个包含特征词的自然语言句子,输出是每个特征词的标签。标签是1或0,用于预测特征词是否为谓词对象的一部分。我们为每个谓词训练一个抽取器 ε e \varepsilon_{e} εe。例如,图4中的句子出现在莱昂纳多·迪卡普里奥的维基百科页面。这个生日的抽取器将会把好莱坞和加州标记为莱昂纳多·迪卡普里奥的真实出生地。

图4:好莱坞和加州被抽取为宾语

建立一个有效的抽取器有两个关键问题。第一是如何构造训练数据。第二是如何选择所需的抽取模型。对于第一个问题,我们采用了远程监控的方法。基本思想是维基百科信息框包含许多关于实体的结构化事实,其中许多事实也在实体文章的自由文本部分中提到。因此,我们可以使用信息框中表示事实的句子作为训练数据。例如,如果<莱昂纳多·迪卡普里奥,出生地,好莱坞>出现在莱昂纳多·迪卡普里奥的信息框中,我们可以很容易地找到句子(如图4所示),并在句子中正确的标注宾语。

对于第二个问题,我们使用长短时记忆递归神经网络(LSTM-RNN)进行信息抽取。LSTM-RNN在复杂信息的建模和处理方面已被证明是有效的,并在许多自然语言处理任务中取得了最先进的结果。然而,LSTM-RNN很少用于信息抽取。基于以下原因,我们设想LSTM-RNN可以成为一个强大的信息抽取工具。首先,在给定标记数据的情况下,深度学习框架可以提取特征和表示,从而节省了大规模、多谓词信息抽取的特征工程的成本。其次,LSTM-RNN能够较好地处理长距离依赖关系,并且能够泛化自然语言的句法模式。

模型结构如图5所示。输入文本被视为一个特征词序列。我们的最终输出的是一个带标签的序列(带有TRUE或FALSE标签),它与输入特征词序列具有相同的长度。我们对输入特征词序列中的每个特征词使用混合表示,以涵盖尽可能多的用于知识库构建的有用信息。向量表示为三个向量的串联:单词嵌入向量(V)、短语信息(P )、类型信息(T)。V代表单词的字面信息,P代表我们对单词如何组合成短语的先验知识,T是实体e的类型表示。上一步得到的每个特征词的表示现在被输入到LSTM递归神经网络。显然,在自然语言句子中,特征词的标签既与前面的特征词相关,也与后面的特征词相关。这促使我们使用双向的LSTM隐藏层来捕获过去和未来的输入特征词。

图5:模型结构

最后我们使用二元交叉熵损失函数作为目标函数训练模型:
在这里插入图片描述
其中 y ^ t \hat{y}_{t} y^t(0或1)为第t个特征词的基真值。我们在训练数据生成阶段得到 y ^ t \hat{y}_{t} y^t

4 知识库更新

在本节中,我们将详细介绍我们的更新机制。我们首先介绍一个被广泛使用的更新策略,然后介绍一个更智能的更新策略。

定期更新。更新策略对于知识库的新鲜度至关重要。最基本的更新策略是定期更新。现有的知识库(如DBpedia和Yago)大多使用这种更新策略。就是在一段时间后用一个新版本完全取代当前的知识库。在定期更新中,周期是一个关键问题。较长的更新周期意味着较低的更新成本,但是知识库可能包含较多的已经过时的事实。较短的更新周期可以保持知识库的新鲜度,但更新成本较高。如何设置一个最佳的更新周期是一个具有挑战性的问题。

为了解决这个问题,CN-DBpedia不仅支持定期更新,而且支持更智能的更新策略,该策略通过监视实体的变化来主动更新知识库,并且只在实体的事实发生变化时才更新实体。我们将此更新策略称为主动更新,将在以下文本中详细说明。

主动更新。主动更新的关键问题是识别可能包含新事实的新实体(如iPhone 7)或旧实体(已存在于知识库中)(如唐纳德•特朗普)。我们通过两个来源来确定这些实体:

  • 一是近期热点新闻中提到的实体。
  • 二是搜索引擎或其他热门网站的热门关键词中提到的实体。

热点新闻通常是一个具有时效性的重要事件。热门新闻中提到的实体要么是新的实体,要么是事实往往会发生变化的实体。例如,唐纳德·特朗普当选为美国第45任总统。他在知识库中的职业应被更新为总统。为了找到热点新闻中提到的实体,我们构建了一个实时新闻监控器,收集最新的热点新闻的标题。然后,我们识别新闻标题中的实体,并从百科网站中检索实体。

搜索引擎中流行的搜索关键词或句子通常包含目标实体。许多中文搜索引擎,如百度、搜狗等,都有一个实时热点查询或主题面板。此外,一些搜索引擎,如搜狗,甚至显示搜索量排名前10的电影,歌曲,游戏等。它们也是寻找新实体或最近被更新的实体的高质量资源。

剩下的惟一问题是从新闻标题或搜索的查询文本中提取实体名称。为了确保我们的解决方案不会遗漏任何新的实体,我们不使用新的短语检测算法。相反,我们使用一个简单的贪婪实体提取方法。我们首先进行分词,将句子/短语转换成单词列表。然后我们选择这个列表的所有子列表,并将每个子列表连接到一个字符串中。这样,我们就得到了很多子字符串。其中一些是实体名称,另一些是句子片段。无论子字符串是什么,我们都会在百科网站上搜索它。然后我们可以判断它是实体名称(有命中结果)还是无意义的片段(没有返回结果)。此外,可以过滤一些IDF(逆文档频率)较低的子字符串,因为它们通常是没有意义的实体。

5 CN-DBpedia的统计分析

我们将在本节中介绍系统的统计数据。因为CN-DBpedia是不断更新的。CN-DBpedia中的实体和事实在不断增加。到2016年12月,CN-DBpedia包含10,341,196个实体和88,454,264个关系。表1显示了实体在不同类型上的分布(只显示了前15种最流行的类型)。我们可以看到,我们的知识库涵盖了来自各种不同领域的实体。表2进一步显示了结构化事实的分布。显而易见,信息框中的事实起着主导作用。
在这里插入图片描述
表1:CN-DBpedia中最流行的15种类型
在这里插入图片描述
表2:CN-DBpedia中的关系
在这里插入图片描述

表3:API及其描述

我们还发布了许多API,使我们的知识库可以通过Web进行访问。截至2016年12月,自2015年12月发布以来,这些API已被调用了1.64亿次。表3显示了每个API的函数及其使用情况的统计数据。我们可以看到,为文本中提到的某个实体返回一个实体的提及到实体(mention2entity)服务是最流行的。我们设想,这些API中的大多数将服务于许多大数据分析应用,作为底层的知识服务。

6 结论

在本文中,我们提出了一个永不停息的中文知识抽取系统:CN-DBpedia。与其它知识库相比,CN-DBpedia所依赖的人工知识非常少,并且通过智能的主动更新策略提供了最新的知识。CN-DBpedia提供的知识服务API被调用超过1.6亿次,证明了我们系统设计的合理性。在不久的将来,我们将进一步整合更多的知识资源,增加CN-DBpedia的覆盖面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值