BERT中进行NER为什么没有使用CRF,我们使用DL进行序列标注问题的时候CRF是必备么?

Q1: 为什么LSTM加上CRF后,序列标注效果会有稳定提升?

序列标注中CRF存在的意义究竟是什么?其实从模型的损失函数可以很直接的看出添加CRF前后的差异。

单纯使用神经网络做序列标注时,使用的损失函数通常为对每一个时间步的交叉熵损失取平均, 此时模型对应的学习目标为

图片

而加入CRF后,模型的学习目标变成了

图片

其中, X 和 Y分别为训练集的输入文本序列和标签序列, theta 表示LSTM的模型结构和参数,也就是模型拟合能力的体现。Ytrans是从训练集所有标签序列统计得到的转移概率(尽管是训练过程中通过梯度下降学习到的转移矩阵,但这个矩阵本质上就是训练集的标签转移概率乘以一个特征权重,具体原理参考log linear model)。
从上面两个公式,我们就能轻易的理解,为什么LSTM后面加上CRF,模型效果就能好很多。

Q2: 如果把LSTM换成BERT呢?BERT后面到底要不要接上CRF?甚至要不要接上BiLSTM?

1). BERT后面要不要加CRF,完全取决于数据集。
2) CRF大概率能带来提升,但也完全有可能带来负面影响。
3) BERT后面不要加LSTM!CRF能提供额外的标签转移特征,而LSTM除了拖后腿什么也干不了。

为什么把Q1两个公式中的 thetalstm 换成 thetabert 之后,效果就能大大提升?

一方面是BERT的预训练学习到了大量的文本表示,加上BERT自身优异的模型结构,使得在NER的数据集上能有非常好的泛化性。在这样的条件下,标签转移概率这个特征,比起输入文本中的语义特征就很微不足道了,即使不用标签之间的转移概率也能轻易的识别出正确的实体。毕竟BERT在特定任务下的语义理解能力已经十分接近人类水平了。

那么什么样的数据适合加CRF,什么样的不适合呢?

先明确一点,由于CRF多了一个特征,而且两个特征会通过梯度下降自动学习各自权重,因此加上CRF一定能实现对训练集更好的拟合。但训练集拟合得好未必测试集有提升,有可能是过拟合。这取决于输入文本的语义特征、训练集标签序列分布、测试集标签序列分布,这就只能通过实验来确定了。训练集和测试集的标签序列分布一致性越高,那么CRF的帮助就越大。反之也完全有可能造成负面影响。
在我和同学实验中也多次遇到BERT加上CRF后效果变差的经历。

BERT+CRF的搭配中,有必要单独给CRF转移矩阵参数设置一个较大的学习率吗?

这仍然是一个关于数据特征分布的问题。由于几乎不存在完美标注的数据集,因此几乎所有数据集都多多少少会有噪声或偏差。就看输入 X 带来的影响和Ytrans 带来的影响谁打得过谁了。如果自然状态下训练得到的模型中CRF的参数很小或者不理想,只能说明标签转移特征对训练集的拟合本身就没有什么帮助。

给CRF转移矩阵设置单独的学习率,本质上就是手动调节这两个特征的权重,限制模型的学习能力,是一种正则化手段。一般来说,由于Ytrans 的数据远比X简单,噪声出现的概率也会更小,训练集和测试集分布的一致性会更高,所以使用CRF并设置一个较大的学习率也大概率会有用,但这毕竟是一个无法量化的超参数,不同数据集上不具有普适性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值