融合神经网络与矩阵分解的旅游景点推荐模型
2021-04-28郑吟秋汪弘扬陈建峡
郑吟秋, 汪弘扬, 程 玉, 陈建峡
(湖北工业大学计算机学院, 湖北 武汉 430068)
近年来旅游业发展快速,旅游景点的数量与网络上关于旅游信息愈发繁多,导致用户决定景点的过程变得复杂与低效。而好的旅游景点推荐服务可以给用户推荐符合其兴趣偏好的景点,从而提高用户决定景点的效率,同时也提升用户的出游满意度。景点所属类型易于区分,且类型相似的用户对旅游景点会呈现出非常类似的喜好,因此,实现景点推荐的一个直观思路就是基于用户群与景点群的“相似性”,充分利用用户的偏好与景点的内在关联实现推荐模型。
在推荐系统方面,已有的代表性工作主要分为传统模型的研究与深度学习模型的研究。时至今日,传统推荐模型凭借其训练速度快、可解释性强等特点依然得到较为广泛的使用,但传统模型所执行的简单操作并不能充分满足人们对推荐模型效果的追求。目前,随着深度学习技术的持续发展及其在多种领域取得的巨大成功,研究者也把深度学习应用到推荐系统中。神经网络模型具有较强的拟合能力,随着深度学习技术的发展与算力的提升,现有模型的网络层数不断加深,表达能力也越来越强,从而可以挖掘更多数据中隐藏的模式。近年来深度神经网络在推荐系统领域有两种应用方式:一是作为传统推荐算法的辅助,利用神经网络对用户和物品的辅助信息进行建模;二是将神经网络作为推荐模型中的核心板块,利用神经网络构建模型,为用户推荐感兴趣的物品。
针对旅游进行推荐模型研究的思路主要有两种: 排序模型和序列推荐。李广丽等在2019年提出基于混合分层抽样统计与贝叶斯个性化排序的推荐模型[1],综合用户旅游喜好信息及BPR优化结果,生成混合推荐列表,取得了较好的结果。同年, 张尧舜等人使用基于序列学习的旅游景点推荐[2],分析游客的旅游轨迹信息来为游客作出个性化的旅游景点推荐,解决了传统推荐中的冷启动、数据稀疏、忽略旅游轨迹中高级语义和推荐准确度低的问题。
本文围绕旅游景点推荐问题展开研究,根据问题背景和数据类型,使用了Tr-DNNMF模型来捕获用户和景点数据中的有用信息。该模型基于旅游场景,融合了神经网络和矩阵分解这两种被广泛使用的模型,以期望获得更好的景点推荐效果,并为用户提供能满足其兴趣偏好的智能推荐服务。
1 相关工作
1.1 协同过滤算法简介
协同过滤算法是最经典、影响力最大的传统推荐算法,它根据用户的历史行为记录进行推荐,核心是基于用户-物品的交互记录构造用户-物品评分矩阵,矩阵中已知的元素就是对应的用户给物品的评分,这个评分矩阵非常稀疏,协同过滤要做的就是基于评分矩阵中已有的元素来预测未知元素的评分,根据预测分数进行降序排序,将前面的物品推荐给用户,协同过滤算法流程见图1。
协同过滤的关键是计算相似度,主要使用余弦相似度公式、Jaccard公式、皮尔逊相似度等方式计算,根据对象不同可分为基于用户的协同过滤和基于物品的协同过滤。在协同过滤算法的基础上延伸出矩阵分解(MF)[3]算法,该算法可在一定程度上解决协同过滤算法存在的稀疏性问题,并且具备较好的扩展性。从直观上看,矩阵分解是把评分矩阵近似分解成两个向量的乘积,分别表示用户向量和物品向量,它们代表了用户的偏好与物品被关注的因素。在矩阵分解中,用户向量与物品向量的内积就是该用户对该物品评分的预测。
图 1 协同过滤算法流程图
尽管协同过滤和矩阵分解算法非常直观,易于理解,但它们分别利用稀疏的评分矩阵与内积操作进行得分预测,因此模型的泛化能力与表达能力都不够强,如果面对历史行为很少的用户,就没法产生准确的推荐结果。尽管如此,凭借其特性,在深度学习流行的今天,这类传统协同过滤推荐模型为深度推荐模型的发展奠定了坚实的基础。
1.2 基于深度学习的推荐算法
近年来,各大互联网公司逐渐将深度学习运用到自己的推荐业务中。实际上,深度学习是通过加深神经网络的层数,使模型有更强的表达能力,能更好地提取特征,挖掘更多数据中隐藏的模式。随着深度学习技术的演进与算力的提升,深度学习在推荐系统领域的应用出现了两种趋势:要么以传统推荐算法为核心,仅用神经网络对用户和物品的文本、图片信息进行建模;要么把神经网络作为推荐模型的核心板块,通过训练为用户推荐感兴趣的物品。由于深度学习模型的结构灵活,可根据实际场景和数据特点调整结构,因此基于深度学习的推荐系统是发展持续火热的方向之一。
最简单的神经网络推荐模型是AutoRec[4],只有一个隐藏层,是在协同过滤的基础上加入了自编码器的思想,有一定的泛化能力。AutoRec模型和Word2Vec模型的结构一致,但优化目标和训练方法不同。AutoRec利用协同过滤中的用户-物品共现矩阵,完成物品向量或用户向量的自编码。再利用自编码的结果预估用户对物品的评分。进一步加深网络层数后,出现了以微软Deep Crossing[5]为代表的深度推荐模型。Deep Crossing模型的结构是典型的嵌入加多层神经网络的模式,该模型首先用embedding层将稀疏特征转化为低维稠密特征,用stacking layer连接分段的特征向量,再通过多层神经网络完成特征的组合与转换,最终用scoring layer进行计算。
1.3 深度推荐模型的改进思路
深度学习推荐模型的主要进化思路有改变特征交叉方式与改变模型组合方式。前一种以PNN[6]模型(Product-based Neural Network)为例,该模型的关键是,在embedding层和全连接层之间加入Product layer,其中product操作在不同特征域之间进行特征组合,增加特征交叉和特征组合时对信息表达的针对性。此外,PNN还定义了内积、外积等操作来捕捉不同的交叉信息,增强模型表征不同数据模式的能力 。
改变模型组合的代表是Google的Wide&Deep[7]模型、华为的DeepFM[8]模型。Wide&Deep模型把单输入层的Wide部分和经过多层感知机的Deep部分连接起来,一起输入到最终的输出层。其中,单层的Wide部分让模型具有记忆性,从而处理大量稀疏的ID类特征,即记住用户的大量历史信息,Deep部分则利用DNN强大的表达能力,挖掘特征内在的数据模式,让模型具有泛化性。最终再利用LR输出层组合Wide部分和Deep部分。
DeepFM是在Wide&Deep的基础上,用FM部分替换原来的Wide部分,增强浅层网络进行特征组合的能力。FM部分由一阶和二阶特征交叉的计算组成,DeepFM是通过同时组合原来的Wide部分、二阶特征交叉部分和Deep部分这三种结构,来进一步增强模型的表达能力。Wide&Deep模型影响力巨大,是因为很多深度学习推荐模型采用了两个、甚至多个模型组合的形式,利用不同网络结构的特性挖掘不同的信息并进行组合,这样就充分利用了不同网络的优势,有助于提升模型的推荐效果。
2 TR-NeuMF推荐模型
本文使用的景点推荐模型Tr-DNNMF(Trouism Recommendation Based on Deep Neural Network Matrix Factorization)基于神经协同过滤(Neural Collaborative Filtering, NCF)框架[9],该框架的思路是把模型分成用户侧和物品侧两部分,再使用互操作层把这两部分联合起来,产生最终的预测得分。下面根据Tr-DNNMF模型流程图(图2)与Tr-DNNMF模型的结构图(图3)详细阐述本文的工作流程、模型的具体结构及训练细节。
图 2 Tr-DNNMF模型流程图
2.1 数据预处理
首先对采集到的原始景点数据进行预处理:提取并保存用于训练模型的主要字段,然后对数据进行去重、去异常数据等清洗工作。根据相应的训练集格式构造训练数据文件,再通过负采样操作给模型提供从隐式数据中进行学习的负样本,最后得到了用户-景点交互数据和负采样数据。通过数据处理阶段,可以改善数据的质量,并对数据的分布和相关信息进行初步探索,有助于后续建模的过程。
2.2 模型结构
Tr-DNNMF模型基于神经协同过滤框架,对用户-景点的历史交互数据进行训练。首先,分别在旅游数据上训练广义矩阵分解模型(GMF,Generalized Matrix Factorization)和多层感知机模型(MLP,Multi-Layer Perceptron),然后把这两个模型最后一层的特征串联起来,将MF(Matrix Factorization)的线性和DNN(Deep Neural Networks)的非线性相结合,对用户-景点的潜在结构进行建模,使模型既具备良好的扩展性,又有强大的拟合能力。Tr-DNNMF模型原理见图3。
图 3 Tr-DNNMF模型结构图
Tr-DNNMF模型中的MF结构可作为NCF框架下的一个特例,用户和景点的One-hot编码在经过嵌入层之后会分别生成用户和景点的隐向量,之后在GMF层中逐元素计算用户隐向量与景点隐向量的内积,在输出层使用sigmoid激活函数和对数损失函数。MLP结构使用了多层神经网络,在学习用户和景点潜在特征之间的交互时,在拼接的向量上添加隐藏层,使得模型具备较强的灵活性和一定的非线性,以解释用户和景点潜在特征之间的交互,增强了用协同过滤建模的能力。Tr-DNNMF模型的内容可定义为公式(1)~(3):
(1)
式(1)为GMF部分通过计算用户u的隐向量和景点i的隐向量的内积,以得到推荐得分
(2)
式(2)为MLP部分通过多层神经网络从用户-景点数据中学习交互函数,最终得到预测分数。
(3)
式(3)为Tr-DNNMF模型最终通过拼接层得到GMF和MLP的融合模型预测结果。
为让融合模型获得更多的灵活性,Tr-DNNMF模型中GMF和MLP先各自学习单独的嵌入,而不是使用共享的嵌入,如此可以避免共享GMF和MLP的嵌入向量对模型融合性能的限制,然后通过连接它们的最后一个隐藏层将这两个模型结合起来。
2.3 模型训练
Tr-DNNMF模型从零开始训练GMF和MLP,采用了Adam算法,通过对频繁的参数进行较小的更新和对不频繁的参数进行较大的更新,动态地改变每个参数的学习率。与原始SGD相比,这两个模型使用Adam的收敛速度更快。在给Tr-DNNMF模型输入预先训练好的参数后,使用原始的SGD,因为Adam需要保存动量信息,以便正确地更新参数,而Tr-DNNMF模型只使用预先训练好的模型进行参数初始化,不保存动量信息,故不适合使用基于动量的方法来进一步优化Tr-DNNMF模型。模型的输出层使用ReLU作为激活函数,使模型输出的预测分数表示用户和景点相关的概率,然后通过对数损失函数计算真实值与预测值的损失,进行参数更新。
Tr-DNNMF模型采用point-wise方法学习模型参数,使用的损失函数为平方损失的回归函数。由于Tr-DNNMF模型的目标函数是非凸的,基于梯度的优化方法只能找到局部最优解,因此初始化对模型的收敛和性能起着重要作用,采用随机初始化。由于Tr-DNNMF模型是GMF和MLP的结合,本文使用GMF和MLP的预训练模型来初始化Tr-DNNMF模型。首先对GMF和MLP进行训练直到收敛。然后把它们的模型参数作为Tr-DNNMF模型相应部分参数的初始化。在输出层连接两个模型的权值,此过程中需通过对超参数的调整来决定两个预训练模型之间的权衡。
3 实验与分析
3.1 实验数据
本文使用的用户评分数据来自携程网,进行了数据预处理。用户评分数据包含4999条用户-景点交互记录,每行的格式为(用户ID,景点ID,用户评分,时间戳),见表1,数据稀疏度为0.0189%,由于模型是从隐式数据中学到交互数据中用户与景点的关联性,故模型不会利用真实的评分,而是通过把交互样本被标记为0(负样本)或1(正样本)来构建训练数据,进行后续训练过程。
表1 景点交互数据示例
3.2 实验设置
本文使用MLP、GMF和Tr-DNNMF这三种模型实现了对用户-景点交互数据的建模,前两种模型使用小批量Adam优化方法,针对Tr-DNNMF使用了随机梯度下降算法。Tr-DNNMF模型的参数及数值见表2,其中模型的预测因子(factor number)为模型最后一层隐藏层的神经元个数。表2是三种模型在HR@10和NDCG@10指标上的对比,实验结果表明模型融合后的性能更好。
表2 实验参数设置
3.3 评价指标
本文使用了命中率(HR)、归一化折损累计增益(NDCG)作为评估模型性能的评价指标,并将这两个指标的排名都设置为10。在实验中,每个测试用户计算了这两个指标的平均值。HR是目前TOP-N推荐研究中十分流行的评价指标,能够很直观地衡量测试景点是否出现在前10名的景点列表中。HR的计算见公式(4):
(4)
其中#users是用户数,#hits是测试集中的item出现在Top-N推荐列表中的用户数。
NDCG通过给排名靠前的热门景点分配更高的分数来说明热门景点的位置,它在折损累计增益(DCG)的基础上进行归一化处理,取值在0-1之间。DCG假设相关度高的结果排在前面,高分的相关性更高,DCG与NDCG的计算分别见公式(5)和公式(6)。
(5)
(6)
其中,reli表示排在第i位的商品用户是否喜欢(值为1是喜欢,为0是不喜欢),p是推荐列表长度,iDCG是理想情况下的值。
3.4 实验结果
本文在建模用户-景点交互数据时,对factor_num和num_layers等参数进行了参数调优过程。实验了factor_num为[8,16,32,64]的情况和num_layers为[3,4,5]的情况,当factor_num取值为64,num_layers取值为4时模型性能较好。如果factor_num取值过大会导致模型过拟合。模型在该参数配置下的实验结果见表3。
表3 基于交互数据推荐的实验结果
实验结果表明Tr-DNNMF模型比MLP模型的NDCG@10提高了7%,HR@10提高了0.5%,比GMF模型的NDCG@10提高了37%,HR@10提高了38%。
4 结论
根据景点推荐问题实现了Tr-DNNMF模型,详细介绍了模型结构与训练流程。本文用该模型在用户对景点的交互数据上进行了大量实验,并与单模型进行推荐性能的对比测试。实验结果表明,Tr-DNNMF模型具有良好的景点推荐效果,与单模型相比,性能有较大的提升。为进一步提升景点推荐的效果,可从以下三个方面考虑:1)利用时间(如不同季节、节日效应),地理环境等多种上下文信息进行训练,实现不同类别景点的推荐权重的智能调节,推荐更满足用户需求的景点;2)除了用户评分数据,模型还可以利用包括景点图片和景点描述文本的辅助信息,构建更适合旅游场景的模型;3)利用图嵌入和基于邻域的推荐算法,进一步提升模型在高稀疏度数据上的效果。