这个由三部分组成的系列演示了如何使用图神经网络 (GNN) 和 亚马逊海王星 使用生成电影推荐 IMDb 和 Box Office Mojo 电影/电视/OTT 可授权数据包,提供范围广泛的娱乐元数据,包括超过 1 亿的用户评级; 超过 11 万演职人员的演职员表; 9 万部电影、电视和娱乐节目; 以及来自 60 多个国家/地区的全球票房报告数据。 许多 AWS 媒体和娱乐客户通过 AWS数据交换 以改进内容发现并提高客户参与度和保留率。
下图说明了作为本系列的一部分实现的完整架构。
In 部分1,我们讨论了 GNN 的应用以及如何将我们的 IMDb 数据转换和准备为知识图谱 (KG)。 我们从 AWS Data Exchange 下载数据并在 AWS胶水 生成 KG 文件。 KG文件存储在 亚马逊简单存储服务 (Amazon S3) 然后载入 亚马逊海王星.
In 部分2,我们演示了如何使用 亚马逊海王星机器学习 (在 亚马逊SageMaker) 来训练 KG 并创建 KG 嵌入。
在这篇文章中,我们将向您介绍如何将我们在 Amazon S3 中经过训练的 KG 嵌入应用于目录外搜索用例,使用 亚马逊开放搜索服务 和 AWS Lambda. 您还可以部署本地 Web 应用程序以获得交互式搜索体验。 这篇文章中使用的所有资源都可以使用一个 AWS云开发套件 (AWS CDK) 命令,如后文所述。
背景
您是否曾经无意中搜索过视频流媒体平台上没有的内容标题? 如果是,您会发现您看到的不是一个空白的搜索结果页面,而是一个相同类型的电影列表,包括演员或剧组成员。 这是目录外的搜索体验!
目录外搜索 (OOC) 是指您输入的搜索查询在目录中没有直接匹配项。 这种事件经常发生在视频流媒体平台,这些平台在有限的时间内不断地从多个供应商和制作公司购买各种内容。 流媒体公司的目录与电影和节目的大型知识库之间缺乏相关性或映射,可能会导致查询 OOC 内容的客户的搜索体验低于标准,从而缩短与平台的交互时间。 这种映射可以通过手动将频繁的 OOC 查询映射到目录内容来完成,也可以使用机器学习 (ML) 自动完成。
在这篇文章中,我们将说明如何利用 IMDb 数据集(全球娱乐元数据的主要来源)和知识图的强大功能来处理 OOC。
开放搜索服务 是一项完全托管的服务,可让您轻松执行交互式日志分析、实时应用程序监控、网站搜索等。 OpenSearch 是一个开源的分布式搜索和分析套件,源自 Elasticsearch。 OpenSearch Service 提供最新版本的 OpenSearch,支持 19 个版本的 Elasticsearch(1.5 到 7.10 版本),以及由 OpenSearch Dashboards 和 Kibana(1.5 到 7.10 版本)提供支持的可视化功能。 OpenSearch Service 目前拥有数以万计的活跃客户,管理着数十万个集群,每月处理数万亿个请求。 OpenSearch Service 提供 kNN 搜索,可以在产品推荐、欺诈检测以及图像、视频和一些特定语义场景(如文档和查询相似性)等用例中增强搜索。 有关 OpenSearch 服务的自然语言理解支持的搜索功能的更多信息,请参阅 使用 Amazon SageMaker 和 Amazon OpenSearch Service KNN 功能构建 NLU 支持的搜索应用程序.
解决方案概述
在这篇文章中,我们提出了一种解决方案,通过使用 OpenSearch 服务的 k 最近邻 (kNN) 搜索功能的基于知识图的嵌入搜索来处理 OOC 情况。 用于实施此解决方案的关键 AWS 服务是 OpenSearch Service、SageMaker、Lambda 和 Amazon S3。
看一看 部分1 和 部分2 阅读本系列,了解有关使用 Amazon Neptune ML 创建知识图和 GNN 嵌入的更多信息。
我们的 OOC 解决方案假设您拥有通过合并流媒体公司 KG 和 IMDb KG 获得的组合 KG。 这可以通过简单的文本处理技术来完成,该技术将标题与标题类型(电影、系列、纪录片)、演员和工作人员相匹配。 此外,必须训练这个联合知识图谱以通过中提到的管道生成知识图谱嵌入 部分1 和 部分2. 下图说明了组合 KG 的简化视图。
为了用一个简单的例子演示 OOC 搜索功能,我们将 IMDb 知识图谱分为客户目录和客户目录外。 我们将包含“玩具总动员”的标题标记为客户目录外资源,并将 IMDb 知识图谱的其余部分标记为客户目录。 在客户目录未增强或与外部数据库合并的情况下,使用 OpenSearch 文本搜索搜索“玩具总动员”将返回其元数据中包含“玩具”或“故事”字样的任何标题。 如果将客户目录映射到 IMDb,则更容易收集到目录中不存在查询“玩具总动员”,并且 IMDb 中最匹配的是“玩具总动员”、“玩具总动员 2”、“玩具总动员” Story 3”、“Toy Story 4”和“Charlie: Toy Story”按照与文本匹配的相关性降序排列。 为了获得每个匹配项的目录内结果,我们可以通过 OpenSearch 服务在基于客户目录的 kNN 嵌入(联合 KG)相似性中生成五部最接近的电影。
典型的 OOC 体验遵循下图所示的流程。
以下视频显示了查询“玩具总动员”的前五名(点击数)OOC 结果以及客户目录中的相关匹配项(推荐数)。
在这里,使用 OpenSearch 服务中的文本搜索将查询与知识图匹配。 然后,我们使用 OpenSearch Service kNN 索引将文本匹配的嵌入映射到客户目录标题。 由于用户查询不能直接映射到知识图实体,我们使用两步法首先找到基于标题的查询相似性,然后使用知识图嵌入找到与标题相似的项目。 在以下部分中,我们将介绍设置 OpenSearch 服务集群、创建和上传知识图索引以及将解决方案部署为 Web 应用程序的过程。
先决条件
要实施此解决方案,您应该有一个 AWS账户、熟悉 OpenSearch Service、SageMaker、Lambda 和 AWS CloudFormation,并完成了中的步骤 部分1 和 部分2 这个系列。
启动解决方案资源
以下架构图显示了目录外工作流程。
您将使用 AWS 云开发工具包 (CDK) 来预置 OOC 搜索应用程序所需的资源。 启动这些资源的代码执行以下操作:
- 为资源创建 VPC。
- 为搜索应用程序创建一个 OpenSearch 服务域。
- 创建一个 Lambda 函数来处理电影元数据和嵌入并将其加载到 OpenSearch 服务索引 (
**-ReadFromOpenSearchLambda-**
). - 创建一个 Lambda 函数,它将来自 Web 应用程序的用户查询作为输入,并从 OpenSearch (
**-LoadDataIntoOpenSearchLambda-**
). - 创建一个 API 网关,在 Web 应用程序用户界面和 Lambda 之间添加额外的安全层。
首先,请完成以下步骤:
- 使用以下命令从终端启动 AWS CDK
bash launch_stack.sh
. - 提供在第 3 部分中创建的两个 S2 文件路径作为输入:
- 电影嵌入 CSV 文件的 S3 路径。
- 电影节点文件的 S3 路径。
- 等待脚本提供所有必需的资源并完成运行。
- 复制 AWS CDK 脚本打印出的 API 网关 URL 并保存。 (我们稍后将其用于 Streamlit 应用程序)。
创建 OpenSearch 服务域
出于说明目的,您在安全 VPC 和子网内的 r6g.large.search 实例中的一个可用区上创建一个搜索域。 请注意,最佳做法是在三个可用区上设置一个主实例和两个副本实例。
创建 OpenSearch 服务索引并上传数据
您使用 Lambda 函数(使用 AWS CDK 启动堆栈命令创建)来创建 OpenSearch 服务索引。 要开始创建索引,请完成以下步骤:
- 在 Lambda 控制台上,打开
LoadDataIntoOpenSearchLambda
Lambda函数。 - 点击 测试 标签,选择 测试 创建数据并将其提取到 OpenSearch 服务索引中。
此 Lambda 函数的以下代码可以在 part3-out-of-catalog/cdk/ooc/lambdas/LoadDataIntoOpenSearchLambda/lambda_handler.py
:
该函数执行以下任务:
- 从传递给堆栈创建文件的 S3 文件路径加载包含电影元数据及其关联嵌入的 IMDB KG 电影节点文件
launch_stack.sh
. - 合并两个输入文件以创建用于索引创建的单个数据框。
- 使用 Boto3 Python 库初始化 OpenSearch 服务客户端。
- 为文本创建两个索引 (
ooc_text
) 和 kNN 嵌入搜索 (ooc_knn
) 并通过ingest_data_into_ops
功能。
此数据摄取过程需要 5-10 分钟,可以通过 亚马逊CloudWatch 登录 灭菌监测 Lambda 函数的选项卡。
您创建两个索引以启用基于文本的搜索和基于 kNN 嵌入的搜索。 文本搜索将用户输入的自由格式查询映射到电影的标题。 kNN 嵌入搜索从 KG 潜在空间中找到最接近最佳文本匹配的 k 部电影作为输出返回。
将解决方案部署为本地 Web 应用程序
现在您在 OpenSearch 服务上有了一个有效的文本搜索和 kNN 索引,您已准备好构建一个 ML 驱动的 Web 应用程序。
我们使用 streamlit
用于为此应用程序创建前端插图的 Python 包。 这 IMDb-Knowledge-Graph-Blog/part3-out-of-catalog/run_imdb_demo.py
我们的 Python 文件 GitHub回购 具有启动本地 Web 应用程序以探索此功能所需的代码。
要运行代码,请完成以下步骤:
- 安装
streamlit
和aws_requests_auth
通过在终端中执行以下命令,在本地虚拟 Python 环境中安装 Python 包:
- 将代码中 API 网关 URL 的占位符替换为 AWS CDK 创建的占位符:
api = '<ENTER URL OF THE API GATEWAY HERE>/opensearch-lambda?q={query_text}&numMovies={num_movies}&numRecs={num_recs}'
- 使用命令启动 Web 应用程序
streamlit run run_imdb_demo.py
从您的终端。
此脚本会启动一个可以在 Web 浏览器中访问的 Streamlit Web 应用程序。 可以从脚本输出中检索 Web 应用程序的 URL,如以下屏幕截图所示。
该应用程序接受新的搜索字符串、点击次数和推荐次数。 命中数对应于我们应该从外部 (IMDb) 目录中检索多少匹配的 OOC 标题。 推荐的数量对应于我们应该基于 kNN 嵌入搜索从客户目录中检索多少个最近的邻居。 请参见以下代码:
此输入(查询、点击次数和推荐)被传递到 **-ReadFromOpenSearchLambda-**
AWS CDK 通过 API 网关请求创建的 Lambda 函数。 这是在以下函数中完成的:
来自 OpenSearch 服务的 Lambda 函数的输出结果被传递到 API 网关并显示在 Streamlit 应用程序中。
清理
可以通过命令删除AWS CDK创建的所有资源 npx cdk destroy –app “python3 appy.py” --all
在同一实例中(在 cdk
用于启动堆栈的文件夹)(请参阅以下屏幕截图)。
结论
在本文中,我们向您展示了如何使用 SageMaker 和 OpenSearch Service 为使用文本和基于 kNN 的搜索创建 OOC 搜索解决方案。 您使用自定义知识图模型嵌入在您的目录中找到与 IMDb 标题最近的邻居。 例如,您现在可以在其他流媒体平台上搜索由 Amazon Prime Video 开发的奇幻系列剧《权力的指环》,并了解他们如何优化搜索结果。
有关本文中代码示例的更多信息,请参见 GitHub回购. 要了解有关与 Amazon ML Solutions Lab 合作构建类似的最先进 ML 应用程序的更多信息,请参阅 亚马逊机器学习解决方案实验室. 有关许可 IMDb 数据集的更多信息,请访问 开发者.imdb.com.
作者简介
迪维亚·巴尔加维(Divya Bhargavi) 是 Amazon ML 解决方案实验室的数据科学家和媒体和娱乐垂直主管,她使用机器学习为 AWS 客户解决高价值业务问题。 她致力于图像/视频理解、知识图谱推荐系统、预测性广告用例。
高拉夫·雷尔(Gaurav Rele) 是Amazon ML解决方案实验室的数据科学家,他在这里与来自不同行业的AWS客户合作,以加快他们对机器学习和AWS Cloud服务的使用,以解决他们的业务挑战。
马修·罗德斯 是一名数据科学家,我在 Amazon ML 解决方案实验室工作。 他擅长构建涉及自然语言处理和计算机视觉等概念的机器学习管道。
卡兰·辛德瓦尼(Karan Sindwani) 是 Amazon ML 解决方案实验室的数据科学家,负责构建和部署深度学习模型。 他专攻计算机视觉领域。 在业余时间,他喜欢徒步旅行。
索吉·阿德西纳 是 AWS 的一名应用科学家,他开发了基于图神经网络的模型,用于图任务的机器学习,并应用于欺诈和滥用、知识图谱、推荐系统和生命科学。 在业余时间,他喜欢阅读和烹饪。
维迪亚·萨加尔·拉维帕蒂(Vidya Sagar Ravipati) 是 Amazon ML Solutions Lab 的经理,他利用自己在大型分布式系统方面的丰富经验和对机器学习的热情帮助不同垂直行业的 AWS 客户加速他们的 AI 和云采用。
- SEO 支持的内容和 PR 分发。 今天得到放大。
- 柏拉图区块链。 Web3 元宇宙智能。 知识放大。 访问这里。
- Sumber: https://aws.amazon.com/blogs/machine-learning/power-recommendations-and-search-using-an-imdb-knowledge-graph-part-3/
- 1
- 10
- 100
- 11
- 116
- 7
- 9
- a
- 关于
- 滥用
- 加快
- 接受
- 访问
- 横过
- 要积极。
- 额外
- 另外
- 添加
- 采用
- 广告
- AI
- 所有类型
- Amazon
- 亚马逊机器学习解决方案实验室
- 亚马逊海王星
- 亚马逊海王星机器学习
- 亚马逊开放搜索服务
- 亚马逊SageMaker
- 分析
- 和
- API
- 应用
- 应用领域
- 应用领域
- 应用的
- 使用
- 的途径
- 架构
- 国家 / 地区
- 相关
- 自动化
- 可用性
- 可使用
- AWS
- AWS数据交换
- 基于
- 因为
- 最佳
- 之间
- 亿
- 盒子
- 票房
- 浏览器
- 建立
- 建筑物
- 建立
- 商业
- 能力
- 例
- 检索目录
- 挑战
- 客户
- 云端技术
- 云采用
- 云服务
- 簇
- 码
- 合作
- 结合
- 公司
- 公司
- 公司的
- 完成
- 完成
- 一台
- 计算机视觉
- 概念
- 安慰
- 经常
- 包含
- 内容
- 对应
- 可以
- 国家
- 创建信息图
- 创建
- 创造
- 创建
- 积分
- 电流
- 目前
- 习俗
- 顾客
- 客户参与
- 合作伙伴
- data
- 数据交换
- 数据科学家
- 数据库
- 数据集
- 深
- 深入学习
- 演示
- 证明
- 部署
- 部署
- 部署
- 派生
- 描述
- 摧毁
- 检测
- 发达
- 研发支持
- 发展
- 不同
- 直接
- 直接
- 发现
- 讨论
- 分布
- 分布式系统
- 文件
- 记录
- 不会
- 域
- 每
- 更容易
- enable
- 订婚
- 增强
- 输入
- 进入
- 娱乐
- 实体
- 环境
- 活动
- EVER
- 例子
- 交换
- 体验
- 探索
- 外部
- 额外
- 面对
- 熟悉
- 幻想
- 数字
- 文件
- 档
- 找到最适合您的地方
- 发现
- 姓氏:
- 流
- 以下
- 如下
- 发现
- 骗局
- 欺诈检测
- 频繁
- 频繁
- 止
- 充分
- 功能
- 功能
- 功能
- 功能
- 网关
- 生成
- 得到
- 全球
- 图形
- 图表
- 处理
- 头
- 帮助
- 击中
- 点击
- 创新中心
- How To
- HTML
- HTTPS
- 数百
- 图片
- 实施
- 实施
- 改善
- in
- 包含
- 增加
- 指数
- 指标
- 指数
- 行业中的应用:
- 信息
- 输入
- 安装
- 例
- 代替
- 相互作用
- 互动
- 接口
- 涉及
- IT
- 项目
- 键
- 知识
- 知识图
- 实验室
- 语言
- 大
- 大规模
- 最新
- 发射
- 启动
- 层
- 铅
- 学习用品
- 学习
- 杠杆
- 自学资料库
- 执照
- 许可证
- 生活
- 生命科学
- 有限
- 清单
- 加载
- 本地
- 机
- 机器学习
- 制作
- 管理
- 颠覆性技术
- 经理
- 手动
- 许多
- 地图
- 制图
- 地图
- 标记
- 匹配
- 匹配
- 媒体
- 成员
- 提到
- 合并
- 元数据
- 百万
- 分钟
- ML
- 模型
- 模型
- 监控
- 监控
- 月
- 更多
- 电影
- 电影
- 多
- 自然
- 自然语言处理
- 邻居
- 海王星
- 基于网络的
- 网络
- 神经网络
- 全新
- 节点
- 数
- 获得
- 优惠精选
- 办公
- 一
- 打开
- 开放源码
- 运营
- 优化
- 秩序
- OS
- 其他名称
- 包
- 部分
- 通过
- 情
- 径
- 演出
- 施行
- 占位符
- 平台
- 平台
- 柏拉图
- 柏拉图数据智能
- 柏拉图数据
- 请
- 帖子
- 功率
- 供电
- 在练习上
- 总理
- Prepare
- 当下
- 小学
- 总理
- 打印
- 问题
- 过程
- 处理
- 处理
- 产品
- 生产
- 提供
- 规定
- 采购
- 目的
- 蟒蛇
- 范围
- 评分
- 阅读
- 准备
- 实时的
- 原因
- 推荐
- 建议
- 相关性
- 相应
- 回复
- 报告
- 知识库
- 请求
- 要求
- 必须
- 资源
- 资源
- 响应
- REST的
- 导致
- 成果
- 保留
- 回报
- 回报
- 运行
- 运行
- sagemaker
- 同
- 保存
- 情景
- 科学
- 科学家
- 搜索
- 部分
- 安全
- 保安
- 系列
- 服务
- 特色服务
- 集
- 设置
- 设置
- 应该
- 如图
- 作品
- 类似
- 相似之处
- 简易
- 简
- 单
- 情况
- 方案,
- 解决方案
- 解决
- 解决
- 一些
- 来源
- 太空
- 专业
- 具体的
- 分裂
- 堆
- 开始
- 开始
- 国家的最先进的
- 步骤
- 存储
- 存储
- 故事
- 流
- 子网
- 这样
- 套房
- SUPPORT
- 产品
- 采取
- 需要
- 任务
- 技术
- 终端
- 区域
- 关节
- 其
- 从而
- 数千
- 三
- 通过
- 次
- 标题
- 标题
- 至
- 最佳
- 培训
- 熟练
- 改造
- 万亿
- tv
- 普遍
- 下
- 理解
- 上传
- 网址
- 使用
- 用户
- 用户界面
- 利用
- 各种
- 广阔
- 厂商
- 垂直
- 视频
- 查看
- 在线会议
- 愿景
- 可视化
- 卷筒纸
- Web应用程序
- 网页浏览器
- 您的网站
- 这
- 宽
- 大范围
- 将
- 中
- Word
- 话
- 加工
- 合作
- 将
- 完全
- 您一站式解决方案
- 和风网
- 区