成语大全网 - 成语词典 - 序列标注任务常用方法

序列标注任务常用方法

HMM 中,有5个基本元素:{N,M,A,B,π},结合 序列标志任务(NER) 对其的概念定义为:

而以上的这些元素,都是可以从训练语料集中统计出来的。最后根据这些统计值,应用 维特比(viterbi) 算法,算出词语序列背后的标注序列了,命名实体识别本质上就是序列标注,只需要定义好对应的标签以及模式串,就可以从标注序列中提取出实体

假设对于t时刻的一个词 公式就可写作:

齐次马尔科夫性假设:隐藏的马尔科夫链在任意时刻t的状态只依赖于其前一时刻的状态,与其他时刻的状态及观测无关,也与时刻t无关

观测独立性假设:假设任意时刻的观测只依赖于该时刻的马尔科夫链的状态,与其他观测即状态无关.观测概率的公式可以表达如下:

将发射概率和转移概率相结合,得到整个句子最后的公式:

相对于HMM,CRF有两个优势

令 是观测序列, 是状态序列, 是 CRF 模型的参数,则 的条件概率是:

其中 是 CRF 特征函数集,加上正则化项,在做对数变换就得到

CRF 训练的目的是求解令 最大化的

应用于NER中的BiLSTM-CRF模型主要由Embedding层(主要有词向量,字向量以及一些额外特征),双向LSTM层,以及最后的CRF层构成。 实验结果表明biLSTM-CRF已经达到或者超过了基于丰富特征的CRF模型,成为目前基于深度学习的NER方法中的最主流模型。 在特征方面,该模型继承了深度学习方法的优势,无需特征工程,使用词向量以及字符向量就可以达到很好的效果,如果有高质量的词典特征,能够进一步获得提高

正常 CNN 的filter,都是作用在输入矩阵一片连续的区域上,不断sliding做卷积。 dilated CNN 为这个filter增加了一个 dilation width ,作用在输入矩阵的时候,会skip所有 dilation width 中间的输入数据;而filter本身的大小保持不变,这样filter获取到了更广阔的输入矩阵上的数据, 看上去就像是膨胀了一般。 具体使用时, dilated width 会随着层数的增加而指数增加。这样随着层数的增加,参数数量是线性增加的,而 receptive field 却是指数增加的,可以很快覆盖到全部的输入数据。

图中可见感受域是以指数速率扩大的。原始感受域是位于中心点的1x1区域:

对应在文本上,输入是一个一维的向量,每个元素是一个 character embedding :

IDCNN 对输入句子的每一个字生成一个 logits ,这里就和 BiLSTM 模型输出 logits 完全一样,加入 CRF 层,用 Viterbi 算法解码出标注结果,在 BiLSTM 或者 IDCNN 这样的网络模型末端接上 CRF 层是序列标注的一个很常见的方法。 BiLSTM 或者 IDCNN 计算出的是每个词的各标签概率,而 CRF 层引入序列的转移概率,最终计算出loss反馈回网络

BERT模型+全连接层 :BERT的encoding vector通过 FC layer 映射到标签集合后,单个token的output vector经过Softmax处理,每一维度的数值就表示该token的词性为某一词性的概率。基于此数据便可计算loss并训练模型。但根据 BiLSTM+CRF 模型的启发,在 BERT+FC layer 的基础上增加 CRF layer 加入一些约束来保证最终的预测结果是有效的。这些约束可以在训练数据时被CRF层自动学习得到,从而减少预测错误的概率

BiLSTM+CRF 优点是泛化能力强;缺点是 需要大量的标注样本 。在样本很少的情况下,效果会很不理想。为了更快速地实现一个实体提取器,提高系统易用性,可以采用 迁移学习 的思想,在先验知识的基础上进行模型训练,从而使用 BERT+BiLSTM+CRF

同样的,输入是wordPiece tokenizer得到的 tokenid ,进入Bert预训练模型抽取丰富的文本特征得到 的输出向量,输出向量过 BiLSTM 从中提取实体识别所需的特征,得到 的向量,最终进入 CRF 层进行解码,计算最优的标注序列

NLP新人,欢迎大家一起交流,互相学习,***同成长~~