分类目录归档:自然语言处理(NLP)

BART详解


一切都得从 Transformer 说起。Transformer 左半边为 Encoder,右半边为 Decoder。我们将 Encoder 输入的句子称为 source,Decoder 输入的句子称为 target

Encoder 负责将 source 进行 self-attention 并获得句子中每个词的 representation,最经典的 Encoder 架构就是 BERT,通过 Masked Language Model 来学习词之间的关系,另外还有 XLNet, RoBERTa, ALBERT, DistilBERT 等等。但是单独 Encoder 结构不适用于生成任务

D

Read more

GPLinker:基于GlobalPointer的实体关系联合抽取


基础思路

关系抽取乍看之下是三元组(s,p,o)(即subject, predicate, object)的抽取,但落到具体实现上,它实际是“五元组”(sh,st,p,oh,ot)的抽取,其中sh,st分别是s的首、尾位置,而oh,ot则分别是o的首、尾位置。 从概率图的角度来看,我们可以这样构建模型: 1、设计一个五元组的打分函数S(sh,st,p,oh,ot); 2、训练时让标注的五元组S(sh,st,p,oh,ot)>0,其余五元组则S(sh,st,p,oh,ot)<0; 3、预测时枚举所有可能的五元组,输出S(sh,st,p,oh,ot)>0的部分。 然而,直接枚举所

Read more

论文笔记|TPLinker:Single-stage Joint Extraction of Entities and RelationsThrough Tok


1.Introduction

目标:从给定的非结构化文本中识别实体之间的关系,组成关系三元组(ei, rk, ej)。如图所示,关系可能会有重叠, SEO:一个实体可能出现在多个关系中。 EPO:同一个实体对可能属于不同的关系。

2.RelatedWork

方法 缺点 相关论文
Traditional pipelined method 忽视了实体抽取和关系预测之间的关系 (Zelenko et al., 2003; Chan and Roth, 2011)
Feature-based 过程过于复杂 (Yuand Lam, 2010; Miwa and Sasaki, 2014

Read more

GlobalPointer:用统一的方式处理嵌套和非嵌套NER


本文将介绍一个称为GlobalPointer的设计,它利用全局归一化的思路来进行命名实体识别(NER),可以无差别地识别嵌套实体和非嵌套实体,在非嵌套(Flat NER)的情形下它能取得媲美CRF的效果,而在嵌套(Nested NER)情形它也有不错的效果。还有,在理论上,GlobalPointer的设计思想就比CRF更合理;而在实践上,它训练的时候不需要像CRF那样递归计算分母,预测的时候也不需要动态规划,是完全并行的,理想情况下时间复杂度是O(1)! 简单来说,就是更漂亮、更快速、更强大!真有那么好的设计吗?不妨继续看看。

GlobalPoniter多头识别嵌套实体示意图

GlobalP

Read more

NLP系列之命名实体识别:四种范式


前言

这篇文章梳理下目前命名实体识别(NER)的业务场景与SOTA方法。 说到NER,是绕不开BERT+CRF的,根据本人的经验,BERT+CRF就算不是你当前数据集的SOTA,也与SOTA相差不大了,但考虑到 更好的效果:CRF虽然引入了无向图,但只约束了相连结点之间的关联,并没有从全局出发来考虑问题 更复杂的业务场景:如Flat NER到Nested NER、不连续NER等复杂业务场景的不断涌现,CRF是否还能优雅地解决问题 更快的线上serving效率:CRF解码复杂度与输入的文本长度呈线性关系 本文,首先梳理下场景,再讨论方法,欢迎大家交流。

场景

嵌套(Nested)

组间嵌套:如上

Read more

CRF层的作用


Bert+CRF 层

Bert把中文文本进行了embedding,得到每个字的表征向量

dense操作得到了每个文本文本对应的未归一化的tag概率

CRF在选择每个词的tag的过程其实就是一个最优Tag路径的选择过程

CRF层能从训练数据中获得约束性的规则

比如开始都是以xxx-B,中间都是以xxx-I,结尾都是以xxx-E

比如在只有label1-I

CRF层的输入是:每个词预测对应每个标签的分数 CRF层的输出是:每个可能的标注序列,并选择得分最高的序列作为最终结果; 如果没有CRF层的帮助,仅BiLSTM的话,模型只会选择每个词对应标签最大的概率作为输出,可能会出现I-Persion

Read more

语音合成技术-tacotron2


引言

语音合成,又称文语转换(Text To Speech, TTS),是一种可以将任意输入文本转换成相应语音的技术。 Tacotron2 论文地址:Natural TTS Synthesis by Conditioning WaveNet on Mel Spectrogram Predictions

基于传统方法的语音合成

传统的语音合成系统通常包括前端和后端两个模块。前端模块主要是对输入文本进行分析,提取后端模块所需要的语言学信息,对于中文合成系统而言,前端模块一般包含文本正则化、分词、词性预测、多音字消歧、韵律预测等子模块。后端模块根据前端分析结果,通过一定的方法生成语音波形,后端系统一

Read more

条件随机场(CRF)


本文是对CRF基本原理的一个简明的介绍。 我们先来对比一下普通的逐帧softmax和CRF的异同。

逐帧softmax

CRF主要用于序列标注问题,可以简单理解为是 给序列中的每一帧都进行分类,既然是分类,很自然想到将这个序列用CNN或者RNN进行编码后,接一个全连接层用softmax激活,如下图所示

逐帧softmax并没有直接考虑输出的上下文关联

条件随机场

然而,当我们设计标签时,比如用s、b、m、e的4个标签来做字标注法的分词,目标输出序列本身会带有一些上下文关联,比如s后面就不能接m和e,等等。逐标签softmax并没有考虑这种输出层面的上下文关联,所以它意味着把这些关联放到了编码

Read more

Roberta详解


image.png 论文地址:https://arxiv.org/pdf/1907.11692.pdf 论文标题: RoBERTa: A Robustly Optimized BERT Pretraining A pproach 一个强力优化的BERT预训练方法。

0、摘要:

语言模式预训练已经带来了显著的性能提升,但仔细比较不同方法是一个挑战。训练的计算成本很高,通常是在不同大小的私有数据集上进行的,我们将展示,超参数选择对最终结果有重大影响。我们对BERT 预训练进行了一项复制研究,仔细测量了许多关键超参数和训练数据大小的影响。 我们发现,BERT的训练明显不足,可以与发布后的每个模型的

Read more

BERT详解


  1. 什么是BERT? BERT全名 Bidirection Encoder Representations from Transformers,是谷歌于2018年发布的NLP领域的 预训练模型,一经发布就霸屏了NLP领域的相关新闻,味道是真香。果不其然,2019年出现了很多BERT相关的论文和模型,本文旨在对 BERT模型进行一个总结。 首先从名字就可以看出,BERT模型是使用双向Transformer模型的EncoderLayer进行特征提取(BERT模型中没有 Decoder部分)。Transformer模型作为目前NLP领域最牛的特征提取器其原理不需要多做介绍,其中的EncoderLay

Read more