论文地址,作者为 Zhong et al.,发表于 2020 年。 这论文现在叫 Endowing Empathetic Dialogue Systems with Personas。
摘要以及引言
移情对话模型已经在很多领域被证明能够提高用户的满意度和改进任务的结果。在心理学上,persona 被证明与 personality 高度关联,进而影响移情(博主注:我实在不知道 persona 和 personality 有什么区别)。此外,经我们的实证分析也认为 persona 在移情对话中扮演者重要的角色。为此,我们提出了一个 persona-based 移情对话的新任务,并首次对 persona 在移情反应上的影响进行了实证研究。具体而言,我们首次提出了一个用于 persona-based 移情对话的新的大规模多领域数据集 Persona-based Empathetic Conversion(PEC)。然后我们还提出了 CoBERT,一个基于 BERT 的高效回复检索模型,在我们的数据集上获得了一流的性能(博主吐槽:你们自己首次提出的数据集,当然是一流的)。最后做了总结。值得注意的是我们的结果展示出,当 CoBERT 在移情对话上训练而不是非移情对话上训练时,persona 能够提高移情回复的效果。 移情(empathy),严格来讲是情感共情(affective empathy),指的是用合适的情感(emotion)对他人的精神状态做出回应的能力。 当产生移情回应时,大多数现存的研究都没有考虑 persona。XiaoIce 有,但是她的 persona 是不可配置的,因此很难满足各种人类的需求。
Related Work
Empathetic Conversational Models:尽管对神经对话模型由越来越多的研究,但是在使对话具有移情的特性上依旧只有很少的关注,直到现在(一堆参考论文),可能是由于移情对话数据的缺少。Rashkin et al.(2019) 提出了首个移情对话数据集 EmpatheticDialogues(ED)。 Persona-based Conversational Models:今年,浮现的研究趋势是个性化的对话模型(personalizing conversational models)(一堆参考论文)。 Retrieval-based Conversational Models:……
The PEC dataset
本节介绍采集过程和PEC 数据集的统计。
Data Source
我们从两个 reddit 的标签(类似一个吧) happy 和 offmychest(吐槽/吐苦水)收集移情对话。我们选择这两个标签,是因为他们发的内容具有迥异的情绪,并且他们的评论比之随意的对话,明显更有移情效果。
Conversation Collection
Reddit 上的讨论是以线程的形式组织的,每个线程有一个帖子以及直接或者间接的评论。每一个线程都是一棵树(tree)的形式。因此,如果给定一个带有 \(n\) 个结点的线程,我们可以提取出 \(n-1\) 条对话。我们随机地将对话分割为 8:1:1。
Persona Collection
略,看不懂。
Data Processing
对于每次对话,我们保留最多 6 条最近的轮数。我们过滤对话以确保:1)每条帖子在 2-90 个单词;2)每条评论在 2-30 个单词(帖子的标题通常长于评论。在 happy 上 87% 的帖子少于 90 个单词,82% 的评论少于 30 个单词。在 offmychest 上 24% 的帖子少于 90 个单词,59% 的评论少于 30 个单词);3)所有的发言者最少有一个 persona 语句;4)the last speaker is different from the first speaker in each conversation(看不懂)。
Data Annotations
略。
Comparisions with Related Datasets
表 4 呈现了 PEC 和相关数据集的比较情况。
Our CoBERT Model
本节介绍提出的模型,如图 2 所示。
任务定义
给定对话数据集 \(\mathcal{D}\),由 N 条格式为 \((X, P, y)\) 的对话组成。其中 \(X = \{X_1, X_2, \cdots, X_{n_X}\}\) 表示 \(n_X\) 条上下文语句,\(P = \{P_1, P_2, \cdots, P_{n_P}\}\) 表示回复者的 \(n_P\) 条 persona 语句,\(y\) 表示 \(X\) 的回复。the task of response selectioncan be formulated as learning a function \(f(X, P, y)\) that assigns the highest score to the true candidate \(y\) and lower scores to negative candidates given \(X\) and \(P\)。在推理阶段,训练好的模型选择候选列表中分数最高的语句。
BERT表征
在输入 BERT 之前,将所有上下文语句拼接成一个单一的文本语句。由于 persona 语句没有顺序可言,所以我们将随机顺序的 persona 语句拼接起来。在 context,persona 和 response 输入进 BERT encoder 之后,我们获取了他们的向量表征 \(X \in \mathbb{R}^{m \times d}, P \in \mathbb{R}^{q \times d} and Y \in \mathbb{R}^{n \times d}\),\(d\) 代表 BERT 的嵌入大小,\(m, q, n\) 分别代表 context, persona, response 的序列长度。注意,不同的 segment id 用于区分上下文中 Speaker 和 Respondent 的话语。
Hop-1 Co-attention
给定 \(X\) 和 \(Y\),我们使用 co-attention(Lu et al., 2016)来学习 first order mathcing 信息。具体来讲,我们先计算单词之间的类同(word-word affinity)矩阵 \(A_{XY} \in \mathbb{R}^{m \times n}\): \[A_{XY} = XY^T \] 然后计算上下文与回复之间的(context-to-response)attention \(A_{X2Y} \in \mathbb{R}^{m \times n}\),回复和上下文之间的(response-to-context)attention \(A_{Y2X} \in \mathbb{R}^{n \times m}\): \[ \begin{align} A_{X2Y} & = softmax(A_{XY}) \\ A_{Y2X} & = softmax(A^T_{XY}) \\ \end{align} \] softmax 计算第二个维度。最终,我们获得了 attended context 表征 \(X' = A_{X2Y} Y \in \mathbb{R}^{m \times d}\) 以及 attended response 表征 \(Y'_X = A_{Y2X} X \in \mathbb{R}^{n \times d}\)。 为了聚合 first order matching 信息,并提取 discriminative 特征,我们对 \(X'\) 和 \(Y'_X\) 沿着序列维度进行 max-pooling,得到 \(X'_{max} \in \mathbb{R}^d\) 和 \(Y'_{X,max} \in \mathbb{R}^d\)。