用于推荐目标对象的方法、计算设备和计算机存储介质转让专利

申请号 : CN202010638994.5

文献号 : CN111523044B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 胡强王德龙

申请人 : 南京梦饷网络科技有限公司上海众旦信息科技有限公司

摘要 :

本公开涉及一种用于推荐目标对象的方法、计算设备和计算机存储介质。该方法包括:生成输入数据,输入数据至少包括用户针对目标对象的点击特征、浏览特征和购买特征和目标对象特征;将输入数据平均分片成多个子输入数据;经由第一神经网络模型预测用户的点击概率;经由第二神经网络模型预测关于目标对象的转化概率,第二神经网络模型和第一神经网络模型至少共享嵌入层;以及基于用户的点击概率、关于目标对象的转换概率和第三损失函数,预测关于目标对象的推荐概率。本公开能够避免因采样的用户行为特征稀疏而导致的过拟合的不足,并且同时兼顾与推荐目标对象相关联的多个目标的优化。

权利要求 :

1.一种用于推荐目标对象的方法,包括:

基于所获取的、预定时间间隔中的用户行为信息、目标对象信息和环境信息,生成输入数据,所述输入数据至少包括用户针对所述目标对象的点击特征、浏览特征、购买特征、目标对象特征和环境特征;

基于多个GPU的数量,将所述输入数据平均分片成多个子输入数据,以便至少用于被配置在所述多个GPU上的第一神经网络模型和第二神经网络模型的训练;

经由所述第一神经网络模型,提取所述子输入数据的特征,以预测所述用户的点击概率,所述第一神经网络模型是基于第一损失函数而优化的;

经由所述第二神经网络模型,提取所述子输入数据的特征,以预测关于所述目标对象的转化概率,所述第二神经网络模型是基于第二损失函数而优化的,所述第二神经网络模型和所述第一神经网络模型至少共享嵌入层;以及基于所述用户的点击概率、关于所述目标对象的转化概率和第三损失函数,预测关于所述目标对象的推荐概率,所述第三损失函数是基于针对所述第一损失函数、第一预定权重、所述第二损失函数和第二预定权重的加权求和运算而确定的。

2.根据权利要求1所述的方法,还包括:

在CPU处,获取来自所述多个GPU中的每一个GPU的用于训练所述第一神经网络模型和所述第二神经网络模型的梯度;

针对所述梯度进行合并,以 生成更新梯度;以及

将所述更新梯度传播至所述每一个GPU,以便所述每一个GPU所配置的所述第一神经网络模型和所述第二神经网络模型基于所述更新梯度进行训练。

3.根据权利要求1所述的方法,其中生成输入数据包括:

基于所述用户,将预定时间间隔中的用户行为信息进行聚类,以生成所述点击特征、浏览特征和购买特征,所述点击特征、浏览特征和购买特征中的每一个还包括与多个目标对象相关联的行为特征值;

基于所述目标对象,将预定时间间隔中的目标对象信息进行聚类,以生成所述目标对象特征,所述目标对象特征至少包括针对多个目标对象的购物车操作特征;

基于所述环境信息生成环境特征,所述环境特征至少包括时间特征和位置信息;

对所述点击特征、所述浏览特征和所述购买特征、所述目标对象特征和所述环境特征进行归一化处理;以及将经归一化处理的所述点击特征、浏览特征和购买特征、所述目标对象特征和环境特征进行拼接,以便生成输入特征。

4.根据权利要求1所述的方法,其中还包括:

经由被共享的嵌入层的同一embedding矩阵将所述点击特征、浏览特征和购买特征、目标对象特征和环境特征映射为向量,以便所述输入数据共享训练权值。

5.根据权利要求1所述的方法,还包括:

响应于确定所述目标对象的推荐概率大于或者等于预定阈值,在网页的第一预定位置处显示所述目标对象,所述目标对象为候选商品;

响应于确定所述目标对象的推荐概率小于所述预定阈值,在所述网页的第二预定位置处显示所述目标对象。

6.根据权利要求1所述的方法,还包括:基于所述点击概率、所述转化概率和所述目标对象的推荐概率中的至少一个,确定多个目标对象在网页显示时的排序顺序。

7.根据权利要求1所述的方法,还包括:

响应于接收到预测请求,基于多模型配置文件,获取所述第一神经网络模型和所述第二神经网络模型的模型名称、路径和版本,加载所述第一神经网络模型和所述第二神经网络模型。

8.一种计算设备,包括:

至少一个处理单元;

至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述设备执行根据权利要求1至7任一项所述的方法的步骤。

9.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被机器执行时实现根据权利要求1至7中任一项所述的方法。

说明书 :

用于推荐目标对象的方法、计算设备和计算机存储介质

技术领域

[0001] 本公开总体上涉及机器学习,并且具体地,涉及用于推荐目标对象的方法、计算设备和计算机存储介质。

背景技术

[0002] 传统的推荐目标对象方案,例如,在用于推荐商品或者内容的推荐系统中,通常基于预估点击率ctr来进行商品或者内容的推荐。然而,在ctr预测模型的实际使用中,要预测的数据与训练数据存在偏差,并且用户行为特征稀疏,使得ctr预测模型的泛化能力面临挑战、容易过拟合;另外,预估转化率ctr一定程度反映用户的点击偏好与浏览偏好之间的“行为关系”,仅基于ctr评估最优无法从实质上解决电商平台的场景商品交易最优、用户体验最优等多目标优化的问题。
[0003] 综上,传统的推荐目标对象方案难以解决因采样的用户行为特征稀疏而导致的过拟合等方面的不足,而且无法同时兼顾与推荐目标对象相关联的多个目标的优化。

发明内容

[0004] 本公开提供一种用于推荐目标对象方法、计算设备和计算机存储介质,能够避免因采样的用户行为特征稀疏而导致的过拟合的不足,并且同时兼顾与推荐目标对象相关联的多个目标的优化。
[0005] 根据本公开的第一方面,提供了一种用于推荐目标对象的方法。该方法包括:基于所获取的、预定时间间隔中的用户行为信息、目标对象信息和环境信息,生成输入数据,输入数据至少包括用户针对目标对象的点击特征、浏览特征和购买特征和目标对象特征;基于多个GPU的数量,将输入数据平均分片成多个子输入数据,以便至少用于被配置在多个GPU上的第一神经网络模型和第二神经网络模型的训练;经由第一神经网络模型,提取子输入数据的特征,以预测用户的点击概率,第一神经网络模型是基于第一损失函数而优化的;经由第二神经网络模型,提取子输入数据的特征,以预测关于目标对象的转化概率,第二神经网络模型是基于第二损失函数而优化的,第二神经网络模型和第一神经网络模型至少共享嵌入层(embedding);以及基于用户的点击概率、关于目标对象的转化概率和第三损失函数,预测关于目标对象的推荐概率,第三损失函数是基于第一损失函数、第一预定权重、第二损失函数和第二预定权重而确定的。
[0006] 根据本发明的第二方面,还提供了一种计算设备,该设备包括:至少一个处理单元;至少一个存储器,至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令,指令当由至少一个处理单元执行时,使得设备执行本公开的第一方面的方法。
[0007] 根据本公开的第三方面,还提供了一种计算机可读存储介质。该计算机可读存储介质上存储有计算机程序,计算机程序被机器执行时执行本公开的第一方面的方法。
[0008] 在一些实施例中,用于推荐目标对象的方法还包括:在CPU处,获取来自多个GPU中的每一个GPU的用于训练第一神经网络模型和第二神经网络模型的梯度;针对梯度进行合并,已生成更新梯度;以及将更新梯度传播至每一个GPU,以便每一个GPU所配置的第一神经网络模型和第二神经网络模型基于更新梯度进行训练。
[0009] 在一些实施例中,生成输入数据包括:生成输入数据包括:基于用户,将预定时间间隔中的用户行为信息进行聚类,以生成点击特征、浏览特征和购买特征,点击特征、浏览特征和购买特征中的每一个还包括与多个目标对象相关联的行为特征值;基于目标对象,将预定时间间隔中的目标对象信息进行聚类,以生成目标对象特征,目标对象特征至少包括针对多个目标对象的购物车操作特征;基于环境信息生成环境特征,环境特征至少包括时间特征和位置信息;对点击特征、浏览特征和购买特征、目标对象特征和环境特征进行归一化处理;以及将经归一化处理的点击特征、浏览特征和购买特征、目标对象特征和环境特征进行拼接,以便生成输入特征。
[0010] 在一些实施例中,用于检测目标对象的方法还包括:经由被共享的嵌入层的同一embedding矩阵将点击特征、浏览特征和购买特征、目标对象特征和环境特征映射为向量,以便输入数据共享训练权值。
[0011] 在一些实施例中,用于推荐目标对象的方法还包括:响应于确定目标对象的推荐概率大于或者等于预定阈值,在网页的第一预定位置处显示目标对象,目标对象为候选商品;响应于确定目标对象的推荐概率小于预定阈值,在网页的第二预定位置处显示目标对象。
[0012] 在一些实施例中,用于推荐目标对象的方法还包括:基于点击概率、转化概率和目标对象的推荐概率中的至少一个,确定多个目标对象在网页显示时的排序顺序。
[0013] 在一些实施例中,用于推荐目标对象的方法还包括:响应于接收到预测请求,基于多模型配置文件,获取第一神经网络模型和第二神经网络模型的模型名称、路径和版本,加载第一神经网络模型和第二神经网络模型。
[0014] 提供发明内容部分是为了以简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或主要特征,也无意限制本公开的范围。

附图说明

[0015] 图1示出了根据本公开的实施例的用于实施用于推荐目标对象的方法的系统的示意图。
[0016] 图2示出了根据本公开的实施例的用于推荐目标对象的方法的流程图。
[0017] 图3示出根据本公开实施例的用于预测目标对象的推荐概率的模型的示意图。
[0018] 图4示出了根据本公开的实施例的用于生成输入数据的方法的流程图。
[0019] 图5示出了根据本公开的实施例的用于更新梯度的方法的流程图。
[0020] 图6示出了根据本公开的实施例的用于确定目标对象的显示顺序的方法的流程图。
[0021] 图7示意性示出了适于用来实现本公开实施例的电子设备的框图。
[0022] 在各个附图中,相同或对应的标号表示相同或对应的部分。

具体实施方式

[0023] 下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
[0024] 在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。
[0025] 如前文所描述,在传统的推荐目标对象方法中,要预测的数据与训练数据存在偏差,并且用户行为特征稀疏,使得ctr预测模型的泛化能力欠佳并且容易过拟合,以及难以同时兼顾与推荐目标对象相关联的其他目标的优化。
[0026] 为了至少部分地解决上述问题以及其他潜在问题中的一个或者多个,本公开的示例实施例提出了一种用于推荐目标对象的方案。该方案包括:基于所获取的、预定时间间隔中的用户行为信息、目标对象信息和环境信息,生成输入数据,输入数据至少包括用户针对目标对象的点击特征、浏览特征和购买特征和目标对象特征;基于多个GPU的数量,将输入数据平均分片成多个子输入数据,以便至少用于被配置在多个GPU上的第一神经网络模型和第二神经网络模型的训练;经由第一神经网络模型,提取子输入数据的特征,以预测用户的点击概率,第一神经网络模型是基于第一损失函数而优化的;经由第二神经网络模型,提取子输入数据的特征,以预测关于目标对象的转化概率,第二神经网络模型是基于第二损失函数而优化的,第二神经网络模型和第一神经网络模型至少共享嵌入层(embedding);以及基于用户的点击概率、关于目标对象的转化概率和第三损失函数,预测关于目标对象的推荐概率,第三损失函数是基于第一损失函数、第一预定权重、第二损失函数和第二预定权重而确定的。
[0027] 在上述方案中,本公开通过共享嵌入层的第一神经网络模型和第二神经网络模型分别预测点击概率和转化概率,以及基于点击概率、转化概率和第三损失函数预测关于目标对象的推荐概率,本公开能够将学习不同模型参数的预测模型合并形成的完整模型来预测所推荐的目标对象。另外,通过基于第一损失函数、第一预定权重、第二损失函数和第二预定权重而确定整体模型的损失函数,本公开能够预测实现多个目标(例如点击概率和转化概率)整体最优的结果。另外,通过第一神经网络模型和第二神经网络模型共享嵌入层,能够实现多个目标的模型联合训练,减小模型的参数规模,防止模型过拟合。再者,通过将输入数据基于GPU数量分片成多个子输入数据以用于各模型的训练,可以在模型训练的过程中通过数据并行来充分利用多GPU资源,提升模型训练效率。此外,通过配置第一预定权重和第二预定权重,可以过在模型训练过程中通过定义权重来实现模型在优化过程中自动学习到带有策略偏重的模型结果。
[0028] 图1示出了根据本公开的实施例的用于实施用于推荐目标对象的方法的系统100的示意图。如图1所示,系统100包括:用户终端110、计算设备130、服务器140和网络150。用户终端110、计算设备130、服务器140可以通过网络150进行数据交互。计算设备130例如包括处理单元132、多个图像处理单元(例如第一图像处理单元134、第二图像处理单元136)。每个图像处理单元,例如第一图像处理单元134配置有第一神经网络模型146和第二神经网络模型148。第一神经网络模型146用于预测用户的点击概率;第二神经网络模型148用于预测关于目标对象的转化概率。第一神经网络模型146和第二神经网络模型148至少共享嵌入层(embedding)。
[0029] 计算单元130用于基于所获取的用户行为信息、目标对象信息和环境信息来生成输入数据,基于多个图像处理单元的数量将输入数据分片(例如平均分片)成多个子输入数据,以用于被配置在多个图像处理单元上的第一神经网络模型和第二神经网络模型的训练;然后经由第一神经网络模型预测用户的点击概率,经由与第一神经网络模型共享嵌入层的第二神经网络模型来预测关于目标对象的转化概率,以及基于点击概率、转化概率和第三损失函数,预测关于目标对象的推荐概率。
[0030] 关于处理单元132,其用于控制多个图像处理单元并行地基于所加载的子输入数据对所配置的第一神经网络模型和第二神经网络模型进行训练,以使得每个图像处理单元得到各自在训练过程中所产生的模型变量。例如,处理单元132用于基于多个图像处理单元的数量将输入数据平均分片成多个子输入数据,并将各子输入数据分配至多个图像处理单元中的每一个图像处理单元上;另外,处理单元132还用于将来自各图像处理单元的各第一神经网络模型和第二神经网络模型的梯度进行合并,然后将合并后梯度反向传播至各图像处理单元,以便更新各图像处理单元上的第一神经网络模型和第二神经网络模型的参数。处理单元132可以是中央处理器CPU,也可以是特定集成电路ASIC(Application Specific Integrated Circuit)。
[0031] 关于图像处理单元,其用于在模型训练时,训练第一神经网络模型和第二神经网络模型;以及在推荐目标对象的系统上线后基于输入数据经由经训练的第一神经网络模型和第二神经网络模型预测关于目标对象的推荐概率。多个图像处理单元分别配置有第一神经网络模型和第二神经网络模型的多个副本(tower)。例如,第一图像处理单元134配置有:第一神经网络模型146和第二神经网络模型148、第一梯度计算单元142、第一损失函数确定单元144。图像处理单元136配置有:第一神经网络模型副本156和第二神经网络模型副本
158、第二梯度计算单元152、第二损失函数确定单元154。
[0032] 处理单元132将经由分片形成的子输入数据分配至第一图像处理单元134和第二图像处理单元136上,由每一个图像处理单元上的模型基于子输入数据进行训练,以便得到在训练过程中产生的模型变量(例如各模型副本的梯度)。各图像处理单元然后将模型的梯度发送至处理单元132。以用于处理单元132将各模型副本的梯度进行合并和反向传播至各图像处理单元;然后各图像处理单元基于合并后的梯度更新第一神经网络模型和第二神经网络模型的参数。通过采用上述手段,本公开利于增大分批尺寸(Batch Size),进而减少 Batch样本的分布和整体样本的分布偏差的风险,进而使得每一步的梯度更新方向更加准确。
[0033] 在上述方案中,通过将输入数据平均分片成多个子输入数据用于训练部署在多个GPU上的第一神经网络模型和第二神经网络模型。可利用GPU的计算优势并行训练模型,以便提高训练效率。另外,通过用于预测用户点击概率的第一神经网络模型和用于预测目标对象的转化概率的第二神经网络模型至少共享嵌入层(embedding),以及基于点击概率、转化概率和第三损失函数,预测关于目标对象的推荐概率,本公开能够实现在对目标对象的推荐过程中,同时优化用户点击概率和转化概率多个任务目标,进而使得所推荐的目标对象适应不同用户的偏好,而且能够优化GMV。
[0034] 以下将结合图2描述根据本公开的实施例的用于推荐目标对象的方法200。图2示出了根据本公开的实施例的用于推荐目标对象的方法200的流程图。应当理解,方法200例如可以在图7所描述的电子设备700处执行。也可以在图1所描述的计算设备130处执行。应当理解,方法200还可以包括未示出的附加动作和/或可以省略所示出的动作,本公开的范围在此方面不受限制。
[0035] 在步骤202处,计算设备130基于所获取的、预定时间间隔中的用户行为信息、目标对象信息和环境信息,生成输入数据,输入数据至少包括用户针对目标对象的点击特征、浏览特征和购买特征和目标对象特征。
[0036] 在一些实施例中,关于生成输入数据的方式例如是,计算设备130针对所采集的原始训练数据先后经过多标签构建、特征构建、样本权重构建、使样本权重标准化、合并数据集等处理、以及形成用于样本训练的输入数据。下文将结合图3具体说明生成输入数据的方法,在此,不再赘述。
[0037] 关于预定时间间隔,其例如是最近3天、一周或者最近一个月等预先确定的时间段。
[0038] 关于输入数据,其例如包括预定时间间隔内的用户行为特征、目标对象特征和属性特征。用户行为特征例如至少包括用户针对目标对象的点击特征、浏览特征和购买特征。目标对象特征例如包括针对多个目标对象的购物车操作。在一些实施例中,目标对象特征例如还包括针对多个目标对象的浏览、点击和购买操作。环境特征例如至少包括时间特征和位置信息。位置信息例如是用户所在省、市等地区。由于用于目标对象推荐的输入数据非常稀疏并且庞大,如果直接将采样数据输入至用于预测目标对象的推荐概率的模型中,将难以有足够数据去训练参数很多的网络。因此,有必要增加嵌入层(embedding),用以降低纬度输入数据的维度。
[0039] 在步骤202处,计算设备130基于多个GPU的数量,将输入数据平均分片成多个子输入数据,以便至少用于被配置在多个GPU上的第一神经网络模型和第二神经网络模型的训练。
[0040] 在一些实施例中,计算设备130可以将不同的目标优化任务分配到不同的GPU上, 也可以将多个GPU中的每一个GPU上均部署第一神经网络模型和第二神经网络模型。在一些实施例中,计算设备130也可以将模型的运算、梯度的计算分配到GPU上来,而将变量的存储、梯度的更新交由CPU来执行。例如,计算设备130中的CPU基于GPU的数量(例如2个,分别是第一图像处理单元134、第二图像处理单元136)将输入数据平均分片成2个子输入数据,以作为训练数据集合分别向第一图像处理单元134、第二图像处理单元136加载,不同的图像处理单元所输入的子输入数据可以相同,也可以不同。例如:CPU将第一子输入数据Minibatch1加载至第一图像处理单元134,将第二子输入数据Minibatch2加载至第二图像处理单元136。
[0041] 在步骤206处,计算设备130经由第一神经网络模型,提取子输入数据的特征,以预测用户的点击概率,第一神经网络模型是基于第一损失函数而优化的。
[0042] 例如,在模型训练阶段,CPU控制多个图形处理单元并行对所加载的训练子输入数据进行训练,以使每个图形处理单元分别得到各自在训练过程中产生的修正参数。例如,第一图形处理单元134主要负责基于第一子输入数据Minibatch1和第一损失函数训练第一神经网络模型146。
[0043] 在步骤208处,计算设备130经由第二神经网络模型,提取子输入数据的特征,以预测关于目标对象的转化概率,第二神经网络模型是基于第二损失函数而优化的,第二神经网络模型和第一神经网络模型至少共享嵌入层(embedding)。
[0044] 关于第一神经网络模型和第二神经网络模型中的每一个神经网络模型例如是基于DeepFM部分模型构建。DeepFM部分模型主要包括:稀疏特征层(Sparese Feature)、稠密嵌入层(Dense Embedding)、FM部分和Deep部分和输出层。稀疏特征层用于输入输入数据。稠密嵌入层用于生成输入数据的embedding转换结果。其中FM部分用于提取低阶组合特征,Deep部分用于提取高阶组合特征。输出层用于输出预测结果。FM部分和Deep部分共享稀疏特征层(Sparese Feature)、稠密嵌入层(Dense Embedding)。以下结合公式(1)说明FM部分的输出。
[0045]     (1)
[0046] 在上述公式(1)中,yFM代表FM部分的输出。d代表特征维度(feature_size)。FM部分的输出yFM包括Addition Unit和多个内积单元。Addition Unit代表是1阶计算,指示1阶特征对于最终预测的影响。内积单元代表二阶交叉计算,用于指示2阶组合特征对于预测结果的影响。X代表每一列单独维度的特征。W代表这些维度特征的权重,`代表把X和W每一个位置对应相乘相加。V代表对应特征的隐向量。
[0047] 以下结合公式(2)说明稠密嵌入层(Dense Embedding)的处理。
[0048]     (2)
[0049] 在上述公式(2)中, 代表第i个特征 filed 的 embedding,m代表特征 filed 的数量;  代表传递至deep网络的输出。
[0050] Deep部分包括全连接计算部分,以下结合公式(3)说明Deep部分的处理。
[0051] (3)
[0052] 在上述公式(3)中,  代表层深度, 代表激活函数, 代表第 层的输出,代表代表第 层的权重, 代表第 层的偏置。
[0053] 输出层包括sigmoid函数处理。以下结合公式(4)说明sigmoid函数处理。
[0054]          (4)
[0055] 在上述公式(4)中, 代表sigmoid函数的输出,即所预测的目标对象的推荐概率。 代表FM部分的输出,例如关于用户的点击概率。 代表Deep部分的输出,例如关于目标对象的转化概率。
[0056] 关于第一神经网络模型和第二神经网络模型共享嵌入层(embedding)的方式例如是,经由被共享的嵌入层的同一embedding矩阵将点击特征、浏览特征和购买特征、目标对象特征和环境特征映射为向量,以便输入数据共享训练权值。例如可以计算设备130基于TensorFlow的DeepFM来实现共享嵌入层的同一embedding矩阵。例如,使得一个vocab与两个embedding矩阵相关联,一个对应FM中的线性部分的权重,以用于线性连接;另一个对应FM与DNN共享的隐向量,以用于非线性(二阶或更高阶交叉)连接。多个embedding矩阵例如以字典名分别存入dict。不同的特征field指定相同的字典名,以便共享嵌入层的同一embedding矩阵。
[0057] 在步骤210处,计算设备130基于用户的点击概率、关于目标对象的转化概率和第三损失函数,预测关于目标对象的推荐概率,第三损失函数是基于第一损失函数、第一预定权重、第二损失函数和第二预定权重而确定的。
[0058] 以下结合图3说明关于预测关于目标对象的推荐概率的方法。图3示出根据本公开实施例的用于预测目标对象的推荐概率的模型300的示意图。如图3所示,模型300包括第一神经网络模型310、第二神经网络模型320、共享的嵌入层330、输入层332。另外,第一神经网络模型310的输出为所预测的用户的点击概率312。第二神经网络模型320的输出为所预测的目标对象的转化概率322。模型300的输出为所预测的目标对象的推荐概率334。目标对象的推荐概率334是基于用户的点击概率312、关于目标对象的转化概率324和第三损失函数而预测的。关于第三损失函数,下文结合公式(5)说明第三损失函数的确定方式。
[0059] Loss3=W1* Loss1+ W2* Loss2   (5)
[0060] 在上述公式(5)中,Loss1代表用于优化点击概率目标的(即优化第一神经网络模型)的第一损失函数,Loss2代表用于转化概率目标(即优化第二神经网络模型148)的第二损失函数,Loss3代表用于优化多目标的第三损失函数。W1代表与第一神经网络模型相关联的第一预定权重、W2代表与第二神经网络模型相关联的第二预定权重。由于不同的模型最终预测的目标不同。而共享参数一定程度上限制了不同目标的特异性,容易使得影响整体训练的效果,由此,计算设备130可以给不同的目标分配不同的权重。例如,第一预定权重与第二权重不同。通过采用上述手段,本公开可以实现权重自定义的多目标融合优化。在一些实施例中,计算设备130还部署有第三神经网络模型。整体预测模型由共享嵌入层的第一神经网络模型、第二神经网络模型和第三神经网络模型组成。整体预测的损失函数是经由针对各个第一神经网络模型、第二神经网络模型和第三神经网络模型各自的损失函数的加权求和而生成的。
[0061] 在一些实施例中,例如在电商搜索排序任务中,同时存在着ctr、cvr、gmv等多个优化目标。以下结合公式(6)说明gmv的计算方式。
[0062] gmv = impression*ctr*cvr*price  (6)
[0063] 在上述公式(6)中,ctr代表从浏览到点击的点击率。cvr代表从点击到购买的购买概率,price代表目标对象价格。Impression代表目标对象的曝光率。gmv代表从转化概率。以下结合公式(7)来说明带有价格样本权重的第三损失函数Loss3的函数。
[0064]    (7)
[0065] 在上述公式(7)中, 代表点第三损失函数, 代表用于预测点击概率ctr的第一损失函数, 代表样本价格权重。
代表ctr*cvr目标优化的损失函数。
[0066] 生成第三损失函数的方式除了采用上述公式(5)和(6)所示函数之外,也可以是采用连乘或者指数相关的函数。而且,研究表明,当第一神经网络模型和第二神经网络模型任务的相关性越高,整体模型的第三损失函数loss会下降,整体模型的准确度更高。
[0067] 在上述方案中,通过共享嵌入层的第一神经网络模型和第二神经网络模型预测分别预测点击概率和转化概率,以及基于点击概率、转化概率和第三损失函数预测关于目标对象的推荐概率,本公开能够将学习了不同模型参数的预测模型合并形成的完整模型来预测所推荐的目标对象,以及基于第一损失函数、第一预定权重、第二损失函数和第二预定权重而确定整体模型的损失函数,本公开能够预测实现多个目标(例如点击概率和转化概率)整体最优的结果。另外,通过第一神经网络模型和第二神经网络模型共享嵌入层,以便输入特征共享训练权值。利于避免因输入样本数据稀疏而导致的过拟合等问题。综上,本公开能够避免因采样的用户行为特征稀疏而导致的过拟合的不足,并且同时兼顾与推荐目标对象相关联的多个目标的优化。
[0068] 在一些实施例中,方法200还包括:计算设备130确认是否接收到预测请求,如果确认接收到预测请求,基于多模型配置文件,获取第一神经网络模型和第二神经网络模型的模型名称、路径和版本,加载第一神经网络模型和第二神经网络模型。由此,可以方便地在计算设备130所配置的多个第一神经网络模型和第二神经网络模型中记载合适的模型。例如,方便地实现第一神经网络模型和第二神经网络模型版本的升级。
[0069] 在一些实施例中,方法200还包括:基于点击概率、转化概率和目标对象的推荐概率中的至少一个,确定与用户相关联的多个目标对象在网页显示时的排序顺序。下文将结合图5说明用于确定目标对象显示位置的方法500,在此,不再赘述。
[0070] 以下将结合图4描述根据本公开的实施例的用于生成输入数据的方法400。图4示出了根据本公开的实施例的用于生成输入数据的方法400的流程图。应当理解,方法400例如可以在图7所描述的电子设备700处执行。也可以在图1所描述的计算设备130处执行。应当理解,方法400还可以包括未示出的附加动作和/或可以省略所示出的动作,本公开的范围在此方面不受限制。
[0071] 在步骤402处,计算设备130基于用户,将预定时间间隔中的用户行为信息进行聚类,以生成点击特征、浏览特征和购买特征,点击特征、浏览特征和购买特征中的每一个还包括与多个目标对象相关联的行为特征值。
[0072] 在一些实施例中,输入特征中的每个特征“field”对应一维特征值。在一些实施例中,输入特征中的每个特征 “field”对应多个特征值,例如,对应两维度的特征值。例如,用户行为特征至少包括最近一周内用户点击特征、最近一周内用户浏览特征和最近一周内用户购买特征。每一个特征“field”进一步关联有与多个目标对象相关联的行为特征值。例如,最近一周内用户点击特征关联有:“球鞋:0.2”、“书:0.5”和“水果:0.2”等等。通过使得输入特征中的每个特征“field”还包括与多个目标对象相关联的行为特征值,利于输入特征的“模块化”、“维护与扩展”,但是,不同特征“field”所对应多个目标对象例如都来源于相同的“目标对象集(例如候选商品)”。因此,如果每个不同的行为特征field都使用独立的embedding矩阵来映射“目标对象”向量,将使得整个模型需要优化的变量庞大,因此有必要通过同一个embedding矩阵,为多个特征field提供映射向量来权值共享,以便节约计算资源,减轻“过拟合”风险。另外,点击特征、浏览特征和购买特征、目标对象特征和环境特征稀疏程度是不一样的,利用同一embedding矩阵,为多个field提供映射向量,利于使每个embedding向量得到更多的训练机会。因此,通过采用上述手段利于每个embedding向量得到更多的训练机会。
[0073] 在步骤404处,计算设备130基于目标对象,将预定时间间隔中的目标对象信息进行聚类,以生成目标对象特征,目标对象特征至少包括针对多个目标对象的购物车操作特征。
[0074] 在步骤406处,计算设备130基于环境信息生成环境特征,环境特征至少包括时间特征和位置信息。
[0075] 在步骤408处,对点击特征、浏览特征和购买特征、目标对象特征和环境特征进行归一化处理。通过对输入数据进行归一化,使得最优解的寻优过程明显会变得平缓,就更容易正确地收敛到最优解。以下将结合公式(8)说明归一化处理的方式。
[0076]      (8)
[0077] 在上述公式(8)中,x’代表经归一化处理后的输入特征,例如,经归一化处理后的点击特征、浏览特征和购买特征、目标对象特征和环境特征。x代表未经归一化处理的输入特征。min(x) 代表未经归一化处理的输入特征的最小值。max(x) 代表未经归一化处理的输入特征的最大值。
[0078] 在步骤410处,计算设备130将经归一化处理的点击特征、浏览特征和购买特征、目标对象特征和环境特征进行拼接,以便生成输入特征。
[0079] 上述所生成的输入特征被输入共享的嵌入层的同一embedding矩阵而被映射为向量,以便输入特征共享训练权值。每个点击特征、浏览特征和购买特征、目标对象特征和环境特征的如果分别使用独立的embedding矩阵来映射向量,整个模型需要优化的变量非常多,不仅占用更多计算资源,也容易导致过拟合。通过将输入经由同一embedding矩阵映射,利于输入特征共享训练权值,避免过拟合。
[0080] 以下将结合图5描述根据本公开的实施例的用于更新梯度的方法500。图5示出了根据本公开的实施例的用于更新梯度的方法500的流程图。应当理解,方法500例如可以在图7所描述的电子设备700处执行。也可以在图1所描述的计算设备130处执行。应当理解,方法500还可以包括未示出的附加动作和/或可以省略所示出的动作,本公开的范围在此方面不受限制。
[0081] 在502处,在CPU处,获取来自多个GPU中的每一个GPU的用于训练第一神经网络模型和第二神经网络模型的梯度。
[0082] 在504处,针对梯度进行合并,已生成更新梯度。
[0083] 在506处,将更新梯度传播至每一个GPU,以便每一个GPU所配置的第一神经网络模型和第二神经网络模型基于更新梯度进行训练。
[0084] 在一些实施例中,方法200还包括确定目标对象的显示顺序的方法600。图6示出了根据本公开的实施例的用于确定目标对象的显示顺序的方法600的流程图。应当理解,方法600例如可以在图7所描述的电子设备700处执行。也可以在图1所描述的计算设备130处执行。应当理解,方法600还可以包括未示出的附加动作和/或可以省略所示出的动作,本公开的范围在此方面不受限制。
[0085] 在602处,计算设备130确定目标对象的推荐概率是否大于或者等于预定阈值。
[0086] 在604处,如果计算设备130确定目标对象的推荐概率大于或者等于预定阈值,在网页的第一预定位置处显示目标对象,目标对象为候选商品。
[0087] 在606处,如果计算设备130确定目标对象的推荐概率小于预定阈值,在网页的第二预定位置处显示目标对象。
[0088] 在上述方案中,通过基于目标对象的推荐概率与预定阈值的比较来确定目标对象的展示顺序,利于用户偏好的目标对象优先被展示,进而使得目标对象的展示适应不同的用户偏好。
[0089] 图7示意性示出了适于用来实现本公开实施例的电子设备(或者计算设备)700的框图。设备700可以是用于实现执行图2、图4至图6所示的方法200、400至600的设备。如图7所示,设备700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的计算机程序指令或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序指令,来执行各种适当的动作和处理。在RAM 703中,还可存储设备700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
[0090] 设备700中的多个部件连接至I/O接口705,包括:输入单元706、输出单元707、存储单元708,处理单元701执行上文所描述的各个方法和处理,例如执行方法200、400至600例如,在一些实施例中,方法200、400至600可被实现为计算机软件程序,其被存储于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到RAM 703并由CPU 701执行时,可以执行上文描述的方法200、400至600的一个或多个操作。备选地,在其他实施例中,CPU 701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法
200、400至600的一个或多个动作。
[0091] 需要进一步说明的是,本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
[0092] 计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
[0093] 这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
[0094] 用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,该编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
[0095] 这里参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或步骤图描述了本公开的各个方面。应当理解,流程图和/或步骤图的每个方步骤以及流程图和/或步骤图中各方步骤的组合,都可以由计算机可读程序指令实现。
[0096] 这些计算机可读程序指令可以提供给语音交互装置中的处理器、通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或步骤图中的一个或多个方步骤中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或步骤图中的一个或多个方步骤中规定的功能/动作的各个方面的指令。
[0097] 也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或步骤图中的一个或多个方步骤中规定的功能/动作。
[0098] 附图中的流程图和步骤图显示了根据本公开的多个实施例的设备、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或步骤图中的每个方步骤可以代表一个模块、程序段或指令的一部分,该模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方步骤中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方步骤实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,步骤图和/或流程图中的每个方步骤、以及步骤图和/或流程图中的方步骤的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0099] 以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
[0100] 以上仅为本公开的可选实施例,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本公开的保护范围之内。