重新排名

在推荐系统的最后阶段,系统可以重新对候选者进行排名,以考虑其他条件或限制。一种重新排名的方法是使用过滤器移除某些候选字词。

另一种重新排名方法是手动转换排名器返回的得分。

本部分简要介绍了新鲜度、多样性和公平性。 这些因素有很多有助于改进您的推荐系统。其中一些因素通常需要修改流程的不同阶段。每个部分都提供了可以单独或共同应用的解决方案。

内容的新鲜度

大多数推荐系统都希望纳入最新的使用情况信息,例如当前用户历史记录和最新商品。让模型保持最新状态有助于模型提出良好的建议。

解决方案

  • 尽可能频繁地重新运行训练,以了解最新的训练数据。 我们建议热启动训练,这样模型就不必从头开始重新学习。温启动可以显著缩短训练时间。例如,在矩阵分解中,热启动模型前一实例中存在的项的嵌入。
  • 创建一个“平均”用户来表示矩阵分解模型中的新用户。您不需要为每个用户使用相同的嵌入 - 您可以根据用户功能创建用户集群。
  • 使用 DNN,例如 softmax 模型或双塔模型。由于该模型将特征向量作为输入,因此可以在训练期间未见到的查询或项上运行。
  • 将文档存在时间添加为功能。例如,YouTube 可以将视频的年龄或上次观看的时间添加为功能。

4 个推荐有关猫头鹰的视频的视频。

多样性

如果系统始终推荐与查询嵌入“最接近”的项,则候选项往往彼此非常相似。这种多样性可能会导致糟糕或无聊的用户体验。例如,如果 YouTube 只是推荐与用户正在观看的视频非常相似的视频(例如除猫头鹰视频外的其他内容),则用户可能会很快失去兴趣。

解决方案

  • 使用不同的来源训练多个候选生成器。
  • 使用不同的目标函数训练多个排名器。
  • 根据类型或其他元数据重新对内容进行排名,以确保多样性。

公平性

您的模型应公平对待所有用户。因此,请确保您的模型不会从训练数据中学习无意识偏见。

解决方案

  • 在设计和开发中纳入多元化的视角。
  • 使用全面的数据集训练机器学习模型。如果您的数据过于稀疏(例如,某些类别的代表性不足),请添加辅助数据。
  • 跟踪每个受众特征上的指标(例如准确率和绝对误差)以监控偏差。
  • 为服务不足的群组创建单独的模型。