文章目录

  • Motivation
  • 任务定义
  • 方法概述
  • 方法详述
    • 整体流程
    • Attention 部分
      • Content Attention
      • Location Attention
    • 多层计算层的必要性
    • 分类部分
  • 存在的问题

Motivation

首先,在当时之前存在的传统的机器学习方法中的SVM和传统的神经网络方法有着不小的弊端。大体和我在《Effective LSTMs for Target-Dependent Sentiment Classification》这篇博文中介绍的 Motivation(中的自我总结)部分相同。

其次,作者指出了 LSTM 的弊端,即 LSTM 虽然可以考虑到很多 context 信息,但是其不容易做到有侧重点(例如 sequence 中有的词对于 target sentimental classification 帮助不大,但是 LSTM 对 seqence 中的每个 word 只能做到一视同仁。尽管不同 wrod 会被记住或忘记,但是对每个 word 控制的规则是一样的)

任务定义

给一句话 s=w1,w2,…,wi,…wns = {w_1,w_2,…,w_i,…w_n}s=w1,w2,,wi,wn,其中包含 n words 和一个 aspect word wiw_iwi(出现在 s 中,所以其是 aspect term 而非 aspect catagory)。

之后通过预测句子 s 的情感极性来当作该 aspect 的情感极性。

方法概述

作者的总体的思路是针对 aspect 找对于其最重要的 context 。

作者用的方法是 deep memory network,这种方法不仅不需要情感词典,甚至也不需要句法分析器。

方法详述

整体流程

首先给出作者提出的这个方法的示意图(Figure 1):

下面来说明该图:

  • 图左边部分,给定一个句子 s=w1,w2,…,wi,…wns = {w_1,w_2,…,w_i,…w_n}s=w1,w2,,wi,wn 和 aspect word wiw_iwi,并获取每个 word 的 embedding vector 分别记为 e1,e2,…,ei,…ene_1,e_2,…,e_i,…e_ne1,e2,,ei,en(因为实际情况中 aspect 可能不止一个单词,所以为了方便能都用 wiw_iwi 表示,在 aspect 为多个 word 的情况时,得到其中每个 word 的 embedding vector 之后求和取平均。),之后将这些 words 分为两部分—— aspect 部分和 context 部分,其中 context 部分的 word vectors {e1,e2,…,ei−1,ei+1,…en}\{e_1,e_2,…,e_{i-1},e_{i+1},…e_n\}{e1,e2,,ei1,ei+1,en} 被合在一起作为外部记忆 m∈Rd×(n−1)m ∈ R^{d×(n-1)}mRd×(n1)
  • 图右边部分实右多个计算层组成,每个计算层都是两路的,一路是 attention layer,另一路是 linear layer(作者加入 linear layer 的原因是实验结果驱动的,即加入了效果就是要好一点儿,也没什么理论依据)。
    • 在 hop 1 中作者利用 Attention mechinsm 来实现对外部记忆的内容寻址外部记忆,其中 aspect vector 作为 Attention 中的查询向量。之后将Attention layer 的结果和 aspect vector 经过 linear transformation(线性变换)之后的结果求和作为最终结果,并作为下一个 hop 的 input。
    • 之后按 hop1 同样的方式执行多次,这样可以使更多的外部记忆中的内容(context 内容)被选择。因为当第一次 context 中有的部分被送入 Attention 中,那么第二次查询时,查询向量就包含了一部分原本是 context 的内容,那么之后找到的内容肯定更多(因为查询中有 context 内容,所以能匹配的内容也更多)。
    • 最后,最后一层的 hop 的输出将作为整个句子的 represntation,用于情绪分类部分。
    • 补充:每个计算层(hop)中的参数是共享的,所以无论构建一个计算层还是多个计算层其参数量是相同的。

Attention 部分

Attention 部分包含 Content Attention(注意内容)和 Location Attention(注意地址)两部分。在分别介绍这两部分之前,我们需要知道作者是如何将这二者结合起来的。

首先我们知道 Attention 一般过程为用打分函数计算每个元素(在目前任务中即每个 word)与查询向量的匹配程度,归一化之后得到每个元素的权重,最后累加就得到一个最终表示(这个表示包含了所有元素信息,包含的每个元素的信息量是根据之前算得的权重得到的)。

那么现在问题来了,如果我们先进行了一个 attention 部分得到了一个最终表示,那么怎么再加入另一个 attention 部分呢?

作者的做法是,先做 Location Attention 部分,但是只进行到累加的前一步,即计算各个元素(word)与对应权重相乘之后不将它们加在一块儿。这样,我们得到的结果仍然是 n 个 vector(n 为句子长度),之后将这 n 个 vector 存入外部记忆中分别代表对应 word 的 vector。

之后再进行 Content Attention,即将刚刚得到的 n 个 vector 根据与 aspect 的匹配程度做 attention,这次得到最终表示,Attention 部分也到此结束。

Content Attention

Attention 的应用比较简单,即常用的使用方法,输入 aspect vector vaspect∈Rd×1v_{aspect} ∈ R^{d×1}vaspectRd×1 作为查询向量,来选择与处理外部记忆 m∈Rd×km ∈ R^{d×k}mRd×k (k 为 memory size)中的单词,以形成最后 attention 部分的输出向量 vec∈Rd×1vec ∈ R^{d×1}vecRd×1,对应公式如下:
vec=∑i=1kαimi(1)vec = \sum_{i=1}^{k}α_im_i \tag1 vec=i=1kαimi(1)
其中 αi∈[0,1]α_i ∈ [0,1]αi[0,1] 是每个记忆片段 mim_imi 的权重,并且 ∑iαi=1\sum_iα_i = 1iαi=1 。打分函数如下:
gi=tanh(Watt[mi;vaspect]+batt)(2)g_i = tanh(W_{att}[m_i;v_{aspect}]+b_{att}) \tag2 gi=tanh(Watt[mi;vaspect]+batt)(2)
获得了 {g1,g2,…gk}\{g_1,g_2,…g_k\}{g1,g2,gk} 之后就是正常的 attention 操作,即通过 softmaxsoftmaxsoftmax 函数得到权重 {α1,α2,…,αk}\{α_1,α_2,…,α_k\}{α1,α2,,αk},公式如下:
αi=exp(gi)∑j=1kexp(gj)(3)α_i = \frac{exp(g_i)}{\sum_{j=1}^{k}exp(g_j)} \tag3 αi=j=1kexp(gj)exp(gi)(3)
作者认为自己设计的这种 attention model 有两点优势:

  1. 这个 attention model 可以自适应地得到每个记忆片段与 aspect 的关联程度。因为其打分函数是一个正反馈神经网络,即 tanh(Watt[mi;vaspect]+batt)tanh(W_{att}[m_i;v_{aspect}]+b_{att})tanh(Watt[mi;vaspect]+batt),可以看到,其中 input 为记忆 mim_imi 和 aspect vector vaspectv_{aspect}vaspect 的拼接,然后送入激活函数为 tanhtanhtanh 的单个神经元。这样就可以通过该网络根据情况学得参数 WattW_{att}Wattbattb_{att}batt,达到自适应的目的。
  2. 这个 attention model 是可微的,这样其就可以随着其他部件一起训练、优化,可以实现端到端这种方式。

Location Attention

上面的 Attention 部分是基于内容的,即选出与 aspect 更相符的上下文。但是往往在实际情况中,距离 aspect term 更近的上下文对 aspect sentiment cliassification 帮助更大。

基于上面的想法,作者提出了 Location Attention,他赋予句子中每个词一个位置信息(方式是用绝对距离来表示,即其距离大小为该 word 处在句子中的第几个位置)。具体作者怎么利用这个位置信息来实现 Location Attention 的呢?作者给出了下面 4 个方法(model)。

  • Model 1:作者用下面这个公式计算 memory vector mim_imi
    mi=ei⊙vi(4)m_i = e_i⊙v_i \tag4 mi=eivi(4)
    其中 ⊙⊙ 代表 element-wise multiplication(即按对应元素相乘),vi∈Rd×1v_i ∈ R^{d×1}viRd×1 是 word wiw_iwi 的位置向量(位置向量即指根据位置信息计算得到的向量,也可以将其近似地理解成是每个 word 对应的位置未归一化的权重向量,由下面公式(5)可以看出,这个向量是由一个标量张成的,即该向量的每个元素值都相等),其计算公式如下:
    vik=(1−li/n)−(k/d)(1−2×li/n)(5)v_i^k = (1-l_i/n)-(k/d)(1-2×l_i/n) \tag5 vik=(1li/n)(k/d)(12×li/n)(5)
    其中 nnn 是句子长度,kkk 是 hop 数(即指 hop k),lil_iliwiw_iwi 的位置值。

  • Model 2:这是 Model 1 的简化版,即简化了 viv_ivi 部分。简化内容:首先,不同的 hop 中的 viv_ivi 均相同;其次,本身的计算公式也简化了。总之,整个简化部分可以用下面这个公式代表。
    vi=1−li/n(6)v_i = 1 - l_i/n \tag6 vi=1li/n(6)

  • Model 3:在这个 model 中,作者将 viv_ivi 视作一个参数,并利用加法来计算 mim_imi,具体如下:
    mi=ei+vi(7)m_i = e_i + v_i \tag 7 mi=ei+vi(7)
    从公式中我们可以看到,viv_ivi 就如同全连接网络中的 bais 变量一样,所以作者说将 viv_ivi 视作一个参数。

  • Model 4: 在这个 model 中位置向量同样被视作参数,只不过不同于 Model 3,Model 4 的做法是通过一个门神经元,输入为 viv_ivi,输出为一个控制程度(也就是我们常说的 Attention 中的权重信息)。公式如下:
    mi=ei⊙σ(vi)(8)m_i = e_i⊙σ(v_i) \tag8 mi=eiσ(vi)(8)

多层计算层的必要性

首先多层计算层在得到抽象表示方面被广泛使用。

因为单层计算层只包含一个 attention layer,不足以处理复杂计算,即模型能力不强,所以使用多层计算层来提升模型的处理能力。

分类部分

直接使用 softmaxsoftmaxsoftmax 来进行分类。

存在的问题

  • 对 target 的处理比较粗糙。
  • 虽然多层 Attention 增加了模型的表示能力,但是每层 Attention 得到的结果又成为了下一层的查询向量,这样可能会导致每次 Attention 得到的结果都是一句话中特定几个词的权重大。

Aspect Level Sentiment Classification with Deep Memory Network相关推荐

  1. 情感分析论文阅读之《Aspect Level Sentiment Classification with Deep Memory Network》

       本文利用了加入了attention机制的QA系统中的深度记忆网络,本文将aspect word的上下文信息作为memory m中存储的内容.实现了一个针对aspect-level的情感分类模型. ...

  2. Deep Mask Memory Network with Semantic Dependency and Context Moment for Aspect Level Sentiment Clas

    这篇博文是Deep Memory Network在Aspect Based Sentiment方向上的应用的一部分,如果你已经熟知深度记忆网络并且看过其在ABSA的应用,只想看这篇论文,可以跳过直接阅 ...

  3. 【每日一读】Large-Scale Nodes Classification With Deep Aggregation Network

    目录 简介 论文简介 Abstract 1 I NTRODUCTION 2 RELATED W ORKS AND MOTIVATIONS 2.1 Primary Definition 2.2 Neig ...

  4. Aspect Based Sentiment Analysis经典模型

    本文转载自:https://zhuanlan.zhihu.com/p/81542002 Different from document- and sentence-level sentiment an ...

  5. 方面级情感分析论文泛读02:Syntax-Aware Aspect-Level Sentiment Classification with Proximity-Weighted Convolution

    提示1:原文链接 提示1:代码链接 文章目录 前言 一.论文信息 二.笔记要点 2.1. 目前存在的问题 2.2. 目前解决方法: 2.3.本文方法和创新点 2.4. 实验效果 2.5. 模型结构 2 ...

  6. 2019_AAAI_Multi-Interactive Memory Network for Aspect Based Multimodal Sentiment Analysis

    Multi-Interactive Memory Network for Aspect Based Multimodal Sentiment Analysis 论文地址:https://ojs.aaa ...

  7. 2020 ACL《CoGAN》- Aspect Sentiment Classification with Document-level Sentiment Preference Modeling

    2020 ACL <CoGAN>-Aspect Sentiment Classification with Document-level Sentiment Preference Mode ...

  8. 基于语义规则的胶囊网络跨域情感分类:Cross-Domain Sentiment Classification by Capsule Network With Semantic Rules

    基于语义规则的胶囊网络跨域情感分类 论文 ABSTRACT I. INTRODUCTION II. RELATED WORK A. CROSS-DOMAIN SENTIMENT CLASSIFICAT ...

  9. Sentiment Classification towards Question-Answering with Hierarchical Matching Network 论文阅读笔记

    Sentiment Classification towards Question-Answering with Hierarchical Matching Network 论文阅读笔记 这篇论文介绍 ...

  10. 读:Multi-scale pulmonary nodule classification with deep feature fusion via residual network

    文章目录 前言 一.任务 二.数据集 三.idea 四.网络结构 1.多卷积过程 2.残差块结构 3.特征融合 实验 总结 前言 记录5.11读的这篇论文 之后尽量每次读论文都做一个简单的小结,每次看 ...

最新文章

  1. python获取excel某一列-Python 读取excel指定的列
  2. (10)调用门提权(无参数)
  3. centos7 安装rabbitMq
  4. DLX (Dancing Links/舞蹈链)算法——求解精确覆盖问题
  5. 更改整个目录文件的所有权限
  6. jQuery包裹节点用法完整示例
  7. 整合重组叠加市场扩容 “广电云”发展将提速
  8. java中间==、equals和hashCode差额
  9. android studio USB连接华为手机不显示调试信息问题
  10. 数控g71编程实例带图_数控车床g71怎么编程?请举个例子谢谢了
  11. 【工具】pip安装不在当前虚拟环境中
  12. php 表格模板,怎么制作excel表格模板
  13. oracle分析函数-开窗函数
  14. Arduino 无源蜂鸣器实验
  15. 人与人之间相处的原则
  16. 演示笔记本电脑如何一键安装win10系统
  17. rod 基于CDP协议的web自动化工具(爬虫)
  18. QRC:extract RC流程
  19. 实时错误91,对象变量或with块变量未设置
  20. 2.2数据结构与序列

热门文章

  1. LV0009基于Labview的中文短信报警
  2. mysql中rpl_MySQL半同步复制之rpl_semi_sync_master_wait_point
  3. uniapp 引用图片地址
  4. 【转载】WAMP5:PHP环境整合安装(图解)及密码设置图解
  5. 友盟第三方分享 QQ QQ空间 微信 新浪 及走过的坑
  6. 解决win10邮箱无法登陆163企业邮箱的问题
  7. wordpress themeforest
  8. 台式电脑怎么装win10 win11重装win10系统
  9. MRAM学习笔记——3.SOT-MTJ SPICE model解析
  10. 如何设置 ASP.NET Core 程序监听的 IP 和端口