首页 > 代码库 > 啊啊啊
啊啊啊
### 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}$ 建模,不同的来源域和目标域中的用户的偏好可能会相互干扰,从而导致负迁移。
啊啊啊