深度学习baseline模型_深度学习模型在序列标注任务中的应用

本文探讨了深度学习在中文序列标注任务中的应用,包括命名实体识别和名词短语提取。基础模型为RNN+CRF,通过改进如字符内部信息、分词标记、字形特征等提高性能。实验结果显示,字符级别的模型结合丰富特征输入取得最佳效果,未来研究方向包括语言模型和强化学习。
摘要由CSDN通过智能技术生成

作者 丨e成科技NLP部门自然语言理解小组 王奕磊

背景

序列标注任务是中文自然语言处理(NLP)领域在句子层面中的主要任务,在给定的文本序列上预测序列中需要作出标注的标签。常见的子任务有命名实体识别(NER)、Chunk提取以及词性标注(POS)等。序列标注任务在e成的主要应用有,简历解析时的字段切分、抽取工作经历(CV)和职位描述(JD)中的实体名词等。

更具体的任务有,在解析一段工作经历长文本的时候,我们希望提取其中的动宾组合来表示该应聘者之于此段工作经历的主要工作内容。以“了解市场情况,进行一些项目的商务谈判”为例,HanLP分词器的结果为“了解市场情况,进行一些项目的商务谈判”,此时可以提取的粗动宾组合有“了解-情况”和“进行-谈判”,而我们更希望得到更加完整且意义更加丰富的宾语,因此需要将“市场 情况”合并为“市场情况”,将“商务 谈判”合并为“商务谈判”。因此,我们需要一个能够准确提取名词短语(Noun Pharse)的序列标注模型来克服NP字典召回不足的问题。

基础模型及扩展

很长一段时间,条件随机场(CRF)是序列标注任务的标准模型。CRF将句子中每个标记的一组特征作为输入,并学习预测完整句子的最佳标签序列。以命名实体识别为例,一些常见的特征有:标记本身、它的bi-gram和tri-gram、词性信息、chunk类型等。

目前主流的序列标注模型已经被神经网络所替代,基础的框架一般为循环神经网络(RNN)+CRF[1]。这里我们使用双向RNN来提取序列中每一个标记的完整的过去和未来的上下文信息,而长短期记忆网络作为有效改进RNN梯度消失问题的网络已经成为RNN的标配。双向LSTM的层数一般设置为1-3层,也可以作为一个可调整的超参。

我们不再使用逐帧softmax的预测方法,而是将双向LSTM在每个时间步的输出作为CRF层的输入。CRF与softmax的最大差别在于,前者会学习各个预测标签之间的联系,比如“B-Chunk”的下一个标签必须是“I-Chunk”。

第一个改进方向是,探索词语内部的信息。以“工程师”这个词为例,可以拆解为“工”、“程”、“师”三个字符序列。通过叠加一层双向LSTM或者卷积网络(CNN)来提取词语内部序列的信息[2]。新的内部序列向量可以直接拼接在词向量后面,也可以通过attention的方式来决定词向量和内部序列向量的重要性程度,如下图右边所示。Attention方式通过学习权重系数z来获得全新的线性加权后的向量[3]。

第二个改进方向是,基于字符粒度的输入,以其为基础输入的中文序列标注模型在很多论文中被证明是十分有效的。但是,只是使用字符信息往往是不够的,引入分词标记的信息能够大幅提升模型表现。另外,字符的bi-gram信息也是不错的补充信息。这里,我们将分词标签和字符bi-gram以同样的方式构建embedding的lookup表来获得对应的向量表示,与字符向量拼接在一起,组成综合的特征输入[4]。

另外,中文作为象形文字,较字母文字会有独有的形状特征[5]。如字形特征,或通过卷积网络来提取中文文字的图片信息。卷积后的向量表示即拼接在字符向量后。

中文的偏旁部首也是不错的特征,比如“钅”字旁表示该字符表示的是金属,来给予模型有效的字符信息。通过将每个中文字符映射成部首ID,随机初始化部首ID的词向量拼接在字符向量后面,来作为输入向量的补充。

其他模型框架

一般的卷积网络也可以来尝试序列标注任务,但是卷积网络的特性决定它只能观察到N-gram的信息,无法考虑更远的上下文信息。而膨胀卷积[6]在保持参数个数不变的情况下增大了卷积核的感受野,同时它可以保证输出的特征映射(feature map)的大小保持不变。其中,亮黄色卷积核在最右边的膨胀卷积的视野为“法-工-程-师-职”,在中间的卷积网络需要再增加一层,才有5个字符的视野,但这样参数就变多了。同时,改善了卷积网络在提取序列特征时只能考虑局部窄视野的缺陷。

实验结果

首先,我们需要准备训练语料。为了考验模型的真实水平,在构建验证集和测试集的时候,随机抽取了一部分名词短语,确保训练集中不存在包含这些名词短语的句子。另外,将工作经历根据有效的标点进行了短句分句,形成短序列来减小网络的规模,共230万句短句,平均词数为20。在字符级别模型的预处理中,将英文单词和连续数字视为单个字符。

本文采用的标签标注方案是BIOE,考虑到中文名词短语中心词靠后的特点,我们给予末尾词以End标记以作区分。标注的方式采用前期通过统计方法取得的名词短语字典对工作经历文本进行最大匹配标注,来获得大量略带噪音的训练数据。

本文的超参设置参照了这篇论文[7]中推荐的数值。度量标准有两个,一是准确率(Accuracy),即每个词或字的标签准确率;其二是Chunk的F1分数,即该Chunk是否被精准预测,Chunk的范围必须准确被提取。

各个模型的在验证集上的准确率和F1,如下表所示:Modeltrain_accdev_accdev_f1

word_baseline94.9994.1184.72

word+charLSTM95.9594.9585.21

word+charCNN95.6594.3284.96

word+charLSTM+attention95.8194.8585.01

word+charCNN+attention95.5594.2084.82

char_baseline91.9291.9777.56

char+seg92.2592.0578.54

char+bichar98.3994.6385.09

char+seg+bichar+radical*98.7595.6287.66

word+charLSTM+pre_trained_emb97.2695.6786.63

IDCNN94.9993.8181.82

其中,字符输入拼接分词信息加bi-char加偏旁部首信息的模型最终取得了87.66的最佳性能。另外,词级别的模型中,使用预训练词向量且拼接通过LSTM提取词内部字符信息的模型取得最佳。中文序列标注任务采用本文类似模型框架的相关论文中提及的最佳的F1一般在93-95左右,我们的推测是真实简历的工作经历数据中存在的不少脏信息和字典标注样本的缺陷造成了这一差距,也因此我们后续在改进样本质量和引入预训练策略上还有不小改进空间。

总结

本文梳理了目前主流的序列标注任务的框架,介绍了中文序列标注模型之于英文不同的特征输入,并基于工作经历文本尝试使用上文提到的各个模型进行训练,其中,利用丰富的特征输入的字符级别的模型取得了最好的结果。

未来我们规划中的改进方向有如下的几点:

进入2018年,语言模型[8-10]有开始取代词向量作为模型输入的趋势,在各项NLP任务中均取得了较为显著的性能提升;

将char的Ngram信息通过CNN进行提取,能够减小模型大小,并引入更多Ngram的信息;

运用强化学习[11]对标注样本中的不合理样本进行修正。

参考文献

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值