美文网首页论文研读chatbot
Few-Shot Text Classification wit

Few-Shot Text Classification wit

作者: SpareNoEfforts | 来源:发表于2019-04-26 00:18 被阅读1次

    基于归纳网络的小样本文本分类



    摘要

      当数据不足或需要适应看不见的类时,文本分类往往会很难。在这种具有挑战性的场景中,最近的研究经常使用元学习来模拟少样本任务,其中新的查询与样本级别的小支持集进行比较。但是,这种样本比较可能会受到同一类中各种表达的严重干扰。因此,我们应该能够在支持集中学习每个类的一般表示,然后将其与新查询进行比较。在本文中,我们提出了一种新颖的归纳网络来学习这种广义的类表示,创新地将动态路由算法与典型的元学习框架相结合。通过这种方式,我们的模型能够从特殊性推导到一般性,这是一种更像人类的学习方法。我们在经过充分研究的情绪分类数据集(英语)和现实世界对话意图分类数据集(中文)上评估我们的模型。实验结果表明,在两个数据集上,我们的模型明显优于现有的最先进模型,并将平均准确率提高了3%以上,证明了其在小样本文本分类中的class-wise generalization的有效性。

    1.介绍

      由于优化技术的发展,更大的数据集和深度神经架构的简化设计,深度学习(DL)在计算机视觉,语音识别和机器翻译[Kuang et al., 2018; Peng et al., 2018; Lin et al., 2017a]等许多领域取得了巨大成功。 然而,DL因需要大的标记数据集而臭名昭着,由于标注成本,这限制了深度模型对新类的可扩展性。 另一方面,人类很容易通过很少的例子快速学习新类。 人与机器学习之间的这一重大差距为深度学习的发展提供了肥沃的土壤。

      小样本学习用于通过从极少数标记实例中识别新类来解决数据缺陷问题。 仅有一个或极少数实例的限制对深度学习中的标准微调方法提出了挑战。 早期研究[Sch¨olkopf等,2002]应用数据增强和正则化技术在有限程度上来缓解由数据稀缺引起的过拟合问题。 相反,研究人员已经探索了元学习[Finn 等人,2017],以便在人类学习的启发下利用分布而不是类似的任务。 当前的小样本学习方法经常将训练过程分解为辅助元学习短语,其包括许多子任务,遵循测试和训练条件必须匹配的原则。 他们通过将任务从小批量切换到小批量来提取一些可转移的知识。 然后,小样本模型可以使用一个小的标记支持集对新类进行分类。

      然而,现有的小样本学习方法仍面临一些问题,包括需要强有力的先验[Fe-Fei等人,2003],任务之间的复杂梯度转移[Munkhdalai和Yu,2017],以及微调目标问题[Long 等人,2016]。 Snell等人[2017]和Yang等人 [2018]提出的方法组合了非参数方法和度量学习,可以为这些问题提供可能的解决方案。非参数方法允许快速同化新的实例,而不会遭受灾难性的过拟合。这种非参数模型只需要学习样本的表示和度量标准。然而,在先前的研究中,通过简单地对支持集中的样本的表示求和或平均来计算类级表示。在这样做时,关键信息可能在同一类中的各种形式的样本带来的噪声中丢失。当支持集变大时,此问题将更严重。实际上,同一类的表达式与共享特征相互关联,但它们也有自己的特殊特性。如果逐一累积,与分类无关的信息将堆积起来。相反,更好的学习方法可能是在类 级别上的归纳:忽略不相关的细节并封装来自同一类中具有各种语言形式的样本的一般语义信息。

      因此,需要一种透视体系结构,其可以重建支持集的分层表示并动态地将样本表示引导到类表示。在这项工作中,我们提出了归纳网络,它基于动态路由[Sabour 等人,2017]和典型的元学习框架,明确地模拟了从小型支持集中的样本学习广义类级表示的能力。首先,编码器模块生成查询和支持样本的表示。然后,归纳模块构建动态路由过程,该过程将样本表示视为输入胶囊,并且每个胶囊学习识别该类的隐式定义的语义视点。利用输出胶囊代表类,该模块可以保留每个类的深层语义表示,并减轻无关噪声信息的干扰。最后,它成为查询和类之间的交互问题。它们的表示由一个Relation Module进行比较,该模块确定查询是否与该类匹配。定义基于训练策略的episode,整体模型是端到端的元训练,具有通用的适用性和可扩展性,以识别看不见的类。

      这项工作的贡献如下:

    • 我们提出了一个归纳网络来处理少样本文本分类问题,它将动态路由算法与典型的元学习框架相结合,以模拟类似人类的归纳能力。

    • 我们的方法在两个基准语料库中优于先前的最先进系统,平均准确度提高3%以上,包括经过充分研究的情绪分类数据集(英语)和现实世界对话意图分类数据集(中文)。 我们将在发布后发布源代码和数据集。

    2. 相关工作

    2.1 小样本学习

      关于小样本学习的开创性工作可以追溯到2000年初[Fe-Fei等人,2003年; Fei-Fei等,2006]。 作者将生成模型与复杂的迭代推理策略相结合。 最近,许多方法都使用了元学习[Finn 等,2017; Yang 等,2018]策略,他们从一组辅助任务中提取一些可转移的知识,然后帮助他们很好地学习目标小样本问题而不会过拟合。 通常,这些方法可以分为两类:

      基于优化的方法:这种方法旨在学习优化模型参数给定从少数例子计算的梯度。 Munkhdalai和Yu [2017]提出了Meta网络,它可以跨任务学习元级知识,并通过快速参数化转换其归纳偏差以实现快速泛化。Mishra等人[2018]引入了一种名为SNAIL的通用元学习器架构,它使用了时间卷积和软注意力的新组合。

      距离度量学习:与上述在学习目标小样本问题时需要一些复杂性的方法不同,此范畴旨在学习一组映射函数,这些函数从目标问题中获取查询和样本,并以前馈方式对其进行分类。 分别是Vinyals等人 [2016]提出了由余弦距离测量的加权K最近邻分类器,称为匹配网络。 Snell等人 [2017]提出了原型网络,该网络学习了一个度量空间,可以通过计算到每个类的原型表示的平方欧几里德距离来进行分类。 与固定度量指标不同,关系网络学习了一个深度距离度量,以便将查询与给定的实例进行比较[Yang 等,2018]。

      最近,有一些研究侧重于小样本文本分类问题。 Yu等人[2018]认为最佳元模型可能因任务而异,并且他们通过将元任务聚类到几个定义的集群中来使用多度量模型。 当标签空间上存在已知结构时,Rios和Kavuluru [2018]提出了用于多标签文本分类的小样本文本分类模型。 不同的是,我们从更高的角度解决了小样本学习问题,并提出了一种动态路由归纳方法来封装样本中的抽象类表示,从而在两个数据集中实现最先进的性能。

    2.2 胶囊网络

      胶囊网络最早由Sabour等人 [2017]提出,它允许网络连续学习部分整体不变关系。最近,胶囊网络在自然语言处理领域进行了探索。赵等人 [2018]成功地将胶囊网络应用于文本分类。然而,他们的工作仍然集中在具有大量有标签数据的传统文本分类问题上。Xia等人 [2018]提出了一种基于胶囊的架构,用于零样本意图分类,具有区分新兴意图的能力。他们的主要框架也是一个传统的监督分类器,它使用大量的标记数据进行训练。对于零样本意图,他们重用了有监督的分类器。

      在这项工作中,我们提出了归纳网络,它明确地模拟了从小型支持集中的样本学习广义类级别表示的能力。凭借动态路由的启发,我们的模型可以过滤话语的无关细节,并获得类的本质,这与人类的归纳学习过程相似:从具体化到抽象,从特殊性到普遍性。

    3. 问题定义

    3.1 小样本分类

      小样本分类[Vinyals等,2016; Snell 等,2017]是一项任务,在只给出这些新类中的少数例子的前提下,它必须调整分类器以适应训练中未见的新类。 我们有一个带有一组类 C_{train}的大型标记训练集。 然而,在训练之后,我们的最终目标是在测试集上使用一组不相交的新类 C_{test}生成分类器,其中只有一个小的标记支持集可用。 如果支持集在C个唯一类中的每类包含K个标记实例,则目标小样本问题称为C-way K-shot问题。 通常,K太小而无法训练有监督分类模型。 因此,我们的目标是在训练集上进行元学习,以便提取可传递的知识,这将使我们能够在支持集上执行更好小样本学习,从而更成功地对测试集进行分类。

    3.2 训练程序

      必须仔细选择训练程序,以便在测试时匹配推理。如Vinyals等人[2016]所提出的那样,利用训练集的有效方法是将训练过程分解为辅助元学习短语,并通过基于episode的训练模仿小样本学习设置。我们构建了一个“episode”来计算梯度并在每次训练迭代中更新我们的模型。通过从训练集中随机选择类的子集,然后选择每个所选类中的实例子集作为支持集S和剩余实例的子集作为查询集Q来构成训练集。通过将支持集S输入到模型并更新其参数以最小化查询集Q中的损失来完成训练。我们将该策略称为基于episode的元训练,并且细节在算法1中展示。使用episodes使训练过程更加忠实于测试环境,从而改善了泛化。值得注意的是,有很多可能的元任务来训练模型,使其难以过拟合。例如,如果数据集包含159个训练类,则会导致\left( {\begin{array}{*{20}{c}} {159}\\ 5 \end{array}} \right) = 794747031种可能的5-way任务。

    4. 模型

      我们的归纳网络,如图1所示(3-way 2-shot模型的情况),由三个模块组成:编码器模块,归纳模块和关系模块。 在本节的其余部分,我们将展示这些模块在每个元训练episode中的工作原理。

    图1:有一个查询样本的C-way K-shot (C = 3, K = 2)问题的归纳网络架构

    4.1 编码器模块

      该模块是具有自注意力的双向递归神经网络,如[Lin 等人,2017b]所示。 给定输入文本x =(w_1, w_2, ..., w_T),由一系列字嵌入(word embeddings)表示。 我们使用双向LSTM来处理文本:

    \mathop {{h_t}}\limits^ \to = \overrightarrow {LSTM} ({w_t},{h_{t - 1}})

    {\overleftarrow {{h_t}} } = \overleftarrow {LSTM} ({w_t},{h_{t +1}})

    我们连接\overrightarrow {{h_t}}\overleftarrow {{h_t}}获得隐藏状态h_t。令每个单向LSTM的隐藏状态大小为u。 为简单起见,我们注意到所有T h_tsH =(h_1, h_2,...,h_T)。 我们的目标是将可变长度的文本编码为固定大小的嵌入(embedding)。 我们通过在H中选择T LSTM隐藏向量的线性组合来实现这一点。计算线性组合需要自注意力机制,其将整个LSTM隐藏状态H作为输入,并输出权重向量a

    a = soft\max ({W_{a2}}\tanh ({W_{a1}}{H^T}))

    这里{W_{a1}} \in {R^{{d_a} \times 2u}}{W_{a2}} \in {R^{{d_a}}}是权重矩阵,d_a是超参数。 文本的最终表示eH的加权和:
    e = \sum\limits_{t = 1}^T {{a_t} \cdot {h_t}}

    4.2 归纳模块

      本节介绍了提出的动态路由归纳算法。 我们将从方程e = \sum\limits_{t = 1}^T {{a_t} \cdot {h_t}}的支持集S获得的这些向量e视为样本向量e^s,并且将来自查询集Q的向量e视为查询向量e^q。 最重要的步骤是为支持集中的每个类提取表示。 归纳模块的主要目的是设计从样本向量e^s_{ ij}到类向量c_i的非线性映射:

    {\{ e_{ij}^s \in {R^{2u}}\} _{i = 1,...C,j = 1...K}} \mapsto \{ {c_i} \in {R^{2u}}\} _{i = 1}^C

      在输出胶囊的数量为1的情况下,我们在该模块中应用动态路由算法[Sabour等,2017]。 为了在我们的模型中接受any-way any-shot输入,使用支持集中所有样本向量的权重可共享变换。 支持集中的所有样本向量共享相同的变换权重{W_s} \in {R^{2u \times 2u}},因此模型足够灵活,可以处理任何规模的支持集。 每个样本预测向量\widehat e_{ij}^s由以下公式计算:

    \widehat e_{ij}^s = {W_s}e_{ij}^s

    它编码较低级别样本特征和较高级别类特征之间的重要不变语义关系。 为了确保类向量自动封装此类的样本特征向量,动态路由被迭代应用。 在每次迭代中,该过程动态地修改连接强度,并通过“routing softmax”确保耦合系数d_i在类i和此类中所有支持样本之间的总和为1:

    d_i = softmax(b_i)

    其中b_i是耦合系数的对数,并在第一次迭代中初始化为0。 给定每个样本预测向量\widehat e_{ij}^s,每个类候选向量\widehat c_{i}是类i中的所有样本预测向量\widehat e_{ij}^s的加权和:

    {\widehat c_i} = \sum\limits_j {{d_{ij}}} \cdot \widehat e_{ij}^s

      然后应用非线性"压缩"函数以确保路由过程的向量输出的长度不会超过1,如下面公式所示。短向量长度缩小到几乎为0,长向量长度缩小到长度略小于1。压缩函数使向量方向保持不变但减小其幅度。

    {c_i} = \frac{{\left\| {{{\left. {\widehat {{c_i}}} \right\|}^2}} \right.}}{{1 + \left\| {{{\left. {\widehat {{c_i}}} \right\|}^2}} \right.}}\frac{{{{\widehat c}_i}}}{{\left\| {\left. {\widehat {{c_i}}} \right\|} \right.}}

      每次迭代的最后一步是通过“协议路由”方法调整耦合系数b_{ij}的对数。 如果产生的类候选向量具有带有一个样本预测向量的大标量输出,则存在自上而下的反馈,其增加该样本的耦合系数而减小其他样本的。 这种类型的动态路由比对样本向量求和或平均更有效和更强大。 每个b_{ij}更新如下:

    {b_{ij}} = {b_{ij}} + \hat e_{ij}^s \cdot {c_i}

      在形式上,我们将归纳法称为动态路由归纳法,并在算法2中对其进行总结。

    4.3 关系模块

      在归纳模块生成类向量c_i并且查询集中的每个查询文本被编码器模块编码为查询向量e^q之后,下一个基本过程是测量每对查询和类之间的相关性。 关系模块的输出称为关系得分,表示c_ie^q之间的相关性,它是01之间的标量。具体来说,我们在此模块中使用神经张量层[Socher等,2013],已显示出模拟两个向量之间关系的巨大优势[Wan等,2016; Geng等,2017]。 我们选择它作为本文中的交互函数。 张量层输出关系向量如下:

    v({c_i},{e^q}) = f(c_i^T{M^{[1:h]}}{e^q})

    其中{M^k} \in {R^{2u \times 2u}},k \in [1,...,h] 是张量参数的一个切片,f是称为RELU的非线性激活函数[Glorot等,2011]。 第i类和第q查询之间的最终关系得分r_{iq}由通过S形函数激活的全连接层计算。

    {r_{iq}} = sigmoid({W_r}v({c_i},{e^q}) + {b_r})

    4.4 目标函数

      我们使用均方误差(MSE)损失来训练我们的模型,将关系得分r_{iq}回归到基础事实y_q:匹配对具有相似性1并且不匹配对具有相似性0. 在一个episode中给定具有C类的支持集S 和查询集Q = \{ ({x_q},{y_q})\} _{q = 1}^n,损失函数定义为:

    L(S,Q) = \sum\limits_{i = 1}^C {\sum\limits_{q = 1}^n {{{({r_{iq}} - 1(i = = {y_q}))}^2}} }

    从概念上讲,我们正在预测关系分数,这可以被认为是回归问题,而基本事实是在空间\{0,1\};

      三个模块的所有参数,包括编码器模块,归纳模块和关系模块, 特别是Adagrad Duchi等人 [2011]用于每个训练集中的所有参数,均由Back Propagation共同训练。 由于其泛化性质,我们的模型不需要对它从未见过的类进行任何微调。 归纳和比较能力将与训练集一起累积在模型中。

    5. 实验

      我们通过对两个小样本文本分类数据集进行实验来评估我们的模型。 所有实验均使用Tensorflow框架。

    5.1 实验数据集

      亚马逊评论情绪分类(ARSC):遵循Yu等人 [2018],我们使用具有多域情感分类[Blitzer 等,2007] 数据集的多个任务。该数据集包括亚马逊上23种产品的英文评论。对于每个产品域,有三种不同的二分类任务。这些总共形成23 \times 3 = 69个任务。遵循Yu等人 [2018],我们从4个域(书籍,DVD,电子和厨房)中选择12(4 \times 3)个任务作为测试集,并且测试集中每个标签仅有5个实例作为支持集。我们在此数据集上创建了5-shot学习模型。

      对话系统的开放域意图分类(ODIC):该数据集来自真实会话平台的日志数据。企业提交了大量意图的各种对话任务,但许多意图只有很少的标记样本,这是典型的小样本分类方案。根据小样本学习任务的定义,我们将ODIC划分为训练集和测试集,并且两组的标签没有交集。设置分区的详细信息如表1所示。

    表1:ODIC 的设置细节

    5.2 实验设置

      基线:在本节中,我们的实验中的基线模型介绍如下。

    • 匹配网络:使用基于度量的注意方法的小样本学习模型[Vinyals等,2016]。
    • 原型网络:一种基于深度矩阵的方法,使用样本平均值作为类原型[Snell 等,2017]。
    • 关系网络:基于度量的小样本学习模型,它使用神经网络作为距离测量,并通过对支持集中的样本向量求和来计算类向量[Yang 等,2018]。 我们在我们的工作中使用相同的编码器模块和关系模块复现Relation Network。
    • ROBUSTTC-FSL:这种方法通过聚类任务结合了几种度量方法[Yu 等,2018]。

      Yu等人 [2018]报道了ARSC的基线结果。我们使用相同的文本编码器模块在ODIC上实现了基线模型。 此外,为了与提出的动态归纳路由方法进行比较,我们还以自注意力方法实现归纳模块,与所提出的动态路由方法进行比较,称为Induction-Network-Attention。

      实施细节:我们使用300 维 Glove embeddings[Pennington 等,2014]用于ARSC数据集和由Li等人 [2018]训练的在ODIC上的300维中文 word embeddings。 我们设置LSTM u = 128的隐藏状态大小,注意力维度 d_a = 64。动态路由算法中使用的迭代次数iter3。关系模块是一个神经张量层,h = 100,后面是一个通过sigmoid激活的全连接层。 我们在Yu等人 [2018]之后在ARSC上建立了2-way 5-shot模型,并建立基于episode的元训练,C = [5,10]K = [5,10]用于ODIC的比较。 除了作为支持集的K个样本文本之外,查询集在每个训练episode中对于C个采样类的每一类都有20个查询文本。 这意味着例如在5-way 5-shot实验的一次训练episode中有20 \times 5 + 5 \times 5 = 125个文本。

    5.3 实验结果

      评估方法:我们遵循先前在小样本学习的研究[Snell 等,2017; Yang等,2018],通过小样本分类准确性来评估性能。为了客观地使用基线评估所提出的模型,我们在ODIC上计算了来自测试集的超过600个随机选择的episodes的平均小样本分类准确度。我们在每episode中为每个类抽取10个测试文本,以便在5-way 10-shot场景中进行评估。请注意,对于ARSC,测试的支持集由Yu等人[2018]确定。 因此我们只需要为每个目标任务运行一次测试episode。将12个目标任务的平均准确度与Yu等人 [2018]的基线模型进行比较。

      结果:ARSC的实验结果如表2所示。所提出的归纳网络路由(Induction-Network-Routing)的结果比ROBUSTTC-FSL高出近3%,这是该数据集的最新技术水平。原因是ROBUSTTC-FSL致力于通过在样本级别上集成若干度量来构建一般度量方法,这不能消除同一类中不同表达之间的噪声。此外,ROBUSTTC-FSL使用的基于任务聚类的方法必须基于相关性矩阵,当应用于任务快速变化的真实场景时,这种效率太低。相反,我们的归纳网络在元学习框架中进行了培训,该框架更加灵活,其归纳能力可以通过不同的任务来累积。

    表2:ARSC上的平均准确率(%)比较

      我们还使用真实世界意图分类数据集ODIC评估我们的方法。实验结果如表3所示。我们可以看到,所提出的归纳网络路由(Induction-Network-Routing)在所有四个实验中都获得了更好的分类结果。基线模型[Vinyals等,2016; Snell等人,2017; Yang等,2018]可以被视为距离度量学习,其中所有学习都发生样本级别上的表示特征和测量距离。这项工作创造性地构建了一个归纳模块,专注于类别级别的表示,它对支持集中的样本变化更加健壮。此外,我们的模型与10-shot场景中的其他基线之间的结果差异大于5-shot场景中的结果差异。这是因为在10-shot场景中,对于基线模型,更大的数据大小带来的改善也会因更多的样本级别噪声而减少。

    表3:在ODIC上的平均准确率(%)比较

      归纳网络路由(Induction-Network-Routing)在两个数据集上优于归纳网络注意力(Induction-Network-Attention)。Induction-Network-Attention通过注意力机制模拟归纳能力并且优于基线模型,但能力受到学习的注意力参数的限制。相反,所提出的动态归纳路由方法可以通过在没有注意力参数的情况下自动调整耦合系数来捕获类的重要信息。

    5.4 实验分析

      我们进一步分析了转换的效果和查询文本向量可视化,以证明归纳网络在我们的实验中的优势。

      转换的影响 图2显示了在5-way 10-shot场景下矩阵变换之前和之后的支持样本向量的可视化。 特别地,我们在ODIC测试集上随机选择一个包含50个文本(每类10个文本)的支持集,并在编码器模块之后获得样本向量{\{ e_{ij}^s\} _{i = 1,...5,j = 1,...10}},样本预测向量{\{ \hat e_{ij}^s\} _{i = 1,...5,j = 1,...10}}。 我们分别使用t-SNE [Maaten和Hinton,2008]可视化这两种类型的向量。 我们可以清楚地看到矩阵变换后的向量更加可分,证明了矩阵变换对低级样本特征和更高级别特征之间的语义关系进行编码的有效性。

    图2:在5-way 10-shot场景下变换的影响 (a)在矩阵变换之前的支持样本向量 (b)在矩阵变换之后的支持样本向量

      查询文本向量可视化 我们发现我们的归纳模块不仅可以通过生成有效的类级别特征来完美地工作,而且还有助于编码器学习更好的文本向量,因为它在反向传播期间为实例和特征赋予不同的权重。 图3显示了在5-way 10-shot场景下,关系网络和我们的归纳网络学习的文本向量的t-SNE [Maaten和Hinton,2008]可视化。 具体来说,我们从ODIC测试集中选择5个类,然后使用t-SNE将嵌入的文本投影到二维空间中。 很明显,归纳网络学习的文本向量在语义上比关系网络更好。

    图3:查询文本向量可视化被学习:(a)关系网络 (b)归纳网络

    6. 结论

      在本文中,我们介绍了归纳网络,一种针对小样本文本分类的新神经模型。 所提出的模型重建支持训练样本的分层表示,并动态地将样本表示引入类表示。 我们将动态路由算法与典型的元学习框架相结合,以模拟人类归纳能力。 结果表明,我们的模型优于其他最先进的小样本文本分类模型。

    相关文章

      网友评论

        本文标题:Few-Shot Text Classification wit

        本文链接:https://www.haomeiwen.com/subject/kpgwgqtx.html