ELMo、GPT、BERT、X-Transformer…你都掌握了吗?一文总结文本分类必备经典模型(三)

2022 年 10 月 2 日 机器之心

 机器之心专栏

本专栏由机器之心SOTA!模型资源站出品,每周日于机器之心公众号持续更新。
 
本专栏将逐一盘点自然语言处理、计算机视觉等领域下的常见任务,并对在这些任务上取得过 SOTA 的经典模型逐一详解。前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及 API 等资源。

本文将分 3 期进行连载,共介绍 20 文本分类任务上曾取得 SOTA 的经典模型。


  • 第 1 期:RAE、DAN、TextRCNN、Multi-task、DeepMoji、RNN-Capsule

  • 第 2 期:TextCNN、DCNN、XML-CNN、TextCapsule、、Bao et al.、AttentionXML

  • 第 3 期:ELMo、GPT、BERT、ALBERT、X-Transformer、LightXML、TextGCN、TensorGCN

您正在阅读的是其中的第 3 期。前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及 API 等资源。

第1期回顾:TextRCNN、TextCNN、RNN…你都掌握了吗?一文总结文本分类必备经典模型(一)

第2期回顾:TextCNN、DCNN、AttentionXML…你都掌握了吗?一文总结文本分类必备经典模型(二)


本期收录模型速览

模型 SOTA!模型资源站收录情况 模型来源论文
ELMo https://sota.jiqizhixin.com/models/models/e473edac-88cc-4a83-b533-d15c2ca0ea17
收录实现数量:3
支持框架:TensorFlow、PyTorch、MXNet 等
Deep Contextualized Word Representations
GPT https://sota.jiqizhixin.com/models/models/09877886-65c3-44b0-a5be-9e5043964787
收录实现数量:1
支持框架:
TensorFlow、PyTorch
Improving language understanding by generative pre-training
BERT https://sota.jiqizhixin.com/models/models/1d27a74a-8668-4d64-9615-ce889b88700b
收录实现数量:7
支持框架:TensorFlow、PyTorch 等
BERT: pre-training of deep bidirectional transformers for language understanding
ALBERT https://sota.jiqizhixin.com/models/models/0306236e-ce20-4886-98cb-45730fda6cf9
收录实现数量:13
支持框架:PyTorch、TensorFlow、CANN
ALBERT: A lite BERT for self-supervised learning of language representations
X-Transformer https://sota.jiqizhixin.com/models/models/fa67640c-fedb-400e-a6fb-e83b4eedbb65
收录实现数量:1

支持框架:TensorFlow

Taming pretrained transformers for extreme multi-label text classification
LightXML https://sota.jiqizhixin.com/models/models/7f477837-72fe-435d-b8e4-13d5308c7bfa
支持框架:PyTorch
Lightxml: Transformer with dynamic negative sampling
for high-performance extreme multi-label text classification
TextGCN https://sota.jiqizhixin.com/models/models/64a6edf7-3e03-455c-bb54-26ab72607c0e
收录实现数量:1
支持框架:TensorFlow
Graph convolutional networks for text classification
TensorGCN https://sota.jiqizhixin.com/models/models/2702592d-f69f-41a6-9c29-924999576bd3
收录实现数量:1
支持框架:TensorFlow
Tensor graph convolutional networks for text classification


文本分类是自然语言处理中最基本、最经典的任务,大部分自然语言处理任务都可以看作是分类任务。近年来,深度学习在众多研究领域中获得了巨大的成功,如今,也成为了 NLP 领域的标配技术,广泛渗透入文本分类任务中。


与数字、图像不同,对文本的处理强调精细化的处理能力。传统的文本分类方法一般需要对输入模型的文本数据进行预处理,此外还需要通过人工标注的方法来获得良好的样本特征,然后使用经典的机器学习算法对其进行分类。类似的方法包括 NaiveBayes(NB)、K 近邻(KNN)、支持向量机 SVM 等。特征提取的水平对文本分类效果的影响甚至高于图像分类,而文本分类中的特征工程往往非常耗时且计算成本高。2010 年后,文本分类的方法逐渐过渡到深度学习模型。应用于文本分类的深度学习通过学习一系列的非线性变换模式将特征工程直接映射到输出,从而将特征工程集成到模型拟合过程中,一经应用就获得了巨大的成功。


与图像分类模型不同,文本分类模型一般不会采用堆叠模块、修改深度模型结构等方式去改进,更多则是通过引入其它技术手段改进模型效果,例如引入注意力机制、预训练、图神经网络、胶囊网络等。所以在介绍经典文本分类模型时,更多的是介绍为了解决文本分类中的哪一类具体问题,针对性的引入了哪些专门的技术 trick,以及这些引入的 trick 是如何与原有的经典架构融合的。


此外,NLP 领域中大量工作都聚焦于前端的词、语句、文本的处理或语义理解,目的是为下游的各类任务服务,当然也包括文本分类任务。为了更聚焦于文本分类模型,我们在这篇文章中只介绍专门的文本分类模型,其它 NLP 模型会放在后续的专题报告中介绍。最后,文本分类模型以 BERT 的出现明显呈现出两个不同的发展阶段,BERT 提出后(2019 年之后),单纯基于 RNN、CNN 改进的且效果比较突出的方法就比较少了。


一、Pre-train


预训练的语言模型可以有效地学习全局语义代表,并显著提升NLP任务的效果,包括文本分类。它通常使用无监督的方法来自动挖掘语义知识,然后构建预训练目标,使机器能够学习理解语义。如图1所示,我们给出了Embeddingfrom Language Model (ELMo)、OpenAI GPT和BERT之间模型架构的差异。ELMo是一个深度的语境化单词表示模型,它很容易被整合到模型中。它可以对单词的复杂特征进行建模,并为各种语言环境学习不同的表示方法。它根据双向LSTM的上下文词来学习每个词的嵌入。GPT采用有监督的微调和无监督的预训练来学习一般的表征,这些表征在有限的适应下转移到许多NLP任务。此外,目标数据集的领域不需要与未标记的数据集的领域相似。GPT算法的训练过程通常包括两个阶段。首先,神经网络模型的初始参数是通过在未标记的数据集上的建模目标学习的。我们可以采用相应的监督目标来适应目标任务的这些参数。谷歌提出的BERT模型,通过对每一层的左右上下文进行联合调节,从未标记的文本中预训练出深层次的双向表征,显著提高了NLP任务的性能,包括文本分类。BERT应用了双向编码器,旨在通过联合调整所有层的上下文来预先训练深度的双向表示。它可以在预测哪些词被掩盖时利用上下文信息。它只需增加一个额外的输出层就可以进行微调,为多个NLP任务构建模型。



图1 包括BERT、OpenAI GPT和ELMo在内的预训练模型架构的差异。𝐸𝑖代表第𝑖个输入的嵌入。Trm代表Transformer块。𝑇𝑖代表𝑖稀疏输入的预测标签


与这三个模型相比,ELMo是一种使用LSTM的基于特征的方法,而BERT和OpenAI GPT是使用Transformer的微调方法(也可以归类到本文第七类Transformer模型里,为了表述清晰,本文将GPT和BERT放入Pre-train类别中介绍)。此外,ELMo和BERT是双向训练模型,而OpenAI GPT是从左到右的训练。因此,BERT得到了一个更好的结果,它结合了ELMo和OpenAI GPT的优点。


1.1 ELMo


词向量模型ELMo的相关论文发表在NAACL 2018上。具体的方法是将每个词的表示看作是对于整体句子的函数,通过利用在语料上训练的双向LSTM的语言模型得到词向量,因此将其称为ELMo(Embeddings from Language Models)。对比传统Word2Vec这种静态形式的词向量,ELMo是一种动态模型。对于静态形式的词向量来说,无论在任何的上下文中都使用同一个向量,因此很难表示一词多义的现象,而ELMo则可以通过上下文动态生成词向量,从理论上会是更好的模型,从实测效果来看在很多任务上也都达到了当时的SOTA成绩。ELMo引入了上下文语境的概念。ELMo的架构如下图所示。


图2 ELMo架构

首先介绍双向语言模型biLM,这是ELMo的基础。给定N个tokens的序列,一个前向语言模型通过对t_o的概率进行建模来计算t_k的概率:

而双向语言模型就是添加了另一个方向的预测,利用N~k+1个token来预测第k个token:

目标函数则是上述两者的联合损失(BiLM):

不同于其他类型的模型采用最顶层的输出作为token的表示,ElMo采用多个层的线性加和作为token的表示,对于每个token,在一个L层的biLm中可以输出2L+1表示:

在下游任务中,可以将上述2L+1个表示进行整合:

具体到ELMo的架构,还是按照训练语言模型的方式,使用了CNN-BIG-LSTM结构和一个层之间的残差链接。使用ELMo可以针对一个token产生三个向量,:原始向量、第一层向量、第二层向量。作者认为低层的bi-LSTM层能提取语料中的句法信息,而高层的bi-LSTM能提取语料中的语义信息。

当前 SOTA!平台收录 ELMo 共 3 个模型实现资源。

模型 SOTA!平台模型详情页

ELMo

前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/models/models/e473edac-88cc-4a83-b533-d15c2ca0ea17

1.2 GPT


GPT是“Generative Pre-Training”的简称,是指的生成式的预训练。GPT的训练程序包括两个阶段。第一阶段的预训练是在一个大型文本语料库上学习一个高容量的语言模型。接下来是一个微调阶段,在这个阶段,使模型适应带有标记数据的判别性任务。


  • 第一阶段的工作具体为:Embedding——>Transformer——>Text Production。


  • 第二阶段的工作具体为:将下游任务的网络结构改造成和GPT的网络结构是一样的;利用第一步预训练好的参数初始化GPT的网络结构完成下游任务,这样通过预训练学到的语言学知识就被引入到任务里了;使用下游任务去训练这个网络,对网络参数进行Fine-tuning,使得这个网络更适合解决任务的问题。

对于特定任务的输入转换,使用了一种遍历式的方法,将结构化的输入转换成预先训练好的模型可以处理的有序序列。图3提供了一个可视化的说明。

图3 左)GPT中使用的Transformer结构和训练目标。(右) 输入在不同的任务上进行微调的转化。将所有结构化的输入转化为标记性的序列,由预训练模型处理,然后是一个线性+softmax层

当前 SOTA!平台收录 GPT 共 1 个模型实现资源。

模型 SOTA!平台模型详情页

GPT

前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/models/models/09877886-65c3-44b0-a5be-9e5043964787

1.3 BERT


BERT(Bidirectional Encoder Representations from Transformers)自从谷歌提出就一直大热,很多人认为BERT是整个NLP研究历程中里程碑似的节点。BERT与ELMo提出,一经提出就明显胜过了ELMo。BERT的灵感来源是OpenAI在17年发布过的一篇名为“Attention is all your need”论文中提到的Transformer模型。关于Transformer的相关模型我们放在第七个章节中具体介绍,本章节内BERT是作为一类预训练模型介绍的。

首先,BERT在NLP的11个任务(包括文本分类任务)中均有较大程度性能提升。其次,BERT在无监督场景下结合预训练能够最大化地利用文本数据,同时对不同场景的下游任务均有提升和帮助。BERT的基础建立在Transformer之上,拥有强大的语言表征能力和特征提取能力,同时再次证明了双向语言模型的能力更加强大。

BERT的网络结构使用了双向Transformer的堆叠,Encoder和Decoder分别12层。其思想出于ELMo和GPT但同时又高于二者。ELMo采用了双向LSTM来训练词Embedding,虽然使用了双向LSTM,但其实是使用2个单向LSTM对学到的句子语义信息做拼接,和BERT完全双向不同,对句子间不同词的语义依赖关系也不如BERT捕捉的充分。GPT只有单向,其假设句子间语义依赖关系只有从左到右,而没有从右到左,该假设在实际中并不完全满足。BERT加入了Masked Language Model(MLM) 和 Next Sentences Prediction(NSP),使得模型能够在无监督的场景下学习到句子间特征和语义特征。在无监督学习场景训练,能最大化的使用训练语料。而Pre-train和Fine-tune能够方便地将已训练好的BERT模型迁移到不同的应用场景,在工业界大有益处。

图1最右侧为BERT的架构,可以看出BERT的最大亮点:双向Transformer网络,BERT直接引用了Transformer架构中的Encoder模块,并舍弃了Decoder模块, 这样便自动拥有了双向编码能力和强大的特征提取能力。

下图为BERT的输入图示。由图示可知,BERT的输入包括三个部分:词嵌入张量(Token embeddings)、语句分块张量( segmentation embeddings)、位置编码张量(position embeddings),最终的embedding向量是将上述的3个向量直接做加和的结果。



图4 BERT输入表示。输入嵌入是标记嵌入、分割嵌入和位置嵌入的总和。嵌入和位置嵌入的总和

接下来,MLM和 NSP是BERT的另外两个亮点:


BERT中引入了一个带mask的语言模型训练(Masked LM)。在原始训练文本中,随机抽取15%的token作为即将参与mask的对象。在选中的token中,数据生成器并不是把他们全部变成[MASK],具体变化方法包括三类:一是,在80%的概率下,用[MASK]标记替换token,比如my dog is hairy → my dog is [MASK];二是,在10%的概率下,用随机单词替换token,比如my dog is hairy → my dog is apple;三是,在10%的概率下,保持token不变,比如my dog is hairy → my dog is hairy。


BERT还引入了一个下句话预测任务(Next Sentence Prediction ),目的是服务问答、推理、句主题关系等NLP任务。所有的参与任务训练的语句都被选中参加,其中:50%的B是原始本中实际跟随A的下句话;50%的B是原始本中随机抽取的一句话。在该任务中,BERT模型可以在测试集上取得97-98%的准确率。


最后,fine-tuning是BERT的另一个亮点,只需要将特定任务的输入,输出插入到BERT中,利用Transformer强大的注意力机制就可以模拟很多下游任务,从而具有极佳的迁移特性。


当前 SOTA!平台收录 BERT 共 7 个模型实现资源。

模型 SOTA!平台模型详情页
BERT 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/models/models/1d27a74a-8668-4d64-9615-ce889b88700b

1.4 ALBERT

ALBERT(A Lite BERT)被称为Lite版的Bert,相关论文发表在ICLR 2020。ALBERT采用了两种技术来减少参数量,以应对扩展预训练模型的主要障碍。第一个是因子化嵌入参数化。通过将大型词汇嵌入矩阵分解成两个小矩阵,将隐藏层的大小与词汇嵌入的大小分开。这种分离使得在不显著增加词汇嵌入的参数大小的情况下更容易增长隐藏的大小。第二种技术是跨层参数共享。这种技术可以防止参数随着网络的深度而增长。这两种技术都大大减少了BERT的参数数量而不严重损害性能,从而提高了参数效率。类似于BERT的ALBERT配置的参数减少了18倍,训练速度可以提高1.7倍左右。减少参数的技术也作为一种正则化的形式,稳定了训练并有助于泛化。为了进一步提高ALBERT的性能,还引入了一个用于句序预测的自监督损失(sentence-order prediction,SOP)。SOP主要关注句子间的连贯性,旨在解决原始BERT中提出的下句预测(NSP)损失的无效性。


ALBERT架构的主干与BERT相似,因为它使用具有GELU非线性的Transformer encoder。将词汇embedding size表示为E,将encoder layers层数表示为L,将hidden size表示为H,将feed forward/filter size设置为4H,多头注意力的数量设置为H / 64。

让BERT模型变大(scale up)的方法一般有两种:变深(增加模型的层数)、变宽 (增加隐藏尺寸,即每一层embeddings的特征数),ALBERT的方式是第二种。具体ALBERT的改进点如下所示:


  • Factorized Embedding Parameterization(将初始嵌入缩短为128个特征)。对于词向量维度 E 和隐层维度 H,在词表 V 到 H 的中间,插入一个小维度 E,多做一次尺度变换:O(VxH) →  O(VxE+ExH)。


  • Cross-layer Parameter Sharing(共享所有层的参数)。具体分为三种模式:只共享 attention 相关参数、只共享 FFN 相关参数、共享所有参数(attention相关+FFN)。全共享如下图所示:



图5 ALBERT全共享参数

  • Sentence Order Prediction(SOP)。SOP 就是让模型预测两个相邻 segments 有没有被调换前后顺序。SOP主要是针对NSP提出的,即句子顺序判断。NSP将话题预测和连贯性预测混合在一个任务中。然而,与连贯性预测相比,话题预测更容易学习,而且与使用MLM[掩蔽语言建模]损失学习的内容重叠更多。因此,ALBERT提出一个主要基于连贯性的损失,即句序预测(SOP)损失,它避免了话题预测,侧重于对句子间的一致性进行建模。

  • 此外,还包括用长句做预训练、随机遮连续的多个词(Masked-ngram-LM vs Masked LM)、扩大模型参数、增加预训练数据、去掉Dropout层等trick。

当前 SOTA!平台收录 ALBERT 共 13 个模型实现资源。

模型 SOTA!平台模型详情页
ALBERT 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/models/models/0306236e-ce20-4886-98cb-45730fda6cf9

二、Transformer

基于Transformer的模型可以在不考虑顺序信息的情况下将计算并行化,适用于大规模的数据集,使其在NLP任务中很受欢迎。Transformer由17年一篇著名论文“Attention is All Your Need”提出的。在这篇论文中,作者提出了一种全新的注意力机制— self-Attention,做到了仅仅利用Attention代替了传统的RNN,实现了快速并行计算,挖掘了DNN的特性。

Transformer主要分为两个部分:编码组件+解码组件,与传统的RNN编码、解码的结构很像。Transformer的编码组件由多个encoder(编码器)堆叠而成。每个encoder又有两个子层,分别是 FFN(前馈神经网络) + self-Attention(自注意力层)。FFN就是MLP(多层感知器架构)。而self-Attention层的输入是一个单词经过词嵌入处理的句子,也就是一个词向量列表,输出是结合了句子本身上下文注意力之后的融合向量。此外,为了能够从不同角度捕捉不同的关联程度,Transformer利用了一种"多头"的self-Attention机制。即一个self-Attention层拥有多组WQWKWV ,每组分别用于不同的特征提取,把所有“头”通过一个高维矩阵W0 。Transformer的架构如下图:



图6 Transformer架构图

我们在之前介绍过,BERT系列模型其实也是Transformer模型,但归类为预训练的方法进行了介绍。本章节则聚焦于专门的Transformer系列模型。


2.1 X-Transformer

X-Transformer的工作发表在KDD 2020中,主要针对的是极端多标签(Extreme Multi-label  XML)文本分类问题,即给定输入文本,从大型标签集中返回最相关的标签。因此,X-Transformer也是聚焦于稀疏的巨大标签空间问题(XML-CNN、AttentionXML等),只不过方法是deep transformer结构。X-Transformer的架构如下图:



图7 X-Transformer框架。首先,语义标签索引减少了庞大的输出空间。然后在XMC子问题上对Transformer进行微调,该子问题将实例映射到标签集群。最后,在集群和转化器的输出上有条件地训练线性排名器,以便在预测的集群中对标签进行重新排名

1)语义标签索引(Semantic Label Indexing,SLI)。利用层次聚类将XMC问题转化为更小的K个输出空间的子问题。给定一个训练集D,XML的目的是学习一个评分函数f,将输入(或实例)x_i和 一个标签l映射到一个分数f(x_i, l) ∈R。优化函数f,以满足当y_il=1时得分高(即,标签l与实例x_i有关),而当y_il=0时,得分较低:



其中,ϕ(x)代表一个编码,W 是分类器的瓶颈层。ϕ(x)的编码采用两种方式:一是,通过标签文本嵌入标签,利用XLNET的对每一个token进行词嵌入(token_dim=1 × 1024 )后求和然后平均池化得到标签的向量表示;二是,通过正面实例的嵌入进行标签嵌入。

2)作为神经匹配器的deep Transformer。经过SLI,原来难以解决的XML问题演变成了一个可行的XML子问题,其输出空间大小为K,是一个非常小的数。应用deep Transformer将每个文本实例映射到指定的相关集群。构建分类器:

训练时的Loss为squared hinge loss:

3)排序。用一个线性排序器对所属簇类标签进行排序。引入两个tricks:一是,Teacher Forcing Negatives (TFN)。为了在反向更新权重时提升运算效率并节省运算空间,在back propagation时一般都要进行负采样。本文在负采样抽样时只包含了与groudtruth l 标签属于同一簇的实例。二是,Matcher-aware Negatives (MAN)。为了解决exposure bias的问题,选择使用了MAM方法。该方法借鉴了Scheduled Sampling的思路,将groudtruth与上一个隐状态预测的label所在的簇相互融合。

当前 SOTA!平台收录 X-Transformer 共 1 个模型实现资源。

模型 SOTA!平台模型详情页
X-Transformer 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/models/models/fa67640c-fedb-400e-a6fb-e83b4eedbb65
2.2 Light-XML
Light-XML是AAAI2021中最新的关于Transformer的模型,也是针对于XML问题提出的。在我们前面的介绍中,AttentionXML和X-Transformer存在两个共同的问题:一是,模型既大又多。对于一个数据集,AttentionXML需要训练四个模型。X-Transformer也需要分阶段训练两个模型。二是,负采样策略都关注于一些困难样本,或者说与正样本相似的样本,此种采样方法较难使得模型收敛。LightXML的思路是:结合Transformer和Generative Cooperative Networks将分阶段模型变成End-to-End模型,同时使用动态负采样策略让模型更容易收敛,从而获得更好的效果。

图8 Light-XML架构图

1)标签聚类。聚类方法与AttentionXML相同。由于两层的标签树以及足够处理XML问题,因此只设置了两层的标签树。
2)文本表征。与X-Transformer相同,采用了三种预训练Transformer模型,BERT、XLNet、RoBERTa。区别在于Light-XML对于小型的XML数据集采用了512的输入长度,以及concatenate最后五层的[CLS]表示,作为模型输出。
3)标签回溯。生成器:经过一个sigmoid激活的全连接网络(原文中称为Generator),生成K个标签簇的分数。选择其中top-b个标签簇的所有标签作为候选标签。在训练阶段会为候选标签加入所有positive的标签。使用交叉熵作为Generator的损失。动态负标签采样(Dynamically NLS):X-Transformer/AttentionXML是在第一阶段模型训练完成后,将其结果作为负采样的依据。而动态负采样方法对于同一个训练样本,其负标签在每一个epoch下重新采样,从而能够保证负样本由易到难,同时防止过拟合。
4)排序。标签嵌入:通过随机初始化的标签嵌入矩阵获取候选标签的嵌入;Hidden Bottleneck Layer:参考上文我们介绍的XML-CNN的设置,在分类层和表示层之间加入一个低维的全连接层,起到降低参数量和增强非线性的作用。Discriminator:压缩原始文档表示,与标签嵌入相乘后得到最终所有候选标签的分数。最终使用交叉熵损失。

当前 SOTA!平台收录 Light-XML 共 1 个模型实现资源。

模型 SOTA!平台模型详情页
Light-XML 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/models/models/7f477837-72fe-435d-b8e4-13d5308c7bfa

三、GNN


随着图神经网络(GNN)的关注度越来越高,基于GNN的模型通过对句子的句法结构进行编码,在语义角色标签任务、关系分类任务和机器翻译任务中获得了出色的表现。它将文本分类变成了一个图节点分类任务。我们展示了一个用于文本分类的GCN模型,有四个输入文本,如下图所示。首先,将四个输入文本𝑇=[𝑇1,𝑇2,𝑇3,𝑇4]和文本中的词𝑋=[𝑥1, 𝑥2, 𝑥3, 𝑥4, 𝑥5, 𝑥6]定义为节点,构造成图结构。图形节点由黑色粗边连接,这表示文档-词边和词-词边。每个词-词边缘的权重通常意味着它们在语料库中的共同出现频率。然后,单词和文本通过隐藏层表示。最后,所有输入文本的标签可以通过图来预测。



图9 基于GNN的模型。初始图的不同取决于图的设计方式。给出一个例子,在文档与文档、文档与句子、词与词之间建立边


3.1 TextGCN
TextGCN的文章发表在AAAI 2019中。TextGCN从整个语料库中构建了一个大图,其中包含了作为节点的词和文件,使用图卷积网络(Graph Convolutional Network,GCN)对该图进行建模,这是一个简单而有效的图形神经网络,可以捕捉到高阶邻域信息。两个词节点之间的边缘是由词的共现信息建立的,而一个词节点和文档节点之间的边缘是用词频和词的文档频率建立的。然后,将文本分类问题转化为节点分类问题。该方法可以在标注文档比例较小的情况下实现强大的分类性能,并学习到可解释的词和文档节点嵌入。

图10 文本GCN的示意图。样本取自Ohsumed语料库。以 "O "开头的节点是文档节点,其他节点是词节点。黑色粗边是文档-词的边,灰色细边是词-词的边。R(x)表示x的表示(嵌入)。不同的颜色表示不同的文档类别。CVD:心血管疾病,Neo: 肿瘤,Resp: 呼吸道疾病,Immun: 免疫学疾病


具体到TextGCN,其图卷积结构如下:

1)节点特征向量。把特征矩阵X = I设置为一个单位矩阵,每个单词或文档都表示为one-hot向量,作为Text GCN的输入。

2)边权重。TextGCN根据单词在文档中的出现率(文档-单词边)和单词在整个语料库中的共现率(单词-单词边)来建立节点之间的边。一个文档节点和一个单词节点之间的边的权重是该单词在文档中的术语频率-逆文档频率(term frequency-inverse document frequency,TF-IDF),其中术语频率是该单词在文档中出现的次数,逆文档频率是包含该单词的文档数量的对数比例的反分数。具体来说,对语料库中的所有文档使用固定大小的滑动窗口来收集共现统计信息,采用点对点的相互信息(point-wise mutual information,PMI)来计算两个词语节点之间的权重。形式上,节点i和节点j之间的边的权重被定义为:



在建立文本图后,将图送入一个简单的两层GCN,第二层节点(词/文档)嵌入的大小与标签集相同,并送入一个softmax分类器,最后再经过交叉熵做分类。两层的GCN可以允许最多两步远的节点之间的信息传递。因此,尽管图中没有直接的文档-文档边,但两层GCN允许文档对之间的信息交互。

当前 SOTA!平台收录 TextGCN 共 1 个模型实现资源。


模型 SOTA!平台模型详情页
TextGCN 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/models/models/64a6edf7-3e03-455c-bb54-26ab72607c0e
3.2 TensorGCN
TensorGCN相关论文发表在AAAI 2020中。TensorGCN构造一个文本图张量(多个图)来描述语义、句法和上下文信息。然后,对文本图张量进行了两种传播学习。第一种是图内传播,用于在单个图中聚合来自邻近节点的信息。第二种是图间传播,用于协调图之间的异构信息。TensorGCN提供了一种有效的方法来协调和集成来自不同类型图的异构信息,提升了文本分类的效果。TensorGCN的架构如下图所示:


图11 应用于文本分类的TensorGCN架构


与TextGCN不同,TensorGCN应用的是张量图,张量中每个图的结点都是相同的,而结点之间的边以及权重不同。张量图表示为:G =(G1;G2; ···;Gr),其中Gi = (Vi;Ei;Ai),Vi表示第i个图张量的结点集合,对于从同一段文本派生出来的图张量,Vi=Vj,Ai≠Aj。邻接矩阵也被定义成张量的形式:A = (A1;A2; ··· ;Ar) ,其维度为r×n×n。

我们需要在节点之间建立两种边:词-文本边和词-字边。词-文本边是根据文档中出现的词建立的,边的权重用TF-IDF方法计算。根据三种不同的语言属性建立词-字边:语义信息、句法依赖和局部顺序语境。基于这些不同种类的词-字边,构建了一系列的文本图来描述文本文件。

1)Semantic-based graph。
(1)对指定任务的训练数据进行LSTM训练。
(2)使用LSTM获取语料库中每个文本/句子中的所有单词的语义特征/嵌入。
(3)根据语料库上的词的语义嵌入计算word-word的边权重。对于每个句子/文本,从训练后的LSTM输出中获得单词的语义特征/嵌入,并计算单词之间的余弦相似度。当相似度超过阈值,就认为两个单词之间具有语义关系。然后根据单词之间语义关系出现的频率计算结点之间的边权值。

2)Syntactic-based graph。使用Stanford CoreNLP解析器来提取单词之间的依赖关系。虽然提取的依赖项是定向的,但为了简单起见,将其视为无定向关系。与Semantic-based graph中使用的策略类似,计算了在整个语料库中每对具有句法依赖的单词的次数,并计算了每对单词的边权重(基于语法的图中的节点),如图12所示。


图12 利用LSTM编码的语义信息建立单词之间的关系。以一份文本为例,基于语义的图是通过收集所有文本语料库中的所有语义关系词对来构建的


3)Sequential-based graph。序列语境描述了局部共现(词与词之间)的语言属性,已被广泛用于文本表示学习。在这项研究中,利用滑动窗口策略和PMI来描述序列语境信息。

对于graph tensor,所有的图共享相同的节点集,唯一的区别是边。为了将上述三种不同的图聚合在一起,通过池化操作进行权值选取。不过,由于不同权重代表的含义不同,所以不能直接进行简单的池化。引入注意力机制,将分别乘上不同注意力的权值加在一起,代替池化操作:
其中,W是需要学习的注意力矩阵,与邻接矩阵A的size相同。TensorGCN的图内传播和图间传播学习过程如图13:
图13 以具有三个单词节点和三个文档节点的文本图张量为例,展示TensorGCN学习过程中的一个层。(a)图内传播从输入图张量学习;(b)图间传播学习,使用图内传播的输出作为其输入。这里仅以一个虚拟图为例,说明如何通过图间传播学习来协调异质信息。在实践中,所有的虚拟图都必须进行图间传播学习

图内传播就是在三种不同的图的内部分别进行GCN的卷积操作:
图间传播学习在不同的graph之间交换信息(图13 b),为此定义了一系列特殊的图,称为virtual graph,通过连接张量中所有图的节点来实现,每一个结点都产生一个r*r大小的虚图,最终得到了图间邻接矩阵的tensor。每个虚结点之间都有边,并且权重设置为1。虚拟图上的图间信息传播学习定义如下:
在TensorGCN的最后一层,在完成图间传播之后,对图执行一个平均池,以获得用于分类的文档节点的最终表示。

当前 SOTA!平台收录 TensorGCN 共 1 个模型实现资源。


模型 SOTA!平台模型详情页
TensorGCN
前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/models/models/2702592d-f69f-41a6-9c29-924999576bd3

前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及API等资源。 

网页端访问:在浏览器地址栏输入新版站点地址 sota.jiqizhixin.com ,即可前往「SOTA!模型」平台,查看关注的模型是否有新资源收录。 

移动端访问:在微信移动端中搜索服务号名称「机器之心SOTA模型」或 ID 「sotaai」,关注 SOTA!模型服务号,即可通过服务号底部菜单栏使用平台功能,更有最新AI技术、开发资源及社区动态定期推送。

登录查看更多
0

相关内容

近年来,研究人员通过文本上下文信息分析获得更好的词向量。ELMo是其中的翘楚,在多个任务、多个数据集上都有显著的提升。所以,它是目前最好用的词向量,the-state-of-the-art的方法。这篇文章发表在2018年的NAACL上,outstanding paper award。下面就简单介绍一下这个“神秘”的词向量模型。
人大最新《基于Transformer 的视频语言预训练》综述论文
专知会员服务
45+阅读 · 2021年9月27日
专知会员服务
112+阅读 · 2020年12月9日
最新《Transformers模型》教程,64页ppt
专知会员服务
276+阅读 · 2020年11月26日
Transformer文本分类代码
专知会员服务
116+阅读 · 2020年2月3日
BERT进展2019四篇必读论文
专知会员服务
65+阅读 · 2020年1月2日
ExBert — 可视化分析Transformer学到的表示
专知会员服务
30+阅读 · 2019年10月16日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
6+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
3+阅读 · 2008年12月31日
Transformers in Remote Sensing: A Survey
Arxiv
23+阅读 · 2022年9月2日
Arxiv
20+阅读 · 2019年9月7日
Arxiv
11+阅读 · 2019年6月19日
Arxiv
12+阅读 · 2019年2月28日
VIP会员
相关VIP内容
人大最新《基于Transformer 的视频语言预训练》综述论文
专知会员服务
45+阅读 · 2021年9月27日
专知会员服务
112+阅读 · 2020年12月9日
最新《Transformers模型》教程,64页ppt
专知会员服务
276+阅读 · 2020年11月26日
Transformer文本分类代码
专知会员服务
116+阅读 · 2020年2月3日
BERT进展2019四篇必读论文
专知会员服务
65+阅读 · 2020年1月2日
ExBert — 可视化分析Transformer学到的表示
专知会员服务
30+阅读 · 2019年10月16日
相关基金
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
6+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
3+阅读 · 2008年12月31日
Top
微信扫码咨询专知VIP会员