《Aspect Level Sentiment Classification with Deep Memory Network》,《Memory Network》阅读笔记

Abstract

这篇文章是介绍的是使用Deep Memory Network在aspect level上做情感分类。与feature-based SVM,LSTM这些模型不同的是,在推断每个aspect时,模型可以明确地捕捉到每个上下文单词的重要性。这个重要的程度和文本的表示时通过多层计算的,每一层都是基于external memory的attention神经网络模型。通过在laptop和restaurant两个数据集的实验,作者提出的模型的性能优于feature based SVM,LSTM,attention-based LSTM等模型。同时,这个模型的速度更快。


Task Definition

这篇文章的任务是对句子中出现的aspect进行情感分类。在同一个句子中,不同的aspect的情感分类是有可能不同的,举个例子:‘great food but he service was dreadful!’,对于‘food’这个aspect,它的情感是积极的,而对于‘service’这个aspect,它的情感是消极的。
针对这类问题,已经有很多学者做出了研究,包括feature-base SVM,深度神经网络等等。尽管这些模型有各自的优点,但像传统的LSTM是以一种不明确的或是不好解释的方式来捕捉上下文的信息,而且LSTM捕捉上下文的步长是有限的。还有一点就是,传统的LSTM是以一种顺序地方式来工作的,并且对于每一个上下文单词都是进行相同的操作,这样就不能明确地显示每个上下文单词的重要性。但是在真实的语境中,比如给一句话给人类让他对其中的一个aspect进行情感分类,其只需要只需要一句话中的某些重要单词就可以完成这个任务。模拟这个过程,这篇文章提出了使用deep memory network在aspect level做情感分类,在这个模型中使用了Attention Mechanism和Explicit Memory。


Model

这篇文章采用的模型是由一个多层的共享参数的computational layers构成。每一层都是基于上下文和位置Attention的模型, 它可以为每一个上下文单词学习到一个权重,并且利用这些信息来计算text representation。最后一层输出的text representation作为进行情感判断的特征。在这个模型中的每一个部分都是可微的,所以可以使用梯度下降的方式进行训练,损失函数采用的cross-entropy。


这篇文章比较吸引我的是采用了Memory Network,所以这里就简单的讲一下相关的工作。另外还有一篇文章,是将基于Attention机制的Aspect情感分类,如果你们感兴趣,可以去找《Attention-based LSTM for Aspect-level Sentiment Classification》这篇文章。
Memory Network最开始是由Facebook提出来的,随后又提出了End-to-End Memory Network。之所以要提出memory network,是因为,大多数机器学习的模型都缺乏可以读取和写入外部知识的组件。虽然LSTM可以捕捉到上下文,但是它的步长有限,当用于QA时,它的记忆相对来说比较少,不能精确地记住过去的事实。
Facebook 的Jason Weston等人提出的这个框架,是通过引入长期记忆(long-term memory component)来解决神经网络长程记忆困难的问题。基于该框架构造的模型可以拥有长期(大量)和易于读写的记忆。这个框架由五个部分组成:

  • 记忆M:模型记忆的表示,由一个记忆槽列表[ mimj ]组成,可被G,O组件读写
  • 组件I(input feature map):将模型输入转化成模型内部特征空间中的特征表示
  • 组件G(generalization):在模型获取新输入时更新记忆m,可以理解为记忆存储
  • 组件O(output feature map):根据模型输入和记忆m输出对应与模型内部特征空间中的特征表示,可以理解为读取记忆
  • 组件R(response):将O组件输出的内部特征空间的表示转化为特定格式,可以理解为将读取到的抽象的记忆转为具象的表示

在这里,将举一个例子来说明memory network在QA中的工作流程:
输入:一系列句子:{ S1,S2,...,Sn }和question q
任务为:根据这些sentence得到q得答案
STEPS:

  1. I每次读一个句子 Si ,encode的到一个vector representation
  2. G根据当前的sentence representation更新memory
  3. 所有句子都处理完得到完整的memory m,存储这些sentence的语义信息
  4. encode question q得到 eq
  5. O根据 eq 从memory m中选择相关的evidence得到一个输出向量O
  6. R根据O得到最中的输出

Details of Model

这篇文章的模型结构如下图所示:
《Aspect Level Sentiment Classification with Deep Memory Network》,《Memory Network》阅读笔记_第1张图片

首先,会给这个模型一个句子s={ w1,w2,...,wn }和它相关的aspect word wi ,然后会把每个单词映射到它的embedding vector。这些word vectors被分为两个部分:一个是aspect representation,一个是context representation。注:如果aspect是一个多个单词的表述,那么aspect representation这是这几个连续单词的词向量求平均(注:不太了解这个工作采用的词向量是通过什么原理的到的,所以不清楚求平均是否合理)。上下文的词向量{ e1,e2...e(i1),e(i+1)...en }会被stack,并且作为external memory m。

这个模型如图所示,是采用了多层的computaitonal layers。每一层包含一个Attention层和Linear层。这两层的输出求和作为下一层的输入。最后一层输出的text representation作为进行情感判断的特征。注:每一层共享一套相同的参数。接下来将介绍这篇文章的ATTENTION机制。

Content Attention

在这个工作中,使用一个Attention模型去计算基于respect的句子表示。之所以这样做,是因为上下文中的每一次对于句子情感走向的重要性是不同的。模型应该有针对性的处理相对重要的单词。将external memory m和一个aspect vector作为输入,这个attention模型会输出一个连续的向量vec。这个输出向量被计算为m中每一段记忆的加权和。

vec=I=1kαimi

对于memory mi 的每一段片段,alpha_i是使用一个前馈神经网络计算它与这个aspect的语义相关性。其中的scoring function如下:

gi=tanh(Watt[mi:vaspect]+batt)

当获得到 g1,g2,..,gk 后,将这个输入到一个softmax中去计算最后的importance分数{ α1,α2,...,αk }。

Location Attention

Location信息对于这个attention模型是很帮助的,因为在真正的语境中,离aspect越近的词,它越重要。作者提出语法结构对于attention模型也是很有帮助的,但是这篇文章没有涉及。

Experiment

这个工作采用的两个数据集来自SemEval 2014,一个是laptop,一个是restaurant。在数据预处理时,作者删除了有冲突的实力。数据情况如下:
《Aspect Level Sentiment Classification with Deep Memory Network》,《Memory Network》阅读笔记_第2张图片
情感分类实验结果如下:
《Aspect Level Sentiment Classification with Deep Memory Network》,《Memory Network》阅读笔记_第3张图片
运行时间分析:
《Aspect Level Sentiment Classification with Deep Memory Network》,《Memory Network》阅读笔记_第4张图片

你可能感兴趣的:(论文阅读笔记)