在音乐 Web 应用程序中创建用户配置文件的方法

数据挖掘 特征构造 描述性统计 聚合
2021-09-30 12:26:11

我正在研究一个用例,但我不确定最好的方法:为了分析基于网络的音乐应用程序的用户行为,我们保留了自 2009 年以来播放的所有歌曲。我们存储此信息在平面文件中,每个文件都包含一天播放的歌曲。每个文件包含 50M 行,我们有 19M 用户。我们的整个歌曲目录包含 3500 万首曲目。

这些文件的格式如下:

id-user | country | id-artist | id-track

问题:我想用他或她播放过的歌曲来代表每个用户;此配置文件将由生产站点使用。有没有人建议处理整个链条的最佳方式是什么?

2个回答

第一个问题是:你想在用户资料中看到什么?

  • 前 10 名曲目,用户前 10 名艺术家?
  • 用户平均一天(可能是上个月)收听多少曲目/艺术家?

可能您想获得一些与整个用户群相关的一般信息:

  • 哪个艺术家/曲目在来自不同国家/地区的用户中最受欢迎(其中前 N 个)?

第二:您存储并希望汇总数百万条记录。这不是文本文件交易。做一个数据库。创建一个表id-user | country | id-artist | id-track使用#1 中的一些聚合创建另一个表,定期更新并在前端显示。

您可以下载免费的啤酒软件 Qlikview,它允许您通过类似于 Excel 的图形界面进行交互式数据发现,但还具有用于数据加载和转换的强大脚本语言。巨大的平面文件完全没有问题。它是一种内存技术,因此您需要一台具有大量 RAM 的计算机。虽然优点是它可以在星型模式中加载数十亿条记录,但仍然允许您进行临时发现(秒或亚秒时间),而无需编写和重写 SQL。我总是用它来筛选数据并对其进行描述性统计+视觉探索。从数据科学的角度来看,这是一个非常先进的基于列的数据引擎,集成了强大的描述性统计函数字典和交互式图形 UI。您会惊讶于您的数据可能会发生什么。