点击上方,选择星标置顶,每天给你送干货

阅读大概需要7分钟

跟随小博主,每天进步一丢丢

编辑:忆臻

https://www.zhihu.com/question/46688107

本文仅作为学术分享,如果侵权,会删文处理

CRF和LSTM 模型在序列标注上的优劣?

作者:谢志宁
https://www.zhihu.com/question/46688107/answer/117448674

两者各有优缺点:

LSTM:像RNN、LSTM、BILSTM这些模型,它们在序列建模上很强大,它们能够capture长远的上下文信息,此外还具备神经网络拟合非线性的能力,这些都是crf无法超越的地方,对于t时刻来说,输出层y_t受到隐层h_t(包含上下文信息)和输入层x_t(当前的输入)的影响,但是y_t和其他时刻的y_t`是相互独立的,感觉像是一种point wise,对当前t时刻来说,我们希望找到一个概率最大的y_t,但其他时刻的y_t`对当前y_t没有影响,如果y_t之间存在较强的依赖关系的话(例如,形容词后面一般接名词,存在一定的约束),LSTM无法对这些约束进行建模,LSTM模型的性能将受到限制。

CRF:它不像LSTM等模型,能够考虑长远的上下文信息,它更多考虑的是整个句子的局部特征的线性加权组合(通过特征模版去扫描整个句子)。关键的一点是,CRF的模型为p(y | x, w),注意这里y和x都是序列,它有点像list wise,优化的是一个序列y = (y1, y2, …, yn),而不是某个时刻的y_t,即找到一个概率最高的序列y = (y1, y2, …, yn)使得p(y1, y2, …, yn| x, w)最高,它计算的是一种联合概率,优化的是整个序列(最终目标),而不是将每个时刻的最优拼接起来,在这一点上CRF要优于LSTM。

HMM:CRF不管是在实践还是理论上都要优于HMM,HMM模型的参数主要是“初始的状态分布”,“状态之间的概率转移矩阵”,“状态到观测的概率转移矩阵”,这些信息在CRF中都可以有,例如:在特征模版中考虑h(y1), f(y_i-1, y_i), g(y_i, x_i)等特征。

CRF与LSTM:从数据规模来说,在数据规模较小时,CRF的试验效果要略优于BILSTM,当数据规模较大时,BILSTM的效果应该会超过CRF。从场景来说,如果需要识别的任务不需要太依赖长久的信息,此时RNN等模型只会增加额外的复杂度,此时可以考虑类似科大讯飞FSMN(一种基于窗口考虑上下文信息的“前馈”网络)。

CNN+BILSTM+CRF:这是目前学术界比较流行的做法,BILSTM+CRF是为了结合以上两个模型的优点,CNN主要是处理英文的情况,英文单词是由更细粒度的字母组成,这些字母潜藏着一些特征(例如:前缀后缀特征),通过CNN的卷积操作提取这些特征,在中文中可能并不适用(中文单字无法分解,除非是基于分词后),这里简单举一个例子,例如词性标注场景,单词football与basketball被标为名词的概率较高, 这里后缀ball就是类似这种特征。

BILSTM+CRF的Tensorflow版本:https://github.com/chilynn/sequence-labeling,主要参考了GitHub - glample/tagger: Named Entity Recognition Tool的实现,tagger是基于theano实现的,每一轮的参数更新是基于一个样本的sgd,训练速度比较慢。sequence-labeling是基于tensorflow实现的,将sgd改成mini-batch sgd,由于batch中每个样本的长度不一,训练前需要padding,最后的loss是通过mask进行计算(根据每个样本的真实长度进行计算)。

作者:愚蠢队长
https://www.zhihu.com/question/46688107/answer/120114053

一、
做为一种概率图模型,CRF在理论上更完美一些,一步一步都有比较坚实的理论基础。不过CRF的假设也比较明确,然而问题不总是能match其假设的。
LSTM理论上是能拟合任意函数的,对问题的假设明显放宽了很多。不过深度学习类模型的理论原理和可解释性一般。

二、
CRF比较难扩展,想在图模型上加边加圈,得重新推导公式和写代码。
LSTM想stack起来、改双向、换激活函数等,只不过左手右手一个慢动作的事儿。

三、
CRF针对大数据不好做。
LSTM有各种GPU加速,多机异步SGD等标准大数据训练套路。但同样的问题,训练数据不够的话过拟合会很严重,效果堪忧。

四、
LSTM可以当做对序列的一种『中间状态』的建模,建模结果还可以当做特征,扔给其他模型继续用。

作者:万广鲁
https://www.zhihu.com/question/46688107/answer/136928113

LSTM和crf是两个层面的东西。

crf的核心概念,是计算序列全局的似然概率,其更像一个loss的选择方式。与其相对应的应该是cross entropy。crf把一个序列当作一个整体来计算似然概率,而不是计算单点的似然概率。这样使得其在序列标注问题中效果比较好。

即使现在主流使用LSTM模型的,也会在loss层使用crf,基本验证是更好的。而与LSTM相对应的应该是原来crf模型中特征层面的东东。比如在传统的crf模型中,需要人工选择各种特征,但是目前主流的解决方案中倾向于,embedding层+bilstm层,直接机器学习到特征。也就是end-to-end的思路。

方便交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。

方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。

记得备注呦

推荐阅读:

【ACL 2019】腾讯AI Lab解读三大前沿方向及20篇入选论文

【一分钟论文】IJCAI2019 | Self-attentive Biaffine Dependency Parsing

【一分钟论文】 NAACL2019-使用感知句法词表示的句法增强神经机器翻译

【一分钟论文】Semi-supervised Sequence Learning半监督序列学习

【一分钟论文】Deep Biaffine Attention for Neural Dependency Parsing

详解Transition-based Dependency parser基于转移的依存句法解析器

经验 | 初入NLP领域的一些小建议

学术 | 如何写一篇合格的NLP论文

干货 | 那些高产的学者都是怎样工作的?

一个简单有效的联合模型

近年来NLP在法律领域的相关研究工作


CRF和LSTM 模型在序列标注上的优劣?相关推荐

  1. HanLP《自然语言处理入门》笔记--5.感知机模型与序列标注

    笔记转载于GitHub项目:https://github.com/NLP-LOVE/Introduction-NLP 5. 感知机分类与序列标注 第4章我们利用隐马尔可夫模型实现了第一个基于序列标注的 ...

  2. LSTM模型在测试集上的输出全都是一样的怎么办

    为什么LSTM模型在测试集上的输出全都是一样的? 答:输入的幅值太大了!!把输入幅度缩放到0到1里去!!!

  3. 深度学习baseline模型_深度学习模型在序列标注任务中的应用

    作者 丨e成科技NLP部门自然语言理解小组 王奕磊 背景 序列标注任务是中文自然语言处理(NLP)领域在句子层面中的主要任务,在给定的文本序列上预测序列中需要作出标注的标签.常见的子任务有命名实体识别 ...

  4. 自然语言处理入门-第4章 隐马尔可夫模型与序列标注

    HMM 序列标注问题 隐马尔可夫模型 1.HMM与马尔可夫假设 2.HMM三要素 3.HMM样本生成 4.HMM的训练(参数估计) 1.状态转移概率矩阵的估计 2.初始状态概率向量的估计 3.发射概率 ...

  5. 如何判断LSTM模型中的过拟合和欠拟合 By 机器之心2017年10月02日 11:09 判断长短期记忆模型在序列预测问题上是否表现良好可能是一件困难的事。也许你会得到一个不错的模型技术得分,但了解

    判断长短期记忆模型在序列预测问题上是否表现良好可能是一件困难的事.也许你会得到一个不错的模型技术得分,但了解模型是较好的拟合,还是欠拟合/过拟合,以及模型在不同的配置条件下能否实现更好的性能是非常重要 ...

  6. 使用PaddleFluid和TensorFlow训练序列标注模型

    专栏介绍:Paddle Fluid 是用来让用户像 PyTorch 和 Tensorflow Eager Execution 一样执行程序.在这些系统中,不再有模型这个概念,应用也不再包含一个用于描述 ...

  7. LSTM(序列标注,自实现)

    文章目录 1.LSTM 1.1 单独计算 单层LSTM-cell 单层LSTM BPTT 2.序列标注 使用pytorch实现序列标注 自实现lstm import torch import torc ...

  8. 新手探索NLP(八)——序列标注

    转载自知乎https://zhuanlan.zhihu.com/p/50184092 NLP中的序列标注问题(隐马尔可夫HMM与条件随机场CRF) Introduction 序列标注问题(sequen ...

  9. 序列标注-命名实体识别

    三个月之前 NLP 课程结课,我们做的是命名实体识别的实验.在MSRA的简体中文NER语料(我是从这里下载的,非官方出品,可能不是SIGHAN 2006 Bakeoff-3评测所使用的原版语料)上训练 ...

  10. lstm 变长序列_基于变长时间间隔LSTM方法的胎儿异常体重预测

    1 介绍 预测胎儿体重是产前监护的重要内容, 是医生对孕妇进行临床处理的重要依据. 近年来研究显示, 低体重儿的存活率和扛感染能力相对低下[, 并且与低智商有密切联系[. 而巨大儿则会引起胎儿宫内窘迫 ...

最新文章

  1. VS2010中文注释带红色下划线的解决方法
  2. 大话设计模式(五 体会简单工厂模式的美妙)
  3. 【Windows10】我的电脑从新装到优化配置
  4. 一个asp.net2005的页面文件调用CSS样式的BUG
  5. SpringBoot异常处理-@ExceptionHandler
  6. 前端学习(2785):实现导航的基本结构
  7. windows下git bash中文乱码解决办法
  8. python 装饰器粗浅理解
  9. uni-app 获取当前的一周的年月日
  10. IT部门域事件与业务分析
  11. 乐味煲耳机软件中文版解读
  12. python读取odb_abaqus通过python从ODB中抽取模型数据和结果数据.pdf
  13. Js获取屏幕宽度、高度 移动端H5适配
  14. 电阻式湿度传感器原理
  15. PayPal全球报告:逾三分之一中国网购消费者在海淘
  16. qq登录界面句柄_天天玩QQ!知道登录界面那两个人是谁吗?网友:不是情侣?...
  17. 被晨光搁浅的誓言无声
  18. Qt 之 自定义窗口标题栏
  19. 联合舰队的覆灭(7)
  20. Android开发之使用贝塞尔曲线实现黏性水珠下拉效果

热门文章

  1. 企业中MySQL高可用集群架构三部曲之MM+keepalived
  2. laravel--模型中各种属性详解
  3. 是因为Session只能让服务器在一次连续的会话中记住你,而Cookie是记住浏览器一段时间...
  4. 再也不用为word 中表达式的上标和下标发愁了
  5. 5. DOM解析XML
  6. NHibernate.Cfg.HibernateConfigException
  7. 2014-07-22 如何成为一名合格的职业人士
  8. ASP.NET站点性能提升-缩短首页生成时间
  9. 亚马逊ec2服务器上无法使用sudo执行npm命令的解决办法
  10. 主从复制之操作实践(二)