首页 / 专利库 / 人工智能 / 嵌入式计算 / 一种推荐方法、装置、计算机设备和存储介质

一种推荐方法、装置、计算机设备和存储介质

阅读:241发布:2020-05-08

专利汇可以提供一种推荐方法、装置、计算机设备和存储介质专利检索,专利查询,专利分析的服务。并且本 发明 实施例 公开了一种推荐方法、装置、计算机设备和存储介质,可获取待推荐用户的用户向量,以及候选对象的对象向量;基于共享映射参数,将待推荐用户的用户向量和候选对象的对象向量映射至目标向量空间中,得到待推荐用户的嵌入式向量以及候选对象的嵌入式向量;基于待推荐用户以及候选对象的嵌入式向量,从候选对象中选择待推荐用户感兴趣的推荐对象,如上,待推荐用户和候选对象被映射至同一个目标向量空间中,相较于相关技术只能对对象进行相似度衡量的方案,本实施例可基于待推荐用户和候选对象的嵌入式向量,直接衡量待推荐用户对候选对象的感兴趣程度,从而选择出待推荐用户感兴趣的推荐对象,有利于提升推荐速度和效果。,下面是一种推荐方法、装置、计算机设备和存储介质专利的具体信息内容。

1.一种推荐方法,其特征在于,包括:
获取待推荐用户的用户向量,以及候选对象的对象向量;
基于共享映射参数,将所述待推荐用户的用户向量映射至目标向量空间中,得到所述待推荐用户的嵌入式向量;
基于所述共享映射参数,将所述候选对象的对象向量映射至所述目标向量空间中,得到所述候选对象的嵌入式向量,所述共享映射参数是由所述用户向量和对象向量共享的,且用于将所述用户向量和对象向量映射至同一向量空间的映射参数;
基于所述待推荐用户的嵌入式向量,以及所述候选对象的嵌入式向量,从所述候选对象中选择所述待推荐用户感兴趣的推荐对象。
2.根据权利要求1所述的推荐方法,其特征在于,所述基于所述待推荐用户的嵌入式向量,以及所述候选对象的嵌入式向量,从所述候选对象中选择所述待推荐用户感兴趣的推荐对象,包括:
计算所述待推荐用户的嵌入式向量和所述候选对象的嵌入式向量之间的相似度;
基于所述相似度,从所述候选对象中选择所述待推荐用户感兴趣的推荐对象。
3.根据权利要求1所述的推荐方法,其特征在于,所述基于所述待推荐用户的嵌入式向量,以及所述候选对象的嵌入式向量,从所述候选对象中选择所述待推荐用户感兴趣的推荐对象,包括:
获取参考对象的对象向量,基于所述共享映射参数,将所述参考对象的对象向量映射至所述目标向量空间中,得到所述参考对象的嵌入式向量;
计算所述参考对象的嵌入式向量与所述候选对象的嵌入式向量之间的相似度,基于所述相似度,确定所述候选对象中的候选推荐对象;
计算所述待推荐用户的嵌入式向量和所述候选推荐对象的嵌入式向量之间的相似度,基于所述相似度,从所述候选推荐对象中选择所述待推荐用户感兴趣的推荐对象。
4.根据权利要求1所述的推荐方法,其特征在于,所述获取待推荐用户的用户向量,以及候选对象的对象向量前,还包括:
获取联合训练样本,所述联合训练样本中包括第一样本和第二样本,所述第一样本中包含目标用户和所述目标用户的历史交互对象,所述第一样本的标签中的期望历史交互对象与所述历史交互对象,属于所述目标用户的同一历史交互对象序列;所述第二样本包含目标对象和所述目标对象的历史交互用户,所述第二样本的标签中的期望历史交互用户与所述历史交互用户,属于所述目标对象的同一历史交互用户序列;
获取所述联合训练样本中的用户和对象的嵌入式向量,其中,所述联合训练样本中用户和对象的嵌入式向量由多任务分类模型中的共享映射层对所述联合训练模型中用户和对象的初始向量进行映射得到;
通过所述多任务分类模型中的分类任务层,基于所述第一样本中目标用户和历史交互对象的嵌入式向量,预测对应的目标历史交互对象,基于所述第二样本中目标对象和历史交互用户的嵌入式向量,预测对应的目标历史交互用户;
基于所述第一样本的标签和对应的目标历史交互对象,以及所述第二样本的标签和对应的目标历史交互用户,对所述多任务分类模型中的参数进行调整,以得到训练完成的多任务分类模型;
基于训练完成的多任务分类模型的共享映射层,获取所述联合训练样本中用户和对象的共享映射参数。
5.根据权利要求4所述的推荐方法,其特征在于,所述获取联合训练样本包括:
获取目标用户和所述目标用户的历史交互对象序列,基于所述目标用户和所述目标用户的历史交互对象序列生成第一样本,其中,所述历史交互对象序列中的历史交互对象基于与所述目标用户的交互时间排序;
获取目标对象和所述目标对象的历史交互用户序列,基于所述目标对象和所述目标对象的历史交互用户序列生成第二样本,其中,所述历史交互用户序列中的历史交互用户基于与所述目标对象的交互时间或交互频次排序;
基于所述第一样本和所述第二样本得到n批联合训练样本,其中,n为正整数,一批所述联合训练样本用于对所述多任务分类模型进行一次训练。
6.根据权利要求5所述的推荐方法,其特征在于,所述基于所述第一样本和所述第二样本得到n批联合训练样本,包括:
在生成每一批联合训练样本时,从所述第一样本中抽取预设数量的第一样本,基于已抽取的第一样本,从所述第二样本中抽取关联的第二样本,其中,所述关联的第二样本与至少一个已抽取的第一样本包含相同的物品或用户;
以每一批次抽取的第一样本和关联的第二样本组成一批联合训练样本,最终得到n批联合训练样本。
7.根据权利要求4所述的推荐方法,其特征在于,所述基于训练完成的多任务分类模型的共享映射层,获取所述联合训练样本中用户和对象的共享映射参数,包括:
从训练完成的多任务分类模型中,获取共享映射层的权重矩阵,将所述权重矩阵,作为所述联合训练样本中用户和对象的共享映射参数。
8.根据权利要求4所述的推荐方法,其特征在于,所述基于所述第一样本的标签和对应的目标历史交互对象,以及所述第二样本的标签和对应的目标历史交互用户,对所述多任务分类模型中的参数进行调整,以得到训练完成的多任务分类模型,包括:
获取第一样本对应的第一分类任务的第一目标函数;
获取第二样本对应的第二分类任务的第二目标函数;
对所述第一目标和第二目标函数求和,得到所述多任务分类模型的总目标函数;
基于所述第一样本的标签和对应的目标历史交互对象,以及所述第二样本标签和对应的目标历史交互用户,对所述多任务分类模型中的参数进行调整,以优化所述总目标函数,得到训练完成的多任务分类模型。
9.根据权利要求4-8任一项所述的推荐方法,其特征在于,所述分类任务层包括第一分类任务层和第二分类任务层;
所述通过所述多任务分类模型中的分类任务层,基于所述第一样本中目标用户和历史交互对象的嵌入式向量,预测对应的目标历史交互对象,基于所述第二样本中目标对象和历史交互用户的嵌入式向量,预测对应的目标历史交互用户,包括:
当所述联合训练样本为第一样本时,通过所述多任务分类模型中的第一分类任务层,基于所述第一样本中目标用户和历史交互对象的嵌入式向量,预测对应的目标历史交互对象;
当所述联合训练样本为第二样本时,通过所述多任务分类模型中的第二分类任务层,基于所述第二样本中目标对象和历史交互用户的嵌入式向量,预测对应的目标历史交互用户。
10.根据权利要求9所述的推荐方法,其特征在于,第一样本对应的期望历史交互对象的数量为1,第二样本对应的期望历史交互用户的数量为1,第一样本中的历史交互对象在目标用户的历史交互对象序列中,位于期望历史交互对象的附近;所述第二样本中的历史交互用户在目标对象的历史交互序列中,位于期望历史交互用户的附近;
所述当所述联合训练样本为第一样本时,通过所述多任务分类模型中的第一分类任务层,基于所述第一样本中目标用户和历史交互对象的嵌入式向量,预测对应的目标历史交互对象,包括:
当所述联合训练样本为第一样本时,以第一样本中的历史交互对象作为中心词的上下文,通过第一分类任务层,基于所述第一样本中目标用户和历史交互对象的嵌入式向量,对作为所述上下文的中心词的目标历史交互对象进行预测;
所述当所述联合训练样本为第二样本时,通过所述多任务分类模型中的第二分类任务层,基于所述第二样本中目标对象和历史交互用户的嵌入式向量,预测对应的目标历史交互用户,包括:
当所述联合训练样本为第二样本时,以第二样本中的历史交互用户作为中心词的上下文,通过第二分类任务层,基于所述第二样本中目标对象和历史交互用户的嵌入式向量,对作为上下文的中心词的目标历史交互用户进行预测。
11.根据权利要求9所述的推荐方法,其特征在于,第一样本包含的历史交互对象的数量为1,第二样本包含的历史交互用户的数量为1,第一样本对应的期望历史交互对象,在目标用户的历史交互对象序列中,位于第一样本包含的历史交互对象附近,第二样本对应的期望历史交互用户,在目标对象的历史交互用户序列中,位于第二样本包含的历史交互用户附近;
所述当所述联合训练样本为第一样本时,通过所述多任务分类模型中的第一分类任务层,基于所述第一样本中目标用户和历史交互对象的嵌入式向量,预测对应的目标历史交互对象,包括:
当所述联合训练样本为第一样本时,以第一样本中的历史交互对象作为中心词,通过第一分类任务层,基于所述第一样本中目标用户和历史交互对象的嵌入式向量,对作为所述中心词的上下文的目标历史交互对象进行预测;
所述当所述联合训练样本为第二样本时,通过所述多任务分类模型中的第二分类任务层,基于所述第二样本中目标对象和历史交互用户的嵌入式向量,预测对应的目标历史交互用户,包括:
当所述联合训练样本为第二样本时,以第二样本中的历史交互用户作为中心词,通过第二分类任务层,基于所述第二样本中目标对象和历史交互用户的嵌入式向量,对作为所述中心词的上下文的目标历史交互用户进行预测。
12.根据权利要求4-8任一项所述的推荐方法,其特征在于,所述基于训练完成的多任务分类模型的共享映射层,获取所述联合训练样本中用户和对象的共享映射参数后,还包括:
将所述用户和对象的共享映射参数,存储至链中。
13.一种推荐装置,其特征在于,包括:
向量获取单元,用于获取待推荐用户的用户向量,以及候选对象的对象向量;
第一映射计算单元,用于基于共享映射参数,将所述待推荐用户的用户向量映射至目标向量空间中,得到所述待推荐用户的嵌入式向量;
第二映射计算单元,用于基于所述共享映射参数,将所述候选对象的对象向量映射至所述目标向量空间中,得到所述候选对象的嵌入式向量,所述共享映射参数是由所述用户向量和对象向量共享的,且用于将所述用户向量和对象向量映射至同一向量空间的映射参数;
推荐单元,用于基于所述待推荐用户的嵌入式向量,以及所述候选对象的嵌入式向量,从所述候选对象中选择所述待推荐用户感兴趣的推荐对象。
14.一种存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1-12任一项所述方法的步骤。
15.一种计算机设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求1-12任一项所述方法的步骤。

说明书全文

一种推荐方法、装置、计算机设备和存储介质

技术领域

[0001] 本发明涉及计算机技术领域,具体涉及一种推荐方法、装置、计算机设备和存储介质。

背景技术

[0002] 目前,随着互联网技术的发展,由推荐系统带来的推荐服务基本上已经渗透到我们生活的方方面面,推荐系统中可以用于预测用户对物品的偏好,基于预测结果为用户推荐物品。
[0003] 相关技术中,一般是研究用户的交互物品序列,基于自然语言处理技术,对物品做嵌入式表示,基于物品的嵌入式向量,计算物品之间的相似度,召回与搜索物品相似的待选物品,然后基于复杂的算法对候选物品进行排序,从排序后的物品中选择出用户感兴趣的物品,相关推荐中无法直接以用户和物品作为比较的对象,根据比较结果向用户推荐物品。

发明内容

[0004] 本发明实施例提供一种推荐方法、装置、计算机设备和存储介质,可以基于对用户和对象的比较,确定向用户推荐的物品,有利于提升推荐速度和准确性。
[0005] 本发明实施例提供一种推荐方法,该推荐方法包括:
[0006] 获取待推荐用户的用户向量,以及候选对象的对象向量;
[0007] 基于共享映射参数,将所述待推荐用户的用户向量映射至目标向量空间中,得到所述待推荐用户的嵌入式向量;
[0008] 基于所述共享映射参数,将所述候选对象的对象向量映射至所述目标向量空间中,得到所述候选对象的嵌入式向量,所述共享映射参数是由所述用户向量和对象向量共享的,且用于将所述用户向量和对象向量映射至同一向量空间的映射参数;
[0009] 基于所述待推荐用户的嵌入式向量,以及所述候选对象的嵌入式向量,从所述候选对象中选择所述待推荐用户感兴趣的推荐对象。
[0010] 本发明实施例还提供一种推荐装置,该推荐装置包括:
[0011] 向量获取单元,用于获取待推荐用户的用户向量,以及候选对象的对象向量;
[0012] 第一映射计算单元,用于基于共享映射参数,将所述待推荐用户的用户向量映射至目标向量空间中,得到所述待推荐用户的嵌入式向量;
[0013] 第二映射计算单元,用于基于所述共享映射参数,将所述候选对象的对象向量映射至所述目标向量空间中,得到所述候选对象的嵌入式向量,所述共享映射参数是由所述用户向量和对象向量共享的,且用于将所述用户向量和对象向量映射至同一向量空间的映射参数;
[0014] 推荐单元,用于基于所述待推荐用户的嵌入式向量,以及所述候选对象的嵌入式向量,从所述候选对象中选择所述待推荐用户感兴趣的推荐对象
[0015] 本实施例还提供一种存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现如上所述的推荐方法的步骤。
[0016] 本实施例还提供一种计算机设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如上所述的推荐方法的步骤。
[0017] 本实施例公开了一种推荐方法、装置、计算机设备和存储介质,可以获取待推荐用户的用户向量,以及候选对象的对象向量;基于共享映射参数,将待推荐用户的用户向量映射至目标向量空间中,得到待推荐用户的嵌入式向量;基于共享映射参数,将候选对象的对象向量映射至目标向量空间中,得到候选对象的嵌入式向量;基于待推荐用户的嵌入式向量,以及候选对象的嵌入式向量,从候选对象中选择待推荐用户感兴趣的推荐对象,如上,待推荐用户和候选对象被映射至同一个向量空间即目标向量空间,所以相较于相关技术只能对对象进行相似度衡量的方案,本实施例可以基于待推荐用户和候选对象的嵌入式向量,直接衡量待推荐用户对候选对象的感兴趣程度,从而选择出待推荐用户感兴趣的推荐对象,有利于提升推荐速度和效果。附图说明
[0018] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0019] 图1a是本发明实施例提供的推荐方法的场景示意图;
[0020] 图1b是本发明实施例提供的推荐方法的流程图
[0021] 图1c是本发明实施例中获取共享映射参数的方法的流程图;
[0022] 图2a是一种分类模型的结构示意图;
[0023] 图2b是另一种分类模型的结构示意图;
[0024] 图2c是本发明实施例的多任务分类模型的一种可选的结构示意图;
[0025] 图2d是本发明实施例的多任务分类模型的另一种可选的结构示意图;
[0026] 图3a是本发明实施例提供的一种推荐装置的结构示意图;
[0027] 图3b是本发明实施例提供的另一种推荐装置的结构示意图;
[0028] 图4是本发明实施例提供的计算机设备的结构示意图;
[0029] 图5是本发明实施例提供的分布式系统100应用于链系统的一个可选的结构示意图;
[0030] 图6是本发明实施例提供的区块结构的一个可选的示意图。

具体实施方式

[0031] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0032] 本发明实施例提供一种推荐方法、装置、计算机设备和存储介质。具体地,本发明实施例提供适用于计算机设备的推荐方法。其中,计算机设备可以为终端等设备,该终端可以为手机、平板电脑笔记本电脑等设备;其中,该计算机设备还可以为服务器等设备,该服务器可以是单台服务器,也可以是由多个服务器组成的服务器集群。
[0033] 比如,推荐装置可以集成在终端中。
[0034] 本实施例中,推荐方法可以由终端或服务器单独执行,也可以由终端和服务器共同执行完成。
[0035] 本发明实施例将以计算机设备为终端为例,来介绍推荐方法。
[0036] 参考图1a,本发明实施例提供了推荐系统包括终端10和服务器20等;终端10与服务器20之间通过网络连接,比如,通过有线或无线网络连接等,其中,推荐装置集成在服务器20中。
[0037] 其中,服务器20,可以用于获取待推荐用户的用户向量,以及候选对象的对象向量;基于共享映射参数,将待推荐用户的用户向量映射至目标向量空间中,得到待推荐用户的嵌入式向量;基于共享映射参数,将候选对象的对象向量映射至目标向量空间中,得到候选对象的嵌入式向量;基于待推荐用户的嵌入式向量,以及候选对象的嵌入式向量,从候选对象中选择待推荐用户感兴趣的推荐对象。其中,所述共享映射参数是由所述用户向量和对象向量共享的,且用于将所述用户向量和对象向量映射至同一向量空间的映射参数。
[0038] 其中,待推荐用户的信息可以是由终端10发送的。例如终端10,可以向服务器发送针对待推荐用户的推荐请求,该请求中可以携带待推荐用户的标识信息等,便于服务器获取待推荐用户的用户向量。
[0039] 服务器20可以在接收到针对待推荐用户的推荐请求后,执行上述确定推荐对象的步骤。在确定推荐对象后,服务器还可以基于推荐对象生成推荐信息,然后将推荐信息发送给终端10。
[0040] 终端10,可以在接收到推荐信息后,展示该推荐信息。
[0041] 本实施例中,终端10发送的请求还可以用于请求与待推荐用户相似的相似用户,类似的,服务器20基于待推荐用户的嵌入式向量和候选用户的嵌入式向量,计算相似度,基于相似度选择相似用户,生成推荐信息并反馈给终端10。
[0042] 以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
[0043] 本发明实施例将从推荐装置的度进行描述,该推荐装置具体可以集成在服务器中,或者,也可以集成在终端中,本实施例的推荐方法,相较于相关技术,可以将用户和对象映射到同一向量空间中,以便于直接使用用户和对象进行向量相似度计算,获取用户和对象的嵌入式向量的这部分方案,可以由服务器中集成的推荐装置实现,而基于已经获取的用户和对象的嵌入式向量进行推荐的这部分方案,可以由终端和服务器共同实现,当然,若终端的计算性能等满足多任务分类模型的计算要求,获取用户和对象的嵌入式向量的这部分方案也可以在终端上集成的推荐装置实现,本实施例对此没有限制。
[0044] 本发明实施例提供的一种推荐方法,该方法可以由服务器或终端的处理器执行,或者由服务器和终端共同执行,如图1b所示,该推荐方法的具体流程可以如下:
[0045] 101、获取待推荐用户的用户向量,以及候选对象的对象向量;
[0046] 本实施例中,步骤101-104可以由服务器实现,或者,也可以由终端实现,或者还可以由服务器和终端共同实现,本实施例对此没有限制。
[0047] 本实施例中,用户为推荐功能的使用用户,该推荐功能可以以程序的方式集成在任意需要使用推荐功能的应用程序客户端中,例如,推荐功能集成在搜索引擎客户端,购物类客户端,视频或音频播放客户端,以及社交类客户端等等。本实施例中的用户可以通过用户账号等进行区分,例如在应用程序客户端中注册的不同用户账户认为是不同的用户,或者,用户可以通过使用的终端进行区分,例如,对于未注册用户账户的用户,以每一个终端对应一个用户。
[0048] 本实施例中的对象,可以是任意类型的物品,例如,可以是商品、网页、歌曲、视频、以及图片等等。本实施例对此没有限制。
[0049] 本实施例中,在推荐场景下,所有对象都可以作为本实施例的候选对象,例如,在向视频播放客户端的用户推荐视频时,视频播放客户端中的所有视频都可以作为候选视频。
[0050] 本实施例中,用户和对象分别具有用户向量和对象向量,该用户向量和对象向量可以是one-hot形式的向量。该用户向量和对象向量分别为后续步骤中提到的用户的初始向量,和对象的初始向量。
[0051] 102、基于共享映射参数,将待推荐用户的用户向量映射至目标向量空间中,得到待推荐用户的嵌入式向量;
[0052] 103、基于共享映射参数,将候选对象的对象向量映射至目标向量空间中,得到候选对象的嵌入式向量,共享映射参数是由用户向量和对象向量共享的,且用于将用户向量和对象向量映射至同一向量空间的映射参数;
[0053] 本实施例中,步骤102和步骤103的先后顺序没有任何限制,可以是102在前,103在后,也可以是103在前,102在后,或者步骤102和步骤103也可以由多进程并列地执行。
[0054] 本实施例中,共享映射参数,来自于本实施例中的多任务分类模型中的共享映射层,该共享映射层由对象的分类任务和用户的分类任务共享,得到可以将用户向量和对象向量映射至同一向量空间的共享映射参数。
[0055] 本实施例中的目标向量空间与相关技术中的用户向量空间或对象向量空间不同,该目标向量空间是用户和对象共享的同一个向量空间,在该向量空间中,用户和对象的维度相同,所以用户和对象在向量空间的嵌入式向量的远近,可以表示出用户和对象的关联关系,如用户对对象的感兴趣程序。例如,用户和对象的嵌入式向量在目标向量空间中越接近,则用户对对象感兴趣程度越高。
[0056] 本实施例中的共享映射参数,是通过对用户和对象的交互行为的学习得到的,共享映射参数中可以包含用户映射参数和对象映射参数,用户映射参数对用户向量和嵌入式向量的映射关系,是基于用户和用户的历史交互对象序列,以及对象和对象的历史交互用户序列得到的。所以用户映射参数反应的映射关系,一部学习于用户交互过的对象的序列,一部分学习于该用户交互过的对象对应的历史交互用户序列,所以该映射关系既被对象影响,也被用户影响。
[0057] 而对象映射参数和用户映射参数类似,也是基于对象和对象的历史交互用户序列,以及用户和用户的历史交互对象序列得到的。所以对象映射参数反应的映射关系,一部学习于该对象交互过的用户的序列,一部分学习于该对象交互过的用户对应的历史交互对象序列,所以该映射关系也是既被对象影响,也被用户影响。
[0058] 而本实施例中,用户映射参数和对象映射参数是作为一个整体,即共享映射参数参与了模型训练,所以用户映射参数和对象映射参数的映射关系是基于相同的用户池和相同的对象池学习到的,保证了共享映射参数映射的嵌入式向量在同一个目标向量空间中。
[0059] 本实施例中的共享映射参数可以基于模型训练得到,这在后续的内容中,有详细的说明。
[0060] 104、基于待推荐用户的嵌入式向量,以及候选对象的嵌入式向量,从候选对象中选择待推荐用户感兴趣的推荐对象。
[0061] 本实施例的待推荐用户和候选对象的嵌入式向量在一个向量空间中,所以可以基于嵌入式向量直接衡量待推荐用户对各个候选对象的感兴趣程度。
[0062] 可选的,推荐对象的场景,至少包含有参考对象和无参考对象的推荐场景,例如有用户输入和无用户输入的推荐。
[0063] 对于无用户输入的推荐场景,可以直接比较用户和对象的嵌入式向量的相似度。
[0064] 可选的,步骤“基于待推荐用户的嵌入式向量,以及候选对象的嵌入式向量,从候选对象中选择待推荐用户感兴趣的推荐对象”,可以包括:
[0065] 计算待推荐用户的嵌入式向量和候选对象的嵌入式向量之间的相似度;
[0066] 基于相似度,从候选对象中选择待推荐用户感兴趣的推荐对象。
[0067] 本实施例中,若推荐对象是服务器确定的,在确定推荐对象之后,服务器可以基于该推荐对象生成推荐信息,将推荐信息发送给待推荐用户的终端,以便终端基于推荐信息展示推荐对象。
[0068] 本实施例中,若推荐对象为终端确定的,则在确定推荐对象后,终端可以获取推荐对象的信息并展示给用户。
[0069] 本实施例中,待推荐用户的嵌入式向量和候选对象的嵌入式向量之间的相似度,可以是嵌入式向量的余弦相似度,或者可以计算嵌入式向量的向量距离(如欧式距离),以向量距离作为相似度的度量值。
[0070] 本实施例中,基于相似度,从候选对象中选择待推荐用户感兴趣的推荐对象时,可以基于相似度的大小对候选对象进行降序排列,从排列后的候选对象中选择排列在前的预设数量的对象作为推荐对象,或者,从排列后的候选对象中选择相似度不低于预设第一相似度阈值的对象作为推荐对象。
[0071] 本实施例中,可以通过对象推荐请求触发上述确定推荐对象的步骤。在一个实施例中,对象推荐请求可以是由终端发送给服务器的,例如,终端可以在检测到用户触发对象推荐操作时,生成对象推荐请求发送给服务器,服务器可以在接收到对象推荐操作时,确定待推荐用户,获取待推荐用户的用户向量和候选对象的对象向量。
[0072] 本实施例中,终端检测到用户触发对象推荐操作,具体可以是终端检测到用户针对特定客户端的启动操作,例如终端可以在检测到用户针对特定客户端的启动操作时,向该特定客户端对应的服务器发送对象推荐请求,该对象推荐请求用于获取该特定客户端可展示的对象,如视频、音频等等。
[0073] 在一个示例中,基于用户和对象的嵌入式向量,在用户输入有参考对象的场景下,可以检索到与参考对象相似的对象作为推荐对象。
[0074] 可选的,步骤“基于待推荐用户的嵌入式向量,以及候选对象的嵌入式向量,从候选对象中选择待推荐用户感兴趣的推荐对象”,可以包括:
[0075] 获取参考对象的对象向量,基于共享映射参数,将参考对象的对象向量映射至目标向量空间中,得到参考对象的嵌入式向量;
[0076] 计算参考对象的嵌入式向量与候选对象的嵌入式向量之间的相似度,基于相似度,确定候选对象中的候选推荐对象;
[0077] 计算待推荐用户的嵌入式向量和候选推荐对象的嵌入式向量之间的相似度,基于相似度,从候选推荐对象中选择待推荐用户感兴趣的推荐对象。
[0078] 本实施例中,基于相似度,选择候选推荐对象和推荐对象的方式,可以参考前述内容中从候选对象中基于相似度选择推荐对象的方案,在此不再赘述。
[0079] 可选的,在一个实施例中,具有社交功能的客户端有时候需要向用户推荐其他的用户,以便于维持用户对客户端的使用程度。例如通过相似用户推荐请求,确定待推荐用户的相似用户来推荐给待推荐用户,该相似用户推荐请求,可以是待推荐用户通过终端主动发送的,也可以是在满足相似用户推荐条件下,由服务器自动生成的。
[0080] 可选的,本实施例,还可以包括:
[0081] 获取候选用户的用户向量,基于共享映射参数,将候选用户的用户向量映射至目标向量空间中,得到候选用户的嵌入式向量;
[0082] 计算待推荐用户的嵌入式向量和候选用户的嵌入式向量之间的相似度;
[0083] 基于相似度,从候选用户中选择相似用户;
[0084] 基于相似用户的信息,生成响应于相似用户推荐请求的推荐信息。
[0085] 本实施例中,基于相似度,从候选用户中选择相似用户时,可以基于相似度的大小对候选用户进行降序排列,从排列后的候选用户中选择排列在前的预设数量的用户作为相似用户,或者,从排列后的候选用户中选择相似度不低于预设第二相似度阈值的用户作为相似用户。
[0086] 本实施例中,服务器可以是在接收到终端发送的相似用户推荐请求时,获取候选用户的用户向量,进行后续相似用户的确定过程。
[0087] 其中,相似用户推荐请求,可以是当终端检测到用户触发的相似用户搜索操作时,向服务器发送的。例如,在交友类客户端的功能页面,当终端检测到待推荐用户的相似用户搜索操作时,向服务器发送相似对象推荐请求。该相似对象推荐请求中,可以携带待推荐用户的用户标识,例如携带该交友类客户端的当前用户账号。
[0088] 本实施例中,对于上述的共享映射参数,可以基于用户和对象的交互行为信息确定,参考图1c,图1c中是本实施例获取共享映射参数的方法,本实施例中的共享映射参数获取过程可以是在步骤101之前进行的,也可以是在需要共享映射参数时,实时执行的,本实施例对此没有限制。
[0089] 105、获取联合训练样本,联合训练样本中包括第一样本和第二样本,第一样本中包含目标用户和目标用户的历史交互对象,第一样本的标签中的期望历史交互对象与历史交互对象,属于目标用户的同一历史交互对象序列;第二样本包含目标对象和目标对象的历史交互用户,第二样本的标签中的期望历史交互用户与历史交互用户,属于目标对象的同一历史交互用户序列;
[0090] 用户的历史交互对象,可以理解为在历史时间段中,与用户产生过交互的对象,对象的历史交互用户,可以理解为在历史时间段中,与对象产生过交互的用户,用户与对象的交互,可以理解为用户对对象的点击、浏览、搜索、购买、播放、分享、评论等等行为,可以理解的是,对于不同对象,交互的行为类型可能不同。
[0091] 本实施例中,对于第一样本对应的历史交互对象序列,序列中的对象和目标用户的交互行为可以是相同的,例如,在同一个历史交互对象序列中,目标用户与对象的交互行为是目标用户对对象的购买行为。当然,在其他实施例中,对于第一样本对应的历史交互对象序列,序列中的对象和目标用户的交互行为可以是不同的,例如,在同一个历史交互对象序列中,目标用户对对象的交互行为包括目标用户对对象的浏览行为和购买行为。
[0092] 类似的,对于第二样本对应的历史交互用户序列,序列中的用户和目标对象的交互行为可以是相同的,例如,在同一个历史交互用户序列中,目标对象与用户的交互行为是用户对目标对象的购买行为。当然,在其他实施例中,对于第二样本对应的历史交互用户序列,序列中的用户和目标对象的交互行为可以是不同的,例如,在同一个历史交互用户序列中,用户对目标对象的交互行为包括用户对目标对象的浏览行为和购买行为。
[0093] 本实施例中,第一样本用于预测样本中目标用户交互的历史交互对象对应的目标历史交互对象,第二样本用于预测样本中目标对象的历史交互用户对应的目标历史交互用户。
[0094] 本实施例中的第一样本中,样本标签中携带的期望历史交互对象和样本中的历史交互对象,可以组成历史交互对象序列中的一段子序列,第二样本中,样本标签携带的期望历史交互用户和样本中的历史交互用户,也可以组成历史交互用户序列中的一段子序列。
[0095] 可选的,本实施例中,步骤“获取联合训练样本”,可以包括:
[0096] 获取目标用户和目标用户的历史交互对象序列,基于目标用户和目标用户的历史交互对象序列生成第一样本,其中,历史交互对象序列中的历史交互对象基于与目标用户的交互时间排序;
[0097] 获取目标对象和目标对象的历史交互用户序列,基于目标对象和目标对象的历史交互用户序列生成第二样本,其中,历史交互用户序列中的历史交互用户基于与目标对象的交互时间或交互频次排序;
[0098] 基于第一样本和第二样本得到n批联合训练样本,其中,n为正整数,一批联合训练样本用于对多任务分类模型进行一次训练。
[0099] 本实施例中,目标用户的历史交互对象序列可以有一个或多个。
[0100] 一个示例中,步骤“获取目标用户和目标用户的历史交互对象序列”,可以包括:
[0101] 获取目标用户;
[0102] 获取目标用户的历史交互对象,基于历史交互对象与目标用户的交互行为参数,对历史交互对象进行排序,得到目标用户的历史交互对象序列。
[0103] 其中,交互行为参数,可以是目标用户与历史交互对象的交互时间和交互频次等等参数。
[0104] 例如,可以将目标用户A交互过的所有历史交互对象按照交互时间的先后顺序进行排列得到历史交互对象序列,其中,可以将目标用户A最早交互的对象排列在序列的最前面,或者,可以将目标用户A最新交互的对象排列在历史交互对象序列的最前面,本实施例对此没有限制。
[0105] 在其他实施例中,可选的,还可以基于其他的排序规则对目标用户的历史交互对象进行排列,例如,基于目标用户对历史交互对象的交互频次对历史交互对象进行排列等等。
[0106] 另一个示例中,步骤“获取目标用户和目标用户的历史交互对象序列”,可以包括:
[0107] 获取目标用户的历史交互对象,确定各个历史交互对象所属的会话(session);
[0108] 基于目标用户对会话中的历史交互对象的交互行为参数,对会话中的历史交互对象进行排列,得到各个会话对应的历史交互对象序列。
[0109] 其中,可以基于时间段来划分会话,例如将每一天内用户的交互行为划分为一个session。
[0110] 例如,获取目标用户A与所有历史交互对象的交互时间,以天为单位划分历史交互对象,每一天内交互的历史交互对象属于一个session,将每个会话内的历史交互对象基于交互时间的顺序进行排列,得到历史交互对象序列。其中,会话内的历史交互对象的排列还可以基于其他排列规则,例如基于会话内历史交互对象的交互次数等等,本实施例对此没有限制。
[0111] 类似的,本实施例中,目标对象的历史交互用户序列也可以有一个或多个。本实施例中,可以将所有的对象均作为目标对象获取对应的历史交互用户序列,或者,也可以将目标用户交互过的对象作为目标对象,获取对应的历史交互用户序列,本实施例对此没有限制。
[0112] 一个示例中,步骤“获取目标对象和目标对象的历史交互用户序列”,可以包括:
[0113] 获取目标对象;
[0114] 获取目标对象的历史交互用户,基于历史交互用户与目标对象的交互行为参数,对历史交互用户进行排序,得到历史交互用户序列。
[0115] 其中,交互行为参数,可以是目标用户与历史交互对象的交互时间和交互频次等等参数。
[0116] 例如,可以将目标对象a交互过的所有历史交互用户按照交互时间的先后顺序进行排列得到历史交互用户序列,其中,可以将目标对象a最早交互的用户排列在序列的最前面,或者,可以将目标对象a最新交互的用户排列在历史交互用户序列的最前面,本实施例对此没有限制。
[0117] 在其他实施例中,可选的,还可以基于其他的排序规则对目标对象的历史交互用户进行排列,例如,基于目标对象与历史交互用户的交互频次对历史交互对象进行排列等等。
[0118] 另一个示例中,步骤“获取目标对象和目标对象的历史交互用户序列”,可以包括:
[0119] 获取目标对象的历史交互用户,基于各个历史交互用户的交互时间,将历史交互用户划分为多个用户集合;
[0120] 基于用户集合中的历史交互用户对目标对象的交互时间,对用户集合中的历史交互用户进行排列,得到各个用户集合对应的历史交互用户序列。
[0121] 例如,将一天或一周内目标对象的历史交互用户划分到同一个集合中。
[0122] 比如,获取目标对象a与所有历史交互用户的交互时间,以周为单位确定历史交互用户所属的用户集合,其中,每一周内与目标对象交互的历史交互用户属于一个用户集合,将每个用户集合内的历史交互用户基于交互时间的顺序,得到历史交互用户序列。
[0123] 本实施例中,后续步骤中的多任务分类模型采用的预测方式不同,则第一样本和第二样本的生成方式也有所不同,本实施例中,可以采用类似于以中心词预测上下文,或者以上下文预测中心词的两种方式。
[0124] 对于类似以中心词预测上下文的方式:
[0125] 对于第一样本,本实施例中,可以随机选择目标用户的历史交互对象序列中的一个历史交互对象作为中心词,以该中心词周围的历史交互对象作为被预测的上下文,该周围的历史交互对象即为第一样本中的期望历史交互对象,目标用户和作为中心词的历史交互对象可以构成第一样本。
[0126] 例如,假设目标用户u1的历史交互对象序列为(t1,t2,t3,······,tk)本实施例中,第一样本可以为{x={u1,t2},y={t1,t3}},{x={u1,t3},y={t1,t2,t4,t5}},等等,本实施例中对于被预测的上下文中词的数量没有限定,也即对样本标签中的期望历史交互对象的数量没有限制。
[0127] 对于第二样本,也可以通过类似的方式生成,即可以随机选择目标对象的历史交互用户序列中的一个历史交互用户作为中心词,以该中心词周围的历史交互用户作为被预测的上下文,得到第二样本。
[0128] 例如,假设目标对象t1的历史交互用户序列为(u1,u2,u3,······,un)本实施例中,第一样本可以为{x={t1,u2},y={u1,u3}},{x={t1,u3},y={u1,u2,u4,u5}},等等,本实施例中对于被预测的上下文中词的数量没有限定,也即对样本标签中的期望历史交互用户的数量没有限制。
[0129] 对于类似以上下文预测中心词的方式:
[0130] 本实施例中的上下文可以不严格按照选择中心词前和后的词作为上下文的方式确定,可以选择序列中在中心词前和/或后的词作为上下文使用。
[0131] 对于第一样本,可以随机选择目标用户的历史交互对象序列中的一个历史交互对象作为中心词(即被预测的词),以该中心词周围的历史交互对象作为用于预测的上下文,该中心词对应的历史交互对象即为第一样本中的期望历史交互对象,目标用户和作为上下文的历史交互对象可以构成第一样本。
[0132] 例如,假设目标用户u1的历史交互对象序列为(t1,t2,t3,······,tk)本实施例中,第一样本可以为{x={u1,t2,t3},y={t1}},{x={u1,t3,t4},y={t5}},或者{x={u1,t1,t3,t4},y={t2}}等等,本实施例中对于用于预测的上下文中词的数量没有限定,也即对样本中的历史交互对象的数量没有限制。
[0133] 对于第二样本,也是类似的,可以随机选择目标对象的历史交互用户序列中的一个历史交互用户作为中心词(即被预测的词),以该中心词周围的历史交互用户作为用于预测的上下文,得到第二样本。
[0134] 例如,假设目标对象t1的历史交互用户序列为(u1,u2,u3,······,un)本实施例中,第一样本可以为{x={t1,u1,u2},y={u3}},{x={t1,u3,u5},y={u4}},等等,本实施例中对于被预测的上下文中词的数量没有限定,也即对样本标签中的期望历史交互用户的数量没有限制。
[0135] 可以理解的是,模型需要不断地重复训练才可以趋于完善,所以用于训练的联合训练样本可以有多批。每一批联合训练样本由一部分第一样本和一部分第二样本组成。本实施例中的“批”,即为Batch,其大小是一个超参数,用于定义在更新内部模型参数之前要处理的样本数。
[0136] 106、获取联合训练样本中的用户和对象的嵌入式向量,其中,联合训练样本中用户和对象的嵌入式向量由多任务分类模型中的共享映射层对联合训练模型中用户和对象的初始向量进行映射得到;
[0137] 可选的,本实施例中,共享映射层由第一样本对应的第一分类任务和第二样本对应的第二分类任务共享,可以将第一样本和第二样本中包含的对象和用户映射为嵌入式向量。
[0138] 本实施例中,联合训练样本可以由多任务分类模型自身基于目标用户和历史交互对象序列,以及目标对象和历史交互用户序列生成,也可以预先设置联合训练样本之后,作为多任务分类模型的输入。
[0139] 可选的,本实施例中,多任务分类模型还包括样本生成层,具有基于目标用户和历史交互对象序列生成第一样本,以及基于目标对象和历史交互用户序列生成第二样本的作用。
[0140] 本实施例中,样本生成层可以位于共享映射层的前一层,先生成第一样本或第二样本,再由共享映射层进行映射处理获取嵌入式向量,或者样本生成层可以位于共享映射层的后一层,先由共享映射层将用户和对象映射为嵌入式向量,再由样本生成层生成第一样本和第二样本,本实施例对此没有限制。
[0141] 其中,每一批联合训练样本中,第一样本和第二样本的数量可以相同。
[0142] 本实施例中,在基于每一批联合训练样本对多任务分类模型进行训练时,可以利用第一样本和第二样本交替的方式对多任务分类模型进行训练。
[0143] 可选的,对于由多任务分类模型自身生成第一样本和第二样本的方案,可以在第一样本和第二样本的总数量等于一批联合训练样本的数量时,基于该批联合训练样本的预测结果和标签对多任务分类模型的参数进行调整。
[0144] 可选的,本实施例中,每一批联合训练样本中的第一样本和第二样本,可以是由一定关联性的,例如某第一样本和某第二样本包含相同用户,或者某第一样本和第二样本包含相同对象。
[0145] 可选的,本实施例中,步骤“基于第一样本和第二样本得到n批联合训练样本”,包括:
[0146] 在生成每一批联合训练样本时,从第一样本中抽取预设数量的第一样本,基于已抽取的第一样本,从第二样本中抽取关联的第二样本,其中,关联的第二样本与至少一个已抽取的第一样本包含相同的物品或用户;
[0147] 以每一批次抽取的第一样本和关联的第二样本组成一批联合训练样本,最终得到n批联合训练样本。
[0148] 例如,在对多任务分类模型的两次参数更新之间的训练过程,多任务分类模型可以基于目标用户u1和目标用户的历史交互对象序列A1,生成第一样本,基于第一样本进行预测,再以历史交互对象序列A1中某历史交互对象如t1作为目标对象,获取该目标对象t1的历史交互用户序列B1,基于目标对象t1和历史交互用户序列B1生成第二样本,基于第二样本进行预测,再以历史交互用户序列B1中某历史交互用户如u3作为目标用户,获取目标用户u3的历史交互对象序列A3,生成第一样本,基于第一样本进行预测,如此循环往复,直到第一样本和第二样本的总数量与Batch的大小定义的样本数相等,基于第一样本和第二样本的预测结果和标签对多任务分类模型的参数进行调整。
[0149] 本实施例中,n批联合训练模型可以是在每一次参数更新过程中实时生成的,也可以是由外部设备或模型预先生成之后,以多任务分类模型的训练节奏,分批输入至多任务分类模型的,本实施例对此没有限制。
[0150] 在预先生成第一样本和第二样本之后,本实施例中,可以将第一样本和第二样本进行混合,然后再将混合的样本随机打乱,以Batch定义的样本数量,从打乱的样本中抽取满足该样本数量的样本作为联合训练样本。
[0151] 可选的,本实施例的共享映射层可以采用自然语言处理中的任意方式实现对用户和对象的嵌入式向量的获取,本实施例对此没有限制。
[0152] 在一个实施例中,共享映射层可以是基于联合训练样本,利用神经网络原理构建的嵌入层,即Embedding层,联合训练样本中的用户和对象可以采用one-hot向量表示,即联合训练样本中用户和对象的初始向量可以是one-hot向量。
[0153] 本实施例中,嵌入层可以对第一样本和第二样本中的用户和对象的one-hot向量,通过嵌入层具有的向量矩阵进行降维,得到用户和对象的嵌入式向量,该嵌入式向量可以在多任务分类模型的不断训练中逐步完善。
[0154] 本实施例中,为了使得用户和对象对应的嵌入式向量在同一个向量空间中,借鉴了Doc2vec的原理,第一样本和第二样本中均包含用户和对象的初始向量。
[0155] 对于目标用户和历史交互对象序列而言,历史交互对象序列中的历史交互对象可以看作文章中的词语,目标用户可以看作这些词语所属的文章,第一样本中包含文章中词语的向量,以及句子所属文章的向量,根据生成第一样本的过程可知,目标用户对应的第一样本的数量一般是有多个,对于第一样本而言,在其参与的多任务分类模型的训练过程中,目标用户的向量会不断参与训练,嵌入层可以慢慢在目标用户对应的嵌入式向量中,增加不同历史交互对象与该目标用户之间的关联。
[0156] 以基于目标用户和历史交互对象序列为例,对目标用户的嵌入式向量的获取进行示例说明。例如,参考图2a,该图2a示出了基于目标用户如u1,以及u1的历史交互对象序列(t1,t2,t3,······,tk)进行训练的分类模型的结构示意图,图2a中的分类模型是基于CBOW方式的模型,其可以使用全连接层实现。对于该模型,可以通过在历史交互对象序列采用滑动窗口的方式,生成包含u1和历史交互的对象的训练样本,如{x={u1,t2,t3},y=t1}等等,这些训练样本等同于本实施例的第一样本。通过训练样本的训练,该模型可以学习如f(u1,t2,t3)=t1的映射关系,进而学习到目标用户如u1的嵌入式向量。
[0157] 类似的,对于目标对象和历史交互用户序列而言,历史交互用户序列中的历史交互用户可以看作文章中的词语,目标对象可以看作这些词语所属的文章,第二样本中包含文章中词语的向量,以及句子所属文章的向量,根据生成第二样本的过程可知,目标对象对应的第二样本的数量一般也是有多个,对于第二样本而言,在其参与的多任务分类模型的训练过程中,目标对象的向量会不断参与训练,嵌入层可以慢慢在目标对象对应的嵌入式向量中,增加不同历史交互用户与该目标对象之间的关联。
[0158] 以基于目标对象和历史交互用户序列为例,对目标对象的嵌入式向量的获取进行示例说明。例如,参考图2b,该图2b示出了基于目标对象如t1,以及t1的历史交互用户序列(u1,u2,u3,······,uq)进行训练的分类模型的结构示意图,图2b中的分类模型是基于CBOW方式的模型,其可以使用全连接层实现。对于该模型,可以通过在历史交互用户序列采用滑动窗口的方式,生成包含目标对象t1以及历史交互用户的训练样本,如{x={t1,u2,u3},y=u1}等,这些训练样本等同于本实施例的第二样本。通过这些训练样本的训练,该模型可以学习到如f(t1,u2,u3)=u1等映射关系,最终学习到目标用户如u1的嵌入式向量。
[0159] 但是本实施例中,多任务分类模型的训练过程对各个对象和用户的嵌入式向量的影响不止于此,本实施例中多任务分类模型具有两个分类任务,分别是基于第一样本完成的第一分类任务,和基于第二样本完成的第二分类任务,这两个任务共享了多任务分类模型的共享映射层,所以多任务分类模型的共享映射层不仅可以从第一样本中学习到历史交互对象与目标用户的关联,还可以从包含目标用户的第二样本中,学习到其他用户与目标用户的关联,以及,不仅可以从第二样本中,学习到历史交互用户与目标对象的关联,还可以从包含目标对象的第一样本中,学习到其他对象与目标对象的关联,所以对象和用户的嵌入式向量中均包含从用户和对象中学习到的信息,进一步保证了对象和用户的嵌入式向量在一个向量空间中。
[0160] 参考图2c,图2c示出了本实施例的多任务分类模型的一种可选的结构的示意图。在图2c中,联合训练样本中的第一样本和第二样本均需要通过嵌入层映射为嵌入式向量,再进行后续的预测,
[0161] 107、通过所述多任务分类模型中的分类任务层,基于所述第一样本中目标用户和历史交互对象的嵌入式向量,预测对应的目标历史交互对象,基于所述第二样本中目标对象和历史交互用户的嵌入式向量,预测对应的目标历史交互用户;
[0162] 本实施例中,分类任务层可以是独立的一层或并列的两层,例如分类任务层包括第一分类任务层和第二分类任务层。
[0163] 步骤“通过所述多任务分类模型中的分类任务层,基于所述第一样本中目标用户和历史交互对象的嵌入式向量,预测对应的目标历史交互对象,基于所述第二样本中目标对象和历史交互用户的嵌入式向量,预测对应的目标历史交互用户”,可以包括:
[0164] 当联合训练样本为第一样本时,通过多任务分类模型中的第一分类任务层,基于第一样本中目标用户和历史交互对象的嵌入式向量,预测对应的目标历史交互对象;
[0165] 当联合训练样本为第二样本时,通过多任务分类模型中的第二分类任务层,基于第二样本中目标对象和历史交互用户的嵌入式向量,预测对应的目标历史交互用户。
[0166] 本实施例中,第一分类任务层和第二分类任务层的训练并没有固定的先后顺序之分,基于前述示例中的描述可知,在对多任务分类模型的每一次参数调整前,均会基于一批联合训练样本进行模型训练,在训练过程中,第一样本和第二样本可以采用交替方式对模型进行训练。
[0167] 如图2c所示,在一个可选的模型结构中,第一分类任务层和第二分类任务层可以是相互独立的两个网络层。
[0168] 在一个可选的实施例中,第一分类任务层和第二分类任务层还可以由同一个网络层实现,即分类任务层可以仅有一个网络层。可以理解的是,一个网络层不代表网络层只有一层。分类任务层只有一个网络层时,该网络层可以具有两个输出(如图2d所示),或者,在可以实现两个分类任务时,该网络层还可以只有一个输出。在一个可选的示例中,嵌入层和第一分类任务层以及第二分类任务层可以以全连接层的结构实现。
[0169] 本实施例中,第一分类任务层和第二分类任务层的作用分别是基于第一样本预测目标历史交互对象,基于第二样本预测目标历史交互用户,通过前述内容的描述可知,可以采用基于中心词预测上下文(类似于CBOW(Continuous Bag of Words)模型的预测方式)和基于上下文预测中心词(类似于Skip-gram模型的预测方式)的方式进行预测。
[0170] 若采用以上下文预测中心词的方式,本实施例中的第一样本对应的期望历史交互对象的数量为1,第二样本对应的期望历史交互用户的数量为1,第一样本中的历史交互对象在目标用户的历史交互对象序列中,位于期望历史交互对象的附近;第二样本中的历史交互用户在目标对象的历史交互序列中,位于期望历史交互用户的附近。
[0171] 上述期望历史交互对象和期望历史交互用户即为中心词,上述的“附近”,第一样本和第二样本中,与中心词同类型的向量,是在对应的序列中,位于中心词之前的向量,或者位于中心词之后的向量,或者位于中心词之前的向量以及之后的向量。例如,对于图2a中目标用户u1的历史交互对象序列,若某第一样本的标签中期望历史交互对象为t3,则该第一样本中的历史交互对象可以为t1和t2,或者为t2和t3,或者为t4、t5和t6等等。类似的,对于图2b中目标对象t1的历史交互用户序列,若某第二样本的标签中期望历史交互用户为u3,则该第二样本中的历史交互用户可以为u1和u2,或者为u2和u3,或者为u4、u5和u6等等。
[0172] 可选的,本实施例中,步骤“当联合训练样本为第一样本时,通过多任务分类模型中的第一分类任务层,基于第一样本中目标用户和历史交互对象的嵌入式向量,预测对应的目标历史交互对象”,可以包括:
[0173] 当联合训练样本为第一样本时,以第一样本中的历史交互对象作为中心词的上下文,通过第一分类任务层,基于第一样本中目标用户和历史交互对象的嵌入式向量,对作为上下文的中心词的目标历史交互对象进行预测;
[0174] 对应的,步骤“当联合训练样本为第二样本时,通过多任务分类模型中的第二分类任务层,基于第二样本中目标对象和历史交互用户的嵌入式向量,预测对应的目标历史交互用户”,包括:
[0175] 当联合训练样本为第二样本时,以第二样本中的历史交互用户作为中心词的上下文,通过第二分类任务层,基于第二样本中目标对象和历史交互用户的嵌入式向量,对作为上下文的中心词的目标历史交互用户进行预测。
[0176] 若采用以中心词预测上下文的方式,第一样本包含的历史交互对象的数量为1,第二样本包含的历史交互用户的数量为1,第一样本对应的期望历史交互对象,在目标用户的历史交互对象序列中,位于第一样本包含的历史交互对象附近,第二样本对应的期望历史交互用户,在目标对象的历史交互用户序列中,位于第二样本包含的历史交互用户附近。
[0177] 上述的第一样本中的历史交互对象和第二样本中的历史交互用户即为中心词,上述的“附近”,可以理解为第一样本和第二样本的标签中的向量,在对应的序列中,位于中心词之前,或者位于中心词之后,或者位于中心词之前以及之后。例如,对于图2a中目标用户u1的历史交互对象序列,若某第一样本的标签中期望历史交互对象为t3和t1,则该第一样本中的历史交互对象可以为t1等等。类似的,对于图2b中目标对象t1的历史交互用户序列,若某第二样本的标签中期望历史交互用户为u2和u3,则该第二样本中的历史交互用户可以为u1或u4等等。
[0178] 可选的,步骤“当联合训练样本为第一样本时,通过多任务分类模型中的第一分类任务层,基于第一样本中目标用户和历史交互对象的嵌入式向量,预测对应的目标历史交互对象”,可以包括:
[0179] 当联合训练样本为第一样本时,以第一样本中的历史交互对象作为中心词,通过第一分类任务层,基于第一样本中目标用户和历史交互对象的嵌入式向量,对作为中心词的上下文的目标历史交互对象进行预测;
[0180] 对应的,步骤“当联合训练样本为第二样本时,通过多任务分类模型中的第二分类任务层,基于第二样本中目标对象和历史交互用户的嵌入式向量,预测对应的目标历史交互用户”,可以包括:
[0181] 108、基于第一样本的标签和对应的目标历史交互对象,以及第二样本的标签和对应的目标历史交互用户,对多任务分类模型中的参数进行调整,以得到训练完成的多任务分类模型;
[0182] 本实施例中,对多任务分类模型中的参数进行调整,一般是在一批联合训练样本训练完成后进行的,本实施例中具有n批样本,则会对多任务分类模型进行至少n次参数调整。
[0183] 可选的,步骤108具体可以是,在一批联合训练样本对多任务分类模型训练后,基于该批联合训练样本中第一样本的标签和对应的目标历史交互对象,以及第二样本的标签和对应的目标历史交互用户,对多任务分类模型中的参数进行调整。
[0184] 本实施例的多任务分类模型具有两个分类任务,该两个分类任务具有各自的目标函数,对多任务分类模型的参数调整,可以基于该两个目标函数进行。本实施例中,目标函数的具体形式不限,可以是任意与分类有关的目标函数。
[0185] 令第一分类任务层的分类任务为第一分类任务(即第一样本对应的分类任务为第一分类任务),对应的目标函数为第一目标函数,第二分类任务层的分类任务为第二分类任务(即第二样本对应的分类任务为第二分类任务),对应的目标函数为第二目标函数。
[0186] 步骤108中,调整多任务分类模型的参数的具体步骤,可以包括:
[0187] 获取第一分类任务层的第一目标函数,获取第二分类任务层的第二目标函数;
[0188] 对第一目标和第二目标函数求和,得到多任务分类模型的总目标函数;
[0189] 基于第一样本的标签和对应的目标历史交互对象,以及第二样本标签和对应的目标历史交互用户,对多任务分类模型中的参数进行调整,以优化总目标函数,得到训练完成的多任务分类模型。
[0190] 本实施例中,第一目标函数和第二目标函数的求和方式,可以是直接求和,或者是加权求和,本实施例对此没有限制。
[0191] 可选的,调整多任务分类模型中的参数包括但不限于调整共享映射层、第一分类任务层和第二分类任务层的权重参数。
[0192] 109、基于训练完成的多任务分类模型的共享映射层,获取联合训练样本中用户和对象的共享映射参数;
[0193] 通过前述内容中对于共享映射层的描述,对于基于嵌入层实现的共享映射层,嵌入层通过权重矩阵将用户和对象映射为维度较低的嵌入式向量,其中,对于权重矩阵中,用户和对象的向量维度数,可以根据实际需要设置,本实施例对此没有限制。
[0194] 本实施例中,可选的,步骤“基于训练完成的多任务分类模型的共享映射层,获取联合训练样本中用户和对象的共享映射参数”,可以包括:
[0195] 从训练完成的多任务分类模型中,获取共享映射层的权重矩阵,将所述权重矩阵,作为所述联合训练样本中用户和对象的共享映射参数。
[0196] 本实施例中,对训练完成多任务分类模型,在推荐场景下,主要是利用嵌入层的嵌入向量,一般不需要利用模型的输出结果,所以在模型训练完成之后,可以将多任务分类模型的第一分类任务层和第二分类任务层砍掉,在砍掉两层任务层之后,将对象或用户的one-hot向量与嵌入层相乘,则可以得到对象或用户的嵌入式向量。
[0197] 可选的,从训练完成的多任务分类模型中,获取共享映射层的权重矩阵,可以包括:将训练完成的多任务分类模型的第一分类任务层和第二分类任务层剪切掉,得到共享映射层,该共享映射层包含权重矩阵。
[0198] 对应的,基于权重矩阵,获取联合训练样本中包含的用户和对象的嵌入式向量,可以包括:以联合训练样本中对象或用户的one-hot向量,输入共享映射层,以共享映射层的输出向量作为该对象或用户的嵌入式向量。
[0199] 本实施例中,基于步骤109的方案,可以获取联合训练样本中涉及的所有对象和用户的嵌入式向量。可选的,在获取该嵌入式向量之后,可以将用户和对象的嵌入式向量存储于特定的存储区域中,例如,存储于服务器的特定存储空间中。或者,可以基于区块链技术,将这些嵌入式向量存储于服务器所属区块链中,具体的,可以存储于区块链的共享账本中。
[0200] 本实施例中,用户的嵌入式向量可以作为一种用户特征加入到用户已有的特征集合中,以丰富对用户的表示。对象的嵌入式向量,也可以作为对象的一种特征,与对象的类型等信息一起构成对象的特征集合,以特征集合表示对象。
[0201] 在一个示例中,在存储的时候,可以将用户的用户标识和用户的嵌入式向量对应存储,将对象的对象标识和对象的嵌入式向量对象存储,例如以Key-Value键值对的形式对应存储。便于查找用户和对象的嵌入式向量。
[0202] 采用本实施例的方案,可以获取待推荐用户的用户向量,以及候选对象的对象向量;基于共享映射参数,将所述待推荐用户的用户向量映射至目标向量空间中,得到所述待推荐用户的嵌入式向量;基于所述共享映射参数,将所述候选对象的对象向量映射至所述目标向量空间中,得到所述候选对象的嵌入式向量;基于所述待推荐用户的嵌入式向量,以及所述候选对象的嵌入式向量,从所述候选对象中选择所述待推荐用户感兴趣的推荐对象,如上所述,待推荐用户和候选对象被映射至同一个向量空间即目标向量空间,所以相较于相关技术只能对对象进行相似度衡量的方案,本实施例可以基于待推荐用户和候选对象的嵌入式向量,直接衡量待推荐用户对候选对象的感兴趣程度,从而选择出待推荐用户感兴趣的推荐对象,有利于提升推荐速度和效果。
[0203] 为了更好地实施以上方法,相应的,本发明实施例还提供一种推荐装置,该推荐装置可以集成在终端中,参考图3a该推荐装置包括:
[0204] 向量获取单元301,用于获取待推荐用户的用户向量,以及候选对象的对象向量;
[0205] 第一映射计算单元302,用于基于共享映射参数,将所述待推荐用户的用户向量映射至目标向量空间中,得到所述待推荐用户的嵌入式向量;
[0206] 第二映射计算单元303,用于基于所述共享映射参数,将所述候选对象的对象向量映射至所述目标向量空间中,得到所述候选对象的嵌入式向量,共享映射参数是由用户向量和对象向量共享的,且用于将用户向量和对象向量映射至同一向量空间的映射参数;
[0207] 推荐单元304,用于基于所述待推荐用户的嵌入式向量,以及所述候选对象的嵌入式向量,从所述候选对象中选择所述待推荐用户感兴趣的推荐对象。
[0208] 可选的,推荐单元304,用于计算所述待推荐用户的嵌入式向量和所述候选对象的嵌入式向量之间的相似度;基于所述相似度,从所述候选对象中选择所述待推荐用户感兴趣的推荐对象。
[0209] 可选的,推荐单元304,用于获取参考对象的对象向量,基于所述共享映射参数,将所述参考对象的对象向量映射至所述目标向量空间中,得到所述参考对象的嵌入式向量;计算所述参考对象的嵌入式向量与所述候选对象的嵌入式向量之间的相似度,基于所述相似度,确定所述候选对象中的候选推荐对象;计算所述待推荐用户的嵌入式向量和所述候选推荐对象的嵌入式向量之间的相似度,基于所述相似度,从所述候选推荐对象中选择所述待推荐用户感兴趣的推荐对象。
[0210] 可选的,参考图3b,本实施例的装置还包括:
[0211] 联合训练样本获取单元305,用于获取联合训练样本,联合训练样本中包括第一样本和第二样本,第一样本中包含目标用户和目标用户的历史交互对象,第一样本的标签中的期望历史交互对象与历史交互对象,属于目标用户的同一历史交互对象序列;第二样本包含目标对象和目标对象的历史交互用户,第二样本的标签中的期望历史交互用户与历史交互用户,属于目标对象的同一历史交互用户序列;
[0212] 映射单元306,用于获取联合训练样本中的用户和对象的嵌入式向量,其中,联合训练样本中用户和对象的嵌入式向量由多任务分类模型中的共享映射层对联合训练模型中用户和对象的初始向量进行映射得到;
[0213] 任务单元307,用于通过所述多任务分类模型中的分类任务层,基于所述第一样本中目标用户和历史交互对象的嵌入式向量,预测对应的目标历史交互对象,基于所述第二样本中目标对象和历史交互用户的嵌入式向量,预测对应的目标历史交互用户;
[0214] 优化单元308,用于基于第一样本的标签和对应的目标历史交互对象,以及第二样本的标签和对应的目标历史交互用户,对多任务分类模型中的参数进行调整,以得到训练完成的多任务分类模型;
[0215] 映射参数获取单元309,用于基于训练完成的多任务分类模型的共享映射层,获取联合训练样本中用户和对象的共享映射参数。
[0216] 可选的,联合训练样本获取单元305,包括:
[0217] 第一样本生成子单元,用于获取目标用户和目标用户的历史交互对象序列,基于目标用户和目标用户的历史交互对象序列生成第一样本,其中,历史交互对象序列中的历史交互对象基于与目标用户的交互时间排序;
[0218] 第二样本生成子单元,用于获取目标对象和目标对象的历史交互用户序列,基于目标对象和目标对象的历史交互用户序列生成第二样本,其中,历史交互用户序列中的历史交互用户基于与目标对象的交互时间或交互频次排序;
[0219] 联合训练样本生成子单元,用于基于第一样本和第二样本得到n批联合训练样本,其中,n为正整数,一批联合训练样本用于对多任务分类模型进行一次训练。
[0220] 本实施例中,联合训练样本生成子单元,用于:
[0221] 在生成每一批联合训练样本时,从第一样本中抽取预设数量的第一样本,基于已抽取的第一样本,从第二样本中抽取关联的第二样本,其中,关联的第二样本与至少一个已抽取的第一样本包含相同的物品或用户;
[0222] 以每一批次抽取的第一样本和关联的第二样本组成一批联合训练样本,最终得到n批联合训练样本。
[0223] 可选的,本实施例中,映射参数获取单元309,用于从训练完成的多任务分类模型中,获取共享映射层的权重矩阵,将所述权重矩阵,作为所述联合训练样本中用户和对象的共享映射参数。
[0224] 可选的,优化单元308,包括:
[0225] 第一目标函数获取子单元,用于获取第一样本对应的第一分类任务的第一目标函数;
[0226] 第二目标函数获取子单元,用于获取第二样本对应的第二分类任务的第二目标函数;
[0227] 目标函数融合子单元,用于对第一目标和第二目标函数求和,得到多任务分类模型的总目标函数;
[0228] 调整子单元,用于基于第一样本的标签和对应的目标历史交互对象,以及第二样本标签和对应的目标历史交互用户,对多任务分类模型中的参数进行调整,以优化总目标函数,得到训练完成的多任务分类模型。
[0229] 可选的,任务单元307,包括:
[0230] 第一任务子单元,用于当联合训练样本为第一样本时,通过多任务分类模型中的第一分类任务层,基于第一样本中目标用户和历史交互对象的嵌入式向量,预测对应的目标历史交互对象;
[0231] 第二任务子单元,用于当联合训练样本为第二样本时,通过多任务分类模型中的第二分类任务层,基于第二样本中目标对象和历史交互用户的嵌入式向量,预测对应的目标历史交互用户。
[0232] 可选的,第一样本对应的期望历史交互对象的数量为1,第二样本对应的期望历史交互用户的数量为1,第一样本中的历史交互对象在目标用户的历史交互对象序列中,位于期望历史交互对象的附近;第二样本中的历史交互用户在目标对象的历史交互序列中,位于期望历史交互用户的附近。
[0233] 对应的,第一任务子单元,用于当联合训练样本为第一样本时,以第一样本中的历史交互对象作为中心词的上下文,通过第一分类任务层,基于第一样本中目标用户和历史交互对象的嵌入式向量,对作为上下文的中心词的目标历史交互对象进行预测;
[0234] 第二任务子单元,用于当联合训练样本为第二样本时,以第二样本中的历史交互用户作为中心词的上下文,通过第二分类任务层,基于第二样本中目标对象和历史交互用户的嵌入式向量,对作为上下文的中心词的目标历史交互用户进行预测。
[0235] 可选的,一个示例中,第一样本包含的历史交互对象的数量为1,第二样本包含的历史交互用户的数量为1,第一样本对应的期望历史交互对象,在目标用户的历史交互对象序列中,位于第一样本包含的历史交互对象附近,第二样本对应的期望历史交互用户,在目标对象的历史交互用户序列中,位于第二样本包含的历史交互用户附近;
[0236] 对应的,第一任务子单元,用于当联合训练样本为第一样本时,以第一样本中的历史交互对象作为中心词,通过第一分类任务层,基于第一样本中目标用户和历史交互对象的嵌入式向量,对作为中心词的上下文的目标历史交互对象进行预测;
[0237] 对应的,第二任务子单元,用于当联合训练样本为第二样本时,以第二样本中的历史交互用户作为中心词,通过第二分类任务层,基于第二样本中目标对象和历史交互用户的嵌入式向量,对作为中心词的上下文的目标历史交互用户进行预测。
[0238] 可选的,本实施例的推荐装置还包括:存储单元,用于将用户和对象的共享映射参数,存储至区块链中。
[0239] 采用本实施例的方案,可以获取嵌入式表示在一个空间中的对象和用户的嵌入式向量,便于同时基于对象和用户的嵌入式向量进行推荐。
[0240] 此外,本发明实施例还提供一种计算机设备,该计算机设备可以为终端或者服务器,如图4所示,其示出了本发明实施例所涉及的计算机设备的结构示意图,具体来讲:
[0241] 该计算机设备可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402和电源403等部件。本领域技术人员可以理解,图4中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0242] 其中:
[0243] 处理器401是该计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器402内的软件程序和/或单元,以及调用存储在存储器402内的数据,执行计算机设备的各种功能和处理数据,从而对计算机设备进行整体监控。可选的,在一个实施例中,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
[0244] 存储器402可用于存储软件程序以及单元,处理器401通过运行存储在存储器402的软件程序以及单元,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问
[0245] 计算机设备还包括给各个部件供电的电源403,优选的,电源403可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
[0246] 当计算机设备为终端时,该计算机设备还可包括输入单元404,该输入单元404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘鼠标、操作杆、光学或者轨迹球信号输入。当然,可以理解的是,本实施例中并不排除服务器包括输入单元的方案,本实施例的服务器也可以包括上述的输入单元404。
[0247] 尽管未示出,本实施例的计算机设备如终端还可以包括显示单元等,在此不再赘述。类似的,本实施例中并不排除服务器包括显示单元的方案,本实施例中的服务器也可以包括显示单元。
[0248] 具体在本实施例中,计算机设备中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:
[0249] 获取待推荐用户的用户向量,以及候选对象的对象向量;
[0250] 基于共享映射参数,将所述待推荐用户的用户向量映射至目标向量空间中,得到所述待推荐用户的嵌入式向量;
[0251] 基于所述共享映射参数,将所述候选对象的对象向量映射至所述目标向量空间中,得到所述候选对象的嵌入式向量,共享映射参数是由用户向量和对象向量共享的,且用于将用户向量和对象向量映射至同一向量空间的映射参数;
[0252] 基于所述待推荐用户的嵌入式向量,以及所述候选对象的嵌入式向量,从所述候选对象中选择所述待推荐用户感兴趣的推荐对象。
[0253] 以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
[0254] 由上可知,本实施例的计算机设备可以基于对象和用户在同一向量空间的嵌入式向量,对用户进行推荐。
[0255] 本发明实施例涉及的对象推荐系统可以是由客户端、多个节点(接入网络中的任意形式的计算机设备,如服务器、终端)通过网络通信的形式连接形成的分布式系统。
[0256] 以分布式系统为区块链系统为例,参见图5,图5是本发明实施例提供的分布式系统100应用于区块链系统的一个可选的结构示意图,由多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)和客户端形成,节点之间形成组成的点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission Control Protocol)协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。本实施例中多任务分类模型,模型的目标函数,用户和与用户产生交互的历史交互对象,以及计算出来的对象和用户的嵌入式向量等等信息,均可以通过分布式系统的节点被存储在区域链系统的共享账本中,计算机设备(例如终端或服务器)可以基于共享账本存储的记录数据获取对象和用户的嵌入式向量等信息。
[0257] 参见图5示出的区块链系统中各节点的功能,涉及的功能包括:
[0258] 1)路由,节点具有的基本功能,用于支持节点之间的通信。
[0259] 节点除具有路由功能外,还可以具有以下功能:
[0260] 2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
[0261] 例如,应用实现的业务包括:
[0262] 2.1)钱包,用于提供进行电子货币的交易的功能,包括发起交易(即,将当前交易的交易记录发送给区块链系统中的其他节点,其他节点验证成功后,作为承认交易有效的响应,将交易的记录数据存入区块链的临时区块中;当然,钱包还支持查询电子货币地址中剩余的电子货币;
[0263] 2.2)共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链系统中的其他节点,其他节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的节点发送确认。
[0264] 2.3)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。
[0265] 3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。
[0266] 参见图6,图6是本发明实施例提供的区块结构(Block Structure)一个可选的示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
[0267] 本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
[0268] 为此,本发明实施例还提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的任一种推荐方法中的步骤。
[0269] 以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
[0270] 其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
[0271] 由于该存储介质中所存储的指令,可以执行本发明实施例所提供的任一种推荐方法中的步骤,因此,可以实现本发明实施例所提供的任一种推荐方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
[0272] 以上对本发明实施例所提供的一种推荐方法、装置、计算机设备和存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈