文章目录
- 📃 Abstract
- 🔭 Contributions
- 🔍 Approach
- ✨ Agent for StickerConv
- ✨ StickerConv Dataset
- ✨ PEGS
- ✨ 多模态共情回复评价
- 📊 Experiments
- 📄 Conclusion
- 🌐 开源网址
Project Page: StickerConv Project Page
Accepted: ACL 2024 Main
📃 Abstract
Sticker (直译为贴纸,这里我们更愿意称其为表情包) 虽然被广泛认为可以增强在线互动中的共情交流,但在当前的共情对话研究中仍未得到充分的探索,这主要是由于缺乏全面的数据集。在本文中,我们介绍了用于 Agent for StickerConv (Agent4SC),它使用协作的多智能体交互来真实地模拟人类使用 sticker 的行为,从而增强了多模态的共情交流。在此基础上,我们开发了一个多模态共情对话数据集 StickerConv,包括 12.9K 个对话会话,5.8K 个不重复的 stickers 和 2K 个不同的对话场景。该数据集可作为多模态共情生成的基准。为了进一步推进,我们提出了 PErceive and Generate Stickers (PEGS),这是一个多模态共情回复生成框架,辅以一套基于 LLM 的综合共情评价指标。我们的实验证明了 PEGS 在生成情境相关和情感共鸣的多模态共情回复方面的有效性,有助于推进更细致入微和引人入胜的共情对话系统。我们的数据集和代码均已开源。
🔭 Contributions
- 我们引入了一个基于 LLM 的多智能体 (multi-agent) 系统 Agent for StickerConv (Agent4SC),它将 sticker 集成到共情对话中,确保与人类交互一致的上下文一致性、多样性和共情。使用 Agent4SC,我们创建了一个多模态共情对话数据集 StickerConv。
- 我们设计了 PErceive and Generate Stickers (PEGS),这是一个多模态共情回复生成框架,它直观地结合了基于对话的动态的情感和上下文的 sticker。PEGS 熟练地处理多模态输入,产生共情文本回复,并适当地使用 sticker 来增强这些回复。
- 我们提出一种评估多模态共情回复的方法。它利用 LLM 来评估这些回复的质量,特别关注共情、一致性和排名。
🔍 Approach
✨ Agent for StickerConv
面对缺乏多模态共情回复任务数据集的关键挑战,我们利用 LLMs 制作了自己的数据集。然而,LLMs 在把握细微的人类情感和在明确指令之外发起行动方面遇到困难。这些限制使得 LLMs 和 大型多模态模型 (Large Multimodal Models, LMMs) 在产生多模态共情回复方面不那么精通。为了解决这些问题,我们引入了 Agent for StickerConv (Agent4SC),这是一个基于 LLM 的多智能体系统,旨在模拟人类对话的模式。Figure 2 展示了 Agent4SC 的概述。通过整合多个模块和 sticker 的使用策略,Agent4SC 旨在产生动情和多样化的共情回复,从而克服 LLMs 在共情参与方面的固有缺陷。
Figure 2: Agent4SC 的概述。记忆模块 (Memory) 和计划模块 (Plan) 使智能体能够模仿人类的观察和思考,克服了 LLMs 无法掌握细微情感的问题。行动模块 (Action) 支持生成与人类类似的情感回复。角色模块 (Profile) 为每个 agent 提供不同的反应和行为。此外,Agent4SC 使用 sticker 作为更自然对话的工具,允许 agent 像人类一样选择 sticker。这些模块使观察、反应和行为做成流水线,而管理 Agent (Manager) 保证性能和质量。
- 角色模块 (Profile Module): 由 Persona 和 Situation 组成,定义了用户的个性特征和移情交互的行为模式。Persona 包括用户的性格特征、背景和经历;Situation 描述了他们当前的环境和情绪状态。我们基于多样化的角色种子数据,使用 Self-Instruct 的方法构造了 2000 个独特的用户画像,包含丰富的人物特征和情感标签,使 Agent4SC 能够模拟多种不同的用户角色。
- 工具模块 (Tool Module): 在 SER30K 数据集的基础上,我们使用 LLaVA 1.5 对 sticker 数据进行重新标注,并采用 CoT 方法结合 GPT-3.5 Turbo 整理每个 sticker 的标注信息,形成包括 “description, emotion, recommendation” 的三条知识,并以 <image, knowledge> 对的形式构建了 sticker 向量数据库。此外,我们定义了 agent 的关键动作 “retrieve”,允许 agent 通过 query 主动调用 sticker 向量数据库中的 sticker。
- 计划模块 (Plan Module): 为了确保 Agent4SC 能够模仿人类的思考和行动,我们设计了计划模块,包含三个关键动作:“Intention” (基于用户画像和对话历史评估是否使用 sticker),“Query” (如果决定使用 sticker,生成计划使用的 sticker 描述,然后向 sticker 向量数据库请求 top-k 个相似的 sticker),“Select” (基于用户画像与对话历史,从这 top-k 个 sticker 中选择一个最合适的 sticker)。
- 记忆模块 (Memory Module): 为了确保 Agent4SC 的对话与行为具有连贯性,我们设计了记忆模块,用于存储和检索对话历史和用户画像。
- 动作模块 (Action Module): 动作模块是 Agent4SC 与外界的交流接口,它承接计划模块的输出,基于用户画像和对话历史生成共情回复和 sticker。
- 管理智能体 (Management Agent): 为了确保 Agent4SC 的性能和质量,我们设计了管理智能体,用于监督和调整Agent4SC的行为。
✨ StickerConv Dataset
Figure 1: StickerConv 中的多模态对话示例。双方都可以利用 sticker 来表达自己的情绪,增强互动性和表现力。系统可以根据对话内容 (绿色文字) 与用户产生共鸣。
利用 Agent4SC,我们构建一个多模态共情对话数据集 StickerConv。在我们的数据集创建中,我们定义了两个角色:User (对话发起者,拥有2000个生成的人物的用户画像) 和 System (倾听者和共情者)。为了模拟人类对 sticker 的使用,sticker 数据集被分为 100 个矢量数据库,每个数据库都确保 sticker 的情感分布一致。对于每个会话,User 和 System 都访问随机选择的矢量数据库,反映人类 sticker 使用情况并丰富贴纸多样性。
StickerConv 数据集的统计数字
StickerConv 由 12,931 个会话,67,505 个 sticker (5.8K 个不重复的 sticker) 和 2K 个用户个性组成。每次会话平均有 5.22 个 sticker 和 5.49 个对话轮数。情感标签分布分析,如 Figure 4 所示,突出了 User 和 System 在 sticker 使用上的差异,反映了他们独特的角色。
Figure 4: 用户和系统在选择 sticker 时的情绪分布。
✨ PEGS
我们设计了一个多模态共情回复生成框架 PEGS,它具有感知和生成 sticker 的能力。Figure 3 说明了我们的框架的体系结构。我们在此框架下演变出 PEGS-Ret/Gen/RAG 三种模型,对应于不同的图像生成策略,分别表示检索、生成和检索增强生成的图像生成方法。技术上,我们利用 EVA-CLIP 中的ViT-G/14、BLIP-2 中的 Q-Former 和一个线性层对图像进行编码。使用 LMM 中广泛使用的语言模型 Vicuna 进行语言建模。Stable Diffusion (SD) 作为图像解码器。
Figure 3: PEGS 框架的体系结构。输入 sticker 由图像编码器、Q-Former和线性层进行联合编码,Vicuna 作为语言模型。LLM 的输出在不同的模型版本中激活两组不同的 tokens: 一组用于图像检索,另一组作为文本条件。随后,所述冻结图像解码器生成图像。
- 多模态输入感知
我们将多模态输入转换成可以由 LLM 处理的特征向量 (即 input_embeds)。具体来说,将每个文本 token 嵌入到向量 e t ∈ R 1 × d e_t\in \mathbb{R}^{1\times d} et∈R1×d,而每张图像首先通过预训练的视觉编码器进行编码,然后通过Q-Former和线性投影层得到对齐的特征向量 e v ∈ R 32 × d e_v\in \mathbb{R}^{32\times d} ev∈R32×d。
- 多模态输出生成
扩展词表. 我们使用额外的视觉 tokens 集合
V
i
m
g
=
{
[
I
M
G
1
]
,
[
I
M
G
2
]
,
…
,
[
I
M
G
{
r
}
]
}
V_\mathrm{img}=\{\mathrm{[IMG1]}, \mathrm{[IMG2]}, \ldots, \mathrm{[IMG\{} r \mathrm{\}]}\}
Vimg={[IMG1],[IMG2],…,[IMG{r}]} 来扩展文本词汇表
V
V
V。我们将原始的 word embedding 矩阵表示为
E
∈
R
∣
V
∣
×
d
E\in \mathbb{R}^{|V|\times d}
E∈R∣V∣×d。对于扩展后的词表
V
∗
=
V
∪
V
i
m
g
V^* = V \cup V_{\mathrm{img}}
V∗=V∪Vimg 的 embeddings 矩阵
E
∗
∈
R
∣
V
∗
∣
×
d
E^*\in \mathbb{R}^{|V^*|\times d}
E∗∈R∣V∗∣×d ,对添加的 special tokens 的 embeddings
E
i
m
g
∈
R
r
×
d
E_{\mathrm{img}}\in \mathbb{R}^{r\times d}
Eimg∈Rr×d 进行随机初始化,而保留原始的文本 token 的 embeddings
E
E
E:
E
∗
[
0
:
∣
V
∣
,
:
]
=
E
\begin{equation} E^*[0: |V|, :] = E \end{equation}
E∗[0:∣V∣,:]=E
我们将视觉 tokens 分为两组,其中前面的
k
k
k个 tokens 用于图像检索,后面的
r
−
k
r-k
r−k 个 tokens 用于图像生成:
V
r
e
t
=
{
[
I
M
G
1
]
,
…
,
[
I
M
G
{
k
}
]
}
V
g
e
n
=
{
[
I
M
G
{
k
+
1
}
]
,
…
,
[
I
M
G
{
r
}
]
}
\begin{align} &V_{\mathrm{ret}} =\{\mathrm{[IMG1]}, \ldots, \mathrm{[IMG\{} k \mathrm{\}]}\} \\ &V_{\mathrm{gen}}=\{\mathrm{[IMG\{}k+1\mathrm{\}]}, \ldots, \mathrm{[IMG\{} r \mathrm{\}]}\} \end{align}
Vret={[IMG1],…,[IMG{k}]}Vgen={[IMG{k+1}],…,[IMG{r}]}
其中
V
r
e
t
V_{\mathrm{ret}}
Vret 用于 PEGS-Ret 和 PEGS-RAG,而
V
g
e
n
V_{\mathrm{gen}}
Vgen 用于PEGS-Gen 和 PEGS-
文本生成. 接收多模态输入,目标是生成文本 tokens 和视觉 tokens
{
[
I
M
G
{
i
}
]
}
i
=
1
r
\{\mathrm{[IMG\{}i{\}]}\}_{i=1}^{r}
{[IMG{i}]}i=1r 的联合序列。具体来说,生成的 token 可以表示为
U
=
{
u
1
,
…
,
u
k
}
U=\{u_1, \ldots, u_k\}
U={u1,…,uk},其中
u
i
∈
V
∗
u_i\in V^*
ui∈V∗。损失函数
L
l
m
\mathcal{L}_{\mathrm{lm}}
Llm 定义为:
L
l
m
=
−
∑
i
=
1
k
log
p
(
u
i
∣
s
,
u
1
,
…
,
u
i
−
1
;
θ
,
E
i
m
g
)
\begin{equation} \mathcal{L}_{\mathrm{lm}} \!=\! -\!\sum_{i=1}^k\! \log p(u_i|s, u_1, \ldots, u_{i-1}; \theta, E_{\mathrm{img}}) \end{equation}
Llm=−i=1∑klogp(ui∣s,u1,…,ui−1;θ,Eimg)
其中
s
=
{
e
m
(
1
)
,
e
m
(
2
)
,
…
,
e
m
(
l
)
}
s=\{e_{m}^{(1)}, e_{m}^{(2)}, \ldots, e_{m}^{(l)}\}
s={em(1),em(2),…,em(l)},
m
∈
{
t
,
v
}
m \in \{t,v\}
m∈{t,v} 指代模态。原始 LLM 的权重
θ
\theta
θ 被冻结,我们只更新
E
i
m
g
E_{\mathrm{img}}
Eimg。
图像检索. 对于图像检索,PEGS 通过对比学习将
V
r
e
t
V_{\mathrm{ret}}
Vret 对应的 hidden states
h
r
e
t
h_{\mathrm{ret}}
hret 对齐到检索空间中。 ${W}_{\mathrm{t}}\in\mathbb{R}^{d \times e} $ and
W
i
∈
R
p
×
e
{W}_{\mathrm{i}} \in \mathbb{R}^{p \times e}
Wi∈Rp×e 弥补了语义上的差距,调整了维度。余弦相似度用于度量投影向量的相似度:
sim
(
x
,
y
)
=
(
W
t
T
h
r
e
t
(
x
)
)
T
(
W
i
T
ν
ϕ
(
y
)
)
∥
W
t
T
h
r
e
t
(
x
)
∥
∥
W
i
T
ν
ϕ
(
y
)
)
∥
\begin{equation} \text{sim}(x, y) = \frac{({W}_{\mathrm{t}}^T h_{\mathrm{ret}}(x))^T({W}_{\mathrm{i}}^T \nu_\phi(y))}{\Vert{W}_{\mathrm{t}}^T h_{\mathrm{ret}}(x)\Vert \Vert{W}_{\mathrm{i}}^T \nu_\phi(y))\Vert} \end{equation}
sim(x,y)=∥WtThret(x)∥∥WiTνϕ(y))∥(WtThret(x))T(WiTνϕ(y))
其中,
ν
ϕ
\nu_\phi
νϕ 为图像编码器。投影向量用于最小化 InfoNCE 损失, InfoNCE 由 N 个文本-图像对
(
x
i
,
y
i
)
(x_i, y_i)
(xi,yi) 中的 text-to-image (t2i) 和 image-to-text (i2t) 损失组成:
L
t
2
i
=
−
1
N
∑
i
=
1
N
(
log
exp
(
sim
(
x
i
,
y
i
)
/
τ
)
∑
j
=
1
N
exp
(
sim
(
x
i
,
y
j
)
/
τ
)
)
L
i
2
t
=
−
1
N
∑
i
=
1
N
(
log
exp
(
sim
(
x
i
,
y
i
)
/
τ
)
∑
j
=
1
N
exp
(
sim
(
x
j
,
y
i
)
/
τ
)
)
\begin{align} \mathcal{L}_{\mathrm{t2i}} \!&=\! -\frac{1}{N}\! \sum_{i=1}^N\!\left(\!\log\! \frac{\exp(\text{sim}(x_i, y_i)\!/\!\tau)}{\sum_{j=1}^N\! \exp(\text{sim}(x_i, y_j)\!/\!\tau)}\!\right)\\ \mathcal{L}_{\mathrm{i2t}} \!&=\! -\frac{1}{N} \!\sum_{i=1}^N\!\left(\!\log\! \frac{\exp(\text{sim}(x_i, y_i)\!/\!\tau)}{\sum_{j=1}^N\! \exp(\text{sim}(x_j, y_i)\!/\!\tau)}\!\right) \end{align}
Lt2iLi2t=−N1i=1∑N(log∑j=1Nexp(sim(xi,yj)/τ)exp(sim(xi,yi)/τ))=−N1i=1∑N(log∑j=1Nexp(sim(xj,yi)/τ)exp(sim(xi,yi)/τ))
L
r
e
t
=
1
2
(
L
t
2
i
+
L
i
2
t
)
\begin{equation} \mathcal{L}_{\mathrm{ret}} = \frac{1}{2}(\mathcal{L}_{\mathrm{t2i}} + \mathcal{L}_{\mathrm{i2t}}) \end{equation}
Lret=21(Lt2i+Li2t)
L
r
e
t
\mathcal{L}_{\mathrm{ret}}
Lret 是用于优化用于检索的投影层的损失。
图像生成. 我们将输出的视觉 tokens
V
g
e
n
V_{\mathrm{gen}}
Vgen 对应的 hidden states
h
g
e
n
h_{\mathrm{gen}}
hgen 对齐到 image decoder 的输入空间中。具体来说,我们通过一个特征映射器模块将它们连接起来,该模块包含两个线性层和一个具有可学习 queries 特征
q
q
q 的 4 层 encoder-decoder Transformer 模型。对于给定的 image caption
c
c
c (和其情感
e
e
e (如果可用的话)),我们的目标是最小化从冻结的预训练的 SD 文本编码器
η
\eta
η 和投影后的表征中得到的 embeddings 之间的 MSE 损失:
L
g
e
n
=
∥
θ
M
a
p
p
e
r
(
h
g
e
n
,
q
)
−
η
(
c
,
[
e
]
)
∥
2
2
\begin{equation} \mathcal{L}_{\mathrm{gen}} = \lVert \theta_{\mathrm{Mapper}}(h_{\mathrm{gen}}, q) - \eta(c,\lbrack e \rbrack) \rVert_2^2 \end{equation}
Lgen=∥θMapper(hgen,q)−η(c,[e])∥22
检索增强的图像生成. 继续对检索到的图像进行生成可以在保持图像质量的同时扩展图像的多样性,因此我们探索检索增强生成。具体来说,我们检索的图像作为 latent 表征 c I c_I cI 来增强生成过程。在图像生成过程中, h g e n h_{\mathrm{gen}} hgen 仍然作为 condition 使用。
- 联合学习
预先训练的 LLMs 擅长文本交互,但在共情对话中却表现不佳。我们进一步利用构建的 StickerConv 对整个模型进行联合微调,以实现多模态感知和生成的能力。我们以端到端方式训练我们的模型,使用 LoRA 将LLM中很少参数量的参数与输入线性投影层和特征映射器同步更新。整体损失函数可表示为:
L
=
λ
1
×
L
l
m
+
λ
2
×
L
g
e
n
+
λ
3
×
L
r
e
t
\begin{equation} \mathcal{L} = \lambda_1 \times \mathcal{L}_{\mathrm{lm}} + \lambda_2 \times \mathcal{L}_{\mathrm{gen}} + \lambda_3 \times \mathcal{L}_{\mathrm{ret}} \end{equation}
L=λ1×Llm+λ2×Lgen+λ3×Lret
✨ 多模态共情回复评价
LLM 能够像人类一样进行评分,为文本和 sticker 输出提供分数,从而实现全面的多模态评估系统。我们引入了三个基于 LLM 的指标:(1) 共情:我们通过模型的文本 (Empathy-text,EMP-txt) 和多模态 (Empathy-multimodal,EMP-mm) 回复来评估共情。(2) 一致性:根据上下文,为文本和 sticker 回复分配一致性分数,简称 CON。(3) 排名:我们将不同模型的回复与同一上下文进行比较,根据质量、共情能力和一致性进行评估。
此外,我们通过一些现有的文本/多模态回复生成方面的评价指标,以及人工评价的方法进行评价。并且做了分析和一致性检验。更多内容请参考我们的原论文。
📊 Experiments
Table 1 展示了文本指标的结果。PEGS 在 Dist-n 上的性能略低于 Vicuna。这可能归因于 PEGS 扩展了 Vicuna 的词汇量以促进 sticker 的感知和生成,从而在一定程度上影响了 PEGS 的文本多样性。在我们的实验中,工具学习的训练目标包括文本生成和工具调用。这两个目标可能会相互干扰。因此,工具模型的文本性能达不到文本微调模型的性能。PEGS 的端到端结构集成了多模态输入和输出,通过统一的训练目标简化任务,并得到了最佳的文本结果。PEGS-Gen 使用更少的特殊 token (32),因此在文本指标上优于 PEGS-Ret 和 PEGS-RAG。这些发现证实了 PEGS 框架在生成高质量和准确性的文本回复方面的有效性。
Table 1: 在 PEGS 和 baseline 模型中生成的文本质量结果
Table 2 显示了多模态指标的结果,其中 Freq. 表示每个模型的 sticker 回复的相对频率。尽管 Vicuna-tool 实现了较高的 MMr(72.48),但这一结果主要是由于其较低的频率 (0.141),这可能不能准确代表其多模态交互能力。 PEGS 在 f-MMr 方面表现出色,展示了其集成文本和贴纸的端到端结构,在多模态回复生成方面实现了高度一致性。
Table 2: 多模态指标结果
Table 3 列出了 LLM 的评估结果。相对于基线模型,两个工具学习模型在排名上优于文本模型。这凸显了 sticker 在增强共情交流方面的关键作用。根据基于 LLM 的指标结果,PEGS 可以在确保高度一致性的同时生成共情文本,并利用 sticker 来增强情感共鸣。Table 2 和 PEGS-Gen 的 EMP-mm (4.353) 表明,多模态回复的质量与其增强共情的程度直接相关。
Table 3: 基于 LLM 的指标的评价结果
Table 4 显示了人工评估的结果。除 Flu. 外,PEGS 在大多数评估指标中明显超过两个基线模型,从而证实了 PEGS 框架的有效性。与 ChatGLM3-tool (4.58) 相比,PEGS 的 Flu. (<4.5) 较低,可能是因为其高 Inf (>4.09) 导致 Flu. 略有减少。根据 Inf. 和 Et.,信息量是影响共情的关键因素。PEGS-RAG 在 sticker 多样性 (3.8) 方面表现出色,但在 sticker 生成质量 (3.37) 方面得分最低。这一观察结果表明,尽管 RAG 策略增强了 sticker 的多样性,但它也可能降低了本实验中 sticker 生成的质量。对 StiGQ.、Es. 和 StiD. 的分析表明,多模态回复可以增强共情,并且这种增强与回复的质量呈正相关。在考虑对人类指标的所有评估时,PEGS-Gen 非常突出,部分原因是它最少地使用special token,部分原因是其熟练的 sticker 生成能力 (归功于端到端结构)。这些结果凸显了 PEGS-Gen 能够生成高质量、情感共鸣和多样化多模态回复的卓越能力。
Table 4: 人工评估的结果
📄 Conclusion
我们探索了多模态共情回复的概念,并创建了 StickerConv,这是第一个专门为多模态共情对话设计的数据集。我们开发了 Agent for StickerConv,一个复杂的基于 LLM 的多智能体系统,能够模拟类似人类使用 sticker 的交互,从而创建多模态共情回复。在 StickerConv 的基础上,我们开发了 PErceive and Generate Stickers (PEGS),这是一种先进的多模态共情对话框架。该框架熟练地感知并生成 sticker,有效增强了对话体验。此外,我们建立了一套基于 LLM 的多模态共情任务的综合评估指标。我们相信,这项工作将推进多模态共情对话系统领域研究。
🌐 开源网址
- Paper: STICKERCONV: Generating Multimodal Empathetic Responses from Scratch
- Project Page: StickerConv Project Page
- Github: GitHub - StickerConv
- Dataset: NEUDM/StickerConv · Datasets at Hugging Face