我有这个应用程序,我有用户喜欢的音乐类型,每当用户收听他评价的歌曲。我想向他们展示用户可能喜欢的最相关的歌曲。我如何携带在数据库架构上?我应该从用户获取所有数据以及如何为特定用户获取最相关的歌曲? 清楚的解释表示赞赏。
答案 0 :(得分:3)
这是一个非常活跃的研究领域,称为recommender systems。如果你想认真对待它,数据库设计只是第一步;你需要考虑一个合适的算法等。你的问题是关于数据库模式的,所以我推荐以下读物:
答案 1 :(得分:1)
您是否仅根据其评分推荐用户歌曲?在这种情况下,您可能需要数据库中的每个用户至少评定几首歌曲。如果用户尚未对任何歌曲进行评分(也许他最近注册了您的应用程序),您将无法向他推荐任何歌曲。这个问题被称为"冷启动问题"。
提出问题,您可以按流派,艺术家,专辑,年份对歌曲进行分组,也可以将这些参数组合起来。因此,您的Songs表将包含这些值以及歌曲的名称,并且可能是唯一的ID。用户表可以与用户ID和姓名一样小,也可以包括他的年龄,位置,以便您可以根据具有相似年龄和位置的其他用户的喜好推荐他的歌曲。
还会有一个用户 - 歌曲地图表,其中包含每个用户提供不同歌曲(一对多映射)的评级。该表可用于查找用户最喜欢的歌曲