一、本文主要内容
主要介绍了两中命名实体识别的模型,第一种是老生常谈的bi-LSTM-CRF模型,这个在论文的实践领域中,已经有很多改进的方法,比如添加字符级别的嵌入,加入attention机制等等,第二种是一个目前我还未读到的一个模型,Transition-Based Chunking Model,它使用类似于基于过渡的依赖解析(transition-based dependency parsing)的算法来分块和标记输入序列,它构造了多个令牌名称。
1、bi-LSTM-CRF模型
该模型直接将长短期记忆网络的输出作为CRF的输入,输出是矩阵P(分数矩阵),大小是n*k,k是标签类别的种类个数。
一个输入句子 序列预测
,目标得分函数为:
,A是一个得分转换矩阵(a matrix of transition scores),代表从 i 到 i + 1 的得分转变,y(0)和y(n)是开始和结束标志,所以A的大小为 k+2。
然后在,在所有可能的标记序列上的一个softmax产生序列y的概率
在训练中最大化正确标签序列的对数概率
解码时,预测最大的分数作为输出 (可动态规划求解)
本模型中,我们不使用softmax输出层,直接将要LSTM的输出输入到CRF中,再输出CRF的结果,就是我们最终预算得分的结果。并且在LSTM(c)与CRF中间加一个隐层对结果更好。
标记,采用IOBES标记方法,I是命名实体非开始的单词,O是命名实体之外的单词,B是命名实体开始的单词,E时命名实体结尾的单词,S时单个命名实体
2、Transition-Based Chunking 模型
是前一个模型的替代方案,采用类似于基于过渡的依赖解析的算法对输入序列进行分块和标记。 该模型直接构造多个令牌名称的表示。 该模型依赖于堆栈数据结构来增量构造输入的块。
使用Stack-LSTM预测输出标签(其中LSTM使用堆栈指针加强),可参考Transition-based dependency parsing with stack long short-term memory
本文中,主要是,用一种新的算法使用这个结构,下面将主要探讨下这个算法------Chunking Algorithm。

带字母的embedding,再通过词查找表生成embedding,两者都是随机的,最后一起合成一起,输出的给双向的LSTM。
上面基于字符和词的查找表是随机生成的,作者发现没有预训练的好,于是用word2vec的skip gram进行训练,并微调。作者还发现,用随机初始化的字母lookup向量也预训练的词向量结合,效果并不理想,于是在组合两方面向量的最后一层加入了一个dropout后,再输入到BILSTM,这样效果显著。
二、相关工作
训练:1、训练通过BP算法更新参数。
2、用SGD以0.01的学习率优化参数,以5.0作为梯度的阈值。
3、LSTM-CRF模型用前向和后向LSTM各一个独立层,维度为100,并加入了0.5dropout。
4、Stack-LSTM每一个stack用了2个100维的网络层,用16维的向量表示actoion,输出向量为20维。这个模型也加入了dropout,dropout rate通过调试,采用最好的那一个(不固定),采用贪婪模型,获取局部最优。
三、个人想法
1、在简称生成的模型上,用CRF。可以采用IOBES这个标记,应该效果会比简单的更好,这个可以在工作中实验一下,不过最好还是要用代码进行其余的标注,避免全手动标注。
2、第二个替换的模型,有点懵逼,再思考下吧
3、这个双向的LSTM与CRF的中间没有softmax层
4、这个,开山鼻祖,看的很懵逼啊