条件随机场
1. 首先为什么会有条件随机场呢?
假如我们要做一个task,我们手里的数据是嫦娥姐姐从起床开始到晚上睡觉前的一整天各个时间段的照片,如果我们要对这些照片分类,比如吃饭、睡觉、锻炼、唱歌的照片分别打上对应的标签。一般来讲,简单粗暴的方法就是不考虑照片之间的时序性,直接根据照片内容特征打上标签作为训练集,训练一个多元分类器。
但是 如果我们考虑照片之间的时间顺序这一信息,那么分类器的效果可能就会更好一点的吧!!!举个?,假如有一张嫦娥姐姐闭着嘴的照片,怎么分类?显然难以直接判断,需要参考闭嘴之前的照片,如果之前的照片显示嫦娥姐姐在吃饭,那这个闭嘴的照片很可能是嫦娥姐姐在咀嚼食物准备下咽,可以给它打上吃饭的标签;如果之前的照片显示嫦娥姐姐在唱歌,那这个闭嘴的照片很可能是嫦娥姐姐唱歌瞬间的抓拍,可以给它打上唱歌的标签。
综上所以 引入条件随机场的目的就是我们在给一张照片分类的时候,将相邻的标签信息考虑进来。
2. 什么是条件随机场呢?
我们举个例子来看下,CRF进行命名实体识别时,所做的序列标注任务是如何完成的!!
首先CRF是在HEM和HMM的基础上,构建了一个条件概率模型来分割和标记序列数据,可以根据给定的观察序列来预测对应的状态序列,且目标函数同时考虑输入的状态特征函数和标签转移特征函数,所以被广泛应用于NER的问题中。CRF应用到命名实体识别的任务中主要是根据BLSTM模型的预测输出序列求出使得目标函数最优化的序列。
X与Y是随机变量,在给定X的条件下,如果每个随机变量Y_v满足未来状态的条件概率与过去状态是条件独立,仅依赖于当前状态,如公式(1)
则(X,Y)为一个CRF。常用的一阶链式结构CRF如下图1所示:
图1 条件随机场一阶链式结构
在自然语言处理的领域中,CRF是用于预测与输入序列相对应标注序列的概率化模型,在命名实体识别上有很好的应用。给定文本序列x={x_1,x_2,⋯,x_n}和根据BERT-BLSTM模型的输出预测序列y={y_1,y_2,⋯,y_n},通过条件概率P(y/x)进行建模,则有式(2)
其中,i表示当前节点在序列中的索引,m,n表示在当前节点i上的特征函数总个数。 t_n表示节点特征函数,只和当前位置有关。μ_m表示局部特征函数,只与当前节点和上一个节点位置有关。β_n λ_m分别表示特征函数t_n和μ_m对应的权重系数,用于衡量特征函数的信任度。Z(x)为归一化因子,如式(3):
CRF能够通过考虑相邻之间标签的关系得到全局最优的标记序列,为对比分析模型有效性,本文采用最优化方法最大似然估计损失函数,在对条件概率建模的基础上,使用维特比算法解码得到全局最优的标注序列,得到命名实体。基于CRF的命名实体识别模型如下图2所示:
图2 基于CRF命名实体识别模型