Chinese NER Using Lattice LSTM【论文笔记】

一、摘要

  作者在中文的NER任务上提出了一个新颖的lattice-structured LSTM,编码输入字符序列和所有与词库匹配的潜在词语。与基于字符的方法相比,我们的模型明确地利用了单词和单词序列信息。与基于单词的方法相比,lattice LSTM不会受到分词错误的影响。门控循环神经元允许模型选择最相关的字符和单词,以此得到更好的结果。在各种数据集的实验表明,与基于字符和单词的方法相比,lattice LSTM的性能是最好的。

二、介绍

  命名实体识别是信息抽取的基本任务,以序列标注的方式解决。目前英语NER的最好的方案是LSTM-CRF模型,将字符信息集成到单词表示中。
  中文NER与分词息息相关。特别地,命名实体边界通常也是词边界。一个很传统的中文NER做法就是,在序列标注之前先分词。然而,这会引入一定的噪声,因为一些命名实体是OOV词,不正确的单词边界会导致错误。这个问题在开放域中可能很严重,因为跨域分词仍然是一个未解决的问题。所以对于中文NER来说,基于字符的方法优于基于单词的方法。
  基于字符的NER方法的一个缺点就是没利用单词和单词序列信息。为了解决这个问题,我们通过使用lattice-structured LSTM表示句子中的词典单词,将潜在的单词信息整合到基于字符的LSTM-CRF中。如Figure1所示,我们通过将句子与自动获得的大词典进行匹配来构造单词字符点阵。比如单词序列长江大桥、长江、大桥可用于消除上下文中潜在的相关命名实体的歧义,比如人名“江大桥”。
Chinese NER Using Lattice LSTM【论文笔记】
  考虑到有大量的单词-字符路径,我们使用lattice LSTM结构自动地控制信息流流动。如图2所示,神经元用于动态地将信息从不同的路径路由到每个字符。通过训练NER数据,lattice LSTM可以学习从上下文中自动找到更有用的单词以获得更好的NER性能。与基于字符和基于字的NER方法相比,我们的模型具有在字符序列标记利用单词信息而不受分词错误的优点。
Chinese NER Using Lattice LSTM【论文笔记】

三、相关工作

  第一个用于NER任务的神经网络模型是单向LSTM模型;接着是CNN-CRF模型;字符级别的CNN模型;大多数最近的工作都利用了LSTM-CRF结构。Huang et al(2015)使用了手工拼写特征;Ma and Hovy(2016)和Chiu and Nichols(2016)使用字符级别的CNN表示拼写特征;Lample et al(2016)使用字符级别的LSTM代替。
  如何更好地利用中文NER的单词信息受到了持续的研究关注,其中分词信息已被用作NER的软特征,并且使用双重分解研究了联合分割和NER。虽然上述方法可能受到分词训练数据和分词错误的影响,但我们的方法不需要分词器。
  有研究在NER中引入外部信息。特别是,词典特征已被广泛使用。Peters et al.(2017)预训练字符级别的语言模型来增强词表示。Yang et al(2017)通过多任务学习利用跨域和跨语言知识。我们通过在大型自动分词的文本上预训练好词向量。
  lattice-structured RNN可以视为树结构RNN的拓展。现有工作相比,我们的lattice LSTM在动机和结构上都不同。例如,被设计用于以字符为中心的lattice-LSTM CRF序列标注任务,它有单词的循环神经元但没有隐藏层向量。据我们所知,我们是第一个为混合字符和词典单词设计新的lattice LSTM表示法,并且第一个使用单词字符 lattice 表示无分词的中文NER。

四、模型

  我们follow了最好的英文NER模型,使用LSTM-CRF作为主要网络结构。输入句子s=c1,c2,...,cms=c_1,c_2,...,c_ms=c1​,c2​,...,cm​,cjc_jcj​表示第j个字符,s也可以表示为单词序列s=w1,w2,...,wns=w_1,w_2,...,w_ns=w1​,w2​,...,wn​,wiw_iwi​表示第i个单词。我们使用t(i,k)t(i,k)t(i,k)表示句子中第i个单词的第k个字符的索引。举个例子,分词“南京市 长江大桥”,索引从1开始,那么t(2,1)=4()t(2,1)=4(长)t(2,1)=4(长),t(1,3)=3()t(1,3)=3(市)t(1,3)=3(市)。使用BIOES标记法进行标记。

4.1 基于字符的模型

  如下图所示,在字符序列c1,c2,...,cmc_1,c_2,...,c_mc1​,c2​,...,cm​中使用LSTM-CRF进行NER,每个字符cjc_jcj​表示为xjc=ec(cj)x^c_j=e^c(c_j)xjc​=ec(cj​),ece^cec表示为字符的词向量矩阵。使用双向LSTM获得字符的上下文信息,然后使用CRF层进行序列标注。
Chinese NER Using Lattice LSTM【论文笔记】

  • Char+bichar: 字符二元组信息在分词表示字符中很有用。我们通过将bigram向量与字符向量拼接起来,用bigram信息扩充基于字符的模型:xjc=[ec(cj);eb(cj,cj+1)]x^c_j=[e^c(c_j);e^b(c_j,c_{j+1})]xjc​=[ec(cj​);eb(cj​,cj+1​)],ebe^beb表示字符二元组的词向量矩阵。
  • Char+softword: 已经表明,使用分词作为基于字符的NER模型的特征可以提升模型的性能。我们通过将分词词向量拼接到字符向量来使用分词信息,以此增强字符表示:xjc=[ec(cj);es(seg(cj))]x^c_j=[e^c(c_j);e^s(seg(c_j))]xjc​=[ec(cj​);es(seg(cj​))],ese^ses表示分词的词向量矩阵,seg(cj)seg(c_j)seg(cj​)表示字符cjc_jcj​的分词标签。我们使用BMES机制来表示分词。

4.2 基于单词的模型

  如下图所示,每个词经过Embedding转化为词向量:xiw=ew(wi)x^w_i=e^w(w_i)xiw​=ew(wi​),然后经过双向LSTM得到词的上下文表示。
Chinese NER Using Lattice LSTM【论文笔记】

  • Integrating character representations: 字符级的CNN和LSTM都尝试过表示一个词的字符信息。词wiw_iwi​的字符表示为xicx_i^cxic​,那么词的新表示就由ew(wi)xice^w(w_i)和x^c_iew(wi​)和xic​拼接而成。xiw=[ew(wi);xic]x^w_i=[e^w(w_i);x^c_i]xiw​=[ew(wi​);xic​]
  • Word+char LSTM: 每个输入字符的词向量表示为ec(cj)e^c(c_j)ec(cj​),使用双向LSTM学习词wiw_iwi​的字符序列ct(i,1),...,ct(i,len(i))c_{t(i,1)},...,c_{t(i,len(i))}ct(i,1)​,...,ct(i,len(i))​,len(i)len(i)len(i)表示词wiw_iwi​的字符数。最后wiw_iwi​的表示为:xic=[ht(i,len(i))c;ht(i,1)c]x^c_i=[h^c_{t(i,len(i))};h^c_{t(i,1)}]xic​=[ht(i,len(i))c​;ht(i,1)c​]
  • Word + char LSTM´: 我们调查了word + char LSTM模型的变体,使用一个LSTM来获得字符cjc_jcj​的上下文表示。它与Liu et al(2018)的结构很相似,但没有使用highway layer。
  • Word+char CNN: 每个单词的字符序列使用CNN获得字符表示xicx^c_ixic​,字符cjc_jcj​的词向量用ec(cj)e^c(c_j)ec(cj​)表示, Chinese NER Using Lattice LSTM【论文笔记】

4.3 Lattice Model

  lattice模型的架构如图2所示,可以看成是基于字符模型的扩展,集成了基于词的神经元和额外门来控制信息流的流动。
  如下图所示,模型的输入是字符序列c1,c2,...,cmc_1,c_2,...,c_mc1​,c2​,...,cm​和与词库D匹配的所有字符子串。我们对大量语料自动分词来构造词库D。使用wb,edw^d_{b,e}wb,ed​来表示字符索引b开始e结尾的子串。比如w1,2dw^d_{1,2}w1,2d​表示“南京”。
Chinese NER Using Lattice LSTM【论文笔记】
  模型的输入有四种向量:输入向量、输出隐藏层向量、神经元向量、门向量。输入向量就是字符的词向量,xjc=ec(cj)x^c_j=e^c(c_j)xjc​=ec(cj​)。模型的递归结构在每个字符cjc_jcj​上使用一个字符神经元向量cjcc^c_jcjc​和一个隐藏层向量hjch^c_jhjc​,其中cjcc^c_jcjc​用来记录从句子开始到字符cjc_jcj​的信息流动,hjch_j^chjc​用来CRF层的序列标注。
  基本的递归LSTM函数如下,ijc,fjc,ojci^c_j,f^c_j,o^c_jijc​,fjc​,ojc​分别是输入门、忘记门、输出门:
Chinese NER Using Lattice LSTM【论文笔记】
  与基于字符模型不同,cjcc^c_jcjc​的计算要考虑句子的子串wb,edw^d_{b,e}wb,ed​,每个子串表示为:xb,ew=ew(wb,ed)x^w_{b,e}=e^w(w^d_{b,e})xb,ew​=ew(wb,ed​)。另外,词神经元cb,ewc^w_{b,e}cb,ew​表示从句子开始的递归状态xb,ewx^w_{b,e}xb,ew​:
Chinese NER Using Lattice LSTM【论文笔记】
  通过cb,ewc^w_{b,e}cb,ew​,有更多的递归路径的信息流进每个cjcc^c_jcjc​。例如,c7cc^c_7c7c​包括x7cx^c_7x7c​(桥)、c6,7wc^w_{6,7}c6,7w​(大桥)、c4,7wc^w_{4,7}c4,7w​(长江大桥)。我们链接所有的cb,ewc^w_{b,e}cb,ew​到神经元cecc^c_ecec​。我们对每个子串神经元cb,ewc^w_{b,e}cb,ew​使用一个额外的门ib,eci^c_{b,e}ib,ec​来控制信息流流进cecc^c_ecec​(原文是cb,ecc^c_{b,e}cb,ec​,我个人认为是写错了)。
Chinese NER Using Lattice LSTM【论文笔记】
Chinese NER Using Lattice LSTM【论文笔记】
Chinese NER Using Lattice LSTM【论文笔记】

4.4 解码和训练

  得到隐藏层向量h1,h2,...,hτh_1,h_2,...,h_{\tau}h1​,h2​,...,hτ​,标签序列y=l1,l2,...,lτy=l_1,l_2,...,l_{\tau}y=l1​,l2​,...,lτ​的概率为:
Chinese NER Using Lattice LSTM【论文笔记】

五、总结

  实验不再介绍。我们凭经验研究了中文NER的lattice LSTM-CRF表示,发现它与不同领域的基于字和词的LSTM-CRF相比性能更好。 由于在NER消歧的上下文中选择词典单词的*度,lattice方法完全独立于分词,但在使用单词信息方面更有效。

上一篇:5个强大的颜色管理工具,帮您设置色彩数据


下一篇:NER中的一些编码器与解码器