自然语言-知识图谱调研结论

自然语言

分类任务

文本分类

1. torchText

2. Feed-Forward Neural Networks(前馈神经网络)

FFN在很多TC(文本分类)任务中实现了高精确度。它把文本看做成一袋单词。每个单词都用word2vec或者Glove等嵌入模型表示成词向量,然后将词向量取和或者平均来代表文本,然后通过一层或多层的前馈神经网络(例如:MLPs),然后使用分类器(例:逻辑回归,朴素贝叶斯,或SVM)对最后一层的表示进行分类。

3. RNN-Based Models(基于循环神经网络的模型)

RNN-Based models 将文本看做一序列的单词,旨在为TC捕获单词依赖性和文本结构。但是传统的RNN模型表现并不好,还没有前馈网络表现好,于是出现了很多变体。其中以LSTM最流行,旨在更好的捕捉长期依赖关系。

LSTM 通过引入记忆单元来记住任意时间间隔的值,并通过三个门来控制输入输出和遗忘。
Tree-LSTM 树形的比链式的LSTM更好,作者认为自然语言将词组合成短语来表达语义信息的,所以Tree-LSTM可以捕获更丰富的语义表征。

为了模拟机器阅读的长跨度单词关系,采用记忆网络代替单个记忆单元来增强LSTM架构
Multi-Timescale LSTM (MT-LSTM) 用来捕获长距离依赖,将LSTM中的隐藏状态分为多组,每个组在不同的时间范围内进行激活和更新。据报道,MT-LSTM在TC上优于baseline(包括基于RNN和LSTM的模型)

TopicRNN,整合BNN和潜在主题模型的优点。它使用RNN捕获本地依赖关系,并使用潜在主题捕获全局依赖关系。

4. CNN-Based Models (基于CNN的模型)

前面提到的RNN模型被训练来识别跨时间的模式,而CNN学习跨空间的识别模式。RNN适用于需要理解远程语义的NLP任务,比如POS标记或者QA。而CNN更适用于局部检测和位置不变模式。在CNN中,预训练的词向量会比随机初始化好,并且采用maxpooling比其他的pooling好。

DCNN(Dynamic CNN) 采用动态的k-max pooling,可以根据句子大小和卷积的层级进行动态选择k。
VDCNN 在字符级别进行操作,并且仅使用小的卷积核池化操作。其性能随着深度的增加而提高

5.Capsule Neural Networks (胶囊网络)

CNN已经能够通过卷积、池化操作进行文本和图片的分类,为什么还要提出胶囊网络呢?主要是因为CNN模型丢失了信息的空间关联,也就是既是位置不正确,也能够正确识别,比如当图片中人的五官位置都不正确,CNN也能识别出是人脸。(池化操作的锅)
胶囊网络是一组神经元,它的活动向量代表一个特定类别的实体的不同属性,向量的长度代表实体存在的可能性,向量的方向表示实体的属性。
与选择一些信息而丢掉其他信息的最大池化不同,胶囊网络从底层的胶囊到高层的胶囊之间会有一个路径规划,寻找最佳的高层胶囊来作为低层胶囊的父辈。

6. TC model based on a variant of CapsNets

7. CapsNet-based model

8. Models with Attention Mechanism (注意力机制模型)

9. hierarchical attention network 分层注意力网络

模型有两个显著的特征,1、是一个分层的结构来反应文档的层次结构。2、在单词和句子级别应用了两个级别的注意力机制,使其能够在构建文档表示时以不同的方式关注重要和不重要的内容。
应用于cross-lingual sentiment classification,在每种语言中,都是用LSTM网路对文档进行建模,然后使用分层注意力机制实现分类。 其中句子级别的注意力模型学习文档中的哪一个句子对于判断情感更加重要。而词级别的注意力模型学习句子中的哪一句话更具有决定性。

10. directional self-attention network for RNN/CNN-free language understanding

只基于注意力机制没有任何的RNN/CNN结构。

11. LSTM model with inner-attention for NLI(自然语言推理)

这个模型对用户两个阶段的过程来编码一个句子。首先,在word-level Bi-LSTMs 基础上采用平均池化来生成第一个阶段的句子表示,然后,用注意力机制来代替平均池化在同一个句子上进行更好的表示。
将TC任务看成标签和单词匹配任务,每个标签与词向量用相同的方法嵌入表示。

12. Memory-Augmented Networks (记忆增强网络)

前面提到的注意力机制在编码过程中的隐藏状态可以看成模型内部存储器,而记忆增强网络可以能够将神经网络与一种外部存储器结合在一起,模型可以读写到外部存储器。

Neural Semantic Encoder (NSE) 应用于TC和QA任务,其具有可变大小的编码内存,随着时间的推移而演变,并能够通过读写改操作来保证对输入序列的理解。
Dynamic Memory Network(DMN) 通过处理输入序列和问题来形成情景记忆,从而生成相关回答。在QA和POS方便取得了更好的进展。

13. Graph Neural Networks (图神经网络)

TextRank 最早的基于图的模型。节点表示各种类型的文本,比如单词、搭配、句子等。边来表示节点之间的不同类型的关系,例如词汇、语义关系、上下文重叠等。

Graph Neural Networks (GNNs) 通过扩展图数据的深度学习方法

Graph Convolutional Networks (GCNs) 是图上的CNN的一种变形,可以更有效方便的与其他的神经网络结合

graph-CNN,首先将文本转换成词图,然后使用图卷积操作对词图进行卷积。使用词图去表示文本更加能够捕捉到非连续和长距离语义。

对于一个大的文本集建立GNN是很耗时的,现在有些研究来降低模型复杂度或者改变训练策略。降低复杂度的模型有Simple Graph Convolution(SGC),它将卷积GNN相邻层的非线性操作去掉,将权重矩阵降为线性变换。在改变训练策略方便,模型有Text-level GNN,它将文本用滑动窗划分为不同的chunk,然后对这些chunk进行graph表示,以此来减少内存消耗。

14. Siamese Neural Networks(S2Nets)

S2Nets,也叫深度结构化语义模型(DSSMs)是用来进行文本匹配的。很多NLP任务,比如问题文本排序,抽取式问答的答案选择等都可以看做TC的特例。

正如图12所示,S2nets包含一对DNN,f1,f2分别将x,y映射到相同的低纬度语义空间,然后用cosine来计算x,y的相似度。f1f2可以是相同的结构,也可以是不同的结构。f1和f2能够根据x,y来选取不同的结构。例如,为了计算图相似度,f1可以是一个深度卷积神经网络,f2可以是一个循环神经网络或者多层感知机。因此这个模型可硬广泛应用到NLP任务中。

15. Hybrid Models 混合模型

很多混合模型结合LSTM和CNN来获取句子和文档的局部或者全局特征。

Convolutional LSTM (C-LSTM) network 利用CNN来获取高层次短语表示,然后将其喂给LSTM网络获得句子表示。
Dependency Sensitive CNN (DSCNN),主要用于文档模型,是一个分层模型,LSTM学习句子向量,然后喂给卷积层、最大池化层来生成文档表示
Hierarchical Deep Learning approach for Text classification (HDLTex) 用于文本分类
Stochastic Answer Network (SAN) 用于机器阅读理解

16. Transformers and Pre-Trained Language Models 预训练语言模型

Transformer 采用自注意力机制解决了长距离依赖问题,还能够并行计算,这就使得在GPU上训练大模型和处理大数据称为了可能。

预训练模型分类(按照表示类型、模型架构、预训练任务、下游任务)

autoregressive and autoencoding PLMs. 自回归和自编码

  • 自回归预训练模型:OpenGPT
    OpenGPT是一个单向模型,从左向右(或从右向左)逐个单词的预测文本序列,对每一个单词的预测取决于前一个单词。OpenGPT结构如下:

包含12层Transformer块,每层包含一个带掩码的多头注意力模块。每一层后边是一个层归一化和一个位置前馈层。
OpenGPT可以通过添加特定线性分类器和微调标签来适应TC等下游任务。

  • 自编码:BERT
    与OPenGPT通过之前的预测来预测当前词不同,BERT是使用MLM任务进行训练,该任务是随机掩蔽文本序列中的一些token,然后通过调节双向transformer获得的编码向量来独立恢复被掩蔽的token。
    BERT的改进:
    (1)RoBERTa 比BERT更加强大,可以使用更多的训练数据进行训练。
    (2) ALBERT 降低了内存系消耗并提高了BERT的训练速度
    (3)DistillBERT在预训练期间通过利用知识蒸馏,将BERT的大小减小到40%,保留BERT原有的99%的功能,并提高60%的速度。
    (4) SpanBERT扩展了BERT以更好的进行表示和预测文本跨度。
    (5)Electra 利用比MLM更加简单有效的预训练任务–eplaced token detection,它不是mask输入,而是从一个小型生成网络中抽取出一些合理的替代方案来代替一些token
    (6)ERNIE结合了来自外部知识库的知识,例如命名体识别等进行预训练。
    (7)ALUM引入了对抗性损失,提高了模型对新任务的泛化能力和对抗鲁棒性

自回归和自编码相结合的预训练语言模型:

XLNet
Unified language Model (UniLM)
Beyond Supervised Learning
Unsupervised Learning using Autoencoders.
Adversarial Training

对抗训练是用来改进分类泛化器的这一种正则化方法。
Reinforcement Learning

问答系统

BigBird:用于更长序列的 Transformer

BigBird 是运行在稀疏注意力机制上的,允许它克服 BERT 的二次依赖性,同时又保持了完全注意力模型的属性。研究人员还提供了 BigBird 支持的网络模型如何超越以前的自然语言处理模型以及基因组学任务的性能水平的实例。
在这里插入图片描述

在我们开始讨论 BigBird 的可能应用之前,先看看 BigBird 的主要亮点。BigBird 的主要亮点以下是 BigBird 的一些特性,这些特性使它比以前基于 Transformer 的模型更好。稀疏注意力机制BigBird 使用稀疏注意力机制,使其能够处理序列的长度比 BERT 可能的长度多 8 倍。请记住,使用与 BERT 相同的硬件配置就可以实现这一结果。在 BigBird 的那篇论文中,研究人员展示了 BigBird 中使用的稀疏注意力机制是如何与完全自注意力机制(用于 BERT)一样强大的。除此之外,他们还展示了“稀疏编码器是如何做到图灵完备的”。简单地说,BigBird 使用稀疏注意力机制,这意味着注意力机制是逐个令牌应用的,而不是像 BERT 那样,注意力机制只对整个输入进行一次应用!可以处理多达 8 倍长的输入序列BigBird 的主要特点之一是它能够处理比以前长 8 倍的序列。研究小组设计 BigBird 是为了满足像 BERT 这样的全 Transformer 的所有要求。利用 BigBird 及其稀疏注意力机制,研究小组将 BERT 的复杂度 O ( n 2 ) O(n^2) O(n2) 降到 O ( n ) O(n) O(n)。这意味着原来限制为 512 个令牌的输入序列,现在可以增加到 4096 个令牌(8*512)。BigBird 的研究人员之一 Philip Pham 在一次 Hacker News 讨论 中表示:“ 在我们大部分论文中,我们使用的是 4096,但我们可以使用更大的 16K 以上。”针对大数据集进行预训练

在这里插入图片描述

Google 研究人员在 BigBird 的预训练中使用了 4 种不同的数据集:Natural Questions、Trivia-QA、HotpotQA-distractor、WikiHop。虽然 BigBird 的预训练集远不如 GPT-3(训练参数为 1750 亿个参数)大,但研究论文中的表 3 显示,它比 RoBERTa 和 Longformer 的性能更好。RoBERTa 是一种稳健优化的 BERT 预训练方法,Longformer 是一种用于长文档的类 BERT 模型。当 一位用户请求 Philip Pham 将 GPT-3 与 BigBird 进行比较时,他说:“ GPT-3 只是用了 2048 的序列长度。BigBird 只是一种注意力机制,实际上可能是对 GPT-3 的补充。”

翻译任务

1. seq2seq(可以解决长度不同的输入输出问题),其beam search为2,经过多个ende过程,可以输出概率最大的两个序列。

如下图所示,我们在decoder的过程中,有了beam search方法后,在第一次的输出,我们选取概率最大的"I"和"am"两个单词,而不是只挑选概率最大的单词。
在这里插入图片描述

然后接下来我们要做的就是,把“I”单词作为下一个decoder的输入算一遍得到y2的输出概率分布,把“am”单词作为下一个decoder的输入算一遍也得到y2的输出概率分布。比如将“I”单词作为下一个decoder的输入算一遍得到y2的输出概率分布如下:
在这里插入图片描述

比如将“am”单词作为下一个decoder的输入算一遍得到y2的输出概率分布如下:
在这里插入图片描述

那么此时我们由于我们的beam size为2,也就是我们只能保留概率最大的两个序列,此时我们可以计算所有的序列概率:“I I” = 0.40.3    "I am" = 0.30.6  "I Chinese" = 0.40.1  "am I" = 0.50.3 "am am" = 0.50.3 "am Chinese" = 0.50.4我们很容易得出俩个最大概率的序列为 “I am”和“am Chinese”,然后后面会不断重复这个过程,直到遇到结束符为止。最终输出2个得分最高的序列。这就是seq2seq中的beam search算法过程,但是可能有些同学有一个疑问,就是但i-1时刻选择的单词不同的时候,下一时刻的输出概率分布为什么会改变?这是由于解码的过程中,第i时刻的模型的输入,包括了第i-1时刻模型的输出,那么很自然在第i-1时刻模型的输出不同的时候,就会导致下一时刻模型的输出概率分布会不同。因为第i-1时刻的输出作为参数影响了后一时刻模型的学习。
2.

知识图谱

知识图谱目前发展层面:命名实体识别、关系抽取、自然语言推理、语义文本相似性、事件提取、联合实体和关系提取。

命名实体识别

mect结构学习

https://paperswithcode.com/paper/mect-multi-metadata-embedding-based-cross

locate and label

  1. 论文及code链接

论文具体内容

命名实体识别是自然语言处理中的一个研究热点。传统的NER研究只处理扁平实体,而忽略嵌套实体。基于跨度的方法将实体识别视为一个跨度分类任务。虽然这些方法具有处理嵌套NER的先天能力,但存在计算成本高、忽略边界信息、不能充分利用与实体部分匹配的跨度以及长实体识别困难等问题。为了解决这些问题,我们提出了一个两阶段的实体标识符。首先对种子跨度进行过滤和边界回归生成跨度建议,确定实体的位置,然后对边界调整后的跨度建议进行分类。该方法在训练过程中有效地利用了实体的边界信息和部分匹配的跨度。通过边界回归,理论上可以覆盖任意长度的实体,提高了对长实体的识别能力。此外,在第一阶段过滤掉许多低质量的种子跨越,降低了推断的时间复杂度。嵌套的实验NER数据集表明,我们提出的方法优于以前最先进的模型。

https://github.com/PaddlePaddle/ERNIE

关系抽取

https://paperswithcode.com/task/relation-extraction/latest

自然语言推理

https://paperswithcode.com/task/natural-language-inference/latest

语义文本相似性

https://paperswithcode.com/task/semantic-textual-similarity

信息提取-事件提取

https://paperswithcode.com/task/event-extraction/latest

信息提取-联合实体和关系提取

https://paperswithcode.com/task/joint-entity-and-relation-extraction/latest

猜你喜欢

转载自blog.csdn.net/weixin_44077556/article/details/128114954