(EMNLP2019)Aspect-basedSentimentClassificationwithAspect-specificGraph ConvolutionalNetworks

问题:传统的捕获semantic与aspect之间信息的算法有所局限

LIMIT1:rnn+attention容易将原本对一个aspect无影响的word纳入考虑(the current attention mechanism may lead to a given aspect mistakenly attending to syntactically unrelatedcontextwordsasdescriptors(Limitation 1)

EXAMPLE:   Its size is ideal and the weight is acceptable attention会认为acceptable和size有关

LIMIT2:CNN考虑了临近关系,但受限于filter length可能不足以将表达情感的multi-words纳入考虑(inadequate to determine sentiments depicted by multiple words that are not next to each other (Limitation 2)

EXAMPLE: The staff should be a bit more friendly  CNN不足以看到should be,会关注more friendly使得staff被分类为positive

 

(EMNLP2019)Aspect-basedSentimentClassificationwithAspect-specificGraph ConvolutionalNetworks

论文提出的模型大致分为两部分,左边的BLSTM将词向量矩阵输入转化成hidden states,其维度翻倍;随后右侧的GCN提取context info最终输出aspect word的vector用于生成注意力权重,最后加权得到句子的最终表示,并通过全连接网络给出最后的分类结果。

值得一提的是,右侧的GCN采用了mask机制,下面具体阐述下本文GCN的做法:

(EMNLP2019)Aspect-basedSentimentClassificationwithAspect-specificGraph ConvolutionalNetworks

这是主要公式,i是word编号,l是GCN层号,其中W和b都是可训练variable,di是第i个word的度,简单说就是先得到上一层每个节点的输出,然后对于每一个结点,再将其所有邻接的结点先做一个linear trans,再把值全部加到它上面(存在自联结,Aij的对角值为1),最后除以度数加上bias,relu输出。

然而在GCN的第一层,论文中做了一个变换:

(EMNLP2019)Aspect-basedSentimentClassificationwithAspect-specificGraph ConvolutionalNetworks

这个变换只发生在第一层,它将aspect word置0,它们位置上的值由其他非aspect word乘上一个位置权重加权得到(aspect word位于t+1~t+m(不知道咋打那个字母))。

最后GCN将所有非aspect word置零,只留下aspect word的输出用来计算注意力权重。

(EMNLP2019)Aspect-basedSentimentClassificationwithAspect-specificGraph ConvolutionalNetworks

其实word(t)的权重就是BLSTM的输出和所有GCN的aspect word输出做内积求和,最后softmax得到权重。