首页 > 数据库 >如何使用图形数据库构建实时推荐引擎

如何使用图形数据库构建实时推荐引擎

时间:2023-08-23 16:33:07浏览次数:36  
标签:客户 movie 数据库 实时 引擎 图形 推荐

推荐:使用NSDT场景编辑器助你快速搭建可二次编辑的3D应用场景

“这是给你的”,“为你推荐的”或“你可能也喜欢”,是大多数数字业务中必不可少的短语,特别是在电子商务或流媒体平台中。

尽管它们看起来像一个简单的概念,但它们暗示了企业与客户互动和联系方式的新时代:推荐时代。

老实说,我们大多数人,如果不是所有人,在寻找要看的内容时都被 Netflix 的推荐冲昏了头脑,或者直接前往亚马逊上的推荐部分看看接下来要买什么。

在本文中,我将解释如何使用图形数据库构建实时推荐引擎。

什么是推荐引擎?

推荐引擎是一种工具包,它应用高级数据过滤和预测分析来预测客户的需求和愿望,即客户可能消费或参与的内容、产品或服务。

为了获得这些建议,引擎使用以下信息的组合:

  • 客户过去的行为和历史记录,例如购买的产品或观看的系列。
  • 客户的当前行为以及与其他客户的关系。
  • 产品按客户排名。
  • 企业最畅销的产品。
  • 类似或相关客户的行为和历史记录。

什么是图形数据库?

图形数据库是一个NoSQL数据库,其中数据存储在图形结构中,而不是表或文档中。图形数据结构由可以通过关系连接的节点组成。节点和关系都可以有自己的属性(键值对),这些属性进一步描述它们。

下图介绍了图形数据结构的基本概念:

How to Build a Real-Time Recommendation Engine Using Graph Databases


图形数据结构示例

流媒体平台的实时推荐引擎

现在我们知道了什么是推荐引擎和图形数据库,我们已经准备好介绍如何使用流式处理平台的图形数据库构建推荐引擎。

下图存储了两个客户看过的电影以及两个客户之间的关系。

How to Build a Real-Time Recommendation Engine Using Graph Databases


流媒体平台的图表示例。

将这些信息存储为图表,我们现在可以考虑电影推荐来影响下一部要观看的电影。最简单的策略是在整个平台上显示观看次数最多的电影。使用Cypher查询语言可以轻松:

MATCH (:Customer)-[:HAS_SEEN]->(movie:Movie)
RETURN movie, count(movie)
ORDER BY count(movie) DESC LIMIT 5

但是,此查询非常通用,不考虑客户的上下文,因此未针对任何给定客户进行优化。我们可以更好地使用客户的社交网络,查询朋友和朋友的朋友关系。使用Cypher非常简单:

MATCH (customer:Customer {name:'Marie'})
    <-[:IS_FRIEND_OF*1..2]-(friend:Customer)
WHERE customer <> friend
WITH DISTINCT friend
MATCH (friend)-[:HAS_SEEN]->(movie:Movie)
RETURN movie, count(movie)
ORDER BY count(movie) DESC LIMIT 5

此查询有两个部分由 WITH 子句划分,这允许我们将结果从第一部分传送到第二部分。

在查询的第一部分,我们找到当前客户 (),并使用灵活的路径长度表示法(表示一个或两个深度关系)遍历 Marie 的直接朋友或他们的朋友(她的朋友的朋友)的图形匹配。{name: 'Marie'}-[:IS_FRIEND_OF*1..2]->IS_FRIEND_OF

我们注意不要将玛丽本人包括在结果中(条款),也不要得到重复的朋友的朋友也是直接的(条款)。WHERE DISTINCT

查询的后半部分与最简单的查询相同,但现在我们不考虑平台上的所有客户,而是考虑玛丽的朋友和朋友的朋友。

就是这样,我们刚刚为流媒体平台构建了实时推荐引擎。

总结

在本文中,介绍了以下主题:

  • 什么是推荐引擎以及它用于提出建议的信息量。
  • 什么是图形数据库以及如何将数据存储为图形而不是表或文档。
  • 如何使用图形数据库为流媒体平台构建实时推荐引擎的示例。

原文链接:如何使用图形数据库构建实时推荐引擎 (mvrlink.com)

标签:客户,movie,数据库,实时,引擎,图形,推荐
From: https://www.cnblogs.com/mvrlink/p/17652049.html

相关文章

  • 查询数据库表、字段、备注
    查询数据库表、字段、备注查询表、字段、备注--名名称和字段名SELECT(CASEWHENa.colorder=1THENd.nameELSEd.nameEND)表名,a.colorder字段序号,a.name字段名,(CASEWHENCOLUMNPROPERTY(a.id,a.name,'IsIdentity')=1THEN'√'ELSE''END)标识,(CASEWHE......
  • Oracle数据库字符集概述及修改方式
    1、字符集概述Oracle语言环境的描述包括三部分:language、territory、characterset(语言、地域、字符集)language:主要指定服务器消息的语言,提示信息显示中文还是英文territory:主要指定服务器的数字和日期的格式characterset:是指字符集,一般国内数据库实际使用的字符集主......
  • 代理IP与Socks5代理:跨界电商智能爬虫的引擎与安全壁垒
    一、代理IP:智能爬虫的引擎多地区数据采集: 代理IP允许企业模拟不同地区的IP地址,轻松实现多地区数据采集。这为企业洞察全球市场需求提供了重要数据支持。规避反爬虫机制: 代理IP通过随机切换IP地址,规避了网站的反爬虫机制,确保数据采集的稳定性和连续性。突破地理封锁: 代理IP使企业......
  • 代理IP与Socks5代理:跨界电商智能爬虫的引擎与安全壁垒
    一、代理IP:智能爬虫的引擎多地区数据采集: 代理IP允许企业模拟不同地区的IP地址,轻松实现多地区数据采集。这为企业洞察全球市场需求提供了重要数据支持。规避反爬虫机制: 代理IP通过随机切换IP地址,规避了网站的反爬虫机制,确保数据采集的稳定性和连续性。突破地理封锁: 代理IP使企业......
  • 企业实现客户旅程编排必备的三大引擎
    每一个时代有每一个时代的主题,每一个时代也有每一个时代的挑战。2010-2020年是移动互联网的时代,大量的智能手机和App诞生并在线上加速推广,越来越多的网民加入进来,流量红利时代登场。具体来看,交易型业务开始向线上迁移,电商、O2O、互联网金融等行业飞速发展,各行各业的经营需求不局......
  • 如何通过对大型表建立索引来提高数据库的性能
    什么是数据库索引?数据库索引是一种可以更快地从数据库中搜索和检索数据的技术。这就像创建一个在一本大书中查找信息的快速指南。它有助于加快搜索速度并使查找内容变得更容易。索引可加快SELECT查询和WHERE子句的速度。另一方面会减慢INSERT和UPDATE查询的速度。图:数据库......
  • 精彩回顾|【ACDU 中国行·杭州站】数据库主题交流活动成功举办!
    8月19日下午,【ACDU中国行·杭州站】在杭州西溪万怡酒店圆满落下帷幕。本次活动由中国数据库联盟(ACDU)联合墨天轮社区主办,蚂蚁集团OceanBase 及亚信科技AntDB 赞助支持。六位数据库行业领军人物围绕「数据库技术揭秘及应用实践」这一主题,聚焦数据库技术的核心要素、数据库降本......
  • GIS开发与应用(PostgreSQL空间数据库各种查询语句范例以及SQL语句查询空间关系)_postgre
    实验二PG空间数据库应用实验目的:实验准备实验内容及要求实验过程及步骤:1、创建空间数据库nyc,在nyc空间数据库中创建geometries表,对表中插入Point、Linestring、Polygon、PolygonWithHole、collection等几何要素。2、查看geometries表中的几何图形的元数据。使用`ST_G......
  • 一个查询数据库并解析其中的json格式的数据,并处理后保存到另外的表的python程序
    1importjson2importpymysql3importdatetime4fromdecimalimportDecimal5fromdecoupleimportconfig678#获取每日汇率的方法9defget_currency_rate(code):10currency_db_host=config("CURRENCY_DB_HOST")11curre......
  • 途牛科技与火山引擎数智平台合作 打造企业大数据系统“降本”新范式
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 近日,南京途牛科技有限公司与火山引擎数智平台(VeDI)的合作获得新进展:途牛大数据系统全面迁移至火山引擎开源大数据平台E-MapReduce。  作为国内专注休闲旅游的数字一体化旅游服务商......