基于内容的推荐算法_第1页
基于内容的推荐算法_第2页
基于内容的推荐算法_第3页
基于内容的推荐算法_第4页
基于内容的推荐算法_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于内容的推荐算法(Content-Based Recommendation )1 .基本思想基本思想就是给用户推荐与他们曾经喜欢的项目内容相匹配的新项目。基于内容的推荐的基本思想是:对每个项目的内容进行特征提取(FeatureExtraction),形成特征向量(Feature Vector);对每个用户都用一个称作用户的兴趣模型(User Profile)的文件构成数据结构来描述其喜好;当需要对某个用户进行推荐时,把该用户的用户兴趣模型同所有项目的特征矩阵进行比较得到二者的相似度,系统通过相似度推荐文档。(基于内容的推荐算法不用用户对项目的评分,它通过特定的特征提取方法得到项目特征用来表示

2、项目,根据用户所偏好的项目的特征来训练学习用户的兴趣模型, 然后计算一个新项目的内容特征和用户兴趣模型的匹配程度,进而把匹配程度高的项目推荐给用户。)2.基于内容的推荐层次结构图:CB 的过程一般包括以下三步 :( 1 ) Item Representation :为每个item 抽取出一些特征(也就是item 的 content了)来表示此item ;对应着上图中的Content Analyzer 。( 2 ) Profile Learning :利用一个用户过去喜欢(及不喜欢)的item 的特征数据,来学习出此用户的喜好特征(profile );对应着上图中的Profile Learner

3、 。( 3) Recommendation Generation : 通过比较上一步得到的用户profile 与候选 item的特征,为此用户推荐一组相关性最大的item 。 对应着上图中的Filtering Component 。3.详细介绍上面的三个步骤:3.1 Item Representation项目表示 : 对项目进行特征提取,比如最著名的特征向量空间模型,它首先将一份文本 (项目) 以词袋形式来表示,然后对每一个词用词频-逆向文档频率( TF-IDF)来计算权重,找出若干权重较大的词作为关键词(特征)。每个文本(项目)都可以表示成相同维度的一个向量TF-IDF词频-逆文档频率计算:

4、TF 词项 t 在文档 d 中出现的次数,df 表示词项t 在所有文档出现的次数,idf 为反向文档频率,N 为文档集中所有文档的数目。TF-IDF公式同时引入词频和反向文档频率,词频TF表示词项在单个文档中的局部权重,某一词项在文档中出现的频率越高,说明它区分文档内容的属性越强,权重越大。IDF表示词项在整个文档集中的全局权重,某一词项在各大文档都有出现,说明它区分文档类别属性的能力越低,权值越小。TF-IDF与一个词在文档中的出现次数成正比,与该词在整个语言中的出现次数成反比。加 1 是为了防止分母为0.3.2 Profile Learning用户兴趣模型表示:总结用户喜欢的所有项目的平均

5、值,进而表示用户的兴趣。假设用户u 已经对一些item 给出了他的喜好判断,喜欢其中的一部分item ,不喜欢其中的另一部分。那么,这一步要做的就是通过用户u 过去的这些喜好判断,为他产生一个模型。有了这个模型,我们就可以根据此模型来判断用户u 是否会喜欢一个新的item 。所以, 我们要解决的是一个典型的有监督分类问题,理论上机器学习里的分类算法都可以照搬进这里。简单地说,就是把用户所有浏览过的item 分类,分成用户喜爱和不喜爱的两类,然后利用喜爱的这部分对用户进行建模。下面我们简单介绍下CB 里常用的一些学习算法:3.2.1 最近邻方法(k-NearestNeighbor ,简称 KNN

6、 )对于一个新的item,最近邻方法首先找用户u 已经评判过并与此新item 最相似的k个 item , 然后依据用户u 对这 k 个 item 的喜好程度来判断其对此新item 的喜好程度。这种做法和 CF 中的 item-based KNN 很相似,差别在于这里的item 相似度是根据item 的属性向量计算得到,而CF 中是根据所有用户对item 的评分计算得到。对于这个方法,比较关键的可能就是如何通过item 的属性向量计算item 之间的两两相似度。建议对于结构化数据,相似度计算使用欧几里得距离;而如果使用向量空间模型( VSM )来表示item 的话,则相似度计算可以使用cosin

7、e 。3.2.2 Rocchio 算法Rocchio 算法是信息检索中处理相关反馈(Relevance Feedback )的一个著名算法。比如你在搜索引擎里搜“苹果 ”,当你最开始搜这个词时,搜索引擎不知道你到底是要能吃的苹果,还是要不能吃的苹果,所以它往往会尽量呈现给你各种结果。当你看到这些结果后,你会点一些你觉得相关的结果(这就是所谓的相关反馈了)。 然后如果你翻页查看第二页的结果时,搜索引擎可以通过你刚才给的相关反馈,修改你的查询向量取值,重新计算网页得分,把跟你刚才点击的结果相似的结果排前面。比如你最开始搜索“苹果 ”时,对应的查询向量是 “苹果 ” : 1。而当你点击了一些与Mac

8、、 iPhone 相关的结果后,搜索引擎会把你的查询向量修改为 “苹果 ” : 1,“ Mac” : 0.8,“ iPhon,通过这个新的查询向量,搜索引擎就 e” : 0.7能比较明确地知道你要找的是不能吃的苹果了。Rocchio 算法的作用就是用来修改你的查询向量的:“苹果 ” : 1-> “苹果 ” : 1, “ Mac” : 0.8,“ iPhon。 e” :0.7正如在本节开头所说,本节要解决的是一个典型的有监督分类问题。所以各种有效的分类机器学习算法都可以用到这里,下面列举几个常用的分类算法:3.2.3 决策树算法(DecisionTree ,简称 DT)当 item 的属性

9、较少而且是结构化属性时,决策树一般会是个好的选择。这种情况下决策树可以产生简单直观、容易让人理解的结果。而且我们可以把决策树的决策过程展示给用户u,告诉他为什么这些item 会被推荐。但是如果item 的属性较多,且都来源于非结构化数据(如item 是文章),那么决策树的效果可能并不会很好。3.2.4 线性分类算法(LinearClassifer ,简称 LC)3.2.5 朴素贝叶斯算法(NaiveBayes ,简称 NB)NB 算法就像它的简称一样,牛逼!NB 经常被用来做文本分类,它假设在给定一篇文章的类别后,其中各个词出现的概率相互独立。它的假设虽然很不靠谱,但是它的结果往往惊人地好。再

10、加上 NB 的代码实现比较简单,所以它往往是很多分类问题里最先被尝试的算法。我们现在的profile learning 问题中包括两个类别:用户u 喜欢的 item ,以及他不喜欢的 item 。在给定一个item 的类别后,其各个属性的取值概率互相独立。我们可以利用用户u 的历史喜好数据训练NB,之后再用训练好的NB 对给定的item 做分类。3.3 Recommendation Generation推荐产生:计算匹配得分,效用函数为:如果上一步Profile Learning 中使用的是分类模型(如DT、 LC 和 NB) ,那么我们只要把模型预测的用户最可能感兴趣的n 个 item 作为

11、推荐返回给用户即可。而如果 Profile Learning 中使用的直接学习用户属性的方法(如Rocchio 算法) ,那么我们只要把与用户属性最相关的n 个 item 作为推荐返回给用户即可。其中的用户属性与item属性的相关性可以使用如cosine 等相似度度量获得。相似度计算:1. 相似度计算方法欧式距离和夹角余弦前者是看成坐标系中两个点 ,来计算两点之间的距离 ;后者是看成坐标系中两个向量 ,来计算两向量之间的夹角 。比如 A,B 分别表示两篇文章,一篇文章A 复制 3 次,与原来的文章虽然内容一样,但是用欧式距离测量距离就很大,而夹角余弦不变关于归一化:因为余弦值的范围是-1,+1

12、 ,相似度计算时一般需要把值归一化到0,1,一般通过如下方式:sim = 0.5 + 0.5 * cos若在欧氏距离公式中,取值范围会很大,一般通过如下方式归一化:sim = 1 / (1 + dist ( X,Y )最后根据相似度大小排序,给用户推荐4.基于内容的推荐算法优缺点基于内容的推荐的优点:( 1)简单、有效,推荐结果直观,容易理解,不需要领域知识。( 2)不需要用户的历史数据,如对对象的评价等,靠对内容特征提取,没有关于新项目出现的冷启动问题, 没有稀疏问题。( 3)能为具有特殊兴趣爱好的用户进行推荐。( 4)有比较成熟的分类学习方法能提供支持,如数据挖掘、聚类分析等。基于内容的推

13、荐的缺点:( 1)推荐对象特征提取能力的限制。虽然文本的特征提取较为成熟,但是其他多媒体资源比如图像、视频、音乐等没有有效的特征提取方法。此外,特征提取的好坏也直接影响推荐结果。( 2)很难出现新的推荐结果。推荐对象的内容特征和用户的兴趣偏好匹配才能获得推荐,用户将仅限于获得跟以前类似的推荐结果,很难为用户发现新的感兴趣的信息。( 3)存在新用户出现时的冷启动问题。当新用户出现时,系统较难获得该用户的兴趣偏好,就不能和推荐对象的内容特征进行匹配,该用户将较难获得满意的推荐结果。( 4)对推荐对象内容分类方法需要的数据量较大。目前,尽管分类方法很多,但构造分类器时需要的数据量巨大,给分类带来一定

14、困难。( 5)不同语言的描述的用户模型和推荐对象模型无法兼容。分类算法性能对比1. 芦苇,彭雅,几种常用文本分类算法性能比较与分析,湖南大学学报,2007SVM>KNN>NB, 在算法的精确度方面SVM 算法最高, 但所需的时间开销也较;KNN算法精度其次,在训练集增大时,它的计算量线性增加;NB 算法具有很强的,运算速度最快.2. 奉国和,四种分类算法性能比较,计算机工程与应用,2011SVM>KNN>RBFNs>bays3. 陈琳,王箭,三种中文文本自动分类算法的比较和研究,计算机与现代化,2012.各类型分类实舱结果类别KNN算法(,)朴素Bayc笄法(%)

15、SVM算法(%)者底率行全军查准率查全率光淮率行全率财经72.727264.366579. S978rr83.877883.58189.58的健翼83.337575.737886.7385体育77.7884於,527382.6986旅游82.248878.357686.7992教育78.3836a. 267185. 29S7招聘72.1675分1627S.A582文化80.227370,586086.3676军事87.258977.678390.38乂把表1中KNN、朴素Bayes.SVM算法的结果求 平均和标准差得表2。表2三种算法查全率和查准率平均值和标准差值算法查全享查推率H (%)平均值(%)标准整平均值(%)标准差XNN笄法79.670.061179. 760.047879.71扑京Bag算法72.120.078171. W0.072171.99SVM算法85.120.055385.140.038185.13袤3三种算法运算时间算法训壕C)分分()KNN算法2367朴素施yc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论