使用隐式评级的推荐系统的最佳模型是什么?

数据挖掘 机器学习 机器学习模型 推荐系统 python-3.x 矩阵分解
2021-10-02 21:09:38

我有一个看起来像这样的相似矩阵:

在此处输入图像描述

我有一堆带有 1 和 0 的用户向量,其中 1 表示有人点击了电子邮件(作为活动的一部分),而 0 表示他们没有点击。隐式评级,因为我已经了解它们。

就方法而言,在研究了不同的选项之后,似乎以 a 开头的最佳算法是矩阵分解方法。我的问题是:作为此类问题的基线模型,最好的算法是什么?关于潜在陷阱的任何建议。任何帮助,将不胜感激。谢谢!

2个回答

如果您在使用我也强烈推荐的基线模型,那么您提到的矩阵分解 (MF) 方法(也称为协作模型)是最基本的方法,并且超级快速且易于实现。然后你可以探索其他的,比如基于内容的模型或混合推荐器,甚至是最近基于 Media 提到的自注意力机制的模型。这样做会给你在 A/B 测试期间比较的东西,如果没有任何东西已经到位的话。请注意,如果您的矩阵变得非常大(好吧,如果您的资源有限!),传统的 MF 可能会遇到内存/性能问题,并且对于该深度矩阵分解是一个更好的等效选择。

大约一年前,我对这三个起始推荐引擎进行了总结,请参阅这个答案我从那里的参考资料中收集了代码剪辑器/笔记本,用于实际实现这几个基线,如果需要的话可以共享。

您的案例有不同的方法,但我相信您可以采用基于自我注意机制的方法。有许多研究表明,它们比 SVD 可以实现的潜在结果更好。例如,您可以看到SAIN的论文,其代码也是开源的。在论文中,您可以看到他们已经证明他们的方法比 SVD 和通常的自我注意机制具有更好的性能。顺便说一句,它基于自我关注。

如果我想总结该方法,它使用产品和项目的内容并找到单词之间的交互,并输出用户可能分配给产品的分数。它有很好的性能。

由于您拥有邮件的内容,这种方法可能会对您有所帮助。