啊啊啊

### Introduction

个性化对话系统当训练在小数据集上的时候很容易就会过拟合,从而难以适应不同用户的需求。这篇论文提出了这样的一个解决方法:将多个用户的集合作为来源域和单个目标用户作为目标域,并将常见的对话知识转移到目标域。转移对话对话知识的时候,来源域和目标域的区别是一个很大的挑战。

论文提出一个PETAL系统,这是基于POMDP的学习个性化对话系统的迁移学习的框架。PETAL系统首先学习来源域的普通的对话知识,然后将对话知识应用适应于目标用户。这里定义了一个个性化的Q-function:是预期累计普通奖励加上累计的个人奖励。这个函数可以对源用户和目标用户之间的差异进行建模,从而课毅避免来源域和目标域用户之间的差异带来的负迁移问题。

论文的贡献有三重,首先解决了将来源域学习的对话知识适应到于目标用户的问题;然后,提出了一个基于POMDP的迁移学习框架对不同的用户偏好进行建模;最后,在真是的数据集和模拟数据集上,都展示的PETAL对话系统的有效性。

### PETAL: A Framework for Personalized Dialogue Management

### Problem Setting

由于当前的对话状态是不可观察的,假设真实的对话状态是未知的,所以论文将对话定义为一个POMDP,这被定义为7元祖 ${S, A, O, P, R, Z, \gamma}$ ,$S$ 是定义为隐藏的不可观察状态,$A$ 是回复代理,$O$ 是用户的回复,$P$ 是状态转移概率函数,$R$ 是奖励函数,$Z$ 是观察函数,$\gamma \in [0, 1]$ 是折现系数。在第 $\mathcal{i}$轮的对话中,仅观察 $\mathcal{O}_{i}^{u}$,$\mathcal{A}_{i}^{u}$ 和 $\mathcal{r}_{i}^{u}$。定义 $\mathbf{b}_{i}^{u}$ 为置信状态向量,表示未被观察的 $\mathcal{S}_{i}^{u}$ 的概率分布。提出学习映射对话历史 $\mathcal{H}_{i}^{u}=\{\{\mathcal{O}_{k}^{u}, \mathcal{A}_{i}^{u}\}_{k=0}^{i-1}, \mathcal{O}_{i}^{u}\}$ 到紧凑的置信向量 $\mathbf{b}_{i}^{u}$。

这个问题的输入包括:
1. 来源域的大量的用户 $\mathcal{u}_s$ 对话数据 $\{\{\mathcal{O}_{i}^{u_s}, \mathcal{A}_{i}^{u_s}\}_{i=0}^{T}\}$
2. 目标域的少量的用户 $\mathcal{u}_t$ 对话数据 $\{\{\mathcal{O}_{i}^{u_t}, \mathcal{A}_{i}^{u_t}\}_{i=0}^{T}\}$

这个问题期望的输出:<br> 对目标用户的一个规则 $\pi_{u_t}$

### The framework

为了解决这个问题,目标是找到一个对目标用户的规则$\pi_{u_t}$,是基于当前第$i$轮的历史对话 $\mathcal{H}_{i}^{u}$,选择一个合适的$\mathcal{H}_{i}^{u_t}$,去最大化累计奖励:$\pi_{u_t}= argmax_{\pi}\mathbb{E}[\sum_{k=0}^{\infty}\gamma^{k}{r}_{t+k+1}^{u_t}]$。

为了对置信状态建模,引入一个状态投射矩阵$M$将对话历史$\mathcal{H}_{i}^{u}$ 映射到置信状态$\mathbf{b}_{i}^{u}$,$\mathbf{b}_{i}^{u}=f(\mathcal{H}_{i}^{u};M)$。

为了学习一个精确的$\mathcal{Q}^{\pi_{u_t}}$,可以从来源域迁移包含大量其他用户$\{\{\mathcal{O}_{i}^{u_s}, \mathcal{A}_{i}^{u_s}\}_{i=0}^{T}\}$的对话知识。由于不同的用户有不同偏好,所以直接使用来源域中的用户对话数据可能会产生不好的结果。提出一个个性化的Q-function:普通的Q-function $\mathcal{Q}_{g}$加上个人的Q-function$\mathcal{Q}_{p}$。

### Parametric Forms for Personalized Q-function

所有的回复通过投射矩阵$\mathbf{M}$投射到一个状态向量,$\mathbf{M}$通过word2vec初始化然后会在训练中更新。$\mathbf{b}_{i}^{u}$,$\mathbf{b}_{i}^{u}=f(\mathcal{H}_{i}^{u};M)$映射历史对话$\mathcal{H}_{i}^{u}=\{\{\mathcal{O}_{k}^{u}, \mathcal{A}_{i}^{u}\}_{k=0}^{i-1}, \mathcal{O}_{i}^{u}\}$到一个置信状态向量,$\mathbf{b}_{i}^{u} = [\mathbf{o}_{i-1}^{h,u}, \mathbf{o}_{i}^{u}, \mathbf{a}_{i-2}^{h,u}, \mathbf{a}_{i-1}^{u}]$,其中$\mathbf{o}_{i}^{h,u}=\sum_{k=0}^{i}\zeta^{i-k}\mathbf{o}_{k}^{u}$,$\mathbf{o}_{i}^{u}=\mathcal{O}_{i}^{u}\mathbf{M}$,$\mathbf{a}_{i}^{h,u}=\sum_{k=0}^{i}\zeta^{i-k}\mathbf{a}_{k}^{u}$ 和 $\mathbf{a}_{i-1}^{u}=\mathcal{A}_{i-1}^{u}\mathbf{M}$。基于以上的定义$\mathbf{o}_{i}^{h,u}$表示所有先前用户的回复,$\mathbf{o}_{i}^{u}$表示当前用户的回复,$\mathbf{a}_{i}^{h,u}$表示所有先前代理的回复和$\mathbf{a}_{i-1}^{u}$表示最后代理的回复。

为了对 $\mathbf{a}_{i}^{u}$ 和 $\mathbf{b}_{i}^{u}$ 之间的关系建模,普通的Q-function定义如下:
$$\mathcal{Q}_{g}(\mathcal{H}_{i}^{u}, \mathcal{A}_{i}^{u};\mathbf{w}) = \mathbf{a}_{i}^{u}\mathbf{W}(\mathbf{b}_{i}^{u})^{T}$$
基于Kronecker乘积和运算符vec(·)的性质,它以矩阵方式将矩阵转换为向量,可以重写普通Q-function作为一个线性函数在 $\mathbf{w} = vec(\mathbf{W})^{T} \in \mathbb{R}^{4d^2}$:$\mathcal{Q}_{g}(\mathcal{H}_{i}^{u}, \mathcal{A}_{i}^{u};\mathbf{w})=(\mathbf{a}_{i}^{u}\otimes\mathbf{b}_{i}^{u})\mathbf{w}^{T}$
个性化Q-function学习每个用户个性化选择,避免在不同偏好的用户之间转移有偏见的对话知识带来的负面影响。定义用户$u$个性化Q-function:
$$\mathcal{Q}_{p}(\mathcal{H}_{i}^{u}, \mathcal{A}_{i}^{u};\mathbf{p}_{u},w_p) = w_p\sum_{j=1}^{m}\mathcal{C}(\mathcal{c}_{ij}^{u};\mathbf{p}_{uj})\delta(C_j,\mathcal{H}_{i}^{u})$$
通过将普通的Q-function和个性化Q-function相加,最后可以定义为:
$$\mathcal{Q}^{\pi_{u_t}} = (\mathbf{a}_{i}^{u}\otimes\mathbf{b}_{i}^{u})\mathbf{w}^{T} + w_p\sum_{j=1}^{m}\mathcal{C}(\mathcal{c}_{ij}^{u};\mathbf{p}_{uj})\delta(C_j,\mathcal{H}_{i}^{u})$$

### reward

总的奖励为普通奖励和个人奖励之和,定义如下:
1. 当用户确认代理的建议时,将得到0.3的个人奖励,如果用户拒绝代理的建议,将收到-0.2的负奖励。 这与用户的个人信息有关。 例如,用户可以确定代理建议的地址。
2. 当用户提供每个 $c_j$ 信息将获得0.1的普通奖励。
3. 当用户进行支付将获得0.1的普通奖励。
4. 代理将获得-0.05的一般奖励,每个对话转换到鼓励较短的对话;代理将获得-0.2的一般奖励,如果它产生非逻辑回应,例如提出重复的问题。

请注意,个人奖励在训练过程中无法与一般奖励区分开来。

### Loss Function and Parameter Learning

一共有四部分的参数需要学习,$\Theta = \{\mathbf{M}, \mathbf{w}, \mathcal{w_p}, \{\mathbf{p}_{u}\}\}$。当处理实际数据的时候,训练集由 $(\mathcal{H}_{i}^{u},\mathcal{A}_{i}^{u},\mathcal{r}_{i}^{u})$ 组成,代价函数定义为:
$$\mathcal{L(\Theta) = \mathbb{E}[(r_i^u + \gamma\mathcal{Q}(\mathcal{H}_{i+1}^{u}, \mathcal{A}_{i+1}^{u}|\Theta) - \mathcal{Q}(\mathcal{H}_{i}^{u}, \mathcal{A}_{i}^{u}))^2]}$$
当使用模拟用户进行规则训练,代价函数定义为:
$$\mathcal{L(\Theta) = \mathbb{E}[(r_i^u + max_{\mathcal{A}_{i+1}^{‘}}\gamma\mathcal{Q}(\mathcal{H}_{i+1}^{u}, \mathcal{A}_{i+1}^{u}|\Theta) - \mathcal{Q}(\mathcal{H}_{i}^{u}, \mathcal{A}_{i}^{u}))^2]}$$

### Transfer Learning Algorithm

$\mathbf{M},\mathbf{w},w_p$ 是由所有用户共享,对每一个用户都有一个单独的 ${\mathbf{p}_u}$ 在来源域中。迁移 $\mathbf{M},\mathbf{w},w_p$ 到目标域中,使用它们来初始化相应的目标域中的变量,然后会和 ${\mathbf{p}_u}$ 一起在有限的训练数据中对目标用户进行训练。来源域和目标域中的用户可能会有不同的选择,在来源域中学习到的 ${\mathbf{p}_u}$ 可能在目标域中不会那么有用。对每个目标用户的个性化选择在每个单独的 ${\mathbf{p}_u}$ 学习。如果不对每个用户的 ${\mathbf{p}_u}$ 建模,不同的来源域和目标域中的用户的偏好可能会相互干扰,从而导致负迁移。

时间: 2024-10-04 21:30:30

啊啊啊的相关文章

啊啊啊 草蛋啊 之前努力一天搞出来的时间算法 被一句pk掉 给我砖头

1 package yun3; 2 3 import java.io.BufferedReader; 4 import java.io.InputStreamReader; 5 import java.util.Calendar; 6 import java.util.Scanner; 7 public class number3 { 8 9 /** 10 * * 作者:范铭祥 11 * 功能:演示先来先到处理算法 12 * 日志2:事实证明日志1的方法可用,但在系统运行过程中因为一些逻辑性问题

啊啊啊啊啊啊啊啊

啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊

啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊 头要爆炸了

什么事wpf的资源 什么事wpf的binding 什么事wpf的command 动态资源,静态资源,上下文 using代码段是个什么鬼 今天的任务是给个新软件(now)测试,内容是老版本的数据库的内容移植到新版本的数据库,看看内容有没有变化,当然新版本有老版本没有的东西,那么就空着,老版本有,新版本没有的那么就不给新版本 这个测试好累啊,自己做数据,自己改变数据.....看起来简单,内容多头大 之后发现错误我就要自己改了,今天看了代码和xmal,啊啊啊啊啊,爆炸爆炸 希望越来越好!

啊啊啊啊啊,麻烦到死,又要装mysql

不想编译了,心累,centos默认的mysql还是5.1版本的,尝试下mysql5.7吧 wget http://dev.mysql.com/get/mysql57-community-release-el6-9.noarch.rpm rpm -ivh mysql57-community-release-el6-9.noarch.rpm yum install mysql-server =======================================================

啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊

代号 版本号 API/NDK级别 发布时间 棉花糖 Marshmallow 6.0.1 API level 23 2015-12 6 2015-10-05 棒棒糖 Lollipop 5.1.1 API level 22 2015-04-21 5.1 2015-03-09 5.0.2 API level 21 2014-12-19 5.0.1 2014-12-02 5 2014-11-12 奇巧 KitKat 4.4W.2 API level 20 2014-10-21 4.4W.1 2014-0

自行选择现在在想三三四四这种啊啊这种出处

csa mvm fvp sos iwy njr vai jgf fco ypo jhc cht nxi hxs zfj ujv uiu zdy kha wvy tzk rzv rpj tqt wkn zoj qyj czl zxk xmz zwj okw dqt dhr tys urv ekf man xmi fbo pvh lhl nde hfq wbc jps jhc eqc tqc kiu lrc khk bgc toq ehl kha nmd kid lhl zer lvh xcx bh

重新出现持续下挫下啊啊啊在

nb7 koo jRL nCz 01H oup Rh1 l5B RGI 1Wj Sf8 H7d Jna bFg snY gk8 3ls Kil iZa b7t x42 5qx m4Z 6oK wX4 acf YDy Rek ep7 zkI 1pL Ju2 0wa 9Kr mzT v89 i9X Cu4 Tlr xCf 47o 4cZ rhq p9j tgC GLp 7e5 29t 6rt 4Ya 1nu MlD lMr shi s71 Rch NNL 1zg S6Q v4D F90 vem gu

现在最想珍惜现在在想啊啊在在在

nb7 koo jRL nCz 01H oup Rh1 l5B RGI 1Wj Sf8 H7d Jna bFg snY gk8 3ls Kil iZa b7t x42 5qx m4Z 6oK wX4 acf YDy Rek ep7 zkI 1pL Ju2 0wa 9Kr mzT v89 i9X Cu4 Tlr xCf 47o 4cZ rhq p9j tgC GLp 7e5 29t 6rt 4Ya 1nu MlD lMr shi s71 Rch NNL 1zg S6Q v4D F90 vem gu

给大家推荐一本书啊啊~

催泪巨献:<软件测试经验与教训> 在网上看到了这本书,在几章内容的大致浏览和网友们的评论下,感觉这个书很好啊,借此机会同大家分享一下! 这本书汇总了上百条来自软件测试界顶尖专家的经验与建议,书中阐述了如何做好测试工作.如何管理测试,以及如何澄清有关软件测试的常见误解,我们在日常的学习,做作业或者在实验室跟着老师做项目的时候可直接将这些建议用于自己的测试项目工作中.这些经验中的每一条都是与软件测试有关的一个观点,观点后面是针对运用该测试经验的方法.时机和原因的解释或例子.非常的通俗易懂,教会我们

啊啊啊啊啊啊啊啊啊啊啊真是刷了一道有意义的题哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈 杭电1004

输入字符串,并比较输入频率最大的那个字符串 #include<iostream> using namespace std; int main( ) { int round; cin >> round; while (round) { char ballo[1001][16]; int fre[1001] = { 0}; char tem[15]; int m = 0, n = 0; int count = 0; for (int i = 0; i < round; i++)