论文《Unsupervised Dialog Structure Learning》笔记:详解DD-VRNN

news2025/4/8 10:45:13

D-VRNN模型和DD-VRNN模型

总体架构

image.png
离散-可变循环变分自编码器(D-VRNN)和直接-离散-可变循环变分自编码器(DD-VRNN)概述。D-VRNN和DD-VRNN使用不同的先验分布来建模 z t z_t zt之间的转换,如红色实线所示。 x t x_t xt的再生成用蓝色虚线表示。状态级别的循环神经网络的循环关系以灰色虚线点划线表示。 z t z_t zt的推断过程以黑色虚线表示。

方法

原则上,变分递归神经网络(VRNN)在每个时间步都包含一个变分自编码器(VAE),这些VAE通过一个状态级的递归神经网络(RNN)相连。在这个RNN中,隐藏状态变量 h t − 1 h_{t-1} ht1 编码了直到时间 t t t 的对话上下文。这种连接帮助VRNN模拟对话的时间结构(Chung等人,2015年)。模型的观测输入 x t x_t xt 是构建的话语嵌入。 z t z_t zt 是时间 t t t 时VRNN中的潜在向量。与Chung等人(2015年)的工作不同,我们模型中的 z t z_t zt 是一个离散的独热向量,其维度为 N N N,其中 N N N 是潜在状态的总数。

D-VRNN与DD-VRNN之间的主要区别在于 z t z_t zt 的先验设定。在D-VRNN中,我们假设 z t z_t zt 依赖于整个对话上下文 h t − 1 h_{t-1} ht1,如图(a)中红色部分所示,这与Chung等人(2015年)的设定相同;而在DD-VRNN中,我们假设在先验中, z t z_t zt 直接依赖于 z t − 1 z_{t-1} zt1,以模拟不同潜在状态之间的直接转换,如图(b)中红色部分所示。我们使用 z t z_t zt h t − 1 h_{t-1} ht1 来重新生成当前话语 x t x_t xt,而不是生成下一个话语 x t + 1 x_{t+1} xt+1,如图1中蓝色虚线所示。重生成的思想有助于恢复对话结构。接下来,递归神经网络利用 h t − 1 h_{t-1} ht1 x t x_t xt z t z_t zt 更新自身,并允许上下文随着对话的进行而传递,如图1中灰色点划线所示。最后,在推断中,我们用上下文 h t − 1 h_{t-1} ht1 x t x_t xt 构建 z t z_t zt 的后验,并通过从后验中抽样来推断 z t z_t zt,如图1中黑色虚线所示。每个操作的数学细节在下文中描述。φ(·)τ 是高度灵活的特征提取函数,如神经网络。 φ τ x φ_{τ}^x φτx φ z τ φzτ φzτ φ τ p r i o r φ^{prior}_τ φτprior φ τ e n c φ^{enc}_τ φτenc φ τ d e c φ^{dec}_τ φτdec 是分别用于输入 x x x,潜在向量 z z z,先验,编码器和解码器的特征提取网络。

句子嵌入

用户话语 u t = [ w 1 , t , w 2 , t , … , w n w , t ] u_t = [w_{1,t}, w_{2,t}, \ldots, w_{n_w,t}] ut=[w1,t,w2,t,,wnw,t] 和系统话语 s t = [ v 1 , t , v 2 , t , … , v n v , t ] s_t = [v_{1,t}, v_{2,t}, \ldots, v_{n_v,t}] st=[v1,t,v2,t,,vnv,t] 是在时间 t t t 的用户话语和系统话语,其中 w i , j w_{i,j} wi,j v i , j v_{i,j} vi,j 是单独的词语。两方话语的连接, x t = [ u t , s t ] x_t = [u_t, s_t] xt=[ut,st],是VAE中的观测变量。我们使用Mikolov等人(2013年)的方法来进行词嵌入,并对 u t u_t ut s t s_t st 的词嵌入向量进行平均,得到 u ~ t \tilde{u}_t u~t s ~ t \tilde{s}_t s~t u ~ t \tilde{u}_t u~t s ~ t \tilde{s}_t s~t 的连接被用作 x t x_t xt 的特征提取,即 ϕ τ x ( x t ) = [ u ~ t , s ~ t ] \phi^x_\tau (x_t) = [\tilde{u}_t, \tilde{s}_t] ϕτx(xt)=[u~t,s~t] ϕ τ x ( x t ) \phi^x_\tau (x_t) ϕτx(xt) 是模型的输入。

Prior in D-VRNN

在D-VRNN中,先验是我们在观察数据之前对 z t z_t zt 的假设。在D-VRNN中,假设 z t z_t zt 的先验依赖于上下文 h t − 1 h_{t-1} ht1,并遵循公式(1)中显示的分布是合理的,因为对话上下文是影响对话转换的关键因素。由于 z t z_t zt 是离散的,我们使用softmax函数来获取分布。

z t ∼ softmax ( ϕ τ prior ( h t − 1 ) ) (1) z_t \sim \text{softmax}(\phi^{\text{prior}}_\tau (h_{t-1}))\tag{1} ztsoftmax(ϕτprior(ht1))(1)

Prior in DD-VRNN

DD-VRNN中的先验。 z t z_t zt 在公式(1)中对整个上下文 h t − 1 h_{t-1} ht1 的依赖性,使得我们难以解开 z t − 1 z_{t-1} zt1 z t z_t zt 之间的关系。但这种关系对于解码对话交换如何从一次流向下一次至关重要。因此,在DD-VRNN中,我们直接在先验中模拟 z t − 1 z_{t-1} zt1 z t z_t zt 的影响,如公式(2)和图1(b)所示。为了将这个先验分布适配到变分推断框架中,我们用公式(3)中的 p ( z t ∣ z t − 1 ) p(z_t|z_{t-1}) p(ztzt1) 来近似 p ( x t ∣ z t , z t ) p(x_t|z_{t}, z_{t}) p(xtzt,zt)。稍后,我们将展示设计的新先验在特定场景下的优势。
z t ∼ softmax ( ϕ τ prior ( z t − 1 ) [ ] (2) z_t \sim \text{softmax}(\phi^{\text{prior}}_\tau (z_{t-1})[\tag{2}] ztsoftmax(ϕτprior(zt1)[](2)

它表示潜在状态 z t z_t zt 的先验分布直接依赖于前一时间步的潜在状态 z t − 1 z_{t-1} zt1,并通过特征提取函数 ϕ τ prior \phi^{\text{prior}}_\tau ϕτprior 映射和softmax函数来确定。

image.png

模型整体的概率分布可以近似为:
p ( x ≤ T , z ≤ T ) ≈ ∏ t = 1 T p ( x t ∣ z ≤ t , x < t ) p ( z t ∣ z t − 1 ) (3) p(x_{\leq T}, z_{\leq T}) \approx \prod_{t=1}^{T} p(x_t|z_{\leq t}, x_{<t})p(z_t|z_{t-1})\tag{3} p(xT,zT)t=1Tp(xtzt,x<t)p(ztzt1)(3)

生成

z t z_t zt 是在上下文下当前对话交换的概括。我们使用 z t z_t zt h t − 1 h_{t-1} ht1 来重构当前的话语 x t x_t xt。这种 x t x_t xt 的重生产允许我们恢复对话结构。

我们使用两个RNN解码器,dec1和dec2,分别由参数 γ 1 \gamma_1 γ1 γ 2 \gamma_2 γ2 参数化,以分别生成原始的 u t u_t ut s t s_t st c t c_t ct d t d_t dt 是dec1和dec2的隐藏状态。上下文 h t − 1 h_{t-1} ht1 和特征提取向量 ϕ τ z ( z t ) \phi^z_\tau (z_t) ϕτz(zt) 被连接起来,形成dec1的初始隐藏状态 h 0 dec1 h^{\text{dec1}}_0 h0dec1 c ( n w , t ) c(n_w,t) c(nw,t) 是dec1的最后一个隐藏状态。由于 v t v_t vt u t u_t ut 的响应,并且会受到 u t u_t ut 的影响,我们将 c ( n w , t ) c(n_w,t) c(nw,t) d 0 d_0 d0 连接起来,将信息从 u t u_t ut 传递给 v t v_t vt。这个连接向量被用作dec2的 h 0 dec2 h^{\text{dec2}}_0 h0dec2。这个过程在公式(4)和(5)中显示。

c 0 = [ h t − 1 , ϕ τ z ( z t ) ] c_0 = [h_{t-1}, \phi^z_\tau (z_t)] c0=[ht1,ϕτz(zt)]
w ( i , t ) , c ( i , t ) = f γ 1 ( w ( i − 1 , t ) , c ( i − 1 , t ) ) (4) w(i,t), c(i,t) = f_{\gamma_1}(w(i-1,t), c(i-1,t))\tag{4} w(i,t),c(i,t)=fγ1(w(i1,t),c(i1,t))(4)

d 0 = [ h t − 1 , ϕ τ z ( z t ) , c ( n w , t ) ] d_0 = [h_{t-1}, \phi^z_\tau (z_t), c(n_{w},t)] d0=[ht1,ϕτz(zt),c(nw,t)]

v ( i , t ) , d ( i , t ) = f γ 2 ( v ( i − 1 , t ) , d ( i − 1 , t ) ) (5) v(i,t), d(i,t) = f_{\gamma_2}(v(i-1,t), d(i-1,t))\tag{5} v(i,t),d(i,t)=fγ2(v(i1,t),d(i1,t))(5)

递归过程

状态级RNN根据以下等式(6)更新其隐藏状态 h t h_t ht h t − 1 h_{t-1} ht1 f θ f_\theta fθ 是由参数 θ \theta θ 参数化的RNN。
h t = f θ ( ϕ τ z ( z t ) , ϕ τ x ( x t ) , h t − 1 ) (6) h_t = f_\theta (\phi^z_\tau (z_t), \phi^x_\tau (x_t), h_{t-1}) \tag{6} ht=fθ(ϕτz(zt),ϕτx(xt),ht1)(6)

推断

我们根据上下文 h t − 1 h_{t-1} ht1 和当前话语 x t x_t xt 来推断 z t z_t zt,并构建 z t z_t zt 的后验分布,通过另一个softmax函数,如等式(7)所示。一旦我们得到了后验分布,我们应用Gumbel-Softmax来取 z t z_t zt 的样本。D-VRNN和DD-VRNN在它们的先验上有所不同,但在推断上没有不同,因为我们假设在先验中 z t z_t zt 之间的直接转换而不是在推断中。
z t ∣ x t ∼ softmax ( ϕ τ e n c ( h t − 1 ) , ϕ τ x ( x t ) ) (7) z_t|x_t \sim \text{softmax}(\phi^{enc}_\tau (h_{t-1}), \phi^x_\tau (x_t)) \tag{7} ztxtsoftmax(ϕτenc(ht1),ϕτx(xt))(7)

这段文字描述了变分递归神经网络(VRNN)的损失函数,以及为了解决变分自编码器(VAE)中潜在变量消失的问题,如何结合了两种损失函数:bow-loss和Batch Prior Regularization (BPR)。以下是对该段落的翻译以及相关公式的解释:

损失函数

VRNN的目标函数是其在每个时间步的变分下界,如等式(8)所示(Chung等人,2015)。为了缓解VAE中潜在变量消失的问题,我们结合了bow-loss和Batch Prior Regularization (BPR)(Zhao等人,2017,2018)到最终的损失函数中,并引入了可调整的权重 λ \lambda λ,如等式(9)所示。

L VRNN = E q ( z ≤ T ∣ x ≤ T ) [ log ⁡ p ( x t ∣ z ≤ t , x < t ) ] + \mathcal{L}_{\text{VRNN}} = \mathbb{E}_{q(z_{\leq T}|x_{\leq T})}[\log p(x_t | z_{\leq t},x_{<t})]+ LVRNN=Eq(zTxT)[logp(xtzt,x<t)]+
∑ t = 1 T − KL ( q ( z t ∣ x ≤ t , z < t ) ∥ p ( z t ∣ x < t , z < t ) ) (8) \sum_{t=1}^{T} -\text{KL}(q(z_t | x_{\leq t},z_{<t}) \| p(z_t | x_{<t},z_{<t}))\tag{8} t=1TKL(q(ztxt,z<t)p(ztx<t,z<t))(8)

L D-VRNN = L VRNN-BPR + λ ∗ L bow (9) \mathcal{L}_{\text{D-VRNN}} = \mathcal{L}_{\text{VRNN-BPR}} + \lambda * \mathcal{L}_{\text{bow}} \tag{9} LD-VRNN=LVRNN-BPR+λLbow(9)

状态转移概率计算

一种既能数值表示又能视觉表示对话结构的好方法是构建一个潜在状态之间的转移概率表。这样的转移概率也可以用来设计在强化学习(RL)训练过程中的奖励函数。我们因为D-VRNN和DD-VRNN的先验不同,所以分别计算它们的转移表。

D-VRNN

从等式(6)我们知道 h t h_t ht x ≤ t x_{\leq t} xt z < t z_{<t} z<t 的函数。结合等式(1)和(6),我们发现 z t z_t zt x ≤ t x_{\leq t} xt z < t z_{<t} z<t 的函数。因此, z < t z_{<t} z<t z t z_t zt 有一个间接的影响通过 h t − 1 h_{t-1} ht1。这个间接影响加强了我们的假设,即前面的状态 z < t z_{<t} z<t 影响未来的状态 z t z_t zt,但也使得恢复一个清晰的结构和解开 z t − 1 z_{t-1} zt1 z t z_t zt 直接影响变得困难。

为了更好地可视化对话结构并与基于HMM的模型进行比较,我们通过估算二元转移概率表来量化 z t − 1 z_{t-1} zt1 z t z_t zt 的影响,其中 p i , j = # ( s t a t e i , s t a t e j ) # ( s t a t e i ) p_{i,j} = \frac{\#(state_i,state_j)}{\#(state_i)} pi,j=#(statei)#(statei,statej)。分子是有序对( s t a t e i , t − 1 state_i, t-1 statei,t1 s t a t e j , t state_j, t statej,t)的总数,分母是数据集中 s t a t e i state_i statei 的总数。我们选择一个二元转移表而不是一个更大 n n n n n n-gram转移表,因为最近的上下文通常是最相关的,但应该注意的是,与HMM模型不同,我们模型中的转移程度既不是有限的也不是预先确定的,因为 z t z_t zt 捕获了所有上下文。根据不同的应用,可能会选择不同的 n n n

命名实体离散变分递归神经网络(NE-D-VRNN)

在任务导向对话系统中,某些命名实体的存在,如食物偏好,对于确定对话的阶段起着关键作用。为了确保潜在状态捕获此类有用信息,我们在计算等式(9)中的损失函数时,对命名实体赋予更大的权重。这些权重鼓励重构的话语含有更多正确的命名实体,因此影响潜在状态有更好的表示。我们将这个模型称为NED-VRNN(命名实体离散变分递归神经网络)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1240798.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

爱创科技总裁谢朝晖荣获“推动医药健康产业高质量发展人物”

中国医药市场规模已经成为全球第二大医药市场&#xff0c;仅次于美国。近年来&#xff0c;随着中国经济的持续增长和人民生活水平的提高&#xff0c;医药市场需求不断扩大。政府对医疗卫生事业的投入也在不断加大&#xff0c;为医药行业的发展创造了良好的政策环境。为推动医药…

基于顺序表实现通讯录

1.功能实现 功能要求 1&#xff09;至少能够存储100个人的通讯信息 2&#xff09;能够保存用户信息&#xff1a;名字、性别、年龄、电话、地址等 3&#xff09;增加联系人信息 4&#xff09;删除指定联系人 5&#xff09;查找制定联系人 6&#xff09;修改指定联系人 7&#xf…

Sentinel 监控数据持久化(mysql)

Sentinel 实时监控仅存储 5 分钟以内的数据&#xff0c;如果需要持久化&#xff0c;需要通过调用实时监控接口来定制&#xff0c;即自行扩展实现 MetricsRepository 接口&#xff08;修改 控制台源码&#xff09;。 本文通过使用Mysql持久化监控数据。 1.构建存储表&#xff08…

java-String

String 1. String引入 1.1 构造方法 public static void main1(String[] args) {//构造方法String s1 "hello world";String s2 new String("yuanwei");char[] values {a,b,c};String s3 new String(values);System.out.println(s1);System.out.printl…

看不惯AI版权作品被白嫖!Stability AI副总裁选择了辞职,曾领导开发Stable Audio

近日&#xff0c;OpenAI的各种大瓜真是让人吃麻了。 而就在Sam Altmam被开除前两天&#xff0c;可能没太多人注意到Stability AI副总裁Newton—Rex因看不惯StabilityAI在版权保护上的行为选择辞职一事。 大模型研究测试传送门 GPT-4传送门&#xff08;免墙&#xff0c;可直接…

记录一次因内存不足而导致hiveserver2和namenode进程宕机的排查

背景 最近发现集群主节点总有进程宕机&#xff0c;定位了大半天才找到原因&#xff0c;分享一下 排查过程 查询hiveserver2和namenode日志&#xff0c;都是正常的&#xff0c;突然日志就不记录了&#xff0c;直到我重启之后又恢复工作了。 排查各种日志都是正常的&#xff0…

windows搭建gitlab教程

1.安装gitlab 说明&#xff1a;由于公司都是windows服务器&#xff0c;这里安装以windows为例&#xff0c;先安装一个虚拟机&#xff0c;然后安装一个docker&#xff08;前提条件&#xff09; 1.1搜索镜像 docker search gitlab #搜索所有的docker search gitlab-ce-zh #搜索…

【css】Google第三方登录按钮样式修改

文章目录 场景前置准备修改样式官方属性修改样式CSS修改样式按钮的高度height和border-radiusLogo和文字布局 场景 需要用到谷歌的第三方登录&#xff0c;登录按钮有自己的样式。根据官方文档&#xff1a;概览 | Authentication | Google for Developers&#xff0c;提供两种第…

SPASS-ARIMA模型

基本概念 在预测中,对于平稳的时间序列,可用自回归移动平均(AutoRegres- sive Moving Average, ARMA)模型及特殊情况的自回归(AutoRegressive, AR)模型、移动平均(Moving Average, MA)模型等来拟合,预测该时间序列的未来值,但在实际的经济预测中,随机数据序列往往…

HarmonyOS ArkTS Video组件的使用(七)

概述 在手机、平板或是智慧屏这些终端设备上&#xff0c;媒体功能可以算作是我们最常用的场景之一。无论是实现音频的播放、录制、采集&#xff0c;还是视频的播放、切换、循环&#xff0c;亦或是相机的预览、拍照等功能&#xff0c;媒体组件都是必不可少的。以视频功能为例&a…

6-使用nacos作为注册中心

本文讲解项目中集成nacos&#xff0c;并将nacos作为注册中心使用的过程。本文不涉及nacos的原理。 1、项目简介 以一个演示项目为例&#xff0c;项目包含三个服务&#xff0c;调用及依赖如下图&#xff1a; 由图中可以看出&#xff0c;coupon-customer-serv为服务的消费者&a…

Python基础教程: sorted 函数

嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 sorted 可以对所有可迭代的对象进行排序操作&#xff0c; sorted 方法返回的是一个新的 list&#xff0c;而不是在原来的基础上进行的操作。 从新排序列表。 &#x1f447; &#x1f447; &#x1f447; 更多精彩机密、教程…

9.4 Windows驱动开发:内核PE结构VA与FOA转换

本章将继续探索内核中解析PE文件的相关内容&#xff0c;PE文件中FOA与VA,RVA之间的转换也是很重要的&#xff0c;所谓的FOA是文件中的地址&#xff0c;VA则是内存装入后的虚拟地址&#xff0c;RVA是内存基址与当前地址的相对偏移&#xff0c;本章还是需要用到《内核解析PE结构导…

【论文阅读笔记】Emu Edit: Precise Image Editing via Recognition and Generation Tasks

【论文阅读笔记】Emu Edit: Precise Image Editing via Recognition and Generation Tasks 论文阅读笔记论文信息摘要背景方法结果额外 关键发现作者动机相关工作1. 使用输入和编辑图像的对齐和详细描述来执行特定的编辑2. 另一类图像编辑模型采用输入掩码作为附加输入 。3. 为…

第三节-Android10.0 Binder通信原理(三)-ServiceManager篇

1、概述 在Android中&#xff0c;系统提供的服务被包装成一个个系统级service&#xff0c;这些service往往会在设备启动之时添加进Android系统&#xff0c;当某个应用想要调用系统某个服务的功能时&#xff0c;往往是向系统发出请求&#xff0c;调用该服务的外部接口。在上一节…

Vue批量全局处理undefined和null转为““ 空字符串

我们在处理后台返回的信息&#xff0c;有的时候返回的是undefined或者null&#xff0c;这种字符串容易引起用户的误解&#xff0c;所以需要我们把这些字符串处理一下。 如果每个页面都单独处理&#xff0c;那么页面会很冗余&#xff0c;并且后期如果有修改容易遗漏&#xff0c…

生成式AI与大语言模型,东软已经准备就绪

伴随着ChatGPT的火爆全球&#xff0c;数以百计的大语言模型也争先恐后地加入了这一战局&#xff0c;掀起了一场轰轰烈烈的“百模大战”。毋庸置疑的是&#xff0c;继方兴未艾的人工智能普及大潮之后&#xff0c;生成式AI与大语言模型正在全球开启新一轮生产力革新的科技浪潮。 …

PostgreSQL (Hologres) 日期生成

PostgreSQL 生成指定日期下一个月的日期 &#xff08;在Hologres中&#xff0c;不支持递归查询&#xff09; SELECTto_char(T, YYYYMMDD)::int4 AS date_int,date(T) AS date_str,date_part(year, T)::int4 AS year_int,date_part(month, T)::int4 AS month_int,date_part(da…

中职组网络安全B模块-渗透提权2

任务五&#xff1a;渗透提权2 任务环境说明&#xff1a; 仅能获取xxx的IP地址 用户名&#xff1a;test&#xff0c;密码&#xff1a;123456 访问服务器主机&#xff0c;找到主机中管理员名称&#xff0c;将管理员名称作为Flag值提交&#xff1b; Flag:doyoudoyoudo 访问服…

使用Pytorch从零开始构建DCGAN

在本文中&#xff0c;我们将深入研究生成建模的世界&#xff0c;并使用流行的 PyTorch 框架探索 DCGAN&#xff08;生成对抗网络 (GAN) 的一种变体&#xff09;的实现。具体来说&#xff0c;我们将使用 CelebA 数据集&#xff08;名人面部图像的集合&#xff09;来生成逼真的合…