无论你钟情于音乐、书籍、电影还是电子游戏,一条好的推荐都能带来实实在在的乐趣——还能帮助那些名气不大的作品走入聚光灯下。但一个人眼中的新经典,另一个人可能会一口断定为烂作。能否用一个模型来理解一个人的喜好与厌恶,理解得足够透彻,从而提供量身定制的推荐呢?

各行各业的零售商都渴望向他们的顾客做出准确、个性化的推荐。然而,开发一套自动推荐系统所需的专业能力和投入,超出了许多零售商——尤其是较小的零售商——的承受范围。作为替代方案,这类零售商可以转向云端,利用在线推荐服务。

在微软,Azure 机器学习团队希望让开发者和数据科学家能够轻松地把预测分析和机器学习嵌入到他们的应用程序中。该团队的解决方案是一个基于云的平台,用于构建和探索分析流水线,这些流水线由若干机器学习构件搭建而成(图 5.1)。至关重要的是,该平台还允许把这些流水线部署为 Web 服务,随后便可在应用程序内部访问它们。面对自动推荐的旺盛需求,Azure ML 团队希望拥有用于构建推荐系统的构件,并且这些构件要足够灵活,以满足不同客户的需求。

图 5.1:目标——让在 Azure 机器学习中构建定制化推荐服务成为可能。

图 5.1:目标——让在 Azure 机器学习中构建定制化推荐服务成为可能。

潜在客户对推荐系统需要满足的要求各不相同。有些客户只想根据用户曾经喜欢或不喜欢的其他物品来做推荐。有些客户则掌握了关于每件物品的额外信息(例如一部电影的类型),并希望系统把这些信息也纳入考量。类似地,有些客户拥有关于其用户的附加数据(例如年龄或性别),希望用这些数据来改进推荐。此外,有些用户反馈以星级评分的形式出现,而另一些反馈系统只允许用户对物品表示喜欢或不喜欢。除此之外,被推荐的物品也五花八门,从书籍、电影这类传统零售商品,到餐厅和在线服务。

我们需要构建一个能够满足所有这些要求的模型。在本章中,我们将展示如何开发这样一个灵活的模型,以及如何用它来做出个性化的推荐。作为示例,我们将以电影作为要推荐的物品,因为电影推荐已经被深入研究过,而且有免费可用的电影评分数据集。我们将从一个能够预测喜欢或不喜欢的初始模型入手,然后对它加以扩展,以满足上文提到的那些额外的客户需求。我们将在本章中开发的模型紧密地基于 Stern 等人 [2009] 提出的 Matchbox 模型。

你可以使用配套源代码 [Diethe et al., 2019] 复现本章中的所有结果。

参考文献

[Stern et al., 2009] Stern, D., Herbrich, R., and Graepel, T. (2009). Matchbox: Large Scale Bayesian Recommendations. In Proceedings of the 18th International World Wide Web Conference.

[Diethe et al., 2019] Diethe, T., Guiver, J., Zaykov, Y., Kats, D., Novikov, A., and Winn, J. (2019). Model-Based Machine Learning book, accompanying source code. https://github.com/dotnet/mbmlbook.


下一节:学习用户和电影