知识图谱数据构建的“硬骨头”,阿里工程师怎样拿下?
在上一章的综述中,我们介绍过多种基于远程监督思想的改进方法。在具体的业务实现中,我们选取了领域内与业务需求最为契合的两种代表性方法:基于 DeepDive 的抽取系统和基于深度学习抽取算法。两种方法相辅相成,各有优势:DeepDive 系统较多依赖于自然语言处理工具和基于上下文的特征进行抽取,在语料规模的选择上更为灵活,能进行有针对性的关系抽取,且能方便地在抽取过程中进行人工检验和干预;而深度学习的方法主要应用了词向量和卷积神经网络,在大规模语料处理和多关系抽取的人物中有明显的优势。在下面的章节中,我们来更详细地了解这两种方法的实现与应用。
DeepDive 系统介绍
DeepDive 概述
DeepDive () 是斯坦福大学开发的信息抽取系统,能处理文本、表格、图表、图片等多种格式的无结构数据,从中抽取结构化的信息。系统集成了文件分析、信息提取、信息整合、概率预测等功能。Deepdive 的主要应用是特定领域的信息抽取,系统构建至今,已在交通、考古、地理、医疗等多个领域的项目实践中取得了良好的效果;在开放领域的应用,如 TAC-KBP 竞赛、维基百科的 infobox 信息自动增补等项目中也有不错的表现。
DeepDive 系统的基本输入包括:
无结构数据,如自然语言文本
现有知识库或知识图谱中的相关知识
若干启发式规则
DeepDive 系统的基本输出包括:
规定形式的结构化知识,可以为关系(实体1,实体2)或者属性(实体,属性值)等形式
对每一条提取信息的概率预测
DeepDive 系统运行过程中还包括一个重要的迭代环节,即每轮输出生成后,用户需要对运行结果进行错误分析,通过特征调整、更新知识库信息、修改规则等手段干预系统的学习,这样的交互与迭代计算能使得系统的输出不断得到改进。
DeepDive 系统架构和工作流程
DeepDive 的系统架构如下图所示,大致分为数据处理、数据标注、学习推理和交互迭代四个流程:
数据处理
1、 输入与切分
在数据处理流程中,DeepDive 首先接收用户的输入数据,通常是自然语言文本,以句子为单位进行切分。同时自动生成文本 id 和每个句子在文本中的 index。doc_id + sentence_index 构成了每个句子的全局唯一标识。
2、 NLP 标注
对于每个切分好的句子,DeepDive 会使用内嵌的 Stanford CoreNLP 工具进行自然语言处理和标注,包括 token 切分,词根还原、POS 标注、NER 标注、token 在文本中的起始位置标注、依存文法分析等。
3、 候选实体对提取
根据需要抽取的实体类型和 NER 结果,首先对实体 mentions 进行定位和提取,而后根据一定的配对规则生成候选实体对。需要特别注意,在 DeepDive 中,每一个实体 mention 的标定都是全局唯一的,由 doc_id、sentence_index 以及该 mention 在句子中的起始和结束位置共同标识。因此,不同位置出现的同名的实体对(E1,E2)将拥有不同的(E1_id,E2_id),最终的预测结果也将不同。
4、 特征提取
该步骤的目的是将每一个候选实体对用一组特征表示出来,以便后续的机器学习模块能够学习到每个特征与所要预测关系的相关性。Deepdive 内含自动特征生成模块 DDlib,主要提取基于上下文的语义特征,例如两个实体 mention 间的 token sequence、NER tag sequence、实体前后的n-gram 等。Deepdive 也支持用户自定义的特征提取算法。
数据标注
在数据标注阶段,我们得到了候选实体对以及它们对应的特征集合。在数据标注阶段,我们将运用远程监督算法和启发式规则,对每个候选实体对进行 label 标注,得到机器学习所需的正例和负例样本。
1、 远程监督
实现远程监督标注,首先需要从已知的知识库或知识图谱中获取相关的三元组。以婚姻关系为例,DeepDive 从 DBpedia 中获取已有的夫妻实体对。若候选实体对能在已知的夫妻实体对中找到匹配映射时,该候选对标记为正例。负例的标注针对需要抽取的不同关系有不同的可选方法。例如可以将没有在知识库中出现的实体对标注为负例,但在知识库收入不完整的情况下该方法会引入噪音负例;也可以用知识库中互斥关系下的实例来做负例标注,例如父母-子女关系,兄弟姐妹关系,都与婚姻关系互斥,用于标注负例基本不会引入噪音。
2、 启发式规则
正负样本的标注还可以通过用户编写启发式规则来实现。以抽取婚姻关系为例,可以定义如下规则:
Candidates with person mentions that are too far apart in the sentence are marked as false.
Candidates with person mentions that have another person in between are marked as false.
Candidates with person mentions that have words like "wife" or "husband" in between are marked as true.
用户可以通过预留的 user defined function 接口,对启发式规则进行编写和修改。
3、 Label 冲突的解决
当远程监督生成和启发式规则生成的 label 冲突,或不同规则生成的 label 产生冲突时,DeepDive 采用 majority vote 算法进行解决。例如,一个候选对在 DBpedia 中找到了映射,label 为1,同时又满足 2 中第 2 条规则,得到 label 为-1,majority vote 对所有 label 求和:sum = 1 - 1 = 0,最终得到的 label 为 doubt。
学习与推理
通过数据标注得到训练集后,在学习与推理阶段,Deepdive 主要通过基于因子图模型的推理,学习特征的权重,并最终得到对候选三元组为真的概率预测值。
(编辑:焦作站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |