NLP 序列标注 总结(没有比较好的总结,我的就是第一)

1,387 阅读15分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

序列标注问题(sequence labeling, also named as tagging)

NLP的四大基本任务blog.csdn.net/savinger/ar…

 

序列标注问题(sequence labeling, also named as tagging)

词性标注(POS)

信息抽取(IE)

(1)命名实体识别(NER)

(2)关系抽取

(3)事件抽取

(4)信息集成

隐马尔可夫模型(HHM)

1. 马尔可夫模型

2. 隐马尔可夫模型

(1)HMM评估问题

a. 前向算法

b. 后向算法

(2) HMM解码问题

(3)HMM参数学习

隐马尔可夫模型在序列标注中的应用

条件随机场模型(CRF)

1. 最大熵模型(最大熵模型中输出相互独立)

2. 条件随机场(CRF)



序列标记问题主要包括词性标注(POS tagging)、语义角色标注、信息抽取等。

 

  • 词性标注(POS)

···给定一个切好词的句子,词性标注的目的是为每一个词赋予一个类别,这个类别称为词性标记(part-of-speech tag),比如,名词(noun)、动词(verb)、形容词(adjective)等。词性标注是一个非常典型的序列标注问题。

preview

 

 

信息抽取(IE)

 

信息抽取系统处理各种非结构化/半结构化的文本输入(如新闻网页、商品页面、微博、论坛页面等),使用多种技术(如规则方法、统计方法、知识挖掘方法), 提取各种指定的结 构化信息(如实体、关系、商品记录、列表、属性等), 并将这些信息在不同的层面进行集 成(知识去重、知识链接、知识系统构建等)

 根据提取的信息类别, 目前信息抽取的核心 研究内容可以划分为命名实体识别(Named Entity Recognition, NER)、关系抽取(Relation Extraction)、事件抽取和信息集成(Information Integration)。

 

(1)命名实体识别(NER)

命名实体识别的目的是识别文本中指定类别的实体,主要包括人名、地名、机构名、专有名词等的任务

命名实体识别系统通常包含两个部分:实体边界识别和实体分类,其中实体边界识别判断一个字符串是否是一个实体,而实体分类将识别出的实体划分到预先给定的不同类别中去。

命名实体识别的主要难点在于表达不规律、且缺乏训练语料的开放域命名实体类别(如电影、歌曲名)等。

如下图:人名识别

如下图:组织机构名识别

preview

 

 

BiLSTM-CRF模型基于字的中文命名实体识别blog.csdn.net/weixin_3400…

命名实体识别(Named Entity Recognition)

难点。。。

     (1) 中文文本里不像英文那样有空格作为词语的界限标志,而且“词”在中文里本来就是一个很模糊的概念,中文也不具备英文中的字母大小写等形态指示

      (2) 中文的用字灵活多变,有些词语在脱离上下文语境的情况下无法判断是否是命名实体,而且就算是命名实体,当其处在不同的上下文语境下也可能是不同的实体类型

      (3) 命名实体存在嵌套现象,如“北京大学第三医院”这一组织机构名中还嵌套着同样可以作为组织机构名的“北京大学”,而且这种现象在组织机构名中尤其严重

      (4) 中文里广泛存在简化表达现象,如“北医三院”、“国科大”,乃至简化表达构成的命名实体,如“国科大桥”。

“-------------------------------”

命名实体识别(Named Entity Recognition)创建NER识别器

流程

å¨è¿éæå¥å¾çæè¿°

 

训练数据长什么样

å¨è¿éæå¥å¾çæè¿°

C列:表示词性
D列:实体类别;O表示不是实体,B表示实体开始(Begin), I 表示实体其他部分。(B,I,O表示法,也有其他方法如 B,M,E,O)

评估NER识别器

å¨è¿éæå¥å¾çæè¿°

NRE的方法

å¨è¿éæå¥å¾çæè¿°

 

-参考于:命名实体识别详解blog.csdn.net/weixin_4642…

“--------------------”

BiLSTM-CRF模型

示意图如下所示:

  • 首先,句子x中的每个单词表达成一个向量,该向量包含了上述的word embedding和character embedding,其中character embedding随机初始化,word embedding通常采用预训练模型初始化。所有的embeddings 将在训练过程中进行微调。
  • 其次,BiLSTM-CRF模型的的输入是上述的embeddings,输出是该句子xxx中每个单词的预测标签。

从上图可以看出,BiLSTM层的输出是每个标签的得分,如单词w0,BiLSTM的输出为1.5(B-Person),0.9(I-Person),0.1(B-Organization), 0.08 (I-Organization) and 0.05 (O),

这些得分就是CRF层的输入。
将BiLSTM层预测的得分喂进CRF层,具有最高得分的标签序列将是模型预测的最好结果。

(CRF又涉及的技术,下文中有提到)

如果没有CRF层将如何

根据上文,能够发现,如果没有CRF层,即我们用下图所示训练BiLSTM命名实体识别模型:

因为BiLSTM针对每个单词的输出是标签得分,对于每个单词,我们可以选择最高得分的标签作为预测结果。
例如,对于w0,“B-Person"得分最高(1.5),因此我们可以选择“B-Person”最为其预测标签;同样的,w1的标签为"I-Person”,w2w_2w2​的为"O", w3w_3w3​的标签为"B-Organization",w4w_4w4​的标签为"O"。

按照上述方法,对于x虽然我们得到了正确的标签,但是大多数情况下是不能获得正确标签的,例如下图的例子:

显然,输出标签“I-Organization I-Person” 和 “B-Organization I-Person”是不对的

为什么要用CRF

CRF能够从训练数据中学习到约束条件

CRF层可以对最终的约束标签添加一些约束条件,从而保证预测标签的有效性。而这些约束条件是CRF层自动从训练数据中学到。
约束可能是:

  • 一句话中第一个单词的标签应该是“B-“ or “O”,而不能是"I-";
  • “B-label1 I-label2 I-label3 I-…”中,label1, label2, label3 …应该是相同的命名实体标签。如“B-Person I-Person”是有效的,而“B-Person I-Organization” 是无效的;
  • “O I-label” 是无效的。一个命名实体的第一个标签应该以 “B-“ 开头,而不能以“I-“开头,换句话说, 应该是“O B-label”这种模式;

有了这些约束条件,无效的预测标签序列将急剧减少。

CRF层

在CRF层的损失函数中,有两种类型的得分,这两种类型的得分是CRF层的关键概念。

1 发射得分

第一个得分为发射得分,该得分可以从BiLSTM层获得。如图2.1所示,w0​标记为B-Person的得分是1.5。

了后续叙述方便,我们将给每个标签一个索引,如下表所示:

LabelIndex
B-Person0
I-Person1
B-Organization2
I-Organization3
O4

我们采用xi,yj来表达发射矩阵,其中i表示第i单词,yj表示标签索引。例如,根据图2.1,

该表达式的意思是将w1w_1w1​标记为 B-Organization的概率为0.1。

2 转移得分

具体参考:LSTM+CRF模型的CRF层原理与代码理解  www.cnblogs.com/luckyplj/p/…

3.CRF的损失函数

(2)关系抽取

关系抽取指的是检测和识别文本中实体之间的语义关系,并将表示同一语义关系的提及(mention)链接起来的任务

关系抽取的输出通常是一个三元组(实体1,关系类别,实体2),表示实体1和实体2之间存在特定类别的语义关系。

例如, 句子“北京是中国的首都、政治中心和文化中心” 中表述的关系可以表示为(中国,首都,北京),(中国,政治中心,北京)和(中国,文化中心,北京)。

关系抽取通常包含两个核心模块:关系检测和关系分类,其中关系检测判断两个实体之间是否存在语义关系,而关系分类将存在语义关系的实体对划分到预先指定的类别中。

在某些场景和任务下,关系抽取系统也可能包含关系发现模块, 其主要目的是发现实体和实体之间存在的语义关系类别

例如,发现人物和公司之间存在雇员、CEO、CTO、创始人、董事长等关系类别。

 

(3)事件抽取

事件抽取指的是从非结构化文本中抽取事件信息,并将其以结构化形式呈现出来的任务

例如,从“毛泽东 1893 年出生于湖南湘潭” 这句话中抽取事件{类型:出生,人物:毛泽东, 时间:1893年,出生地:湖南湘潭}。

事件抽取任务通常包含事件类型识别和事件元素填充两个子任务。

事件类型识别判断一句话是否表达了特定类型的事件。

事件类型决定了事件表示的模板,不同类型的事件具有不同的模板。

例如出生事件的模板是{人物,时间,出生地},而恐怖袭击事件的模板是{地点,时间,袭击者,受害者,受伤人数,…}。

事件元素指组成事件的关键元素,事件元素识别指的是根据所属的事件模板,抽取相应的元素,并为其标上正确元素标签的任务。

 

(4)信息集成

实体、关系和事件分别表示了单篇文本中不同粒度的信息。

在很多应用中,需要将来自不同数据源、不同文本的信息综合起来进行决策,这就需要研究信息集成技术。

息抽取研究中的信息集成技术主要包括共指消解技术和实体链接技术。

共指消解指的是检测同一实体/关系/事件的不同提及,并将其链接在一起的任务,例如,识别“乔布斯是苹果的创始人之一,他经历了苹果公司几十年的起落与兴衰” 这句话中的“乔布斯”和“他” 指的是同一实体。

实体链接的目的是确定实体名所指向的真实世界实体。例如识别上一句话中的“苹果” 和“乔布斯”分别指向真实世界中的苹果公司和其CEO史蒂夫·乔布斯。

如下:军事术语信息抽取

 

目前对于自然语言处理中的序列标记问题其主要的研究方法主要包括概率图模型(隐马尔科夫模型(HMM)、条件随机场(CRF))和神经网络(主流的解决方法一般为bi-LSTM+CRF,早期自然语言处理的研究中也有用到SVM+AdaBoost)

 

隐马尔可夫模型(HHM)

隐马尔可夫模型作为概率图模型(也即生成式模型)(probabilistic graphical model)的典型代表

(概率图模型根据变量间的相关关系一般可以分为贝叶斯网络(Bayesian network,变量间存在显示的因果依赖关系,用有向无环图表示)和马尔可夫网(Markovn network,变量间存在相关性但因果关系难以获得,用无向图表示。)是一种结构最简单的动态贝叶斯网络。

 

1. 马尔可夫模型

马尔可夫模型主要是用于描述系统状态间的转移过程,即系统随时间或空间的推移,从某一状态转移至另一状态。

在马尔可夫过程中其假设系统在 t时刻的状态只与上一时刻即t -1有关,而与之前的状态无关。

该模型主要包括三个要素,

  • S:模型中状态的有限集合;
  • Π :初始状态空间的概率分布;
  • A:状态转移概率矩阵。

如图. 马尔可夫模型三元组

preview

 

对于马尔可夫模型还有一些有趣的结论,如经过相当长的时间后,也即经过多次的状态转移后,最终的状态将收敛于同一结果,而于起始状态无关。(即最终状态只与状态转移矩阵有关,而与初始状态无关)

 

2. 隐马尔可夫模型

通过可见的事物的变化揭示深藏其后的内在的本质规律,这也是为什么该模型称之为隐马尔可夫的原因(状态序列不可知)。

 

(1)HMM评估问题

上面一节都是屁话

a. 前向算法

 

前向算法动态示意图的url = pic3.zhimg.com/v2-aab75a9c…

b. 后向算法

后向算法示意图

后向算法与前向算法相相似,其时间复杂度也为 O(N^2T)

 

###从这里起可以看原文了,我这总结了一次,不浪费时间了zhuanlan.zhihu.com/p/50184092?…

(2) HMM解码问题

Viterbi算法(动态规划)

(3)HMM参数学习

隐马模型的主要参数即为两个矩阵A,B .A:隐状态转移概率矩阵和   B:给定状态下观察值的概率分布。

 

隐马尔可夫模型在序列标注中的应用

分词

词性标注

短语识别、语音识别

 

条件随机场模型(CRF)

随机场。随机场可看成是一组随机变量的集合(此组随机变量均来自样本空间)

这些随机变量间可能存在某种相互依赖关系,当我们为每一个位置的随机变量根据某种分布随机赋予相应空间的一个值后,其全体就叫做随机场。

马尔可夫性。马尔可夫性是指当我们将一个由随机变量组成的序列按时间先后顺序展开后,其第 N+1 时刻变量的分布特性只与第 N 时刻变量的取值有关,而与第 N时刻之前变量的取值无关。

我们将满足马尔可夫性的随机场称为马尔可夫随机场(MRF)。

1. 最大熵模型(最大熵模型中输出相互独立)

2. 条件随机场(CRF)

CRF在命名实体识别中的应用,其模型输入即为词序列,输出即为词标记。

神经网络序列标注模型架构 如下

简单举例说明随机场概念:现有若干个位置组成的整体,当给定某一个位置按照某种分布随机赋予一个值后,该整体就被称为随机场。

 

 

以地名识别为例,假设定义如下规则:

标注含义
B当前词为地名命名实体的开始词
M当前词为地名命名实体的中间词
E当前词为地名命名实体的结尾词
S当前词单独构成地名命名实体
O当前词不是地名命名实体或其组成部分

现有一个由n个字符构成的句子,每个字符的标签都在已知的标签集合中 {“B”,“M”,“E”,“S”,“O”} 选择,当我们为所有字符选定标签后,就形成了一个随机场

若在其中加一些约束,如所有字符的标签只与相邻的字符标签有关,那么就转化为马尔可夫随机场问题。

假设马尔可夫随机场中有 XXX 和 YYY 两种变量,XXX 一般是给定的,YYY 是在给定 XXX 条件下的输出。在该例子中,XXX 是字符,YYY 是标签,P(Y∣X)P(Y|X)P(Y∣X) 就是条件随机场

一般将这种结构称为线性链条件随机场。定义如下:

设X=(X1,X2,X3,⋅⋅⋅,Xn)X=(X_1,X_2,X_3,···,X_n)X=(X1​,X2​,X3​,⋅⋅⋅,Xn​)和Y=(Y1,Y2,Y3,…,Yn)Y=(Y_1,Y_2,Y_3,…,Y_n)Y=(Y1​,Y2​,Y3​,…,Yn​)均为线性链表示的随机变量序列,若在给定的随机变量序列X的条件下,随机变量Y的条件概率分布P(Y|X)构成条件随机场,且满足马尔可夫性: P(Yi∣X,Y1,Y2,⋅⋅⋅,Yn)=P(Yi∣X,Yi−1,Yi+1))P(Y_i|X,Y_1,Y_2,···,Y_n)=P(Y_i|X,Y_i-_1,Y_i+_1))P(Yi​∣X,Y1​,Y2​,⋅⋅⋅,Yn​)=P(Yi​∣X,Yi​−1​,Yi​+1​))
则称P(Y|X)为线性链的条件随机场
也就是说,线性的模型只考虑两边的节点对它的影响,因为只有两边的节点与它相邻。

上面参考:命名实体识别blog.csdn.net/qq_42851418…

 

 

 

有关RNN、LSTM等网络结构的介绍请参看:zhuanlan.zhihu.com/p/50915723

CRF和LSTM 模型在序列标注上的优劣?www.zhihu.com/question/46…

从RNN、LSTM到Encoder-Decoder框架、注意力机制、Transformerzhuanlan.zhihu.com/p/50915723