1、 本科毕业论文 ( 20 届) 基于内容的微博推荐系统设计与实现 所在学院 专业班级 计算机科学与技术 学生姓名 学号 指导教师 职称 完成日期 年 月 哈尔滨工业大学本科毕业设计(论文) - I - 摘 要 随着互联网的高速发展,人们逐渐走入了信息过载时代,大量有用的、无用的信息充斥在互联网的各个角落,而用户的需求并不是任何 时候都很明确传统的分类目录和搜索引擎并不能满足需求,一些科学家和工程师提出了联系用户和物品解决信息过载问题的推荐系统。目前推荐系统已经广泛运用与互联网中,在微博平台上也有基于好友关系的推荐、基于用户个人信息的推荐而基于微博信息本身 微博内容的推荐却很少见到。本文在 wi
2、n7 操作系统下使用C#作为开发语言、使用 Microsoft Visual Studio 2010 作为开发工具, 通过开发一款以基于内容的微博推荐为特色的新浪微博客户端来研究基于内容的微博推荐系统能否在微博平台上使用。系统通过对微博信息的分词、分 类等操作获取每条微博信息的类别信息并以此为依据获取用户兴趣和做出推荐。 关键词 : 推荐系统 ; 微博 ; 基于内容 ; 哈尔滨工业大学本科毕业设计(论文) - II - Abstract With the rapid development of Internet, people gradually get into the era of in
3、formation overload.A large number of useful, useless information filled every corner of the Internet.But the needs of users at any time is not very clear traditional classification directories and search engines can not meet needs.Some scientists and engineers put forward a recommendation system to
4、contact user and solve the problem of information overload.Non the Weibo platform is based on the recommendation of a friend relationship, based on the recommendation of the users personal information based on the information itself Weibo the recommendation systems have been widely used in the Inter
5、net.( Weibo Recommended rarely seen content) .In this paper, in order to develop a content-based recommendations for the characteristics of Weibo .Sina Weibo client to research content-based Weibo Recommended system can use the Weibo platform.System through the Weibo information such as word segment
6、ation, classification of operation for each post information access on the basis of the category information and users interest and make recommendations. keywords: Recommended system; Weibo; based on the content; 哈尔滨工业大学本科毕业设计(论文) - III - 目 录 摘 要 .1-I Abstract. II 第 1 章 概述 . 1 1.1 课题背景 . 1 1.1.1 推荐系
7、统使用现状 . 1 1.1.2 微博推荐研究现状 . 2 1.2 本文主要工作内容 . 3 第 2 章 微博推荐系统需求分析与系统总体设计 . 4 2.1 需求分析 . 4 2.1.1 功能需求 . 4 2.1.2 性能需求 . 5 2.2 总体设计 . 6 2.2.1 系统架构设计方案 . 6 2.2.2 功能架构设计方案 . 6 2.3 开发环境和开发工具 . 9 2.3.1 开发语言 . 9 2.3.2 开发工具 . 9 2.3.3 开发环境 . 9 2.4 本章小结 . 9 第 3 章 微博推荐系统详细设计 . 10 3.1 用户登录详细设计 . 10 3.2 发表微博详细设计 . 1
8、3 3.3 微博展示详细设计 . 13 3.4 微博推荐详细设计 . 15 哈尔滨工业大学本科毕业设计(论文) - IV - 3.4.1 数据库设计 . 16 3.4.2 类设计 . 16 3.4.3 微博推荐功能详细设计 . 20 3.5 小结 . 23 第 4 章 微博推荐系统实现和测试 . 25 4.1 系统登录实现和测试 . 25 4.1.1 系统登录实现 . 25 4.1.2 系统登录测试 . 26 4.2 系统主界面实现和测试 . 26 4.2.1 系统主界面各功能测试 . 28 4.3 系统系能测试 . 28 4.4 本章小结 . 29 结 论 . 30 参考文献 . 31 哈尔
9、滨工业大学本科毕业设计(论文)原创性声明 . 32 致 谢 . 33 哈尔滨工业大学本科毕业设计(论文) - 1 - 第 1章 概述 1.1 课题背景 本课题来源于国家自然科学基金青年基金项目“基于社会化网络的信息推荐方法研究”。作为项目的一部分本课题主要研究基于内容的推荐系统在新浪微博上的使用。 1.1.1 推荐系统使用现状 推荐系统是根据用户历史行为数据在海量的信息中为用户推荐出其感兴趣的信息,推荐系统的基本任务是联系用户和物品,解决信息过载问题。 目前推荐系统已经广泛应用于电子商务、电影和视频、音乐、社交网络、阅读、基于位置的服务、个性化邮件和广告等领域。推荐系统给这些领域带来了巨大了经
10、济利益和极强的个性化体验。 电子商务网站是个性化推荐系统的 一大 应用领域。著名的电子商务网站 亚马逊 是个性化推荐系统的积极应用者和推广者 ,被 RWW(读写网) 称为 “ 推荐系统之王 ”。 亚马逊的推荐系统深入到了 其 各 类 产品中 , 其中最主要的应用有个性化商品推荐列表和相关商品的推荐列表。 个 性化推荐列表 采 用了一种基于物品的推荐算法 ( item-based method), 该算法给用户推荐那些和他们之前喜欢的物品相似的物品。除了个性化推荐列表, 亚马逊 另一个重要的推荐应用就是相关推荐列表 。 当你在 亚马逊 购买一个商品时,它会在 商品信息下面展示相关的商品。 个性化
11、推荐体统给亚马逊带来的商业价值和对亚马 逊的意义: 亚马逊 的前科学家 Greg Linden 在他的博客里曾经说过,在他离开 亚马逊 的时候,亚马逊 至少有 20%(之后的一篇博文则变更为 35%) 的销售来自于推荐算法3; 其 CEO Jeff Bezos 在接受采访时曾经 说过 , 亚马逊 相对于其他电子商务网站的最大优势就在于个性化推荐系统,该系统让每个用户都能拥有一个自己的在线商店,并且能在商店中找到自己感兴趣的商品 4。 在 电影和视频网站中,个性化推荐系统也是一种重要的应用。它能够帮助用户在 浩瀚的视频库中找到 令 他们感兴趣的视频。在该领域 成功 使用推荐系统的 一家 公司就是
12、 Netflix,它 和 亚马逊 是推荐系统领域最 具代表性 的两 家 公司。哈尔滨工业大学本科毕业设计(论文) - 2 - 从 Netflix 的推荐理由 来 看, 它 们的算法和 亚马逊 的算法类似,也是基于物品的推荐算法,即给用户推荐和他们曾经喜欢的电影相似的电影。 至 于推荐系统在 Netflix 中起到的作用, Netflix 在宣传资料 5中宣称,有 60%的用户是通过其 推荐系统找到自己感兴趣的电影和视频的 。 个性化推荐系统在 个性化音乐 网络 电台 中的应用。 目前有很多 知 名的个性化音乐 网络 电台。国际上著名的有 Pandora 和 Last.fm, 国内的代表则是豆瓣
13、电台。 最近几年互联网最激动人心的莫过于以 Facebook 和 Twitter 为代表的社交网络应用,在社交网络中好友之间可以信息分享和传播。在社交网络中推荐系统已经得到了广泛的应用,它能利用用户的社交网络信息对用户进行个性化的物品推荐;能进行信息流的会话推荐;为用户推荐好友。经常使用的 qq、人人网都有为用户推荐好友、为用户推荐可能感兴趣日志的机制。 综上可见推荐系统已经广泛应用于互联网的各个领域,它出现在网络的各个角落,上商务网站买东西它会推荐物品、上社交网络它会推荐好 友、上视频网站它会推荐感兴趣的视频、上微博它会给推荐用户感兴趣的博主。 1.1.2 微博推荐研究现状 在微博上关于推荐
14、的研究也有很多。大部分是进行好友推荐、散列标签(Hash tag)推荐或者新闻推荐,而对于微博中主要的载体,简短却包含海量实时信息的微博内容推荐的研究则不多。微博推荐有以下三个难点:( 1)用户的活跃程度低。在传统的推荐系统中,用户登录一个推荐系统,就是为了选择一些他想要的资源。而在微博推荐中,许多用户上微博,更多的时间处于“看微博”,而不是“发微博”,因此很难直接获得他们的显式反馈信息,也难以对他们的兴 趣进行学习和预测。( 2)数据的稀疏性和不对称性。在传统的推荐问题中,用户和资源一般是同一个数量级的。但是在微博推荐问题中 ,由于微博数据海量的特点,微博的数量和增长速度远远大于用户的数量和
15、增长速度。( 3)用户兴趣的动态变化。微博的话题一直紧随现实世界的发展,因此微博上话题不断变化,用户的兴趣也随之变化。在传统推荐问题中,往往是用户根据兴趣选择资源。在微博推荐中,则是不断出现的微博改变着用户的兴趣,再由用户选择喜欢的微博。因此用户的兴趣一直在动态变化,很难找到一个用户长时间感哈尔滨工业大学本科毕业设计(论文) - 3 - 兴趣的话题。推荐系统中大部分研究都是 利用系统中的一些显式信息来进行学习和预测。显式信息指的是由用户主动提供给网站的信息,如用户的资料、用户喜爱的资源。而与显式信息对应的隐式信息,指的是网站自动获得的信息,如用户的浏览时间、上下文环境等。在现实世界中,大量的信
16、息都是隐式信息而不是显式信息。相比显式信息,隐式信息不需要用户主动提供,因此更容易在实际应用中被使用。事实上,在用户浏览的过程中,浏览器和服务器都已经记录了大量的隐式信息,可以通过各种方法从后台数据库中和浏览日志中挖掘出来。在微博系统中,也存在着多种隐式信息。例如,用户发出微博的时间、用户 浏览微博时上下文环境、用户与其他用户之间的好友关系。针对以上难点,有关研究人员提出了一种基于贝叶斯个性化排序 (Bayesian personalized ranking, BPR)的微博推荐算法 9。该算法的主要思想是,利用贝叶斯最大后验估算求出微博对之间的全序关系,从而获得用户对微博的个性化排序。 推荐
17、算法联系用户与物品之间一般有三种方法:好友关系、用户爱好、用户历史数据。好友关系是跟据好友之间的爱好具有相似之处而把用户好友喜欢的物品推荐给用户;几乎所有的网站在用户注册的时候都要求用户填写个人信息,其中就 有用户兴趣爱好一栏,通过用户填写的兴趣爱好内容给用户做出推荐是联系用户与物品的一种方法;用户历史数据是用户在以往操作中产生的数据,通过用户历史数据分析出用户的兴趣并以此为依据做出推荐。 1.2 本文主要工作内容 本文主要研究基于内容的微博推荐系统,如何在微博上使用推荐系统为用户进行个性化推荐,推荐的依据则是用户以前发表的微博信息的内容。本文使用新浪微博作为推荐系统的载体开发一款以基于内容的
18、个性化推荐为特色的新浪微博客户端(以下简称新浪微博客户端),为此主要解决一下几个问题: ( 1) 新浪微博 API 使用 ; ( 2) 基于内 容对微博进行分类 ; ( 3) 中文分词 ; ( 4) 推荐方法的选择 。 哈尔滨工业大学本科毕业设计(论文) - 4 - 第 2章 微博推荐系统 需求分析与系统总体设计 本章主要论述 基于内容的微博推荐系统通过开发一款新浪微博客户端来实现并对这款客户端进行需求分析和总体设计。 2.1 需求分析 2.1.1 功能需求 本小节 对系统功能进行需求分析。新浪微博客户端,需要系统能够发表微博、显示用户和好友发表的微博以及根据以往用户发表的微博信息为用户推荐近
19、期关注度比较高的公共微博信息。其中微博推荐是本系统最主要特色,它要求系统能够根据用户发表的微博信息内容为用户做出推荐。 2.1.1.1 登录 系统使用之前需要登 录认证,系统登录需要能够使用新浪微博账号进行登录。 2.1.1.2 发表微博 用户能够在登录以后发表 140 字以内的文字微博或者发表 140 字以内带有图片的图文微博。 2.1.1.3 微博推荐 这个部分是本系统的主要功能,根据用户以往发表的微博信息的内容为用户做出推荐,推荐一些用户感兴趣的公共微博信息给用户。通过四步完成推荐:微博下载、确定用户兴趣、用户对某条微博感兴趣程度、做出合理推荐。 微博下载:要想进行微博推荐就需要大量的微
20、博信息的数据,而微博信息都存储在各大微博平台的服务器中,如何才能下载这些信息呢?各大微博平台给第三方提供了微博 API 接口,通过这些接口能方便的下载服务器中的微博信息。这里需要能够下载两个方面的微博数据一是最近几天关注度高的微博信息(以下称为待推荐微博 );二是某个用户发表的所有微博信息,考虑到用户感兴趣的内容可能会随着时间、环境、心情发生改变,用户发表的所有微博信息应该是近期所发表的所有微博信息 (以下成为个人微博信息 ),这个时间大概是两个月左右。将下载的个人微博信息和待推荐中的每条微博信息保存下来,为接哈尔滨工业大学本科毕业设计(论文) - 5 - 下来的推荐提供数据支持。 确定用户兴
21、趣:要想知道用户对哪些微博信息感兴趣首先需要对微博信息进行分类,要想对微博信息分类 首先要进行微博信息的分词。所以确定用户的兴趣要走两步:分词、分类。 分词是将下载的所有微博信息的内容按照中文分词技术分割成 一个一个单独的词 ,再根据需要去除其中的虚词,留下需要的有意义的名词和动词,形成各个微博信息对应的词向量。 分类是使用分类算法将分词产生的每条微博信息的词向量进行类别的划分,确定每条微博信息所属的类别。用户的兴趣则是根据用户发表微博所属的类别确定。 根据用户发表的微博信息在各个类别中所占的比重对用户兴趣做出归纳,之后从待推荐微博中推荐出最合理的一组微博推荐给用户。 2.1.1.4 系统用例 通过需 求分析,得到如图 2-1 所示的系统用例图。 图 2-1 新浪微博客户端 用例图 2.1.2 性能需求 待推荐的微博应该具有实时性,每次推荐的内容不应该完全一样;推荐的微博信息应该能够涵盖用户大部分兴趣,即推荐的覆盖率问题;对于一个新用户或者没有发表过微博的用户应该也能做 出一个合理的微博推荐,即系统冷启