使用 NLP 进行冷启动协同过滤

人工智能 自然语言处理 推荐系统
2021-11-14 07:31:12

我希望匹配两段文本——例如 IMDb 电影描述和每个人对他们喜欢的电影类型的描述。我在两者之间有一组现有的约 5000 个匹配项。我特别想克服冷启动问题:向新用户推荐什么电影?当一部新电影上映时,应该向哪些用户推荐它?我看到两个选项:

  1. 通过 LSTM 运行每个人的描述;对每个电影描述做同样的事情;连接人和电影可能组合的某些子集的结果,并附加到密集网络,然后预测它是否匹配
  2. 尝试通过文本学习器运行电影描述和人物描述的输出来增强协同过滤。

这些是易于处理的方法吗?

1个回答

据我了解,您不会遇到任何冷启动问题,因为您基本上会根据电影描述处理用户偏好描述以获得推荐。因此,您在流程的任何时候都不会使用其他用户的反馈,这不是协同过滤。

相反,我建议您使用以下方法为每个用户获取电影推荐:

  • 计算用户描述和每个电影描述之间的相似度。这可以使用Universal Sentence Encoder来完成。这是谷歌 2018 年的一篇论文,它将任何句子表示为 215 个值的向量(即嵌入)两个句子之间的语义相似度是使用它们嵌入的点积来计算的。幸运的是,该实现已集成到 Tensorflow Hub 并且易于使用(有关详细信息,请参阅我的答案)。

  • 选择相似度最高的值并向用户推荐相应的电影。请注意,您仍然可以将此方法与协同过滤方法一起使用。