【导读】
媒体资讯对新闻事件进行报导或评论,这些新闻事件的基本要素可以使用命名实体识别技术(NER)进行提取,如人物、机构、地点、时间、专有名词等。提取文章中的实体对于自媒体时代的新闻智能推荐有着重要意义,如进行更精准的内容挖掘、对内容进行有效的监督管理等。媒体的实体识别面临新实体快速涌现、多领域多义词等难点,所以对命名实体识别的未登录词识别、上下文语境的深入理解与表示提出了更高的要求。本文以搜狐的技术实践为基础,介绍前沿的命名实体识别技术与效果。
命名实体识别(Named Entity Recognition)简称NER,是自然语言处理领域应用广泛而且核心的技术,是文章内容理解的基础,也是问答系统、搜索系统的底层技术之一。尤其在中文语言处理中,NER可以看做分词的一部分,是未登录词识别中数量最多、识别难度最大的一部分,而且由于实体往往代表重要的意向,对于分词效果也影响显著。
命名实体包含人、地、机构、专有名词等,在不同的领域,对于实体有着不同的定义。在媒体领域,由于会涉及娱乐、财经、科技、体育、医疗教育等各行各业的资讯消息,所以对这些领域的常见专有名词都需要有一定的识别精度。此外,媒体领域也需要关注与热门资讯与突发事件关联的实体,比如电视剧“都挺好”,地名“响水”等。所以媒体NER比较看重以下两个特性:
- 自动识别未登录词从而发现新词
- 兼容领域词库从而实现多领域自动适配
01 命名实体识别技术发展历程
从实现原理来分类,随着机器学习的发展以及深度学习技术的应用,NER技术发生了如下的技术演进路线:
1. 基于规则和词典的方法
规则和词典的方法指的是通过手动构建识别实体词的规则,以及收集领域相关的实体词词典。这种方法适用于确定实体的集合比如地名、球队名称,或者固定格式的实体比如时间、书名号等。这种方法的缺点是扩展性很差,不能发现未登录词,是早期或者简单的实体词识别系统所采用的方案。
然而这种方法也并不一无是处。基于规则和词典的优势在于不需要人工标注的语料库,通过添加词库可快速适应新领域。对于一些面向业务的规则,比如保留书名号内的完整的电影名,基于规则的方法会达到更高的正确率。所以成熟的NER系统往往会兼容词库和规则的算法,从而达到总体更佳的识别效果。
2. 传统机器学习方法
在机器学习中,NER一般被抽象为序列标注问题,利用人工标注的大量语料库来标注模型。在机器学习中,进行线性序列标注的模型包括生成式模型HMM,判别式模型CRF等。HMM(隐马尔科夫模型)是统计概率模型,在NER使用的模式是已知观察序列(句子中的词),求背后概率最高的标注序列(即每个字的分词状态)。在NER中,HMM假设每个标注取决于前面的标注结果和当前的观察序列,构成如下的概率图模型:
HMM的转移概率模型[1]
其中 A 表示上一个状态到下一个状态的转移概率矩阵,B表示隐藏状态到当前的观测状态的转移概率矩阵,另外使用s表示初始状态。一个HMM模型通过构建(A,B,s)来表示序列概率。不过HMM的缺点从原理上也能看出:一个词的实体词类型,只取决于当前词以及前面的状态,无法考虑更远的词以及后面的词的影响,从而导致无法达到全局最优。因为HMM为了对联合概率分布进行建模,HMM引入两条独立性假设:
- 马尔科夫链在任意时刻的状态Xi仅依赖于前一个状态Xi-1;
- 任意时刻的观测Oi只依赖于该时刻马尔科夫链的状态Xi。
在序列标注的机器学习算法中,CRF(条件随机场)是目前最佳的算法方案,CRF无需引入独立性假设,能够充分利用上下文信息特征,计算全局最优输出节点的条件概率,克服了HMM只能局限于部分上下文特征的局限。下图所示是用于NER的线性条件随机场,把字、分词、词性标注等作为特征输入。
用于NER的线性链CRF
CRF具有很强的推理能力,并且能够使用复杂、有重叠性和非独立的特征进行训练和推理,能够充分地利用上下文信息作为特征,还可以任意地添加其他外部特征,使得模型能够获取的信息非常丰富。
3. 深度学习算法
随着深度学习的发展,自然语言的向量表示法横空出世,使得自然语言能够使用深度神经网络进行处理,最常见的就是RNN模型的变种,比如GRU和LSTM等,可以提取文本更长距离的上下文特征信息。
结合CRF对序列模型进行建模的能力,使用Bi-LSTM提供上下文信息,可以达到更佳的标注效果。目前业界最常用的深度学习分词和NER算法模型如下图所示:
Bi-LSTM+CRF实现NER的网络模型[2]
在这个网络中,一共有三层。第一层是输入的word-embedding,一般是预训练的embedding模型,在网络中进行fine-tuning,输出的是每个词的向量表示。
第二层由双向LSTM构成,能够学习到上下文特征,输出的是每个词的上下文环境的向量表示。第三层是CRF层,基础的CRF层能够使用CRF模型来构建crf-loss,然后用得到的CRF特征结合viterbi算法进行求解序列,在tensorflow的keras中,有更完整的CRF-layer能够实现对序列的标注训练和直接求解。
4. 注意力模型
注意力(Attention)模型是近年来深度学习领域大放异彩的网络模型,起源于视觉的注意力机制。随着2018年google的BERT在各类自然语言比赛中大杀四方,Attention模型更优秀的表示能力逐渐取代了RNN在自然语言处理中的顶部位置。在自然语言处理中,使用注意力(Attention)的语义表示模型为Transformer模型。
下图为我们使用Transformer模型进行命名实体识别的流程图。
Transformer ner模型流程图
目前我们直接使用Transformer进行序列标注,在输出层使用SoftMax函数直接进行预测。但是这样无法考虑标签之间的转移概率,如在标注了TIME_E以后,TIME_M标签出现的概率应该更大。直接使用SoftMax函数,是一种贪心的预测方式,其不一定为最优解。因此考虑在输出层加入CRF层。不仅考虑了输入x到y的释放概率,更考虑了连续标签之间的传播概率。最终在预测阶段,使用维特比动态规划算法找到预测的最优解。
02 媒体命名实体识别实践
结合搜狐在媒体命名实体识别(NER)上的实践,下面我们讲述从标注数据准备到完整的NER系统的搭建。我们在NER上采取核心算法是字符级别的 Bi-LSTM + CRF,并兼容实体词典+规则的方法实现更高的准召。
1. 序列标注模型的构建
传统分词、词性标注、命名实体识别是依次完成的,结构如下图所示:
在分词算法的序列标注模型中,把每个字处于词的不同位置作为序列中的一种状态,常见的位置状态有:B(词的开头)、E(词的结尾)、M(词的中间)、S(单个字组成的词)。如下图所示为分词序列标注的原理,使用CRF等序列标注算法找出概率最高的序列状态组合,通过状态可以反推分词结果。
在命名实体识别任务中,我们发现分词的结果对NER结果影响很大,在人工标注资源有限的情况下,我们构建了在句子上直接进行命名实体识别的模型,能够同时实现分词和命名实体识别。在上述分词模型的基础上,在NER问题中,我们联合实体词类型,构建了能同时用于分词和实体识别的状态。如下图所示,实体词的类型联合字在词中的位置,构成了5*4=20中序列状态。
字符级别的Bi-LSTM + CRF进行分词和NER的模型
例如:对于人名PER,那么分别有 PER_B、PER_E、PER_M 、PER_S四种状态。如果我们定义人名(PER),机构名(ORG),其他词性(NO),下面句子的状态为:
通过上述状态的构建,我们就实现了分词和实体词识别的双目标序列标注模型。
2. 标注数据的准备
人工标注数据决定了NER模型的上限,而分词和命名实体的标注比常见的标注任务都要更加繁重,所以至今为止,业界往往使用比较古老的开源数据集进行训练和测试。模型很难满足新的的实体标注,比如“拼多多”、“字节跳动”等新词在大部分基于开源数据集的模型下不能被识别为公司机构。
因此我们构建了如下两种任务进行标注,在较少的人力成本下,达到更多和更好的标注数据。
- 使用已有的开源NER对文章粒度的长文本进行预处理,提取各类实体词,人工只需要结合文章语境,对实体词进行添加和删除,而不是逐字逐句地进行分词、实体词的判断。将所标注的实体词放回文章,生成新的训练集进入到NER算法模型,这样可以达到比大部分开源NER更好的效果。
- 使用类似boosting的数据采样方案,基于a中标注数据分组产生多个NER模型,对段落粒度的文本进行扫描。如果标注结果不一致,则认为该样本存在较低的置信度,把该段文本投入到逐字逐句的标注流程,进一步提升数据集的准确率。下图所示为逐字逐词标注的结果:
人工实体词标注与机器预标注效果对比
(右为人工标注)
3. 命名实体识别系统
基于上述人工标注数据,我们对比了多种主流的NER方案:CRF、Bi-LSTM+CRF、Transformer+CRF,目前为止,我们在Bi-LSTM+CRF取得了最好的效果。
纯CRF方案使用了开源实现:CRF++[1]。其提供了特征模板,方便灵活配置特征信息。下图所示,使用9个特征作为CRF的输入。
CRF++进行命名实体识别的模板
如果特征太多会导致性能变差,甚至训练效果会收到干扰而降低,一般选取前后两个词以内的特征可以达到最优的效果。从这也可以看出传统的机器学习CRF直接用于NER的缺点,虽然理论上可以考虑全局的特征,但是综合性能和模型表达能力,其实只能考虑较近范围的特征。所以采用上文提到的Bi-LSTM可以增强对上下文语境的表示,从而提升序列标注的效果。
NER系统以Bi-LSTM+CRF算法为核心,结合了每个领域的专有名词和特殊规则,架构如下图所示:
命名实体识别系统架构
领域词库和规则的存在,使得未登录词和多义词得到了更好的识别,如科技领域的“拼多多”、“滴滴”,医学领域的“基因编辑”、“靶向药”等领域专有名词。虽然未登录词大部分能被核心NER模型识别出来,但是有的专有名词容易被拆分成多个常用词的组合。
领域规则主要包括:书名号中的电影名、带分隔符的外国人名等特殊格式。在标注数据里样本较少的情况下,通过规则可以达到更好的效果。
4. 效果展示
上述NER系统,在人工标注数据集上,实现了95%的准确率和94%的召回率,具备很好的语境识别、未登录词发现能力。样例如下:
参考文献:
[1] https://www.slideshare.net/SwitchOn1/hmm-14321979
[2] End-to-end SequenceLabeling via Bi-directional LSTM-CNNs-CRF
结语
本文介绍了媒体领域命名实体识别的难点、业界常用的算法以及搜狐智能媒体研发中心在命名实体识别上的实践。
在新闻智能推荐的时代,互联网媒体不仅关注新闻中的主要实体,对这些实体的细粒度情感也很关注,文章主体情绪的判断,有助于互联网媒体把控网站调性、丰富内容理解的维度、提升推荐效果,甚至可以挖掘更多的商业价值。比如“小米9与华为mate20 pro都缺货,为啥只有雷军被吐槽“,对于“小米”或者“雷军”这些实体的情绪是消极的,而对于华为来说根据文章内容被判断为中立或者积极。
“媒体文章的情绪”这个研究话题,尚处于空白。搜狐作为国内领先的互联网媒体机构,在文章实体的提取与情绪的判断,进行了很多前沿的探索和基于业务的扎实工作。
作为先行者,搜狐近期携手清华计算机系共同发起了第三届内容识别算法大赛,旨在通过真实数据、专家指导,选拔和培养有志于自然语言处理领域的算法研究、应用探索的青年才俊。欢迎各界高手积极参与!