结合用户长短期偏好的对话推荐方法
2023-11-03冯兴杰
冯兴杰,张 贺
(中国民航大学 计算机科学与技术学院,天津 300300)
0 引 言
现有的对话推荐方法大多仅从对话数据中学习用户的有效偏好表示,无法充分利用用户的历史交互数据,进而导致推荐结果缺乏个性化。例如,在给用户实时推荐感兴趣的项目时,如果仅仅按照用户当前对于项目属性的拒绝或接受来选择下一步的交互策略,很容易因为过于注重用户目前的偏好信息,使得对话推荐系统的推荐结果与用户采用搜索方式得到的结果并无较大差异,缺乏推荐系统应有的个性化。
为了解决以上问题,本文提出了一种结合用户长短期偏好的对话路径推理方法(conversational path reasoning with long-term and short-term preferences,LSCPR)。在交互式路径推理的基础上,采用注意力机制将用户的历史偏好作为选取当前项目候选集的影响因子,从而能够在更少的对话回合中推荐尽可能准确的项目。本文的主要贡献可总结如下:
(1)LSCPR将历史交互数据单独充分利用到对话推荐系统中,在对话推荐中融合用户历史交互的时序动态信息,使得路径推理过程中选取的项目候选集更能符合用户个性化的实时偏好。
(2)LSCPR采用注意力机制从历史交互数据的上下文中计算注意力权重,并根据用户最近的兴趣增强相应的注意力权重。
(3)在两个真实数据集上进行大量实验,实验结果表明,LSCPR方法能够在保证平均对话回合数的同时,提供更为精确的推荐结果。
1 相关工作
1.1 对话推荐方法
已有的对话推荐研究,大多聚焦于设计算法去输出最佳交互策略,以快速降低用户兴趣偏好的不确定性,并实现对当前用户的成功推荐。早期研究中利用基于人工设计的规则和逻辑来删除属性不满足的项目来减少候选集的大小[1]。文献[2]将协同过滤的推荐算法思想引入到对话推荐系统,以提升对话推荐结果的准确率,同时协同过滤算法[3]中存在的冷启动、可解释性较差的缺陷也可以通过对话推荐的多轮交互特征有效弥补。近期神经网络已经被广泛应用于对话推荐方法中,除了常见的CNN和RNN被用来建模具有时序性的对话数据[4],GNN也可以用来建模图类型数据,从而学习对话交互信息中的复杂关系[5,6]。与此同时,为了解决动态交互环境下复杂的长期规划问题,深度强化学习被引入到对话推荐算法的设计中,一方面基于知识增强的强化对话推荐算法[7]可以应用开源的知识库DBpedia来增强项目和属性的向量表示,学习到推荐项目和交互属性之间更多的语义信息,提高推荐效果;另一方面基于图推理的强化对话推荐算法[8]将用户的交互过程建模为无向图中路径推理的过程,通过强化学习来判断每行走一步所应采取的动作(询问或者推荐),最终到达用户的目标项目。然而以上各种方式的对话推荐方法很少甚至没有考虑用户的历史交互信息,这就导致了建模过程中缺少了用户的一般偏好信息,而且诸多的对话推荐系统以减少系统与用户的交互回合为目标,可能会遗漏一些有用的属性选项。此外仅利用基于属性的偏好不足以筛选项目候选集,所以需要更加充分地利用用户的历史交互信息,从而在对话系统的效率和推荐结果的质量上达到更优。
1.2 序列推荐方法
推荐系统的实际应用中,采用所有的数据信息来训练模型学习可以表示用户兴趣偏好的嵌入,但同时用户的序列行为信息也是尤为重要的,它代表着用户偏好的变化状态,所以序列推荐的出现可以显式地建模用户的序列行为,提升推荐系统的效果。常见的序列建模方法有Pooling、RNN、CNN[9]、Attention、Transformer[10]等,其中transformer中自注意力机制的应用可以在用户的交互序列中评估每个项目的相关权重[11],以便更好地学习用户的兴趣偏好表示以及捕获用户偏好的时序性,提高目前对话推荐系统的推荐质量。
2 准备工作
2.1 对话推荐流程描述
对话推荐系统(下文中称CRS)可以定义为:通过使用自然语言或槽定义的方式与用户进行实时多回合交互,引出用户动态偏好并根据用户当前需求采取相应的行动。目标则是在最少的对话回合内向用户推荐准确的项目。图1是多回合对话推荐场景的流程图,可以将整个流程划分为3个模块,分别是用户界面、推荐模块和对话策略模块。其中用户界面可以对系统的询问进行反馈以及对系统推荐的项目进行接受或拒绝;推荐模块用来学习和建模用户对项目和项目属性的偏好,是得出询问用户的属性信息和提供推荐结果的基础;对话策略模块是整个流程的核心模块,通过决定询问能够消除项目不确定性的属性来辅助用户得到精确的推荐结果。
图1 多回合对话推荐场景的流程
如图1所示,对话推荐系统的详细描述为:每一个对话session从用户侧开始,用户侧有一个初始的属性p0,CRS会询问用户对于某一个属性的偏好(从属性候选集Pcand中选取)或者直接推荐项目(从项目候选集Vcand中选取)。此时用户会有以下几种可能:①如果给出的是项目,且用户接受了该项目,session结束;②如果给出的是项目,且用户拒绝了该项目,则CRS把这个项目从Vcand中移除;③如果给出的是属性,且用户接受了该属性,则把这个属性放进用户已选择的属性集Pu中,并把其从Pcand中除去,更新Vcand=Vcand∩Vp; ④如果给出的是属性,且用户拒绝了该属性,则CRS把这个属性从Pcand中移除。直到用户接受了CRS推荐的项目或者达到最大交互回合数,则整个session结束。表1给出了本文常用的符号及其含义。
表1 常见符号及其含义
2.2 问题定义
给定3个分别包含用户历史交互数据、用户偏好信息、项目属性信息的数据集,其中用户历史交互数据集中每个样本(u,Vu)表示用户u和与之交互过的项目集Vu;用户偏好信息数据集中每个样本(u,Fu,Lu)表示用户u、与其具有双向好友关系的用户集Fu,以及用户u喜好的项目属性集Lu;项目属性信息数据集中每个样本(i,Pi)表示项目i和其所属属性集Pi。任务则是利用上述3个数据集中的信息构建包含用户、项目和属性3个实体的无向图,从用户节点开始,通过对话交互确定下一个要移动的节点,目标是到达用户接受推荐的项目节点。由此将与用户的实时交互反馈过程结合用户历史偏好信息体现在无向图的路径推理中,能够在最少的对话回合下给出准确的推荐项目,同时推荐的可解释性也可以通过推理路径得以体现。
图2是一个对话推荐系统的过程示例。右图中的顶点表示用户、项目和项目的属性,两个顶点之间的边表示它们之间的关系,例如,用户与项目之间的边表示用户已与该项目进行交互,用户与属性节点之间的边则表示用户已在对话中确认该属性,项目与属性节点之间的边表示项目拥有该属性等。图中首先从带有初始属性“唱跳”的用户“李明”开始进入对话,所以回合1为从“李明”移动到“唱跳”节点。回合2系统进行邻接属性的搜索,选择询问用户属性节点“摇滚”,用户接受该属性,则路径移动至“摇滚”节点。回合3与回合2相似,路径移动至“流行”属性节点。回合4中系统已经掌握足够的用户偏好信息,搜索同时拥有“唱跳”、“摇滚”、“流行”属性的项目,选择“迈克尔”项目节点进行推荐,用户接受推荐,该对话结束。但需要注意的是,如果用户拒绝询问的属性或推荐的项目,系统将停留在原节点,搜索其它符合用户偏好的属性重新进行询问,多次重复该循环,直至用户接受推荐的项目或者达到最大交互回合,对话自动结束。
图2 对话推荐系统过程示例
2.2.1 实体无向图的构建
LSCPR旨在通过图的路径推理来实现为用户的成功推荐,并为用户长短期偏好的结合提供先决条件。将数据集中用户、项目和属性实体构建成为无向图的过程见下述算法1。
算法1:实体无向图构建
Input:用户历史交互数据字典user_item,用户信息数据字典user_dict,项目信息数据字典item_dict,属性信息数据字典attribute_dict。
Output:实体-关系-实体无向图Grec
(1) entities=load_entities(user_dict, item_dict, attri-bute_dict)#获取用户、 项目、 属性实体
(2) relations=load_relations(user_dict, item_dict, user_item, attribute_dict)#获取实体间相应关系
(3) for relation r in relations do
(4) for entity e1in entities do
(5) set=get_entity(r, e1)#获取头实体e1的r关系的所有尾实体集
(6) for entity e2in set do
(7) Grec[e1][r].append(e2)#添加实体间的关系边
(8) end for
(9) end for
(10)end for
(11)clean(Grec)#删除重复的边
(12)return Grec
根据用户、项目、属性和历史交互的数据提取相应的实体和关系,将Grec无向图的表示定义为包含头实体、关系、尾实体的嵌套字典。
2.2.2 模拟对话交互训练数据的构建
对话推荐是一个动态的过程,并且现阶段没有成熟的数据集可以利用,所以遵循EAR[12]方法和CPR[8]方法中用户模拟器的设定来构建对话交互训练数据,完成对话推荐系统的训练和评估。正如前文中所提到的,采用真实的用户项目的交互数据来实现这种模拟。根据模型训练的需要,生成(user_id,item_id,neg_item,cand_neg_item,prefer_attributes)结构的数据元组。详细来说,给定一个用户u和拥有属性集Pv的项目v,不妨假设Pv={p0,p1,p2,p3,p4}, 当前时刻用户确认的属性集为Pu={p0,p1,p2}, 那么项目候选集Vcand为满足Pu中所有属性的项目集合。因此,元组中元素user_id和item_id分别为u和v,第三个元素neg_item可以直接从用户u的非交互项目集中随机抽取,第四个元素cand_neg_item则是从项目候选集Vcand未与用户交互的项目中随机抽取,第5个元素为当前回合中用户的偏好属性Pu,即 [p0,p1,p2]。
3 模 型
本文模型是一种结合用户的长短期偏好的图推理路径模型,其中用户的短期偏好可以在实时与用户交互过程中进行获取,而长期偏好可以根据对话之前的用户历史交互数据进行提取,从而辅助对话过程中的项目候选集的更新与选取,最终为用户提供符合其长短期偏好的项目。LSCPR模型结构如图3所示。首先提取用户、项目和属性相关数据集的实体和关系构建实体无向图,详细过程见章节2.2.1。然后通过用户与系统之间的实时交互进行图上路径的推理,根据用户的反馈信息,更新相应的项目和属性候选集,同时策略模块判断系统下一步动作是询问属性还是推荐项目,如果动作为询问属性,则选取属性预测模块中得分最高的属性进行询问;如果动作为推荐项目,则选取项目预测模块中前10个项目进行推荐。以此循环,直至推中用户心仪的项目或是达到最大交互回合数,对话结束。为更好地解释LSCPR模型的路径推理过程,现假设当前推理路径为P=p0,p1,…,pt, 系统保持在pt节点位置,并尝试寻找下一个属性或项目节点的位置。该过程可以通过预测、决策、更新3个阶段完成,分为以下4个模块实现。
图3 LSCPR模型结构
3.1 预测阶段
该阶段是一个回合的开始,当一个属性被用户预定义或者确认时执行,需要通过预测用户最可能接受的项目和属性来为决策阶段提供相应的选择空间。另外由于属性和项目的预测是相互依赖的,所以可以采用交替优化策略来使其产生更好的预测结果。
3.1.1 项目预测模块
当前时刻用户u的属性偏好集Pu由此时推理路径P中的所有属性节点组成,即Pu={p0,p1,…,pt}, 所以项目候选集的选取是满足当前属性偏好集中各属性的项目集合。图3中无向图和交互部分为t=1时的简要对应展示,用户的首选属性为p0,那么Pu={p0}, 所以项目候选集即需要进行预测的项目集为 {v0,v1,v2}。 但随着推理路径变长,相应的项目候选集也会变大,导致计算效率降低,CPR模型直接选取所得项目候选集的前1000个项目进行后续预测[8],为减少该设置方法的随机性,本文遂采用基于注意力机制的序列推荐方法对未交互的项目进行排序,再选取其排序完成后的前1000个项目作为项目候选集。该处理逻辑可以充分利用用户的历史交互数据,将其与现阶段的属性偏好信息相结合,得到更具个性化的项目候选集合。
将X={x1,x2,…,xt} 表示历史交互项目序列的嵌入向量,其中xt表示最近的交互项目的嵌入,ms表示用户当前的一般兴趣,可以由平均历史交互项目的嵌入而得到,表示如下
(1)
用户的长期偏好通过注意力机制获取,采用前馈神经网络生成每个交互项目嵌入向量的注意力权值ai,表示当前项目交互序列中各嵌入向量的注意力系数,注意力系数向量a=(a1,a2,…,at) 定义如下
ai=W0σ(W1xi+W2xt+W3ms+ba),i∈[1,t]
(2)
其中,xi表示第i个项目的嵌入向量,W0是一个加权向量,W1,W2,W3是相应的加权矩阵,ba为偏置部分。在得到注意力系数向量a之后,基于注意力的用户长期偏好表示如下
(3)
同时mt=xt, 将ma与mt分别通过相应的多层感知机结构得到hs与ht,因此可以通过余弦相似度计算未交互项目集中各个项目vi的得分,从而经过得分排序获得相应的项目候选集。项目评分过程函数可以表示为
(4)
其中,σ(·) 表示sigmoid函数,为方便〈·〉的表述,将变量hs、ht、vi替换为维度为d的a、b、c这3个向量,通过以下公式进行计算
(5)
其中,⊙表示哈达玛积,即向量b和c之间的元素乘积。
然后,在当前对话状态下用户u对给定项目候选集中某项目v的喜欢程度可以通过FM[13]来进行预测,用户-项目对交互的可能性如下
(6)
其中,Pu是当前推理路径中所有属性节点的合集,u、v和pi分别表示用户、项目和属性的嵌入,第一项建模了从用户到项目的信息,第二项建模了从用户的偏好属性到项目的信息。
3.1.2 属性预测模块
首先,根据图结构的自然约束性,仅将当前用户所有偏好属性的邻接属性节点作为属性候选集,其中邻接属性节点的定义为:如果图中属性pt和属性pa之间的最短路径不包含任何其它属性,那么属性pa就是属性pt的邻接属性。例如,在图3中,p1为p0的邻接属性。因此,当前时刻的属性候选集为删掉用户接受或拒绝的属性的pt邻接属性集。需要注意的是,属性预测模块的作用不同于项目预测模块,需要根据当前系统状态来决定哪些属性是值得询问的,期望找到一个可以更好地消除项目不确定性的属性。所以采用了可以有效评估不确定性的信息熵的方法,属性的不确定性越大,对应的信息熵越大,信息熵计算表示如下
h(u,p,Vcand,Pu)=-p(p)·log2(p(p))
(7)
(8)
其中,σ(·) 是sigmoid归一化函数,Vcand表示项目候选集,Vp表示包含属性p的项目集,f(u,v,Pu) 为章节3.1.1中介绍的项目预测公式。
3.1.3 模型学习
(9)
(10)
(11)
3.2 决策阶段-基于RL的策略模块
完成项目和属性预测之后便进入决策阶段,该阶段的目的是决定下一步动作为询问属性aask还是推荐项目arec,使用户在最少的对话回合内获得准确的推荐。具体实现过程遵循文献[8],将其作为一个强化学习问题来处理,强化学习的策略函数基于全局对话状态来进行决策,其中可以包括对话历史、候选项目信息等。策略函数根据相应的输出回报设置得到包含aask和arec两个操作空间选择的输出结果。若结果为aask,则通过属性预测模块选取属性候选集中得分最高的属性进行下一步询问操作;若结果为arec,则将项目预测模块中得到的top-k项目向用户进行推荐。
3.3 更新阶段-候选集更新模块
更新模块将在用户确认请求的属性之后被触发。如章节2.1中所描述的,将确认的属性添加到用户偏好属性集Pu中,初始项目候选集被更新为Pcand=AAt(Pu∪Prej)。 需要注意的是,假设一个属性被用户拒绝,只需要将它从属性候选集中删除,而不需要进行其它操作。在更新阶段之后,对话推荐系统进入到下一个对话回合。
4 实 验
4.1 数据集
因为本文的研究侧重于对话策略的研究而并非语义的理解,所以选用的数据集为推荐系统通用的交互数据集。为了更好地对比,本文选用与EAR模型[12]、CPR模型[8]一致的LastFM(https://grouplens.org/datasets/hetrec-2011/)和Yelp(https://www.yelp.com/dataset/)数据集进行实验。LastFM是2011年HetRec会议发布的音乐推荐数据集,来源于英国的音乐社Last.fm,包含用户的听歌记录、用户属性等,其中存在1801个用户、27 675个项目和76 693个交互;Yelp数据集是由美国点评网站Yelp公开的内部数据集,现已成为通用数据集,包含用户点评数据、商家属性等,同时用户可以在该平台上交流购物体验,其中存在27 675个用户、70 311个项目和1 368 606个交互。基本的数据统计信息见表2。对于两个数据集,删除少于拥有10个相关项目的属性。
表2 基本数据统计信息
其中关系的详细数据见表3。
表3 关系的详细数据
4.2 评价指标
对话推荐系统的评价指标分为两个级别[14]。第一个级别是对推荐结果的评价,其中值得评价的是推荐结果的质量或性能,主要采用推荐算法中常用的召回或排序的指标,如MSE、RMSE、Precision、Recall、MRR、NDCG、HR等。第二个是对话级别的评价,其中一类值得评价的是自然语言生成的质量,指标包括 BLEU 与 ROUGE等;另一类评价针对对话推荐系统的效率,主要关心的是对话的平均回合数(average turns,AT),在对话推荐任务中,越早推中用户喜欢的项目越好,故对话的回合数越小越好。另外一个指标是对话在固定最大回合数的情况下推荐成功的概率(Success Rate att-th turn,SR@t)。
因为本文主要研究的对话推荐策略的改进,所以不考虑自然语言的生成,针对对话推荐的结果本文采用MRR和HR评价指标。MRR为平均倒数排名,其强调在成功推荐的对话回合,是否将用户的真实访问项目置于推荐项目列表中更靠前的位置,定义为
(12)
其中,M表示用户的个数,pi是对于第i个用户,用户的真实访问项目在推荐列表的位置。HR为命中率,反映在推荐项目列表中是否存在用户的真实访问项目,定义为
(13)
其中,N表示推荐的次数,即用户的对话回合数。hit(i) 表示是否命中用户的真实访问项目,即用户选择的项目是否在推荐列表中,若存在,hit(i) 值为1,否则为0。针对对话系统效率的评价指标为AT和SR@t。AT定义为
(14)
成功率指标SR@t定义为在t个交互回合内推荐成功的概率,计算公式如下所示,其中#表示事件发生的次数
(15)
4.3 对比模型
为了评估LSCPR模型的性能,将LSCPR与以下代表性基线方法进行对比实验,各方法的具体区别见表4。
表4 对比模型比较
(1)Max Entropy。这个方法遵循在章节2.2.2中介绍的用来构建对话历史记录的规则,每个对话回合都会对候选属性项中熵最大的属性进行询问。
(2)Abs Greedy[15]。这个方法在每个回合都会推荐项目,而不会询问任何问题。一旦推荐被拒绝,它会通过将被拒绝的项目作为负面样本来更新模型。根据文献[15]实验结果,该方法与常用的线性bandits算法(Thompson采样[16]和UCB-based算法[17])相比具有同等或者更好的性能。
(3)CRM[18]。这个模型最初是为单轮次对话推荐而设计的,即进行推荐行为之后不论是否推荐成功都会结束对话。它将表示对话当前状态和用户偏好的潜在向量空间输入深度策略网络,来决定下一步是进行推荐还是询问,同时根据策略梯度算法调整对话策略和更新潜在向量空间。
(4)EAR[12]。这是首个着重体现推荐模块与对话模块深度交互的模型,提出使用交叉熵信息、用户反馈信息、对话回合信息构造状态向量,作为策略网络的输入,使策略模型能够更好适应动态环境,学习到更加灵活的对话策略。
(5)CPR[8]。该模型将图推理与对话推荐结合起来,将用户和项目信息构建成无向异构图,将用户实时交互的过程建模成图上的路径游走的过程,通过在图上游走和推理的方式选择具体的属性节点和项目节点,而策略网络只需要输出询问与推荐两个动作,使得策略网络的训练变得更加容易。
(6)SASRec[19]。通过自注意力机制对用户的历史交互信息进行抽象,将抽象得到的用户信息与所有项目的嵌入做内积交互,得到用户与每个项目的相关性概率。
(7)AttRec[20]。采用自注意力机制对用户的历史交互项目之间的关系进行捕获,得到用户的短期偏好表示;采用协同度量学习建模用户的长期偏好,结合后加权得到用户对候选项目的交互概率。
4.4 实验细节
本文使用pytorch对所提模型进行实现,并使用GPU(GTX 1080Ti)对训练进行加速。设置top-k的值为10,最大的对话回合数T为15。在项目和属性预测训练模块根据经验设置如下:FM的嵌入维度大小设置为64,项目和属性预测任务的学习率分别设置为0.01和0.001,使用了L2正则化系数为0.001的SGD优化器;在基于RL的策略模块中,训练奖励为:rrec_suc=1,rrec_fail=-0.1,rask_suc=0.01,rask_fail=-0.1,rquit=-0.3。 DQN的参数设置为:经验回放内存大小为50 000,折扣因子Y被设置为0.999。
4.5 性能对比
4.5.1 对话推荐质量
由于该部分主要对所提出对话推荐方法的推荐结果的质量进行讨论,所以不采用Abs Greedy和Max Entropy作为对比方法。本文提出的LSCPR方法与其它对比模型在推荐质量方面的性能比较见表5。
表5 不同模型对话推荐性能比较(质量)
分析实验结果可以得出:本文提出的LSCPR模型在两个数据集中的每个评价指标都优于其它对比模型。观察其它模型发现,在数据量较大的Yelp数据集上对话推荐方法(CRM、EAR、CPR)的整体性能会比传统序列推荐方法(SASRec、AttRec)更优;在数据量较小的LastFM数据集上结果则相反。本文认为当中的原因在于在数据量较大的候选集上,单单利用用户的历史交互信息进行用户兴趣偏好的表示过于片面,并且可能会与用户的当前偏好信息产生偏差,所以通过对话交互的方式获取的用户实时偏好信息能够产生更好的效果。
4.5.2 对话系统效率
该部分主要对对话推荐方法的推荐效果和交互效率进行讨论,所以对比模型为涉及对话推荐思想的方法。本文提出的LSCPR和其它对比模型的评价指标实验结果见表6,其中为更直观地看出在数据量较大的Yelp数据集上各模型之间的性能对比。
表6 不同模型对话推荐性能比较(效率)
首先,本文模型LSCPR在两个数据集上的评价指标(推荐成功率和平均对话回合数)都优于其它对比模型。具体来说,与最优基线模型相比,LSCPR在LastFM数据集上分别提高了SR@15和AT的1.8%和0.75回合。同时,在Yelp数据集上的性能提升比LastFM数据集显著,分别提高了SR@15和AT的2.6%和1.06回合。这说明在数据量较大时,历史交互数据的充分利用反而能够显示出更大的优势。图4为各模型与最优对比模型CPR在每个对话回合中成功率差值的情况。可以看出LSCPR模型处于平稳且优于最优模型的趋势。
图4 Yelp上不同回合数的SR*对比
其次,对话推荐模型(CRM、EAR、CPR、LSCPR)的整体性能大体上比传统意义上对话推荐方法(Abs Greedy、Max Entropy)更优。本文认为原因在于对话推荐模型采用基于强化学习的策略模块对对话环境充分建模,更新用户的实时交互反馈信息,能够及时调整相应的项目和属性候选集。其中Abs Greedy虽然性能较差,但是从图4可以看出它在前几个回合能够达到最佳效果,之后性能下降,推断原因在于它是一种尝试推荐项目的方法,而其它方法可以得到用户对项目和属性的明确反馈,从而减少候选项目空间,以此实现长期回报。另外,CRM模型性能略差的原因考虑在于其是单轮次推荐,不管推荐成功与否,自动结束对话。
最后,在对话推荐模型中,使用图的路径推理(CPR、LSCPR)比不使用(CRM、EAR)更优。原因在于图节点关系的约束有助于消除许多不相关的属性,尤其是属性数量较大时。同时,候选空间限制在邻接属性或者项目使得对话流畅性提升。所以,本文基于图的路径推理来改进推荐方法,将用户历史交互信息采用注意力机制获取有价值的用户偏好表示,将其对项目候选集做进一步限定,从而得到更好的推荐效果。
4.6 消融实验
实验评估了用户长期偏好与短期偏好相结合给对话推荐系统性能带来的影响,为进一步验证用户长短期偏好结合的重要性以及注意力机制在用户长短期偏好信息融合方面所起到的作用,本文构建了以下LSCPR变体。
(1)LSCPR-AM:忽略项目候选集预测模块中对注意力机制的应用,仅采用平均值的方法来代替LSCPR中利用注意力机制捕获用户历史交互数据中融合长短期偏好的表示。
(2)LSCPR-ST:忽略项目候选集预测模块中对用户短期历史交互数据的应用,即不再单独考虑历史交互序列中最近的交互项目对于实时对话交互路径选取的影响。
(3)LSCPR-LS:忽略项目候选集预测模块中对用户历史交互数据的应用,即仅采用实时对话交互信息来进行推荐,改变后的模型近似于CPR模型。
本文使用SR@15和AT评价指标来评估相应模块设定在LastFM数据集和Yelp数据集上的有效性。消融实验结果如图5所示。首先,LSCPR模型的性能优于其它3个变体,验证了历史交互数据与用户实时对话交互信息相融合的必要性,这两类信息相辅相成,互相提供有效信息,历史交互数据为项目候选集的选取增添用户个性化限制,同时通过实时交互获取的邻接项目节点为项目候选集的生成划定了相应的范围。此外,对历史交互数据的应用也应考虑长短期偏好的划分,LSCPR-ST变体的实验验证了用户最近时间的历史交互项目对之后项目选取具有重要作用。LSCPR-AM变体则验证了注意力机制在长短期兴趣偏好融合表示的积极贡献。
图5 历史交互数据应用对模型的影响
5 结束语
本文提出了一种结合用户长短期偏好信息的对话推荐方法LSCPR,该方法首先利用注意力机制将用户历史交互数据中的一般偏好与短期偏好进行加权表示,再与通过用户、项目、属性三元无向图的路径推理得到的实时更新的未交互项目集进行线性融合,最终求得项目集中每个项目的预测评分,得到最终的项目候选集,为用户提供更具个性化与实时性的推荐结果。最后,基于两个真实数据集进行相应实验,验证了对用户历史交互数据进行充分利用的必要性,同时采用基于路径推理的对话推荐方法更好地实现了推荐结果的可解释性。