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

项目预测及推荐方法、装置和系统

文献发布时间:2023-06-19 12:19:35


项目预测及推荐方法、装置和系统

技术领域

本公开涉及互联网领域,特别涉及与用户行为有关的项目预测和推荐。

背景技术

随着人工智能的兴起,作为人工智能中最重要的技术——机器学习,也日益受到人们的重视。

近几年,越来越多的场景也不断引入机器学习技术。其中,对于工业界而言最为重要的场景便是CTR(Click-Through Rate,点击率)预估。

一般地,CTR预估是指,给定用户以及相应的样本,预测用户点击该样本的概率。CTR预估广泛应用于推荐、搜索、广告中,能够产生巨大的收益。

近几年,CTR预估模型的发展方向为模型越来越深,参数量越来越庞大,考虑了越来越多的用户侧和项目(item,也可以称为“物品”)侧的信息。

然而,这些方法忽略了一个至关重要的信息,用户的兴趣是在连续时间上变化的。推荐系统往往只能观测到用户的离散行为,而不能认识到用户的兴趣随时间的变化规律。如果不能对用户兴趣真实的时间分布(或随时间的演化/变化)建模,那么很难对用户兴趣准确建模。

具体说来,在推断用户兴趣的时候,不同时间点下的用户兴趣往往会有不同。

例如,就短视频推荐的场景而言,用户可能白天喜欢看新闻类视频,晚上可能喜欢看娱乐类视频;或者,工作日喜欢看知识类视频,休息日喜欢看休闲类视频。而目前的CTR预估模型都无法对不同时间段的兴趣加以区分。

因此,仍然需要一种能够体现用户兴趣随时间的演化的项目预测和推荐方案。

发明内容

本公开要解决的一个技术问题是提供一种能够体现用户兴趣随时间的演化的项目预测和推荐方案。

根据本公开的第一个方面,提供了一种项目推荐方法,包括:将对应于项目的第一向量和当前时间点输入训练好的常微分方程求解器,得到对应于当前时间点的第二向量;基于第二向量得到用于当前时间点的模型输入向量;将模型输入向量输入预测模型,得到针对项目的预测结果;以及基于预测结果确定是否在当前时间点推荐项目。

可选地,基于第二向量得到用于当前时间点的模型输入向量的步骤包括:基于对应于先前时间点的第二向量和对应于当前时间点的第二向量,得到用于当前时间点的模型输入向量。

可选地,基于第二向量得到模型输入向量的步骤可以包括:基于对应于先前时间点的第二向量、对应于当前时间点的第二向量以及对应于用户画像的向量,得到用于当前时间点的模型输入向量。

可选地,常微分方程求解器输出分别对应于先前时间点和对应于当前时间点的输出向量,对于先前时间点和当前时间点中的每一个时间点,通过融合对应于该时间点的第一向量和常微分方程求解器输出向量,得到对应于该时间点的第二向量。

可选地,基于对应于先前时间点的第二向量和对应于当前时间点的第二向量得到用于当前时间点的模型输入向量的步骤可以包括:对对应于先前时间点的多个第二向量进行池化处理。

可选地,池化处理包可以括:对对应于预定时间段内多个时间点的第二向量进行下述至少一项操作:加和、取平均、取差值。

可选地,该方法还可以包括:基于用户对所推荐项目的反馈,进一步训练常微分方程求解器;以及使用进一步训练后的常微分方程求解器,更新对应于先前时间点的第二向量和对应于当前时间点的第二向量,以在下一时间点作为对应于先前时间点的第二向量。

可选地,该方法还可以包括:基于用户对所推荐项目的反馈,进一步训练常微分方程求解器和/或预测模型。

可选地,该方法还可以包括:基于用户的历史行为记录训练常微分方程求解器和/或预测模型。

可选地,基于用户的历史行为记录训练常微分方程求解器和/或预测模型的步骤可以包括:将用户的历史行为记录中的历史项目所对应的历史第一向量和历史时间点输入常微分方程求解器,得到对应于历史时间点的历史第二向量;基于历史第二向量得到历史模型输入向量;将历史模型输入向量输入预测模型,得到针对历史项目的预测结果;以及基于预测结果和用户对历史项目的反馈,调整常微分方程求解器和/或预测模型。

可选地,基于用户的历史行为记录训练常微分方程求解器和/或预测模型的步骤可以包括:对于在后历史时间点,使用上一轮次训练后的常微分方程求解器和/或预测模型,得到针对在后历史时间点的在后历史项目的预测结果,上一轮次训练是基于用户对在先历史时间点的在先历史项目的反馈进行的;以及基于针对在后历史项目的预测结果和用户对在后历史项目的反馈,进行对常微分方程求解器和/或预测模型的本轮次训练。

可选地,对于第一个历史时间点,上一轮次训练可以是基于用户画像进行的。

可选地,基于所有在先时间点的在先历史项目,得到针对在后历史项目的预测结果;以及/或者基于在后时间点之前预定时间段以内的在先时间点的在先历史项目,得到针对在后历史项目的预测结果;以及/或者基于在后时间点之前预定数量的在先时间点的在先历史项目,得到针对在后历史项目的预测结果。

可选地,基于用户的历史行为记录训练常微分方程求解器和/或预测模型的步骤还可以包括:从历史行为记录中筛选多个历史时间点以及/或者历史时间点所对应的历史项目。

可选地,反馈可以包括下述至少一项:点击、购买、观看、停留时间长短。

可选地,常微分方程求解器和/或预测模型是针对用户训练的。

可选地,用户包括下述用户中的一项:当前用户:与当前用户具有相同用户画像的多个用户;当前用户所属用户群中的多个用户;全体用户。

可选地,当前时间点是当前待预测时间点。

可选地,该方法还可以包括:将项目信息输入嵌入层,得到第一向量,第一向量用于表示项目。

可选地,将项目信息输入嵌入层得到第一向量的步骤包括:通过嵌入层将项目标识转化为嵌入向量;将项目相关文本的向量表示和/或项目相关特征与嵌入向量拼接,得到第一向量。

根据本公开的第二个方面,提供了一种项目推荐方法,包括:将对应于项目的第一向量和当前时间点输入训练好的时间演化求解模型,得到对应于当前时间点的第二向量,时间演化求解模型用于输出与其输入向量随时间推移的演化规律有关的输出向量;基于第二向量得到用于当前时间点的模型输入向量;将模型输入向量输入预测模型,得到针对项目的预测结果;以及基于预测结果确定是否在当前时间点推荐项目。

可选地,时间演化求解模型的输出用于表示其输入随时间推移的演化规律。

根据本公开的第三个方面,提供了一种项目预测方法,用于预测用户对项目的反馈,该方法包括:将对应于项目的第一向量和当前时间点输入训练好的常微分方程求解器,得到对应于当前时间点的第二向量;基于第二向量得到用于当前时间点的模型输入向量;将模型输入向量输入预测模型,得到针对项目的预测结果。

根据本公开的第四个方面,提供了一种项目预测方法,用于预测用户对项目的反馈,该方法包括:将对应于项目的第一向量和当前时间点输入训练好的时间演化求解模型,得到对应于当前时间点的第二向量,时间演化求解模型用于输出与输入向量随时间演化的规律有关的输出向量;基于第二向量得到用于当前时间点的模型输入向量;以及将模型输入向量输入预测模型,得到针对项目的预测结果。

根据本公开的第五个方面,提供了一种项目推荐方法,包括:将表示项目的数据和当前时间点输入训练好的时间演化求解模型,得到对应于当前时间点的输出,时间演化求解模型用于输出与输入向量随时间演化的规律有关的输出;基于输出得到用于当前时间点的模型输入;向预测模型输入模型输入,得到针对项目的预测结果;以及基于预测结果确定是否在当前时间点推荐项目。

根据本公开的第六个方面,提供了一种视频推荐方法,包括:将视频的视频信息输入嵌入层,得到第一向量;将第一向量和当前时间点输入训练好的时间演化求解模型,得到对应于当前时间点的第二向量,时间演化求解模型用于输出与输入向量随时间演化的规律有关的输出向量;基于第二向量得到用于当前时间点的模型输入向量;使用预测模型,输入模型输入向量,得到针对视频的预测结果;以及基于预测结果确定是否在当前时间点推荐视频。

可选地,视频信息包括视频标识,将视频的视频信息输入嵌入层得到第一向量的步骤包括:通过嵌入层将视频信息转化为嵌入向量;以及将视频相关文本的向量表示和/或视频封面图的特征与嵌入向量拼接,得到第一向量。

根据本公开的第七个方面,提供了一种建模方法,用于对用户兴趣随时间的演化建模,包括:将对应于项目的第一向量和当前时间点输入训练好的时间演化求解模型,得到对应于当前时间点的第二向量,时间演化求解模型用于输出与其输入向量随时间推移的演化规律有关的输出向量;以及基于第二向量得到用于当前时间点的预测模型输入向量,以便预测模型对项目进行预测。

可选地,时间演化求解模型是常微分方程求解器。

根据本公开的第八个方面,提供了一种项目推荐装置,包括:时间演化求解模块,将对应于项目的第一向量和当前时间点输入训练好的时间演化求解模型,得到对应于当前时间点的第二向量,时间演化求解模型用于输出与输入向量随时间演化的规律有关的输出向量;预测模块,基于第二向量得到用于当前时间点的模型输入向量,将模型输入向量输入预测模型,得到针对项目的预测结果;以及推荐模块,基于预测结果确定是否在当前时间点推荐项目。

根据本公开的第九个方面,提供了一种项目预测装置,包括:时间演化求解模块,将对应于项目的第一向量和当前时间点输入训练好的时间演化求解模型,得到对应于当前时间点的第二向量,时间演化求解模型用于输出与输入向量随时间演化的规律有关的输出向量;以及预测模块,基于第二向量得到用于当前时间点的模型输入向量,将模型输入向量输入预测模型,得到针对项目的预测结果。

根据本公开的第十个方面,提供了一种项目推荐系统,包括:时间演化求解装置,使用训练好的时间演化求解模型,输入对应于项目的第一向量和当前时间点,得到对应于当前时间点的第二向量,时间演化求解模型用于输出与输入向量随时间演化的规律有关的输出向量;预测装置,使用预测模型,输入用于当前时间点的模型输入向量,得到针对项目的预测结果,用于当前时间点的模型输入向量是基于第二向量得到的;以及推荐装置,基于预测结果确定是否在当前时间点推荐项目。

根据本公开的第十一个方面,提供了一种项目预测系统,包括:时间演化求解装置,使用训练好的时间演化求解模型,输入对应于项目的第一向量和当前时间点,得到对应于当前时间点的第二向量,时间演化求解模型用于输出与输入向量随时间演化的规律有关的输出向量;预测装置,使用预测模型,输入用于当前时间点的模型输入向量,得到针对项目的预测结果,用于当前时间点的模型输入向量是基于第二向量得到的。

根据本公开的第十二个方面,提供了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行如上述第一至第七个方面所述的方法。

根据本公开的第十三个方面,提供了一种非暂时性机器可读存储介质,其上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器执行如上述第一至第七个方面所述的方法。

由此,在预测和项目推荐过程中,考虑了用户行为在时间流上的演化,因此更加贴近真实的场景,能够给出更加符合用户兴趣随时间变化情况的预测结果,得到更好的推荐反馈效果。

附图说明

通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。

图1是示出本公开的项目推荐方案的示意图。

图2是本公开的项目推荐方法的示意性流程图。

图3是本公开的项目推荐装置的示意性框图。

图4A至4D分别示出了内容推介界面在早晨、中午、下午、晚上向用户推荐内容的示例。

图5示出了根据本发明一实施例可用于实现上述项目推荐方法的计算设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

项目推荐是指在一些项目分发或提供场景中,需要根据用户的历史行为,推荐用户感兴趣的项目,从而提高用户黏性。

这里,项目(item)指被推荐的东西。例如,在视频推荐中指代视频,在商品推荐中指代商品。

例如,在视频网站或视频APP的短视频分发场景中,需要根据用户的观看历史,推荐用户可能感兴趣的视频。

在商品销售网站或APP中,需要根据用户的点击、查看、购买历史,推荐用户可能感兴趣的商品。

在推荐过程中,需要考虑的用户属性往往包括两个方面:用户的统计信息,例如:年龄、性别等;以及用户的历史行为(视频观看历史,商品点击、查看、购买历史)。

本公开提出了一种基于时间演化求解模型的项目推荐(CTR预估)方案。

时间演化求解模型也可以称为“深度时间流(DTS,Deep Time-Stream)模型”,能够对用户行为在连续时间上体现的兴趣信息建模,或者,能够对用户兴趣随时间的演化建模,输出与其输入(向量)随时间推移的演化规律有关的输出(向量)。例如,本公开可以采用常微分方程求解器(ODE Solver)来实现时间演化求解模型。

时间演化求解模型,或深度时间流(DTS)模型,可以作为一个组件加入到现有CTR预估模型中。

下面参考图1至图3描述本公开的项目推荐方案。

图3是本公开的项目推荐装置的示意性框图。

【项目预测装置】

如图3所示,本公开的项目推荐装置可以包括时间演化求解模块310、预测模块320和推荐模块330。

时间演化求解模块310将对应于项目的第一向量和当前时间点输入训练好的时间演化求解模型,得到对应于当前时间点的第二向量。

其中,时间演化求解模型用于输出与输入向量随时间演化的规律有关的输出向量。

在本公开的实施例中,可以以常微分方程求解器作为时间演化求解模型的示例来进行描述。

凡含有参数、一元函数和其导数(或微分)的方程,称为常微分方程(ODE)。RNN(循环神经网络,用于处理离散数据的序列神经网络)可视作常微分方程使用固定步长的欧拉解法。

预测模块320基于第二向量得到用于当前时间点的模型输入向量,将模型输入向量输入预测模型,得到针对项目的预测结果。

预测模块320可以采用各种现有的预测模型,例如通常的深度CTR预估模型,如:DNN(深度神经网络,Deep Neural Networks),DIN(深度兴趣网络,Deep InterestNetwork),DIEN(兴趣演化网络,Deep Interest Evolution Network)等。

推荐模块330基于预测结果确定是否在当前时间点推荐项目。

于是,推荐模块330可以向用户推荐项目。

另外,推荐模块330还可以接收用户对所推荐项目的反馈,将反馈返回给时间演化求解模块310,从而对时间演化求解模块310和预测模块320进行进一步的训练。

应当理解,可以只对时间演化求解模型/或预测模型进行训练。在一些情况下,可以采用已经训练好的预测模型,而不再对预测模型进行进一步的训练。

时间演化求解模块310、预测模块320和推荐模块330可以组合在一起成为项目推荐装置。或者,它们也可以以任何方式两两组合、或者单独实施。

例如,时间演化求解模块310可以单独实施一种建模方法,以便通过对用户兴趣随时间的演化建模,得到体现了用户兴趣演化规律的预测模型输入向量。当将该预测模型输入向量提供给与时间演化求解模块310独立的预测模型320时,预测模型320能够给出更加符合当前时间点的用户兴趣的预测结果。

又例如,时间演化求解模块310和预测模块320结合,可以提供一种项目预测装置,实施项目预测方法,得到考虑了用户兴趣随时间演化规律的预测结果。

另外,时间演化求解模块310、预测模块320和推荐模块330可以在同一台计算机、服务器或云平台上实现,也可以在不同的计算机、不同的服务器或不同的云平台上实现。

在一些实施例中,可以提供一种项目推荐系统。时间演化求解模块310、预测模块320和推荐模块330可以分别在相应的装置(例如计算机、服务器或云平台等)上实现,即时间演化求解装置、预测装置、推荐装置。

下面参考图1和图2进一步详细描述例如可以由上述项目推荐装置实施的项目推荐方法。

图1是示出本公开的项目推荐方案的示意图。

图2是本公开的项目推荐方法的示意性流程图。

【训练】

如图2所示,在步骤S210,基于用户的历史行为记录训练时间演化求解模型和/或预测模型。

这一过程可以称为“离线训练”过程。如下文所述,这个训练过程中,也可以有一部分实际上是在在线预测的过程中进一步进行的。换言之,训练过程可能并不总是离线操作。

例如,在本公开的项目推荐方案或项目预测方案或建模方案上线之前,可以积累一定时间段的数据,收集用户的历史行为记录,例如可以包括用户对向其推荐的项目的各种反馈。然后,基于所收集的历史行为记录对训练时间演化求解模型和/或预测模型进行训练。

作为示例,用户对所推荐项目的反馈例如可以包括点击、购买、观看、停留时间长短等。

下文中,以常微分方程求解器为例,描述时间演化求解模型。应当理解,其它能够输出与其输入(向量)随时间推移的演化规律有关的输出(向量)的时间演化求解模型也都可以用于本公开的项目推荐方法。

如上文所述,在一些情况下,可以采用已经训练好的预测模型,而不再对预测模型进行进一步的训练。另外,在提供了时间演化求解模型输出作为模型输入,从而作为预测模型训练样本的情况下,可以采用现有方案对预测模型进行训练。在此不再赘述。

下文中重点描述对时间演化求解模型(例如常微分方程求解器)的训练。

训练过程中的一些细节操作等可以与下文中将详细描述的在线预测阶段的预测过程相类似。结合后面的详细描述和这里的简要描述,应当能够充分理解本公开的离线训练过程。

可以从用户的历史行为记录(例如日志)中提取历史项目,如图1所示,N个历史项目

可以采用和下文中关于预测阶段的描述的相同的方式,得到历史项目所对应的历史第一向量e

将历史第一向量

其中,可以认为,在常微分方程求解器的隐时间流空间中得到对应于各时间点的向量

历史输出向量

因为每个用户的行为历史(例如视频观看历史)在时间轴上的密度是不一样,且用户行为发生的时间点t

基于历史第二向量

将历史模型输入向量输入预测模型,得到针对历史项目的预测结果。

基于预测结果和用户对历史项目的反馈,调整常微分方程求解器和/或预测模型。

基于用户的历史行为记录进行训练的过程可以与下文中将详细描述的在线预测阶段的预测过程相类似。

例如,可以将用户的历史行为记录中的历史项目所对应的历史第一向量和历史时间点,按时间顺序依次输入常微分方程求解器。

在一个实施例中,可以逐个轮次来进行训练。每输入一个历史时间点及其对应的历史第一向量,执行一轮训练。

具体说来,首先,在输入第一个历史项目

然后,从第一个历史时间点t

当i+1=1(即,本轮次为第1轮次)时,上一轮次(第0轮次)训练可以是基于用户画像x

可以理解,i+1≥2(即,本轮次为第2轮次或以后的轮次)时,上一轮次(第i轮次)训练可以是基于用户对在先历史时间点t

在第i+1轮次,可以采用下文中将详细描述的预测方案,使用上一轮次(第i轮次)训练后的常微分方程求解器和/或预测模型,得到针对在后历史时间点t

然后,基于针对在后历史项目

在针对在后历史项目

例如,用户的历史行为记录中,在一个时间段内,例如从早上9点到11点,访问了大量历史项目。则可以从中抽选一部分历史项目以用于进行训练和预测。

另外,针对在后历史项目

或者,也可以基于在后时间点之前预定时间段以内的在先时间点的在先历史项目,或者也可以基于在后时间点之前预定数量的在先时间点的在先历史项目,进行预测。这样,可以基于“短期”规律进行“短期”预测。

例如,在i+1=21的情况下,可以基于所有在先时间点t

在一些情况下,可以既进行“长期”预测又进行“短期”预测,两个预测结果结合,得到最终预测结果。

应当理解,这里描述的(针对历史时间点t

下面,继续参考图1和图2,详细描述在线预测过程。

可以理解,如果把下文中的下标中的“N”改为“i”,则同样的过程可以适用于上文所描述的第i+1轮次离线训练过程。

另外,需要说明的是,离线训练阶段和在线预测阶段可以采用基本相同的预测、推荐、反馈、再训练的循环操作流程,在线预测阶段,那些已经进行过预测、推荐、反馈的项目(以及该项目对应的时间点(预测时的“当前时间点”)和反馈),可以成为在先时间点对应的在先项目相应的用户行为,用于对在后时间点的项目预测。

所以,在下面的描述中,在当前时间点t

一些情况下,在当前时间点t

另外,也可以将针对当前时间点t

【嵌入表示】

在步骤S220,开始上述第N+1轮次预测,可以将目标项目x

目标项目x

可以将当前时间点t

或者,在一些情况下,在线预测时,当前要预测的可能是未来某个时间点的预测结果(例如预测CTR)。这些情况下,当前时间点t

第一向量e

这里,可以通过嵌入层将项目标识(ID)转化为嵌入向量。例如,可以通过嵌入矩阵,将项目标识转化为嵌入向量。

然后,还可以将项目相关文本的向量表示和/或项目相关特征与嵌入向量拼接,得到第一向量e

嵌入(Embedding)向量是指离散文本或离散ID在连续空间上的嵌入表示。其中,语义相近的点在空间中的距离较近。

关于嵌入层、嵌入矩阵、嵌入向量等技术内容已为本领域所公知,在此不再赘述。

另外,如图1所示,在一些情况下,还可以将用户画像x

【时间流】

在步骤S230,将对应于项目x

时间演化求解模型用于输出与其输入向量随时间推移的演化规律有关的输出向量,例如常微分方程求解器。

时间演化求解模型(例如常微分方程求解器)的输出用于表示其输入随时间推移的演化规律。

输出向量

时间演化求解模型(例如常微分方程求解器)可以是针对特定用户训练的。这里的特定用户可以包括下述用户中的一项:当前用户:与当前用户具有相同用户画像的多个用户;当前用户所属用户群中的多个用户;全体用户。

换言之,使用时间演化求解模型,可以针对某个用户或某个用户群体(例如某类用户)或具有相同用户画像的多个用户或全体用户,基于该用户或该用户群体或该多个用户或全体用户的历史行为记录进行训练,从而可以针对目标项目(输入),得到能够体现该用户或该用户群体或该多个用户或全体用户的兴趣随时间推移的演化规律的输出(该用户或该用户群体在当前时间点t

同样地,预测模型也可以是针对上述特定用户训练的。

下文中以常微分方程求解器为例,进行描述。

可以认为,在常微分方程求解器的隐时间流空间中得到对应于当前时间点t

另外,在步骤S230,还可以使用第N轮次训练后的常微分方程求解器,更新对应于先前时间点t

一般地,第N轮次训练后的常微分方程求解器会与第N-1轮次训练后的常微分方程求解器有所不同。因此,更新后的输出向量

这样,常微分方程求解器输出分别对应于先前时间点t

对于先前时间点t

预测模型进行预测时,可以既使用基于项目信息嵌入向量表示的第一向量e

为了便于理解,在此粗略解释一下常微分方程求解器的输出体现用户兴趣随时间演化而变化的规律的大致原理。这一描述不作为对于本申请要求保护的范围的限制。

如上文所述,常微分方程(ODE)是含有参数、一元函数和其导数(或微分)的方程。常微分方程的解,即为该一元函数。当该一元函数的自变量为时间t时,该一元函数即可以视为体现了其随时间变化的规律。

设模型输入为x,对应的自变量为t。输入x中所体现出的用户兴趣y随时间t的演化规律可以理解/表达为关于t的函数y(t)。

根据用户先前多次行为,或者说多个(x,t)二元数对,可以用某个常微分方程或常微分方程组来尝试表达函数y(t)所满足的规律。该常微分方程或常微分方程组中,可能包含时间变量t以及y关于t的一阶导数、二阶导数、……

所以,输入先前若干个时间点的输入向量,并给出相应的反馈信息,常微分方程求解器模型可以逐渐训练为符合常微分方程或方程组的模型,或者说,可以通过求解该常微分方程或方程组以得到用户的实时兴趣表示的模型。

若干阶的常微分方程包括若干个未知的系数,换言之,存在若干种可能性。常微分方程求解器模型的训练过程相当于是该模型更加符合这个表示用户兴趣演化规律的常微分方程。

这样,当输入当前时间点要预测的目标项目对应的向量时,可以通过求解这样训练好的常微分方程求解器模型,得到能够体现/表达用户在当前时间点的兴趣的输出。一般地,这里的输出y的向量空间可以与输入x的向量空间不同。

然后,在步骤S240,可以基于第二向量得到用于当前时间点t

这里的第二向量可以包括当前时间点t

这样,可以基于对应于先前时间点t

这里,还可以例如在池化(pooling)层,对对应于先前时间点t

作为示例,池化处理可以包括对对应于预定时间段内多个时间点(例如先前时间点t

另外,基于对应于当前时间点t

拼接用户向量

另外,还可以在模型输入向量中添加画像特征e

由此,通过对用户兴趣随时间的演化建模,得到体现了用户兴趣演化规律的预测模型输入向量。

当将该预测模型输入向量提供给与时间演化求解模块310独立的预测模型320时,预测模型320能够给出更加符合当前时间点的用户兴趣的预测结果。

【预测】

在步骤S250,将模型输入向量输入预测模型,得到针对项目的预测结果。

预测模型例如可以包括一个或多个全连接层(FC)。如上文所述,可以采用各种现有的预测模型,例如通常的深度CTR预估模型,如:DNN(深度神经网络,Deep NeuralNetworks),DIN(深度兴趣网络,Deep Interest Network),DIEN(兴趣演化网络,DeepInterest Evolution Network)等。对于各种预测模型的预测方法,这里不再赘述。

由此,实现了一种项目预测方法,可以用于预测用户对目标项目的反馈,例如用户点击、购买、观看目标项目的概率等。例如在短视频推荐领域,可以预测用户对目标短视频的点击率(或点击概率)。

【推荐】

在步骤S260,基于步骤S250预测模型的预测结果,确定是否在当前时间点推荐项目。将确定当前时间点要推荐的项目推荐给用户。

由此,实现了一种项目推荐方法,可以向用户推荐更加符合用户在当前时间点的兴趣的项目,例如,短视频、商品、广告、新闻、小说、搜索结果等。

【进一步训练】

在向用户推荐项目之后,可以接收用户的实际反馈。

用户实际反馈例如可以包括用户是否点击、购买、观看了所推荐项目,以及用户在查看或观看所推荐项目(例如短视频)时的停留时间长度。

例如,用户点击了所推荐项目的情况下,此次推荐的相关信息可以作为正例。而用户没有点击所推荐项目的情况下,此次推荐的相关信息可以作为负例。

基于用户对所推荐项目的反馈,进一步训练常微分方程求解器和/或预测模型。

在步骤S270,可以基于用户对所推荐项目的反馈,进一步训练(第N+1轮次训练)常微分方程求解器。

与上文参考步骤S230所述,可以使用第N+1轮次进一步训练后的常微分方程求解器,更新对应于先前时间点对应于先前时间点t

不论是离线训练阶段,还是在线预测之后的进一步训练,如图1所示,对于时间点t

或者,可以基于第i+1轮次预测结果和用户对时间点t

【示例应用场景】

作为应用场景示例,本公开的项目推荐方案可以实现为一种视频推荐方法,特别是短视频推荐方法。

将视频的视频信息输入嵌入层,得到上述第一向量。

视频信息可以包括视频标识(ID)。这里,可以通过嵌入层将视频信息转化为嵌入向量。然后,将视频相关文本的向量表示和/或视频封面图的特征与嵌入向量拼接,得到第一向量。

将第一向量和当前时间点输入训练好的时间演化求解模型,例如常微分方程求解器,得到对应于当前时间点的第二向量。

时间演化求解模型用于输出与输入向量随时间演化的规律有关的输出向量。

这样,第二向量包含了用户随时间变化的兴趣表示。

基于第二向量得到用于当前时间点的模型输入向量。

使用预测模型,输入模型输入向量,得到针对视频的预测结果。

由此,可以基于预测结果确定是否在当前时间点推荐视频。

然后,可以进一步根据用户反馈对时间演化求解模型和/或预测模型进行训练。

另外,除了视频推荐应用场景,本公开的技术方案还可以应用于商品推荐、广告推荐、新闻分发、小说推送、搜索推荐等场景中。

本公开提出的项目预测/推荐方案创造性地将连续时间建模到CTR预估中。利用连续时间信息,更好地理解了用户兴趣,可以推断用户在在任意时间点的兴趣,相对于现有预测和推荐方案,具有显著的性能改善。

该方案不是简单地将时间作为特征,而是考虑了用户行为在时间流上的演化,因此更加贴近真实的场景。

下面参考附图4A至4D描述使用本公开的项目预测/推荐方案的进行项目推荐的示例。

图4A至4D分别示出了内容推介界面在早晨、中午、下午、晚上向用户推荐内容的示例。

图4A至4D中示出在内容推介界面(显示屏)400上方设置用户可选的固定栏目内容410和下方的四个推荐项目421、422、423、424;431、432、433、434;441、442、443、444;451、452、453、454。用户可以从所推荐的项目中进行选择。

应当理解,推荐项目也可以以其它方式来向用户呈现。例如,可以在显示屏400上直接显示并播放一个推荐项目,通过用户的例如划屏操作等来选择下一个推介项目。

用户在一天中不同时间对待推荐项目可能会存在不同的兴趣倾向。通过本公开的项目预测/推荐方案,能够识别用户在一天内不同时间的兴趣,于是可以在不同时间向用户推送不同类型的内容。

例如,用户可能在早晨对新闻类内容感兴趣。

图4A示出了早晨向用户推送新闻内容的示例。如图4A所示,推荐项目421、422、423、424分别为“新闻1”、“新闻2”、“新闻3”、“新闻4”。

中午午休时间,用户可能希望看一些时间不算太长的休闲内容,例如相声、小品等。

图4B示出了中午向用户推送休闲内容的示例。如图4B所示,推荐项目431、432、433、434分别为“相声1”、“相声2”、“小品1”、“小品2”。

下午工作间隙,用户可能希望看一些娱乐短视频略作休息。

图4C示出了下午向用户推送娱乐短视频的示例。如图4C所示,推荐项目441、442、443、444分别为“娱乐短视频1”、“娱乐短视频2”、“娱乐短视频3”、“娱乐短视频4”。

而在晚上,用户可能对知识类内容等更感兴趣,例如演讲、讲座等。

图4D示出了晚上向用户推送知识类内容的示例。如图4C所示,推荐项目451、452、453、454分别为了“演讲1”、“演讲2”、“讲座3”、“讲座4”。

这样,在例如通过机器学习来预测用户个人的总体兴趣倾向之外,本公开的项目预测/推荐方案还可以进一步预测用户在例如一天中不同时间点或时间段的兴趣倾向,并相应进行推送。由此,能够提高用户点击率,进一步改善用户体验。

图4所示例子中,针对用户在一天中不同时间所具有不同兴趣倾向进行不同的预测/推荐。

应当理解,随着机器学习的时间段的延长,可以考虑的时间周期也可以适当拉长。

例如,可以以周为预测周期,根据工作日和周末用户可能具有的不同兴趣来进行不同的预测/推荐。甚至还可以根据工作日的开始(周一)、中间(周二至周四)、末尾(周五),或者周末的开始(周五晚上)、中间(周六)、末尾(周日),用户可能具有的不同兴趣来进行不同的预测/推荐。

甚至,还可以以年为预测周期,根据一年中不同的月份、不同的季节、各个节假日等不同时间点用户可能具有的不同兴趣来进行不同的预测/推荐。

图5示出了根据本发明一实施例可用于实现上述项目推荐/预测方法的计算设备的结构示意图。

参见图5,计算设备500包括存储器510和处理器520。

处理器520可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器520可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、数字信号处理器(DSP)等等。在一些实施例中,处理器520可以使用定制的电路实现,例如特定用途集成电路(ASIC,Application Specific Integrated Circuit)或者现场可编程逻辑门阵列(FPGA,Field Programmable Gate Arrays)。

存储器510可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM),和永久存储装置。其中,ROM可以存储处理器520或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器510可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器510可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。

存储器510上存储有可执行代码,当可执行代码被处理器520处理时,可以使处理器520执行上文述及的项目推荐/预测方法。

上文中已经参考附图详细描述了根据本发明的项目推荐/预测方案。

此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。

或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。

本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。

附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

相关技术
  • 项目推荐系统、项目推荐装置以及项目推荐方法
  • 项目预测及推荐方法、装置和系统
技术分类

06120113255581