定义:
条件场是随机变量的集合,这些随机变量根据概率分布被赋予相应的值。
形象比喻:
假设你有一组关于 Justin Bieber的日常生活照(你可以想像成Bieber是个自拍狂,经常在朋友圈晒自拍),你想标注一下这些照片描绘的活动场景(比如Bieber是在吃饭、参加舞会、开车,还是在睡觉呢),你会怎么做呢?
一种方法是不考虑照片的发生先后关系,通过svm、决策树之类的分类方法,对每张照片单独分类。比如,你有事先标注的关于Bieber的一个月的日常生活照,你可以通过这些标注集训练一个分类器,通过这些标注集合,你可能得到一个这样的分类器:拍摄于晚上6点之后光线很暗的照片是在睡觉,拍摄于晚上灯光闪烁的照片是在参加舞会.....
通过上述方法虽然也能解决问题,但是会丢失一些信息,比如有一张照片是bieber嘴的一个特写,你怎么判断他是在吃法还是在唱歌呢?如果你能知道,这张照片的前一张是关于Bieber在做饭的照片,那这张嘴的特写照很可能就是在吃饭;反之,前一张照片是在参加舞会,那这张特写就更可能是在唱歌。
因此,为了提高照片标注的准确性,我们就需要参考相邻照片的标注,这就是序列标注问题,也是条件随机场能大显身手的场景。
Bi-LSTM+CRF应用:
在进行命名实体识别任务中,该模型有着很好的效果。下图为该模型的结构:尽管不需要了解BiLSTM的实现细节,但为了更好的理解CRF层,我们还是需要知道一下BiLSTM的输出到底是什么意思。
BiLSTM层的输入表示该单词对应各个类别的分数。如W0,BiLSTM节点的输出是1.5 (B-Person), 0.9 (I-Person), 0.1 (B-Organization), 0.08 (I-Organization) and 0.05 (O)。这些分数将会是CRF层的输入。
所有的经BiLSTM层输出的分数将作为CRF层的输入,类别序列中分数最高的类别就是我们预测的最终结果。
即使没有CRF层,我们照样可以训练一个基于BiLSTM的命名实体识别模型,如下图所示
因为BiLSTM模型的结果是单词对应各类别的分数,我们可以选择分数最高的类别作为预测结果。如W0,“B-Person”的分数最高(1.5),那么我们可以选定“B-Person”作为预测结果。同样的,w1是“I-Person”, w2是“O”,w3是 “B-Organization” ,w4是 “O”。
但这样的预测结果不一定总是正确的,这时CRF就起到作用了!CRF可以加入一些约束来保证最终预测结果时有效的。这些约束可以在训练数据时被CRF层自动学习到。
其优点是为一个位置进行标注的过程中可以利用此前已经标注的信息,利用维特比解码来得到最优序列。