学习排名应用程序

数据挖掘 机器学习 推荐系统 排行 学习排名
2022-01-26 14:43:28

如果有一个销售产品的网站/应用程序,我的工作是确定应该显示产品的顺序/排名。

例如:我点击餐馆并弹出餐馆列表,我必须确定餐馆应该以什么顺序显示。

所有数据,如收视率、与客户的距离、对我们的利润、价格、点击率、浏览总数等都是可用的。

但是我应该如何解决以有效顺序对它们进行排名的问题呢?我已阅读有关学习排名和协作过滤的信息,但我不确定这些是否适合我的问题,请帮助我。

谢谢

2个回答

协同过滤绝对是一个好的开始。这将按如下方式工作。对于每个用户,您可以通过平均已评价该餐厅的类似用户的排名(或其他聚合)来填写他们尚未排名的餐厅的排名。

或者,您可以采用基于内容的方法。在这里,每家餐厅都有一组关键字,使用或评价给定的餐厅会更新用户对这些关键字的个人资料。然后,可以(通过余弦相似度或其他方式)将用户的个人资料与所有其他餐馆的个人资料进行比较。然后你相​​应地订购。

首先映射到潜在空间可能更有用,但取决于您。

如果您的目标是生成一个供所有用户查看的通用排名,而不是每个用户的排名,那么协同过滤很可能没有什么用处。

可能有比使用机器学习更简单的方法来解决这个问题。

正确收集数据

问题来了:您过去展示餐厅的顺序很可能使您的数据出现偏差。如果餐厅 A 总是出现在列表顶部附近,而餐厅 Z 在第 10 页,那么这可能会对 CTR 等变量产生影响(也许人们在第 10 页附近变得绝望并且变得不那么挑剔,给 Z 更高CTR 和 A 较低的 CTR!)。与浏览次数相同(经常出现在首页的餐厅会获得更多浏览)和评分(这里的关系不太明显,但如果选择他们在首页看到的第一家餐厅的人也碰巧遇到了,我不会感到惊讶例如,给出更好的评价)。

理想情况下,您将运行一个适当的实验,以随机顺序呈现餐厅,并从该实验中收集数据以创建您的排名。

如果您不想进行全面的随机实验(如果这是一项业务,这是可以理解的),那么您可以保持排名不变,但将随机选择的几家餐厅偷偷放到首页每次访问。这将允许您从随机呈现的餐厅的表现中收集数据,同时仍然为您的客户提供不错的排名。

排行

您需要确定成功的标准是什么。我假设您正在运行某种网站,例如 JustEat,客户可以在其中选择餐厅然后点餐。您可以做的是根据在排名中展示餐厅的预期收入对餐厅进行评分。这将是这样的:

  • 如果餐厅显示在列表中,顾客点击餐厅的概率
  • 乘以客户在点击该餐厅后从该餐厅购买的概率
  • 乘以您从该餐厅的平均订单中获得的折扣

从本质上讲,一家餐厅只有在可以预期向顾客展示该餐厅可能会带来收入的情况下才会获得高分。

鉴于此分数,按照预期收入的递减顺序对您的餐厅进行排序是有意义的。