IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 深度学习学习笔记-双向LSTM-CRF模型论文研读 -> 正文阅读

[人工智能]深度学习学习笔记-双向LSTM-CRF模型论文研读

概念引入

命名实体识别

命名实体识别(Named Entity Recognition,NER)是NLP中一项非常基础的任务。NER是信息提取、问答系统、句法分析、机器翻译等众多NLP任务的重要基础工具。

定义

命名实体识别(Named Entity Recognition,简称NER),又称作“专名识别”,是指识别文本中具有特定意义的实体,主要包括人名、地名、机构名、专有名词等。简单的讲,就是识别自然文本中的实体指称的边界和类别。

信息抽取

信息抽取(information extraction),即从自然语言文本中,抽取出特定的事件或事实信息,帮助我们将海量内容自动分类、提取和重构。这些信息通常包括实体(entity)、关系(relation)、事件(event)。例如从新闻中抽取时间、地点、关键人物,或者从技术文档中抽取产品名称、开发时间、性能指标等。

显然,信息抽取任务与命名实体识别任务类似,但相对来说更为复杂。有时,信息抽取也被称为事件抽取(event extraction)。

与自动摘要相比,信息抽取更有目的性,并能将找到的信息以一定的框架展示。自动摘要输出的则是完整的自然语言句子,需要考虑语言的连贯和语法,甚至是逻辑。有时信息抽取也被用来完成自动摘要。

由于能从自然语言中抽取出信息框架和用户感兴趣的事实信息,无论是在知识图谱、信息检索、问答系统还是在情感分析、文本挖掘中,信息抽取都有广泛应用

概率图模型

概率图模型是用图来表示变量概率依赖关系的理论,结合概率论与图论的知识,利用图来表示与模型有关的变量的联合概率分布。由图灵奖获得者Pearl开发出来。概率图模型理论分为概率图模型表示理论,概率图模型推理理论和概率图模型学习理论。近10年它已成为不确定性推理的研究热点,在人工智能、机器学习和计算机视觉等领域有广阔的应用前景。简单来说就是就是一类用图来表达变量相关关系的概率模型,通常用一个节点表示一个或一组随机变量,节点间的边表示变量间的概率关系,分为有向无环图(贝叶斯网) + 无向图模型(马尔科夫网)

马尔可夫模型
简单来说,就是使用条件概率表示过去,现在,将来

此为一阶马尔科夫模型
在这里插入图片描述
从这个式子可以看出,xi 仅仅与 xi-1有关,二跟他前面的都没有关系了,这就是一阶过程。
马尔科夫过程指的是一个状态不断演变的过程,对其进行建模后称之为马尔科夫模型,在一定程度上,马尔科夫过程和马尔科夫链是等价的。

隐马尔可夫模型(HMM)
隐马尔可夫模型(Hidden Markov Model,HMM)描述由隐藏的马尔可夫链随机生成观测序列的过程,属于生成模型。

HMM是关于时序的概率模型,描述由一个隐藏的马尔可夫链随机生成不可观测的状态随机序列(状态序列),再由各个状态生成一个观测而产生的观测随机序列(观测序列)的过程。
隐马尔可夫模型是由马尔可夫链生成随机不可观测的随机状态序列,再由各个状态生成可观测的随机序列

在这里插入图片描述
HMM模型的两个基本的假设
HMM 的定义建立在两个基本假设的前提上,这两个假设是 HMM 的重点,一定要了解模型的 2 个假设。

1齐次马尔科夫假设
齐次马尔科夫假设,通俗地说就是 HMM 的任一时刻 t 的某一状态只依赖于其前一时刻的状态,与其它时刻的状态及观测无关,也与时刻 t 无关。

2观测独立假设
观测独立性假设,是任一时刻的观测只依赖于该时刻的马尔科夫链的状态,与其他观测及状态无关。

HMM模型解决的3个问题
1,评估问题,已知模型参数 λ= (A, B, π),计算某个观测序列发生的概率,即求P(O|λ)
2,解码问题,给出观测序列O和模型λ= (A, B, π),选择一个状态序列S(s1,s2,…st+1),能最好的解释观测序列O
3,学习问题,观测序列O,如何估计模型参数 λ=(π, A, B), 使得P(O|λ)最大? 利用极大似然估计。

条件随机场
?条件随机场(Conditional random field,CRF)是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模型,其特点是假设输出随机变量构成马尔可夫随机场。条件随机场常用于序列标注问题,比如命名实体识别等

设两组随机变量𝑋 = ( 𝑋 1 , . . . , 𝑋 𝑛 ), 𝑌 = ( 𝑌 1 , . . . , 𝑌 𝑛 ),那么线性链条件随机场的定义为
𝑃 ( 𝑌 𝑖 | 𝑋 , 𝑌 1 , . . . , 𝑌 𝑖 ? 1 , 𝑌 𝑖 + 1 , . . . , 𝑌 𝑛 ) = 𝑃 ( 𝑌 𝑖 | 𝑋 , 𝑌 𝑖 ? 1 , 𝑌 𝑖 + 1 ) , 𝑖 = 1 , . . . , 𝑛
其中当 i 取1 或n时只考虑单边。

在这里插入图片描述

在这里插入图片描述用于序列标注问题的线性链条件随机场,
是由输入序列来预测输出序列的判别式模型。

判别方式:特征函数(可以简单理解为强化学习中的状态函数)

转移特征𝑡 𝑘 ( 𝑦 𝑖 ? 1 , 𝑦 𝑖 , 𝑥 , 𝑖 )是定义在边上的特征函数(transition),依赖于当前位置 i 和前
位 置 i - 1 ,对应的权值为 𝜆 𝑘
状态特征𝑠 𝑙( 𝑦 𝑖 , 𝑥 , 𝑖 )是定义在节点上的特征函数(s t a t e )依赖于当前位置 i ,对应的权值为 𝜇 𝑙
特征函数的取值为1或0,当满足规定好的特征条件时取值为1,否则为0

前向算法

概率计算问题:已知模型参数(π, A, B)和观测序列O = (o1, o2, … ,oT),计算观测序列出现的概率。
直接计算法:穷举,计算量大,不可行
前向算法:基于状态序列的路径结构递推计算,局部计算前向概率,利用路径结构将前向概率递推到全局。

维特比算法(Viterbi)
定义:一种用以选择最优路径的动态规划算法,从开始状态后每走一步,记录到达该状态所有路径的最大概率值,最后以最大值为基准继续向后推进。最后再从结尾回溯最大概率, 也就是最有可能的最优路径.

简单来说就是概率论里面的传染病模型

维特比解码(Viterbi Decoding)
就是维特比算法的解题过程

命名实体识别的发展历程
早期方法
1基于规则的方法
2基于字典的方法

传统机器学习的方法
HMM
MEMM
CRF

深度学习方法
BILSTM-CRF
LATTICE-LSTM-CRF
CNN-CRF
注意力转移机制
迁移学习(Bert框架)
半监督学习

论文的背景

序列标注问题(sequence labeling, also named as tagging)可以看作许多自然语言处理问题的前驱,如情感分析,信息检索、推荐和过滤等等。同时在自然语言处理中,许多的任务可以转化为“将输入的语言序列转化为标注序列”来解决问题,因此序列标注是自然语言处理中的重要研究内容之一

当时(2015)的序列标记模型大多是线性统计模型,如隐马尔可夫模型(HMM),最大熵马尔可夫模型(MEMMS),条件随机场(CRF)

论文主要内容

BILSTM-CRF模型的结构

在这里插入图片描述

1 . 句中转化为字词向量序列,字词向量可以预训练好或随机初始化,在模型训练中还可以再训练
2 . 经BiLSTM特征提取,输出是每个单词对应的预测标签
3 . 经CRF层约束,输出最优标签序列

步骤1:Word embedding
目的:使得文字在神经网络中实现一一对应,一个萝卜一个坑,联想数学中的函数
流程:

  • 将一个含有n个词的句子记作:x = (x1,x2,….xn)
  • 利用预训练的embedding矩阵将每个字映射为低维稠密的向量

步骤2:BiLSTM Extracting text features(BiLSTM提取文本特征)

原理:门机制
作用:LSTM引入了一个门记忆机制,使用记忆细胞来捕获长距离依赖
LSTM在每个t时刻都选择性地改变记忆,从而有效解决RNN的长距离依赖
在这里插入图片描述
f-forget(遗忘门)
i-input(输入门)
o-output(输出门)
c-cell(由f和i组成)
h -hidden(隐状态)

这些门由sigmoid函数表达,输出值为1(保留)和0(舍弃)
关于sigmoid的推导详见

方法流程:

  • 将一个句子各个字的Embedding序列作为双向LSTM各个时间步的输入
  • 将正反向输出的隐状态进行拼接,得到完整的隐状态序列

LSTM通过记忆单元来解决长距离依赖问题,但LSTM是一种前向传播算法,因此对命名实体识别而言,需要反向传播的LSTM进行学习,即BiLSTM:

  • 一个LSTM网络计算前向的隐特征
  • 另一个LSTM网络计算后向的隐特征
  • 把这两个LSTM输出的结果拼接,就得到双向LSTM网络,由此将前向传播与反向传播结合,大大提高算法的准确率
    在这里插入图片描述
    由此,我们就能达到高效的表示出这个单词在上下文中的含义,在标准Bi-LSTM中,输出通过接入SoftMax输出层预测节点间的分类标签的目的

步骤3: Get P Matrix(得到P矩阵)
方法流程

  • 将完整的隐状态序列接入线性层,从n维映射到k维,其中k是标注集的标签数
  • 从而得到自动提取的句子特征,记作矩阵P =(p1,p2,….pn),注意该矩阵是非归一化矩阵
  • 其中pi表示该单词对应各个类别的分数如图所示,双向BiLSTM输出矩阵1.5(B-Person),0.9(IPerson),0.1(B-Organization),0.08(I-Organization)这些分数将是CRF层的输入

在这里插入图片描述

发射分数,是BiLSTM层的输出。用 X i y j 代表发射分数,i 是单词的位置索引,y j 是类别的索引
在这里插入图片描述

步骤4:CRF层的引入
加CRF的原因
NER是一类特殊的任务,因为表征标签的可解释序列“语法”强加了几个硬约束, 可能的约束有:

  1. 判定B-label1 I-label2 I-label3…为错误
  2. 判定“O I-label”是错误的
  3. 命名实体的开头应该是“B-”而不是“I-”(是先Begin后input而不是直接input,观察上一张图的最顶层)
    CRF层能够学习到句子的前后关联,从而加入一些约束来保证最终预测结果有效

转移分数(Transition score)

转移分数,来自CRF层可以学到的转移矩阵 。
转移矩阵是BiLSTM -CRF模型的一个参数。可随机初始化转移矩阵的分数,然后在训练中更新
在这里插入图片描述

步骤5:最终结果的计算 (Calculation of the final result)

在这里插入图片描述

CRF考虑前后标记依赖约束,综合使用标记状态转换概率作为
评分:
上式意为对整个序列x,整个序列标注的打分等于各个位置的
打分之和,打分为2部分:
1) 前者由BiLSTM输出的pi决定
2)后者由CRF转移矩阵A决定,其中Ayi-1,yi表示从第yi-1个
标签到第yi个标签的转移得分

路径分数
Path score
Si = EmissionScore + TransitionScore

在这里插入图片描述

CRF损失函数
CRF损失函数由两部分组成,真实路径的分数和所有路径的总分数。既然是最优化的考虑,那么真实路径的分数就是所有路径中分数最高的那条路径。

在这里插入图片描述

当前节点的得分
类似维特比解码算法,这里每个节点记录之前所有节点到当前节点的路径总和,最后一步即可得到所有路径的总和。

在这里插入图片描述

所有路径得分
每个节点记录之前所有节点到当前节点的路径得分总和,那么最后一步就可以得到所有路径得分的总和
在这里插入图片描述

对最优选择的预测

在这里插入图片描述
预测采用维特比解码,每个节点记录之前所有节点到当前节点的最优路径,最后一步通过回溯即可得一条最优的路径

模型的效果

  • 双向LSTM可以综合利用过去和未来的特征
  • CRF可以利用句子的特征
  • BiLSTM-CRF模型效果好、鲁棒性强、对词向量依赖不强
  • 实际上CRF就是序列版本的逻辑回归 ( logisticregression )。正如逻辑回归是分类问题的对数线性模型, C R F 是序列标注问题的对数线性模型

论文的成果

提出了一系列基于神经网络的序列标注模型:LSTM、BI-LSTM、LSTM-CRF、BILSTM-CRF

  • 首次将BI-LSTM-CRF模型用于序列标注任务
  • 证明BI-LSTM-CRF模型的可靠性(对词特征依赖不强)

论文的意义

是命名实体识别深度学习时代的开端
使模型更简洁高效,鲁棒性强(鲁棒是Robust的音译,也就是健壮和强壮的意思。它也是在异常和危险情况下系统生存的能力。)

模型的优势

相对于HMM(隐马尔可夫模型)来说,
CRF更加强大:CRF 可以为任何HMM 能够建模的对象建模,甚至更多
CRF可以定义更加广泛的特征集
而HMM在本质上必然是局部的,而CRF就可以使用更加全局的特征
CRF可以有任意权重值,HMM的概率值必须满足特定的约束

  人工智能 最新文章
AttributeError: Can‘t get attribute ‘x
python读取图像的几种方式
tf-encrypted介绍和代码示例
Pytorch基础:Torch.mul、Torch.mm与Torch.
【数据分析师-数据分析项目案例一】600w+条
python绘制三角函数图像
matlab深度学习基本操作,深度学习讲解,源
今日开发记录2021 8.8
pytorch之深入理解collate_fn
tensorrt踩坑随笔
上一篇文章      下一篇文章      查看所有文章
加:2021-07-26 12:05:46  更:2021-07-26 12:08:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
360图书馆 购物 三丰科技 阅读网 日历 万年历 2021年9日历 -2021/9/27 2:01:05-
图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码