【NER-1】-2018 ACL Lattice-LSTM

本文介绍了Lattice LSTM在中文命名实体识别中的应用,通过引入晶格结构,结合字符和词语信息,减少词边界错误,提高NER准确性。模型利用Gated Recurrent Cells动态控制信息流动,尤其关注多音字处理和词表独立性。
摘要由CSDN通过智能技术生成

本文隶属于词表增强的模型,对后续的NER工作有较大的影响。

Pass1

看标题,针对中文NER,设计了一种Lattice(晶格)LSTM,虽然不知道这是什么LSTM,但既然主角是LSTM,那就是应该在LSTM的基础上做事。

看摘要:本文引入一种晶格(lattice)结构的LSTM模型,其对一序列输入以及词典中所有潜在的词语编码。和以字符(character-based)为基础的方法,本模型显式的引入了词语和词语序列的信息。和以词为基础(word-based)的方法比较,晶格LSTM并不会引入分割误差(segmentation errors)。Gated recurrent cells使得模型能够选择最相关的characters、words,在LSTM中。

  • 那么看起来lattice LSTM是一种不同于词、字符的方法。

开源代码: https://github.com/jiesutd/LatticeLSTM.

总结:除了之前已经看到的地方,作者对本方法的总结是:The lattice method is fully independent of word segmentation, yet more effective in using word information thanks to the freedom of choosing lexicon words in a context for NER disambiguation.

主要图:
首先作者大概描述了lattice是什么意思。在这里插入图片描述
例如,利用分词系统,还是可以排除一些实体的错误,例如分词得到的长江、大桥,可以避免我们得到不恰当的实体“江大桥”。(不过反过头来说,南京市长 江大桥,也不是说不行…)

  • 我突然就想到多音字这个问题了。。市长(zhang) 和长(chang)江大桥。但反过头来说,这样的多音字,很多吗?
    在这里插入图片描述
    这里的意思是,利用gated cells动态的控制词语路径的流动信息。
    在这里插入图片描述
    我们大概可以明白lattice的意思,其实就是以字为单位,以分词系统为参考,达到分割的目的,而不是完全依赖于词语的分割。不过具体这个怎么看,就不太清楚了。

Pass2

2.1 介绍

研究现状
中文NER中,词语边界一般也是NER的边界;比较经典的方法就是先进行分词,再进行词语序列的NER标注。但是可能存在误差传播,因为NE本身很多都是词表外的词语,错误的词边界自然也就导致错误的NER边界。因此,开放领域(open domain)的NER依旧是严重的问题。相关实验证明,中文NER基于字(character)进行实验,效果会比较好。
不足:
但是基于字的NER工作,并没有有效利用词语(word)和词语序列(word sequence)的信息。因此,作者提出将latent word information融入基于字符(character based)的LSTM-CRF模型,具体体现在representing lexicon words from the sentence using a lattice structure LSTM.

2.2 模型

首先是任务的形式化表达,其中句子表示为 s = c 1 , c 2 , . . . , c m s=c_1,c_2,...,c_m s=c1,c2,...,cm,也就是说 c j c_j cj是第j个字符;句子也可以表示为 s = w 1 , w 2 , . . . , w n s=w_1,w_2,...,w_n s=w1,w2,...,wn,其中 w i w_i wi是第i个词语。另外用记号 t ( i , k ) t(i,k) t(i,k)=j表示,下标第i个词语中的第k个字符,是句子的j个字符。例如对于切分“南京市 长江大桥”,其中 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标注法,标记基于词语或基于字符的NER标签。

首先很重要的是,如何获取模型的特征,然后才是模型部分。

2.2.1 基于字符的模型

主要流程是:
x j c = e c ( c j ) x^c_j=e^c(c_j) xjc=ec(cj)
其中e^c表示对应的embedding表。然后将 x j c x^c_j xjc输入双向LSTM中,获得双向的词语隐向量,拼接后得到 h j c h^c_j hjc。因此对于序列 s = x 1 , x 2 , . . . , x m s=x_1,x_2,...,x_m s=x1,x2,...,xm,可以得到特征向量 h 1 c , h 2 c , . . . , h m c h^c_1,h^c_2,...,h^c_m h1c,h2c,...,hmc

具体的,可以引入bichar特征,如下:
x j c = [ e c ( c j ) ; e b ( c j , c j + 1 ) ] x^c_j=[e^c(c_j);e^b(c_j,c_{j+1})] xjc=[ec(cj);eb(cj,cj+1)]
其中 e b ( ) e^b() eb()也表示embedding表,只不过是bigram的查找表。
第二种方法是引入sementation label嵌入,这个
在这里插入图片描述
其后的LSTM特征获取还是一样的。

2.2.2 基于词的模型

一般流程也是和基于字符的模型差不多,只不过先进行分词,得到词语以后再进行相应的embedding操作。
x j w = e w ( w j ) x^w_j=e^w(w_j) xjw=ew(wj)
其中 e w e^w ew表示embedding的查找表, w j w_j wj表示的是第 j j j个词语。
或者也可以通过将基于词和基于字的嵌入拼接,获得融合后的表示方法。

2.2.2这一小节结构挺乱的…,因为后面讲到的三种方法,都没有用所谓的词语embedding,而都是基于字符embedding操作的。。

这里有几种不同的方法获得句子序列的嵌入:

  • word+Char LSTM
  • word+Char LSTM’
  • Word + Char CNN

三种方法如下所述:
word+Char LSTM,就是在词语内部,利用 e c ( c j ) e^c(c_j) ec(cj)(没错,这里用的是字嵌入)输入到双向LSTM中,获得对应的输出,最后将词语隐状态(没错,虽然它写作 x i c x^c_i xic,其表i示如下:
在这里插入图片描述
word+Char LSTM’:是换用了不同的网络结构完成操作,获取词语的表示方法也是同上图。
word+Char CNN:略

2.2.3 Lattice Model

模型的输入是字符序列 c 1 , c 2 , . . . , c m c_1,c_2,...,c_m c1,c2,...,cm以及所有的能够满足词表 D D D的字符串子序列。我们用如下记号 w b , e d w^d_{b,e} wb,ed表示从下标 b b b开始,到下标 e e e结束的字符子序列组成的词语,例如 w 1 , 2 d w^d_{1,2} w1,2d表示“南京”,而 w 7 , 8 d w^d_{7,8} w7,8d表示“大桥”。

首先叙述基础的LSTM结构,其构造如式(11)所示。
在这里插入图片描述
但是本模型不是一个纯词语的模型,还加入一个基于词表的模型,这一部分的输入如下所示:
在这里插入图片描述

其中 x b , e w x^w_{b,e} xb,ew表示的是词语的embedding嵌入。但是值得注意的是,这里对于从下标b字符开始的词语的信息,是根据字符LSTM的隐状态 h b h_b hb和词嵌入 x b , e x_{b,e} xb,e生成的;词语LSTM是没有循环的。前文所说,我们可以输入满足词表 D D D的字符串子序列。因此,对于不同的词语序列,输入采取的措施是:
在这里插入图片描述
也就是说,对于位置在 j j j的字符,我们需要所有结束于位置 j j j的词语的词向量,来获取 c j c c^c_j cjc这个记忆部分。其中各个权值,采用各个LSTM的 i g n o r e ignore ignore分数做归一化就行,如下所示:
在这里插入图片描述

2.2.4 CRF解码模块

经过以上的手法获取序列的特征向量后,使用如下的方法预测某个序列的概率。

在这里插入图片描述
其中 W C R F l i W^{l_i}_{CRF} WCRFli b C R F l i − 1 , l i b^{l_{i-1},l_i}_{CRF} bCRFli1,li都是相关的参数。在训练完相应的模型后,使用维特比算法得到最大分数的序列。那么模型的损失函数如下:
在这里插入图片描述
CRF模块是序列标注的常见模块,功能上类似一般神经网络最后的全连接分类器(例如softmax分类器)。其为概率图模型,虽然很多教科书上都有,但是不够详细。后续将基于理论、实践进行详细讲解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值