结构预测里的老熟人,条件随机场(CRF)还挺值得一聊的。它不靠猜,不靠蒙,而是看整个序列来判断每个标签,靠谱得。在 NLP 里像词性标注命名实体识别这种任务,CRF 用起来那叫一个顺手。

CRF 的思路其实不难懂:输入是观察数据(比如一句话的词),输出是想打的标签(比如这些词的词性)。不同于只看眼前的模型,CRF 讲究的是“全局视野”,考虑整个句子前后的信息。

建模时会用转移特征状态特征,前者负责两个标签之间的关系,后者管当前词和标签的匹配。像f(y_t, y_{t-1}, x_t)g(y_t, x_t)这些函数,就是用来打分的。

推理的时候,常用维特比算法。你可以理解成“从头到尾找一条分最高的路径”,一路筛选掉不靠谱的选项,只保留性最大的组合,挺像动态规划那套思路。

建议你如果平时搞 NLP 或者 CV 领域的任务,不妨把 CRF 和 Viterbi 一块学一学,尤其是在模型解释性比较重要的项目中,CRF 的表现真心还不错。

如果你想深入一点,看看这几个扩展阅读也蛮有的,像CRF 在序列标注中的应用HMM 模型实现都值得一读。