Attention-based LSTM for Aspect-level Sentiment Classification

前提

  • 文中该任务指 aspect level sentiment classification.

  • aspect term 即描述该 aspect 的词语(可能是一个 word,可能是一个 phrase)

Motivation

  1. 当时神经网络模型在属性级情感分类任务的表现差强人意。
  2. TD-LSTM、TC-LSTM 方法只考虑了 target 没有考虑 aspect。进一步可以理解到,之前的工作只考虑一句话中选定的一个 target(即 entity or aspect),然而,一句话中可能出现多个 aspect 。
  3. 注意力机制在跟多任务中表现不凡。所以作者想要应用注意力机制来帮助完成该任务。

方法概述

首先,从 motivation 中可以看出,作者希望用 attention mechanism 来提升该任务的结果。总的来说作者要把 Attention 加入到 LSTM 模型中,使得在处理该任务时能更加关注待预测 aspect 对应的关键部分。

具体来说,作者提出了两种考虑注意方面信息的方法:一种方法是将 aspect embedding vector 连接到用于计算注意权值的句子隐藏表示中,另一种方法是将 aspect embedding vector 附加到输入单词向量中。

方法详述

Long Short-term Memory(LSTM)

这部分没必要多说。

LSTM with Aspect Embedding(AE-LSTM)

因为 aspect 信息很重要,所以作者提出要给 aspect 找 embedding vector。因为一句话中可能出现多个 aspect ,所以每个 aspect 理应有各自对应的 embedding vector 。作者用 v a i v_{a_i} vai 来代表第 i 个 aspect 的 embedding vector,其维度为 d a d_a da,所以可以表示为 v a i ∈ R d a v_{a_i}∈R^{d_a} vaiRda 。而所有 aspect 的 embedding vector 组成的 embedding matrix 用 A A A 表示, A ∈ R d a × ∣ A ∣ A∈R^{d_a×|A|} ARda×A ,其中 ∣ A ∣ |A| A 代表 A 中的向量个数(这里的|A|不是求 A A A 的行列式的意思,具体原因我也没深究过,但在NLP中取模基本就是代表取个数,例如对一个词汇表 V V V 取模 ∣ V ∣ |V| V 就是 V V V 中单词个数的意思)(从数学角度上来说是列的秩,即默认列向量代表一个 aspect 的 embedding vector)。

Attention-based LSTM (AT-LSTM)

为了抓住一句话中对应于属性的重要部分的信息,作者提出了一种 attention mechanism,示意图如下。

可以看到,作者提出的这种方法是先将 sequence 经过 LSTM layor 之后得到的 output h i h_i hi 与当前考虑的 aspect v a v_a va 进行拼接。用 H H H 表示 [ h 1 , … , h N ] [h_1,…,h_N] [h1,,hN] 这个矩阵,其中 N 为 该 sequence 的长度, H ∈ R d × N H∈R^{d×N} HRd×N,其中 d d d h i h_i hi 的维度也即 LSTM layer 中神经元个数。之后对拼接之后的向量做 Attention 操作得到整句话的表示 r 。

上一段所描述的内容也可以用下面这些公式表示:(其中 v a ⊗ e N v_a⊗e_N vaeN 表示让 v a v_a va 变成 [ v a , v a , … , v a ] [v_a,v_a,…,v_a] [va,va,,va]
M = t a n h ( [ W h H W v v a ⊗ e N ] ) α = s o f t m a x ( w T M ) r = H α T M=tanh( \left[ \begin{matrix} W_hH\\ W_vv_a⊗e_N \end{matrix}\right]) \\ α=softmax(w^TM)\\ r=Hα^T M=tanh([WhHWvvaeN])α=softmax(wTM)r=HαT
从公式中可以看出打分函数是 w T M w^TM wTM ,而期望表示 r 是通过隐层表示 H 求得的,但最后作为整个句子的表示是 h ∗ h^* h ,其是通过公式 h ∗ = t a n h ( W p r + W x h N ) h^* = tanh(W_pr+W_xh_N) h=tanh(Wpr+WxhN) 得到的。我个人的直观理解是,如果只用 Attention 的结果作为整个句子的表示的话,可能靠后的单词的信息不容易被考虑进去(因为比如 Attention 对 hi 很看重,那么 hi 本身是包含之前 h 的信息的,而之后的 h 的信息则在 hi 中完全没有被考虑,这就容易导致 Attention 后的结果得到的表示包含着前面的信息更多)。而因为 LSTM 本身最后一个隐层表示可以作为整个句子的表示,并且其本身的特点是就是对越靠近出口的 input 考虑的越多,所以二者正好可以互补。

得到这个句子最后的表示之后,将其放入一个 linear layor 得到维度为情感类别个数的 output,之后用 softmax 处理来得到最后结果。

Attention-based LSTM with Aspect Embedding (ATAE-LSTM)

其实就是将 AE、AT 合起来,其形式如下图:

从上图也容易看出,如果在 input 中加入 aspect information( v a v_a va ),那么显然输出的隐藏表示( h 1 , h 2 , … , h N h_1,h_2,…,h_N h1,h2,,hN)会具有来自输入的 aspect information。所以接下来计算 Attention 权重时,可以对单词与 aspect 之间的相互依赖进行建模。

至于为什么这个模型可以衡量单词与 aspect 之间的相互依赖程度,我的直观理解是这样的:首先,得到的隐层表示 h h h 会包含 input vector 中的信息,而如果本身某个 input word 与 aspect (或者说 input word representation vector 与 aspect embedding 相似),那么它们得到的 h h h 肯定会有更多关于 aspect 的信息。那么也就意味之这些包含了更多 aspect information 的隐层表示与 v a v_a va 更加相互依赖,这也解释了本段开头的疑问了。

实验

实验分为了几个任务,虽然这些任务不太相同,但是他们都是用到了 SemEval 2014 Task 4 中的数据集合(这个数据集合中各个数据集各有不同,每个任务具体用的哪个数据集也不同)。

该实验中,所有的词向量都是由Glove初始化的,言外之意就是之后 embedding 要当成参数一同学习学得。其他参数是通过从均匀分布 U ( − ϵ , ϵ ) U(−ϵ,ϵ) U(ϵ,ϵ) 采样来初始化的。 词向量的维数,aspect embedding 的维数和隐藏层的大小为300。 attention weight 的长度与句子的长度相同。几个 model 的 batch size 均为 25,momentum 为 0.9,L2-正则化权重为 0.001,初始学习率为 0.01,优化器为 AdaGrad。

Dataset

作者使用的数据集是 SemEval 2014 Task 4。

Task Definition

  • Aspect-level Classifification

    首先预先设定一组 aspects,任务的目标是预测出这些 aspect 的极性。例如预先给定这组 aspects {food , price , service , ambience , anecdotes/miscellaneous}。接下来根据评论 “The restaurant was too expensive.”,可以明显得出 price 的极性是负面的,而除了 price,其他 aspects 模型也需要进行预测。

    Dataset:为了可以根据上面的的任务定义,作者选择使用 SemEval 2014 Task 4 中的 restaurants data,因为只有这个数据集标注了每个评论都有预先设定的各个 aspect 的极性。

  • Aspect-Term-level Classifification

    上面那个任务中的 aspect 是预先设定的,但现在这个任务中预测评论中出现的每个 aspect term (可能一个评论中出现多个 aspect term)的 sentiment polarity。

    Dataset:使用在餐厅和笔记本电脑数据集的句子中,每个方面术语的出现都有位置和情感极性。

方法缺陷

  • target 不一定只能是一个词,而如果 target 是多个词,那么其中也一定有重要性的高低不同,所以如果只是求平均显然是一种很粗糙的做法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Drdajie

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值