CN111881358A - 一种对象推荐系统、方法、装置、电子设备和存储介质 - Google Patents
一种对象推荐系统、方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN111881358A CN111881358A CN202010761056.4A CN202010761056A CN111881358A CN 111881358 A CN111881358 A CN 111881358A CN 202010761056 A CN202010761056 A CN 202010761056A CN 111881358 A CN111881358 A CN 111881358A
- Authority
- CN
- China
- Prior art keywords
- sparse
- parameters
- storage
- sparse features
- embedding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
Abstract
本公开关于一种对象推荐系统、方法、装置、电子设备和存储介质,属于互联网技术领域,该系统中,多个存储设备,用于存储各账户的稀疏特征和各账户的稀疏特征对应的嵌入参数,其中,每个账户的稀疏特征是根据该账户的操作行为数据生成的,嵌入参数是预测模型预先学习到的;推理服务器,用于在确定满足向任一目标账户推荐对象的条件时,从目标账户对应的存储设备获取目标账户的稀疏特征,根据预设的嵌入参数的存储方式,确定稀疏特征对应的存储设备,从确定的存储设备读取稀疏特征对应的嵌入参数,进而利用各稀疏特征对应的嵌入参数和存储的预测模型的网络参数,确定目标账户的推荐对象,其中,网络参数是预测模型学习到的除嵌入参数之外的参数。
Description
技术领域
本公开涉及互联网技术领域,尤其涉及一种对象推荐系统、方法、装置、电子设备和存储介质。
背景技术
在互联网技术领域中,各应用为了更好地留住用户均启用了大规模的对象推荐系统。对象推荐系统中的各推理服务器对底层存储系统的容量、延迟和吞吐量等各个方面的扩展性都有着严格要求。
一般地,对象推荐系统所使用的预测模型的模型参数(包括网络参数和嵌入参数)都需要太字节(terabyte,TB)级别的存储空间。相关技术中,为了在对象推荐系统中的多个推理服务器之间共享这些模型参数,提出了协同部署方案。图1是协同部署方案中对象推荐系统中预测模型的模型参数的存储示意图,其中,每个推理服务器中存储有参数更新服务器更新后预测模型完整的网络参数和部分嵌入参数(对应图1中的一个分片)。这样,每个推理服务器既需要高容量的动态随机存取存储器(Dynamic Random Access Memory,DRAM)来存储嵌入参数,又需要强大的计算能力来计算与账户匹配的待推荐对象,对推理服务器的硬件资源要求很高,因此,会使推荐系统的硬件成本比较高。
发明内容
本公开提供一种对象推荐系统、方法、装置、电子设备和存储介质,以至少解决相关技术中对象推荐系统的硬件成本比较高的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种对象推荐系统,包括:
多个存储设备,用于存储各账户的稀疏特征和各账户的稀疏特征对应的嵌入参数,其中,账户的稀疏特征是根据该账户的操作行为数据生成的,所述嵌入参数是预测模型预先学习到的;
推理服务器,用于在确定满足向任一目标账户推荐对象的条件时,从所述目标账户对应的存储设备获取所述目标账户的稀疏特征,根据预设的嵌入参数的存储方式,确定所述稀疏特征对应的存储设备,从确定的存储设备读取所述稀疏特征对应的嵌入参数;至少利用各稀疏特征对应的嵌入参数和存储的所述预测模型的网络参数,确定所述目标账户的推荐对象,所述网络参数是所述预测模型学习到的除嵌入参数之外的参数。
在一种可能的实施方式中,所述多个存储设备包括多个第一存储设备和多个第二存储设备,所述多个第一存储设备,用于存储各账户的稀疏特征;所述多个第二存储设备,用于分布存储各账户的稀疏特征对应的嵌入参数。
在一种可能的实施方式中,所述多个第二存储设备包括推荐系统的推理服务器和其他服务器,或者,所述多个第二存储设备部署在存储集群中的服务器上,所述存储集群与推荐系统的推理服务器不同。
在一种可能的实施方式中,所述推理服务器,还用于缓存稀疏特征对应的嵌入参数,所述稀疏特征对应的嵌入参数在指定时间段内的访问频率超过设定频率,且所述稀疏特征对应的嵌入参数存储在至少一个第二存储设备中。
在一种可能的实施方式中,所述推理服务器,还用于在获取所述目标账户的稀疏特征之后,从缓存读取各稀疏特征对应的嵌入参数,以及根据预设的嵌入参数的存储方式,确定未从缓存读取到嵌入参数的各稀疏特征对应的第二存储设备。
在一种可能的实施方式中,所述推理服务器,具体用于计算待获取嵌入参数的每个稀疏特征对应的哈希值,根据所述哈希值和保存的哈希值与第二存储设备之间的关联关系,确定该稀疏特征对应的第二存储设备。
在一种可能的实施方式中,所述推理服务器,具体用于将对应相同第二存储设备的稀疏特征分为一组,以组为单位从确定的第二存储设备读取每组稀疏特征对应的嵌入参数。
在一种可能的实施方式中,至少两个第二存储设备,用于存储相同稀疏特征对应的嵌入参数,所述稀疏特征对应的嵌入参数在指定时间段内的访问频率超过设定频率。
在一种可能的实施方式中,所述推理服务器,具体用于若确定任一组稀疏特征对应至少两个第二存储设备,则根据配置的负载均衡条件,从所述至少两个第二存储设备中筛选一个第二存储设备,从筛选出的第二存储设备读取该组稀疏特征的嵌入参数。
在一种可能的实施方式中,所述多个第一存储设备,还用于存储各账户的密集特征,其中,账户的密集特征是根据该账户的用户画像数据生成的;
所述推理服务器,还用于在确定满足所述条件时,从所述目标账户对应的第一存储设备获取所述目标账户的密集特征;以及利用所述密集特征、各稀疏特征对应的嵌入参数和所述网络参数,确定所述目标账户的推荐对象。
根据本公开实施例的第二方面,提供一种对象推荐方法,应用于包括推理服务器和多个存储设备的对象推荐系统,所述多个存储设备用于存储各账户的稀疏特征和各账户的稀疏特征对应的嵌入参数,其中,账户的稀疏特征是根据该账户的操作行为数据生成的,所述嵌入参数是预测模型预先学习到的,该方法应用于推理服务器,包括:
在确定满足向任一目标账户推荐对象的条件时,从所述目标账户对应的存储设备获取所述目标账户的稀疏特征;
根据预设的嵌入参数的存储方式,确定所述稀疏特征对应的存储设备;
从确定的存储设备读取所述稀疏特征对应的嵌入参数;
至少利用各稀疏特征对应的嵌入参数和存储的所述预测模型的网络参数,确定所述目标账户的推荐对象,所述网络参数是所述预测模型学习到的除嵌入参数之外的参数。
在一种可能的实施方式中,所述多个存储设备包括多个第一存储设备和多个第二存储设备,所述多个第一存储设备用于存储各账户的稀疏特征;所述多个第二存储设备用于分布存储各账户的稀疏特征对应的嵌入参数;以及
从所述目标账户对应的存储设备获取所述目标账户的稀疏特征,包括:
从所述目标账户对应的第二存储设备获取所述目标账户的稀疏特征。
在一种可能的实施方式中,所述多个第二存储设备包括推荐系统的推理服务器和其他服务器,或者,所述多个第二存储设备部署在存储集群中的服务器上,所述存储集群与推荐系统的推理服务器不同。
在一种可能的实施方式中,所述推理服务器缓存有稀疏特征对应的嵌入参数,所述稀疏特征对应的嵌入参数在指定时间段内的访问频率超过设定频率,且所述稀疏特征对应的嵌入参数存储在至少一个第二存储设备中。
在一种可能的实施方式中,在获取所述目标账户的稀疏特征之后,还包括:
从缓存读取各稀疏特征对应的嵌入参数;以及
根据预设的嵌入参数的存储方式,确定所述稀疏特征对应的存储设备,从确定的存储设备读取所述稀疏特征对应的嵌入参数,包括:
根据预设的嵌入参数的存储方式,确定未从缓存读取到嵌入参数的各稀疏特征对应的第二存储设备。
在一种可能的实施方式中,根据以下步骤确定各稀疏特征对应的存储设备:
计算待获取嵌入参数的每个稀疏特征对应的哈希值;
根据所述哈希值和保存的哈希值与第二存储设备之间的关联关系,确定该稀疏特征对应的第二存储设备。
在一种可能的实施方式中,从确定的存储设备读取所述稀疏特征对应的嵌入参数,包括:
将对应相同第二存储设备的稀疏特征分为一组;
以组为单位从确定的第二存储设备读取每组稀疏特征对应的嵌入参数。
在一种可能的实施方式中,至少两个第二存储设备,用于存储相同稀疏特征对应的嵌入参数,所述稀疏特征对应的嵌入参数在指定时间段内的访问频率超过设定频率。
在一种可能的实施方式中,以组为单位从确定的存储设备读取每组稀疏特征对应的嵌入参数,包括:
若确定任一组稀疏特征对应至少两个第二存储设备,则根据配置的负载均衡条件,从所述至少两个第二存储设备中筛选一个第二存储设备,从筛选出的第二存储设备读取该组稀疏特征的嵌入参数。
在一种可能的实施方式中,若所述多个第一存储设备还存储有各账户的密集特征,其中,账户的密集特征是根据该账户的用户画像数据生成的,则还包括:
在确定满足所述条件时,从所述目标账户对应的第一存储设备获取所述目标账户的密集特征;以及
至少利用各稀疏特征对应的嵌入参数和存储的所述预测模型的网络参数,确定所述目标账户的推荐对象,包括:
利用所述密集特征、各稀疏特征对应的嵌入参数和所述网络参数,确定所述目标账户的推荐对象。
根据本公开实施例的第三方面,提供一种对象推荐装置,应用于包括推理服务器和多个存储设备的对象推荐系统,所述多个存储设备用于存储各账户的稀疏特征和各账户的稀疏特征对应的嵌入参数,其中,账户的稀疏特征是根据该账户的操作行为数据生成的,所述嵌入参数是预测模型预先学习到的,该装置设置于每个推理服务器中,包括:
第一获取模块,被配置为执行在确定满足向任一目标账户推荐对象的条件时,从所述目标账户对应的存储设备获取所述目标账户的稀疏特征;
存储位置确定模块,被配置为执行根据预设的嵌入参数的存储方式,确定所述稀疏特征对应的存储设备;
第二获取模块,被配置为执行从确定的存储设备读取所述稀疏特征对应的嵌入参数;
推荐对象确定模块,被配置为执行至少利用各稀疏特征对应的嵌入参数和存储的所述预测模型的网络参数,确定所述目标账户的推荐对象,所述网络参数是所述预测模型学习到的除嵌入参数之外的参数。
在一种可能的实施方式中,所述多个存储设备包括多个第一存储设备和多个第二存储设备,所述多个第一存储设备用于存储各账户的稀疏特征;所述多个第二存储设备用于分布存储各账户的稀疏特征对应的嵌入参数;
所述第一获取模块,具体被配置为执行从所述目标账户对应的第二存储设备获取所述目标账户的稀疏特征。
在一种可能的实施方式中,所述多个第二存储设备包括推荐系统的推理服务器和其他服务器,或者,所述多个第二存储设备部署在存储集群中的服务器上,所述存储集群与推荐系统的推理服务器不同。
在一种可能的实施方式中,所述推理服务器缓存有稀疏特征对应的嵌入参数,所述稀疏特征对应的嵌入参数在指定时间段内的访问频率超过设定频率,且所述稀疏特征对应的嵌入参数存储在至少一个第二存储设备中。
在一种可能的实施方式中,所述第二获取模块,还被配置为执行在获取所述目标账户的稀疏特征之后,从缓存读取各稀疏特征对应的嵌入参数;
所述存储位置确定模块,具体被配置为执行根据预设的嵌入参数的存储方式,确定未从缓存读取到嵌入参数的各稀疏特征对应的第二存储设备。
在一种可能的实施方式中,所述存储位置确定模块,具体被配置为执行根据以下步骤确定各稀疏特征对应的存储设备:
计算待获取嵌入参数的每个稀疏特征对应的哈希值;
根据所述哈希值和保存的哈希值与第二存储设备之间的关联关系,确定该稀疏特征对应的第二存储设备。
在一种可能的实施方式中,所述第二获取模块被具体配置为执行:
将对应相同第二存储设备的稀疏特征分为一组;
以组为单位从确定的第二存储设备读取每组稀疏特征对应的嵌入参数。
在一种可能的实施方式中,至少两个第二存储设备,用于存储相同稀疏特征对应的嵌入参数,所述稀疏特征对应的嵌入参数在指定时间段内的访问频率超过设定频率。
在一种可能的实施方式中,所述第二获取模块被具体配置为执行:
若确定任一组稀疏特征对应至少两个第二存储设备,则根据配置的负载均衡条件,从所述至少两个第二存储设备中筛选一个第二存储设备,从筛选出的第二存储设备读取该组稀疏特征的嵌入参数。
在一种可能的实施方式中,若所述多个第一存储设备还存储有各账户的密集特征,其中,账户的密集特征是根据该账户的用户画像数据生成的,则
所述第一获取模块,还被配置为执行在确定满足所述条件时,从所述目标账户对应的第一存储设备获取所述目标账户的密集特征;
所述推荐对象确定模块,还被配置为执行利用所述密集特征、各稀疏特征对应的嵌入参数和所述网络参数,确定所述目标账户的推荐对象。
根据本公开实施例的第四方面,提供一种电子设备,包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中:
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述任一对象推荐方法。
根据本公开实施例的第五方面,提供一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,所述电子设备能够执行上述任一对象推荐方法。
根据本公开实施例的第六方面,提供一种计算机程序产品,该程序产品在被计算机调用执行时,可以使得计算机执行上述任一对象推荐方法。
本公开实施例提供的技术方案至少带来以下有益效果:
本公开提供的对象推荐系统,包括推理服务器和多个存储设备,其中,多个存储设备,用于存储各账户的稀疏特征和各账户的稀疏特征对应的嵌入参数,其中,每个账户的稀疏特征是根据该账户的操作行为数据生成的,嵌入参数是预测模型预先学习到的;推理服务器,用于在确定满足向任一目标账户推荐对象的条件时,从目标账户对应的存储设备获取目标账户的稀疏特征,根据预设的嵌入参数的存储方式,确定稀疏特征对应的存储设备,从确定的存储设备读取稀疏特征对应的嵌入参数,进而利用各稀疏特征对应的嵌入参数和存储的预测模型的网络参数,确定目标账户的推荐对象,其中,网络参数是预测模型学习到的除嵌入参数之外的参数。这样,将预测模型的嵌入参数存储在各存储设备中,不再需推理服务器具有高容量的DRAM,对推理服务器的硬件资源要求比较低,而将预测模型的嵌入参数存储在各存储设备中,便于通过增加存储设备的数量的方式来分担各存储设备的存储容量,也不需要各存储设备具有高容量的DRAM、对存储设备的硬件资源要求也比较低,因此,可降低推荐系统的整体硬件成本。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种协同部署方案中对象推荐系统中预测模型的模型参数的存储示意图。
图2是根据一示例性实施例示出的一种对象推荐系统的推荐过程示意图。
图3是根据一示例性实施例示出的一种预测模型的预测过程示意图。
图4是根据一示例性实施例示出的Kraken中预测模型的模型参数的存储示意图。
图5是根据一示例性实施例示出的Kraken中CTR-P和Follow Feed中CTR-GT的比对图。
图6是根据一示例性实施例示出的Kraken的吞吐量随时间的变化曲线。
图7是根据一示例性实施例示出的Kraken的延迟随时间的变化曲线。
图8是根据一示例性实施例示出的一种对象推荐系统的示意图。
图9是根据一示例性实施例示出的一种对象推荐方法的流程图。
图10是根据一示例性实施例示出的又一种对象推荐方法的流程图。
图11是根据一示例性实施例示出的一种对象推荐装置的框图。
图12是根据一示例性实施例示出的一种用于实现对象推荐方法的电子设备的结构示意图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图2是根据一示例性实施例示出的一种对象推荐系统的推荐过程示意图。具体实施时,对象推荐系统根据目标账户关注过的各账户的上下文信息和浏览过的各对象的上下文信息,向目标账户推荐对象。
一般地,对象推荐系统通过以下两步进行对象推荐。
第一步:检索。
实际应用中,可以通过预设规则或轻量级模型,从数十亿个推荐对象中筛选与目标账户相关的对象{xi}得到选择池,以提高后续的推荐效率。
第二步:排序。
具体实施时,可以根据复杂的深度学习模型(Deep Learning,DL)(即预测模型)得到的排序分数,对选择池中与目标账户相关的对象{xi}进行排序,其中,排序分数通常是对P(y|u,xi)的估计,即目标账户u查看对象xi后,操作标签y(如点击,喜欢)的概率。
实际应用中,为了得到准确的排序分数,预测模型使用了大量的稀疏特征和复杂的DL模型,其中,稀疏特征通常用于表示两个通用实体(如账户和对象)之间的交互情况,由于账户数量和对象数量都十分庞大,所以稀疏特征的数据量也十分庞大。预测模型通常使用一种称为稀疏嵌入的技术将稀疏特征转换为低维度的密集表示,以提高对这些稀疏特征的处理效率。
图3是根据一示例性实施例示出的一种预测模型的预测过程示意图,其中,预测模型的输入是账户样本的多个密集特征和多个稀疏特征,这里,账户样本的多个密集特征如账户样本的使用者的年龄、性别、所在地、喜好等,账户样本的多个稀疏特征如账户样本最后观看的K个对象的对象标识、与账户样本具有直接社交关系(如主动关注关系)的账户的账户标识等。一般地,稀疏特征可以被视为稀疏ID(账户标识和对象标识)的向量,每个稀疏特征都对应嵌入表中的一个嵌入向量(即该稀疏特征的嵌入参数)。
具体实施时,在确定账户样本是否与一个待推荐对象匹配时,可根据账户样本的稀疏特征中的每个稀疏ID从嵌入表中查找该稀疏特征对应的嵌入向量,然后,使用逐元素的聚集操作(称为池化操作)将各稀疏特征对应的嵌入向量组合为新的密集特征,然后,新的密集特征与账户样本原始的密集特征成为预测模型其余部分的输入,以进行最终预测。
实际应用中,嵌入表通常被称为预测模型的稀疏部分,而预测模型的其余部分(包括多层连接的神经网络)则被称为预测模型的密集部分。稀疏部分和密集部分在数据大小和访问模式方面存在巨大差异,以张量流(Tensorflow)和本公开设计的对象推荐系统Kraken为例,表1示出了两者的稀疏部分和密集部分在数据大小、访问模式方面等方面的差异,从表1中可以看出,稀疏部分的参数容量大小可以是密集部分的参数容量大小的1000倍甚至更多。
表1
一般地,预测模型的模型参数包含网络参数和嵌入(Embedding)参数,其中,网络参数指神经网络中各卷积层如全连接层、池化层等的参数,如权重、偏置等,嵌入参数是指在神经网络中Embedding层所涉及的参数,用于把正整数(索引)转换为固定大小的稠密向量。
由于应用中的每个对象和每个账户都对应有嵌入参数,而应用中对象和账户的数量巨大,所以对象推荐系统中预测模型的模型参数一般都需要TB级别的存储空间,而且,这些模型参数需要在多个推理服务器之间共享,所以相关技术中提出了协同部署方案(参见图1)。然而,在协同部署方案中,每个推理服务器既需要高容量的DRAM来存储稀疏参数,又需要强大的计算能力来计算与账户匹配的待推荐对象,对推理服务器的硬件资源要求很高。
另外,持续的预测模型更新需要每个推理服务器频繁接收参数更新服务器频繁发送的预测模型最新的模型参数,并频繁更新预测模型的模型参数,这样,会加重推理服务器的负载,浪费推理服务器的计算资源和网络接口控制器(Network Interface Controller,NIC)带宽。
为了在为对象推荐系统提供必要的硬件资源的同时增强对象推荐系统的可扩展性,本公开设计了非协同部署式的对象推荐系统,该对象推荐系统可简称为Kraken。Kraken部署于多个存储设备和至少一个推理服务器中,以在不同服务器上分别处理存储服务和推理服务。
下面以多个存储设备为多个预测参数服务器(Prediction Parameter Server,PPS)和多个其他服务器为例对Kraken进行介绍。图4是根据一示例性实施例示出的Kraken中预测模型的模型参数的存储示意图(图中未示出其他服务器),其中:
多个其他服务器,用于存储各账户的密集特征和稀疏特征,其中,每个账户的密集特征是根据该账户的用户画像数据生成的,每个账户的稀疏特征是根据该账户的操作行为数据生成的。
一般地,每个账户的密集特征如该账户的使用者的年龄、性别、所在地、喜好等,可以根据该账户的用户画像数据生成;每个账户的稀疏特征如该账户最后观看的K个对象的对象标识、与该账户具有直接社交关系(如主动关注关系)的账户的账户标识等,可以根据该账户的操作行为数据生成。
具体实施时,可以将同一账户的密集特征和稀疏特征存储在相同的其它服务器中,也可以将一账户的密集特征和稀疏特征存储在不同的其它服务器中。而无论采用何种存储方式密集特征和稀疏特征均是按照账户进行存储的,即,同一账户的密集特征存储在同一其它服务器中、同一账户的稀疏特征存储在同一其它服务器中,这样,便于在向账户推荐对象时可快速获取到推荐所需的特征数据,提升向账户推荐对象的速度。
多个预测参数服务器,用于分布存储各账户的稀疏特征对应的嵌入参数,其中,嵌入参数是预测模型预先学习到的。
每个推理服务器,用于在确定满足向任一目标账户推荐对象的条件时,从目标账户对应的其他服务器获取目标账户的密集特征和稀疏特征,根据预设的嵌入参数的存储方式,确定稀疏特征对应的预测参数服务器,从确定的预测参数服务器读取稀疏特征对应的嵌入参数,进而利用目标账户的密集特征、各稀疏特征对应的嵌入参数和存储的预测模型的网络参数,确定目标账户的推荐对象,其中,网络参数是预测模型学习到的除嵌入参数之外的参数。
该对象推荐系统中,预测参数服务器需要较大的内存和较高的网络带宽,而推理服务器主要受计算资源的限制,因此,预测参数服务器可以使用高内存和高网络带宽的服务器,而推理服务器可以使用高计算能力的服务器,这样,在不同服务器上分别处理存储服务和推理服务,可降低对象推荐系统的整体成本。而且,允许推理服务器和预测参数服务器分别使用不同的硬件资源进行扩展,对象推荐系统的扩展性也比较好。
另外,该对象推荐系统中由各预测参数服务器与参数更新服务器进行通信,以处理有关预测模型的模型参数更新任务,不再需要各推理服务器频繁接收并更新模型参数,即可节省各推理服务器的计算资源,又可节省各推理服务器的NIC带宽。
具体实施时,每个推理服务器还可以将各预测参数服务器中在指定时间段内的访问频率超过设定频率的嵌入参数缓存在本地,这样,后续推理服务器在推荐对象时,可先从缓存中获取各稀疏特征的嵌入参数,未获取到嵌入参数的稀疏特征,再从预测参数服务器中获取其嵌入参数,这样,可以减少请求延迟,并且,可节省推理服务器和预测参数服务器的NIC带宽。
另外,在使用非协同部署方案时,还可以有两个额外的机会来进一步优化对象推荐系统。
一方面,Kraken支持采用多种存储方式在预测参数服务器中存储预测模型的嵌入参数。这样,技术人员可以根据访问方式为每组嵌入参数分配不同的存储方式。
比如,将一些经常访问的嵌入参数存储到每个预测参数服务器中,这样,即可以减少热点,又可为预测参数服务器实现更好的负载平衡。
再比如,将经常一起访问的稀疏特征进行分组,然后同组稀疏特征的嵌入参数存储到同一个预测参数服务器中,以获得更好的访问位置。比如,一些用户侧二元稀疏特征(如关注列表和收藏列表)通常采用将用户ID与其它对象ID组合的形式,基于用户ID对这些稀疏特征的嵌入参数进行存储尤其有用,因为这些稀疏特征的嵌入参数通常是被一起访问的。
另一方面,Kraken可以更频繁地更新预测模型,以在分钟级延迟的情况下提供在线服务。为了在实现预测模型实时更新的同时减轻对象推荐系统的负载,Kraken采用了不同的参数更新策略来更新预测模型的模型参数。
具体地,参数更新服务器并不是每次向预测参数服务器发送预测模型更新后的全部嵌入参数,而是每次向预测参数服务器发送预测模型更新后的部分嵌入参数,但参数更新服务器每隔几秒钟向推理服务器发送预测模型的网络参数,以对预测模型的网络参数进行批量更新,因为预测模型的网络参数比嵌入参数的易变性要小。
本公开实施例中,对象推荐系统中的预测参数服务器需要大内存但不需要强的计算能力,而推理服务器需要强的计算能力但不需要大内存,所以可以灵活地为预测参数服务器和推理服务器配置不同的硬件资源,这样,对象推荐系统的部署成本较低、可扩展性也比较好。而在协同部署方案中,所有的推理服务器都必须是具有大内存和强计算能力的服务器,所以其需要部署计算密集型服务器,对象推荐系统的部署成本较高、可扩展性也比较差。
本公开实施例以16个分片的跟踪进给(Follow Feed)模型作为成本模型的示例。基于对中央处理单元(Central Processing Unit,CPU)利用率和NIC带宽利用率的计算,一组16个存储设备可以承载的最大推理服务器约为384个。表2总结了使用两种不同部署策略的硬件成本。
表2
其中,基线是指非协同部署的对象推荐系统,吞吐量的单位为每秒查询(QueriesPer Second,QPS),比率=1000×吞吐量/总租金。
可以看出,Kraken显示出比基线更低的成本。
对Kraken的评估:
1)在线A/B测试结果。
我们选择了由Kraken支持的三个代表应用程序:视频共享、社交网络和游戏平台。表3示出了使用Kraken通过在线A/B测试后其关键业务指标的收益。
表3
视频共享可以是推荐视频的应用。用户在该应用中观看视频后,该应用可为用户提供更多的视频观看建议,该应用的关键指标是视频平均播放次数,Kraken可将视频平均播放次数提高51%,显著提高了用户参与度。
社交网络用于向平台上的用户推荐潜在的社交连接服务。每个人的新社交连接是评估该社交连接服务的关键指标,Kraken将每个人的新社交连接数量提高了1.35%,可使用户发现平台上更多的用户。
游戏平台是可托管不同数字游戏的在线平台。Kraren用于在该在线平台的反馈中生成个性化的游戏推荐视频,该在线平台的关键指标是用户在反馈上花费的时间,Kraken将用户在反馈上花费的时间提高了24.41%,显示出较好地用户粘性改善效果。
2)日常监视的结果。
我们还通过监视Kraken提供的对象推荐模型的准确性、Kraken一整天的服务吞吐量和延迟,报告Follow Feed应用在产品中的性能。报告结果如下:
模型准确性:图5示出了Kraken生成的平均预测点击率(the average predictedclick-through-rate,CTR-P)和Follow Feed中对象的平均实际点击率(the averageclick-through-rate ground truth,CTR-GT)。高点击率通常意味着较高的用户参与度,更准确的CTR预测有助于项的推荐。如5图所示,CTR-P曲线与CTR-GT曲线非常接近,基本重合为一条曲线,表明Kraken的模型预测的准确性比较高。
系统性能:图6和图7分别示出了Kraken的吞吐量(即对象推荐次数)和延迟随时间的变化曲线。如图6所示,一天有两个不同的高峰期,分别是12:00到14:00和20:00到23:00。在后一个时间段(图6中的阴影区域(称为高峰时间),吞吐量达到了超过40k每秒查询(Queries Per Second,QPS),是平均吞吐量的两倍。同时,如图7所示,即使吞吐量急剧增加,Kraken也可以很好地控制平均延迟和尾部延迟(P99)。
图8是根据一示例性实施例示出的一种对象推荐系统的示意图,包括,多个存储设备和至少一个推理服务器,其中:
多个存储设备,用于存储各账户的稀疏特征和各账户的稀疏特征对应的嵌入参数,其中,每个账户的稀疏特征是根据该账户的操作行为数据生成的,嵌入参数是预测模型预先学习到的。
每个推理服务器,用于在确定满足向任一目标账户推荐对象的条件时,从目标账户对应的存储设备获取目标账户的稀疏特征,根据预设的嵌入参数的存储方式,确定稀疏特征对应的存储设备,从确定的存储设备读取稀疏特征对应的嵌入参数,进而利用各稀疏特征对应的嵌入参数和存储的预测模型的网络参数,确定目标账户的推荐对象,其中,网络参数是预测模型学习到的除嵌入参数之外的参数。
假设有10个存储设备:存储设备1、存储设备2……存储设备10,100个账户:账户1、账户2……账户100,那么,每个存储设备可存储10个账户的稀疏特征。比如,存储设备1存储账户1-账户10的稀疏特征,存储设备2存储账户11-账户20的稀疏特征……存储设备10存储账户91-账户100的稀疏特征。
具体实施时,每个推理服务器可存储账户与存储设备之间的对应关系,后续,在需要向目标账户推荐对象时,即可根据目标账户的账户标识和该对应关系,确定存储目标账户的稀疏特征的存储设备,进而从该存储设备获取目标账户的稀疏特征。
实际应用中,账户的稀疏特征和稀疏特征对应的嵌入参数的数据组织形式是有较大差别的,并且,账户的稀疏特征和稀疏特征对应的嵌入参数随时间变化比较大,都需要不断更新,但这两类数据的更新时机也不相同。为了方便对稀疏特征和稀疏特征对应的嵌入参数的存储、读取,可对这两类数据分开存储。
因此,在一种可能的实施方式中,多个存储设备包括多个第一存储设备和多个第二存储设备,并且,多个第一存储设备,用于存储各账户的稀疏特征;多个第二存储设备,用于分布存储各账户的稀疏特征对应的嵌入参数。
另外,稀疏特征对应的嵌入参数的存储形式也可以有多种,比如,多个第二存储设备包括推荐系统的推理服务器和其他服务器,再比如,多个第二存储设备部署在存储集群中的服务器上,而存储集群与推荐系统的推理服务器不同。
具体实施时,当多个第二存储设备包括推荐系统的推理服务器和其他服务器时,每个推理服务器,还用于缓存稀疏特征对应的嵌入参数,其中,稀疏特征对应的嵌入参数在指定时间段内的访问频率超过设定频率,且稀疏特征对应的嵌入参数存储在至少一个第二存储设备中。
也就是说,此时,所有稀疏特征对应的嵌入参数依然分布存储在各第二存储设备上,并且,每个推理服务器中可另外缓存一些在指定时间段内的访问频率超过设定频率的嵌入参数。这样,推理服务器在获取目标账户的稀疏特征之后,可先从本地获取各稀疏特征对应的嵌入参数,未获取到的再去相应的第二存储设备获取,而不需要所有的嵌入参数均从第二存储设备获取,可提升获取推荐对象时所需嵌入参数的速度,进而提高向目标账户推荐对象的速度。另外,由于需与第二存储设备交互数据的次数减少,因此,还可节省推理服务器和第二存储设备各自的NIC带宽。
具体实施时,每个推理服务器,用于计算待获取嵌入参数的每个稀疏特征对应的哈希值,根据该哈希值和保存的哈希值与第二存储设备之间的关联关系,确定该稀疏特征对应的第二存储设备。
并且,为了提升从第二存储设备读取嵌入参数的速度,每个推理服务器,还可将对应相同第二存储设备的稀疏特征分为一组,然后,以组为单位从确定的第二存储设备读取每组稀疏特征对应的嵌入参数。
上述情况中,将在指定时间段内的访问频率超过设定频率的稀疏特征对应的嵌入参数缓存在每个推理服务器中,实际应用中,还可将在指定时间段内的访问频率超过设定频率的稀疏特征对应的嵌入参数存储在多个第二存储设备中,以避免出现热点设备。
比如,将在指定时间段内的访问频率超过设定频率的稀疏特征对应的嵌入参数存储在每个第二存储设备中,再比如,将在指定时间段内的访问频率超过设定频率的稀疏特征对应的嵌入参数存储在3或5个第二存储设备中等,当然,此时第二存储设备的总数需多于5。
因此,在一种可能的实施方式中,至少两个第二存储设备,用于存储相同稀疏特征对应的嵌入参数,其中,稀疏特征对应的嵌入参数在指定时间段内的访问频率超过设定频率。
相应地,每个推理服务器,还用于若确定任一组稀疏特征对应至少两个第二存储设备,则根据配置的负载均衡条件,从这至少两个第二存储设备中筛选一个第二存储设备,进而从筛选出的第二存储设备读取该组稀疏特征的嵌入参数,其中,配置的负载均衡条件如随机读取、轮询等。
需要说明的是,可能有些分组中包含多个稀疏特征,而有些分组中仅包含一个稀疏特征,当分组中包含多个稀疏特征时,该组稀疏特征的特征标识可以为该组稀疏特征中与各稀疏特征均有关联关系的稀疏特征。比如,某个分组中包含账户A的账户标识、账户A关注的各对象的对象标识、账户A收藏的各对象的对象标识,那么,可以将账户A的账户标识作为该分组的特征标识。而当分组中仅包含一个稀疏特征时,该分组的特征标识即为该稀疏特征的特征标识。
具体实施时,还可结合考虑账户的密集特征以更准确地向账户推荐对象。由于账户的密集特征与账户的稀疏特征、以及稀疏特征对应的嵌入参数的数据组织形式和数据更新时机均不相同,且账户的密集特征随时间变化的不明显,因此,可将账户的密集特征也存储在第一存储设备中。
因此,在一种可能的实施方式下,多个第一存储设备,还用于存储各账户的密集特征,其中,账户的密集特征是根据该账户的用户画像数据生成的;
相应地,推理服务器,还用于在确定满足向目标账户推荐对象的条件时,从目标账户对应的第一存储设备获取目标账户的密集特征,进而利用密集特征、各稀疏特征对应的嵌入参数和网络参数,确定目标账户的推荐对象。
具体实施时,同一账户的密集特征和稀疏特征可以存储在同一第一存储设备中,也可以存储在不同的第一存储设备中,但无论采用哪种方式,密集特征也是按照账户存储的,即同一账户的密集特征存储在一个第一存储设备中,同一账户的稀疏特征存储在一个第一存储设备中。这样,后续在向账户推荐对象时,可提升获取账户的密集特征和稀疏特征的速度,进而提升对象推荐速度。
另外,为了在实现预测模型实时更新的同时减轻对象推荐系统的负载,可以采用不同的参数更新策略来更新预测模型的模型参数。
具体实施时,参数更新服务器并不是每次向第二存储设备发送预测模型更新后的全部嵌入参数,而是每次向第二存储设备发送预测模型更新后的部分嵌入参数,但参数更新服务器每隔几秒钟向推理服务器发送预测模型的网络参数,以对预测模型的网络参数进行批量更新,因为预测模型的网络参数比嵌入参数的易变性要小。
相应地,每个推理服务器,还用于若接收到参数更新服务器发送的预测模型最新的网络参数,则用最新的网络参数替换存储的网络参数;
每个第二存储设备,还用于若接收到参数更新服务器发送的预测模型部分最新的嵌入参数,则用部分最新的嵌入参数替换存储的相应嵌入参数。
图9是根据一示例性实施例示出的一种对象推荐方法的流程图,该方法应用于上述实施例中的任一推荐系统中,该方法执行主体是推理服务器,该方法包括以下步骤。
S901:在确定满足向任一目标账户推荐对象的条件时,从目标账户对应的存储设备获取目标账户的稀疏特征。
其中,目标账户的稀疏特征是根据目标账户的操作行为数据生成的。
具体实施时,各存储设备可存储部分账户的稀疏特征,并且,推理服务器可保存存储设备与账户之间的关联关系,因此,在确定满足向任一目标账户推荐对象的条件时,可根据目标账户的账户标识和该关联关系确定目标账户对应的存储设备,进而从目标账户对应的存储设备获取目标账户的稀疏特征。
具体实施时,多个存储设备可以包括多个第一存储设备和多个第二存储设备,其中,多个第一存储设备用于存储各账户的稀疏特征;多个第二存储设备用于分布存储各账户的稀疏特征对应的嵌入参数。
此时,从目标账户对应的存储设备获取目标账户的稀疏特征即是从目标账户对应的第二存储设备获取目标账户的稀疏特征。
另外,具体实施时,多个第二存储设备可以包括推荐系统的推理服务器和其他服务器,或者,多个第二存储设备部署在存储集群中的服务器上,且存储集群与推荐系统的推理服务器不同。
S902:根据预设的嵌入参数的存储方式,确定稀疏特征对应的存储设备。
具体实施时,可计算待获取嵌入参数的每个稀疏特征对应的哈希值,进而根据该哈希值和保存的哈希值与第二存储设备之间的关联关系,确定该稀疏特征对应的第二存储设备。
S903:从确定的存储设备读取稀疏特征对应的嵌入参数。
具体实施时,可将对应相同第二存储设备的稀疏特征分为一组,然后,以组为单位从确定的第二存储设备读取每组稀疏特征对应的嵌入参数,以提升嵌入参数的读取速度。
S904:至少利用各稀疏特征对应的嵌入参数和存储的预测模型的网络参数,确定目标账户的推荐对象,其中,网络参数是预测模型学习到的除嵌入参数之外的参数。
在一种可能的实施方式中,除了所有嵌入参数分布存储在第二存储设备中之外,还可将在指定时间段内的访问频率超过设定频率的嵌入参数额外存储在每个推理服务器中,此时,本公开实施例提供的对象推荐方法的流程图如图10所示,该流程可以包括以下步骤。
S1001:在确定满足向任一目标账户推荐对象的条件时,从目标账户对应的存储设备获取目标账户的稀疏特征。
具体实施时,多个存储设备可以包括多个第一存储设备和多个第二存储设备,其中,多个第一存储设备用于存储各账户的稀疏特征;多个第二存储设备用于分布存储各账户的稀疏特征对应的嵌入参数。
此时,从目标账户对应的存储设备获取目标账户的稀疏特征即是从目标账户对应的第二存储设备获取目标账户的稀疏特征。
S1002:从缓存读取各稀疏特征对应的嵌入参数。
S1003:根据预设的嵌入参数的存储方式,确定未从缓存读取到嵌入参数的稀疏特征对应的第二存储设备。
具体实施时,可计算待获取嵌入参数的每个稀疏特征对应的哈希值,进而根据该哈希值和保存的哈希值与第二存储设备之间的关联关系,确定该稀疏特征对应的第二存储设备。
S1004:从确定的第二存储设备读取稀疏特征对应的嵌入参数。
具体实施时,可将对应相同第二存储设备的稀疏特征分为一组,然后,以组为单位从确定的第二存储设备读取每组稀疏特征对应的嵌入参数,以提升嵌入参数的读取速度。
S1005:至少利用各稀疏特征对应的嵌入参数和存储的预测模型的网络参数,确定目标账户的推荐对象,其中,网络参数是预测模型学习到的除嵌入参数之外的参数。
在另一种可能的实施方式中,将在指定时间段内的访问频率超过设定频率的嵌入参数存储在至少两个第二存储设备中,比如存储在每个第二存储设备中,此时,上述任一对象推荐流程中,当分组从确定的第二存储设备读取稀疏特征对应的嵌入参数时,若确定任一组稀疏特征对应至少两个第二存储设备,则可根据配置的负载均衡条件,从这至少两个第二存储设备中筛选一个第二存储设备,进而从筛选出的第二存储设备读取该组稀疏特征的嵌入参数,其中,负载均衡条件如随机选取、轮询等。
此外,若多个第一存储设备还存储有各账户的密集特征,则上述任一对象推荐方法的流程中,在确定满足向目标账户推荐对象的条件时,还可从目标账户对应的第一存储设备获取目标账户的密集特征,进而利用目标账户的密集特征、各稀疏特征对应的嵌入参数和存储的预测模型的网络参数,确定目标账户的推荐对象,其中,每个账户的密集特征是根据该账户的用户画像数据生成的。
当本公开实施例中提供的方法以软件或硬件或软硬件结合实现的时候,电子设备中可以包括多个功能模块,每个功能模块可以包括软件、硬件或其结合。
具体的,图11是根据一示例性实施例示出的一种对象推荐装置的框图,该装置包括第一获取模块1101、存储位置确定模块1102、第二获取模块1103、推荐对象确定模块1104。
第一获取模块1101,被配置为执行在确定满足向任一目标账户推荐对象的条件时,从所述目标账户对应的存储设备获取所述目标账户的稀疏特征;
存储位置确定模块1102,被配置为执行根据预设的嵌入参数的存储方式,确定所述稀疏特征对应的存储设备;
第二获取模块1103,被配置为执行从确定的存储设备读取所述稀疏特征对应的嵌入参数;
推荐对象确定模块1104,被配置为执行至少利用各稀疏特征对应的嵌入参数和存储的所述预测模型的网络参数,确定所述目标账户的推荐对象,所述网络参数是所述预测模型学习到的除嵌入参数之外的参数。
在一种可能的实施方式中,所述多个存储设备包括多个第一存储设备和多个第二存储设备,所述多个第一存储设备用于存储各账户的稀疏特征;所述多个第二存储设备用于分布存储各账户的稀疏特征对应的嵌入参数;
所述第一获取模块1101,具体被配置为执行从所述目标账户对应的第二存储设备获取所述目标账户的稀疏特征。
在一种可能的实施方式中,所述多个第二存储设备包括推荐系统的推理服务器和其他服务器,或者,所述多个第二存储设备部署在存储集群中的服务器上,所述存储集群与推荐系统的推理服务器不同。
在一种可能的实施方式中,所述推理服务器缓存有稀疏特征对应的嵌入参数,所述稀疏特征对应的嵌入参数在指定时间段内的访问频率超过设定频率,且所述稀疏特征对应的嵌入参数存储在至少一个第二存储设备中。
在一种可能的实施方式中,所述第二获取模块1103,还被配置为执行在获取所述目标账户的稀疏特征之后,从缓存读取各稀疏特征对应的嵌入参数;
所述存储位置确定模块1102,具体被配置为执行根据预设的嵌入参数的存储方式,确定未从缓存读取到嵌入参数的各稀疏特征对应的第二存储设备。
在一种可能的实施方式中,所述存储位置确定模块1102,具体被配置为执行根据以下步骤确定各稀疏特征对应的存储设备:
计算待获取嵌入参数的每个稀疏特征对应的哈希值;
根据所述哈希值和保存的哈希值与第二存储设备之间的关联关系,确定该稀疏特征对应的第二存储设备。
在一种可能的实施方式中,所述第二获取模块1103被具体配置为执行:
将对应相同第二存储设备的稀疏特征分为一组;
以组为单位从确定的第二存储设备读取每组稀疏特征对应的嵌入参数。
在一种可能的实施方式中,至少两个第二存储设备,用于存储相同稀疏特征对应的嵌入参数,所述稀疏特征对应的嵌入参数在指定时间段内的访问频率超过设定频率。
在一种可能的实施方式中,所述第二获取模块1103被具体配置为执行:
若确定任一组稀疏特征对应至少两个第二存储设备,则根据配置的负载均衡条件,从所述至少两个第二存储设备中筛选一个第二存储设备,从筛选出的第二存储设备读取该组稀疏特征的嵌入参数。
在一种可能的实施方式中,若所述多个第一存储设备还存储有各账户的密集特征,其中,账户的密集特征是根据该账户的用户画像数据生成的,则
所述第一获取模块1101,还被配置为执行在确定满足所述条件时,从所述目标账户对应的第一存储设备获取所述目标账户的密集特征;
所述推荐对象确定模块1104,还被配置为执行利用所述密集特征、各稀疏特征对应的嵌入参数和所述网络参数,确定所述目标账户的推荐对象。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本公开实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本公开各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。各个模块相互之间的耦合可以是通过一些接口实现,这些接口通常是电性通信接口,但是也不排除可能是机械接口或其它的形式接口。因此,作为分离部件说明的模块可以是或者也可以不是物理上分开的,既可以位于一个地方,也可以分布到同一个或不同设备的不同位置上。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
图12是根据一示例性实施例示出的一种电子设备的结构示意图,该电子设备包括收发器1201以及处理器1202等物理器件,其中,处理器1202可以是一个CPU、微处理器、专用集成电路、可编程逻辑电路、大规模集成电路、或者为数字处理单元等等。收发器1201用于电子设备和其他设备进行数据收发。
该电子设备还可以包括存储器1203用于存储处理器1202执行的软件指令,当然还可以存储电子设备需要的一些其他数据,如电子设备的标识信息、电子设备的加密信息、用户数据等。存储器1203可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器1203也可以是非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器1203是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器1203可以是上述存储器的组合。
本公开实施例中不限定上述处理器1202、存储器1203以及收发器1201之间的具体连接介质。本公开实施例在图12中仅以存储器1203、处理器1202以及收发器1201之间通过总线1204连接为例进行说明,总线在图12中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图12中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
处理器1202可以是专用硬件或运行软件的处理器,当处理器1202可以运行软件时,处理器1202读取存储器1203存储的软件指令,并在所述软件指令的驱动下,执行前述实施例中涉及的对象推荐方法。
本公开实施例还提供了一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,所述电子设备能够执行前述实施例中涉及的对象推荐方法。
在一些可能的实施方式中,本公开提供的对象推荐方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在电子设备上运行时,所述程序代码用于使所述电子设备执行前述实施例中涉及的对象推荐方法。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本公开实施例中用于对象推荐的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在计算设备上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言诸如Java、C++等,还包括常规的过程式程序设计语言诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络包括局域网(LAN)或广域网(WAN)连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本公开的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本公开范围的所有变更和修改。
显然,本领域的技术人员可以对本公开进行各种改动和变型而不脱离本公开的精神和范围。这样,倘若本公开的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。
Claims (10)
1.一种对象推荐系统,其特征在于,包括:
多个存储设备,用于存储各账户的稀疏特征和各账户的稀疏特征对应的嵌入参数,其中,账户的稀疏特征是根据该账户的操作行为数据生成的,所述嵌入参数是预测模型预先学习到的;
推理服务器,用于在确定满足向任一目标账户推荐对象的条件时,从所述目标账户对应的存储设备获取所述目标账户的稀疏特征,根据预设的嵌入参数的存储方式,确定所述稀疏特征对应的存储设备,从确定的存储设备读取所述稀疏特征对应的嵌入参数;至少利用各稀疏特征对应的嵌入参数和存储的所述预测模型的网络参数,确定所述目标账户的推荐对象,所述网络参数是所述预测模型学习到的除嵌入参数之外的参数。
2.根据权利要求1所述的系统,其特征在于,所述多个存储设备包括多个第一存储设备和多个第二存储设备,所述多个第一存储设备,用于存储各账户的稀疏特征;所述多个第二存储设备,用于分布存储各账户的稀疏特征对应的嵌入参数。
3.根据权利要求2所述的系统,其特征在于,所述多个第二存储设备包括推荐系统的推理服务器和其他服务器,或者,所述多个第二存储设备部署在存储集群中的服务器上,所述存储集群与推荐系统的推理服务器不同。
4.根据权利要求3所述的系统,其特征在于,所述推理服务器,还用于缓存稀疏特征对应的嵌入参数,所述稀疏特征对应的嵌入参数在指定时间段内的访问频率超过设定频率,且所述稀疏特征对应的嵌入参数存储在至少一个第二存储设备中。
5.根据权利要求4所述的系统,其特征在于,所述推理服务器,还用于在获取所述目标账户的稀疏特征之后,从缓存读取各稀疏特征对应的嵌入参数,以及根据预设的嵌入参数的存储方式,确定未从缓存读取到嵌入参数的各稀疏特征对应的第二存储设备。
6.根据权利要求1或5所述的系统,其特征在于,所述推理服务器,具体用于计算待获取嵌入参数的每个稀疏特征对应的哈希值,根据所述哈希值和保存的哈希值与第二存储设备之间的关联关系,确定该稀疏特征对应的第二存储设备。
7.根据权利要求1所述的系统,其特征在于,所述推理服务器,具体用于将对应相同第二存储设备的稀疏特征分为一组,以组为单位从确定的第二存储设备读取每组稀疏特征对应的嵌入参数。
8.一种对象推荐方法,其特征在于,应用于包括推理服务器和多个存储设备的对象推荐系统,所述多个存储设备用于存储各账户的稀疏特征和各账户的稀疏特征对应的嵌入参数,其中,账户的稀疏特征是根据该账户的操作行为数据生成的,所述嵌入参数是预测模型预先学习到的,该方法应用于推理服务器,包括:
在确定满足向任一目标账户推荐对象的条件时,从所述目标账户对应的存储设备获取所述目标账户的稀疏特征;
根据预设的嵌入参数的存储方式,确定所述稀疏特征对应的存储设备;
从确定的存储设备读取所述稀疏特征对应的嵌入参数;
至少利用各稀疏特征对应的嵌入参数和存储的所述预测模型的网络参数,确定所述目标账户的推荐对象,所述网络参数是所述预测模型学习到的除嵌入参数之外的参数。
9.一种电子设备,其特征在于,包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中:
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行时,所述至少一个处理器能够执行如权利要求8所述的对象推荐方法。
10.一种存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,所述电子设备能够执行如权利要求8所述的对象推荐方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010761056.4A CN111881358B (zh) | 2020-07-31 | 2020-07-31 | 一种对象推荐系统、方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010761056.4A CN111881358B (zh) | 2020-07-31 | 2020-07-31 | 一种对象推荐系统、方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111881358A true CN111881358A (zh) | 2020-11-03 |
CN111881358B CN111881358B (zh) | 2021-08-03 |
Family
ID=73205215
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010761056.4A Active CN111881358B (zh) | 2020-07-31 | 2020-07-31 | 一种对象推荐系统、方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111881358B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112650778A (zh) * | 2020-12-24 | 2021-04-13 | 北京达佳互联信息技术有限公司 | 信息推荐系统、方法、装置、服务器及存储介质 |
CN113283596A (zh) * | 2021-05-18 | 2021-08-20 | 北京达佳互联信息技术有限公司 | 一种模型参数训练方法、服务器、系统及存储介质 |
TWI828139B (zh) * | 2021-05-17 | 2024-01-01 | 韓商連加股份有限公司 | 帳戶推薦方法、電腦裝置及電腦程式 |
WO2024066676A1 (zh) * | 2022-09-30 | 2024-04-04 | 华为技术有限公司 | 一种神经网络模型的推理方法、装置及相关设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170316311A1 (en) * | 2015-03-24 | 2017-11-02 | Hrl Laboratories, Llc | Sparse inference modules for deep learning |
US20180075137A1 (en) * | 2016-09-09 | 2018-03-15 | Yandex Europe Ag | Method and apparatus for training a machine learning algorithm (mla) for generating a content recommendation in a recommendation system and method and apparatus for generating the recommended content using the mla |
CN109447698A (zh) * | 2018-10-18 | 2019-03-08 | 广州云从人工智能技术有限公司 | 一种基于神经网络的推荐算法 |
US20190207985A1 (en) * | 2016-12-08 | 2019-07-04 | Tencent Technology (Shenzhen) Company Limited | Authorization policy recommendation method and apparatus, server, and storage medium |
CN110677701A (zh) * | 2019-11-20 | 2020-01-10 | 咪咕文化科技有限公司 | 视频流推荐方法、电子设备和存储介质 |
CN110781391A (zh) * | 2019-10-22 | 2020-02-11 | 腾讯科技(深圳)有限公司 | 一种信息推荐方法、装置、设备及存储介质 |
CN111177575A (zh) * | 2020-04-07 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 一种内容推荐方法、装置、电子设备和存储介质 |
-
2020
- 2020-07-31 CN CN202010761056.4A patent/CN111881358B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170316311A1 (en) * | 2015-03-24 | 2017-11-02 | Hrl Laboratories, Llc | Sparse inference modules for deep learning |
US20180075137A1 (en) * | 2016-09-09 | 2018-03-15 | Yandex Europe Ag | Method and apparatus for training a machine learning algorithm (mla) for generating a content recommendation in a recommendation system and method and apparatus for generating the recommended content using the mla |
US20190207985A1 (en) * | 2016-12-08 | 2019-07-04 | Tencent Technology (Shenzhen) Company Limited | Authorization policy recommendation method and apparatus, server, and storage medium |
CN109447698A (zh) * | 2018-10-18 | 2019-03-08 | 广州云从人工智能技术有限公司 | 一种基于神经网络的推荐算法 |
CN110781391A (zh) * | 2019-10-22 | 2020-02-11 | 腾讯科技(深圳)有限公司 | 一种信息推荐方法、装置、设备及存储介质 |
CN110677701A (zh) * | 2019-11-20 | 2020-01-10 | 咪咕文化科技有限公司 | 视频流推荐方法、电子设备和存储介质 |
CN111177575A (zh) * | 2020-04-07 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 一种内容推荐方法、装置、电子设备和存储介质 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112650778A (zh) * | 2020-12-24 | 2021-04-13 | 北京达佳互联信息技术有限公司 | 信息推荐系统、方法、装置、服务器及存储介质 |
CN112650778B (zh) * | 2020-12-24 | 2024-03-12 | 北京达佳互联信息技术有限公司 | 信息推荐系统、方法、装置、服务器及存储介质 |
TWI828139B (zh) * | 2021-05-17 | 2024-01-01 | 韓商連加股份有限公司 | 帳戶推薦方法、電腦裝置及電腦程式 |
CN113283596A (zh) * | 2021-05-18 | 2021-08-20 | 北京达佳互联信息技术有限公司 | 一种模型参数训练方法、服务器、系统及存储介质 |
WO2024066676A1 (zh) * | 2022-09-30 | 2024-04-04 | 华为技术有限公司 | 一种神经网络模型的推理方法、装置及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111881358B (zh) | 2021-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111881358B (zh) | 一种对象推荐系统、方法、装置、电子设备和存储介质 | |
WO2020135535A1 (zh) | 一种推荐模型训练方法及相关装置 | |
EP3080720B1 (en) | Social-driven recaching of accessible objects | |
US9348924B2 (en) | Almost online large scale collaborative filtering based recommendation system | |
US9535938B2 (en) | Efficient and fault-tolerant distributed algorithm for learning latent factor models through matrix factorization | |
CN108520470B (zh) | 用于生成用户属性信息的方法和装置 | |
CN111966904B (zh) | 基于多用户画像模型的信息推荐方法和相关装置 | |
US20100281035A1 (en) | Method and System of Prioritising Operations On Network Objects | |
US10262265B2 (en) | Systems and methods for generating and communicating application recommendations at uninstall time | |
KR20200046145A (ko) | 예측 모델 훈련 관리 시스템, 예측 모델 훈련 관리 방법, 예측 모델 학습 관리를 위한 마스터 장치 및 슬레이브 장치 | |
KR20130062442A (ko) | 협업 필터링 추천 방식을 이용한 추천 방법 및 추천 시스템 | |
Zhao et al. | Mahrl: Multi-goals abstraction based deep hierarchical reinforcement learning for recommendations | |
JP2022020070A (ja) | 情報処理、情報推薦の方法および装置、電子デバイス及び記憶媒体 | |
CN113536097B (zh) | 基于自动特征分组的推荐方法及装置 | |
Zhang et al. | Optimizing video caching at the edge: A hybrid multi-point process approach | |
CN115905687A (zh) | 基于元学习图神经网络面向冷启动的推荐系统及方法 | |
CN113254795A (zh) | 一种推荐模型的训练方法和装置 | |
CN112749296B (zh) | 一种视频推荐方法、装置、服务器及存储介质 | |
CN113630476B (zh) | 应用于计算机集群的通信方法及通信装置 | |
WO2022252694A1 (zh) | 神经网络优化方法及其装置 | |
US20150186795A1 (en) | Multistage Learner for Efficiently Boosting Large Datasets | |
CN114357242A (zh) | 基于召回模型的训练评估方法及装置、设备、存储介质 | |
CN112269942B (zh) | 一种推荐对象的方法、装置、系统及电子设备 | |
US20220171985A1 (en) | Item recommendation with application to automated artificial intelligence | |
CN115080856A (zh) | 推荐方法及装置、推荐模型的训练方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |