什么是最适合创建推荐的 ML 算法

人工智能 机器学习 推荐系统
2021-10-20 17:38:34

我正在尝试找到最佳算法来根据所有其他用户的兴趣为用户创建推荐列表。

假设我有一个样本列表:

$samples = [
    ['hot dog', 'big mac', 'whopper'],
    ['hot dog', 'big mac'],
    ['hot dog', 'whopper'],
    ['big mac', 'dave single'],
    ['whopper', 'mcnuggets', 'mcchicken'],
    ['mcchicken', 'original chicken sandwich'],
    ['mcchicken', 'mcrib']
];

我们会说样本列表中的每个数组都是唯一用户的食物偏好。

假设现在我有一个具有这种食物偏好的用户:

['hot dog', 'mcchicken']

我希望能够向该用户推荐其他用户偏好的其他食物。

所以用最简单的话来说,它应该返回:

['whopper', 'big mac', 'original chicken sandwich', 'mcrib', 'mcnuggets']

显然,我还将介绍其他变量,例如每个用户如何评价他们偏好列表中的每个项目,以及需要拥有该项目才能使用其他食品作为推荐的用户百分比。

但我想找到最好的算法来开始研究它。

起初我认为Apriori这可能是我最好的猜测,但是一旦我介绍了多个项目,我就没有运气了。

1个回答

您可以使用协作过滤,特别是它的memory based approach. 您在问题中讨论的问题可能应该使用User-Item 协同过滤来解决,该过滤将计算用户之间的相似度,然后推荐该项目。可以使用余弦相似度或皮尔逊相似度公式计算相似度。

这种方法最好的一点是这里不需要训练,但是如果你希望拥有非常大的数据,这种方法的性能会降低。