Train Once, Test Anywhere:Zero-Shot Learning for Text Classification

训练一次,随机测试,零样本学习文本分类




摘要

  零样本学习 是能够预测看不见的类(unseen classes)的模型。在这项工作中,我们提出了一种用于文本分类的零样本学习方法。我们的方法涉及在大型句子集上训练模型,以学习句子与句子标签embedding之间的关系。学习这种关系使得模型可以泛化到 看不见的句子,标签,甚至新的数据集,前提是它们可以放入相同的嵌入空间(embedding space)。该模型学习预测给定句子是否与标签相关;与其他分类器不同,其他的是学习将句子分类为可能的类之一。我们为该任务提出了三种不同的神经网络,并在用于训练它们的数据集的测试集 以及 没有进行再训练的另外两个标准数据集 报告了它们的准确性。我们表明,在两种情况下,我们的模型在新的看不见的类中得到了很好的泛化。尽管这些模型没有达到现有技术监督模型的准确度水平,但显然是向自然语言处理中的一般智能迈进了一步。

1. 介绍

  近年来,零样本学习一直是一个特别令人感兴趣的领域。它不仅允许在看不见的类中扩展算法,而且可以在我们尝试在此工作中展示的数据集中使用。在这项工作中,我们报告了一种可用于文本分类情况下的零样本学习的方法。为实现这一目标,我们将文本分类的任务建模为查找句子和类别之间相关性的二分类问题。以这种方式训练的模型分别学习每个类别与给定句子的相关性(是/否),而不是像多类多标签分类那样预测给定的类(图1)。例如,奥巴马的一句话说“共和党在废除医疗保健方面的努力加剧了”,这句话被训练成属于政治和医疗保健类别,但不属于体育和技术类别。表1列出了属于多个和重叠文本类别的句子的其他示例。所提出的重新定义允许在一个数据集上训练的神经网络模型被部署用于在其他数据集上进行文本分类,而无需重新训练模型。

Train Once, Test Anywhere:Zero-Shot Learning for Text Classification_第1张图片
图1:提出了多类,多标签分类和零样本分类框架之间的差异

Train Once, Test Anywhere:Zero-Shot Learning for Text Classification_第2张图片
表1:样本训练数据

  我们进一步提出神经网络架构,可以用作这种技术的零样本学习器。 虽然一个模型是单词嵌入平均值的单层神经网络,但另外两个模型使用LSTM将句子模型化为序列。

  我们认为,与使用专门针对基础任务标注的较小数据集的训练相比,具有带有噪声标注的大量数据的训练网络可造就更通用的模型。 此外,利用来自开放网络的嘈杂标注数据可以节省标注成本。 因此,我们使用从网络中爬取的新闻标题来训练我们的模型,其中数据使用搜索引擎优化(SEO)标记作为类别(也称为源数据集),并测试其性能。 我们在新闻聚合器Lichman(2013)和推文分类Parassharmaa(2017)数据集上进一步测试我们的模型,因此显示它学习的相关性概念在数据集中是有用的。 简而言之,本文的贡献有三方面:

  1. 我们提出零样本文本分类的零样本学习框架作为二分类任务,以找到文本和类别之间的相关性。 我们表明,该框架可以适应任意数量的文本类别以及跨数据集,而无需重新训练或微调模型。
  2. 我们提出了三种可以使用上述技术的神经网络架构,可用于零样本分类。
  3. 我们报告了在不同数据集上对源数据集进行训练的模型的零样本学习能力的准确性,并将其与通过在这些数据集上专门训练的模型获得的最新结果进行比较。 我们表明,我们的架构可以泛化到未见过的类,甚至是未经过训练的数据集。

2. 相关工作

  在计算机视觉领域提出了许多零样本学习方法:Sandouk&Chen(2016),Socher等。 (2013年)。然而,在自然语言处理领域中,针对零样本学习的工作量非常有限。据我们所知,这是第一个报告文本分类的零样本学习解决方案的工作。我们的第一个体系结构是一个单层神经网络,用于连接1.平均嵌入句子和2.标签的嵌入。它受到Joulin等人(2016)提出的浅层架构的启发,其在文本分类任务中取得了很好的成绩。第二种体系结构不是在将其传递到分类层之前采用嵌入方法,而是尝试使用LSTM对序列进行建模。 Hochreiter和Urgen Schmidhuber(1997)。我们的第三个LSTM架构可能被认为类似于Wang等人(2016)基于方面的情绪分析使用的架构 。我们将标记的嵌入传递给被认为是相关/不相关的,而不是“Aspect Term”。但是,我们没有采用Wang等人的工作中提到的attention组件。

3. 数据

3.1 源数据集

  我们从网络上搜索了超过4,200,000个新闻标题以及他们的SEO标签。 语料库有超过300,000个独特的SEO标签。 为简单起见,我们今后分别将新闻标题和SEO标签称为句子和标签。 一篇新闻文章可以有多个SEO标签。 在这种情况下,我们将句子的多个实例添加到我们的数据中,每个标签一个。

  在数据准备期间,我们通过截断较长的句子和重复较短的句子来固定句子长度以包含28个单词。 源数据集被分成训练和测试集。

3.2 测试数据集

  该算法在源数据集的训练集上训练,并且在其他两个开放数据集上测试其文本分类的准确性。 我们使用UCI News Aggregator和tweet分类数据集作为测试数据集。

3.2.1 UCI NEWS AGGREGATOR

  该数据集包含超过420,000个句子,属于四个类别:技术,商业,医学和娱乐。 我们报告整个数据集的准确性。 由于类别的粒度级别与源数据集中的SEO标记不同,因此我们对UCI-Aggregator数据集使用类别树的概念(有关详细信息,请参阅测试部分)。

3.2.2 TWEET CLASSIFICATION

  该数据集包含6个类别:商业,健康,政治,体育,技术和娱乐。 数据集有1993个句子,我们使用所有句子进行测试。 我们的模型可以使用类别嵌入(健康,政治等)直接对数据集进行分类,但是使用类别树和UCI-Aggregator数据集可以获得更好的结果。

4. 架构

  在此尝试了三种不同的体系结构,用于零样本学习并报告结果。 它们分别称为架构1,2和3。 我们使用预训练嵌入 Google News Embedding(2013)初始化了单词嵌入。 对于表示法,令标记的嵌入是,并且句子的单词嵌入是。

4.1 架构1

  我们将的维度均值与连接起来并将其传递给一个全连接层,以便对句子和标签是否相关进行分类

Train Once, Test Anywhere:Zero-Shot Learning for Text Classification_第3张图片
图2:架构1

4.2 架构2

  在时间步发送到LSTM的输入是,其中是句子的第个字的embedding。 我们将网络的最后隐藏状态与连接起来,并通过全连接层传递它,以便在句子和标签相关时进行分类。

Train Once, Test Anywhere:Zero-Shot Learning for Text Classification_第4张图片
图3:架构2

4.3 架构3

  在时间步发送到LSTM的输入是,其中是句子的第个字的嵌入。 我们使用LSTM的最后一个隐藏层并预测它是否与标签嵌入有关。

Train Once, Test Anywhere:Zero-Shot Learning for Text Classification_第5张图片
图4:架构3

Train Once, Test Anywhere:Zero-Shot Learning for Text Classification_第6张图片
表2:News Aggregator数据集的类树

5. 训练

  我们的数据集包含超过300,000个标签,使得多类分类的训练方法难以处理。我们将标签预测任务转换为二分类任务,其中模型预测给定句子是否与给定标签相关。 换句话说,我们训练我们的算法,以获得关于给定句子是否与特定类相关的一般知识。 这与知识“特定句子属于一组类中的哪一类?”的知识不同,图1试图从视觉上解释这一点。 我们用50%相关标签和50%随机选择的无关标签训练每个句子。 我们使用Adam优化器 Kingma&Ba(2014)训练了二元交叉熵损失的模型。

6. 测试

  我们在UCI News Aggregator和Tweet Classification数据集上测试了我们的模型。这些数据集中使用的文本类与源数据集的SEO标记之间存在细微差别,与UCI类相比,SEO标记是更原子的概念。例如,句子“Bitcoin futures could open the floodgates for institutional investors”的SEO标签是:Bitcoin, Commodity,Futures, Cryptocurrency, Hedge Funds, and Mutual Funds。但是UCI/Tweet Categorizer 数据集的标签是:Business and Technology,它是一个更为广阔的概念

因此,为了在这些类上测试分类器的准确性,我们首先为这些数据集创建一个类别树,以列出属于每个类的多个标记。例如,诸如“外汇”,“金融市场”,“股票”,“生产”和“商业”本身的标签可能属于“商业”类下的类别树。为了预测给定句子与特定类的相关性,我们首先预测为该类列出的所有标签的相关概率并取其平均值。然后将该句子分类为具有高于该句子的特定阈值的平均相关概率的类别。相关性得分的阈值是超参数。这种技术允许我们的模型 跨文本可以分类的概念的不同粒度级别 运行。为任一数据集创建类别树只需要几分钟的工作,考虑所有概念可能属于特定类并将其列出来。例如,在Tweet Categorization数据集上进行测试时,类别树每个类只有三个标记。

7. 结果

  对于二分类任务,使用体系结构1,2和3训练的模型分别在源数据集的测试集上获得72%,72.6%和74%的准确度。对于训练集中不存在且仅在测试集中存在的标签,准确度甚至更高,分别为78%,76%和81%。此外,对于News Aggregator数据集,模型在相关性得分的阈值为0.5时使用类别树,分别达到61.73%,6​​3%和64.21%的准确度。报告的准确性远低于Luis Bronchal(2017)在该数据集上的最新准确度(94.75%)。然而,考虑到我们的模型甚至没有看到来自给定数据集的单个样本而不是完全监督的方法,报告的结果仍然是显着的。

  我们使用类别树在0.5相关性分数的阈值上评估我们的模型在推文分类数据集上的性能。架构1,2和3在数据集上的准确率分别为64%,53%和64.5%。与SVC和多项式朴素贝叶斯等监督模型的最佳结果(74%和78%)相比,我们的模型没有在数据集上进行过训练。如果我们不使用类别树并使用直接类名进行分类,我们仍然可以使用体系结构3获得49%的准确率。

8. 结论

  在这项工作中,我们介绍了可用于文本零样本分类的技术和模型。 我们表明,我们的模型在不用任何实例训练的情况下可以比数据集上的随机分类精度更好。 我们可以说这种技术可以学习一个句子和一个可以扩展到数据集之外的单词之间的相关性概念。 也就是说,就准确性水平而言,未来的工作还有很大的空间。

你可能感兴趣的:(Train Once, Test Anywhere:Zero-Shot Learning for Text Classification)