原文链接:https://www.ijcai.org/Proceedings/2019/0692.pdf
代码: https://github.com/guitaowufeng/LR-CNN
本文模型提出的动机是,尽管现有的融合了lexicon信息的RNN模型在中文NER任务中取得了一定的成功,但这类模型存在两处缺点
效率限制: 基于RNN的模型由于循环结构的限制无法进行并行操作,尤其是Lattice-LSTM;
Lexicon冲突问题: 当句子中的某个字符可能与lexicon中的多个word有关时,基于RNN的模型难以对此做出判断。例如,图一中的"长"可能属于"市长"一词,也可能属于"长隆"一词,而对"长"所属lexicon word判断的不同,将导致对字符"长"预测的标签不同。
基于以上问题,本文提出一种含有rethinking 机制的CNN网络(LR-CNN),从以下两个方面对motivation中发现的问题进行解决
通过CNN对句子与lexicon中存在的词语进行处理
通过rethinking机制解决lexicon conflict: 大多数中文NER模型都通过前向网络结构对特征进行学习,因此无法在获得完整的句子信息后对lexicon conflict进行处理。因此通过再添加一层以高层特征为输入的feedback layer, 来调整lexicon words间的权重进而解决冲突问题。
本文总结如下三点贡献
设计了能够将lexicon信息融入到中文NER的CNN结构模型,且有效地加速了模型的训练;
设计了Rethinking机制来处理了上文所说的lexicon conflict问题;
本文模型取得了较好的效果,且运行速度达到目前SOTA模型的3.21倍
LR-CNN模型主要包括Lexicon-Based CNNs和Refining Networks with Lexicon Rethinking两部分
首先将输入的句子表示为 C = c 1 , c 2 , . . . , c n C={c_1,c_2, ..., c_n} C=c1,c2,...,cn, 其中 c i c_i ci 表示句中 i i i 个字符维度为 d d d 的embedding表示; 然后,对 lexicon 中能够与句子中字符序列匹配上的词语进行表示: w m l w^l_m wml = { c m c_m cm, …, c m + l − 1 c_{m+l-1} cm+l−1}, 其中 m m m代表字符下标, l l l 代表词语长度, 例如在图1中, w 1 2 w^2_1 w12=广州, w 1 3 w^3_1 w13=广州市。接下来用CNN模型对字符特征进行编码,并通过attention模块融入lexicon信息。
CNN使用维度为 d × l d \times l d×l 的矩阵作为卷积核,其中 l l l 代表卷积核窗口大小;CNN使用不同大小窗口的卷积核进行特征提取,当窗口大小为2时,表示抽取bigram特征,大小为 l l l 时,表示抽取 l − g r a m l-gram l−gram特征。卷积操作后得到的 l − g r a m l-gram l−gram 句子特征表示为 C m l C_m^l Cml , 将对应于 w m l w^l_m wml 通过attention操作融入lexicon信息,attention部分的计算过程如下:
由于CNN的分层结构,低层的potential words信息无法影响到高层的words,因此设计rethinking机制,处理lexicon中potential words的冲突问题。
在本文中,将CNN的顶层特征 X m L X^L_m XmL 作为高层特征,通过向每一层CNN添加一个feedback layer来调整lexicon的权值,具体计算如下:
举例对这一过程进行说明,如果没有高层特征得到的"广州市"和"长隆",那么"市长"一词会对误导模型对字符"市"产生错误的预测。因此,需要通过高层特征(“广州市”)来降低"市长"一词在输出特征中权重。
在通过卷积核抽取 l − g r a m l-gram l−gram 特征的同时,句子中每个位置上的字符分别都得到了一个表示,因此通过attn机制将同一字符在不同卷积尺度下的特征进行融合:
最后得到的 X a t t = { X 1 a t t , X 2 a t t , . . . , X M a t t } X_{att}=\{X^{att}_1,X^{att}_2, ..., X^{att}_M\} Xatt={X1att,X2att,...,XMatt}将作为CRF层进行标签预测的输入。
以 X a t t X_{att} Xatt 为输入,通过CRF层对字符标签进行预测
主要介绍了数据集、比较的baseline模型以及超参设置,具体可见论文。
在分析章节中,本文首先通过LR-CNN在不同数据集上取得的结果说明了LR-CNN的实验效果,同时通过decoding time指出了LR-CNN在效率上较之Lattice-LSTM的提高。
然后,作者分析了句子长度对模型的影响,从两方面与Lattice-LSTM进行对比:
LR-CNN在实验中所有句子长度的设定下都取得了优于Lattice-LSTM的效果,尤其是句子长度小于12个字符时。因此得出结论: LR-CNN较之Lattice-LSTM更加具有处理短句的优势。
对不同句子长度下LR-CNN和Lattice-LSTM的decoding time进行统计,发现随着句子长度的增加,LR-CNN的速度降低较为稳定,而Lattice-LSTM的速度改变则比较显著。
最后,作者通过消融实验得出如下结论
消融实验 | 结论 |
---|---|
去掉lexicon信息 | lexicon信息对基于字符的中文NER是十分有用的 |
去掉rethinking机制 | rethinking机制能够有效提高融合lexicon信息后模型的实验结果(因为它可以处理字符与lexicon中word的冲突问题) |
同时去掉lexicon信息和rethinking机制 | 通过对比仅去掉lexicon信息和同时去掉lexicon和rethinking的实验结果发现,rethinking机制对没有lexicon的模型也能有一定的提升作用 |
了解更多论文分享信息,请关注公众号深度学习的知识小屋