【对话推荐系统综述】Broadening the View: Demonstration-augmented Prompt Learning for CR

发布于:2025-03-10 ⋅ 阅读:(19) ⋅ 点赞:(0)

文章信息:

在这里插入图片描述

发表于:SIGIR 2024
原文链接:https://dl.acm.org/doi/10.1145/3626772.3657755

源码:https://github.com/huyquangdao/DCRS

ABSTRACT

对话推荐系统(Conversational Recommender Systems, CRSs)利用自然语言对话来提供个性化的推荐。传统方法主要从孤立的对话中提取用户偏好,这往往导致生成的响应视角有限,局限于单个对话的范围。认识到集体对话示例的潜力,我们的研究提出了一种扩展的CRS模型方法,利用从对话历史和响应中选择的类比来丰富生成和推荐过程。这引入了重要的研究挑战,包括:(1)如何获取高质量的推荐对话示例集合?(2)如何有效利用这些示例来增强CRS模型?

为了应对这些挑战,我们引入了一种新颖的演示增强型对话推荐系统(Demonstration-enhanced Conversational Recommender System, DCRS),旨在通过检索和学习演示来加强对给定对话上下文的理解。具体而言,我们首先提出了一种知识感知的对比学习方法,巧妙地利用提到的实体和对话的上下文本质来预训练演示检索器。随后,我们进一步开发了两种自适应演示增强提示学习方法,包括上下文提示学习和知识丰富提示学习,以弥合检索到的演示与CRS的两个最终任务(即响应生成和项目推荐)之间的差距。在两个已建立的基准数据集上的严格评估表明,DCRS在项目推荐和响应生成方面均优于现有的CRS方法。

1 INTRODUCTION

在这里插入图片描述

近年来,对话推荐系统(Conversational Recommender Systems, CRSs)领域取得了显著进展,这主要得益于自然语言处理和用户偏好分析的结合 [6, 14, 23, 29]。现有的CRS模型 [13, 25, 34, 36, 50, 61] 主要侧重于在孤立的对话上下文中分析用户偏好。这种方法在某些场景下虽然有效,但往往生成的响应局限于单个对话的有限视角,从而错过了集体对话体验的丰富性,如图1左下部分所示。为了克服这些限制,一些CRS模型引入了外部知识源,例如知识图谱 [1, 43]、用户评论 [33, 60] 或项目元信息 [52]。这些努力展示了CRS范围的扩展。然而,对外部数据的依赖也带来了自身的挑战,特别是在某些领域中,这些数据稀缺或获取成本高昂。此外,当前方法还存在一个关键问题:难以有效利用内部训练实例来提升模型性能。一个初步尝试,如 [30] 中所述,专注于从相似对话中检索相关实体,但这种方法主要集中于显式提到的实体,从而忽略了更广泛的对话上下文及其潜在价值。

与此同时,基于演示和上下文学习的蓬勃发展为提升语言模型在各种任务中的表现提供了有希望的途径,如 [3, 4, 18, 27] 的研究所示。这种方法通过向预训练的语言模型提供少量信息丰富的示例,显著改善了命名实体识别 [18] 和文本分类 [3] 等任务。然而,直接将这种方法应用于复杂且多方面的对话推荐领域具有挑战性。主要存在两个障碍(1)获取高质量的推荐对话示例,这需要精心策划和验证以确保其相关性和有效性。(2)如何最好地利用这些示例来提升CRS模型的性能。这不仅涉及选择正确的示例,还涉及确定如何以最佳方式利用这些示例以实现最大影响。

为了解决这些挑战,我们提出了一种新颖的演示增强型对话推荐系统(Demonstration-enhanced Conversational Recommender System, DCRS),该系统通过检索和学习演示来促进对对话上下文的更深入理解。DCRS首先采用了一种知识感知的对比学习方法,巧妙地利用提到的实体和对话的上下文本质。该方法作为预训练演示检索器的基础,与我们获取高质量对话示例的第一个挑战相一致。进一步解决第二个挑战,DCRS实现了两种创新的演示增强提示学习方法:上下文提示学习知识丰富提示学习。前者根据每个对话的具体细微差别定制提示,以生成更相关和吸引人的响应;后者则通过实体特定的知识丰富这些提示,以提高推荐的相关性。这些方法弥合了检索到的演示与CRS的双重目标(即响应生成和项目推荐)之间的差距,同时提升了推荐相关性和响应质量。

我们在两个已建立的基准数据集——ReDial [23] 和 INSPIRED [11]——上进行了严格评估,结果凸显了所提出的DCRS的有效性。实验表明,我们的系统在推荐准确性和响应质量等关键方面优于现有的CRS方法。

据我们所知,这是基于演示的学习框架在对话推荐系统(CRS)领域的首次应用。我们的贡献主要体现在以下三个方面:

  • 我们提出了DCRS,一种基于演示的对话推荐新方法。该方法配备了一种知识感知对比检索器,能够将知识实体与对话的内在上下文相结合,用于演示检索。
  • 我们提出了两种演示增强的提示学习方案上下文提示学习知识丰富提示学习。它们动态地利用收集到的演示来增强项目推荐和响应生成。
  • 我们在两个基准数据集上通过实验验证了DCRS相对于现有CRS框架的优越性,重点强调了推荐精度和语言细微差别。

2 RELATEDWORK

Conversational Recommender Systems.

近年来,对话推荐系统(CRS)的进展可以分为两大类:以推荐为中心的方法 [5, 19, 20, 36] 和以对话驱动的CRS技术 [2, 26, 48, 60]。前者主要倾向于澄清项目属性,逐步优化候选项目集;而后者不仅关注推荐的准确性,还注重生成的自然语言表达的质量。

以推荐为中心的CRS方法 [7, 44, 55] 主要致力于直接提升项目推荐的性能,通过询问项目属性的澄清问题,并根据用户偏好逐步找到最佳候选集。为了降低理解自然语言表达的难度,这些方法通常利用预定义的模板与用户交互。此类系统试图通过学习推荐策略来满足用户需求,同时避免冗长的对话,因为长时间的对话可能会损害用户体验。因此,这些研究通常采用强化学习(RL)[7, 19, 20, 40] 或基于多臂赌博机(bandit)的解决方案 [24],以有效最大化长期收益。

近年来,以对话驱动的CRS模型 [13, 26] 得到了更广泛的研究。尽管其表现令人瞩目,但已发布的基于对话的CRS数据集(如 [11, 23, 59])面临着一个固有挑战,即由于人工标注的高成本导致的数据稀缺问题。因此,越来越多的研究 [28, 33, 46, 52, 54, 58] 通过引入外部知识资源来增强这些数据集。例如,Zhou等人 [58] 试图通过从DBpedia [1] 和ConceptNet [43] 中提取的子图来利用实体和术语之间的常识关联。与此不同,Lu等人 [33] 通过整合用户评论来丰富从用户对话中获取的内容。类似地,Yang等人 [52] 利用丰富的元信息来更好地表示数据库中的项目。然而,这些方法的一个明显局限是它们仅依赖于包含有限用户偏好线索的即时对话上下文。此外,过度依赖外部资源可能会限制这些方法在外部知识稀缺或获取成本高昂的领域中的泛化能力。

为了解决这一局限性,我们的目标是从训练数据中提取信息丰富的示例,并利用这些检索到的示例来提升响应质量和推荐准确性。

Retrieval-augmented Generation and Recommendation.

近年来,检索增强生成范式(Retrieval-Augmented Generation, RAG)[22] 吸引了越来越多的关注。其核心思想是将数据检索整合到生成过程中,从而增强模型提供准确和相关响应的能力。尽管一些预训练编码器 [8, 15, 39] 已广泛用于密集检索,但现有的RAG方法 [38, 47, 51] 通常更侧重于开发有效的策略来利用检索到的候选内容。在这些方法中,有两种常见的方法:(1)利用非参数化集成(例如K近邻算法)[16];(2)直接将检索到的候选内容与当前输入进行增强 [10, 47, 53]。例如,[16] 提出了KNN-LM,该方法通过结合两种概率来预测下一个词元,一种是通过Transformer解码器计算的,另一种是通过KNN算法的检索结果建立的。类似地,Wu等人 [51] 通过KNN增强的注意力层将外部键和值向量整合到中间隐藏表示中。另一方面,Izacard和Grave [12] 提出了一种基于编码器-解码器架构的RAG模型,用于开放域问答。具体来说,给定一组检索到的段落,他们利用编码器生成其中间表示,然后在解码器部分融合这些隐藏向量序列以生成答案。Wang等人 [47] 和Ram等人 [38] 则将检索到的文本片段前置到语言模型(LM)的当前输入中。然而,将检索到的候选内容与当前输入提示连接可能会显著增加整个序列的长度,从而带来相当大的计算成本。同时,由于现有预训练模型 [8, 56] 接受的最大词元数量限制,完全利用检索到的内容具有挑战性。最后但同样重要的是,由于模态的差异,如何利用检索到的文档来改进诸如项目推荐等排序问题仍未被探索。

因此,在本研究中,我们旨在引入一种有效的技术来利用检索到的候选内容。具体而言,我们提出的方法分别通过上下文提示学习知识丰富提示学习,将检索到的演示整合到响应生成和项目推荐过程中。

Contrastive Learning forDocumentRepresentations.

近年来,对比自监督学习 [45] 被广泛用于生成句子表示。其核心思想是将语义相似的样本拉近,同时将不相似的样本分开。现有的研究 [31, 39, 49] 将通用预训练语言模型(如BERT [8])与自监督对比学习目标 [35? ] 结合,以生成高质量的文档嵌入。? ] 提出了一种轻量级的数据增强方法,利用dropout掩码生成正例来训练编码器模型。Liu等人 [31] 提出了一种通过排序系统捕捉查询和目标句子之间细粒度相关性的方法。此外,他们引入了一种将排序一致性、排序蒸馏与对比学习结合到统一框架中的方法。尽管这些方法有效,但它们并未明确考虑句子中的知识信息,例如实体。Nishikawa等人 [35] 提出了一种基于实体的对比学习框架用于句子嵌入。然而,他们的方法仅考虑每个句子中的一个实体。在本研究中,我们提出了一种知识感知的对比学习方法,用于预训练对话检索器,该方法能够区分对话会话中的多个实体实例,并将潜在的用户偏好信息整合到对话表示中,以用于对话推荐。

3 PLELIMINARIES

Notations. 我们用 I \mathcal{I} I V \mathcal{V} V 分别表示所有项目的集合和生成词汇表。此外,我们使用 d c d_c dc d e d_e de 来定义框架中词元和实体表示的维度。我们用 D = { ( X i , Y i ) } i = 1 N \mathcal{D} = \left \{ ( X_i, Y_i) \right \} _{i= 1}^N D={(Xi,Yi)}i=1N 表示所有训练示例的集合,其中 N N N 是实例的总数。每个元组 ( X i , Y i ) (X_i,Y_i) (Xi,Yi) 包含一个历史上下文 X i X_i Xi 及其对应的真实响应 Y i Y_i Yi。广义上说,CRS模型的目标是通过自然语言对话向用户推荐合适的项目。具体而言,给定一个特定的对话上下文 X X X,CRS方法旨在生成一个响应 Y ^ \hat{Y} Y^ 来管理与用户的对话。如果触发推荐动作,模型还会根据从对话 X X X 中提取的用户偏好推荐一组候选项目 I c ∈ I I_c\in I IcI(其中 I c ≠ ∅ I_c\neq\emptyset Ic=)。与现有工作仅基于给定上下文 X X X 执行上述两个过程不同,我们还为模型提供了一组信息丰富的演示 R = { ( X ˉ j , Y ˉ j ) } j = 1 K \mathcal{R}=\{(\bar{X}_j,\bar{Y}_j)\}_{j=1}^K R={(Xˉj,Yˉj)}j=1K(其中 K K K 是集合的大小),以增强其理解当前任务的能力。演示检索步骤由一个神经文本检索器执行,该检索器通过一种新颖的知识感知对比学习方法进行预训练。最后,遵循现代CRS方法,我们利用一个面向项目的知识图谱 G = { ( u , r , v ) } G=\left\{(u,r,v)\right\} G={(u,r,v)}(其中 u , r , v u,r,v u,r,v 分别表示头实体、关系和尾实体)来捕捉项目及其相关实体之间的常识关系。形式上,我们将CRS任务分解为以下三个子任务:

Demonstration Retrieval:对于每个历史对话 X i X_i Xi,我们通过神经文本检索器从训练语料库中检索一组有指导意义的演示 R i = { ( X ˉ j , Y ˉ j ) } j = 1 K \mathcal{R}_i=\{(\bar{X}_j,\bar{Y}_j)\}_{j=1}^K Ri={(Xˉj,Yˉj)}j=1K(其中 K K K 是集合的大小)。值得注意的是,为了避免数据泄露问题,我们不考虑与给定上下文属于同一对话的检索候选内容。

Response Generation: 给定历史上下文 X i X_i Xi 和对应的检索到的演示集合 R i \mathcal{R}_i Ri,我们的目标是生成一个自然语言响应 Y ^ i \hat{Y}_i Y^i,其中响应中的特定项目将被替换为一个特殊标记 [MASK]。

Item Recommendation: 给定历史上下文 X i X_i Xi、对应的检索到的演示集合 R i \mathcal{R}_i Ri 以及被掩码的响应模板 Y ^ i \hat{Y}_i Y^i,我们尝试预测一组候选项目 I c ∈ I I_c\in I IcI 以推荐给用户。在接下来的章节中,为了简化描述,我们将忽略训练示例的对话索引。

4 METHODOLOGY

在这里插入图片描述

图2展示了我们提出的DCRS框架。总体而言,我们的DCRS方法包含三个组件:文本检索模块响应生成模块项目推荐模块。其中,文本检索模块通过一种知识感知的对比预训练方法进行预训练,用于获取演示。接下来,我们将详细描述上述每个组件。

4.1 Knowledge-aware Contrastive Pretraining for Demonstration Retrieval

在对话推荐场景中,用户通常通过特定实体或描述性术语来表达他们的偏好。如图2所示,用户明确表示喜欢恐怖和惊悚电影,并提到了过去观看过的电影,如《招魂》(2013)和《潜伏》(2010)。认识到这种基于实体的证据的重要性,将其无缝整合到检索过程中至关重要。此外,更广泛的对话上下文可以提供更丰富的用户倾向洞察。为了深入挖掘这些信息,我们采用了一种知识感知的对比学习方案。基于这些洞察,我们从以下几个方面介绍我们的检索学习方法。

Entity Modeling.

为了建模知识实体的表示,与现有工作 [58, 60] 类似,我们采用RGCN模型 [42] 和面向项目的知识图谱 G \mathcal{G} G。形式上,在第 l l l 层,我们通过以下方式计算实体嵌入:

在这里插入图片描述

其中 e u ( l ) ∈ R e d \mathbf{e}_u^{(l)}\in\mathbb{R}^d_e eu(l)Red 是实体 u u u 的嵌入向量, W r ( l ) ∈ R d e × d e \mathbf{W}_r^{(l)}\in\mathbb{R}^{d_e\times d_e} Wr(l)Rde×de b r ( l ) ∈ R d e \mathbf{b}_r^{(l)}\in\mathbb{R}^{d_e} br(l)Rde 是第 l l l 层对应于特定关系 r r r 的模型参数。由于对话上下文 X X X 可能包含多个提到的实体,我们旨在通过结合对话中所有提到实体的潜在向量,使用以下定义的自注意力层,获得一个知识感知的实体上下文表示 e c ∈ R d e \mathbf{e}_c\in\mathbb{R}^{d_e} ecRde

在这里插入图片描述

其中 W α ∈ R d e × d e \mathbf{W}_\alpha\in\mathbb{R}^{d_e\times d_e} WαRde×de b α ∈ R d e \mathbf{b}_\alpha\in\mathbb{R}^{d_e} bαRde 是模型参数, n e n_e ne 是上下文 X X X 中提到的实体数量, E ∈ R d e × n e \mathbf{E}\in\mathbb{R}^{d_e\times n_e} ERde×ne 是实体嵌入矩阵。

Context Encoding.

除了知识实体外,对话上下文 X X X 本身也包含丰富的上下文特征,这对于检索过程同样至关重要。为了利用当前对话会话的语义信息,我们通过使用上下文编码器生成密集表示。在本研究中,我们采用双向Transformer架构BERT [8] 作为编码模型。具体而言,为了获得对话表示 h c ∈ R d c \mathbf{h}_c\in\mathbb{R}^{d_c} hcRdc,我们将整个对话历史 X X X 输入编码器,并利用 [CLS] 标记的输出嵌入。

Knowledge-aware Contrastive Pretraining.

为了训练我们的检索组件,我们引入了一种新颖的知识感知对比学习范式。其核心思想是学习有意义且密集的对话表示,同时强调提到的知识实体的信息。因此,我们提出优化两个目标函数,即实体-上下文对比损失上下文-上下文对比损失。对于前者,我们的目标是最大化提到的知识实体与相应对话上下文之间的一致性。具体而言,我们通过优化以下公式,尝试最大化实体上下文表示 e c \mathbf{e}_c ec 和对话上下文表示 h c \mathbf{h}_c hc 之间的对齐分数:

在这里插入图片描述

其中 s i m ( ) sim() sim() 表示余弦相似度, W c ∈ R d c × d e \mathbf{W}_c\in\mathbb{R}^{d_c\times d_e} WcRdc×de 是一个线性变换,用于对齐两个表示空间, ρ \rho ρ 是温度参数。在本研究中,我们通过批内负采样获得负例 e ^ c \hat{\mathbf{e}}_c e^c。对于上下文-上下文对比损失,我们的目标是通过数据增强的自监督信号学习有意义的上下文表示。具体而言,我们最小化一个损失函数,以将对话表示及其增强视图在对应的潜在空间中拉近。

具体而言,上下文-上下文目标函数定义如下:

在这里插入图片描述

其中 h c − \mathbf{h}_c^- hc 是负例。遵循 [? ],我们采用不同的dropout掩码来生成对话表示 h c \mathbf{h}_c hc 的增强视图 h c + \mathbf{h}_c^+ hc+。最终的目标函数是上述两个目标函数的加权组合,定义如下:

在这里插入图片描述

其中 γ \gamma γ δ \delta δ 是预定义的超参数,并通过交叉验证选择。我们使用这一最终目标函数优化所有参数。
Top-K Retrieval of Demonstrations.

我们利用学习到的上下文编码器为所有训练对话上下文预计算对话表示。具体而言,我们使用训练示例 D = { D i } i = 1 N \mathcal{D}=\{D_i\}_{i=1}^N D={Di}i=1N 生成一组上下文表示 H = { h i } i = 1 N \mathcal{H}=\{\mathbf{h}_i\}_{i=1}^N H={hi}i=1N。给定一个对话会话 X X X,我们获取其对话嵌入 h c \mathbf{h}_c hc 并计算Top-K检索分数如下:

在这里插入图片描述

通过计算出的Top-K分数 S K S_K SK,我们从训练语料库中获取相应的上下文和响应 R = { ( X ˉ j , Y ˉ j ) } j = 1 K \mathcal{R}=\{(\bar{X}_j,\bar{Y}_j)\}_{j=1}^K R={(Xˉj,Yˉj)}j=1K

4.2 Contextualized Prompt Learning with Demonstrations for Generation

对于响应生成,简单地将演示与当前对话历史连接可能会导致输入过长。由于上下文长度有限,这种方法会限制模型充分利用检索到的示例的能力。因此,我们提出通过预训练编码器使用一组提示词元从演示中提取语义信息。然后将提示向量映射到预训练解码器的输入空间,以丰富当前对话上下文,从而生成响应。

Prompting Contextual Information from Demonstrations.

我们的目标是通过一组上下文提示从检索到的演示中提取有用信息,例如常识知识或任务特定指令。具体而言,对于检索集合 R \mathcal{R} R 中的第 j j j 个演示 ( X ˉ j , Y ˉ j ) (\bar{X}_j,\bar{Y}_j) (Xˉj,Yˉj),我们首先在每个检索到的演示前添加一系列提示词元 P j = [ p 1 , j , p 2 , j , . . . , p T , j ] P_j=\left[p_{1,j},p_{2,j},...,p_{T,j}\right] Pj=[p1,j,p2,j,...,pT,j](其中 T T T 是提示词元的数量),如下所示:

在这里插入图片描述

随后,为了获得演示增强的连续提示,我们将构建的序列通过基于预训练双向Transformer架构的提示生成器 f prompt f_{\text{prompt}} fprompt 进行编码,公式如下:

在这里插入图片描述

其中 P j c ∈ R T × d c \mathbf{P}_j^c\in\mathbb{R}^{T\times d_c} PjcRT×dc 是我们的上下文提示嵌入。我们使用RoBERTa编码器 [32] 实例化 f prompt f_{\text{prompt}} fprompt,并从提示词元 P j P_j Pj 对应的位置收集输出向量。为了提高效率,我们在训练期间冻结提示生成器的参数。我们独立地对 K K K 个不同的检索演示 { ( X ˉ j , Y ˉ j ) } j = 1 K \{(\bar{X}_j,\bar{Y}_j)\}_{j=1}^K {(Xˉj,Yˉj)}j=1K 执行相同的过程,以获得相应的上下文提示 P 1 c , P 2 c , . . . , P K c \mathbf{P}_1^c,\mathbf{P}_2^c,...,\mathbf{P}_K^c P1c,P2c,...,PKc。然后,我们将这些连续词元连接起来,生成一个单一的提示序列 P c ∈ R K ∗ T × d c \mathbf{P}^c\in\mathbb{R}^{K*T\times d_c} PcRKT×dc。值得注意的是,最终提示序列 P c \mathbf{P}^c Pc 的长度为 K ∗ T K*T KT(在实践中,我们可以选择 T T T 的值,使得 K ∗ T ≪ K ∗ L d K*T\ll K*L_d KTKLd,其中 L d L_d Ld 是每个演示的长度)。

Semantic Space Mapping for Contextualized Prompts.

在生成响应时,假设 X \mathbf{X} X 是通过生成模型 f gen f_{\text{gen}} fgen 的输入层传递对话上下文 X X X 后的嵌入向量矩阵,可以注意到检索增强的提示向量 P c \mathbf{P}^c Pc 与输入嵌入 X \mathbf{X} X 之间存在语义差距,因为 P c \mathbf{P}^c Pc 是提示生成器输出空间中的嵌入向量,而 X \mathbf{X} X 属于文本生成器的输入向量空间 E gen \mathbf{E}_{\text{gen}} Egen。为了解决这种语义差距,我们提出将上下文提示映射到生成模型的输入空间,如下所示:

在这里插入图片描述

其中 P gen c ∈ R K ∗ T × d c \mathbf{P}_{\text{gen}}^c\in\mathbb{R}^{K*T\times d_c} PgencRKT×dc 是目标空间中的对应提示嵌入, E gen ∈ R ∣ V ∣ × d c \mathbf{E}_{\text{gen}}\in\mathbb{R}^{|\mathcal{V}|\times d_c} EgenRV×dc 是生成模型 f gen f_{\text{gen}} fgen 输入层的嵌入矩阵, W align ∈ R d c × d c \mathbf{W}_{\text{align}}\in\mathbb{R}^{d_c\times d_c} WalignRdc×dc 是一个线性变换,用于对齐这两个表示空间。然后,我们将提示 P gen c \mathbf{P}_{\text{gen}}^c Pgenc 前置到输入序列中,获得增强的输入序列 I gen \mathbf{I}_{\text{gen}} Igen(即 I gen = [ P gen c , X ] \mathbf{I}_{\text{gen}}=[\mathbf{P}_{\text{gen}}^c,\mathbf{X}] Igen=[Pgenc,X]),随后用于生成所需的响应 Y ^ \hat{Y} Y^

Parameters Learning.

给定当前对话嵌入 X \mathbf{X} X 和检索增强的提示 P gen c \mathbf{P}_{\text{gen}}^c Pgenc,我们通过优化以下目标函数来训练生成模型 f gen f_{\text{gen}} fgen

在这里插入图片描述

其中 N N N 是训练示例的数量, L 0 L_0 L0 是输出序列的长度, Θ gen \Theta_{\text{gen}} Θgen 是生成模块的参数。

4.3 Knowledge-enriched Prompt Learning with Demonstrations for Recommendation

在本小节中,我们将描述如何利用检索到的演示来增强项目推荐任务。

Demonstrations for Item Recommendation.

为了解决推荐任务,现有工作 [48, 54, 58] 通常利用当前输入中提到的实体/项目(我们记为 E men = { e i } i = 1 ∣ E men ∣ \mathcal{E}_{\text{men}}=\{e_i\}_{i=1}^{|\mathcal{E}_{\text{men}}|} Emen={ei}i=1Emen)来捕捉用户偏好。然而,由于当前上下文中的信息有限, E men \mathcal{E}_{\text{men}} Emen 可能不足以正确建模用户兴趣。虽然检索到的对话历史-响应对可以被视为响应生成的有指导意义的示例,但这些文本片段可能包含一系列相关实体/项目,这些实体/项目可以被视为提示可能候选项目的信息线索,我们称之为项目演示。因此,我们提出从这些检索到的演示中提取知识实体和项目(我们记为 E dem = { e j } j = 1 ∣ E dem ∣ \mathcal{E}_{\text{dem}}=\{e_j\}_{j=1}^{|\mathcal{E}_{\text{dem}}|} Edem={ej}j=1Edem),以丰富提到的集合 E men \mathcal{E}_{\text{men}} Emen。具体而言,最终的实体/项目集合 E rec \mathcal{E}_{\text{rec}} Erec 是提到的集合 E men \mathcal{E}_{\text{men}} Emen 和演示集合 E dem \mathcal{E}_{\text{dem}} Edem 的并集(即 E rec = E men ∪ E dem \mathcal{E}_{\text{rec}}=\mathcal{E}_{\text{men}}\cup\mathcal{E}_{\text{dem}} Erec=EmenEdem)。

Knowledge-enriched Prompts for Item Recommendation.

与响应生成类似,我们生成一组提示词元以丰富推荐任务的输入。具体而言,我们首先使用RGCN和面向项目的知识图谱 G G G 查找 E rec \mathcal{E}_{\text{rec}} Erec 中实体的潜在向量,以获得嵌入矩阵 P rec k ∈ R ∣ E rec ∣ × d c \mathbf{P}_{\text{rec}}^k\in\mathbb{R}^{|\mathcal{E}_{\text{rec}}|\times d_c} PreckRErec×dc。值得注意的是,我们分别使用两组不同的实体嵌入进行检索和推荐。随后,我们为推荐任务构建输入 I rec \mathbf{I}_{\text{rec}} Irec,如下所示:

在这里插入图片描述

其中 X \mathbf{X} X Y ^ \hat{\mathbf{Y}} Y^ 分别是当前对话上下文 X X X 和响应生成模块生成的掩码响应 Y ^ \hat{Y} Y^ 的对应嵌入。我们的目标是将构建的输入通过冻结的DialogGPT [56] 进行编码,并在输出上应用池化层,以获得演示增强的偏好向量 u rec ∈ R d c \mathbf{u}_{\text{rec}}\in\mathbb{R}^{d_c} urecRdc

Semantic Alignment for Knowledge-enriched Prompts.

与响应生成类似,在项目推荐任务中,知识丰富的提示 P rec k \mathbf{P}_{\text{rec}}^k Preck 与上下文和响应嵌入 X \mathbf{X} X Y ^ \hat{\mathbf{Y}} Y^ 之间存在自然的语义差距。为了解决这一问题,我们提出通过另一个预训练步骤将知识丰富的提示 P rec k \mathbf{P}_{\text{rec}}^k Preck 与上下文信息 X \mathbf{X} X Y ^ \hat{\mathbf{Y}} Y^ 关联起来。具体而言,利用演示增强的用户偏好表示 u rec \mathbf{u}_{\text{rec}} urec,我们预训练项目推荐模块以预测当前输入中包含的实体。形式上,我们计算实体 e e e 的概率如下:

在这里插入图片描述

其中 E entity ∈ R d c × N entity \mathbf{E}_{\text{entity}}\in\mathbb{R}^{d_c\times N_{\text{entity}}} EentityRdc×Nentity 是所有实体的嵌入矩阵。最后,我们优化模型参数以最小化真实实体的标准交叉熵损失,定义如下:

在这里插入图片描述

其中 N N N 是训练实例的总数, N ( X j ) \mathcal{N}(X_j) N(Xj) 是输入上下文 X j X_j Xj 中提到的实体集合, Θ rec \Theta_{\text{rec}} Θrec 是推荐引擎的参数。

Parameters Learning for Item Recommendation.

在上述语义映射步骤之后,给定演示增强的用户偏好向量 u rec \mathbf{u}_{\text{rec}} urec,我们计算推荐项目 i i i 的概率 Pr item ( i ) \text{Pr}_{\text{item}}(i) Pritem(i),类似于公式7。然后,我们通过优化以下真实项目的交叉熵损失来训练推荐引擎。

在这里插入图片描述

其中 V \mathcal{V} V 是第 j j j 个训练实例中的词汇表。在推荐训练期间,我们冻结DialogGPT模型的参数。

5 EXPERIMENTS

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

6 CONCLUSION

在本研究中,我们提出了一种新颖的基于演示的对话推荐框架,即DCRS,该框架采用知识感知对比检索器从对话历史中收集选择性类比,以丰富响应生成和推荐过程。随后,我们引入了两种自适应演示增强提示学习方法,以弥合检索到的示例与当前对话推荐任务之间的差距。在两个基准数据集上的实验结果证明了所提出的DCRS框架相较于现有CRS方法的优越性,展示了在推荐精度和语言连贯性方面的进步。