第五篇:Neural Architectures for Named Entity Recognition


一、本文主要内容

  主要介绍了两中命名实体识别的模型,第一种是老生常谈的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、这个,开山鼻祖,看的很懵逼啊


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM