概述:
目前,英文NER:效果最佳的模型是 LSTM-CRF(Lample et al., 2016; Ma and Hovy, 2016; Chiu and Nichols, 2016; Liu et al., 2018)。
中文 NER:也可以使用这种模型,但是中文NER和分词相关,执行中文 NER 的一种直观方式是先执行分词,然后再应用词序列标注。基于character-level的LSTM-CRF无法利用句子中的单词word信息。
charNER的缺点:明确的word和word sequence的信息可能有潜在的价值,但却没有被利用。已有研究表明,中文 NER 中,基于字符的方法表现要优于基于词的方法(He and Wang, 2008; Liu et al., 2010; Li et al., 2014)。
然而,分割 → NER 流程可能会遇到误差传播的潜在问题,因为 NE 是分割中 OOV 的重要来源,并且分割错误的实体边界会导致 NER 错误。但是如果基于分词器,NER一旦出现分词错误,就会直接影响实体边界的预测,导致识别错误,这在开放领域是很严重的问题。
动机:
利用 lattice LSTM 来表征句子中的 lexicon word(南京,南京市,市长…),从而将潜在词信息整合到基于字符的 LSTM-CRF 中。由于在网格中存在指数级数量的词-字符路径,因此研究者利用 lattice LSTM 结构自动控制从句子开头到结尾的信息流。如Figure 2 所示,门控单元用于将来自不同路径的信息动态传送到每个字符,不会受到分词偏差的影响。
图1:Lattice LSTM 结构
整体模型:
整体的模型共分为3部分:(a) 基于字符的模型;(b) 基于词的模型;(c) Lattice模型
(a): 基于字符的模型
其中,Embed层可以有如下几种方式:
① Char Embedding
② Char+bichar Embedding
将单字符的Embedding与 当前字符和下一个字符组成的bigram的Embedding拼接后组成整体的Embedding
③ Char+softword Embedding
将单字符的Embedding与 当前字符所在的segment的Embedding拼接后组成整体的Embedding
(b): 基于词的模型
单词wi的Embedding:
同样地,在Embedding层,word的Embedding也要结合该word中包含的char的Embedding,即
获取当前word中的char Embedding也有如下几种方式:
① word+char LSTM
利用BiLSTM结构得到该word中所有char的Embedding
② word+char LSTM’
只是LSTM与①中略有不同
③ word+char CNN
利用一个标准的CNN来卷积当前word中所有的char Embedding
(c): Lattice模型
在基于字符的模型上附加了基于词汇对的cells和控制信息流的附加门。
模型的输入是所有字符以及字符序列组成的所有包含在词表D中的词汇。模型包括4种类型的向量,分别是:①输入向量;②输出隐向量;③cell向量;④门控向量
字符对应的基础的LSTM单元为:
词汇对应的LSTM 的cell表示公式为:
这个word cell并没有输出门,因为最终labeling的任务是针对char而并非word来进行的 。
对于一个单词的结尾字符来说,可能会有多条路径,比如“桥”字,会有“大桥”,“南京大桥”等多条路径的单词信息流入“桥”这个字符的表示,所以单独用一个额外的们来控制每个词汇的权重:
整体的cell value由字符的cell value和词汇的cell value组合而成:
char和word cell value的权重计算公式为:
(4) CRF解码
标准的CRF层
输入:经过Lattice model 的隐向量 h
输出:序列标注的概率
损失函数:sentence-level log-likelihood+L2正则