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

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模型。

ASGCN

1. GCN层

在介绍BERT4GCN的设计之前,让我们看看以前的一些其他GCN是怎么做的。
ASGCN1(EMNLP2019)这是本文使用的一个Baseline——ASGCN,这篇论文对图卷积层作了很好的定义:
h i l = σ ( ∑ j = 1 k A i j W l h j l − 1 + b l ) h_i^l = \sigma(\sum^{k}_{j=1}{A_{ij}W^lh_j^{l-1}} +b^l) hil=σ(j=1kAijWlhjl1+bl)
其中h代表多个连续GCN层的隐状态,对于一个L-层的GCN, h i L h_i^L hiL就是节点 i 的最终输出,A是图的邻接矩阵,W表示一个可训练的线性变换权重,b表示一个可训练的偏置项,网络如下图所示
在这里插入图片描述
看到这里我们可以理解文本GCN和CNN的主要区别在于对节点(token)特征的组合方式更加灵活,也就是说CNN只是按照固定的窗口大小组合位置相近的词,而GCN利用语法树(图的信息)组合在语义上关系近的词。
在这里插入图片描述

2. 模型设计

在这里插入图片描述
(1)输入层
输入层将每个单词token在低维实值向量空间中进行嵌入表示(源代码中使用了glove300维词向量,BERT4GCN一文中也用BERT词向量作为输入进行了对比)。作者对输入进行了如下的设计:
首先是将给定n词句子表示为 c = { w 1 c , w 2 c , . . . , w τ + 1 c , . . . , w τ + m c , . . . , w n − 1 c , w n c } 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,...,wn1c,wnc},其中 τ + 1 \tau +1 τ+1 τ + m \tau +m τ+m 是长度为m的方面对象,其他则视为上下文;利用句子词嵌入,构造双向LSTM来产生隐藏状态向量 。

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

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

(4)Aspect-aware Attention
注意力分数的计算方式为
β t = ∑ i = 1 n h t c ⊤ h i L = ∑ i = τ + 1 τ + m h t c ⊤ h i L α t = e x p ( β t ) ∑ i = 1 n e x p ( β 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=1nhtchiL=i=τ+1τ+mhtchiLαt=i=1nexp(βi)exp(βt)
也就是用GCN得到的方面词表示BiLSTM得到的完整句子表示计算注意力权重,最终的预测表示为 r = ∑ t = 1 n α t h t c r=\sum_{t=1}^n \alpha_th_t^c r=t=1nαthtc,后接全连接层和softmax计算标签。

BERT+GCN

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

BERT中间层 + GCN

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

1、输入

BERT捕获了丰富的语言信息层次结构,不同的隐藏层其信息的“精度”与“侧重”有所不同,因此作者选取多个隐藏层丰富句子的表示。对于输入的句子,首先将每个单词映射到一个低维词向量,然后接BiLSTM获取隐藏状态。之后再处理为 [CLS] 完整句子 [SEP] 方面词 [SEP] 的形式输入BERT,取模型的1、5、9、12层作为增强特征,如果一个单词被分为若干子词,则只取第一个子词,得到得到GCN的增强特征G为
G = [ H 1 B , H 5 B , H 9 B , H 12 B ] G = [H_1^B, H_5^B, H_9^B, H_{12}^B] G=[H1B,H5B,H9B,H12B]
自注意机制能够捕捉单词之间的远距离依赖关系,Ganesh Jawahar等人的论文3也发现尽管BERT只使用了注意力机制,但是它的高层网络依然可以学习到文本中的组合结构。因此作者希望利用BERT中间层的注意力权重去修正、补充普通解析器得到的语法树。首先获取对应层的Attention权重 A a t t = [ W 1 a t t , W 5 a t t , W 9 a t t , W 12 a t t ] 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 ˉ l a t t \bar{A}^{att}_l Aˉlatt,最后,如果注意权值大于或小于某个阈值(超参数),会在单词之间修剪或添加有向边。
A l , i , j s u p = { 1 α ≤ A ˉ l , i , j a t t A i , j β < A ˉ l , i , j a t t < α 0 A ˉ l , i , j a t t ≤ β 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,j0α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层输出的节点表示。如下所示:
R 1 = R e L U ( G 1 W 1 ) + H R k = R e L U ( G k W k ) + O k − 1 O l , i = R e L U ( 1 d i ∑ j = 1 n A l , i , j s u p W l R l , j + b l ) 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(G1W1)+HRk=ReLU(GkWk)+Ok1Ol,i=ReLU(di1j=1nAl,i,jsupWlRl,j+bl)k{2,3,4},l{1,2,3,4}
GCN以平均的方式聚合相邻节点表示,忽略了原始上下文中的相对线性位置。为了解决这个问题,作者训练了一组相对位置嵌入P(大小为(2w+1)* d,w为窗口大小,超参)进行位置信息编码,相应卷积层的计算公式变为
O l , i = R e L U ( 1 d i ∑ j = 1 n A l , i , j s u p W l R l , j p + b l ) R l , j p = R l , j + P m a x ( − w , m i n ( 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(di1j=1nAl,i,jsupWlRl,jp+bl)Rl,jp=Rl,j+Pmax(w,min(w,ji))
这个式子表示,对于当前的中心词 i,如果词 j 落在左右w大小内,则使用 P j − i P_{j-i} Pji位置嵌入,否则使用窗口边界的位置嵌入。
在这里插入图片描述

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? ↩︎

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Bert是一种在自然语言处理中被广泛使用的模型,其在各种任务中表现出了出色的性能。然而,对于方面级情感分析,Bert并不直接适用。因此,需要对Bert进行利用,并通过修改和扩展来适应这一任务。 端到端(end-to-end)的方面级情感分析是指通过一个模型直接从文本中提取方面和情感信息。为了利用Bert进行端到端的方面级情感分析,首先需要对数据进行预处理,并将其转换成Bert模型所接受的输入格式。这包括将文本分段、添加特殊标记以及填充序列等操作。 在Bert模型的基础上,需要添加相关的层来实现方面级情感分析。一种常见的方法是利用注意力机制来捕获方面词与其他词之间的关系。通过计算不同词之间的注意力权重,可以将方面词的相关信息传递给其他词,从而更好地理解整个文本。另外,也可以添加一些分类层来预测每个方面的情感。 为了更好地利用Bert,还可以使用领域特定的语料库来进行预训练。通过在大规模的语料库上进行预训练,模型可以更好地理解特定领域的文本,并提升方面级情感分析的性能。 此外,还可以通过调整Bert模型的超参数来进一步改善性能。例如,可以调整学习率、批大小和训练周期等超参数,以获得更好的结果。 总之,“exploiting bert for end-to-end aspect-based sentiment analysis”意味着通过对Bert进行修改和扩展,将其应用于端到端的方面级情感分析任务中,以提升模型的性能和效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值