背景
序列标注任务是中文自然语言处理(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,如下表所示:
Model |
train_acc |
dev_acc |
dev_f1 |
| word_baseline |
94.99 |
94.11 |
84.72 |
| word+charLSTM |
95.95 |
94.95 |
85.21 |
| word+charCNN |
95.65 |
94.32 |
84.96 |
| word+charLSTM+attention |
95.81 |
94.85 |
85.01 |
| word+charCNN+attention |
95.55 |
94.20 |
84.82 |
| char_baseline |
91.92 |
91.97 |
77.56 |
| char+seg |
92.25 |
92.05 |
78.54 |
| char+bichar |
98.39 |
94.63 |
85.09 |
| char+seg+bichar+radical * |
98.75 |
95.62 |
87.66 |
| word+charLSTM+pre_trained_emb |
97.26 |
95.67 |
86.63 |
| IDCNN |
94.99 |
93.81 |
81.82 |
其中,字符输入拼接分词信息加bi-char加偏旁部首信息的模型最终取得了87.66的最佳性能。另外,词级别的模型中,使用预训练词向量且拼接通过LSTM提取词内部字符信息的模型取得最佳。中文序列标注任务采用本文类似模型框架的相关论文中提及的最佳的F1一般在93-95左右,我们的推测是真实简历的工作经历数据中存在的不少脏信息和字典标注样本的缺陷造成了这一差距,也因此我们后续在改进样本质量和引入预训练策略上还有不小改进空间。
总结
本文梳理了目前主流的序列标注任务的框架,介绍了中文序列标注模型之于英文不同的特征输入,并基于工作经历文本尝试使用上文提到的各个模型进行训练,其中,利用丰富的特征输入的字符级别的模型取得了最好的结果。
未来我们规划中的改进方向有如下的几点:
进入2018年,语言模型 [8-10] 有开始取代词向量作为模型输入的趋势,在各项NLP任务中均取得了较为显著的性能提升;
将char的Ngram信息通过CNN进行提取,能够减小模型大小,并引入更多Ngram的信息;
运用强化学习 [11] 对标注样本中的不合理样本进行修正。
参考文献
- Huang Z, Xu W, Yu K. BidirectionalLSTM-CRF models for sequence tagging[J]. arXiv preprint arXiv:1508.01991, 2015.
- Chiu J P C, Nichols E.Named entity recognitionwith bidirectionalLSTM-CNNs[J]. arXiv preprint arXiv:1511.08308, 2015.
- Rei, Marek, Gamal KO Crichton, and Sampo Pyysalo. "Attending to characters in neural sequence labeling models." arXiv preprint arXiv:1611.04361 (2016).
- Zhang, Yue, and Jie Yang. "Chinese NER Using LatticeLSTM." arXiv preprint arXiv:1805.02023 (2018).
- Shao, Yan, et al. "Character-based joint segmentation and POS tagging for Chinese using bidirectional RNN-CRF." arXiv preprint arXiv:1704.01314 (2017).
- Strubell E, Verga P, Belanger D, et al. Fast and accurate entity recognition with iterated dilated convolutions[J]. arXiv preprint arXiv:1702.02098, 2017.
- Reimers N, Gurevych I. Optimal hyperparameters for deep lstm-networks for sequence labeling tasks[J]. arXiv preprint arXiv:1707.06799, 2017.
- Radford A, Narasimhan K, Salimans T, et al. Improving Language Understanding by Generative Pre-Training[J]. 2018.
- Peters M E, Neumann M, Iyyer M, et al. Deep contextualized word representations[J]. arXiv preprint arXiv:1802.05365, 2018.
- Howard J, Ruder S. Universal language model fine-tuning fortext classification[C]//Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). 2018, 1: 328-339.
- Ji G, Liu K, He S, et al. Distant Supervision for Relation Extraction with Sentence-Level Attention and Entity Descriptions[C]//AAAI. 2017: 3060-3066.
e成科技作为助力人才战略成功的AI平台, 开创性地将AI技术与人才战略升级场景深度结合,并基于画像和Bot(智能对话机器人),形成AI咨询、 AI招聘和AI产业三大支柱产品线,为企业和政府提供智能数字化决策解决方案。 e成科技始终秉持“打造人与任务新型连接平台” 的愿景,将“科技驱动人才升级” 作为自身使命不懈奋斗。
理论 深度学习 NLP NER 神经网络 LSTM CRF 强化学习 OCR
相关数据
Neural Network
(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。
来源:机器之心
Conditional random field
条件随机场(conditional random field,简称 CRF),是一种鉴别式机率模型,是随机场的一种,常用于标注或分析序列资料,如自然语言文字或是生物序列。 如同马尔可夫随机场,条件随机场为无向性之图模型,图中的顶点代表随机变量,顶点间的连线代表随机变量间的相依关系,在条件随机场当中,随机变量 Y 的分布为条件机率,给定的观察值则为随机变量 X。原则上,条件随机场的图模型布局是可以任意给定的,一般常用的布局是链接式的架构,链接式架构不论在训练(training)、推论(inference)、或是解码(decoding)上,都存在有效率的算法可供演算。 条件随机场跟隐马尔可夫模型常被一起提及,条件随机场对于输入和输出的机率分布,没有如隐马尔可夫模型那般强烈的假设存在。 线性链条件随机场应用于标注问题是由Lafferty等人与2001年提出的。
来源: 维基百科
Long-Short Term Memory
长短期记忆(Long Short-Term Memory) 是具有长期记忆能力的一种时间递归神经网络(Recurrent Neural Network)。 其网络结构含有一个或多个具有可遗忘和记忆功能的单元组成。它在1997年被提出用于解决传统RNN(Recurrent Neural Network) 的随时间反向传播中权重消失的问题(vanishing gradient problem over backpropagation-through-time),重要组成部分包括Forget Gate, Input Gate, 和 Output Gate, 分别负责决定当前输入是否被采纳,是否被长期记忆以及决定在记忆中的输入是否在当前被输出。Gated Recurrent Unit 是 LSTM 众多版本中典型的一个。因为它具有记忆性的功能,LSTM经常被用在具有时间序列特性的数据和场景中。
Mapping
映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。
来源: Wikipedia
Language models
语言模型经常使用在许多自然语言处理方面的应用,如语音识别,机器翻译,词性标注,句法分析和资讯检索。由于字词与句子都是任意组合的长度,因此在训练过的语言模型中会出现未曾出现的字串(资料稀疏的问题),也使得在语料库中估算字串的机率变得很困难,这也是要使用近似的平滑n元语法(N-gram)模型之原因。
来源: 维基百科
Named entity recognition
命名实体识别(NER)是信息提取(Information Extraction)的一个子任务,主要涉及如何从文本中提取命名实体并将其分类至事先划定好的类别,如在招聘信息中提取具体招聘公司、岗位和工作地点的信息,并将其分别归纳至公司、岗位和地点的类别下。命名实体识别往往先将整句拆解为词语并对每个词语进行此行标注,根据习得的规则对词语进行判别。这项任务的关键在于对未知实体的识别。基于此,命名实体识别的主要思想在于根据现有实例的特征总结识别和分类规则。这些方法可以被分为有监督(supervised)、半监督(semi-supervised)和无监督(unsupervised)三类。有监督学习包括隐形马科夫模型(HMM)、决策树、最大熵模型(ME)、支持向量机(SVM)和条件随机场(CRF)。这些方法主要是读取注释语料库,记忆实例并进行学习,根据这些例子的特征生成针对某一种实例的识别规则。
来源: David, N. & Satoshi, S. (2007). A survey of named entity recognition and classification
Natural language processing
自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。
来源: 维基百科
Planning
人工智能领域的「规划」通常是指智能体执行的任务/动作的自动规划和调度,其目的是进行资源的优化。常见的规划方法包括经典规划(Classical Planning)、分层任务网络(HTN)和 logistics 规划。
来源:机器之心
Reinforcement learning
强化学习是一种试错方法,其目标是让软件智能体在特定环境中能够采取回报最大化的行为。强化学习在马尔可夫决策过程环境中主要使用的技术是动态规划(Dynamic Programming)。流行的强化学习方法包括自适应动态规划(ADP)、时间差分(TD)学习、状态-动作-回报-状态-动作(SARSA)算法、Q 学习、深度强化学习(DQN);其应用包括下棋类游戏、机器人控制和工作调度等。
来源:机器之心
text classification
该技术可被用于理解、组织和分类结构化或非结构化文本文档。文本挖掘所使用的模型有词袋(BOW)模型、语言模型(ngram)和主题模型。隐马尔可夫模型通常用于词性标注(POS)。其涵盖的主要任务有句法分析、情绪分析和垃圾信息检测。
来源:机器之心
Vanishing Gradient Problem
梯度消失指的是随着网络深度增加,参数的梯度范数指数式减小的现象。梯度很小,意味着参数的变化很缓慢,从而使得学习过程停滞,直到梯度变得足够大,而这通常需要指数量级的时间。这种思想至少可以追溯到 Bengio 等人 1994 年的论文:「Learning long-term dependencies with gradient descent is difficult」,目前似乎仍然是人们对深度神经网络的训练困难的偏好解释。
来源:机器之心 Vanishing gradient problem
Weight
线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。
来源:Google AI Glossary
Accuracy
分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数
Noise
噪音是一个随机误差或观测变量的方差。在拟合数据的过程中,我们常见的公式$y=f(x)+\epsilon$中$\epsilon$即为噪音。 数据通常包含噪音,错误,例外或不确定性,或者不完整。 错误和噪音可能会混淆数据挖掘过程,从而导致错误模式的衍生。去除噪音是数据挖掘(data mining)或知识发现(Knowledge Discovery in Database,KDD)的一个重要步骤。
来源:Han J.; Kamber M.; Pei J. (2011). Data mining: concepts and techniques. Morgan Kaufman.
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 文本分类和序列标注“深度”实践
- 基于CNN和序列标注的对联机器人
- 中文处理工具包 FoolNLTK 发布序列标注训练代码
- 【NLP】用于序列标注问题的条件随机场(Conditional Random Field, CRF)
- 众包标注质量不稳定?让机器给标注工上个课吧! | KDD 2018
- 超级好用的视频标注工具
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Python for Data Analysis
Wes McKinney / O'Reilly Media / 2012-11-1 / USD 39.99
Finding great data analysts is difficult. Despite the explosive growth of data in industries ranging from manufacturing and retail to high technology, finance, and healthcare, learning and accessing d......一起来看看 《Python for Data Analysis》 这本书的介绍吧!