python 中的推荐引擎 - 合并自定义相似性指标

Recommender engine in python - incorporate custom similarity metrics

我目前正在 python 中构建推荐引擎,我遇到了以下问题。

我想合并协同过滤方法,它的用户-用户变体。回顾一下,它的想法是我们有关于不同用户和他们喜欢哪些项目的信息(如果适用——这些用户分配给项目的评级)。当我们有喜欢一些东西的新用户时,我们只是找到喜欢相同项目的用户,并向这个新用户推荐与新用户相似的用户喜欢的项目。

但我想对其进行一些改动。我会向用户推荐地点,即'where to go tonight'。我知道用户偏好,但我还想将距离与我可以推荐的每个项目结合起来。我要向用户推荐的地方-最不吸引人的地方。

所以一般来说,我想在推荐引擎中加入惩罚,每个地方的惩罚金额将基于用户到该地方的距离。

我试着用谷歌搜索是否有人做过类似的事情,但没有找到任何东西。关于如何正确添加此类惩罚的任何建议?

我会保持简单和独立:

您的重点是协同过滤,因此您的推荐器应该为前 N 个推荐生成分数无论位置

然后您可以重新评分 使用前 N 个之间的距离。对于简单的 MVP,您可以从反距离衰减开始(例如 final-score = cf-score * 1/distance),并在必要时根据行为证据调整衰减函数。