原文地址php
ps:对原文有所删减html
在这篇博客中,做者介绍了九个数据集,其中一些是推荐系统中经常使用到的标准数据集,也有一些是非传统意义上的数据集(non-traditional datasets),做者相信,这些非传统数据集更接近真实场景的数据。node
首先,先说明下推荐系统数据中的几个类别:ios
Item: 即咱们要推荐的东西,如产品、电影、网页或者一条信息片断git
User:对item进行评分以及接受推荐系统推荐的项目的人github
Rating:用户对item的偏好的表达。评分能够是二分类的(如喜欢和不喜欢),也能够是整数(如1到5星)或连续(某个间隔的任何值)。 另外,还有一些隐反馈,只记录一个用户是否与一个项目进行了交互。web
MovieLens数据集由GroupLens研究组在 University of Minnesota — 明尼苏达大学(与咱们使用数据集无关)中组织的。 MovieLens是电影评分的集合,有各类大小。 数据集命名为1M,10M和20M,是由于它们包含1,10和20万个评分。 最大的数据集使用约14万用户的数据,并覆盖27,000部电影。 除了评分以外,MovieLens数据还包含相似“Western”的流派信息和用户应用的标签,如“over the top”和“Arnold Schwarzenegger”。 这些流派标记和标签在构建内容向量方面是有用的。内容向量对项目的信息进行编码,例如颜色,形状,流派或真正的任何其余属性 - 能够是用于基于内容的推荐算法的任何形式。算法
MovieLens的数据在过去20年中已经由大学的学生以及互联网上的人们进行收集了。 MovieLens有一个网站,您能够注册,贡献本身的评分,并接收由GroupLens组实施的几个推荐者算法这里之一的推荐内容。数据库
数据获取地址网络
当你让一批学者写一个笑话评分系统,你会获得什么?Jester! Jester是由Ken Goldberg和他在加州大学伯克利分校的小组发展的,包含150个笑话大约600万的评分。 像MovieLens同样,Jester评分由互联网上的用户提供。 你能够在这里贡献你本身的评分。
与咱们使用的其余数据集相比,Jester有两个方面是特殊的:它使用-10到10的连续等级,而且在量级上具备最高的评分密度。评分密度的意思是大概“平均每一个用户评价多少个项目”?若是每一个用户都对每一个项目进行了评分,那么评级密度将为100%。 若是没有人评价过任何东西,那将是0%。 Jester的密度约为30%,这意味着一个用户平均对30%的笑话进行了评分。 做为比较,MovieLens 1M的密度为4.6%(其余数据集的密度低于1%)。固然不是那么简单。 不是每一个用户都评价相同数量的项目。 相反,一些用户对许多项目进行评分,大多数用户只评价一些。 这能够在如下直方图中看到:
Book-Crossings是由Cai-Nicolas Ziegler根据http://bookcrossing.com的数据编写的图书评分数据集。 它包含90000个用户的270000本书的110万个评分。评分范围从1到10,还包括隐性评分。
Book-Crossings数据集是最不密集的数据集之一,也是具备明确评分的最不密集的数据集。
Last.fm提供音乐推荐的数据集。 对于数据集中的每一个用户,包含他们最受欢迎的艺术家的列表以及播放次数。它还包括可用于构建内容向量的用户应用标签。
Last.fm的数据聚合aggregated)后,有些信息(关于特定的歌曲,或某人正在听音乐的时间)会丢失。 然而,它是这些样本中惟一具备用户的社交网络的信息的数据集。
维基百科是其用户撰写的协做百科全书。维基百科除了为最后一刻拼写学期论文的学生提供信息外,还为每一个用户提供每篇文章的每一个编辑的数据转储。该数据集已普遍用于社交网络分析,图形和数据库实现测试,以及维基百科用户行为研究。还能够将用户采起的编辑操做,做为隐性评分,代表他们因某些缘由关心该页面,并容许咱们使用数据集来提出推荐。
因为维基百科不是为了提供推荐者数据集而设计的,因此它确实存在一些挑战。其中一个是从页面中提取有意义的内容向量,可是幸运的是,大多数页面被很好地分类,为每一个页面提供了一种类型。构建维基百科的内容向量的挑战与现实世界数据集的推荐面临的挑战类似。因此咱们认为这是创建一些这样作的专门知识的好机会。
OpenStreetMap是一个协做的地图项目,相似于维基百科。 像维基百科同样,OpenStreetMap的数据由用户提供,整个编辑历史的完整转储也是可用的。 数据集中的对象包括道路,建筑物,兴趣点,以及您可能在地图上找到的任何其余内容。 这些对象由键值对标识,所以能够从中建立一个基本的内容向量。 然而,键值对是自由的,因此选择正确的设置是一个挑战。 一些键值对由编辑软件(例如“highway =住宅”)进行标准化和相同的使用,但一般它们能够是用户决定进入的任何内容 - 例如“FixMe !! = Exact location unknown”。
咱们收集的最终数据集,也许最不传统的,基于Git存储库中包含的Python代码。 咱们写了几个脚本(在Hermes GitHub repo中 在此获取)从互联网上下载存储库,提取其中的信息,并将其加载到Spark中。 从那里咱们能够从用户编辑中构建一组隐含的评分。
咱们目前经过查看全部导入的库并调用函数从每一个Python文件中提取内容向量。 未来咱们计划将库和函数自己做为建议的项目。
各类数据集在其关键指标方面都有所不一样。 下表列出了每一个数据集的这些度量标准的摘要:
咱们选择的数据集涵盖普遍的密度、用户和项目数量以及评分类型。 此外,它们提供了关于项目和用户的各类信息,从而容许咱们探索从数据集中提取内容向量的不一样方法。
一、 LibRec 开源工具提供的数据集,地址
二、Datasets For recommender system 博客中提供的数据集
Amazon Product Data:
Mobile Recommendation:
Movies Recommendation:
Joke Recommendation:
Music Recommendation:
Books Recommendation:
Food Recommendation:
Merchandise Recommendation:
Healthcare Recommendation:
Dating Recommendation:
Scholarly Paper Recommendation:
三、雅虎数据集
Webscope | Yahoo Labs四、微软数据集
https://msropendata.com/datasets五、Yongfeng Zhang 数据集Microsoft Research Open Data五、Yongfeng Zhang 数据集
Dataset | Yongfeng Zhang