我想存储大量用户行为的数据点,比如喜欢、标签等(我计划用于电子商务和文档管理)。
利用这些数据点,我希望支持以下功能:
- “喜欢X的用户也喜欢Y、Z”的推荐
- “获取更多类似于X、Y的东西”的聚类功能。
所谓生产就绪、实时,我指的是我可以同时输入数据点和进行查询,服务器会自动处理回答查询和更新分数。
我在网上搜索了一些解决方案,结果发现主要有以下两种:
- 主要面向学术界的数据挖掘库,这些库主要用于大批量操作,不适合处理大量实时查询
- Hadoop/Mahout,这是生产就绪的,支持实时更新和查询,但学习曲线陡峭且管理困难。
回答:
对于推荐系统,Mahout有一个非分布式的推荐实现,不使用Hadoop。实际上,这是唯一实时的部分;基于Hadoop的部分不是实时的。
我认为它的学习曲线并不大;请参见这里和这里,有相当完整的说明文档。
《Mahout in Action》的第2-5章也很好地涵盖了这一点。