diff --git "a/manual/paper\351\230\205\350\257\273\345\210\206\344\272\253/2002-Hybrid Recommender Systems Surveyand Experiments.md" "b/manual/paper\351\230\205\350\257\273\345\210\206\344\272\253/2002-Hybrid Recommender Systems Surveyand Experiments.md" new file mode 100644 index 0000000000000000000000000000000000000000..68b6c9a9e242a4433e018b2fb72941a5c22ba2e5 --- /dev/null +++ "b/manual/paper\351\230\205\350\257\273\345\210\206\344\272\253/2002-Hybrid Recommender Systems Surveyand Experiments.md" @@ -0,0 +1,162 @@ +# 2002-Hybrid Recommender Systems Surveyand Experiments +# Abstract +介绍了推荐系统是干嘛的。 +现在的推荐系统为了效果,会综合使用很多技术,比如基于内容的推荐,协同推荐,基于领域知识的推荐,以及其他技术,并且会将这些技术混合使用。 +本文介绍了一种基于领域知识和协同过滤的新的混合推荐系统Entree来推荐餐厅。更进一步的,我们将展示依据领域知识进行的打分能增强协同过滤的有效性。 + +# Introduction +推荐系统最初的定义: +"people provide recommendations as inputs, which the system then aggregates and directs to appropriate recipients" +现在变得广义了: +用来描述这样一个系统,能够从一大堆的可选项中,为人提供个性化的推荐。并且已经是一些电商网站的必要组成部分。 +“个性化”,“有趣且有用”这两个词将推荐系统和搜索引擎区分开来。 +搜索引擎更关心的是匹配,初代搜索引擎将精确匹配的信息返回,后来的google增加了信息的权威属性,从而返回更有用的信息。 +在推荐系统的研究一个常用的方式就是结合使用各种技术来达到效能的峰值。 +所有已知的推荐技术,都各有优缺点,需要将他们结合,取长补短。 +# 推荐技术 +分类方式很多,通常依据为: +* 背景数据:在推荐处理流程启动前,系统能获取的数据 +* 数据数据:用户输入系统的数据。 +* 算法:结合背景数据和输入数据反馈结果。 +在这个基础上,能将推荐系统分为五类: + +## 协同推荐技术 Collaborative recommendation +协同推荐技术时最著名和最多使用的技术。协同推荐技术会聚合用户对物品的打分或推荐意见,然后基于用户之间的比较来生成推荐项。 +一个协同推荐系统中,典型的UP是一个针对物品打分的形成向量。 +打分有如下几种:打分的时间序列,二值化的打分(like/dislike),实数值的打分。 +推荐算法分类: Memory-Based ,Model-Based(NN,Latend Semantic,Bayesian Networks) +核心思想是 “people-to-people” 的相关性 + +## 基于人口统计学的推荐技术 Demographic recommender systems +例 Grundy 的基于人与人之间的对话推荐书籍。 +基于人口统计学的推荐技术是“people-to-people” 的相关性的另一种体现,但它无需人对物品的历史评价信息。 + +## 基于内容的推荐 Content-based recommendation +基于内容的推荐是信息检索过滤的副产物。它根据用户过去喜欢的产品(本文统称为 item),为用户推荐和他过去喜欢的产品相似的产品。 + +[参考](https://blog.csdn.net/u011537073/article/details/54143441) + +## 基于效用推荐(Utility-based Recommendation) +基于效用函数,及该物品的效用能慢足用户需求的打分。 + +## 基于知识的推荐 +基于某一领域的一套规则,进行推荐。知道某些物品有什么特定用处。 + +# 比较各个推荐技术优缺点 +## 推荐系统主要面对的问题 +### 新用户: +因为推荐系统是根据人对物品的评分来进行的,当一个新用户加入时,缺乏其打分数据,很难对这个用户进行分类。 + +### 新物品: +相似的,一个新物品的加入,也缺乏人对该物品的打分。 + +### "Outside the box" 推荐能力: +协同过滤的擅长处理该问题,基于内容推荐则不行 : 如喜欢jazz 的人,大部分也喜欢classcial。那么会给喜欢jazz的人 推荐 classical。但是基于内容的话,这两者内容没有相似点,因而无法进行 + +### "portfolio effect" +协同过滤和基于内容的过滤,都不能很好的处理该问题。描述如下:相同的新闻,在不同的媒体上会用相近的描述。但是看过一次之后的人,不会去看第二次。因而需要剔除这些相似度非常高的新闻。 + +### "灰山羊" 现象 +一个用户和周围用户都不一样。在基于人口统计学的方法中,也会遇到这个情况,即哪些个性非常明显的用户。 + +## Ramp-up 问题 +数据欺诈问题:一个推荐系统中的UP一旦建立,基本不变。这样,会存在一个延时,比如一个肉食主义者,突然变成了素食主义者,推荐系统还是会给他推荐牛扒,除非隔了很长一段时间。 +collaborative, content-based and demographic 都有这个问题 + +相对的,Knowledge base 和 Utility-Based 的反馈都是实时的,不需要重新训练。所以可以处理这种问题。 + +## 协同推荐 +当用户的点击非常稀疏时,很难计算用户和用户的相似度,因为只有很少的用户会对相同的物品打分。除非用户数量非常多。 +纯粹的协同推荐技术最适合于用户的兴趣和一小撮物品强相关的情况。 +存在问题的场景: +* 用户评价非常稀疏 +* 当物品集合变换较快 +* 当物品集很大,而用户兴趣很小的时候 + +有效的情况: +* 当一个用户和他相近用户兴趣相似的时候,最有效。 + + +## 基于人口统计学的方法 +不存在 新用户问题,因为不需要用户对物品的打分。 +主要原理,基于贝叶斯概率。 + +## 基内容的推荐 +基于内容的推荐也有一个启动问题,需要足够多的打分作为基础。 +和协同过滤有相似的问题,受物品特征的影响非常强。(例如 打的标签或特征只有 演员,导演这些,那只能根据这些特征进行推荐) + + +## 基于效用函数推荐 Utility-Based +使用效用函数 和 基于知识的推荐,之所以可以较好的避免稀疏和数据欺诈问题。因为他们不需要使用累计的统计学信息。 +一个好处是他可以混合使用许多不同的特征,例如推送计划,用户使用已经拥有该物品等。而不只是产品本身的特征。另外,这些非物品特性可能会有一些奇怪的效用。 + +基于效用的的推荐的可扩展性还体现在可以度量失败的程度。 + +## 基于知识的推荐 Knowledge Based +缺点:知识的获取。 +有如下三种类型的知识需要获取: +* Catelog Knowledge: 需要推荐的物品属于什么类别。 +* Functional Knowledge: 能够将用户的需求和物品的特征联系起来的功能函数。 +* User Knowledge: 用户的特征,来自于人口统计学特征,或者其他的特征如爱好等。 + +优点: +提供临时的探索,需要的用户数少于效用函数。 +不存在起始时,推荐效果差的问题。 + +推荐上限由知识领域决定 + + + + +# 混合推荐系统 +使用多种推荐技术或者其他技术来克服缺点,提高性能。 +## Weighted +例子: +* P-Tagngo System 线性加权组合 +* Pazzani’s 投票方式 + +优点:所有系统的能力都能被整合。 +缺点:有一个假设,即所有模型的结果大体上一致,但实际不是。 + +## Siwthcing +根据惩罚项,挑选推荐算法 + +## Mixed +将多种技术的结果混合发送,假设技术A覆盖了一小部分,技术B也覆盖了一小部分,最终的并集就大了。 +避免 new item 启动问题,因为混合的技术,能避免new item 问题 + +## Feature Combination +将协同过滤得到的信息作为特征 加入基于内容的技术中。 + +## 分层策略 +第一层,比较粗糙的,第二层,比较精细的 + +## 特征扩充 +使用前一种推荐算法的输出结果作为后一种推荐算法的输入特征。 + + +## Meta-level +前一种推荐模型作为后一种模型的输入。 + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/manual/\345\237\272\347\241\200\347\237\245\350\257\206\345\210\206\344\272\253/\346\216\250\350\215\220\347\263\273\347\273\237\345\270\270\347\224\250\346\225\260\346\215\256\351\233\206\344\273\213\347\273\215.md" "b/manual/\345\237\272\347\241\200\347\237\245\350\257\206\345\210\206\344\272\253/\346\216\250\350\215\220\347\263\273\347\273\237\345\270\270\347\224\250\346\225\260\346\215\256\351\233\206\344\273\213\347\273\215.md" new file mode 100644 index 0000000000000000000000000000000000000000..71812fb817c9ec84a8d9e76d0fdb88ad0654e912 --- /dev/null +++ "b/manual/\345\237\272\347\241\200\347\237\245\350\257\206\345\210\206\344\272\253/\346\216\250\350\215\220\347\263\273\347\273\237\345\270\270\347\224\250\346\225\260\346\215\256\351\233\206\344\273\213\347\273\215.md" @@ -0,0 +1,134 @@ +# 综述 +兵马未动,粮草先行 +推荐系统,无论算法如何优秀,都需要数据集来验证。 +本文整理了常用的一些开源数据集。 +每个数据集后面都附了相关链接。 + + +# MovieLens +[MovieLens](https://grouplens.org/datasets/movielens/) 数据集由GroupLens研究组在 University of Minnesota — 明尼苏达大学中组织的。 MovieLens是电影评分的集合,有各种大小。 数据集命名为1M,10M和20M,是因为它们包含1百万,1千万和2千万个评分。 最大的数据集使用约14万用户的数据,并覆盖27,000部电影。 除了评分之外,MovieLens数据还包含类似“Western”的流派信息和用户应用的标签,如“over the top”和“Arnold Schwarzenegger”。 这些流派标记和标签在构建内容向量方面是有用的。内容向量对项目的信息进行编码,例如颜色,形状,流派或真正的任何其他属性 - 可以是用于基于内容的推荐算法的任何形式。 + +MovieLens的数据在过去20年中已经由大学的学生以及互联网上的人们进行收集了。 MovieLens有一个网站,您可以注册,贡献自己的评分,并接收由GroupLens组实施的几个推荐者算法这里之一的推荐内容。 + + +## 新算法研究建议使用的数据集 +### MovieLens 20M Dataset +稳定的基准数据集。138,000个用户对27,000部电影作出的2千万个评分,和打上的465,000个标签。 +包括通过1,100个标签打出的1200万个相关得分。 + +文件名 [ml-20m.zip](https://grouplens.org/datasets/movielens/20m/) + +## 教学和开发建议使用的数据集 +### MovieLens Latest Datasets +不断更新的最新数据集,但不会根据此数据集给出任何研究说明和报告。 +小集合: 700个用户对 9,000部电影作出的100,000 个评分和打上的1,300个标签。最近一次更新时间为 10/2016。 +文件名 [ml-latest-small.zip](http://files.grouplens.org/datasets/movielens/ml-latest-small.zip) + +全集: 270,000个用户对45,000部电影作出的26,000,000个评分和750,000个标签。包括和1,100个标签相关的1200万标签基因数据。最近一次更新时间为8/2017。 + +文件名 [ml-latest.zip](http://files.grouplens.org/datasets/movielens/ml-latest.zip) + +## 旧数据集 +### MovieLens 100K Dataset +稳定的基准数据集,1000个用户对1700部电影作出的100,000个评分。发布于4/1998。 +文件名 [ml-100k.zip](http://files.grouplens.org/datasets/movielens/ml-1m.zip) + +### MovieLens 10M Dataset +稳定的基准数据集,72,000 个用户对10,000部电影作出的1000万个评分和打上的100,000的标签。发布于1/2009。 +文件名 [ml-10m.zip](http://files.grouplens.org/datasets/movielens/ml-10m.zip) + +### MovieLens Tag Genome Dataset +基于1,100个标签的标签池,为10,000部电影打上的1100万个标签基因数据。发布于3/2014。 +也可以考虑使用MovieLens 20M 或 latest datasets +文件名 [tag-genome.zip](http://files.grouplens.org/datasets/tag-genome/tag-genome.zip) + +# Jester +当你让一批学者写一个笑话评分系统,你会得到什么?[Jester](http://eigentaste.berkeley.edu/dataset/)! Jester是由Ken Goldberg和他在加州大学伯克利分校的小组发展的,包含150个笑话大约600万的评分。 像MovieLens一样,Jester评分由互联网上的用户提供。 你可以在这里贡献你自己的评分。 + +与我们使用的其他数据集相比,Jester有两个方面是特殊的:它使用-10到10的连续等级,并且在量级上具有最高的评分密度。评分密度的意思是大概“平均每个用户评价多少个项目”?如果每个用户都对每个项目进行了评分,那么评级密度将为100%。 如果没有人评价过任何东西,那将是0%。 Jester的密度约为30%,这意味着一个用户平均对30%的笑话进行了评分。 作为比较,MovieLens 1M的密度为4.6%(其他数据集的密度低于1%)。当然不是那么简单。 不是每个用户都评价相同数量的项目。 相反,一些用户对许多项目进行评分,大多数用户只评价一些。 这可以在以下直方图中看到 +![tu]() + +Jester 一共包含三个数据集 +## Dataset1 +73,421个用户 对 100条笑话的超过410万条的连续等级打分(从-10 到 10)。在4/1999 - 5/2003 时间段内收集。 +### +文件名 [jester_dataset_1_1.zip](http://eigentaste.berkeley.edu/dataset/jester_dataset_1_1.zip) +数据来自24,983位用户的打分结果,这些用户评价了超过36条笑话。 + + +文件名 [jester_dataset_1_2.zip](http://eigentaste.berkeley.edu/dataset/jester_dataset_1_2.zip) +数据来自23,500位用户的打分结果,这些用户评价了超过36条笑话。 + +文件名 [jester_dataset_1_3.zip](http://eigentaste.berkeley.edu/dataset/jester_dataset_1_3.zip) +数据来自24,938位用户的打分结果,这些用户评价的笑话条数在15-35之间。 + + +## 笑话文本 +[jester_dataset_1_joke_texts.zip](http://eigentaste.berkeley.edu/dataset/jester_dataset_1_joke_texts.zip) + +## Dataset2 +59,132个用户 对 150条笑话的超过170万条的连续等级打分(从-10 到 10)。在11/2006 - 5/2009 时间段内收集。 +文件名 [jester_dataset_2.zip](http://eigentaste.berkeley.edu/dataset/jester_dataset_2.zip) + +## Dataset2+ +Dataset2 的一个更新, +79,681个用户的500,000条新打分。在11/2006 - 11/2012 时间段内收集。 +文件名 [jester_dataset_2+.zip](http://eigentaste.berkeley.edu/dataset/jester_dataset_3.zip) + +# Book-Crossings +[Book-Crossings](http://www2.informatik.uni-freiburg.de/~cziegler/BX/)是由Cai-Nicolas Ziegler根据bookcrossing.com的数据编写的图书评分数据集。 它包含278,858个用户的271,379本书的1,149,780个评分。评分范围从1到10,还包括隐性评分。 + +Book-Crossings数据集是最稀疏的数据集之一,也是具有明确评分的最稀疏的数据集。 + + + +# Last.fm +[Last.fm](https://grouplens.org/datasets/hetrec-2011/)提供音乐推荐的数据集。 对于数据集中的每个用户,包含他们最受欢迎的艺术家的列表以及播放次数。它还包括可用于构建内容向量的用户应用标签。 + +Last.fm的数据聚合aggregated后,有些信息(关于特定的歌曲,或某人正在听音乐的时间)会丢失。 然而,它是这些样本中唯一具有用户的社交网络的信息的数据集。 +此数据在 [HetRec2011](2nd International Workshop on Information Heterogeneity and Fusion in Recommender Systems (HetRec 2011)) 上发布。有1892名用户的听听歌记录,涉及92,800名艺术家。 + + +# Wikipedia +维基百科是其用户撰写的协作百科全书。维基百科除了为最后一刻拼写学期论文的学生提供信息外,还为每个用户提供每篇文章的每个编辑的数据转储。该数据集已广泛用于社交网络分析,图形和数据库实现测试,以及维基百科用户行为研究。还可以将用户采取的编辑操作,作为隐性评分,表明他们因某些原因关心该页面,并允许我们使用数据集来提出推荐。 + +由于维基百科不是为了提供推荐者数据集而设计的,所以它确实存在一些挑战。其中一个是从页面中提取有意义的内容向量,但是幸运的是,大多数页面被很好地分类,为每个页面提供了一种类型。构建维基百科的内容向量的挑战与现实世界数据集的推荐面临的挑战相似。所以我们认为这是建立一些这样做的专门知识的好机会。 + +[链接](https://en.wikipedia.org/wiki/Wikipedia:Database_download#English-language_Wikipedia) + + +# OpenStreetMap +OpenStreetMap是一个协作的地图项目,类似于维基百科。 像维基百科一样,OpenStreetMap的数据由用户提供,整个编辑历史的完整转储也是可用的。 数据集中的对象包括道路,建筑物,兴趣点,以及您可能在地图上找到的任何其他内容。 这些对象由键值对标识,因此可以从中创建一个基本的内容向量。 然而,键值对是自由的,所以选择正确的设置是一个挑战。 一些键值对由编辑软件(例如“highway =住宅”)进行标准化和相同的使用,但通常它们可以是用户决定进入的任何内容 - 例如“FixMe !! = Exact location unknown”。 + +[链接](https://planet.openstreetmap.org/planet/full-history/) + + +# Douban Dataset +匿名的[豆瓣数据集](https://www.cse.cuhk.edu.hk/irwin.king.new/pub/data/douban),包含129,490个用户对58,541部电影的16,830,839个打分。 +还包括1,692,952个社交关系。 + +# FilmTrust +[FilmTrust](https://www.librec.net/datasets/filmtrust.zip)为2011年从网站FilmTrust 完整抓取下来的数据集,包含35497条数据。 + +# Epinions +[Epinions](http://www.trustlet.org/datasets/)适用于社会化推荐任务,规模较大,包含用户对电影的评分信息,同时包含用户间的信任社交信息,值得注意的是,该数据集同时还包括不信任关系信息。 + +# Yelp +[Yelp](https://www.yelp.com/dataset/challenge)几乎适用于所有推荐任务,数据规模大,需要手动提取自己需要的信息,包含评价评分信息,用户信息(注册信息、粉丝数量、朋友信息),商品信息(属性信息、位置信息、图像信息),建议信息等。 + +# 总结 +附上两张对各个数据对比的图,分别来自ref1 和 ref2(问我为什么不整理一个全的,原因很简单,懒啊) + + +# REF +[The Nine Must-Have Datasets for Investigating Recommender Systems](https://gab41.lab41.org/the-nine-must-have-datasets-for-investigating-recommender-systems-ce9421bf981c) +[librec](https://www.librec.net/datasets.html) +[推荐系统干货总结](https://www.jianshu.com/p/3ad6e87f3eec) +[推荐领域数据集](https://www.cnblogs.com/startover/p/3261476.html) + + +* * * + +* **作者:[喵十八](https://github.com/Yao544303) +* [GitHub地址](https://github.com/apachecn/RecommenderSystems): +* **版权声明:欢迎转载学习 => 请标注信息来源于 [ApacheCN](http://www.apachecn.org/)** \ No newline at end of file