掌桥专利:专业的专利平台
掌桥专利
首页

数据推荐方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 09:54:18


数据推荐方法、装置、电子设备及存储介质

技术领域

本申请涉及大数据处理技术领域,尤其涉及一种数据推荐方法、装置、电子设备及存储介质。

背景技术

目前推荐业务应用范围较广,现有技术中,一般将对象的召回数据存储在NOSQL(non-relational SQL,非关系型的数据库)中,给NOSQL的存储造成很大压力,会影响NOSQL的其它业务,存储成本较高且数据不易扩展。并且,在进行数据推荐时,为了响应一个推荐请求,会触发高并发的查询请求至NOSQL以请求各路召回数据,导致推荐响应时间较长。另外,推荐请求均需要向NOSQL请求召回数据,导致NOSQL易成为推荐服务性能的瓶颈。

发明内容

有鉴于上述存在的技术问题,本申请提出了一种数据推荐方法、装置、电子设备及存储介质。

根据本申请的一方面,提供了一种数据推荐方法,其特征在于,所述方法包括:

获取推荐请求,所述推荐请求包括目标对象标识;

根据哈希算法对所述目标对象标识进行一致性哈希运算,得到目标对象哈希值;

从所述目标对象哈希值匹配的目标召回存储节点中,获取所述目标对象标识对应的目标召回数据,所述目标召回数据包括候选推荐数据的标识信息;

从所述目标对象哈希值匹配的目标排序存储节点中,获取所述目标对象标识匹配的目标对象特征信息以及所述候选推荐数据的标识信息对应的候选推荐数据标签信息;

根据所述候选推荐数据标签信息和所述目标对象特征信息,对所述候选推荐数据进行排序,得到排序结果;

根据所述排序结果,从所述候选推荐数据中筛选出目标推荐数据;

将所述目标推荐数据发送至所述目标对象标识对应的终端。

根据本申请的另一方面,提供了一种数据推荐装置,包括:

推荐请求获取模块,用于获取推荐请求,所述推荐请求包括目标对象标识;

目标对象哈希值获取模块,用于根据哈希算法对所述目标对象标识进行一致性哈希运算,得到目标对象哈希值;

目标召回数据获取模块,用于从所述目标对象哈希值匹配的目标召回存储节点中,获取所述目标对象标识对应的目标召回数据,所述目标召回数据包括候选推荐数据的标识信息;

对象特征和标签信息获取模块,用于从所述目标对象哈希值匹配的目标排序存储节点中,获取所述目标对象标识匹配的目标对象特征信息以及所述候选推荐数据的标识信息对应的候选推荐数据标签信息;

排序结果获取模块,用于根据所述候选推荐数据标签信息和所述目标对象特征信息,对所述候选推荐数据进行排序,得到排序结果;

筛选模块,用于根据所述排序结果,从所述候选推荐数据中筛选出目标推荐数据;

推荐模块,用于将所述目标推荐数据发送至所述目标对象标识对应的终端。

根据本申请的另一方面,提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行上述方法。

根据本申请的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其中,所述计算机程序指令被处理器执行时实现上述方法。

通过将目标对象的目标召回数据和目标对象的目标对象特征信息分散存储到目标对象标识匹配的目标召回存储节点和目标排序存储节点,使得目标对象的数据可以分布式存储,避免统一存储至NOSQL中,降低存储成本并可以充分利用存储节点的存储空间,并且数据易于扩展;进而在响应推荐请求时,可以基于目标对象标识,从匹配的目标召回存储节点和目标排序存储节点实现对推荐请求的响应,避免存储节点成为推荐服务的性能瓶颈,适应高并发请求场景;另外基于一致性哈希值匹配目标召回存储节点和目标排序存储节点,可以实现数据访问的一致性,提高推荐服务的性能。

根据下面参考附图对示例性实施例的详细说明,本申请的其它特征及方面将变得清楚。

附图说明

包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本申请的示例性实施例、特征和方面,并且用于解释本申请的原理。

图1示出根据本申请一实施例提供的一种应用系统的示意图。

图2示出根据本申请一实施例的数据推荐方法的流程图。

图3示出根据本申请一实施例的召回存储节点中召回数据存储方法的流程图。

图4示出根据本申请一实施例的基于消息队列的召回数据、对象特征信息以及推荐数据标签信息的存储架构示意图。

图5示出根据本申请一实施例的基于消息队列中写入的召回数据,确定第一对象标识对应的召回更新数据方法的流程图。

图6示出根据本申请一实施例的排序存储节点中对象特征信息存储方法的流程图。

图7示出根据本申请一实施例的数据推荐方法的流程图。

图8示出根据本申请一实施例的数据推荐方法的流程图。

图9示出根据本申请一实施例的数据推荐装置的框图。

图10示出根据本申请一实施例的用于数据推荐的电子设备的框图。

具体实施方式

以下将参考附图详细说明本申请的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。

在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。

另外,为了更好的说明本申请,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本申请同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本申请的主旨。

人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。

近年来,随着人工智能技术研究和进步,人工智能技术在多个领域得到广泛应用,本申请实施例提供的方案涉及机器学习/深度学习等技术,具体通过如下实施例进行说明:

请参阅图1,图1示出根据本申请一实施例提供的一种应用系统的示意图。所述应用系统可以用于本申请的数据推荐方法。如图1所示,该应用系统至少可以包括服务器01和终端02。

本申请实施例中,所述服务器01可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。

本申请实施例中,所述终端02可以包括智能手机、台式计算机、平板电脑、笔记本电脑、智能音箱、数字助理、增强现实(augmented reality,AR)/虚拟现实(virtualreality,VR)设备、智能可穿戴设备等类型的实体设备。实体设备,也可以包括运行于实体设备中的软体,例如应用程序等。本申请实施例中终端02上运行的操作系统可以包括但不限于安卓系统、IOS系统、linux、windows等。

本说明书实施例中,上述终端02以及服务器01可以通过有线或无线通信方式进行直接或间接地连接,本申请对此不作限定。

所述终端02可以用于提供面向用户的数据推荐处理。用户可以在终端02上触发推荐请求。终端02可以接收目标推荐数据并显示目标推荐数据。终端02提供面向用户的数据推荐处理的方式可以包括但不限于应用程序方式、网页方式等。

需要说明的是,本申请实施例中,可以由服务器01执行数据推荐方法,并可以在服务器01中实现排序模型的训练。

在一个具体的实施例中,服务器02为分布式系统时,该分布式系统可以为区块链系统,分布式系统为区块链系统时,可以由多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)形成,节点之间形成的点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission Control Protocol)协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。具体的,区块链系统中各节点的功能,涉及的功能可以包括:

1)路由,节点具有的基本功能,用于支持节点之间的通信。

节点除具有路由功能外,还可以具有以下功能:

2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。

需要说明的是,以下图中示出的是一种可能的步骤顺序,实际上并不限定必须严格按照此顺序。有些步骤可以在互不依赖的情况下并行执行。

具体地,图2示出根据本申请一实施例的数据推荐方法的流程图。如图2所示,所述方法可以包括:

S201,获取推荐请求,该推荐请求可以包括目标对象标识。

本说明书实施例中,目标对象标识可以是指目标对象的标识,可以用于唯一标识目标对象。目标对象可以包括目标用户等。可以接收终端发送的推荐请求,例如,目标对象在登陆应用程序时,该应用程序可以触发推荐请求至服务器,服务器可以获取推荐请求。

S203,根据哈希算法对目标对象标识进行一致性哈希运算,得到目标对象哈希值。

本说明书实施例中,哈希算法可以是一致性哈希算法,本申请对此不作限定。可以根据哈希算法对目标对象标识进行一致性哈希运算,得到目标对象哈希值。在一个示例中,可以对目标对象标识进行MD5(message digest algorithm,信息摘要算法)取值,可以将MD5取值从低位至高位的4字节作为目标对象哈希值。

需要说明的是,哈希算法可以包括第一哈希算法和第二哈希算法,该S203可以包括:根据第一哈希算法对目标对象标识进行一致性哈希运算,得到第一目标哈希值;根据第二哈希算法对目标对象标识进行一致性哈希运算,得到第二目标哈希值。进一步地,S205可以包括:从第一目标哈希值匹配的目标召回存储节点中,获取目标对象标识对应的目标召回数据。S207可以包括:从第二目标哈希值匹配的目标排序存储节点中,获取目标对象标识匹配的目标对象特征信息以及目标召回数据中候选推荐数据的标识信息对应的候选推荐数据标签信息。

S205,从目标对象哈希值匹配的目标召回存储节点中,获取目标对象标识对应的目标召回数据。

本说明书实施例中,可以从目标对象哈希值匹配的目标召回存储节点中,获取目标对象标识对应的目标召回数据。其中,目标召回数据可以包括候选推荐数据的标识信息。目标召回数据可以是指目标对象标识对应的粗选推荐数据。

在一个示例中,可以对召回存储节点进行一致性哈希运算,得到第一节点哈希值,基于该第一节点哈希值,将召回存储节点映射到一致性哈希环上。可以将目标对象哈希值在顺时针方向上相邻的第一节点哈希值对应的召回存储节点,确定为目标对象哈希值匹配的目标召回存储节点,从而可以从目标召回存储节点中,获取目标对象标识对应的目标召回数据。

S207,从目标对象哈希值匹配的目标排序存储节点中,获取目标对象标识匹配的目标对象特征信息以及候选推荐数据的标识信息对应的候选推荐数据标签信息。

本说明书实施例中,可以对排序存储节点进行一致性哈希运算,得到第二节点哈希值,基于该第二节点哈希值,将排序存储节点映射到一致性哈希环上。可以将目标对象哈希值在顺时针方向上相邻的第二节点哈希值对应的排序存储节点,确定为目标对象哈希值匹配的目标排序存储节点。可以从目标排序存储节点中获取目标对象标识匹配的目标对象特征信息以及候选推荐数据的标识信息对应的候选推荐数据标签信息。其中,目标对象特征信息可以包括目标对象的偏好信息等,本申请对此不作限定。候选推荐数据可以包括图文、视频等内容数据。候选推荐数据标签信息可以是指候选推荐数据的标签信息,可以用于表征候选推荐数据的内容类型、格式等信息。

在一个示例中,召回存储节点和排序存储节点可以为分布式服务器的内存。这样可以使得推荐请求可以直接从内存中获取推荐数据,可以提高内存利用率,降低数据响应时间,避免影响NOSQL的其它业务,从而可以提高推荐服务的性能。

S209,根据候选推荐数据标签信息和目标对象特征信息,对候选推荐数据进行排序,得到排序结果;

S2011,根据排序结果,从候选推荐数据中筛选出目标推荐数据;

S2013,将目标推荐数据发送至目标对象标识对应的终端。

本说明书实施例中,可以根据候选推荐数据标签信息与目标对象特征信息的匹配程度,对候选推荐数据进行排序,得到排序结果。可以根据排序结果中的候选推荐数据的顺序,从候选推荐数据中筛选出目标推荐数据,例如可以筛选出排序靠前的预设数量的候选推荐数据作为目标推荐数据。从而可以将目标推荐数据发送至目标对象标识对应的终端。以使终端可以展示目标推荐数据给目标对象。

在一个示例中,如图4所示,对目标对象的目标召回数据进行排序时,可以调用排序算法或排序模型,实现对目标召回数据的排序。可以将候选推荐数据标签信息与目标对象特征信息输入排序模型,得到候选推荐数据的排序结果,该排序结果可以是指候选推荐数据的排序,排序越靠前,可以表示候选推荐数据与目标对象特征信息越匹配。本申请对排序算法和排序模型不作限定。其中,排序模型可以是基于排序样本数据集对预设神经网络模型进行训练得到的,排序样本数据集可以包括样本对象的画像信息和样本推荐数据标签信息、以及对应标签,该标签可以是指样本对象对应的样本候选推荐数据标签;当预设神经网络模型的输出与对应标签的差值满足预设条件时,可以得到排序模型。该预设条件可以是预设阈值,本申请不作限定。其中,样本对象的画像信息可以包括样本对象的对象特征信息。

通过将目标对象的目标召回数据和目标对象的目标对象特征信息分散存储到目标对象标识匹配的目标召回存储节点和目标排序存储节点,使得目标对象的数据可以分布式存储,避免统一存储至NOSQL中,降低存储成本并可以充分利用存储节点的存储空间,并且数据易于扩展;进而在响应推荐请求时,可以基于目标对象标识,从匹配的目标召回存储节点和目标排序存储节点实现对推荐请求的响应,避免存储节点成为推荐服务的性能瓶颈,适应高并发请求场景;另外基于一致性哈希值匹配目标召回存储节点和目标排序存储节点,可以实现数据访问的一致性,提高推荐服务的性能。

在一种可能的实现方式中,在S2013之前,还可以包括:根据排序调整策略,例如根据目标对象特征信息中的目标特征进行排序调整,可以根据目标对象特征信息中的目标特征对目标推荐数据进行排序,得到目标排序结果;根据目标排序结果,确定目标调整推荐数据;

相应地,步骤S2013可以包括:将目标调整推荐数据发送至目标对象标识对应的终端。

本说明书实施例中,目标特征可以是目标对象设置的,也可以是服务器从目标对象特征信息中选择的。例如,在目标对象为目标用户时,目标用户可以包括多个特征信息,例如性别,兴趣,年龄等,若目标用户设置目标特征为性别,可以利用目标推荐数据与性别的匹配程度,调整目标推荐数据的排序,得到目标排序结果。从而可以根据目标排序结果,确定目标推荐调整数据;并可以将目标推荐调整数据发送至目标对象标识对应的终端。

通过排序调整策略的设置,可以根据实际需求和目标对象的设置,调整目标推荐数据,使得推荐服务更灵活。

图3示出根据本申请一实施例的召回存储节点中召回数据存储方法的流程图。在一种可能的实现方式中,如图3所示,可以包括:

S301,监测消息队列。

本说明书实施例中,消息队列可以如图4所示。可以利用召回算法,从在线数据和离线数据中,如图4所示的在线/离线,实时或周期性获取一个或多个对象对应的召回数据。该召回算法可以包括多种召回算法,本申请对此不作限定。其中,每一个召回算法可以对应一路召回数据,一路召回数据中可以包括预设数量对象的召回数据,对象的召回数据可以包括该对象的对象标识和对应的推荐数据标识信息,即可以通过召回算法,为一个或多个对象粗选对应的推荐数据标识信息,以获取一个或多个对象的召回数据。在线数据和离线数据可以是指海量的可用于推荐的数据,比如,海量的图文数据、海量的短视频等。

本说明书实施例中,当对象的召回数据发生更新时,可以将更新的召回数据写入消息队列。更新的召回数据可以包括新增对象的召回数据、已有对象的召回数据的更新数据。

S303,当监测到消息队列中写入召回数据时,确定召回数据中包括的第一对象标识;

S305,基于消息队列中写入的召回数据,确定第一对象标识对应的召回更新数据。

S307,确定第一对象标识的第一哈希值;

S309,从召回存储节点中,确定与第一哈希值匹配的第一存储节点。

本说明书实施例中,当监测到消息队列中写入召回数据时,可以将召回数据存入对应的召回存储节点中。此时需要确定召回数据对应召回存储节点中的哪一个存储节点。在一个示例中,可以确定召回数据中包括的第一对象标识,该第一对象标识可以包括一个或多个对象的标识。从而可以以第一对象标识为索引,基于消息队列中写入的召回数据,确定第一对象标识对应的召回数据作为第一对象标识对应的召回更新数据,并可以确定第一对象标识的第一哈希值,从召回存储节点中,确定与第一哈希值匹配的第一存储节点。具体可以参见S205,在此不再赘述。

S3011,若第一存储节点中存在第一对象标识的召回数据,利用第一对象标识对应的召回更新数据更新第一对象标识的召回数据。

本说明书实施例中,可以判断第一存储节点中是否存在第一对象标识的召回数据,若第一存储节点中存在第一对象标识的召回数据,可以利用第一对象标识对应的召回更新数据更新第一对象标识的召回数据,例如,可以利用第一对象标识对应的召回更新数据更新第一存储节点中第一对象标识的召回数据。

在一个示例中,若第一存储节点中对象A的对象标识的召回数据为[对象A的标识信息;W1,W2,W3,W5,W7,W8];对象A的更新召回数据为[对象A的标识信息;W1,W2,W3,W4,W5,W6,W8];可以利用[对象A的标识信息;W1,W2,W3,W4,W5,W6,W8]替换[对象A的标识信息;W1,W2,W3,W4,W5,W6,W8],以实现对第一存储节点中对象A的召回数据的更新。其中,W1,W2,W3,W4,W5,W6,W8可以是指推荐数据标识信息。

S3013,若第一存储节点中不存在第一对象标识的召回数据,将第一对象标识对应的召回更新数据作为所述第一对象标识的召回数据,存储在第一存储节点中。

本说明书实施例中,可以判断第一存储节点中是否存在第一对象标识的召回数据,若第一存储节点中不存在第一对象标识的召回数据,可以将第一对象标识对应的召回更新数据存储在第一存储节点中。例如,可以将第一对象标识对应的召回更新数据与第一对象标识关联存储在第一存储节点中。

通过设置消息队列以及监测消息队列以实现召回数据的存储,可以实现召回数据的分散式存储,为分布式响应提供基础。

可选地,也可以是召回存储节点检测消息队列中召回数据的第一对象标识是否与自身匹配,比如,检测第一对象标识的第一哈希值是否与召回存储节点的标识匹配,若匹配,可以存储或更新召回存储节点中的召回数据。

在一种可能的实现方式中,对召回数据的存储可以基于目标对象的请求进行,例如,接收到目标对象的推荐请求,可以将推荐请求发送至目标对象哈希值匹配的目标召回存储节点中,目标召回存储节点中若不存在目标对象的目标召回数据,可以从数据库中获取,从而可以将目标召回数据存储在目标召回存储节点中,这样通过逐步加热召回数据的方式,可以将各对象的召回数据存储在匹配的召回存储节点中,以便后续推荐请求时,可以直接从召回存储节点中获取召回数据。

图5示出根据本申请一实施例的基于消息队列中写入的召回数据,确定第一对象标识对应的召回更新数据方法的流程图。如图5所示,在一种可能的实现方式中,当消息队列中写入的召回数据包括多路召回数据时,S305可以包括:

S501,从多路召回数据中,获取第一对象标识对应的召回数据。

本说明书实施例中,可以获取多路召回数据中包括的第一对象标识,从而可以以第一对象标识为索引,从多路召回数据中,获取第一对象标识对应的召回数据。

本说明书实施例中,可以遍历每一路召回数据,获取每一路召回数据中第一对象标识对应的召回数据作为第一对象标识对应的召回数据。例如,有两路召回数据时,可以从一路召回数据中获取第一对象标识对应的第一召回数据,从另一路召回数据中获取第一对象标识对应的第二召回数据,从而可以将第一召回数据和第二召回数据作为第一对象标识对应的召回数据。

S503,获取第一对象标识对应的召回数据中的推荐数据标识信息。

本说明书实施例中,可以从第一对象标识对应的召回数据中,获取第一对象标识对应的推荐数据标识信息。

S505,对推荐数据标识信息进行去重处理,得到第一对象标识对应的目标推荐数据标识信息。

本说明书实施例中,一个对象标识对应的多路召回数据中的推荐数据标识信息一般会存在重复,可以对推荐数据标识信息进行去重处理,得到第一对象标识对应的目标推荐数据标识信息。

在一个示例中,若召回数据包括两路召回数据,一路召回数据中可以包括600万个对象的召回数据,一个对象的召回数据可以包括100条推荐数据。若600万个对象中包括对象A,可以获取对象A的对象标识(第一对象标识)。假设第一路召回数据中,对象A的召回数据包括推荐数据标识信息:W1,W2,W3,W4,W5;第二路召回数据中,对象A的召回数据包括推荐数据标识信息:W1,W3,W5,W6,W8。可以从第一路召回数据和第二路召回数据中,获取对象A的对象标识对应的目标推荐数据标识信息包括W1,W2,W3,W4,W5,W6,W8。

S507,将第一对象标识以及第一对象标识对应的目标推荐数据标识信息作为第一对象标识的更新召回数据。

在一个示例中,例如,对象A的对象标识对应的目标推荐数据标识信息包括W1,W2,W3,W4,W5,W6,W8,可以将[对象A的标识信息;W1,W2,W3,W4,W5,W6,W8]作为对象A的更新召回数据。

通过对多路召回数据中的推荐数据标识信息进行去重处理,可以节省存储空间,降低存储成本。

本说明书实施例中,如图4所示,多个存储节点可以被划分为召回存储节点和排序存储节点,召回存储节点可以用于存储召回数据;排序存储节点可以用于存储对象特征信息和推荐数据标签信息。其中,多个存储节点划分为召回存储节点和排序存储节点的方式,本申请不作限定。

图6示出根据本申请一实施例的排序存储节点中对象特征信息存储方法的流程图。如图6所示,在一种可能的实现方式中,

S601,当监测到消息队列中写入对象特征信息,确定对象特征信息对应的第二对象标识;

S603,确定第二对象标识的第四哈希值;

S605,从排序存储节点中,确定与第四哈希值匹配的第二存储节点;

S607,将对象特征信息存储在第二存储节点中。

本说明书实施例中,可以实时或周期性地检测对象特征信息是否有更新,当监测到消息队列中写入对象特征信息,可以确定对象特征信息对应的第二对象标识;从而可以确定第二对象标识的第四哈希值,进而可以从排序存储节点中,确定与第四哈希值匹配的第二存储节点。确定第二存储节点后,可以将对象特征信息存储在第二存储节点中。其中,更新的对象特征信息可以包括新增对象的对象特征信息、已有对象的对象特征信息的更新信息。

通过设置消息队列以及监测消息队列以实现对象特征信息的存储,可以实现对象特征信息的分散式存储,为分布式响应提供基础。

在一种可能的实现方式中,排序存储节点中可以存储全量推荐数据的推荐数据标签信息。可以实时或周期性地检测推荐数据标签是否有更新,在监测到消息队列中写入推荐数据标识信息时,可以将推荐数据标识信息存储至排序存储节点的每个存储节点中,以便在对任一目标对象的候选推荐数据进行排序时,可以获取全量推荐数据的推荐数据标签信息。其中,更新的推荐数据标签可以包括新增推荐数据的标签、已有推荐数据的更新标签。

图7示出根据本申请一实施例的数据推荐方法的流程图。如图7所示,在一种可能的实现方式中,该方法还可以包括:

S701,将一致性哈希环划分为预设分段。

本说明书实施例中,一致性哈希环可以是2

举例来说,可以设置160个虚拟节点与召回存储节点和排序存储节点对应,从而可以根据虚拟节点的数量160,将一致性哈希环划分为160个预设分段。需要说明的是,召回存储节点对应的一致性哈希环与排序存储节点对应的一致性哈希环可以不同,本申请对此不作限定。

S703,设置预设分段与召回存储节点的映射关系。

本说明书实施例中,可以设置预设分段与召回存储节点的映射关系,比如以随机方式设置预设分段与召回存储节点的映射关系,或者,可以利用哈希映射Hashmap依次顺序设置预设分段与召回存储节点的映射关系,本申请对此不作限定,只要能够保证召回数据可以均衡的分散至召回存储节点中、对象特征信息可以均衡的分散至排序存储节点中即可。

相应地,S205可以包括以下步骤:

S705,从预设分段中,确定目标对象哈希值对应的目标预设分段。

本说明书实施例中,可以将包括目标对象哈希值对应的预设分段,确定为目标对象哈希值对应的目标预设分段。目标预设分段可以为预设分段中的一个。

S707,根据预设分段与召回存储节点的映射关系,确定目标预设分段对应的召回存储节点为目标对象哈希值匹配的目标召回存储节点;

S709,从目标召回存储节点中,获取目标对象标识对应的目标召回数据。

本说明书实施例中,可以根据预设分段与召回存储节点的映射关系,确定目标预设分段对应的召回存储节点为目标对象哈希值匹配的目标召回存储节点;进而可以从目标召回存储节点中,获取目标对象标识对应的目标召回数据。

图8示出根据本申请一实施例的数据推荐方法的流程图。如图8所示,在一种可能的实现方式中,该方法还可以包括:

S801,设置预设分段与排序存储节点的映射关系;该步骤可以参见S703,在此不再赘述。

相应地,S207可以包括以下步骤:

S803,从预设分段中,确定目标对象哈希值对应的目标预设分段;

S805,根据预设分段与排序存储节点的映射关系,确定目标预设分段对应的排序存储节点为目标对象哈希值匹配的目标排序存储节点。

本说明书实施例中,S803和S805的实现方式可以参见S705和S707,在此不再赘述。

S807,从目标排序存储节点中,获取目标对象标识匹配的目标对象特征信息以及候选推荐数据的标识信息对应的候选推荐数据标签信息。

本说明书实施例中,目标排序存储节点中可能存储多个对象的对象特征信息,基于此,可以获取目标对象标识匹配的目标对象特征信息。并且,可以从目标排序存储节点中,获取目标召回数据中候选推荐数据的标识信息对应的候选推荐数据标签信息。

在一个示例中,目标排序存储节点中可以包括全量推荐数据的标识信息与全量推荐数据的标签信息的推荐数据映射关系。可以基于推荐数据映射关系,获取候选推荐数据的标识信息对应的候选推荐数据标签信息。

图9示出根据本申请一实施例的数据推荐装置的框图。如图9所示,该装置可以包括:

推荐请求获取模块901,用于获取推荐请求,所述推荐请求包括目标对象标识;

目标对象哈希值获取模块903,用于根据哈希算法对所述目标对象标识进行一致性哈希运算,得到目标对象哈希值;

目标召回数据获取模块905,用于从所述目标对象哈希值匹配的目标召回存储节点中,获取所述目标对象标识对应的目标召回数据,所述目标召回数据包括候选推荐数据的标识信息;

对象特征和标签信息获取模块907,用于从所述目标对象哈希值匹配的目标排序存储节点中,获取所述目标对象标识匹配的目标对象特征信息以及所述候选推荐数据的标识信息对应的候选推荐数据标签信息;

排序结果获取模块909,用于根据所述候选推荐数据标签信息和所述目标对象特征信息,对所述候选推荐数据进行排序,得到排序结果;

筛选模块9011,用于根据所述排序结果,从所述候选推荐数据中筛选出目标推荐数据;

推荐模块9013,用于将所述目标推荐数据发送至所述目标对象标识对应的终端。

通过将目标对象的目标召回数据和目标对象的目标对象特征信息分散存储到目标对象标识匹配的目标召回存储节点和目标排序存储节点,使得目标对象的数据可以分布式存储,避免统一存储至NOSQL中,降低存储成本并可以充分利用存储节点的存储空间,并且数据易于扩展;进而在响应推荐请求时,可以基于目标对象标识,从匹配的目标召回存储节点和目标排序存储节点实现对推荐请求的响应,避免存储节点成为推荐服务的性能瓶颈,适应高并发请求场景;另外基于一致性哈希值匹配目标召回存储节点和目标排序存储节点,可以实现数据访问的一致性,提高推荐服务的性能。

在一种可能的实现方式中,数据推荐装置还可以包括:

监测模块,用于监测消息队列;

第一对象标识确定模块,用于当监测到所述消息队列中写入召回数据时,确定所述召回数据中包括的第一对象标识;

召回更新数据确定模块,用于基于所述消息队列中写入的召回数据,确定所述第一对象标识对应的召回更新数据;

第一哈希值确定模块,用于确定所述第一对象标识的第一哈希值;

第一存储节点确定模块,用于从召回存储节点中,确定与所述第一哈希值匹配的第一存储节点;

召回数据更新模块,用于若所述第一存储节点中存在所述第一对象标识的召回数据,利用所述第一对象标识对应的召回更新数据更新所述第一对象标识的召回数据;

召回数据存储模块,用于若所述第一存储节点中不存在所述第一对象标识的召回数据,将所述第一对象标识对应的召回更新数据作为所述第一对象标识的召回数据,存储在所述第一存储节点中。

在一种可能的实现方式中,当所述消息队列中写入的召回数据包括多路召回数据时,所述召回更新数据确定模块可以包括:

召回数据获取单元,用于从所述多路召回数据中,获取所述第一对象标识对应的召回数据;

推荐数据标识信息获取单元,用于获取所述第一对象标识对应的召回数据中的推荐数据标识信息;

目标推荐数据标识信息获取单元,用于对所述推荐数据标识信息进行去重处理,得到所述第一对象标识对应的目标推荐数据标识信息;

召回更新数据确定单元,用于将所述第一对象标识以及所述第一对象标识对应的目标推荐数据标识信息作为所述第一对象标识对应的召回更新数据。

在一种可能的实现方式中,数据推荐装置还可以包括:

第二对象标识确定模块,用于当监测到消息队列中写入对象特征信息,确定所述对象特征信息对应的第二对象标识;

第四哈希值确定模块,用于确定所述第二对象标识的第四哈希值;

第二存储节点确定模块,用于从排序存储节点中,确定与所述第四哈希值匹配的第二存储节点;

对象特征信息存储模块,用于将所述对象特征信息存储在所述第二存储节点中。

在一种可能的实现方式中,数据推荐装置还可以包括:

预设分段划分模块,用于将一致性哈希环划分为预设分段;

第一映射关系设置模块,用于设置所述预设分段与所述召回存储节点的映射关系;

目标召回数据获取模块905可以包括:

第一目标预设分段确定单元,用于从所述预设分段中,确定所述目标对象哈希值对应的目标预设分段;

目标召回存储节点确定单元,用于根据所述预设分段与所述召回存储节点的映射关系,确定所述目标预设分段对应的召回存储节点为所述目标对象哈希值匹配的目标召回存储节点;

目标召回数据获取单元,用于从所述目标召回存储节点中,获取所述目标对象标识对应的目标召回数据。

在一种可能的实现方式中,数据推荐装置还可以包括:第二映射关系设置模块,用于设置所述预设分段与所述排序存储节点的映射关系;

所述对象特征和标签信息获取模块907可以包括:

第二目标预设分段确定单元,用于从所述预设分段中,确定所述目标对象哈希值对应的目标预设分段;

目标排序存储节点确定单元,用于根据所述预设分段与所述排序存储节点的映射关系,确定所述目标预设分段对应的排序存储节点为所述目标对象哈希值匹配的目标排序存储节点;

对象特征和标签信息获取单元,用于从所述目标排序存储节点中,获取所述目标对象标识匹配的目标对象特征信息以及所述候选推荐数据的标识信息对应的候选推荐数据标签信息。

在一种可能的实现方式中,所述召回存储节点和所述排序存储节点为分布式服务器的内存。

关于上述实施例中的装置,其中各个模块和单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

另一方面,本申请提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的各种可选实现方式中提供的数据推荐方法。

图10示出根据本申请一实施例的用于数据推荐的电子设备的框图。该电子设备可以是服务器,其内部结构图可以如图10所示。该电子设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据推荐的方法。

本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在示例性实施例中,还提供了一种电子设备,包括:处理器;用于存储该处理器可执行指令的存储器;其中,该处理器被配置为执行该指令,以实现如本申请实施例中的数据推荐方法。

在示例性实施例中,还提供了一种存储介质,当该存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行本申请实施例中的数据推荐方法。

在示例性实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行本申请实施例中的数据推荐方法。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

相关技术
  • 数据推荐方法、数据推荐装置、电子设备及可读存储介质
  • 数据推荐方法、装置、电子设备及计算机可读存储介质
技术分类

06120112346469