论文部分内容阅读
在信息大爆炸的今天,推荐问题早已成为一个迫在眉睫的问题。在不同环境下的不同推荐算法被不断提出和修正,在各个领域对于推荐系统的应用也比比皆是。推荐的算法从最简单的非个性化的推荐,到个性化的基于内容和用户信息的推荐,逐渐发展到了考虑用户之间的协同相关性的协同过滤算法。近年来,利用矩阵分解来构建推荐模型的一个协同过滤的分支逐渐热门起来,并在大规模的稀疏数据上表现出了不错的效果。 随着社交网络的兴起,互联网又发展到了一个全新的阶段,全新的交互形式和数据在被人们产生和使用。这些在线的数据流,也为现有的推荐系统带来了很大的挑战。一方面,这些数据的量十分巨大,使得传统的推荐方法不但不能及时处理,还面临着候选集过大的问题。另一方面,微博等社交网络中话题的迁移和用户兴趣的变化十分迅速,而一个好的推荐系统,应该能够抓住这些迅速的变化,在正确的时间为用户推荐当时符合他们兴趣的内容。 因此在本文中,提出和设计了一个两阶段的推荐系统,来解决这些挑战。在第一阶段中,本文简化和改进了微博-话题模型,使其能够高效率的分布式增量运行,因而能够实时的抽取出当前微博内容中的话题构成。在第二阶段中,本文提出和实现了TCMF推荐模型,能够针对用户之前的对话题的兴趣历史,为其推荐最新的他会感兴趣的话题。通过结合这两个阶段,系统能够对新进入的微博,根据话题模型为其进行候选集预分配,解决候选集过大的问题,本文也通过将推荐和话题抽取两个阶段分开,在冷启动问题方面有不错的表现。通过利用UCBerkeley设计的分布式处理框架Spark,本系统中设计的算法能够分布式的运行,这也保证了系统在将来数据量进一步扩大时良好的可扩展性。 在详细调研相关工作的基础之上,本文分5个部分,详细介绍了本文设计的基于微博内容的实时推荐系统。在系统框架设计中,本文介绍了对于流式输入的数据,进行数据抽样存储,实时计算的计算框架,说明了两阶段模型之间的依赖和联系。在数据获取与描述中,介绍了使用的微博数据的形式和特征。在话题抽取部分中,本文改进了微博-话题模型,一方面实现了它在Spark上的分布式算法,另一方面本文针对分布式的环境对其进行了简化修改,提高了其运行效率。在话题推荐部分中,本文设计的TCMF推荐模型,能够实时的为用户推荐他们当时感兴趣的话题。内容推荐部分中,结合前两个阶段的结果,通过预分配候选集,加速了推荐的过程,并良好的解决了冷启动、话题演变等等一些在推荐系统中常见的顽固问题。 通过设计一系列的实验,验证了核心算法的处理效率,发现本文提出的算法能够有效率的从海量微博内容中挖掘出有意义的话题。文章同样通过实验对TCMF推荐模型进行了各方面的评测,比较其与现有推荐方法在这样的推荐任务下的表现差别,实验结果表明本文的推荐算法要明显优于其他方法,能够更好的抓住用户的兴趣变化,实时更新,及时为用户推荐他感兴趣的话题和内容。