《A Unified Generative Framework for Aspect-Based Sentiment Analysis》论文阅读

本文探讨了如何利用BART模型解决情感分析中ASTE任务的错误累积问题,提出一种基于序列到序列的生成框架,有效处理嵌套实体和依赖关系,实现了端到端的三元组(aspect, opinion, sentiment)提取,取得最佳效果。

文章概述

  目前对于情感分析ASTE三元组任务(aspect, opinion, sentiment)的提取主要采用流水线(pipeline)的方式,但这显而易见会存在错误累积的问题。而在流水线方法当中采用序列标注的方式提取三元组的方法较为主流,但是却会存在高度集中的问题,即对于嵌套型实体无能无力且较难学习到方面-意见-情感之间存在的依赖关系,因此基于跨度的方法逐渐应用到ASTE任务当中。
  基于上述情况,该篇文章以BART模型为主要框架,通过一个序列到序列的文本生成任务实现端到端的三元组提取。

文章模型

问题定义

  作者使用a,o,s分别代替aspect term(方面术语)、opinion(意见词)、sentiment(情感),用上标s、e代表起始位置和结束位置(跨度),那么对于目标的生成的序列可以如下所示:
在这里插入图片描述
  可以发现,通过这种的问题定义,作者可以处理ASTE的任何子任务。

文章模型

在这里插入图片描述
  作者提出的模型如上图所示,以BART预训练模型为主干。在encoder阶段会输入句子的token embedding和position embedding,可以参考BERT模型输入来理解。不过这里作者为了能更好的保留其自身的特征,在得到last hidden以后还应用了残差连接。
  在译码阶段,会见encoder阶段的last hidden和t-1时刻的decoder的输出作为BARTdecoder的输入,并通过一个Index2Token的转化从而转换为token输入。具体的转换方式如下所示:
在这里插入图片描述

文章总结

  不同于之前的方法,作者通过一个序列到序列的统一的生成框架完成了ASTE三元组的提取,并且可以处理其中的任何一个子任务,并且在所有数据集当中取到了最好的结果。

附录

跨度为什么要比序列标注的好:https://zhuanlan.zhihu.com/p/147160125
beam search:https://zhuanlan.zhihu.com/p/82829880
Teacher forcing:https://www.cnblogs.com/dangui/p/14690919.html
文章地址:https://arxiv.org/abs/2106.04300v1

### Unified MPC Framework for Whole-Body Dynamic Locomotion and Manipulation 在机器人学中,整体身体动态运动和操作的统一模型预测控制(MPC)框架是一种先进的控制策略,用于同时优化移动机械手或仿人机器人的运动和操纵任务。这种框架通过将多个任务整合到一个统一的优化问题中,能够实现复杂的动态行为,例如跳跃、跑步、抓取和平衡等[^1]。 #### 1. 统一MPC框架的核心思想 统一MPC框架的核心思想是通过定义一组任务优先级和约束条件,将多个子任务(如末端执行器运动、力控制、碰撞避免和姿势稳定性)集成到一个单一的优化问题中。这种方法允许控制器在实时环境中高效地解决复杂的多目标优化问题,从而实现动态和敏捷的运动[^2]。 #### 2. MPC框架的数学描述 统一MPC框架通常基于以下优化问题: ```math \min_{u} \sum_{k=0}^{N} J(x_k, u_k) + J_f(x_N) ``` 其中: - \(x_k\) 表示系统状态; - \(u_k\) 表示控制输入; - \(J(x_k, u_k)\) 表示阶段成本函数; - \(J_f(x_N)\) 表示终端成本函数; - \(N\) 表示预测时域长度。 此外,框架还包括一系列约束条件,例如动力学约束、接触力限制和任务优先级约束[^3]。 #### 3. 实现细节与应用 为了实现高效的计算性能,统一MPC框架通常结合了以下技术: - **稀疏优化**:通过稀疏矩阵技术减少计算复杂度。 - **并行计算**:利用GPU加速训练过程,例如CoRL 2022中的legged-gym框架展示了这一点[^2]。 - **模块化运动技能**:通过预定义的运动技能库提高控制器的适应性。 #### 4. 优势与挑战 统一MPC框架的主要优势在于其能够处理复杂的多任务场景,并确保系统的稳定性和鲁棒性。然而,该方法也面临一些挑战,例如高计算需求和对精确模型的依赖。为了解决这些问题,研究者们正在探索基于学习的方法来增强传统MPC框架的性能[^2]。 ```python # 示例代码:简单的MPC优化问题 import numpy as np def mpc_optimization(x0, N, Q, R, A, B): # 初始化变量 x = [x0] u = [] # 迭代求解 for k in range(N): K = np.linalg.inv(R + B.T @ Q @ B) @ B.T @ Q @ A uk = -K @ x[-1] xk_next = A @ x[-1] + B @ uk x.append(xk_next) u.append(uk) return np.array(u), np.array(x) # 参数设置 x0 = np.array([1, 0]) N = 10 Q = np.eye(2) R = np.eye(1) A = np.array([[1, 1], [0, 1]]) B = np.array([[0], [1]]) # 调用优化函数 u, x = mpc_optimization(x0, N, Q, R, A, B) print("Control Inputs:", u) print("States:", x) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值