0. 写在前面

继续之前的系列,记录一些关于ABSA问题的paper

1. Targeted Aspect-Based Sentiment Analysis via Embedding Commonsense Knowledge into an Attentive LSTM(Ma/AAAI-18)

作者在对论文review之后给出了几个仍未解决的问题:

对此,文章给出了三个解决方案:

整体框架如下所示,主要包括两个组分:sequence encoderhierarchical attention

  1. word embedding: 原始句子s={w1,w2,⋯,wL}s=\left\{w_{1}, w_{2}, \cdots, w_{L}\right\}s={w1,w2,,wL}变为向量表示{vw1,vw2,⋯,vwL}\left\{v_{w_{1}}, v_{w_{2}}, \cdots, v_{w_{L}}\right\}{vw1,vw2,,vwL}
  2. sequence encoder: 将向量送入双向LSTM得到每一个词的隐状态表示H=[h1,h2…hL]H=\left[h_{1}, h_{2} \ldots h_{L}\right]H=[h1,h2hL]
  3. Target-Level Attention: 对句子中的所有target实例(如上图中的棕色框框)做self-attention获得target word attention representation;
  4. Sentence-Level Attention: 把步骤3得到的target words attention 向量和步骤2得到的所有隐状态向量给contact起来,再做一次attention;
  5. Output: 将步骤4得到的attention向量经过一个dense层和一个softmax层,得到最终的分类概率输出。

Commonsense Knowledge: SenticNet
引入外部知识库SenticNet,含有50000个实例,每个实例对应一系列情感属性。情感属性提供了每个实例的表示,也将各个aspect与其情感链接起来。

Sentic LSTM
为了能够有效利用secticnet,本文对LSTM做了延伸:输入门中情感概念的存在可以防止记忆细胞受到与已有知识冲突的输入标记的影响。同样,输出门使用这些知识过滤存储在记忆网络中的无关信息,调控模型是否使用情感知识。


2、Aspect Level Sentiment Classification with Deep Memory Network(Tang/EMNLP2016)

文章借鉴了来自QA领域的记忆网络解决ABSA问题。Memory Network提出的目的之一就是为了解决RNN、LSTM等网络的记忆能力较差的问题。它维护了一个外部的记忆单元用于存储之前的信息,而不是通过cell内部的hidden state。关于Memory Network更为详细的解读可以参考Memory Networks论文串烧。整体解决方案如下图所示

Embedding

输入是一个原始句子,需要将其映射到向量空间后输入到模型中。常规操作,将context word和aspect word分别用向量表示

Attention

包括了两部分: content attention和location attention

content attention

就是传统的Key Value Query的形式
gi=tanh⁡(Watt[mi;vaspect]+batt)g_{i}=\tanh \left(W_{a t t}\left[m_{i} ; v_{a s p e c t}\right]+b_{a t t}\right)gi=tanh(Watt[mi;vaspect]+batt)αi=exp⁡(gi)∑j=1kexp⁡(gj)\alpha_{i}=\frac{\exp \left(g_{i}\right)}{\sum_{j=1}^{k} \exp \left(g_{j}\right)}αi=j=1kexp(gj)exp(gi)vec=∑i=1kαimiv e c=\sum_{i=1}^{k} \alpha_{i} m_{i}vec=i=1kαimi

location attention

我们从直观上来看,通常情况下,与aspect word距离较近的context word对于相应aspect的情感倾向的判断更重要。于是就有了location attention。所谓的location attention其实就是把context word的位置信息加入到memory中。文中定义了四种方式来encode位置信息:

  • 方式一:vik=(1−li/n)−(k/d)(1−2×li/n)v_{i}^{k}=\left(1-l_{i} / n\right)-(k / d)\left(1-2 \times l_{i} / n\right)vik=(1li/n)(k/d)(12×li/n)mi=ei⊙vim_{i}=e_{i} \odot v_{i}mi=eivi
  • 方式二: vi=1−li/nv_{i}=1-l_{i} / nvi=1li/nmi=ei⊙vim_{i}=e_{i} \odot v_{i}mi=eivi
  • 方式三: viv_{i}vi 作为模型的一个参数,随机初始化,通过梯度下降学习得到。mi=ei+vim_{i}=e_{i}+v_{i}mi=ei+vi
  • 方式四: 与方式三类似,加了一层sigmoid。 mi=ei⊙σ(vi)m_{i}=e_{i} \odot \sigma\left(v_{i}\right)mi=eiσ(vi)

Loss

loss⁡=−∑(s,a)∈T∑c∈CPcg(s,a)⋅log⁡(Pc(s,a))\operatorname{loss}=-\sum_{(s, a) \in T} \sum_{c \in C} P_{c}^{g}(s, a) \cdot \log \left(P_{c}(s, a)\right)loss=(s,a)TcCPcg(s,a)log(Pc(s,a))

CODE HERE


3、Recurrent Attention Network on Memory for Aspect Sentiment Analysis(Tencent AI Lab/EMNLP 2017)

论文采用多层注意力机制结合记忆网络去捕获句子中target word 与context word之间的联系。整体框架如下,主要分为

BLSTM for Memory Building

在Tang(2016)的论文中的记忆网络只是简单地将word embedding作为memory,并不能准确识别例如Except Patrick, all other actors don’t play well这类的实体情感。于是在本文中引入双向LSTM来捕获这之间的深层次关联。
如果有L层BLSTM叠加,最终得到的memory vector表示为M∗={m1∗,…,mt∗,…,mT∗}M^{*}=\left\{m_{1}^{*}, \ldots, m_{t}^{*}, \ldots, m_{T}^{*}\right\}M={m1,,mt,,mT} 其中$$$$

Position-Weighted Memory

当然,作者认为target word在输入句子中的位置信息也非常重要,更靠近target word的context word应该具有更高的重要性。wt=1−∣t−τ∣tmax⁡w_{t}=1-\frac{|t-\tau|}{t_{\max }}wt=1tmaxtτut=t−τtmax⁡u_{t}=\frac{t-\tau}{t_{\max }}ut=tmaxtτM={m1,…,mt,…,mT}M=\left\{m_{1}, \dots, m_{t}, \ldots, m_{T}\right\}M={m1,,mt,,mT}mt=(wt∙mt∗,ut)m_{t}=\left(w_{t}\right.\bullet m_{t}^{*}, u_{t} )mt=(wtmt,ut)

Recurrent Attention on Memory

这一部分的目的就是利用之前计算好的memory来表示出情感,然后用于分类。和上一篇论文一样,使用GRU和堆叠的attention。


4、Aspect Based Sentiment Analysis with Gated Convolutional Networks(Xue/ACL2018)

针对ABSA任务,之前研究效果较好的模型都是采用了LSTM+attention机制,这类模型过于复杂且参数较多训练起来比较费时。

LSTM processes one token in a step. Attention layer involves exponential operation and normalization of all alignment scores of all the words in the sentence. Moreover, some models needs the positional information between words and targets to produce weighted LSTM, which can be unreliable in noisy review text.

因此作者提出一种基于门控机制的可并行训练的CNN模型。

  • 将原始输入embedding后送入包含两个卷积操作的卷积层,第一个卷积对句子提取sentiment feature,第二个卷积额外加上了aspect embedding提取aspect feature,而且两者使用的非线性激活函数也不一样si=tanh⁡(Xi::+k∗Ws+bs)s_{i}=\tanh \left(\mathbf{X}_{i : :+k} * \mathbf{W}_{s}+b_{s}\right)si=tanh(Xi::+kWs+bs)ai=relu⁡(Xi:i+k∗Wa+Vava+ba)a_{i}=\operatorname{relu}\left(\mathbf{X}_{i : i+k} * \mathbf{W}_{a}+\mathbf{V}_{a} \boldsymbol{v}_{a}+b_{a}\right)ai=relu(Xi:i+kWa+Vava+ba)
  • 将上述得到的两个输出按位相乘,ci=si×aic_{i}=s_{i} \times a_{i}ci=si×ai
    以上是针对Aspect-Category Sentiment Analysis(ACSA),如果是Aspect-Term Sentiment Analysis(ATSA)问题呢,我们没有给定的aspect词,每个句子需要预测的target term都不同,这时候可以用另外一个CNN来提取target term的representation

CODE HERE


5、CAN—Constrained Attention Networks for Multi-Aspect Sentiment Analysis(2018)

本文的创新点有以下几个:

模型的整体框架如下:

Task-Specific Attention Layer

输入为⟨S,[A1s,A2s],[p1,p2]⟩\left\langle S,\left[A_{1}^{s}, A_{2}^{s}\right],\left[p_{1}, p_{2}\right]\right\rangleS,[A1s,A2s],[p1,p2]形式,其中SSS为句子,[A1s,A2s],[p1,p2]\left[A_{1}^{s}, A_{2}^{s}\right],\left[p_{1}, p_{2}\right][A1s,A2s],[p1,p2]分别表示句子中的aspect及其对应的polarity。

前面的embedding和LSTM层就不具体介绍了。来看看多任务学习层,主要包括:

  • ALSC Attention Layer目的是针对不同的aspect学习到不同的attention weights。输入是LSTM层输出HHH和句子中的aspect UUU αk=softmax⁡(zaTtanh⁡(W1aH+W2a(uks⊗eL)))\alpha_{k}=\operatorname{softmax}\left(z^{a \mathrm{T}} \tanh \left(W_{1}^{a} H+W_{2}^{a}\left(u_{k}^{s} \otimes e_{L}\right)\right)\right)αk=softmax(zaTtanh(W1aH+W2a(ukseL)))
  • ACD Attention Layer目的是学习句子中包含的aspect类别。输入是LSTM层输出HHH和aspect set βn=softmax⁡(zbTtanh⁡(W1bH+W2b(un⊗eL))))\beta_{n}=\operatorname{softmax}\left(z^{b^{\mathrm{T}}} \tanh \left(W_{1}^{b} H+W_{2}^{b}\left(u_{n} \otimes e_{L}\right)\right)\right) )βn=softmax(zbTtanh(W1bH+W2b(uneL))))

Regularization Layer

Regularization Layer用于对前面得到的attention weights加上限制,使得模型可以同时处理多个aspect。
注意:该层只在训练阶段有效,因为需要知道真实标签,在预测阶段直接略过该层。

  • Sparse Regularization用于限制每个aspect只关注句子中较少的词。以ALSC任务得到的attention weights αi\alpha_{i}αi为例 αk={αk1,αk2,…,αkL}\alpha_{k}=\left\{\alpha_{k 1}, \alpha_{k 2}, \dots, \alpha_{k L}\right\}αk={αk1,αk2,,αkL},系数正则项定义为:Rs=∣∑l=1Lαkl2−1∣R_{s}=\left|\sum_{l=1}^{L} \alpha_{k l}^{2}-1\right|Rs=l=1Lαkl21
  • Orthogonal Regularization用于限制每个aspect关注句子中的不同部分,使其尽量不重叠。将两个任务得到的attention weights分别表示成二维矩阵M∈RK×LM \in \mathbb{R}^{K \times L}MRK×LG∈R(K+1)×LG \in \mathbb{R}(K+1) \times LGR(K+1)×L,然后计算正则项Ro=∥MTM−I∥2R_{o}=\left\|M^{\mathrm{T}} M-I\right\|_{2}Ro=MTMI2

Task-Specific Prediction Layer

  • ALSC Prediction h‾k=∑l=1Lαklhl\overline{h}_{k}=\sum_{l=1}^{L} \alpha_{k l} h_{l}hk=l=1Lαklhlrks=tanh⁡(W1rh‾k+W2rhL)r_{k}^{s}=\tanh \left(W_{1}^{r} \overline{h}_{k}+W_{2}^{r} h_{L}\right)rks=tanh(W1rhk+W2rhL)y^k=softmax⁡(Wparks+bpa)\hat{y}_{k}=\operatorname{softmax}\left(W_{p}^{a} r_{k}^{s}+b_{p}^{a}\right)y^k=softmax(Wparks+bpa)
  • ACD Prediction rn=h‾n=∑l=1Lβnlhlr_{n}=\overline{h}_{n}=\sum_{l=1}^{L} \beta_{n l} h_{l}rn=hn=l=1Lβnlhl yn^=sigmoid⁡(Wpbrn+bpb)\hat{y_{n}}=\operatorname{sigmoid}\left(W_{p}^{b} r_{n}+b_{p}^{b}\right)yn^=sigmoid(Wpbrn+bpb)

Loss

  • ALSC Loss
    La=−∑k=1K∑cykclog⁡yk^cL_{a}=-\sum_{k=1}^{K} \sum_{c} y_{k c} \log y \hat{k} cLa=k=1Kcykclogyk^c
  • ACD Loss Lb=−∑n=1N[ynlog⁡y^n+(1−yn)log⁡(1−y^n)]L_{b}=-\sum_{n=1}^{N}\left[y_{n} \log \hat{y}_{n}+\left(1-y_{n}\right) \log \left(1-\hat{y}_{n}\right)\right]Lb=n=1N[ynlogy^n+(1yn)log(1y^n)]

所以总体的损失表示为L=La+1NLb+λRL=L_{a}+\frac{1}{N} L_{b}+\lambda RL=La+N1Lb+λR其中正则项RRR可以是前面的Rsor RoR_{s} \text { or } R_{o}RsorRo


以上~
2019.05.28

【论文】基于特定实体的文本情感分类总结(PART III)相关推荐

  1. 【论文】基于特定实体的文本情感分类总结(PART I)

    最近在看一个比赛:2019 搜狐校园算法大赛,赛题说的是 给定若干文章,目标是判断文章的核心实体以及对核心实体的情感态度.每篇文章识别最多三个核心实体,并分别判断文章对上述核心实体的情感倾向(积极.中 ...

  2. 【论文】基于特定实体的文本情感分类总结(PART II)

    0. 写在前面 五一假期最后一天-太阳超棒- 1. Multi-grained Attention Network for Aspect-Level Sentiment Classification ...

  3. 基于Bert的文本情感分类

    详细代码已上传到github: click me 摘  要:     情感分类是对带有感情色彩的主观性文本进行分析.推理的过程,即分析说话人的态度,推断其所包含的情感类别.传统机器学习在处理情感分类问 ...

  4. 复盘:基于attention的多任务多模态情绪情感识别,基于BERT实现文本情感分类(pytorch实战)

    复盘:基于attention机制的多任务多模态情绪情感识别(pytorch实战),基于BERT实现文本情感分类 提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对 ...

  5. 我的实践:pytorch框架下基于BERT实现文本情感分类

    当前,在BERT等预训练模型的基础上进行微调已经成了NLP任务的一个定式了.为了了解BERT怎么用,在这次实践中,我实现了一个最简单的NLP任务,即文本情感分类. 文章目录 1.基于BERT进行情感分 ...

  6. python 多分类情感词典_基于情感词典的文本情感分类

    基于情感词典的文本情感分类 传统的基于情感词典的文本情感分类,是对人的记忆和判断思维的最简单的模拟,如上图.我们首先通过学习来记忆一些基本词汇,如否定词语有"不",积极词语有&qu ...

  7. NLP之基于TextCNN的文本情感分类

    TextCNN 文章目录 TextCNN 1.理论 1.1 基础概念 **最大汇聚(池化)层:** ![请添加图片描述](https://img-blog.csdnimg.cn/10e6e1ed6bf ...

  8. 基于pytorch的Bi-LSTM中文文本情感分类

    基于pytorch的Bi-LSTM中文文本情感分类 目录 基于pytorch的Bi-LSTM中文文本情感分类 一.前言 二.数据集的准备与处理 2.1 数据集介绍 2.2 文本向量化 2.3 数据集处 ...

  9. 基于Keras搭建LSTM网络实现文本情感分类

    基于Keras搭建LSTM网络实现文本情感分类 一.语料概况 1.1 数据统计 1.1.1 查看样本均衡情况,对label进行统计 1.1.2 计句子长度及长度出现的频数 1.1.3 绘制句子长度累积 ...

最新文章

  1. 根据搜索来路 弹出相应广告
  2. spi flash 无法写入数据_非易失性Flash详解
  3. 独家 | 用随机森林预测“美版拼多多”商品销量
  4. 文件管理器-android源代码
  5. NYOJ-199 无线网络覆盖
  6. 一口气带你踩完五个 List 的大坑!
  7. html在分页功能中如何实现当前页面的页码样式与其他页面不同_如何使用word文档?word文档使用技巧教程?...
  8. 传阿里旗下蚂蚁集团拟上市集资300亿美元,最快9月IPO
  9. jsp输出所有请求头的名称
  10. 多目标粒子群算法_PSO粒子群算法可视化
  11. 特斯拉首个中国工厂落户上海临港
  12. nginx的源代码分析--间接回调机制的使用和类比
  13. Access数据类型备忘
  14. 【开源】前端拖拽表单设计器 自定义表单
  15. 整理出的安卓国家码,简称,语言的Json文件,可以一一对应国旗
  16. android 7 uc flash,UC浏览器7.2版新增加FLASH游戏支持功能
  17. pytorch官网不支持cuda10.2
  18. CSDN博客排名前15名
  19. Postman变量的使用
  20. 微软终止支持Win7 但系统仍然可正常使用

热门文章

  1. 重磅分享(二)——决策引擎实战部署
  2. 医药电商、线上药房、连锁药店、用药咨询、药箱补货、药师认证、分销商、合伙人、医生管理、诊所管理、处方药、收银、发票、电子会员卡、门店调拨、提成分销、问诊咨询、积分、顾客、流程图、业务逻辑、营销、优惠
  3. HR招聘_(二)_招聘方法论(招聘原因及原则)
  4. 记一次css载入指定url失败
  5. 用正则表达式输出rdf文档的三元组格式数据
  6. 一个把时间戳转成日期的javascript函数
  7. 正则表达式匹配 任意字符和空格的一个简便方式?
  8. Activity生命周期(略记)
  9. 改变kingcms默认拼音路径格式/修改kingcms拼音路径
  10. python异常之EOFError: Ran out of input