我正在为我的应用程序寻找推荐系统,该系统根据用户购买历史推荐专辑。我发现了一些系统/算法,例如协同过滤(基于用户/项目/模型/,混合)。哪一个最适合我的应用?或者你能给我一些更好的解决方案吗?
2 回答
没有一刀切的。推荐是一个持续的过程,需要对每种方法的理解、实验和评估,不仅在技术层面上,而且在业务层面上也是如此。该系统是否产生了足够的收入来证明其成本是合理的?或者您是否在无益地运行服务器而亏本?
系统最终会推荐比应有的利润低的东西吗?也就是说,它是否推荐采购或运输比其他东西更昂贵的东西?
此外,过去的购买是糟糕的数据。他们只告诉你你卖给顾客什么,而不是顾客一般买了什么,他们喜欢什么,为什么喜欢等等。他们不会告诉你他们没有买什么。或者他们在购买之前从您自己的目录中拒绝了什么。这就是公司从市场研究公司购买数据的原因。
我建议阅读使用 Azure 机器学习服务构建推荐系统,不是因为它是 Azure,而是因为它解释了正在进行的过程中的步骤、各种算法以及它们的优点。那里至少有 12 种不同的算法。
这篇文章解释了这个过程中的 5 个持续和重复的任务:
- 数据准备 - 为每个推荐算法准备和加载数据
- 建模 - 使用各种经典和深度学习推荐算法构建模型,例如交替最小二乘法 (ALS) 或极限深度分解机 (xDeepFM)
- 评估 - 使用离线指标评估算法
- 模型选择和优化 - 调整和优化推荐模型的超参数
- 操作化 - 在生产环境中操作化模型
即使您拥有完美的数据,2-4 也会一遍又一遍地重复,因为您会看到什么对您的业务有效或无效,无论它是否提高了销售额(和利润)。
三大云提供商提供各种创建推荐服务的方式,当然是按月收费。云服务的好处至少是您可以在每月账单中预先看到成本。
我对 Python 库SurPRISE有很好的经验。您可以在 docker 容器中使用它来创建一个 restful 服务并从您的 ASP.NET Web 应用程序中使用它。