熊清华
摘 要: 基于社交网络的社会化推荐的依据是社交网络中亲密关系的用户往往具有相似的兴趣爱好。当前基于社交网络的推荐没有充分地利用社交关系信息,导致预测精度较低和计算效率低、收敛速度慢。为了缓解数据稀疏以及提高推荐系统准确性,对社交网络提出了一种融合用户熟悉度和用户特征评分的推荐模型,充分利用了社交网络中的用户关系信息和特征信息。实验表明,给出的推荐算法相比传统的协同过滤算法明显提高了推荐精度。
关键词: 社交网络; 推荐系统; 用户熟悉度; 用户特征评分; 评分融合
中图分类号:TP391.1 文献标志码:A 文章编号:1006-8228(2015)08-29-02
Research on recommendation model based on social network
Xiong Qinghua
(Institute of Software & Intelligent Technology, Hangzhou Dianzi University, Hangzhou, Zhejiang 310018, China)
Abstract: The basis of social recommendation based on social networks is that users of intimate relationships in social networks often have similar interests. Existing recommender approaches based on social trust relationships have not fully utilized such relationships and thus have low prediction accuracy or slow convergence speed. In order to improve the system accuracy and reduce data sparseness, we propose an improved recommendation model which blends user intimate rating and user characteristic rating and fully utilizes social relationships and characteristic information. The experiments show that the proposed algorithm is significantly improved compared with the traditional collaborative filtering algorithm.
Key words: social network; recommendation system; user intimate rating; user characteristic rating; rating blending
0 引言
当前社交网络迅猛发展,其中庞大的用户数量、用户关系信息以及海量的各种交互数据,可以为个性化推荐系统提供有利的数据基础。例如基于Oauth2.0的第三方登陆协议开始普遍应用于各类互联网应用的账户登录[1],用户可以利用其社交网络账户登录到第三方的服务网站。第三方服务网站不仅可以有效降低用户的注册难度,也可以获取到用户的社交网络信息,为用户提供个性化的内容。本文提出了一种融合社交网络的推荐模型,充分利用了用户的社交网络信息,在有效缓解数据稀疏问题的同时,明显的提高了推荐系统的预测精度。
1 基于社交网络的推荐模型
1.1 社交网络用户熟悉度的计算
对社交网络中用户熟悉度的计算,是以社会心理学中人的信任产生过程研究为理论基础。一般来说,人们会对熟悉的人产生信任,越是熟悉,信任度也越大,另外如果在相同熟悉度的条件下,人们往往更倾向信任与自己有相似背景、兴趣和价值观的人。因此对某人的熟悉度计算可以在一定程度上反映用户对其的信任度。对于推荐系统来说,若是这部分人的推荐,用户往往更容易接受,同时也可以根据熟悉用户的人对项目的偏好,来推测出用户的对项目的偏好[2]。
我们用s∈Rn×n表示用户的社交关系,矩阵中的每一个元素sij取值为0或1,当sij=0时表示用户i与用户j之间没有直接联系,当sij=1时表示用户i与用户j相互关注或存在直接联系,并且他们的距离为1,若sik=0,sjk=1,则用户i与用户k存在间接关系,他们的距离为dik=sij+sjk=2。根据六度分割理论,在一般的社交网络中,两个人之间最多只需要6人就可以产生联系。基于这个理论,社交网络中两用户的最大距离d为7。考虑到计算复杂性及准确率之间的平衡,我们只取最大距离dmax=3作为临近用户的计算[3]。
对于间接关系的熟悉度计算,本文定义,在社交网络中两个用户u,v的熟悉程度与他们的距离呈对数衰减,具体公式定义如下:
⑴
1.2 社交网络用户特征评分的计算
针对传统推荐算法中,用户-项目评分矩阵数据稀疏的问题,我们选取了社交网络用户的若干特征,构造了用户特征-项目评分的矩阵,如表1所示。
表1 用户特征-项目评分矩阵
[\&项目1\&项目2\&...\&项目n\&特征1\&0\&3\&...\&2\&特征2\&1\&4\&...\&2\&...\&...\&...\&...\&...\&特征n\&1\&3\&...\&0\&]
矩阵的项rfi表示具有特征f的用户对项目i的评分的统计平均值取整,若具有f特征且对项目i评分的人数少于给定阈值时,考虑到评分的可信度,将rfi置零。求解矩阵中的0项元素采用LFM模型求解,因为LFM模型的训练效果最好,并且具有很好的可扩展性。
预测评分公式如下:
⑵
其中,oc表示用户特征的偏置,oi表示项目偏置,k表示潜在语义,pck=P(c,k),qki=Q(k,i),也即将预测评分矩阵表示为矩阵P、Q相乘再加上偏置量。最后采用直接最小化均方根误差来学习计算P、Q矩阵。
使用LFM模型求解出用户特征-项目评分矩阵后,假设用户自身特征集合为F(u),trfi表示具有特征f的用户对项目i作出的评分,wf表示对应特征f的权重。求用户对项目的偏好评分公式如下:
⑶
对于特征权重wf的计算,考虑TF-IDF算法的思想[4],它综合考虑特征词在所有特征中的重要性和普遍性,具有很好的区分度,计算公式如下:
⑷
其中,N表示用户总数量,nf表示具有特征f的用户数,k是常数,主要作用是防止某些小众特征获得过大的权重。
1.3 社交网络用户熟悉度与用户特征评分的融合
社交网络用户熟悉度的计算用于确定用户的近邻,并衡量他们的信任程度。用户的特征评分的计算得到了相似特征、相似兴趣等条件下用户基于某种特征对项目给出的预测评分。将这两部分进行适当融合,可以有效提高评分预测的准确度。
首先计算基于社交网络用户熟悉度的用户评分。根据用户u的熟悉度计算确定其近邻用户集合为Γ(u),用户u与其邻居v间熟悉度用fu,v来表示,用户v对项目i的评分用frvi表示,则用户u对项目i的评分可以按如下表达式计算得到:
⑸
对于与用户特征评分的融合,若直接采用线性融合方式,会忽略掉社交网络中的某些用户因素。例如社交网络中的用户权重并不都是相同的,有些用户作为核心节点,理论上应该占有更大的权重。这里采用Fisher线性判别的方式,其训练特征除了包括基于用户熟悉度的预测评分、用户特征预测评分。还包括用户好友数量特征、用户特征数量等。其融合函数形式如下:
⑹
通过Fisher线性判别的训练计算过程[5],可以将、λ、θ、β等参数求解出来。
2 实验与结论
2.1 实验数据集
针对本章提出的改进算法,为了验证其有效性与推荐质量,本文采用了百度开放研究社区提供的电影推荐系统算法创新大赛数据集。该数据集提供了139690个用户和140000部电影数据。实验使用了training_set.txt、user_social.txt 两个数据文件。其中training_set.txt数据格式为:userId、movieId、rating(1-5分),拥有用户评分数据493905条,稀疏度为0.0025%。user_social.txt 为用户的社交关系数据,数据格式为userId,follows,其中有用户社交关系53690条。
2.2 评价指标
平均绝对误差(MAE)[6]是所有单个观测值与算数平均值的偏差的绝对值平均。其定义为:
⑺
其中,I为测试集,表示i的预测评分,ri为其实际评分。
均方根误差(RMSE),它能反映预测值与实际值的偏差程度。其表达式定义如下:
⑻
其中,rui表示实际评分,表示预测值。
平均精度(MAP),单个top-N推荐的平均精度是每个项目的准确率的平均值。MAP是反映系统在全部推荐项目的准确率的指标。其定义为:
⑼
其中,P(k)表示用户对该项目的点击数与其在top-N列表中的排序k的比值,即该项目的推荐准确度。c为推荐项目中被用户点击过的项目总数。
2.3 实验分析
实验一:选取社交网络用户间接联系层级数S分别为0、1、2、3、4,计算对应的数据稀疏度及平均绝对误差MAE,结果如表2所示。
表2 不同层级下数据稀疏度及平均绝对误差对比
[层级数S\&0\&1\&2\&3\&4\&数据稀疏度\&0.002%\&0.05%\&1.3%\&18.2%\&73.2%\&平均绝对误差\&0.972\&0.851\&0.687\&0.615\&0.758\&]
从实验结果可以看出,随着网络层级数的增加,数据稀疏度明显降低,从而有效降低由于数据稀疏带来的计算不准确的问题。同时平均绝对误差也随之层级数的增加而改善,但是在层级数达到4时,平均绝对误差反而增加了。分析其原因,随着层级的增大,用户间的实际信任度是降低了,这就对最终结果带入了误差,所以造成了平均绝对误差出现了增加。综合考虑系统效率和准确度的要求,选择层级数为3的计算用户信任度较为合适。
实验二:选择朴素贝叶斯算法作为比较算法,与本文提出的算法分别对比均方根误差及平均精度。实验结果如表3所示。
表3 不同推荐算法实现效果的对比
[实现算法\&RMSE\&map\&朴素贝叶斯\&0.7266\&0.3262\&本文算法\&0.6653\&0.3611\&]
从实验结果可以看出,朴素贝叶斯算法的实现效果并不是很好,本文所提出融合社交网络分析的推荐算法,有效的缓解了数据稀疏的问题,同时考虑到了社交网络的用户特征对推荐的影响,因此在推荐效果方面有显著的提高。
3 小结
本文提出了一种融合社交网络信息分析的推荐模型,有效缓解了传统推荐系统的用户评分数据稀疏的问题。实验使用了百度电影推荐算法大赛的数据集,与传统的推荐算法相比,验证了本文算法的有效性。由于数据集的限制,本文的推荐模型仅仅考虑到了用户在社交网络上的社交关系信息,而在实际应用中还可以考虑用户在社交网络中的交互数据、访问数据等,以进一步提高系统准确度。
参考文献:
[1] 卢惠峰,赵文涛,孙志峰等.社会化网络服务中的OAuth2.0的应用研
究与实现[J].计算机应用,2014.34(S1):50-54
[2] 孟祥武,胡勋,王才立,张玉洁.移动推荐系统及其应用[J].软件学报,
2013.24(1):91-102
[3] 王玙,高琳.基于社交圈的在线社交网络朋友推荐算法[J].计算机学
报,2014.37(4):801-808
[4] 周由,戴牡红.语义分析与TF-ID方法结合的新闻推荐技术[J].计算
机科学,2013.40(11):267-269
[5] 林鸿飞,杨志豪,赵晶.基于内容和合作模式的信息推荐机制[J].中文
信息学报,2005.19(01):48-55
[6] 朱郁筱,吕琳媛.推荐系统评价指标综述[J].电子科技大学学报,
2013.41(2):163-173