我目前正致力于推荐系统,特别是音频文件。但我是这个主题的初学者。我正在尝试首先使用mysql设计数据库,但我无法决定如何去做。我基本上是一个用户创建的系统然后搜索音乐,系统推荐他们喜欢的音乐。
答案 0 :(得分:4)
阅读"Programming Collective Intelligence"。他们在第2章“提出建议”中提出了许多精确的算法建议。
答案 1 :(得分:4)
任何关系数据库都应该适合存储原始数据,如歌曲列表,用户列表,用户的歌曲偏好..
我认为您会发现关系数据库(和SQL)对于存储推荐器将构建的各种数据结构并不是那么好。您的推荐引擎可能会创建实际上不需要在表中的数据,并且操纵它来存储在关系数据库中可能只是浪费了工作。
只要知道自己在做什么,如果感觉不对,就不要把时间花在SQL数据库上。也许考虑使用像MongoDB这样的面向文档的数据库。
我最近编写的推荐人实际上是一个Java服务器进程,它从MySQL读取原始数据,在内存中完成所有工作,并通过HTTP API向我的应用程序提供推荐数据。我甚至不打算永久存储推荐数据,因为它可以重新生成。
答案 2 :(得分:3)
嗯,这是一个模糊的问题和一半,但我会尽力回答: