上次已经分享了NER的通用架构和常用的经典算法,读者可以参考[NER(命名实体识别)-综述一](http://mp.weixin.qq.com/s?__biz=Mzg3NDIyMzI0Mw==&mid=2247483972&idx=1&sn=bb16d0a2069c783f5c0223f37e2bfe87&chksm=ced541a0f9a2c8b60a8d484d7e58435650157bb7c2b734d39ae4e48fdedac62a71617b71a0f1&scene=21#wechat_redirect),本次会继续分享一些其他算法在NER方面的探索,比如多任务学习、迁移学习、主动学习、强化学习、对抗学习、注意力机制等.
NER 模型扩展
1、 深度多任务学习
多任务学习就是多个相关的任务一起学习,期待比单独训练任何单个任务在单个任务获得的性能都好,网络结构的底层是共享的,最后一层都是针对每个任务设定的,训练的时候最小化所有任务的平均 loss 。 NER 多任务有两种思路:一、把相关的 sequence labeling 任务,二、同一任务在不同数据集上的多任务,比如医疗 domain ,不同医院不同病种,数据源差别很大,这样可以在不同医院或者不同病种之间进行多任务学习。
参考的 paper 如下 :
《 Multitask learning 》
《 Multi-task domain adaptation for sequencetagging 》
《 A neural network multi-task learningapproach to biomedical named entity recognition 》
《 Cross-type biomedical named entityrecognition with deep multi-task learning 》
2、 深度迁移学习
2.1 、迁移学习背景 :
目前比较成熟的机器学习算法 , 尤其是监督学习 , 需要大量的标注数据 , 标注数据通常是一项枯燥无味而花费巨大的任务 , 而且还需要保证数据同分布 , 这在很多情况是非常难的 , 因为随着业务的变化 , 数据的分布会随着时间的推移而有所变化 , 导致之前标注的数据不能直接被使用 , 造成大量的标注数据浪费 , 因此就有了迁移学习的研究 .
2.2 、迁移学习定义 :
将某个领域或者任务上学习到的知识或模式应用到不同但相关的领域或问题中 .
2.3 、迁移学习的基本问题 :
· How to transfer : 如何进行迁移学习?(设计迁移方法)
· What to transfer : 给定一个目标领域,如何找到相对应的源领域,然后进行迁移?(源领域选择)
· When to transfer : 什么时候可以进行迁移,什么时候不可以?(避免负迁移)
2.4 、迁移学习常用概念 :
· 域 (Domain) :数据特征和特征分布组成,是学习的主体
· 源域 (Source domain) :已有知识的域
· 目标域 (Target domain) :要进行学习的域
· 任务 (Task) :由目标函数和学习结果组成,是学习的结果
2.5、 迁移学习分类 :
按特征空间分类
·
同构迁移学习(
Homogeneous TL
):
源域和目标域的特征空间相同
·
异构迁移学习(
Heterogeneous TL
):源域和目标域的特征空间不同
按迁移情景分类
·
归纳式迁移学习(
Inductive TL
):针对的问题是源与目标域相同
,
但是任务不同
,
且此时源的标签可有可无
,
而目标任务是有标签的
,
比如
imagenet
数据训练好分类问题可以用来做回归
·
直推式迁移学习(
Transductive TL)
:源的域是不同但相关的
,
任务相同
,
且源域是有标签
,
而目标域没有
·
无监督迁移学习(
UnsupervisedTL)
:域和任务都是不同但相关的
,
基本上处理的是一些聚类、降维、密度估计等问题
.
DS,DT | |||
TS,TT | |||
源域标签 | |||
目标标签 | |||
归纳式迁移学习 | |||
相同 | |||
不相同但相关 | |||
有 | |||
/ | |||
无 | |||
直推式迁移学习 | |||
不相同但相关 | |||
相同 | |||
有 | |||
无监督迁移学习 | |||
不相同但相关 | |||
不相同但相关 | |||
无 | |||
3 ) 按迁移方法分类
·
基于样本的迁移
(Instance based TL)
:通过权重重用源域和目标域的样例进行迁移
基于样本的迁移学习方法
(Instance based Transfer Learning) : 根据一定的权重生成规则,对数据样本进行重用,来进行迁移学习。下图形象地表示了基于样本迁移方法的思想源域中存在不同种类的动物,如狗、鸟、猫等,目标域只有狗这一种类别。在迁移时,为了最大限度地和目标域相似,我们可以人为地提高源域中属于狗这个类别的样本权重。
·
基于特征的迁移
(Feature based TL)
:将源域和目标域的特征变换到相同空间
·
基于特征的迁移方法
(Feature based Transfer Learning)
是指将通过特征变换的方式互相迁移
,
来减少源域和目标域之间的差距;或者将源域和目标域的数据特征变换到统一特征空间中
,
然后利用传统的机器学习方法进行分类识别。根据特征的同构和异构性
,
又可以分为同构和异构迁移学习。下图很形象地表示了两种基于特
征的迁移学习方法。
·
基于模型的迁移
(Parameter based TL)
:利用源域和目标域的参数共享模型
·
基于模型的迁移方法
(Parameter/Model based Transfer Learning)
是指从源域和目标域中找到他们之间共享的参数信息
,
以实现迁移的方法。这种迁移方式要求的假设条件是:
源域中的数据与目标域中的数据可以共享一些模型的参数。下图形象地表示了基于模型的迁移学习方法的基本思想。
·
基于关系的迁移
(Relation based TL)
:利用源域中的逻辑网络关系进行迁移
基于关系的迁移学习方法 (Relation Based Transfer Learning) 与上述三种方法具有截然不同的思路。这种方法比较关注源域和目标域的样本之间的关系。
参考的 paper 如下 :
《 A survey on transfer learning 》
《 Transfer joint embedding forcross- domain named entity recognition 》
《 Transfer learning for named-entity recognition with neuralnetworks 》
《 Named entity recognition for novel types by transfer learning 》
《 Transfer learning forsequence tagging with hierarchical recurrent networks 》
《 Transfer learning andsentence level features for named entity recognition on tweets 》
《 Improve neural entityrecognition via multi-task data selection and constrained decoding 》
《 Neural adaptation layers for cross-domain named entityrecognition 》
《 Transfer learning forbiomedical named entity recognition with neural networks 》
3、 深度主动学习
谈到深度主动学习 , 我们首先来谈一下主动学习 . 在传统监督学习 , 往往需要规模比较大的训练样本才能是模型表现的好 , 这有两个方面的困难 , 其一、获取标注样本成本比较大 ; 其二 , 如果获取到大量的训练样本 , 那么训练的时间也比较长 .
而在人类的学习过程中,通常利用已有的经验来学习新的知识,又依靠获得的知识来总结和积累经验,经验与知识不断交互。同样,机器学习模拟人类学习的过程,利用已有的知识训练出模型去获取新的知识,并通过不断积累的信息去修正模型,以得到更加准确有用的新模型 .
主动学习的模型如下 :
A=(C,Q,S,L,U) ,
其中 C 为一组或者一个分类器, L 是用于训练已标注的样本。 Q 是查询函数,用于从未标注样本池 U 中查询信息量大的信息, S 是督导者,可以为 U 中样本标注正确的标签。学习者通过少量初始标记样本 L 开始学习,通过一定的查询函数 Q 选择出一个或一批最有用的样本,并向督导者询问标签,然后利用获得的新知识来训练分类器和进行下一轮查询。主动学习是一个循环的过程,直至达到某一停止准则为止。
刚才说到查询函数 Q 用于查询一个或一批最有用的样本。那么,什么样的样本是有用的呢?即查询函数查询的是什么样的样本呢?在各种主动学习方法中,查询函数的设计最常用的策略是:不确定性准则( uncertainty )和差异性准则( diversity )
以上是传统的主动学习的原理
, 其实深度学习在主动学习中通常扮演选择样本的作用
参考的 paper 如下 :
《 Active learning 》
《 A sequential algorithm for training text classifiers 》
《 Towards robust linguistic analysis using ontonotes 》
参考资料
https://www.jianshu.com/p/e908c3595fc0
4、 深度强化学习
强化学习是智能体和环境的不断交互
, 从而使不同状态下采取不同动作所获得的累积回报期望值最大 , 使用强化学习做 NER, 其实就是把 NER 问题转换为强化学习框架进行求解 , 强化学习中的 action 可以在可选的答案集中灵活的选择对应的文本 , 想了解强化学习的朋友 , 可以参考
参考
paper 如下 :
《 Reinforcement learning: A survey 》
《 Introduction to reinforcement learning 》
《 Online learning: A comprehensive survey 》
《 Improving information extraction by acquiring externalevidence with reinforcement learning 》
《 Human-level control through deep reinforcement learning 》
5、 深度对抗学习
对抗学习是在对抗样本上训练一个模型的过程
, 目的是使模型在测试数据更加鲁棒 . 最典型的就是对抗生成网络 GAN, 它有两个关键组件 : 一个是生成器 ; 一个是判别器 , 生成器是用来生成伪样本 , 而判别器是判别生成器生成的样本和真实样本的真伪 , 是一个二分类器 . 生成器生成尽量和真实样本分布相同的样本 , 而判别器是尽量区分真实样本和生成器生成的伪样本 .可以参考我之前分享的GAN网络的基本原理和实现
参考
paper 如下 :
《
Adversarial learning 》
《
Generative adver- sarial nets 》
《
Datnet: Dual adversarialtransfer for low-resource named entity recognition 》
6、 神经注意力
最近注意力在众多任务中表现良好
, 注意力的思想是样本之间的关系往往有少数几个样本或者特征来决定的 , 而不是所有的样本 . 注意力可以在样本之间建立关系 , 一般称为 self-attention, 更多的情况是在输入样本和输出样本之间建立全局关系 .
参考
paper 如下 :
《
Attention and memory in deep learning and nlp 》
《
Neural named entity recognition using a self- attentionmechanism 》
《
Improving clinical named entity recognition with globalneural attention 》
《
Adaptive co-attention network for named entity recognitionin tweets 》 NER 的挑战
1 、数据标注
目前基于监督学习的
NER 方法 , 包括基于深度学习的方法 , 都需要大量的标注数据 , 然后标注数据时间非常长 , 而且也需要相关领域专家参与 , 成本非常高 . 数据标注最大的两个问题就是 : 标注数据质量和标注数据的一致性 . 数据质量比较好理解 , 标注数据一致性指的是在不同数据集或者不同领域 , 相同词会出现不同的标签类型 , 比如“ Baltimore” 在 MUC-7 中句子“ Baltimore defeated the Yankees ”类别是 Location, 而在 CoNLL03 语料中是 Organization
2 、非正式文本和未知实体
用户自己生成的一些文本通过随意性比较强
, 导致 NER 识别比较难 . 还有一些实体在训练中未出现过 , 那么这部分在实际预测中表现的效果也比较差 .
NER 的展望
1 、 Fine-grained NER and Boundary Detection
现在更多的研究的是 coarse-grainedNER ,fine- grained NER 研究的相对较少 , fine- grained NER
特点是实体类型比较多 , 同一个实体可以有多个实体类别
参考的paper如下:
《Learning to search for recognizingnamed entities in twitter 》
2、Joint NER and EntityLinking
实体链接也称为命名实体消歧.链接的实体有助于检测实体边界和正确分类实体类型,联合NER和EL值得探索,尤其参考实体库,例如维基百科在通用领域和生物医学领域统一医学语言系统UMLS
参考paper如下:
《Shine+:A general framework for domain-specific entity linking with heterogeneousinformation networks 》
《Pair-linkingfor collective entity disambiguation: Two could be better than all 》
3 、 DL-based NER on InformalText with Auxiliary Resource
之前谈到基于深度学习NER算法在非正式文本和用户生成的内容方面表现的比较差,一般来说,借助于辅助资源( Auxiliary Resource ),例如用户自有的地理位置字典,可以提高非正式文本和用户生成内容方面的NER性能.
参考paper如下:
《Extractingfine-grained location with temporal awareness in tweets: A two-stage approach 》
《Linking fine-grained locations in usercomments 》
4 、 Scalability of DL-based NER
目前基于深度学习模型如果表现的好,那么模型是比较复杂的,模型参数多,需要大量的计算资源,比如ELMo每个词是3*1024维度的词向量,在32个GPU上训练了5周,而BERT在64个TPU上训练.模型压缩和剪枝会减少模型的大小和计算时间.
参考paper如下:
《Areview on deep learning for recommender systems: challenges and remedies 》
5 、 Deep Transfer Learning forNER
目前NER模型在语言特征有差别和标注有差别的数据集上表现比较差.因此,在一个领域训练好模型应用在其他领域上的迁移学习方法是未来的趋势,具体表现为:
1)研发一个比较鲁棒的NER识别器,可以跨领域识别.
2)探索zero- shot, one-shot andfew-shot learning 少样本学习方法
3)在跨领域设置中对域不匹配和label不匹配提供解决方案
6 、 An Easy-to-use Toolkit forDL-based NER
目前已经存在一些NER的Toolkit,比如GERBIL,这个框架提供了实体标注工具和一些实验,然而这个框架没有包括深度学习模型.还有只支持RNN变种的NeuroNER .
但是这些Toolkit都比较局限,因此开发一个基于目前流行的深度学习框架(例如tensorflow、pytorch、keras)的NER的Toolkit是一个比较好的方向,比如包括数据预处理、输入数据表示层、上下午编码器,类别解码器以及性能评估等.
参考的paper如下:
《Gerbil–benchmarking named entity recognition and linking consistently》
《NeuroNER:an easy- to-use program for named-entity recognition based on neural networks 》
到目前为止,已经分享了两次NER的相关算法,上次分享了NER的基本架构以及传统算法,还有基于深度学习的经典算法biLSTM+CRF,本次分享主要是探索一下前沿算法在NER的应用,由于是综述,所以基本都是蜻蜓点水,列出了一些相关的paper供大家参考,后续会针对具体算法做详细的阐述,敬请期待.