给定句子,定义三个AE、OE、SC的序列标注问题:
AE 目的是预测一个tag序列(和原始句子等长),其中 分别表示 begining of, inside of, outside of 一个aspect term。
OE 目的是预测一个tag序列(和原始句子等长),其中分别表示 begining of, inside of, outside of 一个opinion term。
SC 目的是预测一个tag序列(和原始句子等长),其中分别表示每个单词的极性。
左图是全框架,右图是一个RACL的具体结构
结构解析
1.输入部分是词嵌入经过一个全连接层得到
2.首先进行子任务私有特征的编码,得到面向三个子任务的特征、、
利用卷积得到AE-oriented features 和OE-oriented features ,考虑到的是这两个任务与词的临近词相关性很大。
为了得到SC-oriented features
首先从中利用CNN编码上下文特征,然后将共享向量视为query方面,并用注意力机制计算query和上下文特征之间的语义关系,得到(利用的是实现的表达)
3.Propagating Relations for Collaborative Learning
是AE和OE之间的双向关系,是OE向AE传递的部分,计算方法是和交互,利用表达。然后将交互部分同原来的面向AE的特征拼接在一起,经过一个线性层和softmax就可以得到任务AE的分类结果。同理得到任务OE的分类结果。
此外,一个单词不可以既是方面词又是情感词,因此加入了合页损失作为正则项来约束和
R2是SC和之间的三元关系。注意直接使用注意力权重来相加的,而不是在最后阶段。
R3是SC和OE之间的双向关系,这表明,在对情感极性进行预测时,需要对抽取出的观点术语多加关注。为了建模R3,采用和R2同样的方式,也就是对SC中的利用生成的 tag序列进行更新,如下:
这样的话情感词在注意力机制中可以得到更大的权重,从而有利于情感分类。
得到上述方式完成交互后的后,我们可以按照式子4重新计算面向SC任务的特征,然后我们将和拼接在一起作为最后的SC的特征,并将它们经过一个全连接层后去预测方面极性。
4.Stacking RACL to Multiple Layers以上是一个RACL模块的输出,本实验堆叠了多个模块。具体来说,我们首先编码第一层特征,,,在第二层将这些特征输入到SC,AE和OE去生成,,。以此类推可以将RACL堆叠到L层。最后将各层的最终预测结果进行平均池化的操作
这种shortcut-like的架构可以促进低层中的功能具有意义和信息量,反过来这也有助于高层做出更好的预测。
损失函数
最终RACL总的损失的 L 是所有子任务的损失之和加上正则项的损失,也就是,其中是系数,.
方法比较和Case分析
和不同的历史方法作比较:
关于本文提出的方法的简单变种的消融实验:
超参和的影响:
Case分析:
关于上面的可视化分析:
最后就是不同方法的计算量分析:
-
编码
+关注
关注
6文章
924浏览量
54726 -
函数
+关注
关注
3文章
4276浏览量
62303
原文标题:武汉大学提出:用于基于统一Aspect的情感分析的关系感知协作学习
文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论