bert pytorch 序列标注_序列标注:Bi-LSTM + CRF

本文详细介绍了序列标注任务中的BI-LSTM和CRF模型,包括CRF的基本概念、BI-LSTM的工作原理以及两者的结合应用。通过解释模型的得分函数、损失函数计算和维特比解码,阐述了如何利用PyTorch实现BERT进行序列标注任务。
摘要由CSDN通过智能技术生成

最近在做序列标注的相关任务,为了理解bi-lstm + crf的原理及细节,找了很多相关资料,以及代码实现,这里分享给大家并附上一些自己的理解。

CRF

相关资料推荐

关于crf,我看了很多资料,这里推荐几个 - 英文的crf tutorial - 李航的统计学习方法 这两个讲的很细,公式很多,很多新入坑的小白看了肯定一头雾水,这里推荐一个知乎大神的回答,通俗易懂,有一些机器学习基础的都可以看懂。 - 知乎Scofield的回答

简单总结

这里我简单总结一下,以命名实体识别任务举例,我们有这样一组已标注的数据,B表示一个实体的开头,I表示当前词为命名实体的后面部分,O表示不是命名实体。

the(B) wall(I) street(I) journal(I) reported(O) today(O) that(O) apple(B) corporation(I) made(O) money(O)

很明显"the wall street journal"(华尔街日报)、"apple corporation"(苹果公司)为命名实体。

如果我们有这样一组已标注的数据

每个 x_i 是输入序列,y_i为一个标注序列

我们的目标是学习出一组条件概率分布模型, 即找到一组参数 theta

使得

简单来说一组参数theta可以唯一确定一组模型,我们需要找到一组最优参数使得我训练数据中 x->y 的概率最大化。将上述最大化的目标函数取负,转化为最小化问题,即可用反向传播算法进行优化,找到近似最优参数theta。

好了有了目标就有了方向,下面的问题就是如何设计一个模型,对一个由x到y的序列映射进行打分(可以看做是可能性的大小),即上述公式中的Score(x, y)。在crf模型中我们有一个简单的假设,即当前输出的标签只和上一级输出的标签以及当前的输入有关,所以Score(x, y)应该由两部分组成,一个是转移特征概率,一个是状态特征概率。什么意思呢,转移特征概率是指前一个输出标签为 B 的前提下我当前输出标签为某个值比如 I 的概率大小。而状态特征是指我当前输入的词为 "wall" 的条件下,当前输出标签为某个值比如 I 的概率大小。

则Score(x, y)可以写成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值