本申请涉及计算机技术领域,尤其涉及人工智能,具体涉及一种物品推荐及模型训练方法、系统、电子设备及存储介质。
背景技术:
互联网发展到今天,衍生出各种互联网产品,如电商之类的购物平台的出现,改变了人们的生活方式,增强了购物的便利性。
在各种互联网应用产品中,用户可以自主选择自己感兴趣的物品,也可以由系统向用户推荐物品。例如,现有的物品推荐系统中,可以采用协同过滤推荐的方式。如业界常用的有基于物品的协同过滤推荐itemcf或者基于用户的协同过滤推荐usercf。itemcf使用两个物品之间共同感兴趣用户重合数量来衡量两个物品之间的相似度,再根据用户历史物品推荐相似的候选物品。usercf使用两个用户之间共同感兴趣的物品的重合数量来衡量两个用户之间的相似度,再根据相似用户群喜爱的物品对目标用户推荐候选物品。
但是,在用户数量或者物品数量都较多的时候,上述推荐方案的计算量代价非常大,容易造成计算错误,导致推荐方案的物品推荐准确性较差。
技术实现要素:
为了解决上述技术问题,本申请提供一种物品推荐及模型训练方法、系统、电子设备及存储介质,用于提高物品推荐的准确性。
一方面,本申请提供一种物品推荐方法,包括:
采用预先训练的用户点击物品的任务模型和待推荐的物品库中各物品的至少两个特征信息,构建物品特征表达数据库;
采用所述预先训练的用户点击物品的任务模型和用户的至少两个特征信息,获取用户的特征表达;
根据所述用户的特征表达和所述物品特征表达数据库,获取要推荐的n个物品的标识;
基于所述n个物品的标识,向所述用户推荐所述n个物品的相关信息。
进一步可选地,如上所述的方法中,根据所述用户的特征表达和所述物品特征表达数据库,获取要推荐的n个物品的标识,包括:
在所述物品特征表达数据库中,检索出与所述用户的特征表达最相关的n个物品的特征表达;
获取所述n个物品的特征表达对应的所述n个物品的标识。
进一步可选地,如上所述的方法中,预先训练的所述用户点击物品的任务模型包括召回任务模块和点击率预估任务模块,且所述召回任务模块与所述点击率预估任务模块之间经过联合训练。
另一方面,本申请还提供了一种用户点击物品的任务模型的训练方法,包括:
采集数条训练数据,各所述训练数据中包括训练用户的至少两个训练特征信息、训练物品的至少两个训练特征信息以及所述训练用户对所述训练物品的点击交互信息;
采用所述数条训练数据,对所述用户点击物品的任务模型中的召回任务模块和点击率预估任务模块进行联合训练。
进一步可选地,如上所述的方法中,采用所述数条训练数据,对所述用户点击物品的任务模型中的召回任务模块和点击率预估任务模块进行联合训练,包括:
对于各条所述训练数据,将所述训练用户的至少两个特征信息进行嵌入表达后拼接,得到训练用户的组合特征表达;
将所述训练物品的至少两个训练特征信息进行嵌入表达后拼接,得到训练物品的组合特征表达;
在所述召回任务模块中,将所述训练用户的组合特征表达和所述训练物品的组合特征表达分别经过至少两层包括全连接处理和激活处理的处理层的处理,得到训练用户的特征表达和训练物品的特征表达;
在所述召回任务模块中,将所述训练用户的特征表达和所述训练物品的特征表达进行相乘,得到所述训练物品对所述训练用户的推荐程度指标;
在所述点击率预估任务模块中,将所述训练用户的组合特征表达和所述训练物品的组合特征表达拼接,并依次经过至少两层包括全连接处理和激活处理的处理层、以及sigmoid激活函数处理层的处理,得到所述训练用户对所述训练物品的预测点击概率;
基于所述训练物品对所述训练用户的推荐程度指标、所述训练用户对所述训练物品的预测点击概率、已知的所述训练用户对所述训练物品的点击交互信息,生成综合交叉熵损失函数;
判断所述综合交叉熵损失函数是否收敛;若未收敛,调整所述用户点击物品的任务模型的参数;
若收敛,判断是否在第一连续预设轮数的训练中均收敛;若是,确定所述用户点击物品的任务模型的参数,进而确定所述用户点击物品的任务模型。
进一步可选地,如上所述的方法中,基于所述训练物品对所述训练用户的推荐程度指标、所述训练用户对所述训练物品的预测点击概率、已知的所述训练用户对所述训练物品的点击交互信息,生成综合交叉熵损失函数,包括:
基于所述训练物品对所述训练用户的推荐程度指标和已知的所述训练用户对所述训练物品的点击交互信息,生成第一交叉熵函数;
基于所述训练用户对所述训练物品的预测点击概率和已知的所述训练用户对所述训练物品的点击交互信息,生成第二交叉熵函数;
取所述第一交叉熵函数和所述第二交叉熵函数之和,得到所述综合交叉熵损失函数。
进一步可选地,如上所述的方法中,在确定所述综合交叉熵损失函数在所述第一连续预设轮数的训练中均收敛时,还包括:
继续采用所述数条训练数据,训练所述召回任务模块,直至所述第一交叉熵函数在第二连续预设轮数的训练中均收敛,确定所述召回任务模块的参数,确定所述召回任务模块,进而确定所述用户点击物品的任务模型。
再一方面,本申请还提供了一种物品推荐系统,包括:
构建模块,用于采用预先训练的用户点击物品的任务模型和待推荐的物品库中各物品的至少两个特征信息,构建物品特征表达数据库;
特征获取模块,用于采用所述预先训练的用户点击物品的任务模型和用户的至少两个特征信息,获取用户的特征表达;
物品获取模块,用于根据所述用户的特征表达和所述物品特征表达数据库,获取要推荐的n个物品的标识;
推荐模块,用于基于所述n个物品的标识,向所述用户推荐所述n个物品的相关信息。
又一方面,本申请还提供了一种用户点击物品的任务模型的训练装置,包括:
采集模块,用于采集数条训练数据,各所述训练数据中包括训练用户的至少两个训练特征信息、训练物品的至少两个训练特征信息以及所述训练用户对所述训练物品的点击交互信息;
训练模块,用于采用所述数条训练数据,对所述用户点击物品的任务模型中的召回任务模块和点击率预估任务模块进行联合训练。
再另一方面,本申请还提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上任一项所述的方法。
再又一方面,本申请还提供一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如上任一项所述的方法。
上述申请中的一个实施例具有如下优点或有益效果:通过采用预先训练的用户点击物品的任务模型和待推荐的物品库中各物品的至少两个特征信息,构建物品特征表达数据库;采用用户点击物品的任务模型和用户的至少两个特征信息,获取用户的特征表达;根据用户的特征表达和物品特征表达数据库,获取要推荐的n个物品的标识;基于n个物品的标识,向用户推荐n个物品的相关信息,与现有技术相比,本申请的技术方案,通过预先训练好的用户点击物品的任务模型来实现物品推荐,能够有效地降低计算量,避免计算错误,提高推荐准确性。而且能够有效地提高物品推荐的智能性,提升物品推荐效率。
进一步地,本申请中用户点击物品的任务模型中包括召回任务模块和点击率预估模块是两个独立的任务,能够在点击率预估模块中将用户的特征表达和物品的特征表达进行交互。这样,在训练时,该点击率预估模块通过反向传播,能够影响嵌入处理模块中的embedding参数,使得用户的特征表达和物品的特征表达之间存在交互的信息记录在embedding参数中,进而能够影响召回任务,使得召回的效果更佳,从而能够进一步有效地提高物品推荐的效果。
本申请的用户点击物品的任务模型的训练方法中,可以同时训练召回任务和点击率预估任务,能够在训练时,通过反向传播,影响嵌入处理模块中的embedding参数,使得用户的特征表达和物品的特征表达之间存在交互的信息记录在embedding参数中,进而能够影响召回任务,使得召回的效果更佳。因此,通过本申请的技术方案训练的用户点击物品的任务模型,能够有效地提高召回效果,使得基于该用户点击物品的任务模型进行物品推荐时,能够有效地提高推荐的准确性,提升物品推荐效率。
进一步地,本申请中,在确定综合交叉熵损失函数在第一连续预设轮数的训练中均收敛时,还可以继续采用数条训练数据,训练用户点击物品的任务模型中的召回任务模块,直至第一交叉熵函数在第二连续预设轮数的训练中均收敛,确定召回任务模块的参数,确定召回任务模块,进而确定用户点击物品的任务模型,能够进一步提高召回效果,提高推荐的准确性,提升物品推荐效率。
上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是根据本申请第一实施例的示意图;
图2是本实施例提供的一种用户点击物品的任务模型的结构图;
图3是根据本申请第二实施例的示意图;
图4是根据本申请第三实施例的示意图;
图5是根据本申请第四实施例的示意图;
图6是用来实现本申请实施例的上述方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本申请第一实施例的示意图;如图1所示,本实施例的物品推荐方法,具体可以包括如下步骤:
s101、采用预先训练的用户点击物品的任务模型和待推荐的物品库中各物品的至少两个特征信息,构建物品特征表达数据库;
本实施例的物品推荐方法的执行主体为物品推荐装置,该物品推荐装置可以为一电子实体;或者也可以为程序集成的应用,使用时,运行在计算机设备上即可实现对物品的推荐。
本实施例的物品推荐方法基于预先训练的用户点击物品的任务模型来实现,该用户点击物品的任务模型为一神经网络模型,该神经网络模型能够实现用户点击物品的至少一个任务的模拟,如召回任务和/或点击率预估任务等等。在用户点击物品的任务模拟过程中,必定需要先基于用户的特征信息和物品的特征信息分别对用户和物品进行嵌入(embedding)处理,得到相应的特征表达,然后基于特征表达,实现任务模拟。因此,基于用户点击物品的任务模型中训练好的特征表达的参数,可以实现基于物品的特征信息,获取物品的特征表达。本实施例中的特征表达具体可以采用向量的形式,也可以称之为向量表达。对应地物品特征表达数据库可以为faiss向量索引数据库。
本实施例的待推荐的物品库中包括预先采集的数个物品的信息,例如每个物品的信息中包括该物品的标识以及该物品的至少两个特征信息。其中物品的标识用于唯一标识该物品,例如物品的标识可以采用数字、字母以及文字中的至少一种或者至少两种的组合。物品的至少两个特征信息可以包括物品的分类、物品的关键词等等其他信息。
本实施例中,基于预先训练的用户点击物品的任务模型和待推荐的物品库中各物品的至少两个特征信息,可以获取到各物品的特征表达;并进一步基于各物品的特征表达,可以构建包括物品库中各物品的特征表达的物品特征表达数据库。其中在该物品特征表达数据库中还可以包括每个物品的标识。
本实施例的特征表达均采用向量的形式,也可以称之为向量表达或者向量。
s102、采用预先训练的用户点击物品的任务模型和用户的至少两个特征信息,获取用户的特征表达;
参考步骤s101的实施方式,也可以基于用户点击物品的任务模型和用户的至少两个特征信息,也获取到用户的特征表达,详细可以参考上述步骤s101的记载,在此不再赘述。
本实施例的用户的至少两个特征信息可以包括用户的行为信息、用户的兴趣标签、用户的人口属性如年龄、性别、人生阶段等等,在此不再一一举例赘述。
s103、根据用户的特征表达和物品特征表达数据库,获取要推荐的n个物品的标识;
具体地,可以先在物品特征表达数据库中,检索出与用户的特征表达最相关的n个物品的特征表达;然后获取n个物品的特征表达对应的n个物品的标识。
s104、基于n个物品的标识,向用户推荐n个物品的相关信息。
例如,可以基于n个物品的标识,向用户推荐n个物品的标识、特征信息、详情或者链接等相关信息。本实施例中,向用户推荐的n个物品的相关信息不限制如上几种,实际应用中还可以包括n个物品的其他信息,在此不再一一举例赘述。具体地,可以根据本实施例的技术方案的应用场景,基于n个物品的标识,获取到n个物品的相关信息,并向用户推荐。例如,在互联网购物平台中,可以基于n个物品的标识,获取到n个物品的详情或者购买链接,向用户推荐。
基于以上记载,可以知道,本实施例的物品推荐方法的应用场景为在已知待推荐的物品库和用户的至少两个特征信息时,可以基于已经训练好的用户点击物品的任务模型,实现向用户推荐物品库中n个物品的相关信息。
可选地,本实施例的预先训练的用户点击物品的任务模型中可以包括召回任务模块和点击率预估任务模块,且召回任务模块与点击率预估任务模块之间经过联合训练得到。例如图2是本实施例提供的一种用户点击物品的任务模型的结构图。如图2所示,本实施例的用户点击物品的任务模型除了包括召回任务模块和点击率预估任务模块之外,还包括基础信息的处理模块,即嵌入(embedding)处理模块,嵌入处理模块分别对用户的至少两个特征信息和物品的至少两个特征信息进行嵌入(embedding)处理,并拼接。召回任务模块和点击率预估模块均采用拼接后的表达作为输入进行处理。
其中召回任务模块用于实现物品对用户的推荐程度指标的计算,该推荐程度指标越高,在向该用户推荐物品时该物品被召回的概率就越大;反之,该推荐程度指标越小,该物品被召回的概率就越小。
点击率预估模块用于实现用户对物品的点击率的预测,点击率越大,表示该用户对该物品的兴趣越高,点击该物品的概率越大;反之,若点击率越小,表示用户对该物品的兴趣越低,点击该物品的概率越小。
本实施例的用户点击物品的任务模型中的召回任务模块和点击率预估模块是两个独立的任务。实际应用中,嵌入处理模块可以与召回任务模块组合形成一个独立的任务模型,用于实现召回任务。或者嵌入处理模块也可以与点击率预估模块组合形成一个独立的任务模型,用于实现点击率预估。
例如,本实施例中,用户点击物品的任务模型中也可以仅采用嵌入处理模块与召回任务模块,而删除点击率预估模块。在训练好该任务模型后,可以基于该任务模型中实现上述图1所示实施例的步骤s101和步骤s102。
但是如图2所示,若用户点击物品的任务模型中仅采用嵌入处理模块与召回任务模块,此时用户的特征表达和物品的特征表达除了在顶层计算物品对用户的推荐程度指标时进行相乘外,没有任何交互,而顶层的信息已经经过了压缩,模型缺少了底层特征表达之间的特征交叉交互,导致该用户点击物品的任务模型在训练时,用户的特征表达和物品的特征表达完全独立,学习不到任何用户与物品的交叉信息,导致训练的模型的召回效果较差。
而图2所示的本实施例的用户点击物品的任务模型中,同时还引入了点击率预估模块,该点击率预估模块是基于用户的组合特征表达和物品的组合特征表达的拼接后的特征,来预测点击率。即将用户的特征表达和物品的特征表达做了交互。这样,在训练时,该点击率预估模块通过反向传播,能够影响嵌入处理模块中的embedding参数,使得用户的特征表达和物品的特征表达之间存在交互的信息记录在embedding参数中,进而能够影响召回任务,使得召回的效果更佳。
此时对应地,步骤s101在实施时,可以根据训练好的图2所示的用户点击物品的任务模型中的嵌入处理模块与召回任务模块中的网络结构参数,基于物品库中各物品的至少两个特征信息,获取到物品库中各物品的特征表达。并将物品库中所有物品的特征表达组合在一起,构建为一个物品特征表达数据库。
同理,步骤s102在实施时,也可以根据训练好的图2所示的用户点击物品的任务模型中的嵌入处理模块与召回任务模块中的网络结构参数,基于用户的至少两个特征信息,获取到用户的特征表达。
需要说明的是,本实施例中的物品除了可以为商品,还可以为广告等其他信息,还能够在其他领域实现广告或者其他信息的推荐。
本实施例的物品推荐方法,通过采用预先训练的用户点击物品的任务模型和待推荐的物品库中各物品的至少两个特征信息,构建物品特征表达数据库;采用用户点击物品的任务模型和用户的至少两个特征信息,获取用户的特征表达;根据用户的特征表达和物品特征表达数据库,获取要推荐的n个物品的标识;基于n个物品的标识,向用户推荐n个物品的相关信息,与现有技术相比,本实施例的技术方案,通过预先训练好的用户点击物品的任务模型来实现物品推荐,能够有效地降低计算量,避免计算错误,提高推荐准确性。而且能够有效地提高物品推荐的智能性,提升物品推荐效率。
进一步地,本实施例的用户点击物品的任务模型中包括召回任务模块和点击率预估模块是两个独立的任务,能够在点击率预估模块中将用户的特征表达和物品的特征表达进行交互。这样,在训练时,该点击率预估模块通过反向传播,能够影响嵌入处理模块中的embedding参数,使得用户的特征表达和物品的特征表达之间存在交互的信息记录在embedding参数中,进而能够影响召回任务,使得召回的效果更佳,从而能够进一步有效地提高物品推荐的效果。
图3根据本申请第二实施例的示意图;如图3所示,本实施例的用户点击物品的任务模型的训练方法,具体可以包括如下步骤:
s301、采集数条训练数据,各训练数据中包括训练用户的至少两个训练特征信息、训练物品的至少两个训练特征信息以及训练用户对训练物品的点击交互信息;
本实施例的用户点击物品的任务模型的训练方法的执行主体为用户点击物品的任务模型的训练装置,该用户点击物品的任务模型的训练装置可以为一电子实体;或者也可以为软件集成的应用,使用时,将该应用运行在大型计算机设备上,采用本实施例的技术方案,实现对该用户点击物品的任务模型进行训练。
本实施例中,采集的训练数据的数量可以达到百万级以上,采集的训练数据的条数越多,训练的用户点击物品的任务模型便越准确。
本实施例中,采集的各条训练数据中包括训练用户的至少两个训练特征信息和训练物品的至少两个训练特征信息可以参考上述图1所示实施例中的用户的至少两个特征信息和物品的至少两个特征信息,在此不再赘述。其中,训练用户对训练物品的点击交互信息可以包括用户点击了该训练物品,或者用户未点击该训练物品。
本实施例中采集训练数据时,可以通过在网站或者应用(application;app)中埋点获取用户的历史展现点击、行为数据,进而挖掘出训练数据。
s302、采用数条训练数据,对用户点击物品的任务模型中的召回任务模块和点击率预估任务模块进行联合训练。
需要说明的是,在训练之前,需要随机初始化用户点击物品的任务模型中的网络结构中每一层的参数,然后基于随机初始化后的参数开始训练用户点击物品的任务模型。
本实施例的用户点击物品的任务模型可以采用如图2所示的结构。例如,训练时,具体可以包括如下步骤:
(a)对于各条训练数据,将训练用户的至少两个特征信息进行嵌入表达后拼接,得到训练用户的组合特征表达;
(b)将训练物品的至少两个训练特征信息进行嵌入表达后拼接,得到训练物品的组合特征表达;
由于嵌入表达得到的都是向量形式的表达,拼接后训练用户的组合特征表达也可以称为训练用户的组合向量,拼接后的训练物品的组合特征表达也可以称为训练物品的组合向量。
(c)在召回任务模块中,将训练用户的组合特征表达和训练物品的组合特征表达分别经过至少两层包括全连接处理和激活处理的处理层的处理,得到训练用户的特征表达和训练物品的特征表达;
本实施例中,生成训练用户的特征表达和训练物品的特征表达的过程中,需要经过至少两层包括全连接处理和激活处理的处理层,具体地处理层的层数可以由训练用户的特征信息的数量来确定。若训练用户的特征信息的数量较多,此时需要较多层的处理层,使得信息混和更加均匀,得到更加准确地训练用户的特征表达。训练物品的特征表达侧的原理类似,在此不再赘述。例如,如图2的网络结构中所示,召回任务模块中的每一层的处理层中包括全连接处理 激活处理,其中激活处理可以采用relu激活处理。
(d)在召回任务模块中,将训练用户的特征表达和训练物品的特征表达进行相乘,得到训练物品对训练用户的推荐程度指标;
本实施例中将训练用户的特征表达和训练物品的特征表达进行相乘得到的是一个点积,该点积用于表示训练物品对训练用户的推荐程度指标。
(e)在点击率预估任务模块中,将训练用户的组合特征表达和训练物品的组合特征表达拼接,并依次经过至少两层包括全连接处理和激活处理的处理层、以及sigmoid激活函数处理层的处理,得到训练用户对训练物品的预测点击概率;
同理,在点击率预估任务模块中,若训练用户的特征信息和训练物品的特征信息的数量较多时,可以设置更多层数的处理层,以对特征信息混合更均匀,得到更加准确的特征信息,提高预测点击概率的值。同理,如图2所示的网络结构中,点击率预估任务模块中的每一层的处理层也包括全连接处理 激活处理,其中激活处理也可以采用relu激活处理。
(f)基于训练物品对训练用户的推荐程度指标、训练用户对训练物品的预测点击概率、已知的训练用户对训练物品的点击交互信息,生成综合交叉熵损失函数;
例如,该步骤具体可以包括:
(1)基于训练物品对训练用户的推荐程度指标和已知的训练用户对训练物品的点击交互信息,生成第一交叉熵函数;
(2)基于训练用户对训练物品的预测点击概率和已知的训练用户对训练物品的点击交互信息,生成第二交叉熵函数;
(3)取第一交叉熵函数和第二交叉熵函数之和,得到综合交叉熵损失函数。
例如,本实施例的综合交叉熵损失函数,可以采用如下公式来表示:
其中
(g)判断综合交叉熵损失函数是否收敛;若未收敛,执行步骤(h);若收敛,执行步骤(i);
(h)调整用户点击物品的任务模型的参数;返回步骤(a)采用下一条训练数据,继续训练。
具体可以包括调整嵌入处理模块、召回任务模块以及点击率预估模块中的网络结构的参数。
(i)判断是否在第一连续预设轮数的训练中均收敛;若是,执行步骤(j);若不是,返回步骤(a)采用下一条训练数据,继续训练。
(j)确定用户点击物品的任务模型的参数,进而确定用户点击物品的任务模型。
进一步可选地,还可以在步骤(i)确定综合交叉熵损失函数在第一连续预设轮数的训练中均收敛时,还可以包括:继续采用数条训练数据,训练召回任务模块,直至第一交叉熵函数在第二连续预设轮数的训练中均收敛,确定召回任务模块的参数,确定召回任务模块,进而确定用户点击物品的任务模型。
也就是说,由于本实施例的用户点击物品的任务模型中的点击率预估任务模块,仅用于模型训练过程中,用于引入用户的特征表达和物品的特征表达的交互,并再训练时,通过反向传播影响嵌入处理模块中的embedding参数,使得用户的特征表达和物品的特征表达之间存在交互的信息记录在embedding参数中,进而能够影响召回任务,使得召回的效果更佳。而且,为了进一步提高召回效果,优化召回任务模块中的网络结构参数,本实施例在训练到综合交叉熵损失函数收敛后,还可以进一步调整召回任务模块中的网络结构参数,使得第一交叉熵函数在第二连续预设轮数的训练中均收敛,确定召回任务模块的参数,确定召回任务模块,进而确定用户点击物品的任务模型。
本实施例的第一连续预设轮数和第二连续预设轮数可以根据实际需求设置为100、200或者其他数值,在此不做限定。
图1所示实施例采用的训练好的用户点击物品的任务模型即为采用上述训练方法训练好的用户点击物品的任务模型。
本实施例的用户点击物品的任务模型的训练方法,通过采用上述技术方案,可以同时训练召回任务和点击率预估任务,能够在训练时,通过反向传播,影响嵌入处理模块中的embedding参数,使得用户的特征表达和物品的特征表达之间存在交互的信息记录在embedding参数中,进而能够影响召回任务,使得召回的效果更佳。因此,通过本实施例的技术方案训练的用户点击物品的任务模型,能够有效地提高召回效果,使得基于该用户点击物品的任务模型进行物品推荐时,能够有效地提高推荐的准确性,提升物品推荐效率。
进一步地,本实施例的训练中,在确定综合交叉熵损失函数在第一连续预设轮数的训练中均收敛时,还可以继续采用数条训练数据,训练用户点击物品的任务模型中的召回任务模块,直至第一交叉熵函数在第二连续预设轮数的训练中均收敛,确定召回任务模块的参数,确定召回任务模块,进而确定用户点击物品的任务模型,能够进一步提高召回效果,提高推荐的准确性,提升物品推荐效率。
图4是根据本申请第三实施例的示意图。如图4所示,本实施例的物品推荐系统400,具体可以包括:
构建模块401,用于采用预先训练的用户点击物品的任务模型和待推荐的物品库中各物品的至少两个特征信息,构建物品特征表达数据库;
特征获取模块402,用于采用预先训练的用户点击物品的任务模型和用户的至少两个特征信息,获取用户的特征表达;
物品获取模块403,用于根据用户的特征表达和物品特征表达数据库,获取要推荐的n个物品的标识;
推荐模块404,用于基于n个物品的标识,向用户推荐n个物品的相关信息。
进一步可选地,本实施例的物品推荐系统400中,物品获取模块403用于:
在物品特征表达数据库中,检索出与用户的特征表达最相关的n个物品的特征表达;
获取n个物品的特征表达对应的n个物品的标识。
进一步可选地,本实施例的物品推荐系统400中,预先训练的用户点击物品的任务模型包括召回任务模块和点击率预估任务模块,且召回任务模块与点击率预估任务模块之间经过联合训练。
本实施例的物品推荐系统400,通过采用上述模块实现物品推荐的实现原理以及技术效果与上述相关方法实施例的实现相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。
图5是根据本申请第四实施例的示意图。如图5所示,本实施例的用户点击物品的任务模型的训练装置500,包括:
采集模块501用于采集数条训练数据,各训练数据中包括训练用户的至少两个训练特征信息、训练物品的至少两个训练特征信息以及训练用户对训练物品的点击交互信息;
训练模块502用于采用数条训练数据,对用户点击物品的任务模型中的召回任务模块和点击率预估任务模块进行联合训练。
进一步可选地,本实施例的用户点击物品的任务模型的训练装置500中,训练模块502具体用于:
对于各条训练数据,将训练用户的至少两个特征信息进行嵌入表达后拼接,得到训练用户的组合特征表达;
将训练物品的至少两个训练特征信息进行嵌入表达后拼接,得到训练物品的组合特征表达;
在召回任务模块中,将训练用户的组合特征表达和训练物品的组合特征表达分别经过至少两层包括全连接处理和激活处理的处理层的处理,得到训练用户的特征表达和训练物品的特征表达;
在召回任务模块中,将训练用户的特征表达和训练物品的特征表达进行相乘,得到训练物品对训练用户的推荐程度指标;
在点击率预估任务模块中,将训练用户的组合特征表达和训练物品的组合特征表达拼接,并依次经过至少两层包括全连接处理和激活处理的处理层、以及sigmoid激活函数处理层的处理,得到训练用户对训练物品的预测点击概率;
基于训练物品对训练用户的推荐程度指标、训练用户对训练物品的预测点击概率、已知的训练用户对训练物品的点击交互信息,生成综合交叉熵损失函数;
判断综合交叉熵损失函数是否收敛;若未收敛,调整用户点击物品的任务模型的参数;
若收敛,判断是否在第一连续预设轮数的训练中均收敛;若是,确定用户点击物品的任务模型的参数,进而确定用户点击物品的任务模型。
进一步可选地,本实施例的用户点击物品的任务模型的训练装置500中,训练模块502用于:
基于训练物品对训练用户的推荐程度指标和已知的训练用户对训练物品的点击交互信息,生成第一交叉熵函数;
基于训练用户对训练物品的预测点击概率和已知的训练用户对训练物品的点击交互信息,生成第二交叉熵函数;
取第一交叉熵函数和第二交叉熵函数之和,得到综合交叉熵损失函数。
进一步可选地,本实施例的用户点击物品的任务模型的训练装置500中,训练模块502还用于:
在确定综合交叉熵损失函数在第一连续预设轮数的训练中均收敛时,继续采用数条训练数据,训练召回任务模块,直至第一交叉熵函数在第二连续预设轮数的训练中均收敛,确定召回任务模块的参数,确定召回任务模块,进而确定用户点击物品的任务模型。
本实施例的用户点击物品的任务模型的训练装置500,通过采用上述模块实现用户点击物品的任务模型的训练的实现原理以及技术效果,与上述相关方法实施例的实现相同,详细可以参考上述相关实施例的记载,在此不再赘述。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图6所示,是根据本申请实施例的实现上述方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图6所示,该电子设备包括:一个或多个处理器601、存储器602,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示gui的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图6中以一个处理器601为例。
存储器602即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的物品推荐方法或者用户点击物品的任务模型的训练方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的物品推荐方法或者用户点击物品的任务模型的训练方法。
存储器602作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的物品推荐方法或者用户点击物品的任务模型的训练方法对应的程序指令/模块(例如,附图4和图5所示的相关模块)。处理器601通过运行存储在存储器602中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的物品推荐方法或者用户点击物品的任务模型的训练方法。
存储器602可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储实现物品推荐方法或者用户点击物品的任务模型的训练方法的电子设备的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器602可选包括相对于处理器601远程设置的存储器,这些远程存储器可以通过网络连接至实现物品推荐方法或者用户点击物品的任务模型的训练方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实现物品推荐方法或者用户点击物品的任务模型的训练方法的电子设备还可以包括:输入装置603和输出装置604。处理器601、存储器602、输入装置603和输出装置604可以通过总线或者其他方式连接,图6中以通过总线连接为例。
输入装置603可接收输入的数字或字符信息,以及产生与实现物品推荐方法或者用户点击物品的任务模型的训练方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置604可以包括显示设备、辅助照明装置(例如,led)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(lcd)、发光二极管(led)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用asic(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(pld)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案,通过采用预先训练的用户点击物品的任务模型和待推荐的物品库中各物品的至少两个特征信息,构建物品特征表达数据库;采用用户点击物品的任务模型和用户的至少两个特征信息,获取用户的特征表达;根据用户的特征表达和物品特征表达数据库,获取要推荐的n个物品的标识;基于n个物品的标识,向用户推荐n个物品的相关信息,与现有技术相比,本申请实施例的技术方案,通过预先训练好的用户点击物品的任务模型来实现物品推荐,能够有效地降低计算量,避免计算错误,提高推荐准确性。而且能够有效地提高物品推荐的智能性,提升物品推荐效率。
进一步地,根据本申请实施例的技术方案,用户点击物品的任务模型中包括召回任务模块和点击率预估模块是两个独立的任务,能够在点击率预估模块中将用户的特征表达和物品的特征表达进行交互。这样,在训练时,该点击率预估模块通过反向传播,能够影响嵌入处理模块中的embedding参数,使得用户的特征表达和物品的特征表达之间存在交互的信息记录在embedding参数中,进而能够影响召回任务,使得召回的效果更佳,从而能够进一步有效地提高物品推荐的效果。
根据本申请实施例的技术方案,用户点击物品的任务模型的训练方法中,可以同时训练召回任务和点击率预估任务,能够在训练时,通过反向传播,影响嵌入处理模块中的embedding参数,使得用户的特征表达和物品的特征表达之间存在交互的信息记录在embedding参数中,进而能够影响召回任务,使得召回的效果更佳。因此,通过本申请实施例的技术方案训练的用户点击物品的任务模型,能够有效地提高召回效果,使得基于该用户点击物品的任务模型进行物品推荐时,能够有效地提高推荐的准确性,提升物品推荐效率。
进一步地,根据本申请实施例的技术方案,在确定综合交叉熵损失函数在第一连续预设轮数的训练中均收敛时,还可以继续采用数条训练数据,训练用户点击物品的任务模型中的召回任务模块,直至第一交叉熵函数在第二连续预设轮数的训练中均收敛,确定召回任务模块的参数,确定召回任务模块,进而确定用户点击物品的任务模型,能够进一步提高召回效果,提高推荐的准确性,提升物品推荐效率。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
1.一种物品推荐方法,其特征在于,包括:
采用预先训练的用户点击物品的任务模型和待推荐的物品库中各物品的至少两个特征信息,构建物品特征表达数据库;
采用所述预先训练的用户点击物品的任务模型和用户的至少两个特征信息,获取用户的特征表达;
根据所述用户的特征表达和所述物品特征表达数据库,获取要推荐的n个物品的标识;
基于所述n个物品的标识,向所述用户推荐所述n个物品的相关信息。
2.根据权利要求1所述的方法,其特征在于,根据所述用户的特征表达和所述物品特征表达数据库,获取要推荐的n个物品的标识,包括:
在所述物品特征表达数据库中,检索出与所述用户的特征表达最相关的n个物品的特征表达;
获取所述n个物品的特征表达对应的所述n个物品的标识。
3.根据权利要求1或2所述的方法,其特征在于,预先训练的所述用户点击物品的任务模型包括召回任务模块和点击率预估任务模块,且所述召回任务模块与所述点击率预估任务模块之间经过联合训练。
4.一种用户点击物品的任务模型的训练方法,其特征在于,包括:
采集数条训练数据,各所述训练数据中包括训练用户的至少两个训练特征信息、训练物品的至少两个训练特征信息以及所述训练用户对所述训练物品的点击交互信息;
采用所述数条训练数据,对所述用户点击物品的任务模型中的召回任务模块和点击率预估任务模块进行联合训练。
5.根据权利要求4所述的方法,其特征在于,采用所述数条训练数据,对所述用户点击物品的任务模型中的召回任务模块和点击率预估任务模块进行联合训练,包括:
对于各条所述训练数据,将所述训练用户的至少两个特征信息进行嵌入表达后拼接,得到训练用户的组合特征表达;
将所述训练物品的至少两个训练特征信息进行嵌入表达后拼接,得到训练物品的组合特征表达;
在所述召回任务模块中,将所述训练用户的组合特征表达和所述训练物品的组合特征表达分别经过至少两层包括全连接处理和激活处理的处理层的处理,得到训练用户的特征表达和训练物品的特征表达;
在所述召回任务模块中,将所述训练用户的特征表达和所述训练物品的特征表达进行相乘,得到所述训练物品对所述训练用户的推荐程度指标;
在所述点击率预估任务模块中,将所述训练用户的组合特征表达和所述训练物品的组合特征表达拼接,并依次经过至少两层包括全连接处理和激活处理的处理层、以及sigmoid激活函数处理层的处理,得到所述训练用户对所述训练物品的预测点击概率;
基于所述训练物品对所述训练用户的推荐程度指标、所述训练用户对所述训练物品的预测点击概率、已知的所述训练用户对所述训练物品的点击交互信息,生成综合交叉熵损失函数;
判断所述综合交叉熵损失函数是否收敛;若未收敛,调整所述用户点击物品的任务模型的参数;
若收敛,判断是否在第一连续预设轮数的训练中均收敛;若是,确定所述用户点击物品的任务模型的参数,进而确定所述用户点击物品的任务模型。
6.根据权利要求5所述的方法,其特征在于,基于所述训练物品对所述训练用户的推荐程度指标、所述训练用户对所述训练物品的预测点击概率、已知的所述训练用户对所述训练物品的点击交互信息,生成综合交叉熵损失函数,包括:
基于所述训练物品对所述训练用户的推荐程度指标和已知的所述训练用户对所述训练物品的点击交互信息,生成第一交叉熵函数;
基于所述训练用户对所述训练物品的预测点击概率和已知的所述训练用户对所述训练物品的点击交互信息,生成第二交叉熵函数;
取所述第一交叉熵函数和所述第二交叉熵函数之和,得到所述综合交叉熵损失函数。
7.根据权利要求6所述的方法,其特征在于,在确定所述综合交叉熵损失函数在所述第一连续预设轮数的训练中均收敛时,所述方法还包括:
继续采用所述数条训练数据,训练所述召回任务模块,直至所述第一交叉熵函数在第二连续预设轮数的训练中均收敛,确定所述召回任务模块的参数,确定所述召回任务模块,进而确定所述用户点击物品的任务模型。
8.一种物品推荐系统,其特征在于,包括:
构建模块,用于采用预先训练的用户点击物品的任务模型和待推荐的物品库中各物品的至少两个特征信息,构建物品特征表达数据库;
特征获取模块,用于采用所述预先训练的用户点击物品的任务模型和用户的至少两个特征信息,获取用户的特征表达;
物品获取模块,用于根据所述用户的特征表达和所述物品特征表达数据库,获取要推荐的n个物品的标识;
推荐模块,用于基于所述n个物品的标识,向所述用户推荐所述n个物品的相关信息。
9.根据权利要求8所述的系统,其特征在于,所述物品获取模块,用于:
在所述物品特征表达数据库中,检索出与所述用户的特征表达最相关的n个物品的特征表达;
获取所述n个物品的特征表达对应的所述n个物品的标识。
10.根据权利要求8或9所述的系统,其特征在于,预先训练的所述用户点击物品的任务模型包括召回任务模块和点击率预估任务模块,且所述召回任务模块与所述点击率预估任务模块之间经过联合训练。
11.一种用户点击物品的任务模型的训练装置,其特征在于,包括:
采集模块,用于采集数条训练数据,各所述训练数据中包括训练用户的至少两个训练特征信息、训练物品的至少两个训练特征信息以及所述训练用户对所述训练物品的点击交互信息;
训练模块,用于采用所述数条训练数据,对所述用户点击物品的任务模型中的召回任务模块和点击率预估任务模块进行联合训练。
12.根据权利要求11所述的装置,其特征在于,所述训练模块,用于:
对于各条所述训练数据,将所述训练用户的至少两个特征信息进行嵌入表达后拼接,得到训练用户的组合特征表达;
将所述训练物品的至少两个训练特征信息进行嵌入表达后拼接,得到训练物品的组合特征表达;
在所述召回任务模块中,将所述训练用户的组合特征表达和所述训练物品的组合特征表达分别经过至少两层包括全连接处理和激活处理的处理层的处理,得到训练用户的特征表达和训练物品的特征表达;
在所述召回任务模块中,将所述训练用户的特征表达和所述训练物品的特征表达进行相乘,得到所述训练物品对所述训练用户的推荐程度指标;
在所述点击率预估任务模块中,将所述训练用户的组合特征表达和所述训练物品的组合特征表达拼接,并依次经过至少两层包括全连接处理和激活处理的处理层、以及sigmoid激活函数处理层的处理,得到所述训练用户对所述训练物品的预测点击概率;
基于所述训练物品对所述训练用户的推荐程度指标、所述训练用户对所述训练物品的预测点击概率、已知的所述训练用户对所述训练物品的点击交互信息,生成综合交叉熵损失函数;
判断所述综合交叉熵损失函数是否收敛;若未收敛,调整所述用户点击物品的任务模型的参数;
若收敛,判断是否在第一连续预设轮数的训练中均收敛;若是,确定所述用户点击物品的任务模型的参数,进而确定所述用户点击物品的任务模型。
13.根据权利要求12所述的装置,其特征在于,所述训练模块,用于:
基于所述训练物品对所述训练用户的推荐程度指标和已知的所述训练用户对所述训练物品的点击交互信息,生成第一交叉熵函数;
基于所述训练用户对所述训练物品的预测点击概率和已知的所述训练用户对所述训练物品的点击交互信息,生成第二交叉熵函数;
取所述第一交叉熵函数和所述第二交叉熵函数之和,得到所述综合交叉熵损失函数。
14.根据权利要求13所述的装置,其特征在于,所述训练模块,还用于:
在确定所述综合交叉熵损失函数在所述第一连续预设轮数的训练中均收敛时,继续采用所述数条训练数据,训练所述召回任务模块,直至所述第一交叉熵函数在第二连续预设轮数的训练中均收敛,确定所述召回任务模块的参数,确定所述召回任务模块,进而确定所述用户点击物品的任务模型。
15.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-3或者4-7中任一项所述的方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-3或者4-7中任一项所述的方法。
技术总结