《Neural Architectures for Named Entity Recognition》


说明:只讲前面的biLSTM+CRF,后面的S-LSTM不讲

实体抽取方式

1.基于规则和词典—传统
2.基于统计机器学习的方法,如CRF,HMM—传统
3.深度神经网络—现在

CRF简单简介

假设有有一句话5个词,则这句话的可能的序列标注有如下:
(名词,动词,形容词,名词,名词)
(名词,动词,动词,名词,名词)

(名词,形容词,副词,动词,名词)等很多种可能。
crf:用来判断上面哪种可能性更大。

CRF可以通过定义一组特征函数来打分
比如:形容词后面通常跟名词,所以出现这样的序列就加一分;动词后面通常不会再出现动词,如果出现这种情况就减一分;等等…
crf介绍链接

模型

《Neural Architectures for Named Entity Recognition》

BiLSTM层

《Neural Architectures for Named Entity Recognition》
经过一个BiLSTM之后再经过一个softmax,可以得到每个字对应的标签,实际上已经能够得出这个字属于哪个标签,后面再加上CRF,完全是为了保证序列的输出严格性,因为CRF对于预测序列有较强的的限制性,比如B-PRESON后面只能为I-PERSON或者O之类的限制。

CRF层

《Neural Architectures for Named Entity Recognition》
crf层的作用是找出 一组标注序列 中的最大可能性的 一个序列标注。

打分

《Neural Architectures for Named Entity Recognition》
以上表格对应的是经过一个BiLSTM后再经过一个全连接层后得到的每个字对应每个标签的可能性。
《Neural Architectures for Named Entity Recognition》
以上表格代表的是当前标签为x,下一个标签为y的可能性。如当前标签是B,则下一个是M的可能性是0.5、下一个是E的可能性是0.5,等等…
《Neural Architectures for Named Entity Recognition》
以上就是对每个序列打分的计算公式。Ayi,yi+1A_{y_i,y_{i+1}}代表转移矩阵的打分,Pi,yiP_{i,y_{i}}代表BiLSTM后的打分,两者求和即可。

a check

单词中出现tion/ment/…通常为名词,单词中出现-al通常为形容词,以及前缀和后缀的信息,等等…
能不能提取字符内的特征?
可以,如下图:
《Neural Architectures for Named Entity Recognition》
每个单词拆分成一个字母一个字母的,然后再经过一个BiLSTM,输出一个拼接的char embedding,最后和这个单词的word embedding拼接在一起,作为整个模型的输入。

训练

《Neural Architectures for Named Entity Recognition》
训练目的,最大化上图公式。
以下再加个log得到如下公式
《Neural Architectures for Named Entity Recognition》

实验结果

《Neural Architectures for Named Entity Recognition》