Adapting BERT for Target-Oriented Multimodal Sentiment Classification
1、简介
面向目标的情感分类(Targetoriented Sentiment Classification,TSC)的目标是识别句子中每个观点的情感极性。然而这一任务现有的方法主要依赖文本,忽略了其他模态的数据(如图像),而其他模态的数据可以增强这些基于文本的模型的稳健性。基于这一观察,并受到BERT架构的启发,本文研究了面向目标的多模态情感分析(Target-oriented Multimodal Sentiment Classification,TMSC),并提出了一个多模态BERT架构。
面向目标的情感分类(TSC)是情感分析中的一项基本任务,其目的是检测句子中提到的单个观点目标的情感取向。例如,给定一句话“Georgina Hermitage is a #one2watch since she broke the 400m T37 WR.”,用户对“Georgina Hermitage”和“400m T37 WR”分别表达积极和中性的情绪。为了解决TSC问题,人们提出了很多的方法,然而之前的这些方法都有两个共同的局限性:
-
这些方法大多数都只是随机地初始化它们的模型参数,这就会导致只用一个小的、特定于任务的语料库来优化它们,从而导致次优解。随着最近在各种NLP任务中使用预训练模型参数的趋势,本文也希望能够使用这些良好的预训练模型捕捉每个词在不同语境中的语义和句法意义,进而导致TSC任务更好的解决方案。
-
现有的方法主要依赖文本内容,而没有考虑其他模态的数据(如图像),而这些数据可能会对文本内容进行潜在补充,并增强基于文本的模型。通过观察分析,相关的图像对TSC任务是有用的:
- 用户生成的句子往往集中在一个舆论目标上,而相关的图像往往会突出重点目标。例如图1.a中的Georgina Hermitage和图1.b中的Joe Arpaio。
- 由于句子的比较短和不规则,很难检测出对重点目标的情绪,但相关的图像可能有助于反应用户对重点目标的情绪。例如下图中,两个用户分别发布了Georgina Hermitage的愉快图像和Joe Arpaio的不愉快的图像,虽然在文本中没有体现愉快和不愉快相关的词,但是从用户发布的图像中可以看出它们所表达的情感。
- 对与剩下的那些目标,文本往往对它们表达了中性的情感,图像较少甚至不关注它们。
因此,探索如何构建观点目标和文本/视觉内容之间的对其关系,以建立模态内动态模型,然后融合文本和视觉表征,在面向目标的多模态情感分类(TMSC)的统一模型中其模态间的对其关系,将会是一件有意义的事情。
为了解决上述的局限性,本文在最近BERT模型的基础上建立了自己的模型。具体的说,首先将每个输入句子转换成两个句子的组合:个人观点目标和剩余的文本,并采用BERT模型获得目标敏感的文本特征。此外,受自注意机制的启发,进一步设计了目标注意机制,以学习观点目标和图像之间的对齐,其中目标被用作查询,以监督模型为图像中的不用区域分配适当的注意权重,从而生成目标敏感的图像特征。在模态内建模进行对齐后,又进一步在上面添加了一个自注意力层,以自动捕捉模态间的交互作用。将这种架构叫做面向目标的多模态BERT或简称为TomBERT。
![image-20220520155040913](https://i-blog.csdnimg.cn/blog_migrate/809f9db6a169a0726f453f0265447c90.png)
2、提出的方法
文本提出了两个对BERT的多模态扩展:mBERT和TomBERT。
这两个模型不同点在于处理图像和观点目标时有所不同。在获取目标敏感的文本特征时是相同的。
2.1、任务定义
得到一组多模态的样本 D D D。对于每个样本 c ∈ D c \in D c∈D,它包含一个 n n n个单词的句子 S ( w 1 , ⋯ , w n ) S(w_1,\cdots ,w_n) S(w1,⋯,wn)和一个相关图像 I I I,以及一个观点目标 T T T(其为 S S S的一个子序列)。对于观点目标 T T T,它与一个情感标签 y y y相关联。TMSC问题可以表述为:给定 D D D作为训练集,其目标是学习一个面向目标的情感分类器,使其能够正确预测未见过的样本中观点目标的情感标签。
2.2、获取目标敏感的文本特征
为了在TSC中采用BERT,将每个句子 S S S转换成两个子句子:观点目标 T T T和剩余的上下文 C C C,并将他们串联起来作为BERT的输入序列。例如下表所示:
![image-20220520164545983](https://i-blog.csdnimg.cn/blog_migrate/17103480ae912342606427508c33e12f.png)
BERT的输入可以是一个句子对。在本文中刚好
串联后的输入序列还需要经过位置嵌入处理,才能得到BERT编码器的输入内容 X = ( x 1 , x 2 , ⋯ , x N ) \mathbf{X}=(\mathbf{x}_1,\mathbf{x}_2,\cdots,\mathbf{x}_N) X=(x1,x2,⋯,xN),其中 N N N是序列的最大长度。然后处理好的输入内容输入到与训练好的BERT模型中生成目标敏感的文本特征。
下面介绍一下BERT模型,它本质上是一个双向Transformer编码器。为了捕捉全局信息,首先使用一个
m
m
m个头的自注意层,对于第
i
i
i个头的注意力计算,就是对输入
X
∈
R
d
×
N
\mathbf{X}\in \mathbb{R}^{d \times N}
X∈Rd×N计算缩放点击注意力:
ATT
i
(
X
)
=
softmax
(
[
W
Q
i
X
]
⊤
[
W
K
i
X
]
d
/
m
)
[
W
V
i
X
]
⊤
(1)
\operatorname{ATT}_{i}(\mathbf{X})=\operatorname{softmax}\left(\frac{\left[\mathbf{W}_{\mathbf{Q}_{i}} \mathbf{X}\right]^{\top}\left[\mathbf{W}_{\mathbf{K}_{i}} \mathbf{X}\right]}{\sqrt{d / m}}\right)\left[\mathbf{W}_{\mathbf{V}_{i}} \mathbf{X}\right]^{\top}\tag{1}
ATTi(X)=softmax(d/m[WQiX]⊤[WKiX])[WViX]⊤(1)
其中
{
W
Q
i
,
W
K
i
,
W
V
i
}
\{W_{Q_i},W_{K_i},W_{V_i}\}
{WQi,WKi,WVi}分别是对应于查询、键和值的可学习参数。 然后,将
m
m
m个注意力机制的输出连接在一起,然后进行如下的线性转换。
MATT
(
X
)
=
W
m
[
ATT
1
(
X
)
,
…
,
ATT
m
(
X
)
]
⊤
(2)
\operatorname{MATT}(\mathbf{X})=\mathbf{W}_{m}\left[\operatorname{ATT}_{1}(\mathbf{X}), \ldots, \operatorname{ATT}_{m}(\mathbf{X})\right]^{\top}\tag{2}
MATT(X)=Wm[ATT1(X),…,ATTm(X)]⊤(2)
其中
W
m
∈
R
d
×
d
W_m \in \mathbb{R}^{d \times d}
Wm∈Rd×d是可学习的参数。
对于子注意力层的输出之后,是一个从输入到输出的残差链接,然后是层归一化(LN),具体计算为:
Z
=
L
N
(
X
+
MATT
(
X
)
)
(3)
\mathbf{Z}=\mathbf{L N}(\mathbf{X}+\operatorname{MATT}(\mathbf{X}))\tag{3}
Z=LN(X+MATT(X))(3)
然后用一个以GeLU为激活函数的前馈神经网络和另一个具有层归一化的残差连接堆叠在上面,以产生第一个BERT层的输出:
B
T
(
X
)
=
L
N
(
X
+
MLP
(
Z
)
)
(4)
\mathrm{BT}(\mathbf{X})=\mathrm{LN}(\mathbf{X}+\operatorname{MLP}(\mathbf{Z}))\tag{4}
BT(X)=LN(X+MLP(Z))(4)
处理文本-目标的BERT模型是由
L
s
L_s
Ls个这样的BERT层堆叠而成。最终的目标敏感的文本特征为:
H
s
=
B
T
L
s
(
X
)
\mathbf{H_s}=BT_{L_s}(\mathbf{X})
Hs=BTLs(X)
2.3、多模态BERT(mBERT)
mBERT模型提出的将图像纳入BERT架构的一个解决方案是直接将图像特征与获取目标敏感的文本特征连接起来,然后再上面堆叠额外的BERT层来模拟视觉和文本之间的模态间互动。下图为mBERT 的框架图:
![image-20220520170909671](https://i-blog.csdnimg.cn/blog_migrate/551cd41cc7cdf2cd03ce1c6a6859e753.png)
对于相关的图像
I
I
I,首相将其调整为224×224像素大小,然后将其分割成7×7=49个区域,然后采用图像识别模型ResNet-152来获得最后一个卷积层的输出,这样就将每个区域由2048维矢量
r
j
r_j
rj表示:
ResNet
(
I
)
=
{
r
j
∣
r
j
∈
R
2048
,
j
=
1
,
2
,
…
,
49
}
(5)
\operatorname{ResNet}(\mathbf{I})=\left\{\mathbf{r}_{j} \mid \mathbf{r}_{j} \in \mathbb{R}^{2048}, j=1,2, \ldots, 49\right\}\tag{5}
ResNet(I)={rj∣rj∈R2048,j=1,2,…,49}(5)
接下来,用一个线性转换函数将视觉特征投射到与文本特征相同的维度:
G
=
W
v
R
e
s
N
e
t
(
I
)
\mathbf{G}=\mathbf{W}_v \mathbf{ResNet}(\mathbf{I})
G=WvResNet(I)
其中
W
v
∈
R
d
×
2048
\mathbf{W}_v \in \mathbb{R}^{d \times 2048}
Wv∈Rd×2048是可学习参数。
将图像特征
G
∈
R
d
×
49
\mathbf{G}\in \mathbb{R}^{d\times 49}
G∈Rd×49和文本特征
H
S
∈
R
d
×
N
\mathbf{H}_{\mathbf{S}} \in \mathbb{R}^{d \times N}
HS∈Rd×N串联在一起将其送入多模态编码器,该编码器为另一组BERT层,以学习文本和视觉特征之间互动关系:
ME
(
G
,
H
S
)
=
B
T
L
m
(
[
G
,
H
S
]
)
(6)
\operatorname{ME}\left(\mathbf{G}, \mathbf{H}_{\mathbf{S}}\right)=\mathrm{BT}_{L_{m}}\left(\left[\mathbf{G}, \mathbf{H}_{\mathbf{S}}\right]\right)\tag{6}
ME(G,HS)=BTLm([G,HS])(6)
其中
L
m
L_m
Lm是多模态编码器的层数。 使用[CLS]标记的最终隐藏状态用于分类。(也就是编码器的第一个时间步的输出用于分类)
3.4、面向目标的多模态BERT(TomBERT)
尽管mBERT模型能够很好的捕捉到模态间的动态,但是该模型中视觉表示对目标观点不敏感,因为无论给它考虑的目标是什么,同一输入句子的视觉特征总是相同的。因此又提出了TomBERT,模型结构如下:
![image-20220520173750449](https://i-blog.csdnimg.cn/blog_migrate/637d5f209304f3af9a437d0b011e5ca1.png)
TomBERT中设计了一个目标-图像(TI)匹配层,其采用一个
m
m
m个头的目标注意机制来进行目标和图像之间的匹配,以获得一个目标敏感的视觉表征。首先使用一个BERT编码器得到观点目标的隐藏特征表示:
H
T
=
B
T
L
c
(
T
)
\mathbf{H_T}=\mathbf{BT}_{L_c}(\mathbf{T})
HT=BTLc(T)
其中
T
∈
R
d
×
M
\mathbf{T} \in \mathbb{R}^{d \times M}
T∈Rd×M,
d
d
d和
M
M
M分别是目标隐藏特征和目标的长度,
L
c
L_c
Lc为层数。
然后将目标的隐藏状态当作查询,把图像特征$\mathbf{G}
当
作
键
和
值
。
这
样
目
标
被
利
用
起
来
引
导
模
型
对
与
目
标
密
切
相
关
额
图
像
区
域
基
于
较
高
的
权
重
。
第
当作键和值。这样目标被利用起来引导模型对与目标密切相关额图像区域基于较高的权重。第
当作键和值。这样目标被利用起来引导模型对与目标密切相关额图像区域基于较高的权重。第i$个头的目标注意力计算如下:
ATT
i
(
G
,
H
T
)
=
softmax
(
[
W
Q
i
′
′
H
T
]
⊤
[
W
K
i
′
G
]
d
/
m
)
[
W
V
i
′
G
]
⊤
(7)
\operatorname{ATT}_{i}\left(\mathbf{G}, \mathbf{H}_{\mathbf{T}}\right)=\operatorname{softmax}\left(\frac{\left[\mathbf{W}_{\mathbf{Q}_{i}^{\prime}}^{\prime} \mathbf{H}_{\mathbf{T}}\right]^{\top}\left[\mathbf{W}_{\left.\mathbf{K}_{i}^{\prime} \mathbf{G}\right]}\right.}{\sqrt{d / m}}\right)\left[\mathbf{W}_{\mathbf{V}_{i}^{\prime}} \mathbf{G}\right]^{\top}\tag{7}
ATTi(G,HT)=softmax⎝⎜⎛d/m[WQi′′HT]⊤[WKi′G]⎠⎟⎞[WVi′G]⊤(7)
其中
{
W
Q
i
′
,
W
K
i
′
,
W
V
i
′
}
\{\mathbf{W_{_{Q_i}}^{\prime}},\mathbf{W_{_{K_i}}^{\prime}},\mathbf{W_{_{V_i}}^{\prime}}\}
{WQi′,WKi′,WVi′}是参数。与BERT类似,我们采用前馈网络和两层层归一化的残差连接来获得目标敏感的视觉特征输出。
TI
(
G
,
T
)
=
LN
(
H
T
+
MLP
(
L
N
(
H
T
+
MATT
(
G
,
H
T
)
)
)
)
(8)
\operatorname{TI}(\mathbf{G}, \mathbf{T})=\operatorname{LN}\left(\mathbf{H}_{\mathbf{T}}+\operatorname{MLP}\left(\mathrm{LN}\left(\mathbf{H}_{\mathbf{T}}+\operatorname{MATT}\left(\mathbf{G}, \mathbf{H}_{\mathbf{T}}\right)\right)\right)\right)\tag{8}
TI(G,T)=LN(HT+MLP(LN(HT+MATT(G,HT))))(8)
然后我们将
L
t
L_t
Lt个这样的TI匹配层堆叠起来,得到最终的视觉表示:
H
V
=
T
I
L
t
(
G
,
T
)
\mathbf{H_V}=TI_{L_t}(\mathbf{G,T})
HV=TILt(G,T)
其中
H
V
∈
R
d
×
M
\mathbf{H_V}\in \mathbb{R}^{d\times M}
HV∈Rd×M。
接下来,为了形成多模态输入表征,我们考虑以下两种串联类型:
- All-Text:直接串联 H V \mathbf{H_V} HV和 H S \mathbf{H_S} HS。
- First-Text: 只考虑 H V \mathbf{H_V} HV中第一个元素的最终状态(即[CLS]标记的最后一层的隐藏状态),并将 H V 0 \mathbf{H_V}^0 HV0与 H S \mathbf{H_S} HS连接起来。
与mBERT类似,我们进一步在上面添加一个多模态编码器,以获得最终的多模态隐藏表征:
H
=
ME
(
H
V
,
H
S
)
or
H
=
ME
(
H
V
0
,
H
S
)
(9)
\mathbf{H}=\operatorname{ME}\left(\mathbf{H}_{\mathbf{V}}, \mathbf{H}_{\mathbf{S}}\right) \quad \text { or } \quad \mathbf{H}=\operatorname{ME}\left(\mathbf{H}_{\mathbf{V}}^{0}, \mathbf{H}_{\mathbf{S}}\right)\tag{9}
H=ME(HV,HS) or H=ME(HV0,HS)(9)
为了整合视觉和文本表征进行最终分类,考虑了以下三种集合类型以获得最终输出:
- FIRST:多模态序列的第一个元素。它的要拿出那个状态被认为是视觉表征为查询的多模态序列表征的总和,因此可以可以被取出来作为输出: O = H 0 \mathbf{O=H^0} O=H0。
- CLS:句子输出中的[CLS]标记的最终隐藏状态是以文本表示作为查询的多模态序列表征综合,也可以作为输出: O = H [ C L S ] \mathbf{O}=\mathbf{H}^{[CLS]} O=H[CLS]
- BOTH:将两个隐藏状态连接起来作为混合输出: O = [ H 0 , H [ C L S ] ] \mathbf{O}=[\mathbf{H}^0,\mathbf{H}^{[CLS]}] O=[H0,H[CLS]]
FIRST就是多模态隐藏表征中视觉表征的第一个元素,CLS则是文本表征对应的第一个元素(也可以说是第一个时间步),BOTH就是将这两个拼接在一起。
最后,我们将
O
O
O送入一个线性函数,然后再送入一个softmax函数,用于面向目标的情感分类。
p
(
y
∣
O
)
=
softmax
(
W
⊤
O
)
(10)
p(y \mid \mathbf{O})=\operatorname{softmax}\left(\mathbf{W}^{\top} \mathbf{O}\right)\tag{10}
p(y∣O)=softmax(W⊤O)(10)
其中
W
∈
R
(
2
)
d
×
3
\mathbf{W}\in \mathbb{R}^{(2)d \times 3}
W∈R(2)d×3是可学习参数。为了优化我们TomBERT模型中的所有参数,目标是最小化标准交叉熵损失函数,如下所示:
J
=
−
1
∣
D
∣
∑
j
=
1
∣
D
∣
log
p
(
y
(
j
)
∣
O
(
j
)
)
(11)
\mathcal{J}=-\frac{1}{|D|} \sum_{j=1}^{|D|} \log p\left(y^{(j)} \mid \mathbf{O}^{(j)}\right)\tag{11}
J=−∣D∣1j=1∑∣D∣logp(y(j)∣O(j))(11)
3、实验
3.1、数据集
TSC任务的两三个基准数据集为LAPTOP、REST和TWITTER-14;TMSC任务的两个多模态数据集TWITTER-15和TWITTER-17。LAPTOP和REST分别由笔记本电脑和餐厅领域的亚马逊客户评论组成,三个TWITTER数据集分别包括2010-2014年、2014-2015年和2016-2017年期间发布的用户推特。
两个公开的多模态数据集TWITTER-15和TWITTER-17只提供了每条推文中的注释目标(即实体),我们请三位领域专家对每个目标的情绪进行注释,并将三位注释者中的多数标签作为黄金标签。TWITTER-15和TWITTER-17的基本统计数据如下:
3.2、结果
微调的BERT对TSC任务的影响:
![image-20220520200713966](https://i-blog.csdnimg.cn/blog_migrate/6a8707ff5a0ce09907034a586f6bb5bc.png)
mBERT和TomBERT在TMSC任务上的结果:
![image-20220520200953676](https://i-blog.csdnimg.cn/blog_migrate/aa5749c49709e30e58561a75ced31196.png)