APP下载

融合社区结构和个人兴趣的协同过滤推荐算法

2018-11-17杨长春

计算机工程与设计 2018年11期
关键词:个人兴趣正则社交

顾 寰,杨长春,吴 云,徐 筱

(常州大学 信息科学与工程学院,江苏 常州 213164)

0 引 言

推荐系统[1-3]中的推荐算法部分是推荐过程中重要的一步,其中协同过滤(collaborative filtering,CF)算法是当前效果较好的推荐技术[4]。其主要思想是利用已有用户群的历史数据推测当前用户的喜好。但是协同过滤算法的缺点在于对数据稀疏性问题很敏感[5]。目前,网上的用户越来越多,商品种类也越来越丰富,用户与用户之间购买相同物品的机会越来越少,从而推荐结果出现了严重的过拟合现象。因此,最近的研究关注于将用户的社交信息融入推荐算法中,减少过拟合现象。Li H等[6]提出的模型采用了重叠社区发现算法,通过调节目标函数中的正则项,降低所在社区中用户间的偏好差异。Yang X等[7]提出了一种改进SocialMF模型,增加了用户对不同好友之间信任度的差异,但是算法将用户的好友划成不同的类别,因此反而加剧了数据稀疏性问题。郭磊等[8]也提出了一种改进SocialMF模型,其考虑了信任具有不唯一性,基于用户兴趣和信任关系,挖掘出和目标用户具有相似兴趣以及可信赖的新用户,并建立模型,算法中可能出现的缺陷还是源于没有密集的社交关系网络。郭弘毅等[9]考虑了用户社区结构和用户的兴趣聚类,也提出了一种改进的SocialMF,称为CCMF,该算法虽然加入了用户社区信息和用户兴趣,缓解了由于数据稀疏性带来的推荐不准确的问题,但算法将多个用户的兴趣融合成一个总的兴趣,没有充分考虑个人的兴趣,导致推荐精度不高。因此,本文提出了一种基于社区结构和用户个人兴趣的协同过滤推荐算法,以达到更高的准确性。

1 个性化推荐系统模型

本文采用的基于社区发现和用户个人兴趣的协同过滤算法的过程如下:①通过BIGCLAM算法找到用户中存在的隐含社区结构;②根据评分数量挑选出有经验的用户,并建立这些用户的个人兴趣;③通过在目标函数中引入新的正则项将社区结构和个人兴趣融合到矩阵分解模型的优化分解过程中,获得更好的推荐结果。

1.1 准备工作

本文采用的符号有:U={u1,u2,…,um}为推荐系统中所有用户的集合,V={v1,v2,…vn}为推荐系统中所有项目的集合,其中m为用户总数,n为项目总数。R=(Rij)m×n为用户项目评分矩阵,其中Rij∈{1,2,3,4,5}为用户ui对项目vi的评分。T=(Tij)m×m,Tij∈(0,1)为用户的好友关系矩阵,Tij=0为用户ui与用户uj之间不存在好友关系。

1.2 基于社区结构的聚类

推荐系统中的用户通常和好友具有相似的偏好。基于该假设,一些研究通过加入用户的社交关系提升了传统的协同过滤算法的准确度。然而在大型的社交网络中,往往会出现一个现象[10],即大多数用户的社交关系比较稀疏,所以依赖社交关系来发现社交网络比较困难。因此必须通过其它方式来发现社交网络。近年来,社区网络发现领域的重点是重叠社区发现,而其中的BIGCLAM算法是目前效果突出的重叠社区发现算法[11],文献[6]的实验对比表明BIGCLAM算法相对于其它社区发现算法在推荐系统方面具有更好的效果,所以将BIGCLAM算法作为本文发现用户社交网络的算法。

BIGCLAM算法将社区内的所有用户的评分平均值作为社区的评分值,然后将单个用户的评分与该社区评分值相比较,作为判断该用户是否对该社区感兴趣的标准。然而本文发现社区中的每个用户对社区的贡献是不同的,在社区中,拥有更多好友的用户往往更能代表一个社区,基于该假设,有以下公式。

(1)带有权重的社区评分向量

(1)

(2)用户与社区的相似度

(2)

式(1)和式(2)定义请参见文献[9]。

从式(1)中可以看出社区中好友越多的用户对社区的贡献度越大。

由此,我们获得了基于社交网络结构的用户社区信息和每个用户对每个社区感兴趣的程度。

1.3 用户兴趣的定义

重叠社区发现算法能够发现用户中的网络结构,属于同一网络结构内的用户存在相同的特性。然而研究发现,有一些用户,例如有很多打分记录的用户(称为有经验的用户),他们在选择的时候,很少在意别人的意见,传统的推荐算法虽然通过社区聚类缓解了数据稀疏的现象,但是它们将这些用户与其它用户一视同仁,忽略了这些用户的个性,造成了对这些用户推荐的不准确,因此,本文提出了融入用户兴趣的算法,该算法在传统的推荐算法的基础上,加入了用户个人兴趣,提高了推荐的准确率。

定义用户兴趣

因为用户兴趣基于用户已打过分的项目,因此本文定义用户的兴趣即为用户特征向量Du与物品特征向量Di的相似度,记为Qu,i

Qu,i=sim(Du,Di)

(3)

因此用户个人兴趣可用一个条件概率分布来表示,公式如下

(4)

1.4 社区结构和个人兴趣的融合

目前协同过滤算法中应用的最为广泛的是矩阵分解模型,其核心思想认为用户的兴趣只受少数几个因素的影响,因此将稀疏且高维的用户项目评分矩阵R分解为两个低维矩阵

R≈UTV

(5)

其中,U∈Rk×m,V∈Rk×n,k≪min(m,n)。为了得到更好的结果,需要对预测评分矩阵和原评分矩阵的误差进行优化,一般采用以下式(6)

(6)

其中,Iij为指示函数,表示用户ui对项目vj是否产生过评分,取值为0或1。由于User-Item评分矩阵维度较高,应当小心谨慎预防过拟合现象,因此需要通过加入正则化项来避免过拟合,添加正则项后的公式如下

(7)

因此,本文提出了一个融合了双重正则项的矩阵分解模型,记为PRM(personalized recommendation model)。其目标函数如式所示

(8)

为了学习模型中的参数,我们使用随机梯度下降的方法来得到最优解,相应的公式如下

(9)

(10)

通过不断地迭代,沿梯度下降方向更新U和V中的元素直到收敛。

2 实验结果与分析

2.1 实验准备

本节通过实验来检验本文提出方法的有效性。本文在真实的数据集上开展实验,所有的实验基于台式机环境,机器配置如下:操作系统为Win7 64位,CPU为intel i7-4790@3.6 G,内存为16 G。

本文的实验数据来自全球最大的餐厅点评网站YELP提供的公开数据集。该数据集内容丰富,全部为该网站收集的真实用户数据,因此在推荐系统相关的论文中被多次使用[9]。数据集中包括的内容有:用户在YELP网站上对餐厅的评分和发表的评论,用户之间的互动关系以及好友关系,餐厅的风味特色等。数据集含有8350位用户,84 652个餐厅,524 117条用户互相关注关系,263 773条评分信息。所有数据总共分成8个种类,每个数据种类分别按1-5的标度进行衡量。YELP数据集中的类别信息统计数据见表1。

表1 YELP数据集统计量

2.2 对比算法

为了验证本文提出的模型与其它模型在准确率上的差异,本文选择3种模型作为对比模型进行详细验证:

BaseMF:该矩阵分解模型是基本的协同过滤模型,仅考虑了用户对物品的评分信息,忽略了用户的社交关系信息和项目类别信息。

CircleCon:在BaseMF的基础上,加入了用户与其好友的信任关系和用户信任网络信息,提高了结果的准确性。

ContextMF:该方法在传统的矩阵分解的模型中,考虑了个人影响力和个人兴趣,相对于传统的协同过滤模型相比提升了准确度。

2.3 评价指标

本文使用五折交叉验证法。将原始数据集平均分为5组,每次先选择数据集的4组当作训练集,数据集余下的一组当作测试集,最后取5次实验结果的平均值作为最终的结果。

准确性是衡量推荐算法效果好坏的关键指标,因此本文采用平均绝对误差(MAE)和均方根绝对误差(RMSE)作为评价指标

(11)

(12)

MAE和RMSE的定义请参见文献[9]。MAE值和RMSE值越小表示推荐结果的准确性越高。

2.4 确定正则项系数λZ的值

式(8)中正则项系数λZ表示用户的社交网络信息在矩阵分解模型中所占的比重,当λZ=0时相当于基本的矩阵分解模型。将λZ分别取值{0.0001,0.001,0.01,0.1,1}进行实验。记录当λZ取不同值时,MAE和RMSE的值的变化。

从图1中可以发现,当λZ取较小的值时,MAE值和RMSE值相对较高,随着λZ不断增大,MAE值和RMSE值会不断降低,当λZ=0.01时MAE和RSME同时达到最低。λZ的值继续增加后,MAE值和RMSE值再次升高。分析其可能原因,当λZ取较小的值时,式(8)中的推荐结果并不受社交网络信息的影响,因而不能反映出社交网络信息在推荐过程中起到的重要作用;而λZ取值过大时,则过度放大了社交网络信息在推荐过程中所起的作用,结果适得其反。

图1 系数λZ对准确度MAE,RMSE的影响

2.5 结果对比与分析

(1)不同推荐算法的推荐效果对比

根据实验可以得到,当正则项系数λZ=0.01时,本文提出的PRM算法能够获得最高的准确率。为了进一步评估PRM算法的有效性,本文先采用五折交叉法对本文实验所需算法的参数进行验证确定。结果显示,λU=λZ=0.01时效果最好,λU,λZ为常规正则项系数。用户隐式特征向量维数取值等于项目隐式特征向量维数取值,均为15。在CircleCon算法和ContextMF算法中,社交正则项系数λZ分别设为0.01,0.01。在PRM中,个人兴趣系数取30。最后将PRM算法与上文中提到的其它推荐算法进行对比。

根据图2和图3可知,本文提出的PRM推荐算法相对于其它推荐算法,MAE和RMSE的值更低,推荐结果更准确。

图2 PRM算法与其它算法的MAE值对比

图3 PRM算法与其它算法的RMSE值对比

分析其可能的原因,BaseMF算法由于没有考虑用户之间的社交关系所以推荐效果最差。CircleCon算法以用户打过分的项目为依据,将用户分成不同的组别,但是在每个组别中,用户与用户之间的互动不多,造成了推荐不够准确。ContextMF算法没有同时利用用户社交信息和项目的类别信息,造成推荐结果准确性不够高。本文提出的PRM算法首先利用用户的社区结构信息,改善了因用户的直接社交关系数据稀疏而造成的过拟合的问题;然后通过加入有经验用户的个人兴趣,优化了用户的特征向量,获得更加准确地推荐结果。

3 结束语

现有的基于社交关系的推荐算法虽然在缓解数据稀疏方面有很好的效果,但是它们将属于一个组的用户视为一个用户,学习他们共有的特征,没有考虑一些有经验用户的个人特性,而这些用户往往是电商网站重要的客户,忽视这些用户将导致推荐效果不理想。为了解决这一问题,本文提出了一种新的推荐算法,该算法先利用重叠社区发现算法挖掘用户的社交关系群体,解决了数据稀疏性的问题,然后加入经验用户的个人兴趣,从而获得更好的推荐效果。实验结果表明该算法比现有算法能够得到更准确的推荐结果。

猜你喜欢

个人兴趣正则社交
社交牛人症该怎么治
聪明人 往往很少社交
社交距离
2018年12月大学英语六级作文试题评析(四)
剩余有限Minimax可解群的4阶正则自同构
你回避社交,真不是因为内向
类似于VNL环的环
有限秩的可解群的正则自同构
奇异保序变换半群的极大正则子半群