CRF条件随机场loss函数与维特比算法理解

1. 参考资料

详解条件随机场(CRF)-batch版本:https://zhuanlan.zhihu.com/p/38119194
简明条件随机场CRF介绍 | 附带纯Keras实现:https://www.jiqizhixin.com/articles/2018-05-23-3
序列标注算法(二):http://fancyerii.github.io/books/sequential_labeling2/
CRF(条件随机场)与Viterbi(维特比)算法原理详解:https://blog.csdn.net/qq_42189083/article/details/89350890

2. 总体思想

2.1 CRF loss函数

添加辅助的转移loss来优化序列标注对上下文预测label的约束能力。

  • 发射Score : P ( y i ∣ X i ) P(y_i|X_i) P(yiXi)
  • 转移Score(上下文约束): P ( y i + 1 ∣ y i ) P(y_{i+1}|y_i) P(yi+1yi)
  • CRF loss,相当于是从 k N k^N kN条路径中找到一个权重最大的路径,因为最终的正确路径只有一条:
    CRF条件随机场loss函数与维特比算法理解_第1张图片

CRF条件随机场loss函数与维特比算法理解_第2张图片
CRF条件随机场loss函数与维特比算法理解_第3张图片
其中N的求法有简洁的方式。

3. 用途?

最终通过优化loss函数,确定的是转移Score矩阵和发射Score矩阵,有了这个矩阵了,那我们就要想办法把最终的分词结果或者说是序列标注结果给找出来。

4. 如何找最优路径?(decoder)

最直接的方式是每个都计算一边,找score最大的。然后计算的过程中,我们发现有重复计算的情况,例如,我们找到一个节点的最优路径了,那么后面经过这个节点的最优路径前面的就不需要在计算了,这样可以大大减少这个计算量。
CRF条件随机场loss函数与维特比算法理解_第4张图片
CRF条件随机场loss函数与维特比算法理解_第5张图片

你可能感兴趣的:(nlp,算法)