BERT+BILSTM+CRF

你好,有幸阅读了您的一篇博客,但是正如你博客所说,BERT+BILSTM+CRF运行出来报错了,想问一下您发现是哪里出错了吗?研一小白找不到好难受

  • 建议你看下这篇博客👉 :【Bert + BiLSTM + CRF】实现实体命名识别,最少的代码实现功能,简单易用
  • 除此之外, 这篇博客: BiLSTM / BiRNN / BiLSTM-CRF / Bert-BiLSTM-CRF 全网最强大厂面试级深度的知识点整理中的 为什么用Bert+BiLSTM+CRF这种结构? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • (子问题1:为什么不直接用Bert + CRF?子问题2:为什么不直接用BiLSTM + CRF?)

    先说下我个人觉得的效果:
    BERT+BiLSTM +CRF比BiLSTM+CRF以及BERT+CRF效果好。但我自己没做过对比实验。

    原因如下:
    1.BERT+BiLSTM+CRF>BiLSTM+CRF多了一层BERT初始化word embedding,比随机初始化肯定要好,这个就不多解释了。
    2.BERT+BiLSTM+CRF>BERT+CRF首先BERT使用的是transformer,而transformer是基于self-attention的,也就是在计算的过程当中是弱化了位置信息的(仅靠position embedding来告诉模型输入token的位置信息),而在序列标注任务当中位置信息是很有必要的,甚至方向信息也很有必要,所以我们需要用LSTM习得观测序列上的依赖关系,最后再用CRF习得状态序列的关系并得到答案,如果直接用CRF的话,模型在观测序列上学习力就会下降,从而导致效果不好。