目录

  • 摘要
  • 介绍
  • 框架
    • 问题建模
    • OTE-MTL 框架
    • 句子编码
    • 方面和观点表示
    • 多任务框架
    • 三元组解码
  • 参考文献

观点三元组抽取的多任务框架

摘要

ABSA达到sota效果,主要在探测方面词和情感极性或者共同抽取方面和观点词。文章认为方面-情感对抽取缺乏情感词作为指导,而共同抽取方面词和观点词,如果不探测情感依赖,会导致无意义。
因此,作者将ABSA视为一个三元组抽取任务,提出一个多任务学习框架联合抽取方面词和观点词,同时使用biaffine记分器解析它们之间的情感依赖关系。推理阶段,一个基于上述输出的三元组编码方法有利于三元组抽取。在SemEval benchmarks上评估提出的框架,结果显示论文方法优于一系列基线和sota方法。

介绍

Peng et al. (2019) [1]^{[1]}[1]首先由通过两个序列标记器联合提取方面情感对和观点,其中情感通过统一的标记附加到方面,然后通过附加分类器将提取的方面情感和观点配对。
该方法有效,存在问题1.使用一组unified tags预测方面和情感,将情感依赖分析降级为二进制分类,尽管理论上优雅,但不足以建模方面和情感之间的交互。2.a-s的方式忽略了他们与意见交互作用的重要性,这种交互作用对于处理不同三元组模式共享某些元素的重叠情况很重要,在其他基于抽取的三元组任务中,例如关系抽取。
为了说明为什么三元组交互建模至关重要,我们将三元组分为三个类别,方面重叠,观点重叠和正常的。如图:

    观察得到,若两个三元组有相同的方面和意见,往往会有相同的情感。
因此,建立三元组交互有利于ABSA,然而不能用unified a-s标签进行探索,在这种情况下,情感被附加到方面,而没有考虑到重叠的情况。

为了规避上面的问题。作者提出一个三元组抽取多任务学习框架OTE-MTL,共同探测a,o,s(情感依赖)。一方面,a,o能够被抽取,用我们提出的多头结构中的两个独立的头。另一方面作者将方面抽取和情感预测分离。
    相反,他们应用一个情感依赖解析器作为第三个头, 预测词级别的情感依赖,其被用来进一步解码 span-level(方面、观点通常跨越句子中的几个词)依赖。用这种方法规避unified标签带来的问题。
    具体的,作者利用序列标记策略[2]^{[2]}[2]提取方面和观点,同时利用biaffine[3]^{[3]}[3]记分器,获得词级别情感依赖。另外,因为这些 task−heads\color{blue}{task-heads}task−heads是联合训练(jointlytrained)\color{blue}{(jointly trained)}(jointlytrained),方面和观点抽取的学习目标可以视为应用于情感依赖解析器的正则化。\color{red}{应用于情感依赖解析器的正则化。}应用于情感依赖解析器的正则化。
    这样解析器是通过方面和意见的约束来学习的,从而满足三元组交互建模的要求。直观的,如果有一个包含两个方面但只有一个观点的句子,我们可以从中识别出有重叠意见的三元组。

对ABSA的四个SemEval基准数据集进行了广泛的实验,与一系列先进的方法进行了比较。结果表明,总体框架和其中单个组件是有效的。案例研究表明我们的模型如何更好地处理重叠案例。

框架

问题建模

input sentence:S={wi}i=1∣S∣S={\lbrace w_i \rbrace}_{i=1}^{|S|}S={wi​}i=1∣S∣​
模型的目的是输出三元组集合:
    output: T={tj}j=1∣T∣T={\lbrace t_j\rbrace}_{j=1}^{|T|}T={tj​}j=1∣T∣​
∣S∣|S|∣S∣和 ∣T∣|T|∣T∣是句子长度,三元组集合长度。ti=[mj(ap),mj(op),mj(st)]t_i=[m_j^{(ap)},m_j^{(op)},m_j^{(st)}]ti​=[mj(ap)​,mj(op)​,mj(st)​]
开始位置:spspsp
结束位置:epepep
则:mj(ap)=(spj(ap),epj(ap))m_j^{(ap)}=(sp_j^{(ap)},ep_j^{(ap)})mj(ap)​=(spj(ap)​,epj(ap)​)     mj(op)=(spj(op),epj(op))m_j^{(op)}=(sp_j^{(op)},ep_j^{(op)})mj(op)​=(spj(op)​,epj(op)​)
问题被建模成:寻找一个FFF,准确映射T={tj∣tj=[(spj(ap),epj(ap)),(spj(op),epj(op)),mj(st)]}j=1∣T∣T={\lbrace t_j|t_j=[(sp_j^{(ap)},ep_j^{(ap)}),(sp_j^{(op)},ep_j^{(op)}),m_j^{(st)}]\rbrace}_{j=1}^{|T|}T={tj​∣tj​=[(spj(ap)​,epj(ap)​),(spj(op)​,epj(op)​),mj(st)​]}j=1∣T∣​

OTE-MTL 框架

OTE-MTL框架将任务划分为两个阶段:预测阶段和解码阶段

    预测阶段由神经模型参数化,因此是可训练的。它建立在基于单词嵌入的句子编码和双向LSTM结构的基础上,学习方面和观点的抽象表示。在抽象表示的支持下,有三个核心组件,包括三个子目标:aspect tagging, opinion tagging, and word-level sentiment dependency parsing
以上三个目标探测完后,采用编码阶段以以基于启发式的规则生成三元组。

句子编码

使用双向LSTM作为句子编码器,首先使用预训练的词嵌入将每个单词嵌入到一个低维的向量中E={ei∣ei∈Rde}i=1∣S∣E={\lbrace e_i |e_i\in R^{d_e}\rbrace}_{i=1}^{|S|}E={ei​∣ei​∈Rde​}i=1∣S∣​,使用双向LSTM获取上下文表示H={hi∣hi∈R2dh}i=1∣S∣H={\lbrace h_i|h_i\in R^{2d_h}\rbrace}_{i=1}^{|S|}H={hi​∣hi​∈R2dh​}i=1∣S∣​:
hi=[LSTM→(ei)⊕LSTM←(ei)]h_i=[\overrightarrow {LSTM}(e_i)\oplus \overleftarrow{LSTM}(e_i)]hi​=[LSTM(ei​)⊕LSTM(ei​)]
ded_ede​和dhd_hdh​是维度,⊕\oplus⊕是向量拼接。

方面和观点表示

从encoded hidden states 中抽取特定方面和观点,使用维度衰减线性层和非线性函数 而不是直接将hidden states 输入到下一个组件,两个原因,第一,隐藏状态可能包含用于后续计算的多余信息,可能导致过拟合。第二,这样的操作预计会去除与方面标记和观点标记无关的特性。
计算过程:
ri(ap)=g(Wr(ap)hi+br(ap))r_i^{(ap)}=g(W_r^{(ap)}h_i+b_r^{(ap)}) ri(ap)​=g(Wr(ap)​hi​+br(ap)​)
ri(op)=g(Wr(op)hi+br(op))r_i^{(op)}=g(W_r^{(op)}h_i+b_r^{(op)})ri(op)​=g(Wr(op)​hi​+br(op)​)
ri(ap)r_i^{(ap)}ri(ap)​和ri(op)r_i^{(op)}ri(op)​是方面和观点表示,g(.)g(.)g(.)是一个非线性函数RELU:max(.,0)。同样的从情感解析器中获取另外的集合表示ri(ap)′,ri(op)′∈Rdrr_i^{(ap)'},r_i^{(op)'}\in R^{d_r}ri(ap)′​,ri(op)′​∈Rdr​和上面的方程式相同的步骤,但是参数不同。

多任务框架

包含两部分:方面和观点标记,词级别情感依赖解析
方面和观点标记。{B,I,O}\lbrace B,I,O\rbrace{B,I,O}标记模式,用两个标记器标记每个单词,一个为aspect,一个为opinion,通过以下方法得到两个分布系列
pi(ap)=softmax(Wt(ap)ri(ap)+bi(ap))p_i^{(ap)}=softmax(W_t^{(ap)}r_i^{(ap)}+b_i^{(ap)})pi(ap)​=softmax(Wt(ap)​ri(ap)​+bi(ap)​)
pi(op)=softmax(Wt(op)ri(op)+bi(op))p_i^{(op)}=softmax(W_t^{(op)}r_i^{(op)}+b_i^{(op)})pi(op)​=softmax(Wt(op)​ri(op)​+bi(op)​)

推导出损失函数,典型的交叉熵与分类分布。
Ltag=−1∣S∣∑i∑kp^i,k(ap)log(p(i,k)(ap))−1∣S∣∑i∑kp^i,k(op)log(p(i,k)(op))L_{tag}=-\frac {1} {|S|}\sum_i\sum_k\hat p_{i,k}^{(ap)}log(p_{(i,k)}^{(ap)})-\frac {1} {|S|}\sum_i\sum_k\hat p_{i,k}^{(op)}log(p_{(i,k)}^{(op)})Ltag​=−∣S∣1​i∑​k∑​p^​i,k(ap)​log(p(i,k)(ap)​)−∣S∣1​i∑​k∑​p^​i,k(op)​log(p(i,k)(op)​)
带帽为真实标签分布,k是分类分布中每个项目的枚举数
词级别情感依赖解析
确定每个词对的依赖类型,依赖类型 定义有{NEU,NEG,POS,NO−DEP}\lbrace NEU,NEG,POS,NO-DEP\rbrace{NEU,NEG,POS,NO−DEP},情感依赖只考虑最后一个词 (start up speed,great, POS)只考虑(speed, great, POS)。以减少冗余。
使用biaffine记分器来捕捉单词对中,两个单词的相互作用。每个单词对的得分分配如下:
s~i,j,k=[W(k)ri(ap)′+b(k)]Trj(op)′=[W(k)ri(ap)′]Trj(op)′+b(k)Trj(op)′\tilde s_{i,j,k}=[W^{(k)}r_i^{(ap)'}+b^{(k)}]^Tr_j^{(op)'}=[W^{(k)}r_i^{(ap)'}]^Tr_j^{(op)'}+b^{(k)^T}r_j^{(op)'}s~i,j,k​=[W(k)ri(ap)′​+b(k)]Trj(op)′​=[W(k)ri(ap)′​]Trj(op)′​+b(k)Trj(op)′​
s~i,j,k\tilde s_{i,j,k}s~i,j,k​表示一个词对(wi,wj)(w_i,w_j)(wi​,wj​)第K个依赖类型的得分
使用si,js_{i,j}si,j​表示一个softmax标准化分数向量,其中包含单词对(wi,wj)所有依赖类型的概率
si,j,k=softmax(s~i,j,k)s_{i,j,k}=softmax(\tilde s_{i,j,k})si,j,k​=softmax(s~i,j,k​)

As observed from the factorization in Equation 7,conceptually thebiaffine scorer can not only model the likelihood of wi receiving wj as a dependent of a specific type (the first term), but also include the prior probability of wj being a dependent of such type (the second term). When it is implemented, the scorer is essentially an affine transform followed by matrix multiplication. 不懂

词级别的情感依赖解析损失函数时交叉熵损失函数
Ldep=−1∣S∣2∑(i,j)∑ks^(i,j,k)log(si,j,k)L_{dep}=-\frac {1} {|S|^2}\sum_{(i,j)}\sum_k\hat s_{(i,j,k)}log(s_{i,j,k})Ldep​=−∣S∣21​(i,j)∑​k∑​s^(i,j,k)​log(si,j,k​)
带帽表示真实分布
多任务学习框架的联合训练
min⁡θL=min⁡θLtag+αLdep+γ∣∣θ∣∣2\min_{\theta}L=\min_{\theta}L_{tag}+\alpha L_{dep} + \gamma ||\theta||_2θmin​L=θmin​Ltag​+αLdep​+γ∣∣θ∣∣2​
α\alphaα用于平衡标记和情感依赖分析之间的学习,θ\thetaθ代表可训练参数。∣∣θ∣∣2||\theta||_2∣∣θ∣∣2​和γ\gammaγ代表L2L_2L2​正则化项和控制项

三元组解码

在获得提取的方面、观点和单词级情感依赖后,使用启发式规则进行三元组解码。
    将biaffine记分器产生的情感依赖性视为枢轴,并对方面和观点标记器生成的标记执行逆序遍历
example:
句子:Great battery,start up speed
得到方面标记{O,B,O,B,I,I,O},观点标记:{B,O,O,O,O,O,O},情感依赖解析index:(6,1,POS),代表最后一个单词speed,Great,逆序遍历遵循top-on-non-I 准则。

参考文献

[1] Haiyun Peng, Lu Xu, Lidong Bing, Fei Huang, Wei Lu,and Luo Si. 2019.Knowing what, how and why:A near complete solution for aspectbased sentiment analysis. CoRR, abs/1911.01616. [2] Guillaume Lample, Miguel Ballesteros, Sandeep Subramanian, Kazuya Kawakami, and Chris Dyer. 2016.Neural architectures for named entity recognition.In Proceedings of NAACL-HLT, pages 260–270. [3] Timothy Dozat and Christopher D. Manning. 2017.Deep biaffine attention for neural dependency pars-ing. In 5th International Conference on Learning Representations, ICLR 2017, Toulon, France, April 24-26, 2017, Conference Track Proceedings.

A Multi-task Learning Framework for Opinion Triplet Extraction (EMNLP 2020)阅读记录相关推荐

  1. Multi task learning多任务学习背景简介

    2020-06-16 23:22:33 本篇文章将介绍在机器学习中效果比较好的一种模式,多任务学习(Multi task Learning,MTL).已经有一篇机器之心翻译的很好的博文介绍多任务学习了 ...

  2. 《Learning Span-Level Interactions for Aspect Sentiment Triplet Extraction》论文阅读

    文章目录 文章概述 文章模型 句子编码 方法模块 文章概述   目前针对于ASTE任务的处理方法大多是基于单词与单词之间的交互,导致了如果方面实体或者意见词包含多个token的时候表现不佳.因此这篇文 ...

  3. Multi Task Learning在工业界如何更胜一筹

    摘要: 本文主要介绍多任务学习和单任务学习的对比优势以及在工业界的一些使用.如何从单任务学习转变为多任务学习?怎样使AUC和预估的准确率达到最佳?如何对实时性要求较高的在线应用更加友好?本文将以淘宝实 ...

  4. Learning Span-Level Interactions for Aspect Sentiment Triplet Extraction 论文阅读 ACL2021

    目录 摘要 针对问题: 解决方法: 2 Span-based ASTE 2.1 Task Formulation 2.2 Model Architecture 2.2.1 Sentence Encod ...

  5. 多智能体强化学习Multi agent,多任务强化学习Multi task以及多智能体多任务强化学习Multi agent Multi task概述

    概述 在我之前的工作中,我自己总结了一些多智能体强化学习的算法和通俗的理解. 首先,关于题目中提到的这三个家伙,大家首先想到的就是强化学习的五件套: 状态:s 奖励:r 动作值:Q 状态值:V 策略: ...

  6. 【论】A Deep Reinforcement Learning Framework for Rebalancing Dockless Bike Sharing Systems

    A Deep Reinforcement Learning Framework for Rebalancing Dockless Bike Sharing Systems 摘要 自行车共享为旅行提供了 ...

  7. A Blockchain-Based Machine Learning Framework for Edge Services in IIoT 论文学习

    A Blockchain-Based Machine Learning Framework for Edge Services in IIoT IEEE TRANSACTIONS ON INDUSTR ...

  8. 2019 IET之ReID:HPILN: a feature learning framework for cross-modality person re-identification

    HPILN: a feature learning framework for cross-modality person re-identification 当前的问题及概述: 提出了一种新的特征学 ...

  9. multi task训练torch_采用single task模型蒸馏到Multi-Task Networks

    论文地址. 这篇论文主要研究利用各个single task model来分别作为teacher model,用knowledge distillation的方法指导一个multi task model ...

最新文章

  1. AI找Bug,一键快速预测
  2. 怎么判断程序运行的当前目录在哪?关键词:根目录
  3. React Native指南
  4. PHP闭包(Closure)初探(转载 http://my.oschina.net/melonol/blog/126694?p=2#comments)
  5. mysql把select结果存到变量中_mysql实例 select into保存到变量的例子
  6. java中实例化代码块_Java面向对象--代码块(初始化块)和内部类
  7. 【转载】斐讯K2P B1刷入金梅林固件,加koolproxy、S-S R等【V1.0尝鲜版】
  8. SwitchHost使用教程
  9. web漏洞扫描器原理_基于指纹识别的漏洞扫描设计
  10. Python 之 turtle 库
  11. msdia80.dll-重装系统后有使用64位win7操作系统的同学注意!
  12. matlab中提取公因子化简,利用MATLAB化简表达式或者多项式 | 望天博客
  13. Process-wide API spying - an ultimate hack 摘要翻译(一)
  14. 51单片机驱动ESP8266
  15. 2021年烟花爆竹生产单位安全生产管理人员免费试题及烟花爆竹生产单位安全生产管理人员考试总结
  16. 4路红外循迹模块使用教程
  17. ubuntu批量解压分卷文件
  18. 普林斯顿大学的计算机学课的作业
  19. 手把手教你炫酷慕课网视频启动导航的完美实现
  20. c语言创建文件存放,C语言文件操作

热门文章

  1. 云计算的认识和看法_浅谈对云计算的认识
  2. 从华为智慧生活APP的智能场景,谈到建成华为专属的智慧生活管理后台
  3. Java并发编程(一)——并发的基本概念
  4. 【Visual C++】游戏开发笔记三十七 浅墨DirectX提高班之五 顶点缓存的红颜知己 索引缓存的故事
  5. Pandas 报错 TypeError: ‘Series‘ objects are mutable, thus they cannot be hashed
  6. 如何从Gitlab上拉取代码
  7. 如何使用cpolar穿透内网访问监控摄像头
  8. 锐捷无线AC虚拟化配置-VAC
  9. 详谈Scrum和看板的区别
  10. 【selenium标签页操作】:关闭标签页