【阅读笔记】——《Incorporating Context-Relevant Knowledge into CNN for Short Text Classification》
AAAI2019《Incorporating Context-Relevant Knowledge into CNN for Short Text Classification》Xu and Cai,提出了一种将上下文相关知识融合进卷积神经网络的短文本分类方法。
1 摘要
现有的一些文本分类方法没有考虑到上下文相关的知识(比如一个单词可能有多种含义,但在该语境下的含义并没有考虑进去。)。本文提出了一种将上下文相关知识融合进卷积神经网络的短文本分类方法,其中包含两个模块:1. 先分别提取概念与文本特征,然后使用attention layer提取与上下文相关的概念;2. 使用CNN从上下文里提取更高层次的特征。
2 介绍
现在常用的文本分类模型通常是SVM、CNN或者RNN,然而这些模型在数据量稀疏的短文本上效果并不是非常突出。同时,知识库(KB)的发展为文本带来了更多的语义,比如说“Lincoln”一词既可以表示一个车也可以是一个人,然而引入与文本内容无关的语义有时会影响到文本的分类效果。
为解决上述问题,我们提出一种与上下文相关的概念-循环卷积神经网络(context-relevant concept recurrent convolutional neural network,CCR-CNN),将上下文知识送入一个标准的CNN。其中一个模块是lower sub-network:用来提取上下文概念信息的特征表示,另一个upper sub-network:将word embedding和概念特征(context-relevant concept embedding,CCWE)结合,一起送入CNN进行分类。
3 模型
3.1 上下文概念表示模块
这个模块用了两个layer分别获取概念表示和上下文表示。
- 概念表示层:在Probase(Wu et al.,2012)中,知识表示为(word,concept)对,即一个词对应着一个概念。我们用指向同一个概念的所有单词来表示这个一个概念,换句话说,概念嵌入是单词嵌入的加权平均值(词向量学习使用Google的预训练方法):
原文:where ejw is the representation of word vjw , which is from the Google’s pre-trained word vectors1 and wjw represents the relevance of the word and the concept, which can be obtained from the Probase.
我的理解是,v是概念w的向量表示,ejw是单词j在概念w下的表示,w是词j和概念w相关的权重(为什么要用一样的字母……并且w和j表示起来很别扭我也不懂,自认为该循环的应该是w即这个概念所对应的单词而不是j?……如果理解有误请大家指出)总之就是与这个概念相关的所有词的向量去加权平均来表示这个概念。
-
上下文表示层:对于一个在t时刻输入的词xt,我们用一个双向GRU来获得它前后向的两个状态h→t和h←t,然后将两者拼接到一起:ht=[h→t,h←t],可以得到t时刻的一个包含全局信息的输入。
-
上下文相关的概念attention层:我们用A来表示词word在Probase中所对应的所有概念,其中A只有一部分的概念与w的上下文相关。因此,我们使用一个attention层来动态地提取这些与上下文相关的概念,然后将这些概念整合起来形成一个上下文相关的概念向量。对于一个词xt,在attention机制(Luong, Pham, and Manning 2015),中,它的最终概念表示是它top10概念的加权和:
其中vtj是概念j在词xt下的向量表示。由此我们的到了词t的概念信息表示。(跟上面的符号说明好像有点矛盾,但文章没有更多的解释,这大概就是短文的弊端吧……)
3.2 上下文相关的概念特征与词向量相结合的短文本分类模块
对于t时刻输入的词,我们将它的词向量xt与概念向量ct拼接起来,记作CCWE,一起送入CNN(Kim 2014),最后使用softmax进行分类。目标函数使用交叉熵损失函数。
4 实验部分
数据集
TREC,包含了人物、地点等6种问题的数据集;
Movie Review (MR), 包含10662个影评,被分为正面和负面两类;
AG,包含了新闻的标题和描述,这里只用了标题。
结果
总结
一个词的多种语义对于句长较短的文本分类可能会产生歧义,本文将词的概念信息做了抽取,与词本身的向量表示一同送入CNN去联合学习短文本的上下文特征,在短文本数据集上有了不错的效果。