词法分析是NLP的一项重要的基础技术,包括分词、词性标注、实体识别等,其主要算法结构为基于Bi-LSTM-CRF算法体系,下面对Bi-LSTM-CRF算法体系进行介绍。
引言
首先抛开深层的技术原因,来从宏观上看一下为什么LSTM(Bi-LSTM)后接CRF效果会好。
首先引用一篇英文文献关于这个问题的介绍:
For sequence labeling (or general structured prediction) tasks, it is beneficial to consider the corelations between labels in neighborhoods and jointly decode the best chain of labels for a given input sentence. For example, in POS tagging an adjective is more likely to be followed by a noun than a verb, and in NER with standard BIO2 annotation I-ORG cannot follow I-PER. Therefore, we model label sequence jointly using a conditional random field (CRF), instead of decoding each label independently
End-to-end Sequence Labeling via Bi-directional LSTM-CNNs-CRF
总结起来就是,用CRF是为获取全局最优的输出序列,相当于对lstm信息的再利用
另外,引用知乎用户“穆文”的回答,从网络结构上来讲,Bi-LSTM-CRF套用的还是CRF这个大框架,只不过把LSTM在每个 t 时刻在第
Bi-LSTM-CRF算法体系架构图
双向LSTM(Bi-LSTM)
双向LSTM的架构如下图所示:
与传统LSTM不同,双向LSTM同时考虑了过去的特征(通过前向过程提取)和未来的特征(通过后向过程提取)。看起来虽然很复杂,但是简单考虑一下,所谓的后向过程相当于将原始序列逆向输入到LSTM中。所以从这个角度来看,双向LSTM相当于两个LSTM,一个正向输入序列,一个反向输入序列,再将两者的输出结合起来作为最终的结果。
学习过程
Bi-LSTM layer的输出维度是tag size,这就相当于是每个词 wi 映射到tag的发射概率值,设Bi-LSTM的输出矩阵为 P ,其中
对于输入序列 X 对应的输出tag序列
对输入序列 X 所对应的每个输出tag序列
可以看出优化目标为 maxs(X,y) ,优化方法为动态优化算法,细节见 Conditional random fields: Probabilistic
models for segmenting and labeling sequence
data.
参考
Bidirectional LSTM-CRF Models for Sequence Tagging