摘要
基于方面的情感分析 (ABSA) 涉及三个基本子任务:方面术语提取、观点术语提取和方面级情感分类。早期的工作只专注于单独解决这些子任务之一。最近的一些工作集中在解决两个子任务的组合,例如,提取方面术语和情感极性,或者成对地提取方面和意见术语。最近,已经提出了三元组提取任务,即从句子中提取(方面项、意见项、情感极性)三元组。然而,以前的方法无法解决统一的端到端框架中的所有子任务。在本文中,我们提出了一个完整的 ABSA 解决方案。我们构建了两个机器阅读理解 (MRC) 问题,并通过联合训练两个具有参数共享的 BERT-MRC 模型来解决所有子任务。我们对这些子任务进行了实验,并且在几个基准数据集上的结果证明了我们提出的框架的有效性,它明显优于现有的最先进的方法。
在本文中,我们提出了一个联合训练框架,以在一个模型中处理所有ABSA子任务(如图1所述)。我们使用BERT(Devlin等人2019)作为我们的骨干网络,并使用基于跨度的模型从句子中检测AT / OT的开始/结束位置。基于Span的方法优于传统的基于序列标记的提取任务方法(Hu等人,2019)。根据其思想,使用了一种基于非最大抑制算法(NMS)的启发式多跨度解码算法(罗森菲尔德和瑟斯顿1971)。
我们将原始的三元组提取任务转换为两个机器阅读理解(MRC)问题。如果使用预先训练的BERT模型,则已知MRC方法有效。原因可能是BERT通常使用下一个句子预测进行预先训练,以捕获成对的句子关系。从理论上讲,三元组提取任务可以分解为子任务AE,AOE和SC。因此,我们使用左MRC处理AE,使用右MRC处理 AOE 和 SC。
贡献:
- 我们展示了三重提取任务可以由三个目标联合训练。
- 我们提出了一个双MRC框架,可以处理ABSA中的所有子任务(如表1所示)。
- 我们进行实验以比较我们提出的框架关于这些任务。实验结果表明,所提方法优于现有方法。
模型
三元组抽取的联合训练
ABSA的任务:
- AE: AT extraction 方面术语提取
- OE: OT extraction 观点术语提取
- SC: aspect-level sentiment classification 方面级情感分类
- AESC : AT extraction and sentiment classification 方面术语提取和情感分类
- AOE : aspect-oriented OT extraction 方面词导向的观点术语提取
- Pair: (AT, OT) pair extraction (方面术语,观点术语)对提取
- Triple: (AT, OT, SP) triple extraction(方面术语,观点术语,情感极性)三元组提取
其它子任务可以被当作三元组提取任务的特殊情况。
给定最大长度为n的句子 x j x_j xj, T j = { ( a , o , s ) } T_j=\{(a, o, s)\} Tj={(a,o,s)}是输入句子 x j x_j xj的三元组输出。对于训练集 D = { ( x j , T j ) } D=\{(x_j,T_j)\} D={(xj,Tj)}, 最大似然:
L ( D ) = ∏ j = 1 ∣ D ∣ ∏ ( a , o , s ) ∈ T j P ( ( a , o , s ) ∣ x j ) L(\mathcal{D})=\prod_{j=1}^{|\mathcal{D}|} \prod_{(a, o, s) \in T_j} P\left((a, o, s) \mid x_j\right) L(D)=j=1∏∣D∣(a,o,s)∈Tj∏P((a,o,s)∣xj)
定义:
T j ∣ a : = { ( o , s ) , ( a , o , s ) ∈ T j } , k j , a : = ∣ T j ∣ a ∣ T_j\left|a:=\left\{(o, s),(a, o, s) \in T_j\right\}, \quad k_{j, a}:=\right| T_j|a| Tj∣a:={(o,s),(a,o,s)∈Tj},kj,a:=∣Tj∣a∣
x j x_j xj的对数似然:
ℓ ( x j ) = ∑ ( a , o , s ) ∈ T j log P ( ( a , o , s ) ∣ x j ) = ∑ a ∈ T j ∑ ( o , s ) ∈ T j ∣ a log P ( a ∣ x j ) + log P ( ( o , s ) ∣ a , x j ) = ∑ a ∈ T j ( ∑ ( o , s ) ∈ T j ∣ a log P ( a ∣ x j ) ) + ∑ a ∈ T j ( ∑ ( o , s ) ∈ T j ∣ a log P ( s ∣ a , x j ) + log P ( o ∣ a , x j ) ) \begin{aligned}\ell\left(x_j\right) &=\sum_{(a, o, s) \in T_j} \log P\left((a, o, s) \mid x_j\right) \\&=\sum_{a \in T_j} \sum_{(o, s) \in T_j \mid a} \log P\left(a \mid x_j\right)+\log P\left((o, s) \mid a, x_j\right) \\&=\sum_{a \in T_j}\left(\sum_{(o, s) \in T_j \mid a} \log P\left(a \mid x_j\right)\right) \\&+\sum_{a \in T_j}\left(\sum_{(o, s) \in T_j \mid a} \log P\left(s \mid a, x_j\right)+\log P\left(o \mid a, x_j\right)\right)\end{aligned} ℓ(xj)=(a,o,s)∈Tj∑logP((a,o,s)∣xj)=a∈Tj∑(o,s)∈Tj∣a∑logP(a∣xj)+logP((o,s)∣a,xj)=a∈Tj∑⎝ ⎛(o,s)∈Tj∣a∑logP(a∣xj)⎠ ⎞+a∈Tj∑⎝ ⎛(o,s)∈Tj∣a∑logP(s∣a,xj)+logP(o∣a,xj)⎠ ⎞
最后一个等式成立,因为在给定句子 x j x_j xj和方面术语 a a a的情况下,观点术语 o o o和情感极性 s s s是有条件独立的。
ℓ ( x j ) = ∑ a ∈ T j k j , a ⋅ log P ( a ∣ x j ) + ∑ a ∈ T j ( k j , a ⋅ log P ( s ∣ a , x j ) + ∑ o ∈ T j ∣ a log P ( o ∣ a , x j ) ) \begin{aligned}\ell\left(x_j\right) &=\sum_{a \in T_j} k_{j, a} \cdot \log P\left(a \mid x_j\right) \\&+\sum_{a \in T_j}\left(k_{j, a} \cdot \log P\left(s \mid a, x_j\right)+\sum_{o \in T_j \mid a} \log P\left(o \mid a, x_j\right)\right)\end{aligned} ℓ(xj)=a∈Tj∑kj,a⋅logP(a∣xj)+a∈Tj∑⎝ ⎛kj,a⋅logP(s∣a,xj)+o∈Tj∣a∑logP(o∣a,xj)⎠ ⎞
我们在 x j ∈ D x_j∈D xj∈D上求和,并对两边进行归一化,然后我们得到以下形式的对数似然:
ℓ ( D ) = α ⋅ ∑ j = 1 ∣ D ∣ ∑ a ∈ T j ( ∑ a ∈ T j log P ( a ∣ x j ) ) + β ⋅ ∑ j = 1 ∣ D ∣ ∑ a ∈ T j log P ( s ∣ a , x j ) + γ ⋅ ∑ j = 1 ∣ D ∣ ∑ a ∈ T j ( ∑ o ∈ T j ∣ a log P ( o ∣ a , x j ) ) \begin{aligned}\ell(\mathcal{D}) &=\alpha \cdot \sum_{j=1}^{|\mathcal{D}|} \sum_{a \in T_j}\left(\sum_{a \in T_j} \log P\left(a \mid x_j\right)\right) \\&+\beta \cdot \sum_{j=1}^{|\mathcal{D}|} \sum_{a \in T_j} \log P\left(s \mid a, x_j\right) \\&+\gamma \cdot \sum_{j=1}^{|\mathcal{D}|} \sum_{a \in T_j}\left(\sum_{o \in T_j \mid a} \log P\left(o \mid a, x_j\right)\right)\end{aligned} ℓ(D)=α⋅j=1∑∣D∣a∈Tj∑⎝ ⎛a∈Tj∑logP(a∣xj)⎠ ⎞+β⋅j=1∑∣D∣a∈Tj∑logP(s∣a,xj)+γ⋅j=1∑∣D∣a∈Tj∑⎝ ⎛o∈Tj∣a∑logP(o∣a,xj)⎠ ⎞
从上式,我们可能得出结论三元组抽取任务可以转换为AE, SC, AOE的联合训练。
双-MRC结构
两个部分都使用 BERT作为它们的backbone来编码上下文信息。BERT 是一个基于多层双向 Transformer 的语言表示模型。令 n n n 表示句子长度, d d d 表示隐藏维度。
假设最后一层的输出为 h l , s , h r , s , h l , e , h r , e ∈ R ( n + 2 ) × d h^{l, s}, h^{r, s}, h^{l, e}, h^{r, e} \in\mathbb{R}^{(n+2) \times d} hl,s,hr,s,hl,e,hr,e∈R(n+2)×d,用来提取, l / r l/r l/r代表左/右, s / e s/e s/e代表start/end。
- 左侧
从给定的文本中提取所有的AT方面术语→完成AE任务。对于左边的部分,我们得到start/end位置的对数和概率。
g l , s = W l , s h l , s , p l , s = softmax ( g l , s ) g l , e = W l , e h l , e , p l , e = softmax ( g l , e ) \begin{array}{ll} g^{l, s}=W^{l, s} h^{l, s}, & p^{l, s}=\operatorname{softmax}\left(g^{l, s}\right) \\ g^{l, e}=W^{l, e} h^{l, e}, & p^{l, e}=\operatorname{softmax}\left(g^{l, e}\right) \end{array} gl,s=Wl,shl,s,gl,e=Wl,ehl,e,pl,s=softmax(gl,s)pl,e=softmax(gl,e)
loss:
J A E = − ∑ i y i l , s log ( p i l , s ) − ∑ i y i l , e log ( p i l , e ) \mathcal{J}_{A E}=-\sum_i y_i^{l, s} \log \left(p_i^{l, s}\right)-\sum_i y_i^{l, e} \log \left(p_i^{l, e}\right) JAE=−∑iyil,slog(pil,s)−∑iyil,elog(pil,e)
y l , s y^{l, s} yl,s和 y l , e y^{l, e} yl,e是AT方面术语的开始和结束位置的真值。
- 右侧
提取所有的OT观点术语和找到对应的具体AT的情感极性。
g r , s = W r , s h r , s , p r , s = softmax ( g r , s ) g r , e = W r , e h r , e , p r , e = softmax ( g r , e ) \begin{array}{ll} g^{r, s}=W^{r, s} h^{r, s}, & p^{r, s}=\operatorname{softmax}\left(g^{r, s}\right) \\ g^{r, e}=W^{r, e} h^{r, e}, & p^{r, e}=\operatorname{softmax}\left(g^{r, e}\right) \end{array} gr,s=Wr,shr,s,gr,e=Wr,ehr,e,pr,s=softmax(gr,s)pr,e=softmax(gr,e)
J A O E = − ∑ i y i r , s log ( p i r , s ) − ∑ i y i r , e log ( p i r , e ) \mathcal{J}_{A O E}=-\sum_i y_i^{r, s} \log \left(p_i^{r, s}\right)-\sum_i y_i^{r, e} \log \left(p_i^{r, e}\right) JAOE=−∑iyir,slog(pir,s)−∑iyir,elog(pir,e)q情感极性:
p c l s r = softmax ( W c l s r h c l s r + b c l s r ) p_{c l s}^r=\operatorname{softmax}\left(W_{c l s}^r h_{c l s}^r+b_{c l s}^r\right) pclsr=softmax(Wclsrhclsr+bclsr)
交叉熵loss: J S C = C E ( p c l s r , y c l s ) \mathcal{J}_{S C}=C E\left(p^r_{c ls}, y_{c l s}\right) JSC=CE(pclsr,ycls)
最小化联合训练loss:
J = α ⋅ J A E + β ⋅ J S C + γ ⋅ J A O E \mathcal{J}=\alpha \cdot \mathcal{J}_{A E}+\beta \cdot \mathcal{J}_{S C}+\gamma \cdot \mathcal{J}_{A O E} J=α⋅JAE+β⋅JSC+γ⋅JAOE
MRC数据集转换
在将原始三元组注释输入联合训练 dualMRC 模型之前,必须对其进行转换。两个 MRC 都使用输入句子作为它们的上下文。
左 MRC 的query:
q 1 q_1 q1 = “Find the aspect terms in the text.”
已知AT,右MRC的query:
q 2 ( A T ) q_2 (AT) q2(AT) = “Find the sentiment polarity and opinion terms for AT in the text.”
右侧 MRC 的输出是所有 OT 和给定 AT 的情感极性。一个重要的问题是,右侧 MRC 的数量等于 AT 的数量,因此,左侧 MRC 重复该次数。
推理过程
对于Triple,训练过程和推理过程之间的一些差异。
在训练过程中,已知所有AT(方面术语)的真值,然后可以根据这些AT构建右边的MRC。因此,训练过程是端到端的。然而,在推理过程中,AT是左侧MRC的输出。因此,我们以pipeline的方法推断两个MRC。