专栏名称: 唤之
目录
相关文章推荐
待字闺中  ·  DeepSeek 爆火带来的大变化 ·  6 天前  
程序员小灰  ·  DeepSeek创始人梁文峰牛逼的个人经历 ·  昨天  
OSC开源社区  ·  敢自称Java版PyTorch,EasyAi ... ·  2 天前  
OSC开源社区  ·  如何公正评价百度开源的贡献? ·  3 天前  
程序员小灰  ·  如何用DeepSeek来变现?90%的人都不知道 ·  3 天前  
51好读  ›  专栏  ›  唤之

当RNN神经网络遇上NER(命名实体识别):双向LSTM,条件随机场(CRF),层叠Stack LSTM, 字母嵌入

唤之  · 掘金  · 程序员  · 2018-04-27 06:17

正文

命名实体识别 (NER) 语义 理解中的一个重要课题。NER就像自然语言领域的“ 目标检测 ”。找到文档D 中的名词实体还不够,许多情况下,我们需要了解这个名词是表示 地点(location) 人名(Person) 还是 组织(Organization) ,等等:

来自:https://www.slideshare.net/bperz/15-sdmpolyglot-ner

上图是 NER 输出一个句子后标记名词的示例。

在神经网络出现之前,几乎所有NER半监督或者非监督的方法,都要依靠 手工的单词特征 或者 外部的监督库(如gazetteer) 达到最好的识别效果。

手工的单词特征 可以方便提炼出类似 前缀,后缀,词根 ,如:

-ance , —ancy 表示:行为,性质,状态/ distance距离,currency流通
-ant,ent 表示:人,…的/ assistant助手,excellent优秀的
ary 表示:地点,人,事物/ library图书馆,military军事

可以知道-ant结尾的单词很可能是指 ,而-ary结尾更可能指的 地点

外部的监督库(如gazetteer) ,把一些 同种类的实体 聚合在一起做成一个库,可以帮助识别同一个意思的实体,如:

auntie 其实和 aunt 一个意思: 姨妈

Mikey 其实是 Mike 的昵称,都是 人名

今天所讲的 这篇卡内基梅隆大学的论文 ,用RNN神经网络的相关技术避开使用这些 人工特征,并能达到与之相当的准确率。

为了获取上述的 前缀,后缀,词根等相关特征 ,文章对每个单词的每个字母训练一个双 向LSTM ,把 双向LSTM 的输出作为单词的特殊embedding,和预训练eStack LSTM的算法识别命名实体,感兴趣可以继续阅读原论文。mbedding合成最后的词嵌入( final embedding ):

上图是对单词Mars(火星)构建字母级别的双向LSTM,并合并到预训练的单词embedding (来自:https://arxiv.org/pdf/1603.01360.pdf )

双向LSTM可以捕捉 字母拼写的一些规律 (前缀,后缀,词根), 预训练的embedding可以捕捉 全局上 单词间的相似度。两者结合我们得到了更好的词嵌入(embedding)。

有词嵌入表征是远远不够的,我们要有效利用这些embedding处理 NER 问题,一个NER预测问题和一般的机器学习差别不大:给出一个训练集(已经标注过 命名实体 的文档集),用测试集(未标注 命名实体 的文档)上的 NER识别率 来评价模型。

论文中为了提高上述的 命名实体识别率 ,结合了两方面评估:

1. 对于词性tag的下一个单词可能词性tag的建模(如“吃”这个动词后大概率是类似 “食物” (“饭”,“面条”等)的实体,“吃”后面极少跟 “地点” 的实体)

2. 对于一个单词(抛去词性),同时结合上下文单词,这个单词最可能的 命名实体。

上述的 第2点 可以用 双向LSTM 建模(输入是我们之前提到的单词embedding), 第1点 可以用 条件随机场(CRF) 建模(与马尔科夫链相似)。两点结合后的模型架构如下:

来自:https://arxiv.org/pdf/1603.01360.pdf

其中 最底层的(word embedding) 就是我们前面提到的单词embedding。

中间层(Bi-LSTM) l 代表单词左侧的上下文特征, r 代表单词右侧的上下文特征,c 代表了左右两侧的合成。

最高层(CRF) 把单词tag之间的关系建模,提高NER准确率。

落实到损失函数,文中也用了上述两方面的因素(tag到tag的转移率,单词是某个tag的概率):

其中,X=(x1, x2, . . . , xn) , 代表一个序列的句子 ,

y = (y1, y2, . . . , yn), 代表对上述序列的tag预测

s(X,y)即对本次预测的打分(score)

第一部分矩阵 Ayi,yi+1 代表tag yi 转移到后一个tag yi+1的可能性的打分

第二部分矩阵 Pi,yi 是第i个单词预测为tag yi 的可能性。

最后看一下实验数据:

LSTM-CRF与其它算法在CoNLL-2003 测试集上NER测试的比较,带星号的是用了外部特征的算法

如预想的,LSTM-CRF如果没有使用单字符的embedding提取,结果会稍逊色一些。

另外,出来LSTM-CRF,文章还使用了层叠Stack LSTM的算法识别命名实体,感兴趣可以继续阅读原论文。

参考文献:

  1. Neural Architectures for Named Entity Recognition
  2. eli5.readthedocs.io/en/latest/t…
  3. github.com/glample/tag…
  4. github.com/clab/stack-…
  5. www.datacommunitydc.org/blog/2013/0…

本文采用 署名 – 非商业性使用 – 禁止演绎 3.0 中国大陆许可协议 进行许可。著作权属于“David 9的博客”原创,如需转载,请联系微信: david9ml,或邮箱:[email protected]







请到「今天看啥」查看全文