UniCRS
Motivation
- pre-trained language models (PLMs) 作为一种通用方法在解决不同环境中的多种类任务上表现出的高效性。
- prompt learning 以简单而灵活的方式进一步统一了PLM 在不同任务上的使用。
Innovation
- 模型统一性:提出了一个统一的模型UniCRS,它将推荐和对话模块整合到一个框架中,而不是将它们作为独立的部分处理。
- 知识增强的提示学习:用知识增强提示学习范式重新制定了对话与推荐两个子任务,设计计了多个有效的提示来支持这两个子任务,其中包括由预训练的语义融合模块生成的融合知识表示、任务特定的软标记和对话上下文。
- 响应模板:将对话模块生成的响应模板作为推荐任务提示的一部分,增强了两个子任务之间的信息交互。
Composition of the model
Encoder
- RoBERTa作为历史对话编码器,生成word Embedding (此模块参数固定),将上下文的word Embedding冰洁在一起后形成word Embedding matrix, T = [ h 1 T ; . . . ; h n W T ] ∈ R T × n W \ T = [h^T_1 ; . . . ; h^T_{n_W} ] \in \mathbb{R}^{T \times n_W } T=[h1T;...;hnWT]∈RT×nW。
- RGCN作为知识图谱(KG)中实体的编码器,生成Entity Embedding。将对话历史中提及的实体编码并拼接在一起后形成entity embedding matrix, T = [ h 1 E ; . . . ; h n E E ] ∈ R E × n E T = [h^E_1 ; . . . ; h^E_{n_E} ] \in \mathbb{R}^{E \times n_E } T=[h1E;...;hnEE]∈RE×nE。
Semantic Fusion And Pre-trainning
-
Word-Entity Semantic Fusion模块弥合单词和实体之间的语义鸿沟,我们使用交叉交互机制,通过双线性变换将这两种语义表示关联起来。
A = T T W E T ~ = T + E A E ~ = E + T A T A=T^TWE \newline \widetilde{T}=T+EA \newline \widetilde{E}=E+TA^T A=TTWET =T+EAE =E+TAT
A A A是亲和矩阵, W W W是转换矩阵, T ~ \widetilde{T} T 是语义融合后的词表示, E ~ \widetilde{E} E 是语义融合后的词表示, -
Pre-training the Fusion Module利用对话中的自监督信号来进行预训练(参数为 Θ f u s e \Theta _{fuse} Θfuse),进一步实现实体与对话的语义融合。预先准备 C ~ p r e = [ E ~ ; C ; R ] \widetilde{C}_{pre} = [\widetilde{E};C;R] C pre=[E ;C;R], C C C表示对话上下文的explicit tokens, R R R表示回答的explicit tokens。对于实体 e e e的预测为:
P r ( e ∣ C ~ p r e ) = S o f t m a x ( h u ⋅ h e ) Pr(e|\widetilde{C}_{pre}) = Softmax(h_u \cdot h_e) Pr(e∣C pre)=Softmax(hu⋅he)
其中 h u = P o o l i n g [ f ( C ~ ∣ Θ p l m ; Θ f u s e ) ] h_u = Pooling[f (\widetilde{C}| Θ_{plm}; Θ_{fuse})] hu=Pooling[f(C ∣Θplm;Θfuse)], h e h_e he是于一融合后的实体表示, Θ p l m Θ_{plm} Θplm参数固定。
Conversation and Recommendation
虽然基本 PLM 是固定的,没有进行微调,但我们可以设计特定的提示(prompt)以适应 CRS 的推荐和对话任务。(两个子任务共用同一个参数固定的DialoGPT)
Conversation Subtask
此模块旨在生成信息性话语,以阐明用户偏好或回复用户的话语。提示(prompt)设计主要增强文本语义,以便更好地理解和生成对话。
-
The Prompt Design:生成回复的提示(prompt): C ~ g e n → [ T ~ ; P g e n ; C ] \widetilde{C}_{gen} \rightarrow [\widetilde{T}; P_{gen}; C] C gen→[T ;Pgen;C], P g e n P_{gen} Pgen为子任务特定的都PLM指引的Prompt(潜向量), C C C为原始对话记录(显示token)。
-
Prompt Learning:
L c ( Θ conv ) = − 1 N ∑ i = 1 N log P r ( R j ∣ C ~ g e n ( j ) ; Θ conv ) = − 1 N ∑ i = 1 N ∑ j = 1 l i log P r ( w i , j ∣ C ~ g e n ( j ) ; Θ conv ; w < j ) L_c(\Theta_{\text{conv}}) =- \frac{1}{N} \sum_{i=1}^{N} \log Pr(R_j | \widetilde{C}^{(j)}_{gen}; \Theta_{\text{conv}}) \newline= - \frac{1}{N} \sum_{i=1}^{N} \sum_{j=1}^{l_i} \log Pr(w_{i,j} | \widetilde{C}^{(j)}_{gen}; \Theta_{\text{conv}};w<j) Lc(Θconv)=−N1i=1∑NlogPr(Rj∣C gen(j);Θconv)=−N1i=1∑Nj=1∑lilogPr(wi,j∣C gen(j);Θconv;w<j)- L c L_c Lc 是对话任务的损失函数。
- Θ c o n v Θ_{conv} Θconv 是对话任务的参数。
- N N N 是训练样本的数量。
- l i l_i li是第 i 个样本的目标序列长度。
- w i , j w_{i,j} wi,j是第 i 个样本中第 j 个位置的词。
- w < j w<j w<j 表示第 j 个位置前面的单词
具体来说,我们在基本 PLM 的词汇表 V \mathcal{V} V 中添加了一个特殊标记 [ITEM],并将响应中出现的所有项目替换为 [ITEM] 标记。在每个时间步长,PLM 都会从原始词汇表生成特殊标记 [ITEM] 或通用标记。生成推荐物品后,所有槽位都会被填满。
Recommendation Subtask
此模块旨在预测用户可能感兴趣的实体。提示设计主要增强了用户偏好语义,以期预测出更满意的推荐。
-
The Prompt Design:生成回复的提示(prompt): C ~ r e c → [ E ~ ; P r e c ; C ; S ] \widetilde{C}_{rec} \rightarrow [\widetilde{E}; P_{rec}; C;S] C rec→[E ;Prec;C;S], P r e n P_{ren} Pren为子任务特定的都PLM指引的Prompt(潜向量, C C C为原始对话记录(显示token),S为回复模板(显示token)。
-
Prompt Learning:
L r ( Θ rec ) = − ∑ i = 1 N ∑ j = 1 M [ y i , j log P r j ( i ) + ( 1 − y i , j ) log ( 1 − P r j ( i ) ) ] L_r(\Theta_{\text{rec}}) = - \sum_{i=1}^{N} \sum_{j=1}^{M} [ y_{i,j} \log Pr_j(i) + (1 - y_{i,j}) \log (1 - Pr_j(i)) ] Lr(Θrec)=−i=1∑Nj=1∑M[yi,jlogPrj(i)+(1−yi,j)log(1−Prj(i))]- L r L_r Lr 是推荐任务的损失函数。
- Θ r e c Θ_{rec} Θrec 是对话任务的参数。
- N N N 是训练样本的数量。
- M M M 是每个样本可能推荐的项目总数。
- y i , j y_{i,j} yi,j 是一个二元标签,表示项目 j 是否是样本 i的正确推荐。
- P r j ( i ) Pr_j(i) Prj(i) 为 P r ( w i , j ∣ C ~ g e n ( j ) ; Θ conv ) Pr(w_{i,j} | \widetilde{C}^{(j)}_{gen}; \Theta_{\text{conv}}) Pr(wi,j∣C gen(j);Θconv) 的缩写.
EXPERIMENT
Experimental Setup
- 数据集:使用了两个公共的对话推荐系统数据集,ReDial和INSPIRED,它们都是关于电影推荐的英文数据集。
- 基线模型:与多个代表性的对话推荐系统模型和预训练语言模型进行比较,包括ReDial、KBRD、KGSF、GPT-2、DialoGPT、BERT和BART。
- 评估指标:对于推荐任务,使用Recall@k(k=1,10,50)来评估;对于对话任务,使用Distinct-k(k=2,3,4)评估生成响应的多样性,并进行人工评估来衡量流畅性和信息量。
- 实现细节:使用DialoGPT-small模型作为基础PLM,并冻结其所有参数。使用AdamW优化器进行训练,设置了不同的批次大小和学习率。
Evaluation on Recommendation Task
-
自动评估:UniCRS在Recall@k指标上优于所有基线模型,显示出其在推荐子任务中的卓越性能。
-
消融研究:通过移除语义融合预训练任务、单词或实体信息、任务特定软标记和响应模板,证明了模型中每个组件的有效性。
Evaluation on Conversation Task
-
自动评估:UniCRS在自动评估指标上同样优于基线模型,显示出其在对话子任务中的优越性能。
-
人工评估:人工评估的结果进一步证实了UniCRS在生成流畅且富有信息的对话响应方面的优势。
-
消融研究:消融研究显示了预训练任务、单词和实体信息、任务特定软标记的重要性。