面向中文短文本的实体识别与链指,简称ERL(Entity Recognition and Linking),是NLP领域的基础任务之一,即对于给定的一个中文短文本(如搜索Query、微博、用户对话内容、文章标题等)识别出其中的实体,并与给定知识库中的对应实体进行关联。ERL整个过程包括实体识别和实体链指两个子任务。
传统的实体链指任务主要是针对长文档,长文档拥有在写的上下文信息能辅助实体的歧义消解并完成链指。相比之下,针对中文短文本的实体链指存在很大的挑战,主要原因如下:
(1)口语化严重,导致实体歧义消解困难;
(2)短文本上下文语境不丰富,须对上下文语境进行精准理解;
(3)相比英文,中文由于语言自身的特点,在短文本的链指问题上更有挑战。
任务说明
输入:
输入文件包括若干行中文短文本。
输出:
输出文本每一行包括此中文短文本的实体识别与链指结果,需识别出文本中所有mention(包括实体与概念),每个mention包含信息如下:mention在给定知识库中的ID,mention名和在中文短文本中的位置偏移。 示例:
输出:
实体链指结果,结果为json格式,包含text_id、text和mention_data三个字段,text_id和text字段与输入一一对应,mention_data字段为链指结果,每个mention必须包含kb_id、mention和offset三个字段,分别对应知识库实体id、mention名以及mention在字符串中的偏移。
摘要
传统的实体链接任务主要是针对长文档。长文档拥有充分的上下文 信息,能够辅助实体的识别与消歧。相比之下,中文短文本的实体链接存 在很大的挑战。实体链接整个过程包括实体识别和实体消歧两个子任务。针对实体识别子任务,我们创新性地利用了知识库描述文本的信息来增强 实体识别的性能,提出了 BERT-EntityNameEmbedding(BERT-ENE) 模型。具体地说,首先通过挖掘知识库中实体的描述文本得到实体名字的 向量嵌入,然后通过名称字典匹配技术,得到得到短文本中的候选实体,最 后利用 BERT-ENE 模型对结果进行筛选,完成实体识别的任务。此外,本 文进一步提出了一种将 BERT-ENE 模型与 BERT-CRF 模型相融合的新 方法,相比传统方法识别效果有了显著提升。针对实体消歧子任务,将其 视为二分类问题,通过基于 BERT 的二分类模型对候选实体进行预测,然 后对预测的概率进行排序,进而完成消歧任务。基于本文提出的方法,我们在 CCKS2019 面向中文短文本的实体链指任务中,取得了第一名的成绩。
此学习资源仅可用于学术交流和非商业需求,如违背相关许可协议,后果自负。
AI项目体验地址 https://loveai.tech
关键词
实体链接,实体识别,实体消歧,BERT
1 数据分析与处理
训练数据包含 text 字段和 mention_data 字段,mention_data 里面包 含连接的 mention 以及 kb_id。知识库包含 subject_id,subject,alias,data 等字段,data 中包含多个 predicate、object。
1.1 引入新的别名
经过对数据集统计分析,训练集中有 2.592% 的实体名在实 体库中无法匹配,部分错误样例如下所示:
为了解决这个问题通过为知识库中的对应实体引入新的别名来改善这 一问题,具体步骤如下
连接后的描述文本长度分布如下:
通过分析可以发现文本会存在过长的情况,为了方便以后处理需要多过长的文本进行截断,截断规则如下:
1.3 其他处理
为了方便后续模型的使用我们需要根据知识库数据,构建一些字典。有以下几个字典:
2 实体识别
但是使用 BERT-CRF模型只利用到了短文本信息,并没有利用知识库的信息。仍然会遇到实体边界识别错误,句子中实体识别不全等问题。为了解决上述不足,并且能够完全利用知识库的信息,提出了 BERT-ENE 模型。
针对实体识别任务,首先采用现在效果较好的 BERT-CRF 命名实体识别模型。针对基于实体库实体链接(尤其是短文本)仅仅采用BERT+CRF进行实体识别有两点不足:
为了解决上述两个不足,并且能够完全利用知识库里面的实体信息,构建了BERT-EntityNameEmbedding模型,与BERT-CRF融合,解决上述问题。
2.1 BERT+CRF
图 1 为 BERT-CRF 模型,采用 BIO 标记,其中 BERT 的[CLS],[SEP] 位置用标签 TAG 表示。模型主要包含输入层、 BERT 层和 CRF层。:
涉及到的一些参数:
-- max_len 52
--batch_size 64
--dropout 0.2 (bert 输出后接的dropout)
--num_epochs 7
一些训练细节:
2.2 BERT-EntityNameEmbedding(BERT-ENE)模型
BERT-ENE 模型如图 2 所示,其具体思路为:1. 利用知识库的实体名称和实体的别名信息构建实体名称字典。2. 通过知识库的实体描述文本,利用 BERT 预训练模型,选取模型 CLS 位置的向量输出作为实体名称的 向量嵌入。3. 通过字典匹配方式,得到短文本中候选实体。4. 通过构建的BERT-ENE 模型对匹配的结果进行筛选。
2.2.1 字典树+实体正向最大匹配
为了加快速度采用字典树这一结构,同时采用正向最大匹配实体的思路,去匹配文本中实体。首先需要的数据为1.3中的 entity_id 字典,将里面的key 也就是实体名字插入到字典树中,实体库中存在很多单字实体,这类实体匹配会造成太多匹配结果,对于单字实体不在插入。
全部匹配例:
2.2.2 实体名字嵌入
为了能够对匹配到的实体进行二分类,需要将实体名字用一个向量表示,当然实体名字嵌入向量可以随机生成最后通过训练也能不断拟合,但是一个好的初始化向量对结果影响很大,也因为后续模型用到了BERT,这里使用BERT来得到实体名字的嵌入。具体思路和过程如下:
2.2.3 训练数据构建
通过上述匹配方式,匹配结果:(高清视频 属于上述第三种情况,最后模型会判断取那个好)
2.2.4 模型
BERT-ENE 模型如图 2 所示,其基本思路为:
模型具体过程为:
2.3 实体识别结果融合
如上所述,实体识别分为两个模型,一个 BERT-CRF 模型,一个 BERTENE。BERT-CRF 模型识别的实体会因为边界错误导致不能够匹配得到候选实体。而 BERT-ENE 模型是通过词典匹配方式实现,所以 BERT-ENE的结果都能够在知识库找到候选实体,不会出现边界错误。BERT-ENE 模型在词典匹配时,去掉了单字实体,而 BERT-CRF 模型可以预测单字实体。所以将两种方案融合,能够取得最好的效果。融合规则为:如果两个结果在位置存在重复,则选取 BERT-ENE 的结果,单字实体选取 BERT-CRF 模型的结果。
具体为:BERT+CRF共18个模型,对预测结果进行投票,分别去BERT+CRF模型投票大于8的作为BERT-CRF 模型的结果。选取BERT-ENE模型概率大于0.45作为结果,合在一起即可。
3实体消歧
实体消歧是基于二分类的思想实现,训练时选取连接到的实体作为正例,在候选实体里选取两个负例。将短文本以及待消歧实体的描述文本连在一起,输入到BERT模型,取CLS 位置向量输出,以及候选实体对应开始和结束位置对应的特征向量,三个向量连接,经过全连接层,最后sigmoid激活得到候选实体的概率得分。对所有候选实体的概率得分进行排序,选择概率最高的为正确实体。模型图如下:
其他细节: