订阅
纠错
加入自媒体

万字详解:腾讯如何自研大规模知识图谱 Topbase

2020-06-09 10:39
将门创投
关注

首先我们获取知识图谱中重要度高的实体名构建 Tri 树,然后回标新闻数据和百科正文数据,并将包含实体的句子作为候选抽取语料(新闻和百科数据需要区别对待,新闻数据往往包含最及时和最丰富的三元组信息,百科数据质量高,包含准确的知识,且百科摘要或正文描述相对简单,抽取结果的准确率高)。

然后,我们利用 Topbase 的实体链接服务,将匹配上的实体链接到知识库的已有实体中,避免了后期的数据融合。比如:实体“李娜”匹配到一句话是“歌手李娜最终归一了佛门”,那么这句话中的李娜会对应到知识库中的歌手李娜,而不是网球李娜,从这句话中抽取的结果只会影响歌手李娜的。实体链接之后,我们将候选语料送入我们的抽取服务,得到实体的三元组信息。

最后,三元组结果会和知识库中已有的三元组数据进行匹配并给每一个抽取得到的三元组结果进行置信度打分,如果知识库已经存在该三元组信息则过滤,如果知识库中三元组和抽取得到的三元组发生冲突则进入众包标注平台,如果三元组是新增的知识则根据他们的分值决定是否可以直接入库或者送入标注平台。此外,标注平台的结果数据会加入到抽取服务中 Fine-tune 模型,不断提升抽取模型的能力。

上述流程中的核心是抽取服务模块,它是非结构化抽取策略的集合。抽取服务构建流程如图 6 所示,其主要包括离线模型构建部分以及在线服务部分。离线模型构建的重点主要在于如何利用远监督的方式构建抽取模型的训练数据以及训练抽取模型。在线流程重点是如何针对输入的文本进行预处理,走不同的抽取策略,以及抽取结果的后处理。针对不同属性信息的特点,抽取策略主要可以简单归纳为三大类方法:

基于规则的抽取模块:有些属性具有很强的模板(规则)性质,所以可以通过人工简单的配置一些模板规则就可以获得高准确率的三元组结果。一般百科摘要文本内容描述规范,适合于规则抽取的输入数据源。此外,适用于规则抽取的属性主要有上位词,别名,地理位置,人物描述 tag 等。当然,规则模块召回有限往往还得搭配模型抽取模块,但是规则模块结果适合直接入库,无需标注人员审核。

基于 mention 识别+关系分类模块:基本思想是先用 NER 或者词典匹配等方式识别出句子中的 mention,然后利用已有的实体信息以及识别出来的 mention 进行属性分类。举例:给定识别出 mention 的句子“<org>腾讯</org>公司是由<per>马化腾</per>创立的。”,用 schema 对输入进行调整,一种情况是 org 作为头实体,per 作为尾实体,那么该样本的分类结果是关系“创始人”,另一种情况是 per 作为头实体,org 作为尾实体,那么该样本的分类结果是“所属公司”,所以最终可以得到三元组<腾讯,创始人,马化腾>和<马化腾,所属公司,腾讯>。一般人物,地点,机构,影视剧,时间等实体可以利用 qqseg-ner 识别。词典性质的实体如:职业,名族,国籍,性别等适合于词典匹配的方式识别。

基于序列标注模块:此外,还有许多属性值是无法进行 mention 识别,因此针对这类属性,我们采用一种序列标注的联合抽取方式来同时识别实体的属性值以及属性。这类属性主要有人物的“主要成就”信息,人物的描述 tag 信息,以及一些数值型属性信息。

图6 Topbase的非结构化抽取服务

3.  专项抽取

专项抽取模块主要是针对一些重要知识的抽取。目前知识图谱设计的专项抽取内容主要有:上位词抽取(概念),实体描述抽取,事件抽取,别名抽取等。

1 ) 上位词抽取:

上位词可以理解为实体细粒度的概念,有助于更好的理解实体含义。图 7 是构建上位词图谱的一个简要流程图,其中主要从三路数据源中抽取上位词数据,主要包括:知识图谱的属性数据,百科人工标注 Tag,纯文本语料。由于抽取得到的上位词表述多样性问题,所以需要在抽取后进行同义上位词合并。此外,抽取生成的上位词图谱也会存在着知识补全的问题,所以需要进一步的进行图谱的连接预测,进行上位词图谱的补全。

图7 上位词抽取流程

2) 实体描述 tag 抽取:

实体描述 tag 是指能够描述实体某个标签的短句,图 7 是从新闻文本数据中挖掘到的实体“李子柒”的部分描述 tag。描述 tag 目前主要用于相关实体推荐理由生成,以及搜索场景中实体信息展示。描述 tag 抽取的核心模块以 QA-bert 为主的序列标注模型,query 是给定的实体信息,答案是句子中的描述片段。此外,还包括一系列的预处理过滤模块和后处理规整过滤模块。

图8  描述tag的示列说明

3)事件抽取:

事件抽取的目的是合并同一事件的新闻数据并从中识别出事件的关键信息生成事件的描述。事件抽取的基本流程如图 8 所示。

图9  Topbase的事件抽取流程框图

预处理阶段主要是对新闻流数据按照实体进行分堆处理。

事件聚类阶段主要是对每一堆的新闻数据进行关键词的提取等操作,将堆内的新闻进一步的聚类。

事件融合主要包括同批次事件融合和增量事件融合。事件抽取流程是分批次对输入数据进行处理。同批次事件融合主要解决不同实体属于同一事件的情况,将前一步得到的类簇进行合并处理。增量事件融合是将新增的新闻数据和历史 Base 的事件库进行增量融合。

最后,我们需要识别每一个事件类簇中的事件元素,过滤无效事件,生成事件的描述。

六、知识规整 - 实体分类

知识规整目的是将实体数据映射到知识体系,并对其关系属性等信息进行去噪,归一化等预处理。如图 9 所示,左侧是从百科页面获取的武则天人物信息,右侧是从电影相关网站中获得的武则天信息,那么左侧的“武则天”应该被视为“人物类--历史人物--帝王”,右侧“武则天”应该被视为“作品--影视作品--电影”。左侧人物的“民族”属性的原始名称为“民族族群”,所以需要将其规整为 schema 定义的“民族”,这称之为属性归一。此外,由于不同来源的数据对实体名称会有不同的注释,如豆瓣的“武则天”这部电影后面加了一个年份备注,所以我们还需要对实体名进行还原处理等各种清洗处理。知识规整的核心模块是如何将实体映射到知识体系,即实体分类。

图10 数据规整的示列说明

1.  实体分类的挑战:

概念类别多(200+类),具有层次性,细分类别差异小(电影,电视剧);

实体属性存在歧义:

图11 实体分类中属性歧义问题

实体名称或者实体简介信息具有迷惑性:例如实体"菅直人"是一个政治家,其名称容易和民族类别混淆,电影“寄生虫”简介如下图所示,其内容和人物概念极其相似。

图12 实体分类中简介迷惑性问题

2.  实体分类方法:

实体分类本质是一个多分类问题。针对知识库的特点以及上述挑战,我们分别从训练样本构建,特征选择以及模型设计三方面实现实体分类模块。

1 )实体分类的训练样本构建:

图13 实体分类训练数据构建流程

属性规则模块:每个实体页面包含了实体结构化属性信息,利用这些属性字段可以对实体进行一个规则的分类。如:人物类别的实体大多包含民族,出生日期,职业等字段,歌手类实体的职业字段中可能有“歌手”的属性值。通过构建正则式规则,可以批量对实体页面进行分类。基于规则模块得到的类别信息准确率高,但是泛化能力弱,它的结果既可以作为后续分类模型的训练数据 1 也可以作为实体分类的一路重要分类结果。

图14 Topbase中用于实体分类的属性规则配置页面

简介分类模块:简介分类模块以规则模块的数据作为训练数据,可以得到一个以简介为实体分类依据的分类模型,然后基于该模型预测属性规则模块无法识别的实体,选择高置信度的结果作为训练数据 2。

自动构建的训练数据去噪模块:基于规则和简介分类模块可以得到部分分类样本,但是这些训练样本不可避免的会引入噪声,所以我们引入 N-折交叉训练预测自清洗数据,进一步保留高置信的训练样本,清洗思路如下图所示。

图15 实体分类训练数据自清洗流程

运营模块:运营模块主要包括日常 badcase 收集以及标注人员审核的预测置信度不高的样本。运营数据会结合自动构建数据,联合训练最终的实体分类模型。

<上一页  1  2  3  4  下一页>  
声明: 本文由入驻维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

发表评论

0条评论,0人参与

请输入评论内容...

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

人工智能 猎头职位 更多
扫码关注公众号
OFweek人工智能网
获取更多精彩内容
文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码:

粤公网安备 44030502002758号