您的当前位置:首页正文

基于协同过滤的个性化微博推荐算法研究

2021-05-27 来源:好走旅游网
第20卷第3期 2017年3月 软件工程SOFTWARE ENGINEERING 、,0l-20 No.3 Mar.2017 文章编号:2096-1472(2017)-03-14-03 基于协同过滤的个胜化微博推荐算法研究 秦晓晖 (太原工业学院计算机工程系,山西太原030008) 摘要:当前,微博已经成长为世界上最有影响力的社交网络服务之一。随着微博的流行,微博上大量的数据也使 得用户无法快速获取他感兴趣的信息。推荐系统是通过研究用户已有数据来发掘用户兴趣,从而为用户推荐可能感兴趣 的对象,如产品、网页、微博等。本文介绍了一种基于协同过滤推荐技术的微博推荐算法,从影响用户兴趣度的隐性因 素,以及微博互联网中的数据采集和预处理等角度对微博推荐进行研究。使用矩阵分解对隐f生因素建模,在已有用户与 微博、用户与微博发布者影响因素的基础上,提出微博与微博发布者影响因素,提高了原算法的准确度。 关键词:微博推荐,协同过滤,矩阵分解 中图分类号:TP391 文献标识码:A A Personalized Micro-Blog Recommendation Algorithm Based on Collaborative Filtering QIN Xiaohui (SchoolofComputerEngineer,raiyuanInstituteofTechnology,Taiyuan 030008,China) Abstract:Currently,micro-blog has become one of the most influential networking services throughout the world. Along with its increasing growth ofpopularity,the large number ofinformation available on micro—blog has obstructed people from accessing the messages they are interested in.The micro-blog recommendation system picks out and recommends the objects(e.g.products,webpages,micro—blogs,etc.)via analyzing the existing data of the user.The paper proposes a micro blog recommendation algorithm based on the collaborative filtering technique,explores some recessive factors which may influence user’S interest and studies micro-blog recommendation from the perspective of data collecting nad preprocessing on micro-blog networks.While the previous studies only focus on the relationship between hte user and the publisher,and that between hte user nad hte micro—blog post,this paper adopts matrix decomposition to model recessive factors and proposes the influence factors between the publisher nad the micro—blog post.Finally,hte experimental results show that the new algorithm significantly improves the accuracy of micro-blog recommendation. Keywords:micro-btog recommendation;collaborative ifltering;matrix decomposition 1引言(Introduction) 分析的,那么就需要找出影响用户对于微博兴趣度的一些隐 目前被广泛应用的协同过滤算法…在推荐系统 中发挥 性因素,而矩阵分解作为一种隐含语义模型可以很好地帮我 着很重要的作用。随着信息种类的丰富,我们需要对一些很 们找出这些隐性因素。因此在微博中并不需要指出微博具体 难基于内容来分析的信息,尤其是对一些复杂的甚至难以表 的属性类别,可以使用隐语义模型构建矩阵:比如构建一个 达的概念进行兴趣分析,协同过滤算法表现出了一定的优越 user-tweet矩阵R见公式(1),其中 f,表示用户 对微博,的兴趣 性。矩阵分解算法 旧前已经被广泛地应用于推荐系统中,它 度,通过对矩阵尺分解得到矩阵P和矩阵Q,其中,为影响用户 作为隐语义模型中的一种方法取得了一定的成就。协同过滤 兴趣度的隐性属性,这个过程就称为奇异值分解 ’ 。 算法一般可以分为基于相似邻居的方法“’ 和基于模型的方 R tweet1 tweet 2 P 厂1 fZ Q tweet1 tweet 2 法 ’ 这两大类,目前隐因子概率模型或者矩阵分解模型经 user1 Rll R12=user1 Pll P12×厂1 Ql1 q12 f11 user 2 R21 R22 user 2 P21 P22 f2 Q21(222 常被用来解决一些问题。本文主要使用基于模型算法中的矩 通过矩阵P和矩阵Q想乘即可得出尺中缺失的兴趣度,详 阵分解算法,具体使用隐因子模型来度量影响微博用户喜好 的一些隐性因素。 本文向用户进行微博推荐是通过用户对微博的兴趣度来 第20卷第3期 秦晓晖:基于协同过滤的个性化微博推荐算法研究 15 从上述过程可以看出我们无需确定属性的具体类别和属 被挖掘出来,而且一定程度上缓解了由于转发行为少而导致 性的个数,只需要设置隐因子模型中的属性个数值作为属性 分类的粒度即可,值越大即代表分类的粒度越细。通过隐因 子模型,在不知道微博的类型和用户喜欢的微博类别的前提 的矩阵稀疏问题。 (1)用户一微博主题偏好分解 由于用户微博转发次数导致数据稀疏的问题,本文通过 微博内容信息来缓解该问题,不同的主题可以使用不同的词 下也可以得到用户对每个类别的兴趣度。 2基于协同排序的微博推荐算法(c 0Jlaborative 来代表,因此可以将微博的隐因子模型转化为主题词语的隐 ranking method for tweet recommendation) 2.1微博排序优化准则 本文研究用户对微博喜好度的排序,我们使用协同排序 算法,它是基于隐因子模型的协同过滤方法。首先定义表示 尺d低维向量,同时定义Pt£∈Ra和qf∈Rd来表示用户和微博的 = 因子组合,于是转化为分解模型(7): ∑… qw) (7) 其中, 表示用户一属性矩阵,q 表示词一属性矩阵,qⅥ,矩 阵中的每一个词 都属于微博 ,z为微1射中词的个数,乘以 对每个词的权重进行归一化。这样的转化由原来的用户对一 属性空间向量。那么就可以通过公式(3)来预测用户“对微博 的喜好度: YU,L Pu q£ (3) 条微博的喜好度转变为用户对词或主题的喜好度,从而缓解 了矩阵稀疏问题。 (2)用户一发布者社会关系分解 由于我们最终要获得的是用户对微博兴趣度的排序结 果,而预测值 为用户u对微1靴喜好度,这里我们认为用户对 转发过的微博喜好度大于未转发过的微博即yu,k>yu,h,为了 除了微博内容还可以将用户与发布者的社会关系也考虑 实现微博的排序,我们将目标函数定义为计算求微博艮在喜好 进模型。如果用户对发布者发布的微博主题感兴趣的话,也 度排序中比微博 靠前的可能性,详见公式(4): 就是用户的兴趣与该微博发布者的微博主题很相似,那么该 用户转发该发布者的微博的可能性就比较高,因此通过用户 与微博发布者之间的隐性因子可以预测用户转发该条微博的 其中, 为转发过的微博,h为非转发的微博,,表示微博排 P(7_( )>r(/1)lu)= 1 概率,详见公式(8): Yu.£=purdp(O (8) 序,P表示微博 比微博h的排序靠前的概率,等式右边是对 Yu, >Yu,h的归一化处理。 这里,我们构建表示用户对转发微 其中,dp(c]表示发布者p发布的微1射的发布者隐性因子矩阵。 这种分解不考虑微博的内容计算转发一条微博的先验概率。 博喜好度大于非转发微博喜好度的数组D,见公式(5): D=(<U,k,五>fk∈Re(u),石 尺P(札)) (5) 考虑社交关系进我们的模型通过线性组合可以得到公式(9): 其中,Re(u)为用户u转发微博的集合。依据前面的假设,我们 认为所有用户对转发微博的喜好度比非转发微博高,因此尺e 集合里的所有微博盆都能与非 e集合里的微1尊白组成D中的一 个元素<“,岛 ,这里我们定义 为正例,h为负例。对公式(6) 取对数进行最大似然估计更加便于计算,最终转化为求解目 标函数(6): 1 = ∑ qw+adp(o) (9) (3)发布者一微博主题权威性分解 在以上分析的基础上我们又考虑了发布者与微博主题权 威性之间的隐性因子对用户兴趣度的影响。这里提出的微博 权威性对用户微博转发行为的影响不是基于用户来考虑的, Min> 其中,,为正则化参数。 In(1+e-(yu,k一 ∞)+F (6) ‘一<u,k,h>ED 与以上两种分析是不同的。通常如果一些权威专家发布一些 他所在的专家领域相关的微博,那么这种微博话题通常会比 2.2基于矩阵的隐因子分解模型 本文中通过研究用户、微博和微博发布者三者之间的隐 性因素来预测用户对微博的兴趣度。因此可以籽用户一微博 较吸引用户的注意力,用户会倾向于转发此类微博。计算微 博权威性隐性因子详见公式(10): 矩阵使用SVD方法拆分为三个矩阵,具体分解为用户一微博 矩阵、用户一发布者矩阵、发布者一微博矩阵,矩阵分解的 过程不仅极大地丰富了我们的模型,使得一些潜在影响因素 Yu ;∑w qw (10) 通过线性组合将微博权威性的隐性因子考虑进我们的模 型可以转化为公式(11): 16 软件工程 验数据。 2017年3月 Yu,i=PuT( ∑werLqw+adn(0)十 ∑ fldn(o(11) 3.2评价标准 公式(11)表示通过挖掘用户、微博和发布者这三者中的两 两之间的隐性因子度量用户的兴趣度,不仅全面地考虑了多 种隐性因子丰富了模型,而且一定程度上缓解了数据稀疏的 问题。 考虑到推荐结果中成功率的问题,本文使用平均准确 率来评价预测结果的准确度。模型的推荐结果是微博排序, 同时还可以用准确度关联成功推荐的微博的排序位置从而使 得推荐模型得到更准确的评估,即成功推荐的微博排序越靠 前,那么平均准确率越高。如果系统没有成功推荐的微博, 那么准确率记为0。评估公式详见(19): AP=—(4)参数估计 本文使用线性加权的方法来预测用户对微博的兴趣度, 其中 为发布者对微博影响因子的权重,卢为发布者对微博 Z ̄=IP@n丽 ̄r—etw—eet(n) ——(19) 主题影响因子的权重。2.1节中给出的目标函数(6)是求解的对 象,本文中使用梯度下降的方法得到最优解即对目标函数求 其中,Jv为测试集中的微博数量,尺为测试集中用户转发过的 导。首先对矩阵进行初始化,这里我们使用随机数,然后通 微博数量,retweet(n)为布朗函数,当第n条微博是用户转发过 过对构造的数据集D中的每一组元素计算梯度来不断更新矩阵 的微博(即成功推荐),retweet(n)的值为1,当第1"1条微博为用 中的值直到循环终止得到最优解。其中,梯度更新系数详见 户没有转发过的微博时,retweet(n)的值为0。p@n为取排序结 果中前17条微博时的准确度。当计算出所有用户的AP值时就 公式(12) ̄U公式(17): 可以得到MAP的值,详见公式(20),其中Jv为用户总数。 o一_ ak=§ -嘉∑ qs+( ㈤)卜o'lpu(12) MAP: (20) 一一一 I旦Oqw+=垂( +dp㈤)(∞广 ’一azqw+  …、 3.3实验结果 本文通过与其他几种方法的对比实验结果来验证算法的 一—— e一O旦q=垂有效性。按照时间排序的方法是指所有微博按照时间排序不 -w (1+dITz pu +dp(p㈤)k)J一 一or2qw 一 ((1144)) 通过其他算法重排序,这种方法表现微博最直接、最原始的 一1 状态,但却忽略了用户兴趣对微博排序的影响,与这种方法 一  = PPu+ u + qq w),4-)一a一 (3dp㈤ ∞ (15) 得到的结果相对比将有效地说明本文中算法研究的意义和必 一 OL要性。按相似度排序的方法是按照微博与用户标签的相似性 一 =合u合 P +亭q+ qw一)一a一㈣ (3dp㈣ c 16 )来排序的,这里使用余弦相似度来计算相似度,标签是指用 户历史微博和转发微博历史里面的关键词的集合。原始 方法 一 =合( + 一)一 (17) 在隐性因素方面只考虑主题层次和社会关系层次。矩阵分解 模型算法SVD在原始算法的基础上添加影响用户兴趣度的微 其中, “+”表示在数据集中转发微博中的值, “一”表示在 博权威性隐性因素预测用户兴趣度。该算法也使用随机梯度 非转发微博中的值,鲁表示真实值与预测值之间偏差的概率, 算法来估计实验参数,实验中矩阵分解过程中使用到的K值取 详见公式(18): 30准确率最高。 垂=1一P(r( )>7_( Iu)=卜 (18) 表1所有方法的MAP值 Tab.1 MAP restflts of all methods 算法中不停循环使得模型中的权重值不断更新,向着梯 度下降的方向直到循环终止得到最优解。 3实验(Experiment) 4结论(Conclusion) 3.1数据来源 按照时间序列排序的推荐方法依赖于用户的登录时间, 本文根据特定的需求在新浪微博使用爬虫系统 获取相关 用户对登录时间前后的微博转发概率大,因此预测准确度很 数据,网络爬虫作为搜索引擎的核心技术是一种自动提取网 低。按照相似度的排序只通过关键词计算微博表面相似度, 页信息的计算机程序或者自动化脚本n。 。本文的实验数据通过 忽略了内在语义。原始方法没有考虑微博与微博发布者之间 随机选取一个微博用户,然后以发射状不断爬取该用户的关 的隐性因素而低于SVD方法。 注者的数据,以及关注者的关注者的数据,从爬取的数据中 参考文献(References) 找出1024个关注者人数超过15的微博用户的主页信息作为实 【1】Shi Y,L ̄son M,Hanjalic A.CoUaborative Filtering Beyond the 第2O卷第3期 秦晓晖:基于协同过滤的个性化微博推荐算法研究 User—Item Matrix:A Survey of出e State of the Art and Future Knowledge,2008:426—434. Challenges[J].ACM Computing Surveys(CSUR),2014,47(1):3. 【7】Rendle s.The IEEE International Conference on Data 【2】Yang X,et a1.A Survey of Collaborative Filtering Based Social Mining[C].Factorization machines,2010:995—1000. Recommender Systems[I】.Computer Communications, [8]Cao Y.,et a1.Adapting Ranking SVM to Document 2014,41:1—10. Retrieval[C】.The 29th Annual Internationa1 SIGIR 【3】Levy O,Goldberg Y.Neurla Word Embedding as Implicit Matrix Conference,2006:186-193. Factorization【C】.Advances in Neural Information Processing 【9】孙立伟,何国辉,吴礼发.网络爬虫技术的研究U】.电脑知识与 Systems,2014:2177—2185. 技术,2010,6(15):41 12-41 15. 【4]Sarwar B.,et a1.Item—Based Collaborative Filtering [10】高建煌.个性化推荐系统技术与成用[D】.中国科学技术大 Recommendation Algorithms[A].Hypermedia Track of the 10th 学,2010. International World Wide Web Conference.2001:285—295. [11】Chen K.,et a1.CollabOrative Personalized Tweet [5】Shi Y.,Larson M.,Hanjalic A.Exploiting User Similarity Based Recommendation[A].The 35th International ACM SIGIR on Rated——Item Pools for Improved User——Based Collaborative Conference on Research and Development in Information Filtering[A】.Third ACM Conference on Recommender Retrieval,2012:661-670. Systems,2009:125—132. 作者简介: 【6】Koren Y.Factorization Meets the Neighborhood:a 秦晓晖(1987-),女,硕士,助教.研究领域:中文信息处理, Muhifaceted Collaborative Filtering Model[A】.The 人工智能. 1 4th ACM SIGKDD Interna ciOna】COnferenCe on (上接第25页) 数量,然后就可以确定母鸡b的数量(b=lOO-a-c);当然,我们 断地对已有算法设计进行改进和优化的精神。当然,该问题 也可以先确定母鸡b和小鸡C的数量,再确定公鸡a的数量,此 的解决方法不止于此,必定还会有一些更优的算法值得我们 时所使用的二重循环语句是: 去探索。 for(b=l Ib<=25 lb++) 参考文献(References) for(c=63 l c<=87 l c+=3) 【1]Fathima H.,Musthafa A.Syed.Optimization Based Routing {a=100-b-c; Algorithms[J].International Journal of Applied Research on if(5 a+3}b+c/3==l00) Information Technology and Computing,2014,5(1):55—70. printf(”公鸡=%d,母鸡=%d,小鸡=%d\n”,a,b,c);} 【2】Guang—Yu zhu,Wei—BOzhang.OPtimal Foraging 也可以先确定公鸡a和母鸡b的数量,再确定小鸡C的数 Algorithm for Global OptimizationU].Applied Soft 量,此时所使用的二重循环语句是: Computing,2017,51:294—313. for(a=1;a<=14,a++) [3】R.VenkataRao,G.G.Waghmare.A New Optimizaiton lAgorithm for(b=1 lb<=25 Ib++) . for Solving Complex Constrained Design Optimization {c=100一a—bl ProblemsJ[].Engineering Optimization,2017,49(1):60—83. if((5十a+3 b+c/3==loo)&&(c%3==0)) [4】黄隆华,陈志辉.算法设计与分析课程的“百钱买百鸡问题” printf(”公鸡=%d,母鸡:%d,小鸡=%dXn”,a,b,c)l} 趣用 计算机教育,2016(3):143—145. 根据对算法五的三种情况进行对比可以发现,情况一的 【5】耿国华.算法设计与分析【M】.北京:高等教育出版社,2012(1): 执行次数为126,情况二的执行次数为25*9=225,情况三的执 20—2 2_ . 行次数为14.25=350,显然选择取值范围小的两个变量作为循 【6】许桂平.浅析c ̄-- ̄三种循环结构语句L-『】.考试周刊,2014 环变量来构造二重循环是比较合理的,当然这三种情况的算 (21):117—118. 法执行效率都要优于前面的算法。 【7】任爱华.c语言程序设计【M].北京:中央广播电视大学出版 5结论(Conclusion) 社.20i5:66—95. 以上五个算法是应用多重循环语句对“百钱买百鸡”问 f8】马学敏.计算机c语言循环语句的应用研究U].中国新通信, 题的算法分析,由差到优循序渐进地对算法进行了改进,通 2016(17):87—88. 过每一次的改进降低了算法的执行时间,从最初的10 次的循 作者简介: 环执行次数降到了最后的126次,最终得到了最为理想的算 龙敏敏(1979--),女,本科,讲师.研究领域:计算机应用技 法。所以,我们在进行算法设计时,不应该只是得出了正确 术,计算机教育教学. 的算法就可以了,而是要尽量去寻找最优的算法,要具有不 

因篇幅问题不能全部显示,请点此查看更多更全内容