本文第2节介绍社交网络分析和推荐系统的相关工作;第3节阐述GCCR算法的总体架构;第4节介绍GCCR算法各环节的具体步骤;第5节介绍数据集的获取并且通过真实的数据集验证GCCR的推荐效果,通过多组对照实验,分析不同参数对推荐结果的影响;第6节是对本文工作的总结和展望. 2相关工作 目前,对于推荐系统的研究很多,在推荐算法中,主要的研究方向包括协同过滤推荐、基于内容的推荐、聚类技术、Bayesan网络技术、关联规则技术等.协同过滤算法是目前最受欢迎的推荐技术,它利用用户爱好之间的相似性来进行推荐[3],不依赖于物品的实际内容,而是需要用户对物品的偏好信息,通常以评价或者打分的形式[2].然而这种经典的协同过滤方法不能直接应用于社交网络的好友推荐,因为在社交网络中,没有物品和评分的概念.此外,由于社交网络的数据稀疏性,协同过滤算法的推荐效果不好. 另一些研究利用物品的内容进行推荐,根据用户过去喜欢的物品,为用户推荐和他过去喜欢的相似的物品[4].基于内容相似性的方法可以很好地应用在社交网络的好友推荐中,文献[6]利用自然语言处理的技术对用户的tweet进行处理,提取出用户的兴趣点,从而推荐有相似兴趣的好友.Sakaguchi等人[]提出了一个基于概念模糊集(CFS)的系统,该系统识别Twiter用户的兴趣并推荐相关的好友,系统使用了基于模糊集的概念词典以及词向量来代表单个Twitter用户的兴趣,用向量余弦值衡量用户的相似度.然而,基于内容相似度的推荐过于专一化,只能推荐出与用户兴趣相似的好友. Facebook上有一个功能是“你可能认识的人”,它是基于“Frend-of-fnend”算法进行推荐的①.该算法的思想是:如果A的很多好友是B的好友,那么A也可能会是B的好友.这种算法只能帮用户寻找没有添加的强关系,经济社会学家马克?格兰诺维特提出:相对于强关系而言,弱关系有助于传递新信息[8].针对Twiter和新浪微博这种弱关系型社交网络,弱关系的推荐比强关系更有价值. 一些研究者把基于内容相似度的算法与社交网络的好友关系相结合.Hannon等人[]提出了Twttomender系统,根据用户发布的tweet、好友、粉丝以及好友和粉丝的tweet对用户进行建模,利用Lucene的TF-IDF衡量关键词的权重.文献[10]利用概率模型来进行协同过滤,可以为用户推荐最感兴趣的K个好友和K条tweet概率模型综合考虑了tweet信息和用户之间的关系,Kim等人[10]还提出了一个预测算法来推算概率模型的参数,并且使用MapReduce来处理大规模数据. 此外,在社交网络中,大型图数据集的研究和处理很重要.图摘要技术可以用来发掘数据中隐藏的信息,现有的图摘要算法大多是基于统计学的,Tan等人[11]提出了一种基于节点聚合的方法々-SNAP来进行图摘要计算,该算法可以自由地调整图摘要的聚合程度和迭代次数,得到对图不同粒度的分析结果.文献[2]提出一种自动对数值属性值进行分类的算法,该算法通过发掘节点数据中隐藏的领域知识以及对图中边的结构的分析进行分类. 3GCCR总体框架 GCCR算法旨在根据弱关系社交网络中用户对不同主题的兴趣程度,为用户推荐其可能喜欢的主题内容.通过分析从用户-主题喜好矩阵和用户自身发表内容的中体现出的用户喜好信息,并将二者综合利用,提高在稀疏数据集上的推荐效果.同时利用图摘要算法中的类模糊性,保证冷启动条件下推荐的多样性.GCCR主要步骤包括预处理、核心聚类、全用户聚类、主题推荐阶段. (1)预处理阶段.筛选出兴趣向量非零值比例大于密度阈值A的核心用户集合.根据核心用户对应的兴趣向量提取构造出原兴趣矩阵的密集子矩阵. (2)核心聚类阶段.根据核心用户的兴趣矩阵构成的订阅关系图进行图摘要计算,利用摘要迭代的过程生成满足模糊度和独立性约束的核心聚类. (3)全用户聚类阶段.利用上一步中生成的核心聚类,提取核心聚类内容特征向量,同时提取非核心用户所发表微博的内容特征向量,根据内容特征向量的相似度不断迭代,将非核心用户加入到己有的聚类集合中,直至完成对所有用户的聚类. (4)根据聚类结果以及每个用户在聚类内部的相似度和类兴趣特征,生成类成员内部的推荐向量,同时根据不同主题在不同聚类间的兴趣差异,形成跨类推荐向量,两者综合排序之后的结果作为最终推荐结果.推荐算法执行过程中,对于训练数据集进行(1)(3)离线计算生成聚类结果和类兴趣向量,对于任何新加入的用户,只需进行(3)中的聚类归属计算和(4)中的推荐过程.通过将离线和在线处理运算尽可能的分离,可以使算法达到更高的在线推荐计算效率. 4聚类推荐算法 4.1问题建模 |