《Integrating Semantic Knowledge to Tackle Zero-shot Text Classification》阅读笔记

一、解决问题

1、以前的一些研究使用不同的数据集进行训练和测试,但训练和测试集中的类之间存在相似性;

例如,在(Dauphin et al.,2013)中,训练集中的“imdb.com”类与测试集中的“movies”类自然对应。

2、针对关于文本分类的ZSL,很少有人研究三类语义知识(semantic attributes 、concept ontology、semantic
word embeddings)中的一种,并且没有人研究将三类语义知识结合来实现零样本学习。

二、主要贡献

1、提出了一种新的基于深度学习的两阶段分类框架,包括粗粒度和细粒度分类,以解决零样本文本分类问题。与以前的一些工作不同,我们的框架不需要在训练阶段的类和推理阶段的类之间进行语义对应。换句话说,可见和不可见的类可以明显不同。

2、提出了一种新的数据增强技术,称为主题翻译(topic translation),以加强我们的框架的能力,以有效地检测来自未知类的文档。

3、提出了一种在零样本场景中,利用集成语义知识将从已知类学习到的知识转移到未知类中进行特征增强的方法。

三、模型框架

《Integrating Semantic Knowledge to Tackle Zero-shot Text Classification》阅读笔记_第1张图片

图1 :框架概述,分两个阶段。粗粒度阶段判断输入文档xi是否来自可见或未看见的类。细粒度阶段最终决定了类xi。

要求:

(i)每个类都有一个类标签和一个类描述(图2a);

(ii)还提供了一个显示超类与子类关系的类层次结构(图2b);

(iii)在训练框架中没有来自未知类的文档。

《Integrating Semantic Knowledge to Tackle Zero-shot Text Classification》阅读笔记_第2张图片

图2:a)类标签和类描述(b)类层次结构,(c)一般知识图(conceptnet)的子图 

说明:

训练阶段输入的Xi是包含单词序列[Wi1,Wi2,...,WiT]的第i个文档,yi是xi的标签,并且只输入已知类的数据;

文档xi中每个单词的嵌入列表由viw=[ vi w1, vi w2,..., vi wt]表示。

假设每个类都有一个单词的类标签。如果类标签有多个单词,则提供类似的一个单词类标签来查找vc。

每个类标签c的嵌入用vc表示,c∈cs∪cu。假设每个类都有一个单词的类标签。如果类标签有多个单词,则提供类似的一个单词类标签来查找vc。

关系向量vi wj,c作为增广特征,根据语义知识显示了单词wj和c类之间的关联程度。

 Data augmentation:一种数据扩充技术,以帮助分类器在不访问真实数据的情况下了解未知类的存在。

1、第一阶段 Coarse-grained Classification

(1)该阶段主要判断目标文档是属于已知类还是未知类。每个已知类cs∈CS有其自己的CNN分类器(具有一个subsequent dense layer和一个sigmoid output)来预测XI来自类CS的置信度,即P(yi^= Cs|XI)。

分类器使用vi w作为输入,并使用二元交叉熵损失(binary cross entropy loss)对其进行训练,训练集中该类的所有文档为正示例,其余文档为负示例。

对于测试文档Xi,该阶段计算CS中每个可见类CS的P(yi^= Cs|XI)。如果存在一个类cs,如P(yi^= Cs|XI)>τs,则它预测yi^∈cs;否则yi^∉cs。τs是基于阈值适应方法(Shu等人,2017)计算的CS类的分类阈值。

(2)Data augmentation:(topic translation)

在学习阶段,阶段1中的分类器只使用已知类中的负面示例,因此它们可能无法从未知类中区分正面类。

具体实现:topic translation:通过使用类比将文档从其原始已知类转换为新的未知类来进行数据扩充。称这个过程为主题翻译。

在单词级别,我们通过解决一个类比问题“c:w::c’:?”,将c类文档中的单词w翻译为目标类c’上下文中的对应单词w’。例如,解决类似的“company:firm :: village:?”通过词嵌入(Mikolov等人,2013),我们知道,在“company”类文件中的“firm”一词可以在“village”类的上下文中翻译为“hamlet”一词。我们的框架采用Levy和Goldberg(2014)的3cosmul方法来解决类比问题,并找到W’:

其中v是一个词汇集,cos(a,b)是单词a和单词b向量之间的余弦相似性分数。此外,ϵ 是一个小数字(即0.001),用于防止被零除。

在文档级别,我们按照算法1将类C的文档翻译成另一个类C’的主题。为了解释,我们使用逐字类比的方法,把给定文档中的所有名词、动词、形容词和副词逐字翻译到目标类。要替换的单词必须与原始单词具有相同的词性,并且一个文档中的所有替换都是1对1关系,由算法1中的replace_dict强制执行。利用这一思想,我们可以从训练数据集中的已见类的文档中,通过主题翻译为未知类创建augmented document。之后,我们可以使用augmented documents作为阶段1中所有CNN的附加负示例,使它们了解未知类的情况。

《Integrating Semantic Knowledge to Tackle Zero-shot Text Classification》阅读笔记_第3张图片

算法1

2、第二阶段 Fine-grained Classification

(1)第2阶段使用两个CNN分类器来为Xi找到最合适的类yi^:一个传统分类器和一个零样本分类器,如图1所示。

传统的分类器和零样本分类器具有相同的基于CNN的结构,后面是两个dense layers,但是它们的输入和输出是不同的。传统的分类器是一个具有SoftMax输出的多类分类器(|Cs|类),因此它只需要词嵌入vi w作为输入。这个分类器是使用一个训练数据集的cross entropy loss进行训练的,该训练数据集的示例仅来自已知类。

零样本分类器是一个二元分类器与a sigmoid output。具体来说,它将文本文件XI和C类作为输入,并预测其置信度yi^。然而,在实践中,我们利用vi w来表示xi、vc来表示C类,并且还增强了特征vi w;还提供了关于单词与C类之间的关联程度的更多信息。总之,对于每个字wj,分类器接收三个向量(即[vi wj;vc;vi wj,c])的串联作为输入。这个分类器使用二元交叉熵损失进行训练,训练数据只来自可见类,但是我们希望这个分类器能够在未知类上很好地工作,这要归功于每个类的正示例中vi w,c的独特模式。这就是我们如何在zsl中将知识从可见类转移到看不见类。

大致翻译如下

(2)Feature Augmentation

关系向量vwj,c包含我们输入到零样本分类器的增强特征。Vwj,c说明了在一般知识图中,wj这个词和c类是如何联系起来的。在这项工作中,我们使用ConceptNet提供自然语言词汇和短语的一般知识(Speer和Havasi,2013年)。概念网的子图如图2c所示。conceptnet中的节点是单词或短语,而连接两个节点的边显示了它们是如何在语法上或语义上相关的。

首先,我们通过处理C的类层次结构、类标签和类描述,将C类表示为conceptnet中的三组节点。(1)类节点是C类标签的一组节点,如果C有多个单词,则C中的任何标记都是C类的。(2)超类节点是按类层次划分的C的所有超类的一组节点。(3)描述节点是C类描述中所有名词的一组节点,如C为“Educational Institution”类,如图2a-2b所示,该类的三组概念网节点为:

1) educational institution, educational, institution

2) organization, agent

3) place, people, ages, education.

为了构造vwj;c,我们考虑了wj这个词是否通过特定的关系类型连接到k hops中上述三个集合的成员。对于这三个集合中的每一个,我们构造一个3k+1维的向量。

《Integrating Semantic Knowledge to Tackle Zero-shot Text Classification》阅读笔记_第4张图片

因此,与每个集合关联的向量显示wj在语义上如何接近该集合。最后,我们将三个集合中的构造向量连接成3×(3K+1)维的vwj,c.

四、实验

1、Datasets

我们在实验中使用了两个文本数据集。每个数据集的词汇量被20000个最常见的词限制,所有数字都被排除在外。(1)DBpedia本体数据集(Zhang等人,2015)包括从维基百科收集的14个非重叠类和文本数据。每个类别有40000个培训和5000个测试样本。(2)20个新闻组数据集有20个主题,每个主题大约有1000个文档。每个类别70%的文件被随机抽取进行训练,剩下的30%被用作测试集。

2、Implementation Details

在我们的实验中,选择了两种不同的不可见类,分别为50%和25%,相应的CS和CU的情况如表1所示。对于每一个数据集和每一个不可见率,随机选择(cs,cu)重复十次,这十个组被所有的实验使用,在这个设置下进行公平比较。所有来自CU的文件都相应地从培训集中删除。最后,对10个组的结果进行平均

在第一阶段,每个分类器的结构是相同的。CNN层有三种过滤器规格【3、4、5】,每种过滤器有400个过滤器,随后的dense layer有300个单元。对于数据扩充,我们使用gensim和3cosmul的实现(reh rek和sojka,2010)来解决单词级类比(算法1中的第5行)。此外,表1还显示了每个设置(如果使用)的每个未知类的增广文本文档数。这些数字是考虑到可翻译的培训文件的数量,根据经验设定的。

在第二阶段,传统的分类器和零样本分类器具有相同的结构,其中CNN层有三个过滤尺寸[2、4、8],每个过滤尺寸有600个过滤器,两个中间致密层分别有400和100个单元。对于特征增强,conceptnet中的最大路径长度k设置为3以创建关系向量。dbpedia ontology用于构建dbpedia数据集的类层次结构。20个新闻组数据集的类层次结构是基于数据集最初提供的名称空间构建的。同时,两个数据集的类描述根据情况从MacmillanDictionary中选取。

对于这两个阶段,我们使用200 dim glove vectors作为word embeddings vw和vc(Pennington等人,2014年)。所有的深层神经网络都是用张量层(Dong等人,2017a)和张量流(Abadi等人,2016)实现的。

《Integrating Semantic Knowledge to Tackle Zero-shot Text Classification》阅读笔记_第5张图片

表1 

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

你可能感兴趣的:(paper)