皮盼资讯网移动版

皮盼资讯网 > 潮流时尚 >

基于潜因子评分反馈学习的餐馆推荐(2)

为了解决这个问题,本文试图使用修改后的item-CF来预测评级。首先,在传统的item-CF中,使用用户-项目评级矩阵来计算项目之间的相似性。然后,选择与目标项具有最大相似度的前K个项,以构造邻居集。最后,通过邻居集的已知评级的加权和来预测目标项的未知评级。在本文中,我们试图利用评论中的潜在因素特征来计算项目之间的相似性,而非使用用户-项目评级矩阵的特征。

4. 基于LDA的推荐模型

在本节中,本文首先通过LDA主题模型挖掘评论来提取餐馆潜在的主题分布特征。随后,我们介绍相似度的计算。最后,我们进行评级预测和生成推荐。

4.1. 潜在主题分布特性

本文试图通过挖掘用户关心的潜在因素构建潜在的主题分布特征,并以此来表示餐厅的特征。具体来说,为了找到潜在的、用户关心的因素,本文致力于找到用户经常评论的主题,并推断该主题在餐厅的评论中评论的频率。为此,本文采用LDA主题模型从餐厅评论中获取潜在的主题分布。

4.2. 相似度计算

潜在主题分布特征反映了用户关心的主题以及用户关注此主题的强度,但无法反映主题是积极还是消极的。因此,我们将评级分解到K个潜在主题分布,获得项目-K主题评级矩阵。在某种程度上,项目-K主题评级矩阵与用户对餐厅的各个方面的详细评级信息基本相同。

4.3. 评分预测与生成推荐

在使用项目K主题评级矩阵计算餐厅之间的相似性之后,使用基于项目的协同过滤算法来预测评级并且使得Top-K餐厅形成推荐列表。对于用户u和餐厅i,评级预测遵循以下公式:

5. 实验

5.1. 数据集

本文使用Yelp数据集挑战赛第12轮提供的Yelp数据集进行了实验。整个数据集包括10个大城市的18.8万个本地企业和1518169个用户对188593个企业的5996995条评论的信息。其中,我们使用评论数据中的前25176条评论记录进行了实验,其中包含来自10,000个用户的18,479家餐厅的评级和相应评论。

首先,我们将同一餐厅的评论合并到同一文档中。接着,使用了nltk库预处理文档。然后,使用sklearn库为文档构建LDA模型,以获得餐厅的潜在主题分布,并将评级分解到K-主题上后计算餐厅之间的相似性。最后,我们将相似性应用于协同过滤算法,用于评分预测和Top-K推荐。本实验使用MAE(平均绝对偏差,见方程2),RMSE(均方根误差,见方程3),FCP(协调对的分数[7])来用5折交叉验证测量算法的评级预测的准确性。(我们使用数据集的80%作为训练数据,以及作20%为测试集)。MAE反映了评级预测算法的绝对误差水平,RMSE反映了准确预测评级的稳定性,而FCP表示预测结果与实际数据之间的一致性对数。

5.2. 最优主题数K

本文中,相似度的计算取决于从LDA模型中提取的潜在主题分布,主题数K对算法的准确性有一定的影响。因此,本实验探索了最优主题数K,进行了K∈[6,38]的实验,其中和K∈N且步长为4。实验结果如下图所示(见图2和表1)。

如图所示,当K值增加时,MAE和RMSE的值减小,这意味着算法的准确性增强,算法性能的稳定性增强。随着K的增加,FCP的值在很小的范围内波动,这意味着一致对数的数量没有显着增加。结果,K的变化对提高准确评级预测的一致性水平几乎没有影响。总体而言,K的增加可以显着降低MAE和RMSE,但是对FCP的变化没有显着影响,这意味着个体得分预测的准确性和稳定性将得到提高,但总体预测一致性不会有很大提升。

另一方面,当K的值增加时,这些主题的可解释性降低并且算法的计算复杂性增加。基于上述分析,对于主题K∈[6,38],其中K取值依次为步长为4的自然数,最优K为38。

5.3. 算法性能

在相同条件下,本文采用传统的基于项目的协同过滤算法对相同数据进行实验。结果如下:MAE=0.6083, RMSE=0.9334, FCP=0.4765。与传统的协同过滤算法相比,该算法的MAE和RMSE一般较小,因此可以说提高了算法的准确性和稳定性。该模型中的FCP较大,因此,该算法的一致性得到了改善(见表2)。利用该算法,可以提高个体得分预测的准确性和稳定性,并在一些内容上提高整体预测一致性。我们可以得出以下结论:LDA主题模型在餐厅特征提取和餐厅推荐以及文本相关推荐中表现出良好的性能。

5.4. 实验结果与讨论

(责任编辑:admin)