针对中文命名实体识别(NER)中存在的分词信息缺失等问题,小米 AI 实验室 NLP 平台团队近期提出一种新颖的多孔词格模型 PLTE(PorousLatticeTransformerEncoder)。
多孔词格模型 PLTE 基于优化后的 Transformer 编码器,将分词信息有效地融入到字符级别的命名实体识别模型中,在保证识别效果的同时,识别效率可达到 Lattice-LSTM 命名实体识别模型的 11.4 倍。配合预训练模型,PLTE 效果更佳。
目前该工作已经被 COLING 2020 接收,论文链接https://arxiv.org/abs/1911.02733。本工作与中国科学院信息工程研究所柳厅文老师、西湖大学张岳老师合作完成。
背景
命名实体识别任务可以建模为序列标注问题,其中实体边界和类别标签被联合预测。不同于英文命名实体识别,中文没有明显的词边界,导致命名实体识别任务更加困难。一种直观的方法是先分词再进行词级别的序列标注,但这种方法会造成分词的错误传递;另一种是直接基于字符级别的序列标注,但这种方法忽略了词级别的信息;第三种折衷的方法是把词信息融入到基于字符级别的序列标注中,这种方法包括数据融合(例如分词和 NER 进行多任务学习)和结构融合(例如通过修改模型结构直接将词典融入到训练过程)。其中结构融合最具代表性的工作是 Lattice-LSTM[1]模型,该模型结构如下图所示:
模型精髓体现在:
即第 j 个字符的细胞状态表示为该字符的细胞状态与以该字符为结尾的词的细胞状态的加权和。该模型的不足之处体现在:
1、在 Lattice LSTM 中,第 j 个字只能获取以该字为结尾的词信息以及它之前时刻的字、词信息,但无法获取"Inside"词的信息;
2、DAG 网络结构导致速度过慢问题。
针对上述问题,我们提出了多孔词格 Transformer 编码器模型 PLTE,该模型简单有效地将词信息融入到了字符级命名实体识别结构中。
多孔词格编码器
在 Transformer 中,字、词的位置信息通过位置向量与字、词向量相加得到。因此,在 PLTE 的输入层,我们将词序列直接与字符序列拼接,避免了 DAG 结构。在进行自注意力计算时,为了解决词信息的引入和 NER 关注局部特征的特点,我们引入了 Lattice-Aware Self-Attention(LASA)与 Porous Multi-Head Attention(PMHA)两种关键技术。
词格自注意力(LASA)
在位置向量的计算过程中,由于词语位置被定义为词语开始字符的位置,导致模型忽略了相对位置信息,例如包含、相邻等相对位置。受到文献[2]中针对词格注意力相对位置处理的启发,我们定义了八种相对位置关系,融合到自注意力计算过程中。
多孔多头注意力(PMHA)
文献[3][4]中提到,自注意力机制应该对局部信息与远程信息进行区分,尤其在命名实体识别任务中,模型应更关心局部上下文信息对当前字、词的影响。因此在词格自注意力的基础上,我们引入了多孔结构。具体地说,我们引入一个中间节点 s,当前字、词仅对相邻字词及 s 进行注意力计算,且节点 s 会对输入序列中每个位置的字、词进行 attention 计算。在多孔结构下,当前字、词对于相邻字、词有两种信息传递方式:直接传递或者通过节点 s 传递;对于非相邻字、词只有一种信息传递方式,即通过节点 s 传递。由此,我们可以强化局部信息,弱化远程信息对当前字、词产生的噪音。
实验结果
我们在四个常用的中文数据集上验证我们方法的效果。我们与一些已有的 NER 常用模型、结构融合词信息模型进行对比,结果如表 1、表 2 所示:
我们同时在词表词向量与预训练词向量两种模式下进行测试。在使用词表词向量时,当前模型超过了对比模型。在预训练词向量模式下,模型的优势更明显。论文中给出了这种现象的合理猜想:当前模型使用的是 Transformer 编码器,在模型结构上与 BERT 等预训练语言模型更加适配;同时当前模型结构简洁,更适合微调预训练词向量。
模型解码速度对比
我们在四个数据集上对比了模型的解码速度,结果如表 3 所示:
在实验中,我们设置 PLTE 的 batch 大小为 16。在词表词向量模式下,PLTE 模型解码速度可达到 Lattice LSTM 的 11.4 倍。即使使用预训练词向量,PLTE 的解码速度依然可以提升 7.11 倍。
总结
我们针对中文 NER 任务中词信息欠缺的问题以及 NER 任务局部性的特点,综合考虑速度与模型结果因素,提出了多孔词格编码器,在保证模型识别效果的同时,大幅提升了模型识别效率,同时可与 BERT 等预训练语言模型进行适配,有效推广了命名实体识别能力在公司业务中的应用落地。
参考文献
[1] Yue Zhang and Jie Yang. 2018. Chinese NER Using Lattice LSTM. InACL, pages 1554–1564.
[2] Fengshun Xiao, Jiangtong Li, Hai Zhao, Rui Wang, and Kehai Chen. 2019. Lattice-Based Transformer Encoder for Neural Machine Translation. InACL, pages 3090–3097.
[3] Baosong Yang, Zhaopeng Tu, Derek F. Wong, Fandong Meng, Lidia S. Chao, and Tong Zhang. 2018. Modeling Localness for Self-Attention Networks. InEMNLP, pages 4449–4458.
[4] Hang Yan, Bocao Deng, Xiaonan Li, Xipeng Qiu. 2019. TENER: Adapting Transformer Encoder for Named Entity Recognition. Preprint arXiv: 1911.04474.
评论