Contextual String Embedding for Sequence Labeling
1. Introduction
序列标记问题作为NLP的基本问题,其结果好坏对与后续任务有著至关重要的影响。此外,自然语言处理中的许多任务也均能转化为序列标记问题,如命名实体识别、分词、词性标注等。在传统的机器学习方法中,最初使用隐马模型实现sequence labeling,其主要思想是将标记序列作为隐状态序列而将sentence作为观察的显示序列,通过定义5元组(隐状态集合 ,观测值集合 ,状态转移矩阵 ,初始状态概率分布 以及指定状态下观测值的概率分布 )计算观察序列各个时刻的概率分布。HMM一般包括两个基本问题即评估问题(给定观察序列求其出现的概率),其对应前向演算法和后向演算法,解码问题(给定观察序列确定最有可能的隐状态序列,即序列标记问题),其对应Viterbi演算法。然而,对于简单的HMM演算法,由于隐序列的各个状态仅由观察序列的各个状态确定,而相邻时刻的隐状态没有发生直接的联系,因此在词性标注等任务中会出现如两个介词连用的错误情形,对此学者的简单想法是让相邻隐状态间发生直接联系,即考虑添加隐状态间的状态转移矩阵,故在最大熵模型的基础上提出了CRF模型,CRF模型在前深度学习时代得到了广泛的应用,然而这种非连接主义的方法最大的缺点是依赖人工设计特征描述子。直至deep learning大火后我们现在也仍需使用embedding+BiLSTM进行特征表示,然后仍需外加CRF进行序列标记,只不过其模型的参数由学习而得。有关序列标记的详细介绍可以参考我的这篇笔记:
PoderLee:NLP中的序列标注问题(隐马尔可夫HMM与条件随机场CRF)?zhuanlan.zhihu.com