CRF条件随机场的理解
CRF能用来做什么?
CRF 是一个序列化标注算法(sequence labeling algorithm),接收一个输入序列如
并且输出目标序列
,也能被看作是一种seq2seq模型。这里使用大写 X,Y 表示序列。例如,在词性标注任务中,输入序列为一串单词,输出序列就是相应的词性。
除了词性标注之外,CRF还可以用来做chunking,命名实体识别等任务。一般地,输入序列 X 被称为 observations, Y 叫作 states。于是我们可以将简单版linear CRF的图模型表达出来。
Random 指的是随机变量 X and Y
Conditional 指的是条件概率 Conditional probability.
这就意味着CRF是一个判别式模型。
通常,判别式模型 discriminative model 计算条件概率,而生成式模型 generative model 计算联合概率分布。
- 判别式模型(Discriminative Model):直接对条件概率p(y|x)进行建模,常见判别模型有:线性回归、决策树、支持向量机SVM、k近邻、神经网络等;
- 生成式模型(Generative Model):对联合分布概率p(x,y)进行建模,常见生成式模型有:隐马尔可夫模型HMM、朴素贝叶斯模型、高斯混合模型GMM、LDA等;
我们先从隐马尔科夫模型(HMM)入手理解这两种模型的区别,然后从HMM推广出CRF。
HMM可以用有向图模型来表示,因为states与observations之间存在着明显的依赖关系。