python 个性化推荐系统_如何在 Python 中使用 LightFM 构建可扩展的个性化推荐系统?...

在我国,电商非常发达。今年双 11 的成交额仅仅过了 12 小时就达到了惊人的 1491.6 亿元!电商在我国的火爆程度由此可见一斑。不知你们有没有发现,在网店浏览商品时,它们好像能读懂你的内心,推荐的几乎都是你想找的宝贝?其实,这背后的功臣就是人工智能的应用之一——推荐系统。今天,我们分享了一篇在 Python 中使用 LightFM 构建可扩展的电子商务推荐系统的文章,以飨读者。

在过去的几年里,网购的形式发生了翻天覆地的变化。像 Amazon 这样的网店,以更为个性化的方式来接待客户。这些网店根据客户的网购活动(如查看商品、往购物车里添加商品以及最终下单的商品等)来了解客户对某些商品的兴趣。例如,你在 Amazon 上搜索某件商品,然后点击其中一些搜索结果。当你下一次再次登陆 Amazon 时,会看到页面上有一块特定部分:“与您浏览过的商品相关的推荐”,里面罗列的是根据你上次搜索内容为你推荐的类似商品。但故事并未就此结束,随着你与网店进行更多的交互,你将会得到更多的个性化建议,包括 “购买此商品的顾客也同时购买……”,并向你显示经常一起购买的商品列表。另外,一些商店还会发送促销电邮,提供针对客户更有可能购买的商品清单。

推荐系统是机器学习最常用的应用之一。由于本文的目标是专注于如何使用 LightFM 包来构建推荐系统,并提供明确的指标来衡量模型性能,因此,我将只会简单提一下不同类型的推荐系统。要了解有关推荐系统的更多详情,我推荐阅读 Chhavi Aluja 撰写的这篇文章《Recommendation Systems made simple!》。

推荐系统有三种类型如下:Content-Based(基于内容的推荐);

Collaborative Filtering(协同过滤,CF)(Item-Based、User-Based、Model-Based)

混合方法(整合基于内容的推荐和协同过滤)

我最初的目标是构建一个混合模型,因为它可以将基于内容的推荐整合到协同过滤中,并能够通过纯协同过滤推荐系统来解决冷启动问题。然而,有着公开可用的良好数据集,且同时具有商品或用户的元数据和评级交互,并不是很多。因此,我决定先研究协作过滤模型并理解推荐系统的不同方面,在下一篇文章中,我将会构建一个混合模型。所谓冷启动问题,就是在对用户一无所知的情况下,如何进行最有效的推荐。

实现方法

为什么选择 LightFM?

我在研究推荐系统时,我无意碰到了许多相关的重大项目,然而,这些项目都缺少一个用于评估模型性能的明确指标。我认为,如果你无法通过提供的明确指标来评估模型的性能,那么你可能很难让人相信这个推荐系统模型运行良好。因此,我选择 LightFM 的原因是,它提供了明确的指标,可以用于评估训练模型的性能的 AUC 得分、Precision@K 等。如果想构建更好的模型并实现更高的正确率(accuracy),这可能非常有用。

根据用例或我们要解决的问题类型,究竟是选择 Precision@K 还是 AUC 分数,这可能是个棘手的问题。在这种情况下,我们将使用 AUC 分数,因为它能够测量综合排名质量,并能够被解释为随机选择的正向条目排名高于随机的负向条目的概率。

根据 LightFM 的文档可知,“LightFM 是针对隐式和显式反馈的许多流行的推荐算法的 Python 实现,包括 BPR 和 WARP 排名损失的有效实现。它具备易用、快速(通过多线程模型估计)的特点,能够产生高质量的结果。”

数据

对于这个项目,我们将使用Book-Crossing 数据集 来实现基于矩阵分解(Matrix

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值