融入词汇信息的基于字的命名实体识别方法
融入词汇信息的基于字的命名实体识别方法
基于词的中文命名实体识别方法,前期存在不可避免的分词错误,会导致后期命名实体识别过程中
实体边界识别错误,进而导致方法的性能指标下降。
而基于字的命名实体识别方法,虽然不存在分词错误,但是没有考虑词的信息。
经验上,相当一部分实体边界是词的边界,说明词可以提供丰富的边界信息。
对于句子南京市长江大桥
若无词信息,可以会提取出南京市长
、江大桥
这种错误信息。
基于词与基于字的模型结构如下所示
为了提高基于字的命名实体识别方法的性能指标,研究者考虑将词汇信息融入基于字的命名实体识别方法中。
Chinese NER Using Lattice LSTM
与An Encoding Strategy Based Word-Character LSTM for Chinese NER
就是其中的两篇经典论文,下面分别介绍。
Chinese NER Using Lattice LSTM
经典的LSTM框图、计算公式如下, 详细可参考如何从RNN起步,一步一步通俗理解LSTM
作者提出为了融入词汇信息,作者提出了Lattice LSTM。框架如下图
Lattice LSTM的基本框架是基于字级的LSTM,但是在隐状态向量传递的中间,多加了一个词汇路径
从词汇开始的字流向词汇结束的字。控制词汇信息流动的门控计算公式如下。
是词汇开始字输出hidden state, 是词嵌入向量,是词汇开始字输出的cell state
由于会存在多个词汇,以相同的字结尾,所以会有多条路径通向同一个字。作者利用softmax公式,计算各个词汇信息输入的input gate和原本字符的input gate比重,来计算字最后的cell state,之后hidden state与普通的LSTM计算公式一样。具体的公式如下
计算cell state,作者并没有使用遗忘门,参考一些博主的解释:在控制词汇信息流入的时候,已经对主干的cell state进行了forget控制。就是公式13中的forget门的作用
缺点:
由于词汇的长度和数量是变量,无法固定,所以Lattice LSTM无法批量训练。实际使用过程中,由于无法批量训练并且结构复杂,所以导致模型训练较慢
An Encoding Strategy Based Word-Character LSTM for Chinese NER
总体模型框架图如下
与lattice LSTM相比,该方法并没有改变原本双向lstm结构,而是在输入的字向量中融入词汇信息。
在forward LSTM中融入基于字开头的词汇信息。
在backward LSTM中融入基于字结尾的词汇信息。
跟lattice LSTM中存在相同的情况,即存在多个以相同字开头的词汇信息,或多个以相同字结尾的词汇信息。
作者分别采取四种策略,来解决这种情况。
- Shorest Word First: 选择其中(相同字结尾或相同字开头的词汇列表中)最短的词汇(信息)
- Longest Word First:选择其中(相同字结尾或相同字开头的词汇列表中)最长的词汇(信息)
- Average:对词汇信息进行平均
- Self-Attention:利用自注意力机制对词汇信息赋予不同的权重,进行计算。
需要说明一下论文中细节
由于需要批量训练,所以每个字融入的词汇信息维度必须是一样的。
所以必须确定单个字融入的词汇信息数量这个超参数。
参考
论文阅读总结——Chinese NER Using Lattice LSTM
chinese ner using lattice lstm
An Encoding Strategy Based Word-Character LSTM for Chinese NER