点击上方,选择星标或置顶,每天给你送干货!
阅读大概需要5分钟
跟随小博主,每天进步一丢丢
来源:知乎
作者:南开大学 概率论与数理统计硕士 薛晓琳
整理:python遇见NLP
一 文章介绍:
本文是2015年百度的三位作者提出的,主要研究了一系列基于LSTM模型上的序列标注任务的性能。模型包括LSTM,BI-LSTM,LSTM-CRF,BI-LSTM-CRF。序列标注任务分为三个:词性标注,分块和命名实体识别。结果显示BI-LSTM-CRF模型在三个任务上的准确度都很高。
二 模型介绍:
这部分主要介绍了五种模型,LSTM,BI-LSTM,CRF,LSTM-CRF,BI-LSTM-CRF。这里我们就不一一详细赘述了。
三 模型训练过程
以BI-LSTM-CRF为例,在每一步中,把训练数据分为不同的批次,一次处理一个批次。每一个批次包括一些句子,句子的多少由批次大小来决定。对于每一个批次:
首先运行BI-LSTM-CRF模型正向传递,该正向传递包括正向和反向状态的正向传递 LSTM,得到所有位置上所有标签的输出得分
然后,我们对CRF层进行正向和反向传递,以计算网络输出和状态转换边缘的梯度
之后,我们可以将错误从输出反向传播到输入,其中包括LSTM正向和反向状态的反向传递
最后,我们更新网络参数,其中包括状态转移矩阵 和原始双向LSTM参数
训练过程的算法伪码如下:
for each epoch do
for each batch do
1) bidirectional LSTM-CRF model forward pass:
forward pass for forward state LSTM
forward pass for backward state LSTM
2) CRF layer forward and backward pass
3) bidirectional LSTM-CRF model backward pass:
backward pass for forward state LSTM
backward pass for backward state LSTM
4) update parameters
end for
end for
四 实验过程和结果
本次实验共使用了三组数据,下面是三组数据的基本情况:
从三组数据中抽取了两种特征,包括拼写特征和上下文特征。
在处理特征连接的时候,本文运用了一个小trick,即把拼写特征和上下文特征直接连到输出,这样可以加速训练速度,并且训练精度类似。
模型训练时的学习率设为0.1,隐含层的数量设置为300,最终模型的性能对比结果如下:
其中Conv-CRF模型是文章(Collobert et al.,2011)中的最好结果,Random和Senna是两种词嵌入的方式。
然后,为了证明模型的鲁棒性,作者又只对单词特征(去掉了拼写和上下文特征)进行了训练,结果如下:
五 总结
本文的创新点在于首次使用BI-LSTM-CRF模型进行了序列标注任务,并且模型结果表现不错。并且作者证明了模型的鲁棒性,以及模型对词嵌入方法的依赖较少,在随机词嵌入的时候,模型的精度表现也不错。
文章地址链接:
arxiv.org/pdf/1508.0199
下载一:中文版!学习TensorFlow、PyTorch、机器学习、深度学习和数据结构五件套!
后台回复【五件套】
下载二:南大模式识别PPT
后台回复【南大模式识别】
说个正事哈
由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:
(1)点击页面最上方“深度学习自然语言处理”,进入公众号主页。
(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。
感谢支持,比心。
投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。
方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。
记得备注呦
推荐两个专辑给大家:
专辑 | 李宏毅人类语言处理2020笔记
整理不易,还望给个在看!