独自快乐|Lattice LSTM,中文命名实体识别算法

中文命名实体识别(NER)算法按照输入的类型 , 可以大致分为Character-based(字符)和Word-based(单词)两种 。 这两种方法都存在一些缺陷 , Character-based不能利用词汇和词汇序列信息;Word-based需要分词 , 分词的错误会对NER结果产生较大影响 。 因此新加坡的研究者在2018年提出了一种LatticeLSTM的算法 , 可以利用词汇信息 , 也可以避免分词错误对模型的影响 。
1.前言
如上图所示 , 中文命名实体识别NER主要有Character-based(基于字符)方法和Word-based(基于单词)方法:基于单词的方法首先会利用分词模型对句子分词 , 然后把分好的单词序列传递到NER模型中预测实体 。 基于字符的方法不对句子分词 , 每一个token就是一个汉字 , 直接将token序列传递到NER模型预测实体 。 但是这两种方法都存在一些问题:
基于字符的方法不能利用词汇和词汇序列的信息 , 而这些信息对于实体识别通常很重要 。 基于单词的方法需要经过分词模型和NER模型 , 分词中产生的错误会传递到NER模型中 。 这种分词边界的错误会导致NER模型出错 , 这种情况在开放领域的NER任务中尤其严重 。基于上面的原因 , 新加坡的研究人员于2018年提出了LatticeLSTM模型 , 论文《ChineseNERUsingLatticeLSTM》 。 LatticeLSTM会利用词典匹配句子中的单词 , 然后构造出字符和单词的网格(Lattice) 。 LatticeLSTM的神经元会同时接收字符和单词的信息 , 自动选择合适的字符或单词 , 实现消除歧义的功能 , 如下图所示 。
2.LatticeLSTM
上图展示了LatticeLSTM的结构 , 可以看成是Char-LSTM的扩展版 。 LatticeLSTM在Char-LSTM的基础上增加了word-basecell和额外的门结构 , 用于控制和选择信息流 。
LatticeLSTM用到的一些数学符号如下图所示:
我们首先看一下传统Char-LSTM的计算公式 , 对于LSTM不熟悉的童鞋可以参考之前的文章《循环神经网络RNN、LSTM、GRU》 。 Char-LSTM输出主要包括cellstatec和hiddenstateh , 计算公式如下:
上面是Char-LSTM的计算公式 , LatticeLSTM在这基础上增加了word-basecell , 用于计算单词子序列的cellstatec 。 下面的图展示了word-basecell的结构:
Word-basecell计算公式如下 , 生成一个包含单词信息的cellstate:
在上式中 , word-basecell是不包括输出门向量的 , 因为LatticeLSTM只在Char-LSTM上输出 。 得到word-base的cellstate后 , Lattice需要融合到Char-LSTM的cellstate上 , 这一过程需要增加一个输入门向量 , 并且要对输入门向量进行归一化 , 如下所示:


推荐阅读