在线对话状态跟踪的深度强化学习
1 引言
对话管理系统包括对话状态跟踪(DST)和对话策略,传统的对话管理系统是纯统计的。近年来,有研究提出了端到端的对话管理系统,它通过强化学习方法直接连接对话状态跟踪模块和对话决策策略模块。然而,这种端到端的方法在实际对话系统中存在诸多问题,其灵活性和可扩展性不如模块化对话系统。
2 在线DST的交互方法
判别式机器学习方法是目前DST的先进技术,但存在一些局限性:
1. 它们是监督学习(SL)方法,需要大量的离线数据标注,这不仅成本高,而且对于在线学习不可行。
2. 在有限的标注数据下,SL方法容易出现过调,导致泛化能力差。
3. 基于SL的DST方法独立于对话策略,DST模块无法动态适应用户习惯,限制了DST模块的在线更新。
为解决这些问题,提出了一种通过在线交互进行DST优化的深度强化学习(DRL)框架。强化学习长期以来用于更新任务导向对话系统中的对话策略模块,但除了少数DST和策略的联合学习模型外,很少专门用于DST模块。在此框架下,将DST视为一个代理(跟踪代理),对话系统的其他部分视为环境,这是首次专门将强化学习框架用于在线DST优化。
跟踪代理做出的决策(信念状态)是连续的,因此将DST视为一个连续控制问题,类似于机器人控制。虽然有一些先进算法可处理连续控制问题,如DDPG算法,但由于连续信念状态是连续且高维的,直接应用现有RL算法效果不佳。为此,借鉴同伴教学的思想构建了一种新的RL框架用于DST,使用一个训练良好的辅助跟踪器(如离线训练的传统跟踪器)作为教师,引导实际DST代理(学生)的优化过程,避免过调,实现稳健快速收敛。
同伴教学RL - DST框架中,辅助DST模型产生的辅助信念状态为$b_a$,跟踪代理产生的探索信念状态为$b_e$,$b_a$和$b_e$的差异将被输入到奖励信号中,显著减少跟踪代理的搜索空间。与也支持在线更新的端到端对话系统相比,RL - DST框架的模块化结构允许使用更灵活、可解释的对话管理模型,且由于使用了教师DST模型,跟踪代理的优化过程需要的对话数据少,训练更稳健。
3 输入和输出
为避免与策略代理的概念混淆,将跟踪代理的输入和输出分别替换为状态和动作。这里只考虑语义级对话管理器,输入是每个槽位的语义特征,从系统动作、口语理解(SLU)输出和上一轮对话的上下文提取;输出是当前轮对应槽位的信念状态。与策略代理的系统动作不同,跟踪代理的输出(信念状态)是连续的。用$s$表示跟踪代理的输入,$b_e$表示输出。
4 跟踪策略
跟踪策略是$s$和$b_e$之间的映射函数,旨在最大化预期累积奖励。由于跟踪代理的搜索空间是连续的,使用确定性强化学习算法(如DDPG算法)来优化跟踪策略,类似于机器人控制问题。
5 奖励信号
对话系统的奖励通常定义为轮次惩罚和成功奖励的组合,策略代理可以通过这两个奖励信号有效优化。但对于跟踪代理,由于连续输出导致搜索空间大,这两个信号不足以实现快速稳健收敛。因此,设计了另一个基本分数奖励信号来约束跟踪代理的搜索空间。跟踪代理的总体奖励由三种信号组成:
1.
轮次惩罚($r_{tp}$)
:是一个负常数,用于惩罚长对话,假设短对话更好。
2.
成功奖励($r_{sr}$)
:是整个对话在最后一轮的延迟奖励。当用户与机器的对话结束时,用户给出评估值来判断对话系统的性能。如果整个对话未达到用户目标,成功奖励为零;否则为正常数。
3.
基本分数($r_{bs}$)
:用于减少跟踪代理的搜索空间。使用辅助DST,用辅助信念状态$b_a$引导跟踪代理的探索。如果探索信念状态$b_e$远离辅助信念状态,将给予惩罚,公式为$r_{bs} = -α||b_e - b_a||^2$,其中$|| · ||^2$是L2距离,$α ≥ 0$是信任因子,$α$越大,跟踪代理的性能越接近辅助DST模型。
在对话中间,探索信念状态的即时奖励是$r_{tp} + r_{bs}$,最后一轮的即时奖励是$r_{sr}$。
6 实现细节
6.1 对话任务
在餐厅/旅游领域的任务导向对话系统(DSTC2/3)中评估该框架,这些系统是基于槽位的对话系统,有三种槽位类型:目标约束、请求槽位和搜索方法。不同类型的槽位对对话性能有不同影响,因此使用多个跟踪代理(每种类型一个)来表示对话跟踪策略,最终的总体输出是所有代理输出的拼接。
6.2 辅助多项式跟踪器
使用多项式跟踪器作为辅助DST,即受限马尔可夫贝叶斯多项式(CMBP),它是一种结合数据驱动和基于规则模型的混合模型,参数少,泛化能力好。CMBP中,当前轮的信念状态依赖于当前轮的观察和上一轮的信念状态,一般形式为:
$b_{t + 1}(v) = P(P^+
{t + 1}(v), P^-
{t + 1}(v), \tilde{P}^+
{t + 1}(v), \tilde{P}^-
{t + 1}(v), b^r_t, b_t(v))$,满足一定约束条件。
其中,$P(·)$是多项式函数,$b_{t + 1}(v)$表示特定槽位在第$(t + 1)$轮取$v$值的概率,约束条件包括概率约束、直觉约束和正则化约束。每个$v$有六个概率特征:
- $P^+
{t + 1}(v)$:第$t + 1$轮中告知或肯定$v$值的SLU假设得分之和。
- $P^-
{t + 1}(v)$:第$t + 1$轮中否定或拒绝$v$值的SLU假设得分之和。
- $\tilde{P}^+
{t + 1}(v) = \sum
{v’ \notin {v, None}} P^+
{t + 1}(v’)$
- $\tilde{P}^-
{t + 1}(v) = \sum_{v’ \notin {v, None}} P^-_{t + 1}(v’)$
- $b^r_t$:第$t$轮值为“None”(未提及的值)的概率。
- $b_t(v)$:第$t$轮值为$v$的信念。
多项式阶数为3,多项式$P(·)$的系数通过离线预收集的训练数据优化。DSTC2/3中的每种槽位类型(目标、请求、方法)都有自己的多项式模型,分别用$P_g(·)$、$P_r(·)$和$P_m(·)$表示,同一槽位类型内不同槽位 - 值对的信念状态由相同的多项式更新。
6.3 跟踪代理
DSTC2/3中的三种槽位类型(目标、请求、方法)相互不影响,因此将DST跟踪代理分解为三个独立的跟踪代理($TA_G$、$TA_R$和$TA_M$)。这些跟踪代理具有独立的RL组件,形式为深度神经网络。每个跟踪代理的输入($s_g$、$s_r$和$s_m$)与多项式跟踪器的输入一致,每个槽位由六个概率特征表示;输出($b_{eg}$、$b_{er}$和$b_{em}$)是下一轮对应槽位的信念状态。采用深度确定性策略梯度(DDPG)算法优化这三个跟踪代理,框架的灵活性在于可以优化DST模块的部分组件,其他部分的信念状态仍可由辅助多项式DST产生,还能找出DST模块中对对话性能影响较大的部分。
6.4 DDPG用于跟踪策略
为优化具有连续高维输出空间的三个跟踪代理,使用DDPG算法,它是一种基于确定性策略梯度的无模型演员 - 评论家算法,可在连续动作空间上操作。该算法结合了演员 - 评论家方法和DQN算法的思想,有经验回放缓冲区并采用软更新策略。
在三个代理的训练过程中,每个跟踪代理有一个经验记忆,数据格式为$(s_t, b_{e_t}, r_t, s_{t + 1})$,其中$s_t$是槽位特征向量,$b_{e_t}$是对应槽位的探索信念状态,即时奖励$r_t$由每一轮的奖励函数$R(s_t, b_{e_t}, b_{a_t})$产生。
DDPG算法使用确定性策略梯度(DPG)方法更新深度神经网络,有两个函数:
1. 演员策略函数$\pi(s_t|\theta)$将输入确定性地映射到输出。
2. 评论家函数$Q(s_t, b_{e_t}|\beta)$使用贝尔曼方程学习,旨在最小化损失函数:
$L(\beta) = E_{s_t, b_{e_t}, r_t}[(Q(s_t, b_{e_t}|\beta) - y_t)^2]$,其中$y_t = r_t + \lambda Q(s_{t + 1}, \pi(s_{t + 1}|\beta)), r_t)$,$r_t$是第$t$轮的即时奖励,$\lambda \in [0, 1]$是折扣因子。
演员策略的目标是最大化从起始状态开始的累积折扣奖励,性能目标为$J(\pi) = E[\sum_{t = 1}^{T} \gamma^{t - 1}r_t|\pi]$,演员策略梯度为:
$\nabla_{\theta}J \approx E_{s_t}[\nabla_{b_e}Q(s, b_e|\beta)|
{s = s_t, b_e = \pi(s_t)}\nabla
{\theta}\pi(s|\theta)|_{s = s_t}]$
7 联合训练过程
在跟踪代理的学习过程中,对话策略固定,跟踪器不断变化。由于DST是对话策略代理环境的一部分,当跟踪代理优化时,对话策略代理的环境也会改变,因此可以进一步优化对话策略以提高对话系统性能,即DST和策略的联合训练。联合训练过程包括四个阶段:
1.
对话策略代理的预训练
:将多项式方法作为系统的跟踪器,使用DQN算法更新对话策略$N_1$个回合。
2.
跟踪代理的预训练
:通过最小化与多项式跟踪器输出的均方误差,更新跟踪代理的演员$N_2$个回合。
3.
跟踪代理的训练
:将多跟踪代理作为系统的跟踪器,通过最小化方程(2)更新多跟踪代理的评论家,通过方程(3)更新演员$N_3$个回合。
4.
对话策略代理的训练
:使用DQN算法更新对话策略$N_4$个回合。
联合训练的具体步骤如下表所示:
| 阶段 | 操作 |
| ---- | ---- |
| 对话策略代理预训练 | 1. 初始化对话策略$Q(\varphi)$,跟踪代理$TA_G$的$Q(\beta_g)$、$\pi(\theta_g)$,$TA_R$的$Q(\beta_r)$、$\pi(\theta_r)$,$TA_M$的$Q(\beta_m)$、$\pi(\theta_m)$;2. 设置多项式方法为跟踪器;3. 循环$N_1$个回合,使用DQN算法更新对话策略 |
| 跟踪代理预训练 | 循环$N_2$个回合,通过最小化与多项式跟踪器输出的均方误差更新跟踪代理的演员 |
| 跟踪代理训练 | 1. 设置多跟踪代理为跟踪器;2. 循环$N_3$个回合,通过最小化方程(2)更新多跟踪代理的评论家,通过方程(3)更新演员 |
| 对话策略代理训练 | 循环$N_4$个回合,使用DQN算法更新对话策略 |
8 实验
8.1 实验目标
- 验证优化后的在线DST的口语对话系统(SDS)的性能。
- 验证联合训练DST和对话策略的对话系统的性能。
8.2 数据集
在DSTC2/3的领域评估该框架。DSTC2中有8个可请求槽位和4个可告知槽位,DSTC3中有12个可请求槽位和8个可告知槽位,DSTC3的任务更复杂,语义错误率也更高。基于DSTC2/3的数据集,实现了一个基于议程的用户模拟器和错误模型,以模拟人类用户的行为和输入模块的错误。
8.3 实验系统
比较了六个具有不同DST模型的口语对话系统:
1.
Polynomial
:基线系统,使用多项式DST,对应的策略代理是每层128个节点的两层DQN网络。
2.
TA_G
:只估计目标约束的信念状态,其他两部分信念状态由多项式跟踪器产生。
3.
TA_R
:只估计请求槽位的信念状态,其他两部分信念状态由多项式跟踪器产生。
4.
TA_M
:只估计搜索方法的信念状态,其他两部分信念状态由多项式跟踪器产生。
5.
TA_ALL
:整个信念状态直接由上述三个跟踪代理产生。
6.
TA_noteaching
:类似于$TA_ALL$,但不使用基本分数奖励信号,相当于直接在线训练一个神经网络DST跟踪器。
传统基于监督学习的DST方法使用准确率或L2范数等指标进行评估,但在线DST优化不需要语义标注,目标是提高对话性能。因此,使用对话性能指标(平均长度和成功率)评估在线DST性能。奖励方面,每轮轮次惩罚为 - 0.05,对话成功奖励为1,两者之和用于评估,奖励范围在0到1之间。$TA_G$、$TA_R$和$TA_M$跟踪代理的基本分数信任因子在DSTC2中分别为0.2、0.2、4,在DSTC3中分别为0.07、0.07、4。每个设置记录窗口大小为1000的移动奖励和对话成功率,最终结果是25次运行的平均值。
8.4 DRL - 基于DST的评估
评估了五个不同在线DST模型($TA_G$、$TA_R$、$TA_M$、$TA_ALL$和$TA_noteaching$)的系统性能。这五个系统的对话策略代理使用相同的多项式跟踪器,通过DQN算法优化$N_1$(DSTC2/3中分别为10000/20000)个回合。然后开始训练跟踪代理,在前$N_2$(DSTC2/3中均为1000)个回合,使用均方误差(MSE)对所有跟踪代理的DDPG演员部分进行预训练,预训练后,使用DDPG算法对跟踪代理优化$N_3$(DSTC2/3中分别为19000/29000)个回合。多项式SDS中的对话策略代理优化$N_1 + N_2 + N_3$个回合。
不同DST模型在DSTC2和DSTC3中的性能如下表所示:
| DSTC2 | 成功率 | 轮数 | 奖励 |
| ---- | ---- | ---- | ---- |
| Polynomial | 0.769 | 5.013 | 0.519 ± 0.016 |
| TA_ALL | 0.775 | 4.474 | 0.551 ± 0.018 |
| TA_G | 0.767 | 4.375 | 0.548 ± 0.020 |
| TA_R | 0.763 | 5.057 | 0.510 ± 0.022 |
| TA_M | 0.765 | 5.121 | 0.509 ± 0.018 |
| TA_noteaching | - | - | - |
| DSTC3 | 成功率 | 轮数 | 奖励 |
|---|---|---|---|
| Polynomial | 0.744 | 6.566 | 0.415 ± 0.077 |
| TA_ALL | 0.713 | 4.117 | 0.507 ± 0.083 |
| TA_G | 0.719 | 4.290 | 0.505 ± 0.075 |
| TA_R | 0.701 | 6.438 | 0.379 ± 0.028 |
| TA_M | 0.731 | 6.540 | 0.404 ± 0.021 |
| TA_noteaching | - | - | - |
从实验结果可以看出,不同的DST模型在成功率、轮数和奖励方面表现不同。例如,在DSTC2中,$TA_ALL$的成功率略高于$Polynomial$,轮数更少,奖励更高;而$TA_noteaching$系统崩溃。在DSTC3中也有类似的情况。这表明所提出的联合训练框架和不同的跟踪代理设置对对话系统的性能有不同的影响,进一步说明了该研究对于优化在线DST和提高对话系统性能的重要性。
综上所述,通过深度强化学习框架进行在线DST优化,结合联合训练的方法,能够在一定程度上提高对话系统的性能,为对话系统的发展提供了新的思路和方法。未来可以进一步研究如何更好地平衡不同跟踪代理的作用,以及如何在更复杂的对话场景中应用该框架。
9 实验结果分析
9.1 不同模型性能对比
从实验数据来看,不同的DST模型在DSTC2和DSTC3数据集上呈现出不同的性能表现。在DSTC2中,TA_ALL模型在成功率、轮数和奖励方面都有较好的表现,成功率达到0.775,轮数为4.474,奖励为0.551 ± 0.018,相比基线系统Polynomial有一定的提升。而TA_noteaching模型则崩溃,无法正常运行,这可能是由于缺少基本分数奖励信号,导致搜索空间过大,模型难以收敛。
在DSTC3中,虽然TA_ALL的成功率略低于Polynomial,但轮数大幅减少,奖励也有所提高,说明该模型在提高对话效率方面有一定的优势。TA_G、TA_R和TA_M模型在不同的指标上也有各自的表现,这表明不同类型的跟踪代理对对话性能的影响不同。
9.2 联合训练的效果
联合训练过程包括对话策略代理的预训练、跟踪代理的预训练、跟踪代理的训练和对话策略代理的训练四个阶段。通过这种联合训练的方式,可以充分利用不同模块之间的相互作用,提高对话系统的整体性能。从实验结果来看,经过联合训练的系统在对话成功率和奖励方面都有一定的提升,说明联合训练是一种有效的优化方法。
9.3 信任因子的影响
基本分数奖励信号中的信任因子α对跟踪代理的性能有重要影响。α越大,跟踪代理的性能越接近辅助DST模型。在实验中,不同的跟踪代理(TA_G、TA_R和TA_M)设置了不同的信任因子,这是为了根据不同槽位类型的特点进行调整。例如,在DSTC2中,TA_M的信任因子为4,可能是因为搜索方法槽位对对话性能的影响较大,需要更严格地约束跟踪代理的搜索空间。
10 总结与展望
10.1 研究成果总结
本文提出了一种基于深度强化学习的在线对话状态跟踪(DST)优化框架,通过同伴教学的思想构建了新的RL框架,解决了传统监督学习方法在在线DST中的局限性。具体成果如下:
1.
解决传统方法局限性
:传统的判别式机器学习方法在DST中存在数据标注成本高、过调、无法动态适应用户习惯等问题,本文的方法通过强化学习实现了DST模块的在线更新。
2.
构建新的RL框架
:借鉴同伴教学思想,使用辅助DST模型引导跟踪代理的优化过程,减少了搜索空间,提高了训练的稳健性和收敛速度。
3.
联合训练提高性能
:通过联合训练DST和对话策略,充分利用不同模块之间的相互作用,提高了对话系统的整体性能。
10.2 未来研究方向
虽然本文的研究取得了一定的成果,但仍有一些问题需要进一步研究:
1.
平衡不同跟踪代理的作用
:不同类型的跟踪代理对对话性能的影响不同,未来可以研究如何更好地平衡它们的作用,以达到最佳的对话效果。
2.
复杂对话场景应用
:目前的实验主要在餐厅/旅游领域的任务导向对话系统中进行,未来可以将该框架应用于更复杂的对话场景,如多领域对话、开放域对话等。
3.
模型可解释性
:深度强化学习模型通常具有较高的复杂性,缺乏可解释性。未来可以研究如何提高模型的可解释性,以便更好地理解模型的决策过程。
10.3 研究意义
本文的研究对于对话系统的发展具有重要意义:
1.
提高对话系统性能
:通过优化在线DST和对话策略,提高了对话系统的成功率、效率和用户体验。
2.
推动深度强化学习在对话系统中的应用
:为深度强化学习在对话系统中的应用提供了新的思路和方法,促进了该领域的发展。
3.
为实际应用提供参考
:研究成果可以为实际对话系统的开发和优化提供参考,具有一定的实用价值。
11 流程图总结
下面是整个在线DST优化过程的mermaid流程图:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px
A([开始]):::startend --> B(初始化模型):::process
B --> C{选择数据集}:::decision
C -->|DSTC2| D(设置参数N1=10000,N2=1000,N3=19000):::process
C -->|DSTC3| E(设置参数N1=20000,N2=1000,N3=29000):::process
D --> F(对话策略代理预训练):::process
E --> F
F --> G(跟踪代理预训练):::process
G --> H(跟踪代理训练):::process
H --> I(对话策略代理训练):::process
I --> J(评估模型性能):::process
J --> K([结束]):::startend
这个流程图展示了从开始到结束的整个在线DST优化过程,包括模型初始化、数据集选择、参数设置、训练阶段和性能评估等步骤,清晰地呈现了整个研究的流程。
12 数据表格总结
为了更直观地对比不同DST模型在DSTC2和DSTC3中的性能,下面将实验数据整理成一个综合表格:
| 数据集 | DST模型 | 成功率 | 轮数 | 奖励 |
| ---- | ---- | ---- | ---- | ---- |
| DSTC2 | Polynomial | 0.769 | 5.013 | 0.519 ± 0.016 |
| DSTC2 | TA_ALL | 0.775 | 4.474 | 0.551 ± 0.018 |
| DSTC2 | TA_G | 0.767 | 4.375 | 0.548 ± 0.020 |
| DSTC2 | TA_R | 0.763 | 5.057 | 0.510 ± 0.022 |
| DSTC2 | TA_M | 0.765 | 5.121 | 0.509 ± 0.018 |
| DSTC2 | TA_noteaching | - | - | - |
| DSTC3 | Polynomial | 0.744 | 6.566 | 0.415 ± 0.077 |
| DSTC3 | TA_ALL | 0.713 | 4.117 | 0.507 ± 0.083 |
| DSTC3 | TA_G | 0.719 | 4.290 | 0.505 ± 0.075 |
| DSTC3 | TA_R | 0.701 | 6.438 | 0.379 ± 0.028 |
| DSTC3 | TA_M | 0.731 | 6.540 | 0.404 ± 0.021 |
| DSTC3 | TA_noteaching | - | - | - |
通过这个表格,可以更清晰地看到不同模型在不同数据集上的性能差异,为进一步的研究和优化提供了有力的依据。
综上所述,本文通过深度强化学习框架进行在线DST优化,并结合联合训练的方法,在一定程度上提高了对话系统的性能。未来的研究可以围绕平衡不同跟踪代理的作用、在更复杂场景中应用该框架以及提高模型可解释性等方面展开,为对话系统的发展做出更大的贡献。
超级会员免费看
7万+

被折叠的 条评论
为什么被折叠?



