基于用户标签的推荐系统研究
2017-04-22朱子江刘寿强
朱子江,刘寿强
(广东外语外贸大学南国商学院,广州 510545)
基于用户标签的推荐系统研究
朱子江,刘寿强
(广东外语外贸大学南国商学院,广州 510545)
在标签系统中用户可以随意上传资源,并且允许使用任意的称为标签的文字对资源进行标注。结合协同过滤推荐技术开发微博系统,通过获取新浪微博真实用户数据进行实验分析,验证所提出的模型及相关算法的有效性,并根据实验提出面向用户的推荐策略。
微博;协同过滤;用户标签
1 微博与标签系统概述
微博客(Microblogging或Microblog)是一种允许用户及时更新剪短文本(通常少于140字)并可以公开发布的博客形式[1]。它允许任何人阅读或者只能由用户选择的群组阅读。随着发展,这些讯息可以被很多方式传送,包括短信、即时讯息软件、电子邮件或网页。为了提供给用户更好的服务与体验,微博系统使用了一套用户标签系统,更容易将各种信息分类。标签系统又可细分为用户标签系统和博文标签系统,用户个人兴趣爱好、个性特长等特征通过用户标签来体现。博文标签系统是给发布的微博内容添加标签,用来表示微博类型。标签系统是将具有相同特征的用户聚类在一起,然后根据用户的标签推荐具有相同圈子相同标签的用户给其关注[2]。因为微博是一个信息传递类的社交系统,用户与用户的关系是可以根据社会学研究的,而标签系统则可以很好地计算用户的好友圈子和交友方向。一方面,通过收集博文的标签,更能准确地算出用户平时的一些行为,分析出用户的固有特性。另一方面,越来越多的用户希望系统向他们推荐能反映个人爱好和意愿的具有个性化特征的标签,以便在日后能更迅速更准确地搜索到他们需要的信息[3-4]。
本文研究的目标是如何通过ThinkPHP搭建起微博平台,并且利用新浪微博上的真实用户数据模拟原始生态坏境,通过对三维的系统进行降维,重点研究了用户-用户关系、标签-标签关系,提出了相关的基于标签的推荐系统模型及算法,并将其实现在微博系统上。
2 推荐系统构建
2.1 推荐系统模型
推荐系统是SNS(Social Network Services)社交网络系统最重要的模块,用户使用微博系统就是为了与其他用户进行信息交流,以及日常的联系等。作为一个以用户为中心的系统,用户是网站最宝贵的信息,应该为用户提供更好的服务和体验。对于一个用户来说,第一次注册时由于现实世界的朋友并没有使用本系统,可以利用用户浏览本网站时搜集到的信息尝试向其推荐一些明星用户、相同地区的用户,当用户填写了标签等资料以后,可以使用标签推荐系统向其推荐具有相同标签及相同圈子的用户[5]。推荐系统模型如图1所示。
2.2 标签获取算法
标签获取算法主要是收集使用用户的数据,如用户的基本信息,用户的登录地址,用户的关注好友和粉丝好友,用户为自己打的标签等数据[6]。
图1 推荐系统模型框图
以用户为基础的协同过滤的出发点是与用户兴趣爱好相同的另一组用户,就是计算两个用户的相似度。通过遍历一个用户的关注和粉丝,获得他们的所有标签。对大多数用户而言,微博的功能主要是获取信息,而且是获取用户感兴趣的信息,因此利用用户的关注者特征来推测用户的特征是一个很直观的思路,相对于用户的关注者而言,其粉丝与用户的关系要疏远一些,因为关注是一种主动选择行为,既对该用户感兴趣,才会关注,而被别人关注是一种被动行为,所以只在关注中较少的情况下才将粉丝的标签作为标签源,加入一般权重,来产生推荐结果[7-8]。
(1)标签获取算法如下:
①收集用户全部关注人的标签,粉丝的标签,按权重比例分配,根据相关机构研究成果,用户比较关注自己关注的其他用户的信息,因此在权重分配上,被用户关注的其他用户权重较重,取约0.7,粉丝取约0.3的权重值。
②对收集到的所有标签进行筛选排序,按标签的权重值和出现次数排序,保留前10个。
③根据返回的多用户最爱标签列表,组成的一个标签矩阵,可以进行标签相似度的计算,根据其推荐度和推荐算法的使用,可以从矩阵选出推荐用户,或者与其他用户本身的标签相匹配,从而产生推荐结果。
(2)标签获取算法计算步骤(如图2所示):
①遍历用户关注和粉丝两种好友,返回最感兴趣标签表。对多个用户进行最感兴趣标签表整理后,得到用户-标签矩阵表。
图2 标签获取算法流程图
②计算相似度。相似度计算算法可以用于计算用户或项目相似度。以用户相似度计算为例,通过在用户-标签矩阵中计算两个用户相似标签的个数,可以返回用户相似集U{U1,U2,…,Ui,…}(U1表示第1个用户,U2表示第2个用户,Ui表示第i个用户,下同)。本系统计算相似度使用了余弦相似度(Cosine-based Similarity)计算公式,它基于两个标签i,j视为两个m维用户控件向量,通过计算两个向量的余弦夹角,那么,对于m*n的用户-标签矩阵,用户U1,U2的相似度计算公式如(1)所示:
根据上述步骤可以得到相似用户集合,从而可以对目标使用者的特征进行计算、预测,得出其推荐结果。
3 实验结果分析
3.1 实验数据集
为了体现数据的真实性,本系统导入的用户数据和标签数据是通过新浪微博平台抓取到的用户数据。抓取用户数据需要一个爬虫程序,该爬虫程序利用新浪API用户信息接口和用户标签接口实现。数据的抽取方式为:首先抓取用户的ID(10位的纯数字),假设从1010101010开始抓取,自增量为20,抓取1000个存在用户,并写入Excel数据库,再根据抓取到的1000个有效用户(如图3所示),通过其UID抓取对应的标签内容(如图4所示)。
图3 用户信息数据集
图4 用户标签数据集
(1)用户特征分析
发布微博的数量反映了微博用户的活跃程度,因此本次抓取到的用户需用进行二次分析后才能使用。对抓取到的用户分类分析,并筛选掉极无用的用户信息。
①去掉粉丝和关注人数少于20的用户,去掉微博发布量总数少于50的用户。该类用户基本上是注册后就没有使用微博系统,又或者重新开了一个账号,该账号已废除等等。
②去掉粉丝数和关注人数较少,但微博发布量较高的用户。该类用户主要将微博当做一种记事本或者写心情的工具,因此研究价值不高,不同于大多数用户对微博的理解。
(2)用户分析
①关注人数较多,粉丝数较少,微博发布量100条左右,这类用户主要是信息的接受者,通过关注特定的用户,获取自身需要的信息,这类用户占了20%左右。
②关注人数和粉丝数较多,微博发布量1000条左右,这一类用户使用微博主要用于发布信息,获取信息,用户交流等,占了60%左右,属于活跃用户。
③关注人数少,粉丝数量多,发布微博量大,这类用户主要是信息的发布者,或者是行业的精英,这类用户占了10%左右。
④其他,占10%左右。
不活跃用户可分为被动接收信息和主动发布信息两种,对前者可根据其特征推荐他们关注的相关用户。活跃用户的特征可以通过其粉丝标签、自身标签和关注用户的标签等获得,根据其特征可以通过链式用户的方式推荐其相关用户。不论是否为活跃用户,均可以抽取微博潜在的标签作为标签源,计算与用户的关系,得到数据后通过筛选后推荐给用户。
由以上方法得到用户-标签矩阵表,利用余弦相似度公式计算用户相似度。得到相似用户集U{U1,U2,…,Ui,…},并按权重排列,产生TOP-N推荐前N位用户。
3.2 实验结果分析与结论
通过注册、登录查看被推荐的用户,第一种是明星用户,第二种是相同地区用户,第三种是标签系统推荐用户,用户都可以随时发现自己可能感兴趣的用户。通过用户的反馈数据进行分析,用户在冷启动问题下,会关注部分明星用户,同时可能关注相同地区的用户,而标签系统推荐的用户,则要取决于用户的兴趣所在,并且并非兴趣爱好相似就会关注,同时又受很多方面的影响。
通过聚类分析,用户的标签与其所关注的人和他的粉丝的分布如图5所示,一个用户具有5个标签,返回的推荐用户的爱好标签由不同的标签也由高到低分布在图5中所示。可以看到通过选取顶端分数较高的用户产生推荐,而推荐结果也正是这一部分用户,由此说明用户标签系统对于用户的推荐作用比较明显。
图5 聚类分析示意图
4 结语
本微博系统通过模仿新浪微博等可用微博系统进行开发整合,参考了很多现有的微博系统。在用户推荐系统这一方面,从明星用户推荐、相同地区推荐、标签系统推荐,是在新浪微博现有推荐系统上的深入研究和创新下完成的。
对于一个推荐算法的研究,它对整个系统的依赖性、实用性也很重要,而推荐算法是建立在用户数据的研究基础上的,因此用户数据只能通过获取新浪微博平台上的真实用户数据作为数据源进行算法的模拟测试,根据反馈来决定算法的好坏,这也是本文的不足之处。
[1]陈渊,等.一种面向微博用户的标签推荐方法.智能计算机[J].2013(10):22~27.
[2]丁婉莹.基于用户标签的个人本体的构建模型研究.现代情报[J].2011(7):42~46.
[3]Zhang ZK,Zhou T,Zhang YC.Tag-Aware Recommender Systems:A State-of-the-Art Survey.Journal of Computer Science and Technology 26(5):Sept.2015.DOI 10.1007/s11390-011-0176-1.
[4]Chen Su,Luo Tie-Jian,Xu Yan-Xiang.Robust.Analysis of Trust-Based Recommendation Algorithms.Journal of the Graduate School of the Chinese Academy of Sciences.2014(March)ID:1002-1175(2011)02-0253-09.
[5]沈磊,等.基于心理学模型的协同过滤推荐方法[J].计算机工程,2010(10):206-216.
[6]梅晶.校园网微博系统的设计与实现[D],2011,5.
[7]韩阜业.孟庆轩.微博系统架构的可信性研究.专题研究[N],2011(8).
[8]王昭英.基于MVC设计模式的ThinkPHP框架的研究与应用[D],2010(5).
Research on Recommendation System Based on User Tag
ZHU Zi-jiang,LIU Shou-qiang
(Guangdong University of Foreign Studies South China Business College,Guangzhou 510545)
In the label system users can upload resources,and allows the use of any known as label text annotation on resources.Based on collaborative filtering recommendation technology development Microblogging systems,through accessing to Sina Weibo real user data experiment analysis,verifies the validity of the model and the related algorithm,according to the experiment,puts forward recommend strategies for the user.
Microblogging;Collaborative Filtering;User Tags
1007-1423(2017)07-0007-04
10.3969/j.issn.1007-1423.2017.07.002
朱子江(1977-),男,湖南娄底人,高级工程师、副教授,硕士,CCF会员,研究方向为算法设计与分析、软件工程
2017-01-04
2017-03-20
广东省本科高校教学质量与教学改革工程项目(粤教高函[2015]133号)
刘寿强(1974-),男,湖北人,讲师,博士,CCF会员,研究方向为大数据、云计算、人工智能