实时推荐场景中的图形数据库用例

访客2023-12-01 15:54:5714

译者 | 陈峻

本文在介绍图形数据库和保举系统的根本概念的根底上,详细讨论了图形合成手艺、PageRank算法、以及协同过滤等办法,以及若何利用NebulaGraph图形数据库,去构建实时保举系统。

实时保举是当今零售行业十分热门的话题,其目的是为了便利用户在电商网站上搜刮了产物之后,应用法式立即为他们供给个性化的保举。那是一项具有挑战性的使命,究竟结果用户尚未决定要购置哪种产物,因而应用系统需要深切领会他们的偏好和行为。

为了实现那一目的,实时保举系统需要可以以接近实时的速度处置海量数据。实时系统凡是做为电商网站或挪动应用的一部门,能够按照用户当前的行为,保举相关的产物。例如,一个正在销售鞋履的电商网站,可能做到在用户查看“男士运动鞋”页面时,恰如其分地向其展现差别格式的鞋子。

而因为图形手艺具有预测用户行为,并据此提出建议的才能,因而它是实时保举的不错选择。此中,以NebulaGraph为代表的图形数据库,就供给了一种灵敏的数据模子,能够被用来暗示实体之间的各类类型关系。此类关系不只包罗典型的“产物”和“用户”之间的关系,还包罗其他关于应用而言十分重要的关系。例如,您能够利用图形数据库,来暗示复杂的用户分组(例如“各类伴侣”)、以及产物类别(例如“各类册本”)。只要两个实体之间有边(edge),就能够利用图形手艺来暗示。

其实,图形数据库比关系数据库更擅长暗示各类类型的关系。例如,若是您有大量具有类似兴趣、但属于差别组的用户,那么在关系数据库中,就需要为每个组创建一个零丁的表,然后在查询的时候,将他们毗连到一个大的数据表中。相反,在图形数据库中,每个用户可能有多个边,以代表他们在差别组中的兴趣。

一、什么是图形数据库?

图形数据库差别于大大都人熟悉的传统关系数据库办理系统(RDBMS)。RDBMS是将数据存储在一个由列和行构成的表中,相互之间几乎不存在任何关系。而图形数据库在最后被设想的时候,就偏重于数据集之间的关系。因而,它们具有更强大和更专业的处置才能。值得留意的是,此处的“图形”其实是暗示两个事物之间关系的图表。也就是说,图形数据库就是用来解释数据之间关系的数据库。下图展现了典型的图形数据库—NebulaGraph的复杂架构和设想。

为了制止数据集相互之间构成无用的孤岛,图形数据库能够将多个数据集之间的点毗连起来,提醒它们之间的重要关系。目前,图形数据库已经得到了普遍利用。

二、什么是实时保举系统?

保举系统次要用于预测客户的偏好,并为他们供给可能喜好的产物或办事。此类系统往往被用于包罗零售、媒体、娱乐、旅游、以及公共办事等各个行业,通过为客户供给个性化的建议,来帮忙公司降低成本,并增加收入。例如,Netflix会利用某种算法,来按照您之前看过的片子,保举后续的影片;Amazon也会利用保举,来帮忙购物者找到他们可能感兴趣、以至会购置的新产物;Facebook则利用本身的算法,按照您的兴趣爱好,向您展现相关的告白信息。

三、为何要利用NebulaGraph停止实时保举?

目前,在各类实在的应用情况中,数据发掘的相关手艺已可以给图形数据库带来大幅的性能提拔。而做为一个高性能的线性可扩展类图形数据库,NebulaGraph能够通过无共享(shared-nothing)的散布式模子被利用在差别的场景中。其背后的目的是释放那些呈指数级增长的毗连数据的才能。相对其他竞品图形数据库而言,NebulaGraph能够平安地处置数据集的大小,并在速度上提拔约两倍摆布。下图展现了NebulaGraph的根本工做原理。总的说来:

它是独一能够存储和处置具有数万亿个关系毗连、以及数十亿个数据点的数据库

它旨在确保和实现无中断的、可扩展和恢复的更佳营业持续性

四、图形手艺在保举中的应用

保举系统旨在按照用户的品尝和偏好,为他们供给个性化的保举。例如,应用能够通过用户在电商网站上的购物习惯,来提取和暗示他们在片子和册本范畴的偏好特征。

凡是,保举系统次要有两大类:协同过滤(Collaborative Filtering,CF)办法和基于模子(model-based)的办法。而为了在不晓得用户和片子属性的情况下,预测片子的评分,以KNN为代表的协同过滤办法,需要与基于模子的办法相连系,构成图形合成(graph factorization)办法,以进步评分记录在稀少时的预测准确性。

做为一种基于图形的模子,图形合成办法可用于暗示用户偏好,以及用户、项目和属性之间的关系。其目的是从用户评分和保举中提取潜在特征,以便那些特征能够被用于以无监视的体例,实现对用户偏好的预测。

图形合成需要通过将原始数据集合成为更小的数据集、或集群来完成。而因为图形数据库可以撑持高度毗连的数据构造和数据点之间的关系,因而图形合成的过程往往需要利用图形数据库来实现。目前,图形合成办法已经被普遍地应用于许多在线保举系统中。

五、若何利用NebulaGraph来构建保举系统?

下面,我将向您介绍若何利用NebulaGraph之类的图形数据库来构建保举系统。

1.定义数据模子

我们起首需要为保举系统定义数据模子,以告知系统需要保举什么类型的数据。若是想保举片子的话,那么片子即可被我们做为实体。然后是定义需要那些与实体相关的信息。例如,若是您筹办构建一个册本保举系统,那么您就需要晓得它属于什么类型、或者是用什么语言编写的。而关于片子范畴,我们只需要获取名称、发行年份、类别、以及国度等即可。下图展现了我们的片子实体的相关定义:

2.定义关系

接下来,我们需要做的是定义片子和用户(某人)之间存在什么类型的关系。凡是,此类关系有两种:用户喜好该片子和用户看过该片子(或用户没有看过片子)。在本例中,我们将把其简化为用户喜好的片子。

假设有两个用户James和Kelsey,他们都是科幻片子A的粉丝。那么该片子就属于科幻题材的类别。若是James同时也喜好科幻片子B,而Kelsey并没有看过,那么我们就其实不晓得kelsey能否喜好科幻片子B。

利用上述数据图建模,我们能够很容易地发现因为James和Kelsey喜好同样类此外事物,此中就包罗了科幻片子B,因而Kelsey也可能会喜好科幻片子B。保举系统则会向Kelsey保举科幻片子B。

3.提出建议

我们能够利用各类图形算法,在图形数据库中提出建议。

PageRank算法常被用于关于搜刮成果中的网页停止排名。通过利用该算法,我们能够确定当有人搜刮Google、或任何其他支流搜刮引擎时,应起首为其保举显示哪些网页,以及断定哪些网站的受欢送水平更高。PageRank背后的根本思惟是,下一个将要毗连跳转的页面,会比当前的页面更重要。也就是说,若是每小我都被链接到某个不异的鞋类购置网站的页面,那么就意味着系统判断该页面会比其他网站更重要。并且被链接过来的人越多,则意味着其获得的权重越高。能够说,一个网站的受欢送水平是通过它指向(和被引用)的链接数量来权衡的。同理,在看片子方面,一小我既能够继续旁观类似类此外片子(即延续他的兴趣喜好),也能够跳转去看完全差别类型的随机影片。可见,片子流行度的判断就成立在将给定片子,与其同类停止数字哈希的成果上。

协同过滤算法是一种基于用户、项目及其毗连信息的保举系统办法。其判断的前提是:类似的用户群往往有着类似的兴趣。该办法通过查看现有用户及其临近用户的兴趣,来停止保举。

六、小结

综上所述,因为图形数据库能够暗示保举系统顶用户和产物之间的关系,因而它们能够被用来构建实时保举系统。同时,因为可以针对强大的数据阐发供给撑持,图形数据库可以让保举系统愈加普遍地阐发具有差别偏好的用户和产物。

原文链接:

译者介绍

陈峻 (Julian Chen),51CTO社区编纂,具有十多年的IT项目施行经历,擅长对表里部资本与风险施行管控,专注传布收集与信息平安常识与经历。

控制面板

您好,欢迎到访网站!
  查看权限

最新留言