zl程序教程

您现在的位置是:首页 >  Java

当前栏目

基于LEBERT的多模态领域知识图谱构建

2023-02-18 16:43:17 时间

李华昱, 付亚凤, 闫阳, 李家瑞. 基于LEBERT的多模态领域知识图谱构建. 计算机系统应用, 2022, 31(11): 79-90.http://www.c-s-a.org.cn/1003-3254/8799.html

摘要:多模态知识图谱(multi-modal knowledge graph,MMKG)是近几年新兴的人工智能领域研究热点。本文提供了一种多模态领域知识图谱的构建方法,以解决计算机学科领域知识体系庞大分散的问题。首先,通过爬取计算机学科的相关多模态数据,构建了一个系统化的多模态知识图谱。但构建多模态知识图谱需要耗费大量的人力物力,本文训练了基于LEBERT模型和关系抽取规则的实体-关系联合抽取模型,最终实现了一个能够自动抽取关系三元组的多模态计算机学科领域知识图谱。


知识图谱由谷歌公司提出。2012年5月17日,谷歌发布知识图谱项目,并宣布以此为基础构建下一代智能化搜索引擎[1]。知识图谱将大量多源异构的文本数据规范化为关系三元组,存储在知识图谱中,并以网络的形式将知识体系展示给用户,有效提升了搜索效率和质量。知识图谱又分为通用知识图谱和领域知识图谱。通用知识图谱强调广度,以常识性知识为主,适合作为搜索、推荐、问答等应用的知识支撑,面向大众;领域知识图谱强调深度,通常面向某一领域,用户多为领域专家[2]。到目前为止,包括医疗、军事、海洋、金融等在内的多个领域已逐步将知识图谱落实到实际应用中[3-6]。

然而,随着数字信息形式的多样化发展,出现大量包含视频、图片、语音、文本等在内的多媒体数据,人们越来越倾向于使用内容丰富的多媒体数据进行学习、展示、记录留存等[7],传统的知识图谱已经无法完全满足用户的需求[2,8]。多模态知识图谱是将多模态信息引入到知识图谱的一种技术[7],它在研究文本关系三元组的基础上,构建跨模态的实体以及语义关系,极大丰富了只包含文本信息的传统知识图谱。

计算机学科领域拥有完整的知识体系和丰富的科研成果,但由于其表现形式的多样性,不得不将它们分散存储在不同的数据库中。这种分散式的存储对于知识呈现的完整性造成了一定程度的损失。因此,本文通过构建多模态知识图谱,对计算机学科领域的知识进行系统化的梳理,在传统关系三元组的基础上,辅以图片信息,形成多模态的计算机学科知识网络。

本文的主要贡献如下:

1) 构建了一个包含文本、图片两种模态的计算机学科领域的数据集,并最终在该数据集的基础上完成了计算机学科领域多模态知识图谱的构建。

2) 在知识图谱构建的实体-关系联合抽取任务中,使用了引入Lexicon Adapter 的LEBERT模型,并叠加BiLSTM-CRF模型,在文本构建的数据集中取得了良好的效果。

3) 设计了一种基于BERT预训练语言模型和余弦相似度的实体消歧方法。

本文第1节是多模态知识图谱的相关工作,第2节是计算机学科领域本体的构建,第3节是多模态知识图谱的构建,介绍了实体抽取、关系抽取、实体消歧及知识存储部分,第4节是实验部分,介绍了命名实体识别、关系抽取等相关实验以及可视化系统展示,第5节是结束语。

01 相关工作

21世纪初,万维网诞生,图片数据大量涌现,多媒体数据的搜索问题逐渐显现。由于图片搜索的准确性较低,当时的专家学者大都采用了为图片进行文本标注并建立知识库存储的策略,以提高搜索质量,多模态知识图谱的早期构建方法由此发展起来。多模态知识图谱发展过程如图1所示。

图 1 多模态知识图谱的发展

2004年,美国卡内基梅隆大学von Ahn等人[9]提出的“labeling images with a computer game”首次将图片与文本结合,以电脑游戏的形式为图片添加正确的文字标签。2006年,万维网创始者Bizer等人[10]提出Linked Data。2009年,Hausenblas等人[11]提出IM,将Linked Data应用于多媒体数据的互连;美国普林斯顿大学提出的ImageNet[12]通过互联网搜索和众包构建实现,它是一个基于WordNet结构的大规模图像本体。2013年,Chen等人[13]提出NEIL,使用半监督学习算法,标记给定类别的实例,它试图用最少的人力开发世界上最大的可视化结构化知识库,截止2013年,NEIL已经标记了40多万个视觉实例[13]。2014年正式发布的Wikidata[14]中也存在大量的多模态资源,它提供了一个可由所有人共享的免费协作知识库,已经成为维基媒体最活跃的项目之一。2017年,智利大学Ferrada等人[15]提出IMGpedia,IMGpedia是一个大型的链接数据集,它从Wikimedia Commons数据集的图像中收集大量的可视化信息,构建并生成了1500万个视觉内容描述符,图像之间有4.5亿个视觉相似关系[15]。2019年,Liu等人[16]提出的MMKG是一个包含所有实体的数字特征和图像的3个知识图谱的集合,大量实验验证了MMKG在同一链路预测任务中的实用性;东南大学Wang等人[17]提出的Richpedia,将图片作为单独的实体进行存储,并设计了3个基于自然语言处理和语法分析的关系抽取规则,以从图片中获取实体之间的关系。上述为通用多模态知识图谱的发展历程。

随着通用多模态知识图谱的发展,越来越多的领域专家开始尝试将多模态技术应用于领域知识图谱,例如多模态教学知识图谱[2]、多模态医学知识图谱[18]等。然而,这些工作并不支持实体-关系三元组的自动识别、抽取等,而是依靠大量人工完成。这种多模态领域知识图谱的构建方法难以应用至其他领域。为了减少构建多模态领域知识图谱的人工投入,为其他领域提供一种通用性较强的多模态知识图谱构建方法,本文以计算机学科领域为例,提出了一种较为完整的多模态领域知识图谱构建流程,包括领域本体构建、数据获取、实体-关系抽取、实体对齐、知识存储以及可视化系统实现等步骤。

02 学科本体构建

1993年,Gruber等人[19]将本体定义为“一种概念化的精确的规格说明”。1998年,Studer等人[20]将本体的概念扩充为“共享概念模型的明确形式化规范说明”。总之,本体主要是用来描述某个领域内的概念和概念之间的关系,使这些概念和关系具有明确、唯一的定义。本体作为一种重要的知识库,它包含丰富的语义信息,可以为问答系统、信息检索、语义Web、信息抽取等领域的研究及相关应用提供重要的支持[21]。本体一般由概念、概念间的关系以及建立在关系之上的公理这三部分组成,概念又称为类。根据描述的目标范围,本体可以分为通用本体和领域本体。不同于通用本体,领域本体具有显著的领域特性,通常对某个特定领域建立相应的知识规范描述。本体中具有丰富的概念和关联关系,因此通常使用规范化的语言对本体进行描述,常见的本体描述语言有: RDF、OWL、Loom等[22,23],本文使用OWL语言对计算机学科领域本体进行描述。

本文采用自顶向下的方法构建计算机学科领域本体,如图2所示。本体中包含人物、论文、专利、组织、地点、职务、职称、学术会议、计算机类期刊、时间等10个类。其中,专利类别包含实用新型专利、外观设计专利、发明专利等3个子类;组织类别包含企业单位、科研机构、高等院校等3个子类;职务类别包含公司员工、教师、期刊主编、学生等4个子类。

计算机学科领域本体中的概念具有丰富的关联关系,如表1所示,共定义了主编、举办地点、任职于、职务、职称、位于、发明、申请、申请日、公开日、发表、主办、刊载等13种关系。

图 2 计算机学科领域本体
表 1 概念关联关系表

以“<人物,发明,实用新型专利>”关系三元组为例,OWL语言描述如下:

<owl:Class rdf:ID="人物"/>
<owl:Class rdf:ID="专利"/>
<owl:Class rdf:ID="实用新型专利">
<rdfs:subClassOf rdf:resource="#专利/">
</owl:的Class>
<owl:ObjectProperty rdf:ID="发明">
<rdfs:domain rdf:resource="#人物/">
<rdfs:range rdf:resource="#实用新型专利/">
</owl:ObjectProperty>

本文旨在提供一种多模态学科领域知识图谱的构建方法,本体中未能包含计算机学科领域中的全部概念和关联关系,仅针对部分常见的概念进行领域本体的建模。

03 多模态领域知识图谱构建

本文中多模态领域知识图谱的构建步骤包括知识获取、知识抽取、实体链接、知识存储等。领域知识图谱的构建需要大量语料,本文采用Python网络爬虫对计算机学科领域数据进行爬取,经过数据清洗、预处理后,将数据划分为训练集、测试集和验证集,用于后续知识图谱的构建。知识抽取是从不同来源、不同结构的数据中进行知识提取,通常包括实体抽取、关系抽取、属性抽取等,知识抽取结果往往以关系三元组或属性三元组的形式存储到数据库中。实体链接包括实体消歧和共指消解,用于解决知识图谱中一词多义与多词同义的问题,是知识图谱构建过程中必不可少的步骤。多模态计算机学科领域知识图谱的构建流程如图3所示。

图 3 多模态计算机学科领域知识图谱构建流程图

3.1 知识获取与预处理

3.1.1 知识获取

计算机学科领域的多模态知识图谱数据来源主要为院校官方网站、百度百科、维基百科、中国知网、中国专利公布公告网等多个官方信息网站。由于目标数据量较大,数据的获取主要围绕北京航空航天大学、华中科技大学、南京大学、清华大学、山东大学、天津大学、中国石油大学(北京)、中国石油大学(华东)等8所院校的相关领域专家和学生,爬取的内容为人物、组织、论文、专利、期刊、会议,以及与其相关的多模态属性信息。文本数据的获取使用Python的Scrapy框架[24],文本数据的爬取以知网论文为例,爬取流程如图4所示。本文将获取到的列表数据和详情页数据存储到txt文档中。

在定义好的计算机学科领域本体中,人物、计算机类期刊、组织、学术会议等4个类别具有较为准确具体的图片信息,因此在爬取这4个类别文本信息的同时需要获取相关的图片信息。首先收集包含这4个类别图片信息的网页URL,将它们存储在txt文档中,并使用爬虫进行爬取图片及图片周围的文本。为了便于后续操作,本文将文本中符合图片信息且为当前类别实例的字段放置在首项,例如,在爬取教师信息时,教师的姓名字段作为txt文档每一行的第一项进行存储。

最终获取到的计算机学科数据,包含半结构化的列表字段、非结构化的纯文本,共22 393条,相关图片4 017张,详细信息见表2。

此外,为了尽量避免后续构建知识图谱时出现实体歧义问题,在抽取数据时对数据中出现组织、职称类实体的简称以及缩写进行全称替换处理。

3.1.2 数据预处理

本文的数据预处理包括文本数据预处理和图片数据预处理。

文本数据预处理主要包括语料清洗、中文分词、词性标注等步骤。语料清洗包括: 删除不相关数据和重复数据;去除乱码与多余的符号。文本数据清洗完成后,使用哈尔滨工业大学社会计算与信息检索研究中心开发的语言技术平台LTP进行中文分词、词性标注等步骤。最终将预处理后的文本数据按照训练集:测试集:验证集=7:2:1的比例,进行数据集划分,并分别命名为“train.txt”“test.txt”“dev.txt”。

图片数据的预处理主要是为图片标注合适的文本标签,即图片对应的实体名称,方便后续为实体添加图片属性。数据爬取时,图片链接和与图片相关的字段信息按类别存储在不同的txt文件中,本文选取每行的首项作为图片的文本标签,由于该字段为计算机学科领域本体中已存在的类别的实例,在后续为实体添加图片属性的操作中,可直接将该字段和图片链接抽取为属性三元组的形式,便于向数据库中存储。

图 4 基于Scrapy框架的数据采集流程图
表 2 原始语料分类详情表

3.2 实体-关系联合抽取

本文将基于深度学习的命名实体识别模型和基于规则的关系抽取模型相结合,进行句子级的实体-关系联合抽取。命名实体识别作为自然语言处理的基本任务,旨在从非结构化文本中识别具有特定含义的实体,如人名、地名和组织[25]。命名实体识别任务的输入是一个序列,模型的输出是输入序列的标签序列。关系定义为两个或多个实体之间的某种联系,关系抽取任务的输入为一段文本,输出通常是一个三元组(实体1,关系,实体2)。实体-关系联合抽取的输出包括每个句子中的实体、实体类型,以及从句子中抽取的关系三元组。实体-关系联合抽取模型如图5所示。

图 5 LEBERT-BiLSTM-Attention-CRF框架图

该模型的初始输入为句子集合S=\{s_1,s_2,...,s_m\} ,其中,表示句子集中的第个句子,表示句子的总个数;每个句子由多个token组成,即 s_i=\{w_1,w_2,...,w_n\} ,表示句子集中的第个token,n 表示一个句子中的token个数。句子集合首先输入到LEBERT中得到每个句子的向量表示e_i=\{E_{[CLS]},E_1,E_2,...,E_n\} 。LEBERT的输出向量作为BiLSTM的输入,BiLSTM的隐藏层向量h=\{h_0,h_1,h_2,...,h_n\} ,向量h 与Attention机制的权重矩阵U 进行加权计算后进行拼接,拼接后的向量矩阵\tilde{h} 输入CRF层进行解码,最终得到每个token的对应标签Tag。得到实体及其相应的实体类别标签后,根据预先定义的13种关系抽取规则,将具有关联关系的实体对抽取为关系三元组的形式。

3.2.1 LEBERT预训练语言模型

2018年10月,Devlin等人[26] 提出BERT模型,该模型在11项自然语言处理任务中取得SOTA。LEBERT模型[27]在BERT模型的某两层Transformer[28]之间,加入了词典适配器Lexicon Adapter,以增强特征信息。不同于Sun等人[29]在BERT模型与其他模型之间引入特征词信息,LEBERT模型在BERT模型内部的某两层Transformer之间引入特征词典适配器。如图6所示,LEBERT由Transformer编码器单元和词典适配器Lexicon Adapter组成。

1) Transformer

LEBERT的基本单元由Transformer编码器组成,如图7所示,Transformer编码器由多头自注意力机制层和前馈神经网络构成。嵌入向量输入编码器单元后,首先进入多头自注意力机制层,经过残差连接和归一化操作后,输入到前馈神经网络中,再经过一层残差连接[30]和归一化操作后输入到下一个Transformer编码器单元中。

2) Lexicon Adapter

特征词典适配器Lexicon Adapter由特征词向量、双线注意力机制组成。

如图6所示,x_j^l 是字符w_j 在BERT模型中第l 层Transformer的输出,c^{ws}_j 为与字符w_j 匹配的特征词向量。x^l_j 与经过非线性变换的特征词向量c_j^{ws} 通过双线性注意力机制层后计算得到增强的特征向量,将计算得到的向量与x^l_j 进行求和归一化操作后,得到向量\tilde{x}_j ,最后将向量\tilde{x}_j 输入到第l+1 层Transformer中继续训练。LEBERT将与训练语料相关的大量特征词直接融入BERT的训练过程,有效增强了训练语料的特征向量。Liu等人[27]使用CTB、MSRA等多个数据集实验证明,特征词的融入有效提高了BERT模型在命名实体识别任务中的准确率。

① 特征词词典构造

在本文构建的计算机学科领域本体中,论文、计算机类期刊、学术会议、专利等概念包含大量具有鲜明计算机学科领域特点的实例。因此,为了增强BERT的训练效果,特征词词典中的词组必须包含具有领域针对性的专业名词。考虑到搜集的特征词是否能够有效强化语料特征的问题,本文通过半自动化的方式,从已爬取的计算机学科领域数据中提取相应的特征词放入特征词词典D中,并通过Word2Vec模型转化为词向量,共计1712个特征词。为了方便后续的字-词匹配操作,将特征词以前缀树的形式存储,记为T

② 字符-特征词匹配

给定计算机学科领域特征词前缀树T 和一个包含n 个字符的句子s_i=\{w_1,w_2,...w_n\} 。首先遍历句子的所有字符子序列,将它们与前缀树T 进行匹配,获得所有潜在可能配对的词,例如输入句子“计算机网络”可以匹配到 “计算”“计算机”“计算机网络”“网络”等4个特征词,将这4个特征词分别分配给它们包含的句子中的字符。如图8所示,“计算”分配给“计”和“算”,“计算机”分配给“计”“算”和“机”,计算机网络分配给“计”“算”“机”“网”“络”,“网络”分配给“网”“络”。可以通过设置阈值限制每个字符被分配的特征词数量。

图 6 LEBERT框架
图 7 Transformer编码器
图 8 字符-特征词匹配示例

③ 双线性注意力机制

字符与特征词匹配成功后,对于每一个位置的信息,就由单个字符转变为字符及其对应的特征词组。如图8所示,为了处理两种不同类型的数据,首先需要对特征词组向量c^{ws}_j=\{c^w_{j1},c^w_{j2},...,c^w_{jp}\} 进行一次非线性转换。非线性转换包含两层线性层和 tanhtanh 激活函数,如式(1):

其中,W_1W_2 为参数矩阵,b_1b_2 为常量,c^{w}_{jk} 为字符w_j 对应的特征词组中第 kk 个特征词的词向量。记v_j=(v^w_{j1},v^w_{j2},...,v^w_{jp}) 。为了确定特征词组中每个特征词的重要程度,引入了双线性注意力机制,如式(2):

其中,W_{att} 为双线性注意力机制的权重矩阵。得到权值矩阵\partial_j

向量\tilde{x}_j 经过归一化操作后,作为第l+1 层Transformer的输入,代替向量x^l_j 继续训练。

3.2.2 BiLSTM-CRF层

本文在LEBERT的基础上叠加BiLSTM-CRF模型进行命名实体识别任务。BiLSTM模型将前向LSTM与后向LSTM的隐藏层向量拼接,充分利用当前token的上下文特征信息,以得到更加准确的预测结果。CRF可以学习连续标签之间的约束,以输出概率最大、整体最优的标签序列,降低出现不合理标注的概率,提高实体识别结果的准确率。BiLSTM结构如图9所示,由前向LSTM和后向LSTM组成,前向LSTM的隐藏层的输出向量h_R=\{h_{R1},h_{R2},...h_{Rn}\} 和后向LSTM的隐藏层的输出向量h_L=\{h_{L1},h_{L2},...,h_{Ln}\} 拼接为h=\{h_1,h_2,...,h_n\} ,其中,h_t=[h_{Rt}\oplus h_{Lt}]h_t 代表t 时刻BiLSTM的隐藏层向量。

图 9 BiLSTM框架

3.2.3 基于规则的关系抽取

由于本文采集的数据包含关系较少且关系词单一,所以采用基于规则模板的方法,使用计算机学科领域本体中类间的关系作为关系三元组中的关系词进行关系抽取。关系抽取步骤如下。

1) 根据计算机学科领域本体中的概念和概念间的关联关系定义13个规则模板,如表3所示。

2) 本文为实体-关系联合抽取,若在一句话中出现具有对应规则的实体对,则将实体对与对应关系组成关系三元组并存储到Neo4j数据库中。

3) 若一句话中出现3个及以上的实体,创建数组并以实体类型命名,暂时存储实体;首先对所有实体类型进行两两组合,若两种实体类型具有对应的规则,则将对应数组中的实体进行组合,否则不进行组合。组合公式如式(5):

其中,n_1 是第1种实体类型的实体数量,n_2 是第2种实体类型的实体数量。本文数据集中的句子不包含复杂结构的句式,因此不会出现具有对应关系的实体对不存在关系的情况。

表 3 关系三元组抽取规则定义表

3.3 实体链接

实体链接的目的是将新实体与知识库中对应的实体进行链接,补充知识图谱的内容,用以解决实体歧义性和多样性问题。实体的歧义性和多样性主要表现在两个方面: 一词多义、多词同义。一词多义指一个词语可以指代多个实体,在本文使用的数据集中,人物类实体最容易出现一词多义问题,例如不同的人使用相同的人名;多词同义指多个词语指代同一个实体,例如“石大”“中石大”等均可指代组织类实体中国石油大学(华东)。本文数据爬取自官方网站,实体名称较统一,多词同义问题较少,主要针对一词多义问题进行实体链接。本文基于BERT预训练语言模型和余弦相似度设计的实体链接算法如下。

算法1。BCOSEL()

输入: 实体x,上下文信息text_x

输出: 0或1

if 数据库中存在实体e,且e.name=x.name then
生成词集e_SET={e.name,实体e的相邻关系,实体e的属性}
X1 = BERT(text_x) //用BERT模型生成向量
X2 = BERT(e_SET)
Similarity=cos(X1,X2) // 计算余弦相似度
if Similarity⩾ 相似度阈值 then
    为实体e添加实体x的关系和属性
    返回1
else
    向数据库中添加实体x
    返回0
else
    向数据库中添加实体x
    返回0

余弦相似度计算公式如式(6)所示:

若经过实体链接后,发现知识库中已有该实体,则将其新的属性信息添加到知识库中;若知识库中没有该实体,则将该实体及其属性信息一起添加到知识库中。

3.4 知识存储

知识图谱以图的形式展现实体、关系以及实体的属性,本文使用的Neo4j数据库是一个高性能的NoSQL图形数据库,以网络的形式存储结构化数据,且具有较好的可视化界面,可以较好地利用知识图谱的图形结构信息。本文使用Cypher语言将关系三元组和属性三元组导入Neo4j数据库中。在进行关系三元组存储操作时,Neo4j数据库会自动为每一个实体设置唯一标识的ID,在整个数据库中,节点的ID值是递增的和唯一的。Neo4j中实体添加、关系创建以及属性添加等操作的相关Cypher语句如表4所示。

表 4 Neo4j操作语句表

04 实验分析

4.1 实体-关系联合抽取

4.1.1 语料标注

本文需要大量的标注语料进行命名实体识别模型的训练工作。训练语料的标注由人工完成。常用于命名实体识别的标注策略有BIO、BIOE、BIOES、BMEWO等模式。本文采用BIO模式,将每个字符标注为“B-X”“I-X”或“O”。其中,“B-X”表示此字符所在的片段属于X类型并且此元素在该实体的开头位置,“I-X”表示此字符所在的片段属于X类型并且此元素在该实体的中间位置,“O”表示不属于任何类型。本文根据计算机学科领域本体中定义的概念设置实体类型及标签,标注的实体类型及其对应标签见表5,使用空行作为句子间隔,共计10类实体,21种标签。

表 5 BIO实体标签

训练集标注754213字符,测试集标注212 341字符,验证集标注103 885字符,累计1 070 439行。共标注34 996个实体。

4.1.2 模型训练与评估

1) 实验环境与参数设置

命名实体识别模型试验环境如表6所示。

表 6 实体-关系联合抽取实验环境说明表

本文使用的主要参数包括: LEBERT基于用于中文自然语言处理任务的BERT模型,共包含12层Transformer,lstm_dim设置为128,最大序列长度设置为128,学习率设置为1E–5,batch_size设置为12,dropout_rate设置为0.5,clip设置为0.5。

2) 评估指标

命名实体识别领域中常用精确率(Precision)、召回率(Recall)、F1值(F1)作为评价模型识别性能的指标,计算公式如下:

其中,TP表示正类判定为正类,FP表示负类判定为正类,FN表示正类判定为负类。

3) 实验结果

① 命名实体识别

基于LEBERT-BiLSTM-Attention-CRF的命名实体识别任务中,10类实体的精确率均值达到94.72%、召回率均值达到94.92%、F1均值达到95.02%,如表7所示。

为了验证实验模型的效果,选取LEBERT-BiLSTM-CRF、BERT-BiLSTM-Attention-CRF在相同的环境下进行对比实验,数据集为经过人工标注的计算机学科领域的文本数据集。实验结果如表8所示。LEBERT-BiLSTM-Attention-CRF的F1值最高。

表 7 命名实体识别实验结果(%)

为了验证LEBERT与BERT在本数据集中的特征提取效果,选取LEBERT-BiLSTM-Attention-CRF、BERT-BiLSTM-Attention-CRF进行对比实验。实验结果表明,在本数据集中,LEBERT的特征提取效果明显好于BERT,LEBERT-BiLSTM-Attention-CRF模型比BERT-BiLSTM-Attention-CRF模型的F1值高出了3.54%。

表 8 各个模型的命名实体识别实验结果(%)

为了验证Attention在本数据集中的特征提取效果,选取LEBERT-BiLSTM-Attention-CRF、LEBERT-BiLSTM-CRF进行对比实验。实验结果表明,在本数据集中,引入Attention机制后,特征提取效果有所提升,LEBERT-BiLSTM-Attention-CRF模型比LEBERT-BiLSTM-CRF模型的F1值高出了0.99%。

② 关系抽取

训练集标注40 907个关系三元组,测试集标注11 687个关系三元组,验证集标注5 485个关系三元组,累计共58 439个关系三元组。经过人工核查统计,各类关系抽取的正确率如表9所示。

其中,关系类型“公开日”“申请日”的正确率偏低。经分析,由于关系类型“公开日”“申请日”的头实体均为实体类型“PATENT”,尾实体均为实体类型“TIME”,此外,实体类型“TIME”均为统一格式“××年××月××日”,以上原因导致两类关系极易混淆,从而出现评估指标偏低的情况。

表 9 关系抽取正确率(%)

4.2 可视化系统实现

Neo4j中可以使用Cypher语句进行实体、关系查询,但无法展示图片信息。为了更好地展示相关图片数据,本文采用B/S模式,使用Python语言编写后台连接Neo4j数据库,并基于D3.js设计实现可视化界面。查询Neo4j数据库中人物类实体“张培颖”及其关联关系的结果如图10所示。本文将查询得到的结果表示为网络的形式,以不同颜色的圆代表不同类别的节点,箭头代表关系。

通过点击节点,可以获得该节点的属性信息,如图10中,点击节点“中国石油大学(华东)”后,页面右侧会出现相应的文本属性和图片属性。图片的展示依赖于对图片本地链接的访问。

图 10 知识图谱实体查询结果展示

最终构建完成的知识图谱中共包含34996个实体,58439个关系,109005个属性。其中,共包含4017个图片属性。

05 结束语

本文构建了一个计算机学科领域的多模态数据集作为训练语料,将LEBERT模型与BiLSTM-CRF结合用于训练语料的命名实体识别任务,并在此基础上定义关系三元组的抽取规则,实现了实体-关系联合抽取。针对数据中可能出现的实体歧义问题,设计了一种基于BERT模型和余弦相似度的实体消歧方法。为了提供多模态的信息展示平台,将图片链接作为属性存储在Neo4j数据库中,并设计实现了可视化系统进行图片信息展示,最终完成可视化的多模态计算机学科领域知识图谱的构建。

本文提出的跨模态领域知识图谱构建方法构建的多模态领域知识图谱不仅能系统化地整合领域多模态知识,实现良好的可视化查询,也是智能问答、推荐系统的底层支撑。此方法具有良好的可迁移性,适用于金融、医疗、生物等大多数领域。但该方法依赖于领域本体的构建,自顶向下的领域本体构建方法要求开发人员对目标领域的专业知识有一定程度的了解。如果开发人员对目标领域没有系统化的了解,也可以采用自底向上的方法进行领域本体的构建,但这需要投入大量人工对原始数据进行审核。