数字化开发者大会:混合云 (亚太地区专场:9 月 24 日 上午 11:00) 即刻报名

使用 Apache Spark 和 Elasticsearch 构建一个推荐系统

摘要

推荐引擎是应用机器学习的最著名、使用最广泛、价值最大的用例之一。尽管有许多资源可用作训练推荐模型的基础,但解释如何实际部署这些模型来创建大型推荐系统的资源相对较少。

概览

本 code pattern 将演示使用 Apache Spark 和 Elasticsearch 创建推荐系统的关键要素。Jupyter Notebook 将展示如何通过存储在 Elasticsearch 中的评分数据,使用 Spark 来训练一个协同过滤推荐模型,并将模型因素保存到 Elasticsearch,然后使用 Elasticsearch 通过该模型来提供实时推荐。

完成上述操作后,您将掌握如何:

  • 使用 Elasticsearch Spark 连接器将用户事件数据摄入到 Elasticsearch 中并建立索引。
  • 将事件数据加载到 Spark DataFrames 中,并使用 Spark 的机器学习库 (MLlib) 来训练一个协同过滤推荐系统模型。
  • 将训练后的模型导出到 Elasticsearch 中。
  • 使用一个自定义 Elasticsearch 插件,计算个性化的用户和类似电影推荐,并将推荐与搜索和内容过滤相结合。

流程

flow

  1. 将电影数据集加载到 Spark 中。
  2. 使用 Spark DataFrame 操作清理该数据集,并将它加载到 Elasticsearch 中。
  3. 使用 Spark MLlib,训练一个协同过滤推荐模型。
  4. 将得到的模型保存到 Elasticsearch 中。
  5. 使用 Elasticsearch 查询和一个自定义矢量评分插件,生成一些示例推荐。使用 Movie Database API 来显示所推荐的电影的电影海报图像。

本文翻译自:Build a recommender with Apache Spark and Elasticsearch(2019-03-28)

Legend