Task-oriented Dialogue System for Automatic Disease Diagnosis via Hierarchical RL翻译

本文主要是介绍Task-oriented Dialogue System for Automatic Disease Diagnosis via Hierarchical RL翻译,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

摘要

在本文中,我们专注于在面向任务的对话环境中使用加强学习(RL)方法来学习自动疾病诊断。与常规的RL任务不同,疾病诊断的动作空间(例如,症状)很大,尤其是当疾病数量增加时。但是,现有的方法针对该问题采用了一个flat RL策略,该策略通常在简单任务中效果表现很好,但在诸如疾病诊断之类的复杂情况下面临重大挑战。为此,我们提出将一个两级分层策略整合到对话策略学习中。高级策略由一个名为master的模型组成,该模型负责触发低级策略的模型,低级策略由若干症状检查器和疾病分类器组成。与现有系统相比,在真实世界数据集和合成数据集上的实验结果表明,我们的分层框架在疾病诊断方面的准确性更高。此外,数据集和代码都开源可用,https://github.com/nnbay/MeicalChatbot-HRL。

1.介绍


  随着电子健康记录(EHRS)系统的发展,研究员探索了用于自动诊断的不同机器学习方法。尽管已经有工作报道了针对各种疾病识别的令人印象深刻的结果,但它们主要依赖于EHR的构建,这会耗费大量人力。此外,针对一种疾病进行的有监督训练的模型很难迁移到另外一种疾病,因此,每种疾病都需要一个独立的EHR。
  为了减轻构建EHR的压力,研究人员引入了面向任务的对话系统,以自动从患者处请求症状,然后进行疾病诊断。他们将任务看作是马尔可夫决策过程(MDP),并采用了基于强化学习(RL)的方法来进行系统的策略学习。现有框架利用了一种 flat policy的方式,即将所有的疾病和症状都看作是动作。尽管基于RL的方法对症状的收集显示了积极的结果,但是当涉及到实际环境中数百种疾病时,flat policy的方式是不切实际的。
  通常,特定的疾病与某些症状有关。也就是说,患病的人通常会同时具有一些对应的症状。如图1所示,我们展示了疾病和症状之间的相关性。x轴代表症状,y轴是相关疾病的比例。我们可以轻松看到一些模式。换句话说,每种疾病都有一组相应的症状,不同症状组之间的重叠是有限的。这促使我们按医院部门的设置,将疾病分为不同的组,并设计症状获取和疾病诊断的分层结构。
  最近,分层强化学习(HRL)(通过训练多层策略以执行决策),已成功应用于不同的场景,包括课程推荐,视觉对话,关系提取等。目标任务的自然层次结构是通过手动或自动建模的。受这些研究的启发,我们探索了通过HRL探索疾病的聚类信息,以解决大型动作空间的问题。
  在本文中,我们将疾病分为若干组,并建立一个具有两级的分层对话系统,通过使用HRL方法进行自动疾病诊断。高级策略由一个名为master的模型组成,低级策略由若干worker和一个疾病分类器组成。master负责触发低级模型。每个worker负责查询与某些疾病有关的症状,而疾病分类器负责根据worker收集的信息进行最终诊断。所提出的框架模仿了来自不同部门的医生,一起对患者进行诊断。其中,每个worker的动作就像是来自特定部门的医生,而master的行为就像一个任命医生与该患者互动的委员会。当从worker那里收集的信息足够时,master将激活单独的疾病分类器以进行诊断。两个级别的模型共同训练,以更好地诊断疾病。我们构建了一个大型真实数据集和一个合成数据集,以评估我们的模型。实验结果表明,我们的分层框架的性能在两个数据集上都要优于目前最好的方法。

2.Hierarchical Reinforcement Learning Framework for Disease Diagnosis

在本节中,我们介绍了用于疾病诊断的分层强化学习框架。我们从flat policy设置开始,然后从两个级别介绍我们的分层结构策略。我们通过奖赏设计技术进一步提高模型的性能。

2.1 Reinforcement Learning Formulation for Disease Diagnosis

对于基于RL的自动诊断模型,agent的动作空间为 A = D ∪ S \mathcal A=D\cup S A=DS,其中 D D D是所有疾病的集合和 S S S是与这些疾病有关的所有症状的集合。在第 t t t轮时,给定状态 s t ∈ S s_t∈\mathcal S stS,agent根据其策略 a t 〜 π ( a ∣ s t ) a_t〜π(a|s_t) atπ(ast)来选择动作,并从环境(患者/用户)接收中间奖赏 r t = R ( s t , a t ) r_t=R(s_t,a_t) rt=R(st,at)。如果 a t ∈ S a_t\in S atS,那么agent会选择一个症状来询问患者或用户。然后,用户以 t r u e / f a l s e / u n k n o w n true/false/unknown true/false/unknown来响应agent,并表示为对应症状的3维one-hot向量 b ∈ R 3 b\in \mathbb R^3 bR3。如果 a t ∈ D a_t\in D atD,那么agent将对应疾病作为诊断结果告知用户,并且对话过程将因诊断的success/fail而被终止。状态被表示为 s t = [ b 1 T , b 2 T , ⋅ ⋅ ⋅ , b ∣ S ∣ T ] s_t=[b^T_1,b^T_2,···,b^T_{|S|}] st=[b1T,b2T,,bST],即,由每种症状的3维one-hot编码拼接得到,对于没被提及的症状则表示为 b = [ 0 , 0 , 0 ] b=[0,0,0] b=[0,0,0]
  agent的目标是找到最优策略,以便它可以获取到最大化的期望累积衰减奖赏 R t = ∑ t ′ = t T γ t ′ − t r t ′ R_t=\sum^T_{t'=t}γ^{t'-t}r'_t Rt=t=tTγttrt,其中 γ ∈ [ 0 , 1 ] γ∈[0,1] γ[0,1]是衰减因子, T T T是当前对话的最大轮次。 Q − v a l u e Q-value Qvalue函数是在状态 s s s时基于策略 π π π来选择动作 a a a的期望价值,如下所示:
Q π ( s , a ) = E [ R t ∣ s t = s , a t = a , π ] Q^{\pi}(s,a)=\mathbb E[R_t|s_t=s,a_t=a,\pi] Qπ(s,a)=E[Rtst=s,at=a,π]
  最优 Q − v a l u e Q-value Qvalue函数是所有可能策略中的最大Q值: Q ∗ ( s , a ) = m a x π Q π ( s , a ) Q^∗(s,a)=max_πQ^π(s,a) Q(s,a)=maxπQπ(s,a)。它遵循贝尔曼方程:
Q ∗ ( s , a ) = E s ′ [ r + γ m a x a ′ ∈ A Q ∗ ( s ′ , a ′ ) ∣ s , a ] Q^*(s,a)=\mathbb E_{s'}[r+\gamma~\mathop{max}\limits_{a'\in \mathcal A}Q^*(s',a')|s,a] Q(s,a)=Es[r+γ aAmaxQ(s,a)s,a]
  当且仅当对于每个状态和动作,满足 Q π ( s , a ) = Q ∗ ( s , a ) Q^π(s,a)=Q^∗(s,a) Qπ(s,a)=Q(s,a)时,策略π才是最优的。然后可以通过 π ( a ∣ s ) = a r g m a x a ∈ A Q ∗ ( s , a ) π(a|s)=argmax_{a∈\mathcal A}Q∗(s,a) π(as)=argmaxaAQ(s,a)确定性需要选择的动作。

2.2 Hierarchical Policy of Two Levels

在这里插入图片描述
  为了减少大型动作空间的问题,我们将上述RL形式扩展到具有两层策略的分层结构,以进行自动诊断。基于options框架,我们的框架的设计如图2所示。该框架中一共有五个组件:master,workers,disease classifier,internal critic和user simulator。
  具体而言,我们将 D D D中的所有疾病分为 h h h个子集 D 1 , D 2 , . . . , D h D_1,D_2,...,D_h D1,D2,...,Dh,其中 D 1 ∪ D 2 ∪ ⋅ ⋅ ⋅ ∪ D h = D D_1∪D_2∪···∪D_h=D D1D2Dh=D并且 D i ∩ D j = ∅ D_i∩D_j=∅ DiDj=。每个 D i D_i Di都与一组症状 S i ⊆ S S_i\subseteq S SiS有关,其症状与 D i D_i Di中的疾病有关。同时worker w i w^i wi负责从用户收集有关症状 S i S_i Si的信息。
  在第 t t t轮,master决定是从用户那里收集症状信息(挑选一个worker与用户交互若干轮),还是告知用户诊断结果(选择疾病分类器以输出预测的疾病)。图3中显示了模型之间相互作用的诊断过程。对于internal criti,它既负责将奖赏返回给worker,又要告诉被调用worker的子任务是否完成。此外,用户模拟器被用于与我们的模型进行交互,并返回外部奖赏。
在这里插入图片描述

2.2.1 Master

master的动作空间为 A m = { w i ∣ i = 1 , 2 , ⋅ ⋅ ⋅ , h } ∪ { d } \mathcal A^m=\{w^i|i=1,2,···,h\}∪\{d\} Am={wii=1,2,,h}{d}。动作 w i w^i wi表示激活worker w i w^i wi,而 d d d是一个原始动作,表示激活疾病分类器。在每个对话轮次 t t t中,master将对话状态 s t ∈ S s_t∈\mathcal S stS作为输入,并根据其策略 π m ( a t m ∣ s t ) π^m(a^m_t|s_t) πm(atmst)来选择动作 a t m ∈ A m a^m_t∈\mathcal A^m atmAm。外部奖赏 r t e r^e_t rte将从环境中获取并返回给的master。
  master的决策过程不是一个标准的MDP。master激活一个worker后,该worker将与用户交互N轮,直到子任务终止。然后,master才能采取新的行动并观察新的对话状态。正如[7]指出的那样,master的学习问题可以作为半马尔可夫决策过程(SMDP)提出,在这种过程中,在用户和所选worker交互期间返回的外部奖赏可以作为master的中间奖赏进行累积。也就是说,在采取动作 a t m a^m_t atm之后,可以将master的奖赏 r t m r^m_t rtm定义为:
r t m = { ∑ t ′ = 1 N γ t ′ r t + t ′ e , i f a t m = w i r t e , i f a t m = d r^m_t= \begin{cases} \sum^N_{t'=1}\gamma^{t'}r^e_{t+t'},& if~ a^m_t=w^i\\ r^e_t,& if~ a^m_t=d \end{cases} rtm={t=1Nγtrt+te,rte,if atm=wiif atm=d
其中 i = 1 , . . . , h i=1,...,h i=1,...,h r t e r^e_t rte是环境在第 t t t轮返回的外部奖赏, γ γ γ是master的衰减因子, N N N是worker的对话轮次。我们可以将master的Bellman方程写为如下所示:
Q m ( s , a m ) = r m + E { s ′ , a m ′ } [ γ N Q m ( s ′ , a m ′ ) ∣ s , a m , π m ] Q_m(s,a^m)=r^m+\mathbb E_{\{s',a^{m'}\}}[\gamma^NQ_m(s',a^{m'})|s,a^m,\pi^m] Qm(s,am)=rm+E{s,am}[γNQm(s,am)s,am,πm]
其中 s ′ s' s是master采取动作后观察到的对话状态, a m ′ a^{m'} am是状态为 s ′ s' s时的下一个动作。
  master的目标是通过SMDP来最大化外部奖赏,因此我们可以按以下方式写出master的损失函数:
L ( θ m ) = E s , a m , r m , s ′ ∼ B m [ ( y − Q m ( s , a m ; θ m ) ) 2 ] \mathcal L(\theta_m)=\mathbb E_{s,a^m,r^m,s'\sim \mathcal B^m}[(y-Q_m(s,a^m;\theta_m))^2] L(θm)=Es,am,rm,sBm[(yQm(s,am;θm))2]
其中 y = r m + γ N m a x a m ′ Q m ( s ′ , a m ′ ; θ m − ) y=r^m+γ^Nmax_{a^{m'}}Q_m(s',a^{m'};θ^-_m) y=rm+γNmaxamQm(s,am;θm) θ m θ_m θm是当前迭代的网络参数, θ m − θ^-_m θm是上一次迭代的网络参数,而 B m \mathcal B^m Bm是从master的固定缓冲区中采样的。

2.2.2 Worker

worker w i w^i wi对应于疾病 D i D_i Di和症状 S i S_i Si集合。worker w i w^i wi的动作空间为: A i w = { r e q u e s t ( s y m p t o m ) ∣ s y m p t o m ∈ S i } \mathcal A^w_i=\{request(symptom)|symptom∈S_i\} Aiw={request(symptom)symptomSi}。在第 t t t轮,如果调用了worker w i w^i wi,master的当前状态 s t s_t st将传递给worker w i w^i wi,然后worker w i w^i wi将从 s t s_t st中提取 s t i s^i_t sti并以 s t i s^i_t sti作为输入来生成动作 a t i ∈ A w i a^i_t∈\mathcal A^{w^i} atiAwi。状态提取函数如下所示:
s t i = E x t r a c t S t a t e ( s t , w i ) = [ b ( 1 ) i T , b ( 2 ) i T , . . . , b ( k i ) i T ] T s^i_t=ExtractState(s_t,w^i)=[b^{iT}_{(1)},b^{iT}_{(2)},...,b^{iT}_{(k_i)}]^T sti=ExtractState(st,wi)=[b(1)iT,b(2)iT,...,b(ki)iT]T
其中 b ( j ) i b^{i}_{(j)} b(j)i是症状 j j j的表示向量。
  在选择行动 a t i ∈ A w i a^i_t∈\mathcal A^{w^i} atiAwi之后,对话被更新为 s t + 1 s_{t+1} st+1,worker w i w^i wi将从 internal critic 模块中获得固定奖赏 r t i r^i_t rti。因此,worker的目的是最大化期望累积的内部衰减奖赏。worker w i w^i wi的损失函数可以写为:
L ( θ w i ) = E s i , a i , r i , s i ′ ∼ B i w [ ( y i − Q w i ( s i , a i ; θ w i ) ) 2 ] \mathcal L(\theta^i_w)=\mathbb E_{s^i,a^i,r^i,s^{i'}\sim \mathcal B^w_i}[(y_i-Q^i_w(s^i,a^i;\theta^i_w))^2] L(θwi)=Esi,ai,ri,siBiw[(yiQwi(si,ai;θwi))2]
其中 y i = r i + γ w m a x a i ′ Q w i ( s i ′ , a i ′ ; θ w i − ) y_i=r^i+γ_wmax_{a^{i'}} Q^i_w(s^{i'},a^{i'};θ^{i-}_w) yi=ri+γwmaxaiQwi(si,ai;θwi) γ w γ_w γw是worker的衰减因子, θ w i θ^i_w θwi是当前迭代时的网络参数, θ w i − θ^{i-}_w θwi是上一次迭代的网络参数, B i w \mathcal B^w_i Biw是worker w i w^i wi样本的固定长度缓冲区。

2.2.3 Disease Classifier

一旦疾病分类器被master激活,它将以主状态 s t s_t st作为输入,并输出向量 p ∈ R ∣ D ∣ \textbf p∈\mathbb R^{|D|} pRD,其表示了在所有疾病上的概率分布。具有最高概率的疾病将作为诊断结果返回给用户。此处使用两层多层感知器(MLP)进行疾病诊断。

2.2.4 Internal Critic

internal critic模块负责在第 t t t轮选择行动 a t i a^i_t ati后,为worker w i w^i wi生成一个固有的奖励 r t i r^i_t rti。如果工人要向用户请求症状,则 r t i r^i_t rti等于 + 1 +1 +1。如果worker w i w^i wi生成了重复的动作或子任务轮数到达 T s u b T^{sub} Tsub,则 r t i r^i_t rti − 1 -1 1。 否则, r t i r^i_t rti 0 0 0
  internal critic模块还负责判断worker的终止条件。在我们的任务中,当生成了重复的动作或子任务轮数到达 T s u b T^{sub} Tsub,worker被视为失败而终止。当用户对agent请求的症状做出确认响应时,工人被视为成功而终止。这意味着目前的worker通过收集足够的症状信息来完成子任务。

2.2.5 User Simulator

与[4]和[5]类似,我们使用用户模拟器与agent进行交互。在每个对话的开始,用户模拟器随机从训练池中采样了一个用户目标。被采样用户目标的所有显式症状均用于初始化会话。在对话过程中,根据某些规则,模拟器根据用户目标与agent进行交互。如果agent做出正确的诊断,则将作为成功终止对话。如果通知的疾病不正确或对话轮次达到最大轮次 T T T,则将作为失败终止对话。为了提高相互的效率,当系统选择重复动作时,对话将被终止。

2.3 Reward Shaping

实际上,一个患者患有的症状数要比症状集合S中的症状数少的多,这就导致了特征空间稀疏的问题。换句话说,agent很难找到用户真正遭受的症状。为了鼓励master选择一个可以发现更多正确症状的worker,我们采用与[12]类似的方法,使用奖赏设计方法为原始的外部奖赏增加一个额外的辅助奖励,同时保持最优的强化学习策略不变。
  从状态 s t s_t st s t + 1 s_{t+1} st+1的辅助奖赏函数被定义为 f ( s t , s t + 1 ) = γ ϕ ( s t + 1 ) − ϕ ( S t ) f(s_t,s_{t+1})=γ\phi(s_{t+1})-\phi(S_t) f(st,st+1)=γϕ(st+1)ϕ(St),其中 ϕ ( s ) \phi(s) ϕ(s)是潜在函数,可以定义为:
ϕ ( s ) = { λ × ∣ { j : b j = [ 1 , 0 , 0 ] } ∣ , i f s ∈ S / S ⊥ 0 , o t h e r w i s e \phi(s)= \begin{cases} \lambda\times |\{j:b_j=[1,0,0]\}|,& if ~ s\in \mathcal S/\mathcal S_{\perp}\\ 0,& otherwise \end{cases} ϕ(s)={λ×{j:bj=[1,0,0]},0,if sS/Sotherwise
其中 ϕ ( s ) \phi(s) ϕ(s)计算给定状态 s s s情况下的确认症状的数目, λ > 0 λ>0 λ>0是一个超参数,控制奖赏设计的大小, S ⊥ \mathcal S_{\perp} S是终止状态集。因此,master的奖励函数将变为 R t ϕ = r t + f ( s t , s t + 1 ) R^{\phi}_t=r_t+f(s_t,s_{t+1}) Rtϕ=rt+f(st,st+1)

2.4 Training

master策略 π m π^m πm和每个worker的策略 π w i π^{w^i} πwi均通过深度Q网络进行参数化。在DQN中,经常按照 ϵ \epsilon ϵ贪心策略选择动作。在我们的分层结构框架中,master和worker在训练时都采用 ϵ \epsilon ϵ贪心策略选择动作,测试时则使用贪心策略。在训练过程中,我们将 ( s t , a t m , r t m , s t + N ) (s_t,a^m_t,r^m_t,s_{t+N}) (st,atm,rtm,st+N)存储在 B m \mathcal B^m Bm中,并将 ( s t i , a t w , r t i , s t + 1 i ) (s^i_t,a^w_t,r^i_t,s^i_{t+1}) (sti,atw,rti,st+1i)存储在 B w i \mathcal B^{w^i} Bwi中。在每个训练步骤,我们都会执行经验回放,以分别更新master和worker的当前网络,而在经验回放过程中,目标网络是固定的。仅当一次经验回放结束时,目标网络才会更新(由当前网络替换)。在每个步骤中,当前网络将在训练集上进行评估,只有当当前网络的性能优于任何成功率的任何版本时,体验缓冲区才会刷新。因此,以前的迭代中生成的样品将从体验缓冲区中删除,并会加快训练过程。至于疾病分类器,在每10个时期对主人进行培训后,它将使用末端状态和相应的疾病标签进行更新。

3.Dataset

3.1 Real-world Dataset

3.2 Synthetic Dataset

这篇关于Task-oriented Dialogue System for Automatic Disease Diagnosis via Hierarchical RL翻译的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/361062

相关文章

C# Task Cancellation使用总结

《C#TaskCancellation使用总结》本文主要介绍了在使用CancellationTokenSource取消任务时的行为,以及如何使用Task的ContinueWith方法来处理任务的延... 目录C# Task Cancellation总结1、调用cancellationTokenSource.

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

论文翻译:ICLR-2024 PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS

PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS https://openreview.net/forum?id=KS8mIvetg2 验证测试集污染在黑盒语言模型中 文章目录 验证测试集污染在黑盒语言模型中摘要1 引言 摘要 大型语言模型是在大量互联网数据上训练的,这引发了人们的担忧和猜测,即它们可能已

Partical System

创建"粒子系统物体"(点击菜单GameObject -> Create Other -> Particle System) 添加"粒子系统组件"(点击Component -> Effects  ->Particle System) 粒子系统检视面板  点击粒子系统检视面板的右上角的"+"来增加新的模块。(Show All Modules:显示全部) 初始化模块: •

小技巧绕过Sina Visitor System(新浪访客系统)

0x00 前言 一直以来,爬虫与反爬虫技术都时刻进行着博弈,而新浪微博作为一个数据大户更是在反爬虫上不遗余力。常规手段如验证码、封IP等等相信很多人都见识过…… 当然确实有需要的话可以通过新浪开放平台提供的API进行数据采集,但是普通开发者的权限比较低,限制也比较多。所以如果只是做一些简单的功能还是爬虫比较方便~ 应该是今年的早些时候,新浪引入了一个Sina Visitor Syst

excel翻译软件有哪些?如何高效提翻译?

你是否曾在面对满屏的英文Excel表格时感到头疼?项目报告、数据分析、财务报表... 当这些重要的信息被语言壁垒阻挡时,效率和理解度都会大打折扣。别担心,只需3分钟,我将带你轻松解锁excel翻译成中文的秘籍。 无论是职场新人还是老手,这一技巧都将是你的得力助手,让你在信息的海洋中畅游无阻。 方法一:使用同声传译王软件 同声传译王是一款专业的翻译软件,它支持多种语言翻译,可以excel

System.getProperties().

Java.version Java 运行时环境版本 java.vendor Java 运行时环境供应商 java.vendor.url Java 供应商的 URL java.home Java 安装目录 java.vm.specification.version Java 虚拟机规范版本 java.vm.specification.vendor

12C 新特性,MOVE DATAFILE 在线移动 包括system, 附带改名 NID ,cdb_data_files视图坏了

ALTER DATABASE MOVE DATAFILE  可以改名 可以move file,全部一个命令。 resue 可以重用,keep好像不生效!!! system照移动不误-------- SQL> select file_name, status, online_status from dba_data_files where tablespace_name='SYSTEM'

MonoHuman: Animatable Human Neural Field from Monocular Video 翻译

MonoHuman:来自单目视频的可动画人类神经场 摘要。利用自由视图控制来动画化虚拟化身对于诸如虚拟现实和数字娱乐之类的各种应用来说是至关重要的。已有的研究试图利用神经辐射场(NeRF)的表征能力从单目视频中重建人体。最近的工作提出将变形网络移植到NeRF中,以进一步模拟人类神经场的动力学,从而动画化逼真的人类运动。然而,这种流水线要么依赖于姿态相关的表示,要么由于帧无关的优化而缺乏运动一致性

linux dlopen手册翻译

名称 dlclose, dlopen, dlmopen 打开和关闭一个共享对象 简介 #include <dlfcn.h>void *dlopen(const char*filename, int flags);int dlclose(void *handle);#define _GNU_SOURCE#include <dlfcn.h>void *dlmoopen(Lmid_t lm