L-C-R Separated Neural Network for Aspect-based Sentiment Analysis with Rotatory Attention

该文提出了一种左中右分离LSTM结合旋转注意机制的模型(LCR-Rot)来处理情感分析任务。针对多词目标表示和目标与上下文交互的问题,LCR-Rot通过分离目标的左、中、右上下文,然后利用target2context和context2target的注意力机制,捕捉关键信息。最终,将各部分表示组合成句子的全面表示,用于情绪极性的预测。
摘要由CSDN通过智能技术生成

Motivation

  1. 几乎所有的研究人员都忽略了包含多个单词的 target 的情况,只是使用 target 构成词向量的平均值来表示目标(例如 ATAE-LSTM)。所以如何能用更好的方法来表示整个 target 信息很重要。

  2. target 和 context 会相互影响。举个例子:

    • target 对 context 影响: ”手机电池充一次电能用挺久,但是屏幕有点小“ -> 对于不同 target ”电池“、”屏幕“,则显然应该分别重点考虑 ”久“ 和 ”小“;

    • context 对 target 影响: ”华为的电脑有点贵“ 和 ”华为的电脑竟然也这么厉害“ -> 虽然两句话 target 都是 ”华为的电脑“,但是因为 context 不同,对 target 分别更关注的是 ”电脑“ 和 ”华为“。

方法概述

总结一下 Motivation,当时遇到的问题简单说来有两点:

  1. 如何更有效地表示目标,特别是当目标包含多个单词时?
  2. 如何利用目标和上下文之间的交互作用来捕捉目标和上下文表示中最重要的单词?

为了解决这个问题,该文提出了一种具有旋转注意机制的左中右分离神经网络(LCR-Rot)。

具体来说:

  1. 先建立一个 左、中、右 三部分分离的 LSTM(这里的左中右指的是 target 左边的 context、target、target 右边的 context)。
  2. 接下来,(类比 ATAE-LSTM)在三部分分别都被 LSTM 处理之后用 Attention,但为了能够同通过交互来找到 target 和 context 各自重要的部分,所以作者要用 rotatory attention mechanism(之前的 attention 不能满足这个要求)。而这部分 Attention 又分为两部分:
    • target2context: 用 target 的信息帮助 context 的注意力处理 -> 因为有 context 被分为了 target 左边的 context 和 target 右边的 context,所以 target2context 是将 target 分别送入左右两部分 context 进行注意力处理。
    • context2target: 同样,context 也要帮助 target 进行 attention 处理 -> 因为左右 context 都会影响 target 的表示,所以 target 对于左右 context 会得出不同的表示。所以最后会得到两个 target representation:left-aware target 和 right-aware target。
  3. 最后,将上一步得到的各个组件的表示连接为句子的最终表示,并将其输入到Softmax层中,以预测情绪极性。

方法详述

作者提出的 LCR-Rot 模型的总体框架如图1所示。

Left-Center-Right Separated LSTMs

将句子分成目标左边的上下文、目标、目标右边的上下文三部分,例如 “I am pleased with the life of battery, but the windows 8 operating system is so bad.” 这句话,当选 “the life of battery” 为目标时,左上下文为 “i am pleased with”,右上下文为 “, but the windows 8 operating system is so bad.”;而当选 “windows 8 operating system” 为目标时,左上下文为 “i am pleased with the life of battery, but the”、右上下文为 “is so bad.

假设整句话的长度为 N N N,left context 为 [ w 1 l , w 2 l , . . . , w L l ] [w^l_1,w^l_2,...,w^l_L] [w1lw2l...wLl],target 为 [ w 1 t , w 2 t , . . . , w M t ] [w^t_1,w^t_2,...,w^t_M] [w1tw2t...wMt] 和 right context [ w 1 r , w 2 r , . . . , w R r ] [w^r_1,w^r_2,...,w^r_R] [w1rw2r...wRr],其中 L , M , R L,M,R LMR 分别是三个部分的长度( L + M + R = N L+M+R = N L+M+R=N)。

分别将三部分放入三个 Bi-LSTM(left-, center-, and right- Bi-LSTM)中,分别得到对应的隐层表示,即 left context 的 [ h 1 l , h 2 l , . . . , h L l ] [h^l_1,h^l_2,...,h^l_L] [h1lh2l...hLl],target 的 [ h 1 T , h 2 T , . . . , h M T ] [h^T_1,h^T_2,...,h^T_M] [h1Th2T...hMT] 以及 right context 的 [ h 1 r , h 2 r , . . . , h R r ] [h^r_1,h^r_2,...,h^r_R] [h1rh2r...hRr]

Rotatory Attention Mechanism

旋转注意机制用来捕获目标和左/右上下文中最具指示性的单词。这个机制包括两个步骤,正如 Figure 1 中所示,在得到 Hidden States 后图中有 ① 和②,这即代表了两步。

总的来说这两步分别就是第一步 target2context 部分和第二步 context2target 部分。第一步,使用 target2context 来捕捉 left/right contexts 中最具指示性的情感词;第二步,基于 left/right contexts 的新表示,进一步构造 context2target attention,以捕获目标中最重要的单词,并最终得到目标的双面表示。

(1) target2context

首先利用目标的平均表示来获得更好的左右上下文表示。

  1. 先用一个 average pooling 操作得到 target 的平均表示。average pooling 在此处即取各个向量的平均值,即
    r t = p o o l i n g ( [ h 1 t , h 2 t , … , h M t ] ) (1) r^t = pooling([h^t_1,h^t_2,…,h^t_M]) \tag1 rt=pooling([h1t,h2t,,hMt])(1)

  2. 接下来就是如何得到 left and right contexts 的更好的表示。

    • 首先,作者定义了一个 score function f f f,这个函数用上下文中每个单词的隐状态 h i l h^l_i hil h i r h^r_i hir 和目标短语 r t r^t rt 的平均池化值作为输入,用 left context 举例(这部分整个过程都沿着这个例子继续):
      f ( h i l , r t ) = t a n h ( h i l ⋅ W c l ⋅ r t + b c l ) (2) f(h^l_i, r^t) = tanh(h^l_i · W^l_c · r^t + b^l_c) \tag2 f(hil,rt)=tanh(hilWclrt+bcl)(2)
      其中 W c l W^l_c Wcl B c l B^l_c Bcl 分别是权重矩阵和偏差, t a n h tanh tanh 是非线性函数。

      分数 f f f 被用作一个权重,它表示一个上下文中的单词对于揭示目标情感的重要性。

    • 在上面的基础上得到了各个 word 的重要性,得分有高低,接着对这些分数做归一化操作得到 left context 中各个 word 的重要性权重 α i l α^l_i αil
      α i l = e x p ( f ( h i l , r t ) ) ∑ j = 1 L e x p ( f ( h j l , r t ) ) (3) α^l_i = \frac{exp(f(h^l_i, r^t))}{\sum_{j=1}^L exp(f(h^l_j, r^t))} \tag3 αil=j=1Lexp(f(hjl,rt))exp(f(hil,rt))(3)

    • 最后根据重要性权重 α l α^l αl 计算得到 left context 的表示:
      r l = ∑ i = 1 L α i l ⋅ h i l (4) r^l = \sum_{i=1}^L α^l_i · h^l_i \tag4 rl=i=1Lαilhil(4)

      与方程(2)-(4)相同,我们可以得到 right context 的 r r r^r rr

(2) context2target

作者进一步利用左右上下文的新表示,以构建一个更好的目标表示。

context2target 与 target2context 类似。

  1. 因为 target2context 部分得到了 left context、right context 更好的表示(也是最终的表示) r l , r r r^l,r^r rl,rr,所以不需要计算 average pooling 了,接下来直接用 r l , r r r^l,r^r rl,rr 即可。

  2. 接下来就是如何得到更好的 target 的表示。

    • 首先,定义一个评分函数 f f f,其输入是每个 target 中的隐状态 h i t h^t_i hit 和 最终表示 r l r^l rl r r r^r rr(以 left context 为例,整个过程都以 left 为例):
      f ( h i t , r l ) = t a n h ( h i t ⋅ W t l ⋅ r l + b t l ) (5) f(h^t_i, r^l) = tanh(h^t_i · W^l_t · r^l + b^l_t) \tag5 f(hit,rl)=tanh(hitWtlrl+btl)(5)
      其中 W t l W^l_t Wtl b t l b^l_t btl 分别是权重矩阵和偏置, t a n h tanh tanh 是一个非线性函数。

      这个评分函数 f f f 用来得到 target 中每个单词受 context 影响后的重要性。

    • 在上面的基础上,归一化的重要性权重 α i α_i αi 的计算方法如下:
      α i t l = e x p ( f ( h i t , r l ) ) ∑ j = 1 M e x p ( f ( h j t , r l ) ) (6) α^{t_l}_i = \frac{exp(f(h^t_i, r^l))}{\sum_{j=1}^M exp(f(h^t_j, r^l))} \tag6 αitl=j=1Mexp(f(hjt,rl))exp(f(hit,rl))(6)

    • 最后计算目标短语隐藏状态的加权组合:
      r t l = ∑ i = 1 M α i t l ⋅ h i t (7) r^{t_l} = \sum^M_{i=1}α^{t_l}_i · h^t_i \tag7 rtl=i=1Mαitlhit(7)
      r t l r^{t_l} rtl 称之为 left-aware target representation。 类似于方程(5)-(7),我们可以得到 right-aware target representation r t r r^{t_r} rtr

      我们将 left-aware and right-aware target representation 的组合 [ r t l , r t r ] [r^{t_l},r^{t_r}] [rtl,rtr] 命名为目标的 two-side representation。

Representation Concatenation

最后将上面基于注意力机制得到的 4 个表示 r l r^l rl r t l r^{t_l} rtl r t r 、 r r r^{t_r}、r^r rtrrr 将其首尾拼接成最终的表示 v v v,该过程可表示为:
v = [ r l ; r t l ; r t r ; r r ] (8) v = [r^l;r^{t_l};r^{t_r};r^r] \tag8 v=[rl;rtl;rtr;rr](8)
于注意力机制得到的 4 个表示 r l r^l rl r t l r^{t_l} rtl r t r 、 r r r^{t_r}、r^r rtrrr 将其首尾拼接成最终的表示 v v v,该过程可表示为:
v = [ r l ; r t l ; r t r ; r r ] (8) v = [r^l;r^{t_l};r^{t_r};r^r] \tag8 v=[rl;rtl;rtr;rr](8)
接下来将其送入 softmax layer 得到预测结果即可。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Drdajie

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

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

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

打赏作者

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

抵扣说明:

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

余额充值