电影推荐系统
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
四、 实验结果:
测试数据movielens
均方根误差 RMSE=0.9474
45分以上来自百度文库荐正确率: 0.746
卢一强:北京遇上西雅图 燕睿涛:北京遇上西雅图 龚志鑫:北京遇上西雅图 刘璐:北京遇上西雅图 李长月:北京遇上西雅图 龚志鑫:少年派 卢一强:速度与激情5 刘璐:速度与激情5 刘璐:猩球崛起
基于 Slope one 算法的电影推荐系统
摘要:商业网站迅猛发展的时代已经到来,网上服务的交易方式正在改变
着传统的商业模式。 如果说过去的十年是搜索技术高速发展的十年,那么个性化 推荐技术将作为下一个十年中最为重要的革新之一。 目前几乎所有大型的商业网 站,如亚马逊、淘宝网等,都不同程度地使用了各种形式的推荐系统。本文就推 荐系统这一话题展开讨论, 首先介绍了推荐系统的提出和发展过程,然后列举出 了几种推荐系统的研究方法,其中,详细的描述了 Slope one 算法推荐系统的实 现过程以及用 Slope one 算法编写程序完成了电影推荐系统。最后列举了几个推 荐系统的实例。
必须以机器可读的方式存在(ontology 本体知识库),例如 quickstep and foxtrot systems 使用关于学术论文主题的 ontology 本体知识库向读者作推荐. 4、Slope one 算法推荐: Slope One 是一系列应用于 协同过滤的算法的统称。由 Daniel Lemire 和 Anna Maclachlan 于 2005 年发表的论文中提出。有争议的是,该算法堪称基 于项目评价的 non-trivial 协同过滤算法最简洁的形式。该系列算法的简洁特 性使它们的实现简单而高效, 而且其精确度与其它复杂费时的算法相比也不相上 下。 该系列算法也被用来改进其它算法。当可以对一些项目评分的时候,比如 人们可以对一些东西给出 1 到 5 星的评价的时候, 协同过滤意图基于一个个体过 去对某些项目的评分和(庞大的)由其他用户的评价构成的数据库,来预测该用 户对未评价项目的评分。 如: 如果一个人给披头士的评分为 5 (总分 5) 的话, 我们能否预测他对席琳狄翁新专辑的评分呢? 这种情形下, item-based 协同过滤系统 的分值,一般方法为线性回归( 根据其它项目的评分来预测项目 ). 于是,需要列出 x^2 个线性
黑 白 二 速 泰 功 源 猩 失 衣 鹿 次 度 迪 夫 代 球 恋 人 原 曝 与 熊 熊 码 崛 三 三 光 激 猫 起 十 情 三 五 天
志 听 这肖 唐 明 风 个申 伯 与 者 杀克 虎 春 手的 点 娇 不救 秋 太赎 香 冷 0 0 0 0
大 话 西 游
泰 坦 尼 克 号
0
4. 0 1 3 3. 2. 2. 0 3. 2 5 6 3 1 9 4 5 0 2. 0 0 3. 7 5 7 2 2. 0 0 3. 2. 3 2 3 1 3 5 0 0 0 0 0
李长月:猩球崛起 李长月:听风者 燕睿涛:肖申克的救赎 刘思遥:肖申克的救赎 孙召星:肖申克的救赎 燕睿涛:泰坦尼克号 汤瑶:泰坦尼克号 刘思遥:泰坦尼克号
注释:此数据代表按照自己和别人的评分推荐的电影
致 北 人少 青 京 再年 春 遇 囧派 上 途的 西 之奇 雅 泰幻 图 囧漂 流 卢 0 4. 0 0 2 一 强 燕 3. 4. 0 0 睿8 2 涛8 6 龚 0 4. 0 4. 5 5 志 3 4 鑫 阿 2. 0 0 3. 2 鹏9 9 仁8 刘0 0 0 0 少 博 姚 3. 3. 0 3. 8 伟4 7 娜1 1 汤 3. 3. 0 3. 7 瑶4 8 3 2 6 刘 3. 3. 0 0 思1 4 遥3 3 孙 3. 0 0 0 召3 星6 刘 3. 4. 0 0 璐8 2 7 4 吴0 0 0 0 林 李 3. 4. 0 0 长8 0
现有推荐系统研究方法:
1、 基于内容的推荐: 基于内容的推荐(content-based recommendation)是指根据用户选择的对象, 推 荐 其 他 类 似 属 性 的 对 象 作 为 推 荐 , 属 于 Schafer 划 分 中 的 Item-to-Item Correlation 方法.这类算法源于一般的信息检索方法 .不需要依据用户对对象的 评价意见.对象使用通过特征提取方法得到的对象内容特征来表示 ,系统基于用 户所评价对象的特征 ,学习用户的兴趣,从而考察用户资料与待预测项目相匹配
������ +������ 上面讨论的是用户只对条目的喜好程度打分。 还有一种情况下用户也可以对 条目的厌恶程度打分。这时可以使用双极 Slope One 算法(BI-Polar Slope One)。
rb=
������ × ������������ −������ ������−>������ +������ ×(������������ −������ (������−>������ ))
100 × Rating 1 to 2 + 1000 × (Rating 2 to 3) (100 + 1000)
Slope One 算法的加权算法数学描述如下: 有 N 个用户对条目 A 和条目 B 打分了,R(A->B)表示这 N 位用户对 A 和对 B 打分的平均差(A-B),有 M 位 用户对条目 B 和条目 C 打分了,R(C->B)表示这 M 位用户对 C 和对 B 打 分的平均差(C-B) ,注意都是平均差而不是平方差,现在某个用户对 A 的打分 是 ra,对 C 的打分是 rc,那么 A 对 B 的打分可能是:
的程度. 对象内容特征(Content(s))的选取在目前的研究中以对象的文字描述为主 ,比如信 息 检 索 中 最 经 典 的 文 本 特 征 是 词 频 - 倒 排 文 档 频 率 (term frequency-inverse document frequency, 简 称 TF-IDF). 另 一 方 面 , 用 户 的 资 料 模 型 ContentBasedProfile(c)取决于所用机器学习方法,常用的有决策树、贝叶斯分类算 法、神经网络、基于向量的表示方法等,数据挖掘领域的众多算法都可以应用. 2、 协同过滤推荐 协同过滤推荐(collaborative filtering recommendation)技术是推荐系统 中最为成功的技术之一,它于 20 世纪 90 年代开始研究并促进了整个推荐系统 研究的繁荣.大量论文和研究都属于这个类别. 协同过滤的基本思想是:找到与当前用户 ccur 相似(比如兴趣和口味相似的 其他用户 cj,计算对象 s 对于用户的效用值 u(cj,s),利用效用值对所有 s 进行 排序或者加权等操作,找到最适合 ccur 的对象 s*.其基本思想非常易于理解,在 日常生活中,我们往往会利用好朋友的推荐来进行一些选择.协同过滤正是把这 一思想运用到推荐系统中来,即基于其他用户对某一内容的评价向目标用户进行 推荐. 基于协同过滤的推荐系统可以说是从用户的角度进行推荐的,并且是自动的, 也就是说,用户所获得的推荐是系统从用户购买或浏览等行为中隐式获得的,不 需要用户主动去查找适合自己兴趣的推荐信息,如填写一些调查表格等.其另外 一个优点是对推荐对象没有特殊的要求(而基于内容的推荐需要对推荐对象进行 特征分析),能够处理非结构化的复杂对象,如音乐、电影等.同时,研究用户之间 的关系需要大量的用户访问行为的历史数据,与社会网络研究有交叉点,有丰富 的研究基础和广阔的前景.对协同过滤最早的研究有 Grundy system, 后来的 研究成果包括 Tapestry system, GroupLens, Ringo, PHOAKS system, Jester system]等.总体而言, 此类推荐算法可以分为两类:启发式(heuristic-based or memory-based)方法和基于模型(model-based)的方法。 3、基于知识的推荐: 基于知识的推荐(knowledge-based recommendation)在某种程度上可以看 成是一种推理(inference)技术.它不是建立在用户需要和偏好基础上推荐的,而 是利用针对特定领域制定规则(rule)来进行基于规则和实例的推理(case-based reasoning).例如,文献[34]中利用饭店的菜式方面的效用知识,推荐饭店给顾客. 效用知识(functional knowledge)是一种关于一个对象如何满足某一特定用户 的知识,因而能够解释需求和推荐的关系,用于推荐系统.效用知识在推荐系统中
回归方程和回归量,例如:当有 1000 个项目时,需要列多达 1,000,000 个线性 回归方程, 以及多达 2,000,000 个回归量。除非我们只选择某些用户共同评价 过的项目对,否则协同过滤会遇到过适(过拟合) 问题。
三、 Slope one 算法描述及实现过程:
1、 算法原型: 图例一(如图 3-1 所示):
0
2. 7 4 0 2. 7 8 1. 3. 2. 9 4 5 5 4 7 2. 3. 2. 1 6 7 1 4 6 0 4. 3. 1 3 7 2 0 0 0 0 0 0
3. 7 8 0
算法演示图二
如上图所示,UserB 对 ItemB 的评分会是多少呢?股票上有个说法是平均值 可以掩盖一切的异常波动, 所以股票上的各个技术指标是收集不同时间段的平均 值的曲线图或是柱状图等。同样的,Slope One 算法也认为:平均值也可以代替 某两个未知个体之间的打分差异,条目 A 条目 B 的平均差值是:
0
0
3. 0 9 2 0 0
0
0
0 0
0
0
0
0
0
0
0
3. 0 8 3 0 0
0 5. 0 0 4 5 0 0 0 0
4. 9 7 0
0
0
0
0
0
0
0 0
0 0
0
0
0
0
0
0
0
0 0
0 0
0
2. 7 2 2. 6 8 2. 5
1. 9 8 1. 9 8 1. 8 2 0 1. 9 2 3. 0 2 3 0 0 0 0
4−3 +(3 −3) 2
=0.5
也就是说人们对事物 A 的打分一般比事物 B 的打分要高 0.5,于是 Slope one 算法就猜测 UserB 对事物 B 的打分是 2 - 0.5 = 1.5。 2、 加权算法: 由上的两个示例对 Slope One 算法有了认识。如果有 100 个用户对 ItemA 和 ItemB 都打过分,有 1000 个用户对 ItemC 和 ItemB 也打过分。显然这两个 rating 差的权重是不一样的。因此我们可以推测,计算方法是:
图 3-1
算法演示图一
如上图所示, UserA 对 ItemA 的评分是 4, 对 ItemB 的评分是 3, UserB 对 ItemA 的评分是 2,那么,预测 UserB 对 ItemB 的评分是多少呢? 根据 Slope One 算法,2+(3-4)=1。 图例二(如图 3-2 所示):
图 3-2
关键字:Slope one 算法推荐系统数据挖掘个性化推荐
一、 发展背景:
随着 Internet 的日益普及, 商业网站的蓬勃发展, 如何提高商业网站的有效 性,尤其是如何运用个性化推荐技术提供个性化服务来实现已逐渐成为一个能 引起广泛兴趣的热点课题。虽然商业网站从“以站点为中心”向“以用户为中 心”发展成为必然趋势。但目前国内大多数商业网站的商品推荐通常是:推荐 热销产品; 推荐相关产品; 依据用户浏览历史的信息进行推荐。 由 Daniel Lemire 教授在 2005 年提出的一个 Item-Based(基于条目)推荐算法,可应用于各类 以网上商品销售为主业务的网上商店,以及提供文章、新闻、音乐、电影等“无 形”的产品的网络站点。用于帮助商店经营者,网络站点从事产品的个性化推 荐,提高营销及服务质量,更好地挖掘潜在客户及客户的使用、购买潜能。同 时也根据用户的喜好,网站会留下记录,当用户再次访问时,网站会推荐用户 可能喜欢的东西,这样也方便了用户,用户无需浪费时间去搜索大量的信息。 二、