使用 Amazon Neptune、Amazon Neptune Machine Learning

公司动态

25

使用 Amazon Neptune 和其他服务进行电影推荐系统设计

主要重点

在本文中,我们探讨了一种高效的电影推荐系统,利用了 Amazon Neptune、Amazon OpenSearch Service 以及 Amazon SageMaker。设计了一个可搜寻的电影内容图数据库,通过文本、语义及图形相似性方法,提供用户精确的电影建议,以提升观影体验。

在当今的内容串流平台和点播服务中,电影观众越来越依赖于能够找到感兴趣的电影,这使得有效的电影推荐系统变得至关重要。设计一个良好的推荐系统,不仅能改善观众的体验,还能引导用户发现更多新鲜和有趣的内容。

本文将讨论一个建立在 Amazon Neptune 之上的高度可搜寻的电影内容图数据库设计。该系统利用可能强大的词汇、语义和图形相似性方法,构建用户电影的匹配清单。利用 Amazon OpenSearch Service 和 Neptune Machine Learning,我们比较包含相似文本以及相似向量嵌入的电影。这些嵌入则由句子模型和 图神经网络 (GNN) 生成。

解决方案概述

本文的解决方案分为两个部分,一个是最终用户的搜索体验,另一个是如何填充搜索数据存储。

最终用户的搜索体验

用户首先向 OpenSearch 服务域发出请求,并传入一个搜索词,通常是电影标题。我们执行三种不同的搜索方式,并合并结果以获得最好的最终响应。

云梯官网入口最新版搜索类型说明词汇型查找与搜索电影标题词汇相似的电影。例如,对于Poseidon,可能会返回Poseidon Adventure。语义型查找标题虽然词汇不同但语义相似的电影,例如Poseidon和Zeus都指向神话中的神。图形型找到在艺术家、类型等方面与搜索电影相似的其他电影,通过 GNN 查询找到相似的嵌入。

数据填充

这里的主要数据存储是 Neptune 里的电影内容图,数据来源于 IMDB、Rotten Tomatoes、Wikidata 等。这个解决方案的演示仅使用 IMDB 数据,OpenSearch 服务域包含可供搜索的电影内容数据的副本。

我们生成两类嵌入:

语义嵌入:使用 BERT 模型生成电影文本属性的嵌入。图嵌入:使用 Neptune ML 基于 GNN 生成嵌入,这些嵌入用于图形相似性匹配。

先决条件

要设置这个解决方案,您需要 AWS 账户,并拥有创建 Neptune 集群、OpenSearch 服务集群和 SageMaker 资源的权限。运行该解决方案会产生费用,该参考 Neptune、OpenSearch 和 SageMaker 的定价指南以了解详细信息。以下是建立电影搜索功能的步骤:

配置资源,包括集群和环境。填充电影内容图。创建和填充 OpenSearch 索引。探索搜索结果。

资源配置

按照 设置步骤 来创建所需的资源,包括 Neptune 集群和 OpenSearch 服务。

填充电影内容图

在 Jupyter 笔记本中,开启 01PopulateAndExploreNeptuneipynb,遵循指示进行数据加载和探索。

填充 OpenSearch 索引

使用 02PopulateOpenSearchipynb 来填充生成三个索引:

movie 包含电影基本信息的索引。moviesentence 用于支持向量相似搜索的 KNN 索引。moviegnn 基于 GNN 嵌入的 KNN 索引。

进行搜索

使用 03Searchipynb 来执行不同的搜索,包括词汇搜索和语义搜索。

词汇搜索

执行对Posidon的模糊搜索,可以自行检查返回的结果。

使用 Amazon Neptune、Amazon Neptune Machine Learning

语义搜索

进行对Poseidon的语义搜索,使用句子嵌入进行比较,并查看返回的结果。

结合三个索引的查询结果

统一对三个索引的搜索结果进行整合,计算和归一化每个返回电影的分数。这样可以获得更全面的电影推荐结果。

在 Neptune 查询背景

通过查询 Neptune 的内容图,可以进一步探索电影之间的关系,这样可以获得更深层的理解和推荐的背景。

清理

如果您使用完此解决方案,为避免未来的费用,请参考 删除指南 删除相关资源。

总结

本文探讨了一个高效的电影内容图系统,通过词汇、语义和图形相似性提供用户相关的电影建议。利用 Neptune 数据库及 OpenSearch 服务的结合方法,使得我们能够更准确地识别相关电影,提升用户的观影体验。

欲了解相关的例子,请参考 使用 IMDb 知识图进行推荐和搜索。

Axis Bank 利用 Amazon QuickSight 实现现代商业智能关键要点背景:Axis Bank,作为印度第三大私营银行,拥有5350多家分行和16000多台ATM。解决方案:借助 Amazon QuickSight 实现现代化商业智能,提高了数据处理能力和用户体验。成效:大幅降低数据...

从本地部署到AWS Local Zones的高可用性连接方案关键要点本文介绍如何在AWS Local Zones中实现高可用性网络连接。利用AWS Direct Connect和软件VPN,提供冗余连接以应对潜在故障。提供了详细的步骤和架构,适用于具有地理限制的客户。讨论了如何在故障时自动切换连接路...