文献综述
个性化推荐系统包括三个要素:用户、推荐方法和项目资源。用户可以以一定方式向系统明确提供个人兴趣或需求,例如通过注册信息或调查问卷等方式,也可以不明确提供,由推荐系统通过分析用户行为来“猜测”得到。然后,个性化推荐系统可以使用多种方法进行推荐,例如将得到的个性化信息和项目特征进行比较,从而得到推荐结果,也可以直接使用个性化信息对用户进行建模,从而使用已经建立的模型产生推荐结果。最后,系统将推荐结果返回给用户。
在推荐系统中,“项目”被定义为系统为用户推荐的物品。推荐系统的设计目标是在用户缺乏相关领域经验或者面对海量信息而无法处理时,为用户提供一种智能的信息过滤手段。例如淘宝网使用推荐系统为用户的在线购物提供推荐,由于用户的兴趣爱好不尽相同,因此推荐的结果通常是个性化的,即不同的用户群组收到的推荐结果往往是不同的。在许多的应用中,推荐的结果往往以一个排序列表呈现出来,其中的项目的序号是由推荐系统所预测的用户对该项目的感兴趣程度决定的。为了预测用户对某个项目的感兴趣程度,推荐系统可以通过收集用户的相关信息(例如年龄、性别、学历,言论等)来和产品的相关特征进行匹配来进行推荐,也可以通过收集用户的历史标注信息来预测用户对于项目的偏好程度。历史标注信息通常可以分为显式的标注(例如评分等)和隐式标注(例如购买和浏览记录等)。
- 网络爬虫技术原理与应用
1.1网络爬虫技术概述
网络爬虫(Crawler)也被称网络蜘蛛,或网络机器人。它为搜索引擎从万维网上下载网页并沿着网页的相关链接在web中采集资源,是-个功能很强的网页自动抓取程序,也是搜索引擎的重要组成部件。
数据采集、数据处理、数据储存是网络爬虫中三个相对重要的功能。传统的网络爬虫首先设定需要爬去的一个或者多个需要爬取的页面,在抽取过程中,一旦发现新的页面,就把它们放到待爬去列队,直到满足系统的停止条件后结束抓取。整个爬取数据的过程都比较复杂有以下几个点需要注意:一、过滤与主题无关的内容。二、与主题相关的新连接,能自动放人待抓取的网页列队。三、不断抓取网页链接,直至满足停止条件。系统爬取工作完成后需要将所有被抓取的网页存储下来,并按照设定对抓取到的网页进行二次过滤,筛选出跟主题关系度更为紧密的网页加以分析。所有爬取到的网页信息建立索引,方便日后遇到类似的主题可以借鉴、查询,从而提高爬取效率。
1.2网络爬虫原理
网络爬虫技术始于一张被称为种子的统一资源地址(URLs)列表。当网络爬虫访问这些URL时,会根据自定义抽取规则抓取页面上的有用信息和待访问的URL。制定相关的爬取策略,可以避免重复爬取,在给定时间内下载有限数量的网页并且进行解析。在下载网页之后,利用一些现有的网页抽取技术,例如Xpath,正则表达式等对下载的文档进行网页抽取。按照某种规则自动抓取部分互联网中的网页,并把HTML格式的网页解析成文本,将所需数据下载到本地,做成数据库或者进行数据分析。
-
基于协同过滤算法的推荐系统
“协同过滤”一词最早是由GlodBerg等人在90年代中期开发推荐系统Tapestry时提出的,并在后来被广泛的研究和应用。协同过滤的基本假设是,如果两个用户A和B在一些项目上具有相似的历史标注模式或者行为习惯(例如购买、阅读、观影等),那么他们在项目上具有相似的兴趣。一般而言,协同过滤技术都会用一个数据库来存储用户的历史标注,然后使用这些信息来预测用户的兴趣爱好并据此向用户进行推荐。
2.1协同过滤算法概述
协同过滤算法的原理非常简单,它认为有相似兴趣的用户可能会喜欢相似的项目或者用户可能对相似的项目表现相似的偏好程度。也就是根据相似用户的评分或活动用户对相似项目的评分进行个性化推荐,它是一个典型的集体智慧方法。例如当人们想看电影时,一般会向周围的人进行咨询,让兴趣偏好相似的人进行推荐。算法由输入、预测以及输出三个部分组成,这里将预测引擎看作一个“黑盒”,它的输入主要是用户的偏好信息,也可以包含用户属性以及项目元数据等其它信息。预测引擎根据输入的信息产生预测,输出预测结果,返回给用户。
在整个协同过滤计算过程中,可以大体分为三个步骤,首先,建立用户-项目评分矩阵,并按某种方式对矩阵中的空值进行填充,通过余弦相似度算法确定出系统中其他用户与当前用户U的相似性。然后,根据计算的用户相似度选出前K个与当前用户U具有较高相似性的用户集合,作为用户U的K个最近邻居。最后,根据K个最近邻居对项目i的评分来预测用户U对项目i的可能评分。评分越高,就表示用户U可能会更加偏爱该项目。
2.2基于记忆的协同过滤算法
基于记忆的协同过滤算法需要建立用户-项目评分矩阵,然后根据用户行为记录计算出用户或者项目之间的相似性,根据用户最近邻或项目最近邻预测项目评分,再由此进行推荐。基于记忆的协同算法又可以进一步划分为基于用户的协同过滤和基于项目的协同过滤。
2.3基于模型的协同过滤算法
基于模型的协同过滤算法主要是通过统计或机器学习中的建模方法对用户评分信息进行处理,计算出用户的偏好模型,然后根据用户的偏好模型进行推荐。这种方法可以在离线的状态下计算用户的偏好模型,因而具有较好的实时性,但是想要计算出准确的用户偏好模型却需要大量的用户行为记录,并且计算代价很高,对数据更新较快的系统并不能很快地更新用户偏好模型,这也导致了其推荐效果并不十分理想,因而在推荐准确度方面,其效果略低于基于记忆的协同推荐。
总结
基于网络爬虫面向餐厅点评的美食推荐系统利用了网络爬虫从美食平台爬取大量信息,以用户的真实点评为基础,对数据进行分析清洗,并进行相应的图表分析,以协同过滤算法,加入考虑用户对菜口,口味,餐厅风格,地理位置等参数的偏好,给出相应的餐厅或者菜品的推荐,在以后进一步的研究工作中,要扩大对于餐厅基本信息的获取以增加数据的多样性,并且要加入多种影响用户兴趣的因素。
