建议概览

推荐系统是机器学习在商业中最成功和最广泛的应用之一。您可以使用推荐系统来帮助用户在海量内容中找到他们感兴趣的内容。 例如,Google Play 商店提供数百万个应用,YouTube 提供数十亿个视频,并且每天都会新增更多应用和视频。用户可以使用搜索功能查找新内容,但受其所用的搜索字词的限制。推荐系统可以推荐用户自己可能未曾想到要搜索到的内容。如需了解详情,请参阅推荐系统概览

推荐系统中的机器学习算法通常分为以下几类:

  • 基于内容的过滤:利用内容之间的相似度来作出推荐。例如,如果用户观看了两个可爱猫咪的视频,则推荐系统可能会向该用户推荐更多可爱动物的视频。
  • 协同过滤:利用用户之间的相似度(基于用户查询)来作出推荐。例如,如果用户 A 搜索了与用户 B 相似的内容,而用户 B 赞过视频 1,那么即使用户 A 没有观看过与视频 1 类似的任何视频,推荐系统也可能会向用户 A 推荐视频 1。

矩阵分解模型

矩阵分解模型被广泛用作推荐系统的协同过滤方法。

在矩阵分解模型中,“用户-内容”对会映射到一个二维矩阵,其中一个轴表示唯一身份用户,另一个轴表示唯一内容。用户对内容的评分位于矩阵的单元格中。此矩阵不必完全填满;大多数情况下,用户不会为每项内容都提供值。矩阵分解模型的目标是创建两个较小的密集权重矩阵,这两个矩阵相乘后可近似得出原始矩阵单元格值,并为空白矩阵单元格提供预测评分。

其中一个较小矩阵会用一个轴表示唯一身份用户,用另一个轴表示潜在因子数量(如 CREATE MODEL 语句的 NUM_FACTORS 选项所指定)。另一个较小矩阵则会用一个轴表示唯一内容,用另一轴表示潜在因子数量。在此矩阵中,潜在因子权重由用于训练模型的算法根据输入矩阵中的用户-内容组合生成。

如需了解详情,请参阅矩阵分解

您可以将矩阵分解模型与 ML.RECOMMEND 函数搭配使用来作出推荐。

其他推荐模型

如需扩展基于协同过滤的推荐系统,使其功能不仅仅局限于使用矩阵分解模型所实现的那一部分,您可以使用深度神经网络 (DNN)Wide & Deep 模型,并搭配使用 ML.PREDICT 函数来作出推荐。这些模型可以整合查询和内容特征来提高推荐的相关性。如需了解详情,请参阅以下资源:

通过使用 CREATE MODEL 语句和推理函数中的默认设置,即使您没有太多机器学习知识,也可以创建和使用推荐模型。不过,如果您具备机器学习开发(尤其是推荐模型)的基本知识,则有助于您优化数据和模型,从而获得更好的结果。我们建议您使用以下资源来熟悉机器学习技术和流程: