《智能推荐探索.doc》由会员分享,可在线阅读,更多相关《智能推荐探索.doc(12页珍藏版)》请在金锄头文库上搜索。
1、目录摘要1一、认识推荐引擎11.1、推荐引擎的发展史11.1.1推荐引擎的出现11.1.2推荐引擎的发展21.2、推荐引擎的优点21.2.1用户的角度21.2.2企业的角度31.3、推荐引擎工作原理31.4、推荐引擎的分类41.5、推荐引擎的难题5二、系统分析62.1、系统目标62.2、系统可行性62.2.1、经济可行性62.2.2、技术可行性6三、系统设计73.1、系统设计73.1.1、组件工作流程图73.1.2、系统采用的推荐机制83.1.3、系统算法的实现101摘要随着 Web 技术的发展,使得内容的创建和分享变得越来越容易。每天都有大量的图片、博客、视频发布到网上。信息的极度爆炸使得人
2、们找到他们需要的信息将变得越来越 难。传统的搜索技术是一个相对简单的帮助人们找到信息的工具,也广泛的被人们所使用,但搜索引擎并不能完全满足用户对信息发现的需求,原因一是用户很难用 恰当的关键词描述自己的需求,二是基于关键词的信息检索在很多情况下是不够的,搜索出来的数据是我们所不需要的。那么一种新兴的技术必然应运而生,那就是推荐引擎,推荐引擎,是建立在对每一个用户的信息和行为深刻了解的基础之上,为用户提供个人化信息的技术,它不是被动等待用户的搜索请求,而是为用户主动推荐最相关的信息。推荐引擎利用特殊的信息过滤(IF,InformationFiltering)技术,将不同的内容(例如电影、音乐、书
3、籍、新闻、图片、网页等)推荐给可能感兴趣的用户。 通常情况下,推荐引擎的实现是通过将用户的个人喜好与特定的参考特征进行比较,并试图预测用户对一些未评分项目的喜好程度。参考特征的选取可能是从项目本身的信息中提取的,或是基于用户所在的社会或社团环境。推荐引擎的出现,使用户获取信息的方式从简单的目标明确的数据的搜索转换 到更高级更符合人们使用习惯的上下文信息更丰富的信息发现。推荐引擎从以往的人找数据转向了数据找人!关键词 推荐引擎 、个人化信息 、主动推荐 、信息过滤一、认识推荐引擎1.1、推荐引擎的发展史1.1.1推荐引擎的出现l 门户时代:信息爆炸 平台诞生 90-00 新浪 搜狐 信息分类l
4、搜索引擎:人找信息 搜索平台 00-10 百度 谷歌 信息处理l 推荐引擎:信息找人 社交平台 10-20 亚马逊 豆瓣网 个性透析1.1.2推荐引擎的发展 1995年3月,卡耐基.梅隆大学的Robert Armstrong等人在美国人工智能协会上提出了个性化导航系统Web Watcher; 斯坦福大学的Marko Balabanovic等人在同一会议上推出了个性化推荐系统LIRA; 1995年8月,麻省理工学院的Henry Lieberman在国际人工智能联合大会(IJCAI)上提出了个性化导航智能体Litizia; 1996年, Yahoo 推出了个性化入口My Yahoo; 1997年,
5、AT&T实验室提出了基于协同过滤的个性化推荐系统PHOAKS和Referral Web; 1999年,德国Dresden技术大学的Tanja Joerding实现了个性化电子商务原型系统TELLIM; 2000年,NEC研究院的Kurt等人为搜索引擎CiteSeer增加了个性化推荐功能; 2001年,纽约大学的Gediminas Adoavicius和Alexander Tuzhilin实现了个性化电子商务网站的用户建模系统1:1Pro; 2001年,IBM公司在其电子商务平台Websphere中增加了个性化功能,以便商家开发个性化电子商务网站; 2009年,百分点科技推出专业推荐引擎技术平台
6、,这是一家专业的推荐引擎技术与服务提供商。 如今,随着推荐技术的不断发展,推荐引擎已经在电子商务 (E-commerce,例如 Amazon,当当网 ) 和一些基于 social 的社会化站点 ( 包括音乐,电影和图书分享,例如豆瓣,Mtime 等 ) 都取得很大的成功。这也进一步的说明了,Web2.0 环境下,在面对海量的数据,用户需要这种更加智能的,更加了解他们需求,口味和喜好的信息发现机制。,相信推荐引擎的发展在未来将成为一种趋势!1.2、推荐引擎的优点 1.2.1用户的角度推荐引擎可以更精确的帮用户找到所需要的东西,推荐引擎大大减少了用户搜索的时间 1.2.2企业的角度推荐引擎为企业带
7、来更多的利润,从电子商务领域来讲,将电子商务网站的浏览者转变为购买者 ,提高电子商务网站的交叉销售能力,提高客户对电子商务网站的忠诚度。 1.3、推荐引擎工作原理推荐引擎利用特殊的信息过滤技术,将不同的物品或内容推荐给可能对它们感兴趣的用户图 1 给出了推荐引擎的工作原理图,这里先将推荐引擎看作黑盒,它接受的输入是推荐的数据源,一般情况下,推荐引擎所需要的数据源包括:l 要推荐物品或内容的元数据,例如关键字,基因描述等;l 系统用户的基本信息,例如性别,年龄等l 用户对物品或者信息的偏好,根据应用本身的不同,可能包括用户对物品的评分,用户查看物品的记录,用户的购买记录等。其实这些用户的偏好信息
8、可以分为两类:l 显式的用户反馈:这类是用户在网站上自然浏览或者使用网站以外,显式的提供反馈信息,例如用户对物品的评分,或者对物品的评论。l 隐式的用户反馈:这类是用户在使用网站是产生的数据,隐式的反应了用户对物品的喜好,例如用户购买了某物品,用户查看了某物品的信息等等。推荐引擎根据不同的推荐机制可能用到数据源中的一部分,然后根据这些数据,分析出一定的规则或者直接对用户对其他物品的喜好进行预测计算。这样推荐引擎可以在用户进入的时候给他推荐他可能感兴趣的物品。1.4、推荐引擎的分类1. 推荐引擎是不是为不同的用户推荐不同的数据 根据这个指标,推荐引擎可以分为基于大众行为的推荐引擎和个性化推荐引擎
9、根据大众行为的推荐引擎,对每个用户都给出同样的推荐,这些推荐可以是静态的由系统管理员人工设定的,或者基于系统所有用户的反馈统计计算出的当下比较流行的物品。个性化推荐引擎,对不同的用户,根据他们的口味和喜好给出更加精确的推荐,这时,系统需要了解需推荐内容和用户的特质,或者基于社会化网络,通过找到与当前用户相同喜好的用户,实现推荐。这是一个最基本的推荐引擎分类,其实大部分人们讨论的推荐引擎都是将个性化的推荐引擎,因为从根本上说,只有个性化的推荐引擎才是更加智能的信息发现过程。2. 根据推荐引擎的数据源 其实这里讲的是如何发现数据的相关性,因为大部分推荐引擎的工作原理还是基于物品或者用户的相似集进行
10、推荐。那么参考图 1 给出的推荐系统原理图,根据不同的数据源发现数据相关性的方法可以分为以下几种:根据系统用户的基本信息发现用户的相关程度,这种被称为基于人口统计学的推荐(Demographic-based Recommendation)根据推荐物品或内容的元数据,发现物品或者内容的相关性,这种被称为基于内容的推荐(Content-based Recommendation)根据用户对物品或者信息的偏好,发现物品或者内容本身的相关性,或者是发现用户的相关性,这种被称为基于协同过滤的推荐(Collaborative Filtering-based Recommendation)。3. 根据推荐模型
11、的建立方式 可以想象在海量物品和用户的系统中,推荐引擎的计算量是相当大的,要实现实时的推荐务必需要建立一个推荐模型,关于推荐模型的建立方式可以分为以下几种:基于物品和用户本身的,这种推荐引擎将每个用户和每个物品都当作独立的实体,预测每个用户对于每个物品的喜好程度,这些信息往往是用一个二维矩阵描述的。 由于用户感兴趣的物品远远小于总物品的数目,这样的模型导致大量的数据空置,即我们得到的二维矩阵往往是一个很大的稀疏矩阵。同时为了减小计算量,我们可 以对物品和用户进行聚类, 然后记录和计算一类用户对一类物品的喜好程度,但这样的模型又会在推荐的准确性上有损失。 基于关联规则的推荐(Rule-based
12、 Recommendation):关联规则的挖掘已经是数据挖掘中的一个经典的问题,主要是挖掘一些数据的依赖关系,典型的场景就是“购物篮问题”,通过 关联规则的挖掘,我们可以找到哪些物品经常被同时购买,或者用户购买了一些物品后通常会购买哪些其他的物品,当我们挖掘出这些关联规则之后,我们可以基于 这些规则给用户进行推荐。 基于模型的推荐(Model-based Recommendation):这是一个典型的机器学习的问题,可以将已有的用户喜好信息作为训练样本,训练出一个预测用户喜好的模型,这样以后用户在 进入系统,可以基于此模型计算推荐。这种方法的问题在于如何将用户实时或者近期的喜好信息反馈给训练
13、好的模型,从而提高推荐的准确度。1.5、推荐引擎的难题精确度和性能是推荐引擎面临的两大难题!领域的不同、用户兴趣爱好的不同,如何解决这一难题,给每个用户做出精确的推荐!推荐引擎在中小型网站中应用,一般不会出现庞大的数据量处理问题,但是面对大型的电子商务网站等,推荐引擎如何在海量的数据中提高性能,无疑又是一大难题!那么我们的系统将围绕这两个问题展开研究,提供可行的解决方案!二、系统分析2.1、系统目标精确度、性能是推荐引擎的难题,推荐引擎是新兴的技术,开发一个推荐引擎无非是高成本的,那么成本则是企业家所考虑因素,为了更好的解决这几个问题,我们的系统就围绕了这几方面进行了设计,寻求一个高精确度、高
14、性能、低成本的推荐系统,使之成为一个可行和具有竞争力的推荐系统!推荐系统适用于各行各业,本系统主要围绕电子商务方向进行研究,致力于为电子商务系统发展推荐引擎提供可行的解决方案!2.2、系统可行性2.2.1、经济可行性 目前电子商务平台林立,那么如何在激烈的竞争中屹立,如何获取争取更多的会员,获取更多的利益,越来越困难,那么通过推荐引擎来提高竞争力则显得尤为重要和迫切了!目前推荐引擎在大型的电子商务网站(如Amazon,当当网)得到了成功的应用,但很多的中小型电子商务网站,还没有将这一技术应用起来!原因是目前国内这一技术的匮乏,增加了开发的难度,而且进行推荐引擎研发的企业还是为之少数,自然提高了
15、开发的成本!所以低成本的推荐系统,具备了宽阔的市场2.2.2、技术可行性1、系统采用了Apache成熟的开源推荐框架Mahout,具备稳定性,同时降低开发的难度2、系统是基于java语言的,具备很好的跨平台和兼容性,对硬件的要求低三、系统设计3.1、系统设计3.1.1、组件工作流程图DataModel:DataModel 是用户喜好信息的抽象接口,它的具体实现支持从任意类型的数据源抽取用户喜好信息。Taste 默认提供 JDBCDataModel 和 FileDataModel,分别支持从数据库和文件中读取用户的喜好信息。UserSimilarity 和 ItemSimilarity:UserSimilarity 用于定义两个用户间的相似度,它是基于协同过滤的推荐引擎的核心部分,可以用来计算用户的“邻居”,这里我们将与当前用户口味相似的用户称为他的邻居。 ItemSimilarity 类似的,计算内容之间的相似度。UserNeighborhood:用于基于用户相似度的推荐方法中,推荐的内容是基于找到与当前用户喜好相似的“邻居用户”的方式产生的。UserNeighborhood 定义了确定邻居用户的方法