接下来会研究一下音乐推荐系统,需要数据来进行算法及工程代码的演示,遂汇总一下网上开源的音乐数据集。

Million Song Dataset

说到音乐数据集第一位肯定是MSD,它包含了100万首歌曲的信息,总量有280GB大小。由于数据量的确较大,它使用了h5的文件压缩格式,并提供了一些code用于读这种文件。

每首歌对应一个文件,字段包括歌曲的方方面面,如 artist_mbidartist_nametitletempo 等等,所有字段在这里列出
路径是奇怪的,Q&A中解释说,实在无法把所有文件都放到同一个目录下,目录的组织方式为:
某首歌曲所在位置为它的The Echo Nest track IDs的第三、第四、第五位形成的层级目录,比如 MillionSong/data/A/D/H/TRADHRX12903CD3866.h5

此外,在MSD的基础上,社区还贡献了不少补充数据集,方便对MSD做各方面的研究。在首页可以很容易找到它们。

Lastfm数据集

last.fm是一家英国的网络电台和音乐社区,其向发开者提供了丰富的API,于是有很多机构或个人通过调用这些API来生成一些数据集。

1K users (user full listening history)

《推荐系统实战》2.1节介绍到了此数据集,作为有上下文信息的隐性反馈数据集的代表。
它有两个文件,听歌记录与用户信息。
前者为近1000位听众至2009年5月5日为止的所有音乐播放记录与播放时间,以及音乐的title、artist name、musicbrain id等信息。
后者则记录了所有听众的性别、年龄、国家、注册时间的信息。
其中听歌记录的统计数字如下:

  • Total Lines: 19,150,868
  • Unique Users: 992
  • Artists with MBID: 107,528
  • Artists without MBDID: 69,420

360K users (user top artists)

与1K数据集一起出现的还有360K users数据集。
包含user-artist关系信息以及用户信息。
用户信息与1K相同,不过数据量来到了360K,user-artist关系文件的一行为某user听某乐队的次数。
user-artist文件的统计数据如下:

  • Total Lines: 17,559,530
  • Unique Users: 359,347
  • Artists with MBID: 186,642
  • Artists without MBID: 107,373

HetRec 2011

这是2011年HetRec会议发布的从Last.fm获取的数据集
与上两例不同的是它包含有社会好友关系,标签信息。其中文件数目比较多,但各文件列很较少,其中是很明显简单的关联关系,不再赘述。
统计数据如下:

  • 1892 users
  • 17632 artists
  • 12717 好友关系
  • 92834 user-listened artist relations
  • 11946 tags
  • 186479 tag assignments (tas), i.e. tuples [user, tag, artist]

MSD’s Lastfm

在MSD的首页可以看到此来自Lastfm的数据集(又一个,真的很容易搞乱。),它作为MSD的补充信息,可与其id直接关联。
数据量较大,是下面的样子:

  • 943,347 matched tracks MSD <-> Last.fm
  • 505,216 tracks with at least one tag
  • 584,897 tracks with at least one similar track
  • 522,366 unique tags
  • 8,598,630 (track - tag) pairs
  • 56,506,688 (track - similar track) pairs

与MSD一样的奇怪的目录结构,每个歌曲对应一个json文件,长这个样子:
img

文件名是 TRAAAAW128F429D538.json 这样的编码可与MSD的某首歌关联起来,图中提供了基本的歌曲、作者信息、标签。
比较独特的是还有Lastfm直接提供的与此歌曲相似的歌曲列表以及相似度值。

其他数据集

  • fma: music audio大型数据集,917 GiB and 343 days of Creative Commons-licensed audio from 106,574 tracks from 16,341 artists and 14,854 albums, arranged in a hierarchical taxonomy of 161 genres。
  • Pitchfork reviews: Pitchfork是一家在线音乐杂志,有人爬取了自1999年以来的18000份音乐评论文章放到Kaggle上用于分析和学习。 格式为sqlite文件,主要提供信息为文章的id、标题、artist、文章链接、评分、作者、发布时间等。
  • 50 Years of Pop Music Lyrics: 1964到2015Billboard每年的Year-End Hot100歌曲的歌词。
  • MetroLyrics: 从MetroLyrics爬取的38万首歌词,csv格式,字段有song title,artist,genre,lyric。
  • kkbox: WSDM 2018比赛使用的数据集,kkbox作为一家亚洲音乐服务商,提供了很多亚洲歌曲信息,这点是以上其他所不具有的。
  • Spotify Song Attributes: 作者调用spotify的api获取了2017首歌的数据并尝试获取训练一个模型来预测自己是否喜欢一首歌。

API

根据一些官方或民间的API,可以根据自己的需求生成自定义的数据集。