第一遍
标题以及作者
Joint Learning for Aspect Category Detection and Sentiment Analysis in Chinese Reviews
摘要
ACSA主要集中于方面词类别检测(Aspect category detection)和方面词情感极性识别(Aspect category polarity identify),以往的方法大多采用流水线的形式,分别实现两个子任务。本文采用一种端到端的联合学习方式完成ACSA,实验表明本文方法比基线模型更加简单有效。
结论
- 本文使用CNN结构学习字符级表示,并将其与预训练词向量结合,作为最终的词级别表示。
- 使用highway网络修改输入向量,使其更利于网络的训练。(残差结构?)
- 在词表示基础上,使用另一种CNN结构学习句子表示,使用平均池化和最大池化来获取最后的句子表示,该句子表示最终输入到表示不同类别的不同分类器中。
- 展望:利用句法树与词法特征捕捉方面词和情感词之间的关系,并与神经网络融合,进一步提高模型的性能。
1 介绍
- 当使用流水线策略时,模型的错误从上游任务转移到下游任务,导致错误的累加。
本文主要贡献:
- 本文的联合学习模型使用一个共享的编码层和一个独立层解决ACSA任务。编码层用来学习识别不同方面类别的共享的句子表示,独立层用来修正不同方面类别的共享句子表示。
- 本文模型在一个中文评论数据集上进行对比试验,本文模型优于使用复杂结构和大规模参数的基线模型,显示了本文模型的简单性和有效性。
2 相关工作
ACSA之前的工作主要可以分为两类:1. 基于特征的方法,通常使用手工特征,例如:n-gram和字典特征,然后为每个方面类别训练一系列one-vs-all分类器。 2. 基于神经网络的方法
第二遍
3 我们的模型
3.1 模型架构
下方的虚线框中参数是共享的,为了识别不同的方面类别而生成句子表示;上方的虚线框中参数是各自独立的,根据生成的相同的句子表示进行方面类别的情感极性分类。
3.2 字符级别表示和词级别表示
处理流程:
- 输入评论句子 S = w 1 , w 2 , . . . , w n S = {w_1, w_2, ...,w_n} S=w1,w2,...,wn,n表示句子单词个数
- 每个词可以被表达为一个稠密向量,但是有超过24%的词语OOV,其中一些词语是情感词;因此,本文采用CNN去学习字符级别表示来消除这种影响
- 模型框架如下:
框架详解:
-
本文将一个句子序列分解成字符序列,例如:“这个车性价比很高”,被划分为5个字符序列,字符序列是随机初始化的,字符序列最大长度为10,每个字符用向量 c i c_i ci 表示。
-
卷积操作是在不同的字符向量 c i c_i ci间进行,卷积公式如下:
z i = f ( W ⋅ c i : c i + k + b ) z_{i}=f\left(W \cdot c_{i}: c_{i+k}+b\right) zi=f(W⋅ci:ci+k+b) -
最大池化操作,在特征维度降维,生成一个字符序列向量。
3.3 Highway Network 和 句子级别表示
Note:Highway network表示网络中的信息没有任何阻碍的经过网络中的所有层。
highway block:
x
dense
=
tanh
(
W
1
x
+
b
1
)
x
gate
=
sigmoid
(
W
2
x
+
b
2
)
x
highway
=
x
dense
∗
x
gate
+
(
1
−
x
gate
)
∗
x
\begin{gathered} x_{\text {dense }}=\tanh \left(W_{1} x+b_{1}\right) \\ x_{\text {gate }}=\operatorname{sigmoid}\left(W_{2} x+b_{2}\right) \\ x_{\text {highway }}=x_{\text {dense }} * x_{\text {gate }}+\left(1-x_{\text {gate }}\right) * x \end{gathered}
xdense =tanh(W1x+b1)xgate =sigmoid(W2x+b2)xhighway =xdense ∗xgate +(1−xgate )∗x
在highway block顶部使用另一个CNN学习句子表示(本文认为方面词和观点词距离较近,使用卷积操作更加合适),卷积操作之后分别最大池化和平均池化,并将最后结果concatenate得到最终的句子级别表示
S
S
S。
3.4 联合学习
将得到的句子表示
S
S
S 分别送入不同的分类器中
S
∗
=
(
W
i
s
S
+
b
i
s
)
q
i
(
x
)
=
softmax
(
W
i
S
∗
S
∗
+
b
i
S
∗
)
\begin{gathered} S^{*}=\left(W_{i}^{s} S+b_{i}^{s}\right) \\ q_{i}(x)=\operatorname{softmax}\left(W_{i}^{S^{*}} S^{*}+b_{i}^{S^{*}}\right) \end{gathered}
S∗=(WisS+bis)qi(x)=softmax(WiS∗S∗+biS∗)
L
o
s
s
i
Loss_i
Lossi表示每个子任务的损失
Loss
i
=
−
∑
j
=
1
N
p
i
(
x
)
log
(
q
i
(
x
)
)
\operatorname{Loss}_{i}=-\sum_{j=1}^{N} p_{i}(x) \log \left(q_{i}(x)\right)
Lossi=−j=1∑Npi(x)log(qi(x))
总损失根据各损失加权得到,权值根据训练过程发生变化
Loss
=
∑
i
=
1
n
α
i
L
o
s
s
i
\operatorname{Loss}=\sum_{i=1}^{n} \alpha_iLoss_i
Loss=i=1∑nαiLossi
4 实验结果和分析
4.1 数据集
2018 CCF大数据与计算智能大赛
4.2 实验设置
4.3 评估指标
定义任务对:某个方面类别的ACD成功+ACSA成功
TP:完成评论中所有任务对
FP:任意任务对失败
FN:预测任务对数量少了
FP:预测任务对数量多了
P
=
T
p
T
p
+
F
p
,
R
=
T
p
T
p
+
F
n
,
F
1
=
2
P
R
P
+
R
P=\frac{T_{p}}{T_{p}+F_{p}}, R=\frac{T_{p}}{T_{p}+F_{n}}, F 1=\frac{2 P R}{P+R}
P=Tp+FpTp,R=Tp+FnTp,F1=P+R2PR
4.5 实验结果和分析
4.5.1 与基线模型结果比较
4.5.2 字符级别表示有效性
去除CNN-字符表示层,进行对比实验,实验表示加入字符表示结果在开发集上提升1.76%
4.5.3 词嵌入影响分析
第三遍
小结:
- 本文2019年的论文,本文首次提出了ACSA任务的联合学习模型,不仅使用了预训练模型生成的词向量,同时为了克服OOV问题,也使用了字符序列表示,融合词向量和字符序列表示生成句子表示,然后使用多任务学习的方法,根据相同的句子表示进行方面词类别抽取和方面词情感极性判断。
- 本文主要使用的网络结构有:CNN、最大池化、平均池化、Highway Network、以及一些正则化操作。