GCN For ABSA论文内容整理

BERT4GCN

标题:BERT4GCN: Using BERT Intermediate Layers to Augment GCN for Aspect-based Sentiment Classification

摘要: 基于图的基于方面的情感分类(ABSC)方法已经取得了最先进的结果,特别是当使用了从训练前语言模型(PLMs)得到的上下文词嵌入时。然而,它们忽略了上下文的顺序特性,并没有充分利用PLMs。在本文中,我们提出了一个新的模型,它集成了来自BERT的PLM的语法顺序特性和来自依赖图的语法知识。BERT4GCN利用BERT中间层的输出和单词之间的位置信息来增强GCN,以更好地编码依赖图进行下游分类。实验结果表明,本文提出的BERT4GCN优于所有最先进的baselines,证明了用BERT的中间层语法特征增强GCN可以显著增强ABSC模型。

目录

  • GCN For ABSA论文内容整理
    • BERT4GCN
      • ASGCN
        • 1. GCN层
        • 2. 模型设计
      • BERT+GCN
      • BERT中间层 + GCN
        • 1、输入
        • 2、GCN over Supplemented Dependency Graph
        • 3、训练和实验结果
        • 4、结论
      • 几个小问题

ASGCN

1. GCN层

在介绍BERT4GCN的设计之前,让我们看看以前的一些其他GCN是怎么做的。
ASGCN1(EMNLP2019)这是本文使用的一个Baseline——ASGCN,这篇论文对图卷积层作了很好的定义:
hil=σ(∑j=1kAijWlhjl−1+bl)h_i^l = \sigma(\sum^{k}_{j=1}{A_{ij}W^lh_j^{l-1}} +b^l)hil​=σ(j=1∑k​Aij​Wlhjl−1​+bl)
其中h代表多个连续GCN层的隐状态,对于一个L-层的GCN,hiLh_i^LhiL​就是节点 i 的最终输出,A是图的邻接矩阵,W表示一个可训练的线性变换权重,b表示一个可训练的偏置项,网络如下图所示

看到这里我们可以理解文本GCN和CNN的主要区别在于对节点(token)特征的组合方式更加灵活,也就是说CNN只是按照固定的窗口大小组合位置相近的词,而GCN利用语法树(图的信息)组合在语义上关系近的词。

2. 模型设计


(1)输入层
输入层将每个单词token在低维实值向量空间中进行嵌入表示(源代码中使用了glove300维词向量,BERT4GCN一文中也用BERT词向量作为输入进行了对比)。作者对输入进行了如下的设计:
首先是将给定n词句子表示为 c={w1c,w2c,...,wτ+1c,...,wτ+mc,...,wn−1c,wnc}c = \{ w_1^c, w_2^c,...,w_{\tau+1}^c,...,w_{\tau+m}^c,...,w_{n-1}^c, w_n^c \}c={w1c​,w2c​,...,wτ+1c​,...,wτ+mc​,...,wn−1c​,wnc​},其中τ+1\tau +1τ+1 到 τ+m\tau +mτ+m 是长度为m的方面对象,其他则视为上下文;利用句子词嵌入,构造双向LSTM来产生隐藏状态向量 。

(2)针对aspect-base进行改造
给定句子的依赖树是一个有向图,虽然GCN通常不考虑方向,但也可以调整为适应方向图的版本,因此在构造邻接矩阵时有两个方案:有向(ASGCN-DT)或无向(ASGCN-DG),相比之下有向方案的邻接矩阵更加稀疏;
以前的工作广泛采用一个分配位置权重的函数用于增强上下文中接近aspect的词的重要性,通过这样做,来减少依赖解析过程中可能自然产生的噪声和偏差,具体表示为
qi={1−τ+1−in1≤i<τ+10τ+1≤i≤τ+m1−i−τ−mnτ+m<i≤nq_i = \begin{cases} 1-\frac {\tau+1-i}{n} & 1\le i<\tau+1 \\ 0 & \tau+1 \le i \le \tau+m \\ 1-\frac {i-\tau-m}{n} & \tau+m < i \le n \\ \end{cases}qi​=⎩⎪⎨⎪⎧​1−nτ+1−i​01−ni−τ−m​​1≤i<τ+1τ+1≤i≤τ+mτ+m<i≤n​
通过多层GCN,以一种既考虑句法依赖又考虑长期多词关系的方式来感知方面周围的上下文。此外,遵循Kipf和Welling(2017)中的自循环思想,每个单词与自身的邻接值手动设置为1,即A的对角线值均为1,然后通过带归一化因子(*保证特征分布的稳定)的图卷积运算更新每个节点的表示,具体更新过程如下
h~il=∑j=1nAijWlgjl−1hil=ReLU(h~il/(di+1)+bl)gil=F(hil)\tilde{h} _i^l = \sum^{n}_{j=1}{A_{ij}W^l g_j^{l-1}} \\ h_i^l = ReLU( \tilde{h}_i^l /(d_i + 1) + b^l) \\ g_i^l = F(h_i^l)h~il​=j=1∑n​Aij​Wlgjl−1​hil​=ReLU(h~il​/(di​+1)+bl)gil​=F(hil​)
其中,di=∑j=1nAijd_i = \sum_{j=1}^n A_{ij}di​=∑j=1n​Aij​是节点 i 的度,F(hil)=qihilF(h_i^l) = q_ih_i^lF(hil​)=qi​hil​

(3)聚焦方面词——Aspect-specific Masking
这一层定义为htL=01≤t<τ+1,τ+m<t≤nh_t^L = 0 \quad 1\le t<\tau+1, \tau+m < t \le nhtL​=01≤t<τ+1,τ+m<t≤n,通过这一层屏蔽掉 non-aspect 单词的隐藏状态向量,并使aspect单词的状态保持不变。

(4)Aspect-aware Attention
注意力分数的计算方式为
βt=∑i=1nhtc⊤hiL=∑i=τ+1τ+mhtc⊤hiLαt=exp(βt)∑i=1nexp(βi)\beta_t = \sum_{i=1}^n {h_t^{c\top}h_i^L} = \sum_{i=\tau+1}^{\tau+m} {h_t^{c\top}h_i^L} \\ \alpha_t = \frac {exp(\beta_t)}{\sum_{i=1}^n exp(\beta_i)}βt​=i=1∑n​htc⊤​hiL​=i=τ+1∑τ+m​htc⊤​hiL​αt​=∑i=1n​exp(βi​)exp(βt​)​
也就是用GCN得到的方面词表示BiLSTM得到的完整句子表示计算注意力权重,最终的预测表示为r=∑t=1nαthtcr=\sum_{t=1}^n \alpha_th_t^cr=∑t=1n​αt​htc​,后接全连接层和softmax计算标签。

BERT+GCN

BERT4GCN的原文还提到,其中一个baseline BERT+GCN的图构建参考了下面这篇文章:SAGAT2 (COLING 2020),这一模型虽然没有直接采用GCN而是使用图Attention,但在消融实验中给出了GCN模型对比。这里,我们主要想学习一下SAGAT图的构建方法。
首先作者注意到,之前提出的几乎所有基于bert的模型都是在编码后通过平均池化合并子词,因为模型的后续层不能处理子词的结构,但不同子词的重要程度不同是一个显然的事实,因此作者希望把所有子词加入图中,后续用图Attention处理。构建的方法也很容易理解,首先输入的形式是: [CLS] 完整句子 [SEP] 方面词 [SEP],按照语法依赖构建边,将句子和方面词切割为子词后,用边将第一个子词和其他子词连接,如下图所示

BERT中间层 + GCN

最后我们步入正题介绍BERT4GCN的具体处理方法。

1、输入

BERT捕获了丰富的语言信息层次结构,不同的隐藏层其信息的“精度”与“侧重”有所不同,因此作者选取多个隐藏层丰富句子的表示。对于输入的句子,首先将每个单词映射到一个低维词向量,然后接BiLSTM获取隐藏状态。之后再处理为 [CLS] 完整句子 [SEP] 方面词 [SEP] 的形式输入BERT,取模型的1、5、9、12层作为增强特征,如果一个单词被分为若干子词,则只取第一个子词,得到得到GCN的增强特征G为
G=[H1B,H5B,H9B,H12B]G = [H_1^B, H_5^B, H_9^B, H_{12}^B]G=[H1B​,H5B​,H9B​,H12B​]
自注意机制能够捕捉单词之间的远距离依赖关系,Ganesh Jawahar等人的论文3也发现尽管BERT只使用了注意力机制,但是它的高层网络依然可以学习到文本中的组合结构。因此作者希望利用BERT中间层的注意力权重去修正、补充普通解析器得到的语法树。首先获取对应层的Attention权重Aatt=[W1att,W5att,W9att,W12att]A^{att} = [W_1^{att} , W_5^{att} , W_9^{att} , W_{12}^{att} ]Aatt=[W1att​,W5att​,W9att​,W12att​],其中每个W的维度是h×n×n,h为head的数量,接下来作者对head维度求平均得到该层的注意力表示Aˉlatt\bar{A}^{att}_lAˉlatt​,最后,如果注意权值大于或小于某个阈值(超参数),会在单词之间修剪或添加有向边。
Al,i,jsup={1α≤Aˉl,i,jattAi,jβ<Aˉl,i,jatt<α0Aˉl,i,jatt≤βA^{sup}_{l,i,j} = \begin{cases} 1 & \alpha\le \bar{A}^{att}_{l,i,j} \\ A_{i,j} & \beta < \bar{A}^{att}_{l,i,j} < \alpha \\ 0 & \bar{A}^{att}_{l,i,j} \le \beta \\ \end{cases}Al,i,jsup​=⎩⎪⎨⎪⎧​1Ai,j​0​α≤Aˉl,i,jatt​β<Aˉl,i,jatt​<αAˉl,i,jatt​≤β​
我们知道GCN需要两个输入:邻接矩阵和节点特征,而这里对每个token提取的若干层特征就是节点特征,利用Attention构建的补充依赖图就是邻接矩阵

2、GCN over Supplemented Dependency Graph

在每一层的补充依赖图上应用GCN,输入R1融合了BERT隐藏状态与BiLSTM隐藏状态,Rk融合了BERT隐藏状态与前一GCN层输出的节点表示。如下所示:
R1=ReLU(G1W1)+HRk=ReLU(GkWk)+Ok−1Ol,i=ReLU(1di∑j=1nAl,i,jsupWlRl,j+bl)k∈{2,3,4},l∈{1,2,3,4}R_1 = ReLU(G_1W_1) + H \\ R_k = ReLU(G_kW_k) + O_{k-1} \\ O_{l,i} = ReLU(\frac{1}{d_i} \sum_{j=1}^n A^{sup}_{l,i,j} W^lR_{l,j} +b^l) \\ k \in \{2,3,4\},l \in \{1,2,3,4\}R1​=ReLU(G1​W1​)+HRk​=ReLU(Gk​Wk​)+Ok−1​Ol,i​=ReLU(di​1​j=1∑n​Al,i,jsup​WlRl,j​+bl)k∈{2,3,4},l∈{1,2,3,4}
GCN以平均的方式聚合相邻节点表示,忽略了原始上下文中的相对线性位置。为了解决这个问题,作者训练了一组相对位置嵌入P(大小为(2w+1)* d,w为窗口大小,超参)进行位置信息编码,相应卷积层的计算公式变为
Ol,i=ReLU(1di∑j=1nAl,i,jsupWlRl,jp+bl)Rl,jp=Rl,j+Pmax(−w,min(w,j−i))O_{l,i} = ReLU(\frac{1}{d_i} \sum_{j=1}^n A^{sup}_{l,i,j} W^lR_{l,j}^p +b^l) \\ R_{l,j}^p = R_{l,j} + P_{max(-w,min(w,j-i))}Ol,i​=ReLU(di​1​j=1∑n​Al,i,jsup​WlRl,jp​+bl)Rl,jp​=Rl,j​+Pmax(−w,min(w,j−i))​
这个式子表示,对于当前的中心词 i,如果词 j 落在左右w大小内,则使用Pj−iP_{j-i}Pj−i​位置嵌入,否则使用窗口边界的位置嵌入。

3、训练和实验结果

在获得了最后一层GCN后的单词表示后,作者将当前aspect term的表示进行平均,作为最终的隐藏特征表示,后接一个全连接层和一个softmax层得到概率表示,使用带L2正则项的交叉熵损失进行分类。实验结果如下:

BERT4GCN在所有三个数据集上优于所有其他基于BERT的模型,证明了用BERT中间层的语法特征增强GCN可以增强ABSC模型。作者对结果进行了如下分析:
(1)BERT vs. RoBERTa。RoBERTaMLP在Laptop和Restaurant数据集上的性能显著优于BERT-SPC,而在Twitter数据集上的结果与BERT-SPC相似,BERT4GCN和RoBERTa4GCN的比较中也观察到相同的模式。造成这种现象的一个可能原因是,两个PLM预先训练的语料库与Twitter数据集大不相同。因此,RoBERTa的优势并不能体现在Twitter这样的领域外数据集上;
(2)BERT-SPC vs. BERT-based models。我们可以看到BERT-SPC和
基于BERT的模型效果相差不多,说明模型体系结构工程在使用BERT时只起到边际作用;
(3)BERT-SPC vs. BERT4GCN。从实验结果观察,在Twitter数据集中,BERT4GCN相对于BERT-SPC的改进高于其他数据集。而RoBERTa系列中,RoBERTaMLP和RoBERTa4GCN的效果差不多,在Restaurant数据集上甚至前者还要更好。基于这种现象,作者提出两点猜想:一是BERT4GCN框架更灵活地处理领域外数据集,二是猜测当PLM足够强大时,在现有的模型框架下,无需在领域内数据集上进行繁重的模型架构工程。这两个猜想需要在今后的工作中进一步探索。
此外,作者消融实验得到一些其他结论,例如单独添加相对位置模块会产生负面影响,相对位置模块的效果只有在与补充依赖图模块结合时才能显示出来;通过统计Laptop和Restaurant数据集的方面和意见term之间的相对距离,发现虽然分布非常相似,但这两个数据集的最佳窗口大小并不相同,这意味着可能需要根据数据集谨慎地选取超参数。

4、结论

本文中,作者提出了一个BERT4GCN模型,该模型集成了来自BERT的语法序列特征和来自依赖图的语法知识。该模型利用包含丰富和有用的语言知识的BERT中间层来增强GCN,并结合词的相对位置信息进行位置感知。最后,实验结果表明,该模型取得了新的SOTA表现。

几个小问题

1、相对位置嵌入具体是如何训练的?因为文中是让中间层特征直接加上相对位置嵌入,再输入GCN,直觉来说权重应该是使用乘法得到;
2、本文模型有很多超参(Attention阈值、窗口大小等),应该怎么进行调试和选取?


  1. Aspect-based Sentiment Classification with Aspect-specific Graph Convolutional Networks ↩︎

  2. Syntax-Aware Graph Attention Network for Aspect-Level Sentiment
    Classification ↩︎

  3. What does BERT learn about the structure of language? ↩︎

BERT4GCN: Using BERT Intermediate Layers to Augment GCN for Aspect-based Sentiment Classification相关推荐

  1. 阅读分享:Utilizing BERT Intermediate Layers for ABSA and NLI

    Utilizing BERT Intermediate Layers for Aspect Based Sentiment Analysis and Natural Language Inferenc ...

  2. 论文阅读 Contrastive Learning-Based Dual Dynamic GCN for SAR Image Scene Classification (TNNLS2022)

    论文标题 Contrastive Learning-Based Dual Dynamic GCN for SAR Image Scene Classification 论文作者.链接 作者: Liu, ...

  3. 使用线性分类器探针理解中间层—Understanding intermediate layers using linear classifier probes

    摘要 神经网络模型被认为是黑匣子.我们提出监控模型每一层的特征,并衡量它们是否适合分类.我们使用线性分类器,我们称之为"探针",完全独立于模型本身进行训练. 这有助于我们更好地理解 ...

  4. GCN 论文英语表达总结

    !猫在家里看论文,写论文的日子真爽 !我常常自嘲自己的英文写的很像老太太的裹脚布,又臭又长 !主要是将一些GCN的英文表达方式记录下来,收藏起来慢慢学习 !会给出论文题目,还有一些小小的note -- ...

  5. NLP预训练模型综述

    文章目录 文章 介绍 背景 2.1语言表示学习 非上下文词嵌 2.2 神经上下文编码器 2.2.1 序列模型s 2.2.2 非序列模型 2.2.3 分析 2.3 为什么预训练? 2.4 NLP的PTM ...

  6. 2022-kaggle-nlp赛事:Feedback Prize - English Language Learning

    文章目录 零.比赛介绍 0.1 比赛目标 0.2 数据集 0.3 注意事项 一.设置 1.1 导入相关库 1.2 设置超参数和随机种子 1.3 启动wandb 二. 数据预处理 2.1 定义前处理函数 ...

  7. 2020年NLP所有领域最新、经典、顶会、必读论文

    本资源整理了近几年,自然语言处理领域各大AI相关的顶会中,一些经典.最新.必读的论文,涉及NLP领域相关的,Bert模型.Transformer模型.迁移学习.文本摘要.情感分析.问答.机器翻译.文本 ...

  8. [ACL2020]Generalizing Natural Language Analysis through Span-relation Representations

    文章目录 1 介绍 2 span-relation representations 2.1未涉及句子级任务 3.span-relation model 3.1 span representation ...

  9. 浅谈 NLP 细粒度情感分析(ABSA)

    作者 | 周俊贤 整理 | NewBeeNLP 最近在调研细粒度情感分析的论文,主要对一些深度学习方法进行调研,看论文的同时记录下自己的一些想法. 首先,何为细粒度的情感分析?如下图,淘宝APP上某商 ...

最新文章

  1. 微信小程序修改整体背景颜色
  2. 微商谋定重整纠正错误走路-经信研究:李玉庭谈微商营销
  3. 编程迷宫_少儿创意编程(特23)scratch之迷宫模式探索(上)
  4. @SpringBootTest注解进行单元测试无法运行
  5. 我是如何帮助创业公司改进企业工作的
  6. 学了这几招,社交时人人都对你刮目相看(转载)
  7. python模拟一个简单的取款机,python简单区块链模拟详解
  8. 简历javaweb项目描述怎么写_简历要怎么写
  9. 小学计算机教师德育工作计划,小学教师个人德育工作计划
  10. Windows Server 2008 R2之三管理活动目录数据库
  11. 汇桔网与分众传媒正式达成全面深度战略资本合作
  12. 将数组A中的内容和数组B中的内容进行交换,计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值,1到 100 的所有整数中出现多少次数字9。
  13. Python如何解决中文乱码
  14. 如何申请注册Tom企业邮箱,教程详解来袭
  15. 无界鼠标 (Mouse without Borders)简单使用教程
  16. 如何使用python编程抢京东优惠券 知乎_小猿圈Python之实现京东秒杀功能技巧
  17. circos 中堆积柱状图的画法
  18. 磁盘阵列 and RAID技术简介
  19. 新产品发布 | HawkEye作业票管理系统
  20. 好用的iOS开发工具

热门文章

  1. 中国商界的顶级秘法之二:民营企业的五大策划法则
  2. “链上政务”三管齐下,效率、监管、企业服务成关键词
  3. wordpress添加媒体_如何在WordPress中添加jQuery FAQ手风琴
  4. 你的人生你定义!享你所想,无惧冒险
  5. informatica odbc oracle,Informatica数据源配置
  6. [Reading]THIRD BASE
  7. 让命令不尽然history历史纪录的一种方法
  8. Python、MATLAB股票投资:ARIMA模型最优的选股、投资组合方案与预测
  9. win10控制3D对象、视频等七个文件夹的显示与否
  10. 大数据分析对电子商务行业有哪些改变?