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

计算配送时间的方法和装置,电子设备和存储介质

文献发布时间:2023-06-19 09:44:49


计算配送时间的方法和装置,电子设备和存储介质

技术领域

本公开涉及计算机技术领域,具体地,涉及一种计算配送时间的方法和装置,电子设备和存储介质。

背景技术

随着生活水平的提升,越来越多的用户选择外卖点餐。当外卖下单之后,外卖平台会向用户呈现该订单的预计送达时间。由于外卖餐的品质,以及用户订餐体验与外卖的送达时间直接相关,而预计送达时间是用户决定何时下单的一项重要参考因素,因此,外卖平台对提升送达时间的估计准确性非常重视。

相关技术中,通过一些与订单配送相关的样本信息来训练配送时长预测模型,这些样本信息包括一些与订单相关的稠密特征的信息,每一种稠密特征本身对应的属性值能够一定程度上反应与订单的实际情况,比如,下单时间、价格、距离、负载等等。

发明内容

本公开的目的是提供一种计算配送时间的方法和装置,电子设备和存储介质,以解决相关技术中进行配送时间预测不够准确的问题。

为了实现上述目的,第一方面,本公开提供一种计算配送时间的方法,所述方法包括:获取预指定的与订单配送相关的特征数据,所述特征数据包括稀疏特征数据和稠密特征数据,其中,所述稀疏特征数据是指与目标订单相关的不可量化信息,所述稠密特征数据包括配送环境指标和与所述目标订单相关的可量化信息;根据所述稀疏特征数据和所述稠密特征数据生成第一特征矩阵;根据历史的所述稠密特征数据生成第二特征矩阵;将所述第一特征矩阵和所述第二特征矩阵输入配送时长预测模型,得到对所述目标订单的送达时间的预测结果。

可选的,所述配送时长预测模型包括FM算法层,MLP算法层,时序输出层,特征融合层;所述FM算法层用于对所述第一特征矩阵进行交叉组合特征扩展;所述MLP算法层用于对所述第一特征矩阵进行矩阵变换处理;所述时序输出层用于对所述第二特征矩阵进行矩阵变换处理;所述特征融合层用于,将所述FM算法层输出的矩阵、所述MLP算法层输出的矩阵和所述时序输出层输出的矩阵中的元素进行融合,得到融合矩阵;所述预测结果是根据所述融合矩阵计算得到的。

可选的,所述配送时长预测模型还包括常规预测层以及补时层;所述预测结果是基于如下步骤计算得到的:根据所述融合矩阵与所述常规预测层的运算矩阵计算得到常规时长;根据对应所述目标订单的特征数据确定所述补时层的运算矩阵;根据所述融合矩阵与所述补时层的运算矩阵计算得到目标补时时长;基于所述常规时长与所述目标补时时长生成所述预测结果。

可选的,所述根据对应所述目标订单的特征数据确定的所述补时层的运算矩阵,包括:根据所述特征数据确定对应所述补时层的属性值;在多个预设的数据区间中确定所述属性值所处的数据区间;根据所述属性值与所处数据区间两个端值之间的差值,以及在补时嵌入向量库中查找到的分别对应所述两个端值的补时嵌入向量,计算所述补时层的运算矩阵,其中,所述补时嵌入向量库包括对应所述预设的数据区间端值的补时嵌入向量。

可选的,所述补时层包括以下一种或多种补时模块:负载补时模块、距离补时模块、价格补时模块、出餐难度补时模块;所述根据对应所述目标订单的特征数据确定所述补时层的运算矩阵,根据所述融合矩阵与所述补时层的运算矩阵计算得到目标补时时长,包括:根据对应所述目标订单的特征数据确定每一补时模块的运算矩阵;根据所述融合矩阵与每一所述补时模块的运算矩阵,分别计算得到相应的模块补时时长;基于计算得到模块补时时长生成所述目标补时时长。

可选的,所述配送时长预测模型是通过以下方式训练得到的:针对所述补时层设置第一损失函数,针对所述常规预测层设置第二损失函数,所述第一损失函数与所述第二损失函数的函数类型不同;将与样本数据中与订单配送相关的特征数据输入待训练的配送时长预测模型,得到对送达时间的待检预测结果;重复执行以下调整元素值的操作步骤:根据样本数据中的实际送达时刻、所述待检预测结果,以及所述第一损失函数调整所述补时层的运算矩阵中的元素值;根据样本数据中的实际送达时刻、所述待检预测结果,以及所述第二损失函数调整所述常规预测层的运算矩阵中的元素值;直至元素值调整操作前所述第一损失函数的输出量,与所述元素值调整操作后所述第一损失函数的输出量之间的差值小于第一预设阈值,且,所述元素值调整操作前所述第二损失函数的输出量与所述元素值调整操作后所述第二损失函数的输出量之间的差值小于第二预设阈值,确定所述配送时长预测模型训练完成。

可选的,所述稀疏特征数据包括对应每一种稀疏特征的稀疏索引值和稀疏属性值,其中,所述稀疏属性值为对应所述稀疏特征的预设值;所述稠密特征数据包括对应每一种稠密特征的稠密索引值和稠密属性值,其中,所述稠密属性值为对应所述稠密特征的量化数值;所述根据所述稀疏特征数据和所述稠密特征数据生成第一特征矩阵,包括:对每一种稀疏特征执行如下操作:根据对应所述稀疏特征的所述稀疏索引值在预设嵌入向量库中查询得到稀疏特征嵌入向量,并根据所述稀疏属性值以及所述稀疏特征嵌入向量,生成对应所述稀疏特征的稀疏特征向量;对每一种稠密特征执行如下操作:根据对应所述稠密特征的所述稠密索引值在预设嵌入向量库中查询得到稠密特征嵌入向量,并根据所述稠密属性值以及所述稠密特征嵌入向量,生成对应所述稠密特征的稠密特征向量;基于所述稀疏索引值和所述稠密索引值,以及生成的所述稀疏特征向量和所述稠密特征向量,生成所述第一特征矩阵。

可选的,所述FM算法层用于对所述第一特征矩阵进行交叉组合特征扩展,包括:将任意两个所述特征的组合作为新的特征,并针对所述新的特征执行如下操作:将所述两个特征的对应的特征向量的点积作为所述新的特征的属性值;基于所述两个特征的对应的特征向量,以及所述属性值生成对应所述新的特征的特征向量;所述FM算法层输出的矩阵包括对应所述新的特征的特征向量。

第二方面,本公开提供一种计算配送时间的装置,所述装置包括:获取模块,用于获取预指定的与订单配送相关的特征数据,所述特征数据包括稀疏特征数据和稠密特征数据,其中,所述稀疏特征数据是指与目标订单相关的不可量化信息,所述稠密特征数据包括配送环境指标和与所述目标订单相关的可量化信息;第一数据处理模块,用于根据所述稀疏特征数据和所述稠密特征数据生成第一特征矩阵;第二数据处理模块,用于根据历史的所述稠密特征数据生成第二特征矩阵;第三数据处理模块,用于将所述第一特征矩阵和所述第二特征矩阵输入配送时长预测模型,得到对所述目标订单的送达时间的预测结果。

可选的,所述配送时长预测模型包括FM算法层,MLP算法层,时序输出层,特征融合层;所述FM算法层用于对所述第一特征矩阵进行交叉组合特征扩展;所述MLP算法层用于对所述第一特征矩阵进行矩阵变换处理;所述时序输出层用于对所述第二特征矩阵进行矩阵变换处理;所述特征融合层用于,将所述FM算法层输出的矩阵、所述MLP算法层输出的矩阵和所述时序输出层输出的矩阵中的元素进行融合,得到融合矩阵;所述预测结果是根据所述融合矩阵计算得到的。

可选的,所述配送时长预测模型还包括常规预测层以及补时层;所述预测结果是基于如下步骤计算得到的:根据所述融合矩阵与所述常规预测层的运算矩阵计算得到常规时长;根据对应所述目标订单的特征数据确定所述补时层的运算矩阵;根据所述融合矩阵与所述补时层的运算矩阵计算得到目标补时时长;基于所述常规时长与所述目标补时时长生成所述预测结果。

可选的,所述根据对应所述目标订单的特征数据确定的所述补时层的运算矩阵,包括:根据所述特征数据确定对应所述补时层的属性值;在多个预设的数据区间中确定所述属性值所处的数据区间;根据所述属性值与所处数据区间两个端值之间的差值,以及在补时嵌入向量库中查找到的分别对应所述两个端值的补时嵌入向量,计算所述补时层的运算矩阵,其中,所述补时嵌入向量库包括对应所述预设的数据区间端值的补时嵌入向量。

可选的,所述补时层包括以下一种或多种补时模块:负载补时模块、距离补时模块、价格补时模块、出餐难度补时模块;所述根据对应所述目标订单的特征数据确定所述补时层的运算矩阵,根据所述融合矩阵与所述补时层的运算矩阵计算得到目标补时时长,包括:根据对应所述目标订单的特征数据确定每一补时模块的运算矩阵;根据所述融合矩阵与每一所述补时模块的运算矩阵,分别计算得到相应的模块补时时长;基于计算得到模块补时时长生成所述目标补时时长。

可选的,所述配送时长预测模型是通过以下方式训练得到的:针对所述补时层设置第一损失函数,针对所述常规预测层设置第二损失函数,所述第一损失函数与所述第二损失函数的函数类型不同;将与样本数据中与订单配送相关的特征数据输入待训练的配送时长预测模型,得到对送达时间的待检预测结果;重复执行以下调整元素值的操作步骤:根据样本数据中的实际送达时刻、所述待检预测结果,以及所述第一损失函数调整所述补时层的运算矩阵中的元素值;根据样本数据中的实际送达时刻、所述待检预测结果,以及所述第二损失函数调整所述常规预测层的运算矩阵中的元素值;直至元素值调整操作前所述第一损失函数的输出量,与所述元素值调整操作后所述第一损失函数的输出量之间的差值小于第一预设阈值,且,所述元素值调整操作前所述第二损失函数的输出量与所述元素值调整操作后所述第二损失函数的输出量之间的差值小于第二预设阈值,确定所述配送时长预测模型训练完成。

可选的,所述稀疏特征数据包括对应每一种稀疏特征的稀疏索引值和稀疏属性值,其中,所述稀疏属性值为对应所述稀疏特征的预设值;所述稠密特征数据包括对应每一种稠密特征的稠密索引值和稠密属性值,其中,所述稠密属性值为对应所述稠密特征的量化数值;第一数据处理模块,用于:对每一种稀疏特征执行如下操作:根据对应所述稀疏特征的所述稀疏索引值在预设嵌入向量库中查询得到稀疏特征嵌入向量,并根据所述稀疏属性值以及所述稀疏特征嵌入向量,生成对应所述稀疏特征的稀疏特征向量;对每一种稠密特征执行如下操作:根据对应所述稠密特征的所述稠密索引值在预设嵌入向量库中查询得到稠密特征嵌入向量,并根据所述稠密属性值以及所述稠密特征嵌入向量,生成对应所述稠密特征的稠密特征向量;基于所述稀疏索引值和所述稠密索引值,以及生成的所述稀疏特征向量和所述稠密特征向量,生成所述第一特征矩阵。

可选的,所述FM算法层用于对所述第一特征矩阵进行交叉组合特征扩展,包括:将任意两个所述特征的组合作为新的特征,并针对所述新的特征执行如下操作:将所述两个特征的对应的特征向量的点积作为所述新的特征的属性值;基于所述两个特征的对应的特征向量,以及所述属性值生成对应所述新的特征的特征向量;所述FM算法层输出的矩阵包括对应所述新的特征的特征向量。

第三方面,本公开提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现任一项所述计算配送时间的方法的步骤。

第四方面,本公开提供一种电子设备,包括:存储器,其上存储有计算机程序;处理器,用于执行所述存储器中的所述计算机程序,以实现任一项所述计算配送时间的方法的步骤。

上述方案,至少能够达到以下技术效果:

通过对与订单配送相关的包括稀疏特征数据和稠密特征数据的特征数根据所述稀疏特征数据和所述稠密特征数据生成第一特征矩阵,根据历史的所述稠密特征数据生成第二特征矩阵,再将处理得到的特征矩阵带入配送时长预测模型,得到对目标订单的送达时间的预测结果。在本方案中,除了能够输入对包括ID类的稀疏特征,还能够输入具有时序性的历史稠密特征进行预测,提升了订单配送时长预测的准确度和全局性。

本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:

图1是相关技术中的一种配送时长预测模型的结构示意图。

图2是本公开一示例性实施例示出的一种计算配送时间的方法流程图。

图3是本公开一示例性实施例示出的一种配送时长预测模型的结构示意图。

图4是本公开一示例性实施例示出的另一种配送时长预测模型的结构示意图。

图5是本公开一示例性实施例示出的一种计算配送时间的方法流程图。

图6是本公开一示例性实施例示出的一种计算配送时间的装置框图。

图7是根据一示例性实施例示出的一种电子设备的框图。

图8是根据一示例性实施例示出的另一种电子设备的框图。

具体实施方式

以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。

如图1所示是相关技术中的一种配送时长预测模型的结构示意图。首先,样本信息输入模型,这些样本信息包括订单的稠密特征信息,比如,下单时间、价格、距离、负载等等。样本信息经分别经由两路模型计算,得到的结果加权得到初步预测结果。

在第一路计算中(如图虚线框所示),上述样本信息输入预先训练的xgb(Xgboost)算法模型得到第一输出量Output(xgb),该xgb算法模型是根据历史订单数据中的稠密特征信息和订单实际到达时间训练得到的。

在第二路计算中(如图点虚线框所示),首先需要基于预设模式选定规则确定使用何种模型执行计算。其中,多个预设的模型可以用pmml格式存储。首先基于订单对应的商家画像判断订单是否为出餐慢的订单,如果确定属于出餐慢的订单类别,例如,出餐准备时间大于30分钟属于出餐慢的订单类别,则输出用于指示选择出餐慢类别模型的指令(poislowpmml)。如果未属于出餐慢的订单类别,则进一步基于订单对应的用户画像判断订单是否属于难交付的类别,比如,送货地址所处小区交通是否便捷等等,如果确定属于难交付的订单类别,则输出用于指示选择难交付类别模型的指令(sugslowpmml)。如果未属于难交付的订单类别,则输出用于指示选择普通模型的指令(normalpmml)。相应的,根据上述规则输出的指令选取模型,并基于样本信息和选中的模型得到第二输出量Output(gbdt)。

进一步的,对第一输出量(xgb)和第二输出量(bgdt)做加权平均处理,得到初步预测结果。如图中公式所示,加权可以是两个输出量各自被分配0.5的权重。

进而,在初步预测结果上增加补时,得到最终的预计送达时间。相关技术中,补时主要有四个方面,分别是:价格补时、距离补时、负载补时、出餐补时。

上述现有技术的模型架构中,涉及如下几个问题:

首先,在这一模型架构下处理的都是订单相关的稠密特征。而针对ID类的特征(用户ID,品类ID,兴趣点POI ID,店铺ID),以及时间段类特征(星期、季度)或天气类特征等等订单相关的稀疏特征,往往还停留在人为规则设定的层面,后期人工优化的工作量也较大。

部分的模型运用到的规则由人工制定,那么在调节的精细程度较低,难以做到全国业务范围内的平衡。

对应这些订单中对应这些稀疏特征的数值往往只是一串序列号,例如ID数据,若需要添加稀疏特征作为扩充的维度代入上述现有技术的模型中,这种系数特征值不能被划归到有效数据范围,对模型的置信度造成影响。

此外,在现有技术的模型架构中,补时部分的模型与初步预测结果涉及到的模型是分离的。这也就意味着,难以对两个模型进行共同优化,后期模型优化涉及数据处理量较大。

图2是本公开一示例性实施例示出的一种计算配送时间的方法流程图,所述方法可以包括以下步骤中的一个或多个:

S21,获取预指定的与订单配送相关的特征数据,所述特征数据包括稀疏特征数据和稠密特征数据,其中,所述稀疏特征数据是指与目标订单相关的不可量化信息,所述稠密特征数据包括配送环境指标和与所述目标订单相关的可量化信息。

获取的特征数据可为数据矩阵的形式。其中,该特征数据可以使用libsvm的格式,在该格式中数据为“索引值:属性值(index:value)”形式的数据对。每一个数据对对应一种特征。

所述稀疏特征数据包括对应每一种稀疏特征的稀疏索引值和稀疏属性值,其中,所述稀疏属性值为对应所述稀疏特征的预设值;所述稠密特征数据包括对应每一种稠密特征的稠密索引值和稠密属性值,其中,所述稠密属性值为对应所述稠密特征的量化数值。

举例来说,针对稀疏特征数据,例如ID类数据:区域ID、城市ID、品类ID等,以及,订单配送时间段类特征(星期、季度)或天气类特征等。

上述数据对中的索引值index表示每一特征在数据矩阵中的顺序,随顺序递增index的值可以顺次加1。

值得说明的是,这些稀疏特征数据中的ID序列,表示天气序列或时间段的序列为订单相关的实际值,实际上并无可量化的物理意义,属性值value可以被赋值为预设值1。

示例的,数据矩阵中的稀疏特征数据对应的数据对表示如下:

【1:1,3:1,5:1】

其中,“1:1”表示序列位置index为1处,稀疏特征的value为1;“3:1”表示序列位置index为3处,稀疏特征的value为1;“5:1”表示序列位置index为5处,稀疏特征的value为1。

稠密特征数据可以包括:下单时间、价格、距离、实时负载(配送团队负载)等等,还可以包括这些稠密特征对应的历史统计值。针对稠密特征数据,index表示每一特征在矩阵中的顺序,随顺序递增index的值可以顺次加1,而value为该稠密特征本身对属性值。

数据矩阵中部分的稠密类特征数据对表示如下:

【10:0.7,11:0.7】

其中,“10:0.7”表示序列位置index为10处,稠密特征的value为0.7;“11:0.7”表示序列位置index为11处,稀疏特征的value为0.7。

S22,根据所述稀疏特征数据和所述稠密特征数据生成第一特征矩阵。

具体的,对每一种稀疏特征执行如下操作:根据对应所述稀疏特征的所述稀疏索引值在预设嵌入向量库中查询得到稀疏特征嵌入向量,并根据所述稀疏属性值以及所述稀疏特征嵌入向量,生成对应所述稀疏特征的稀疏特征向量。

类似的,对每一种稠密特征执行如下操作:根据对应所述稠密特征的所述稠密索引值在预设嵌入向量库中查询得到稠密特征嵌入向量,并根据所述稠密属性值以及所述稠密特征嵌入向量,生成对应所述稠密特征的稠密特征向量。

值得说明的是,嵌入向量库(dense embedding)包括多个不同的index值与embedding向量的对应关系。表1示出了一种embedding向量库包括的对应关系:

表1

具体的,根据每一特征对应的index值,在embedding向量库里查找该index值对应的embedding向量。再将查找到的embedding向量与对应该特征的value值相乘,得到对应该特征的索引向量。

比如,第5特征为稀疏特征,对应的数据对【5:1】中,稀疏索引index值为5,稀疏属性value值为1,通过稀疏索引index值在上述embedding向量库中查找得到的稀疏特征嵌入embedding向量为[0.1,0.4,0.7]。进一步的,将稀疏属性value值1与得到的稀疏特征嵌入embedding向量相乘,得到第5特征对应的稀疏特征向量V5=[0.1,0.4,0.7]。

再比如,第6特征为订单价格,其实际值可量化,订单价格为稠密特征。假如订单价格为20元,那么第6特征的数据对(index:value)可以是【6:20】,稠密索引index值为5,稠密属性value值为20。通过稠密索引index值“6”在上述embedding向量库中查找得到的稠密特征嵌入embedding向量为[0.1,0.8,0.8]。进一步的,将稠密属性value值20与得到的稠密特征嵌入embedding向量相乘,得到第6特征对应的稠密特征向量V6=[2,16,16]。

进一步的,基于所述稀疏索引值和所述稠密索引值,以及生成的所述稀疏特征向量和所述稠密特征向量,生成所述第一特征矩阵。

生成的第一特征矩阵可以是一个feat_size*embed_size的矩阵,其中feat_size表示特征个数,embed_size表示每一特征对应的稀疏/稠密特征向量的向量长度。多个稀疏/稠密特征向量可以按照上述index索引值排列。

假设得到的多个稀疏/稠密特征向量为V1、V2、V3…Vn,生成的第一特征矩阵可以是[V1;V2;V3;…;Vn]。

S23,根据历史的所述稠密特征数据生成第二特征矩阵。

稠密特征数据可以包括骑手数、单量、负载等。例如:10分钟前骑手数,10分钟前单量,10分钟前负载,20分钟前骑手数,20分钟前单量,20分钟前负载,30分钟前骑手数,30分钟前单量,30分钟前负载。

历史的稠密特征数据带有时间戳,可以表示为[时间点(timestep),特征量(size)]的向量,其中,size部分为每个时间点的特征。这些稠密特征数据可以经由LSTMUnit层处理,生成的第二特征矩阵可以是:

[10分钟前骑手数;10分钟前单量;10分钟前负载;20分钟前骑手数;20分钟前单量;20分钟前负载;30分钟前骑手数;30分钟前单量;30分钟前负载]

S24,将所述第一特征矩阵和所述第二特征矩阵输入配送时长预测模型,得到对所述目标订单的送达时间的预测结果。

图3所示,提供了一种配送时长预测模型的架构示意图。所述模型可以包括:特征扩展单元和时序处理单元,以及FM算法层、MLP算法层,时序输出层,特征融合层。

其中,特征扩展单元可以执行上述S22的步骤,生成所述第一特征矩阵。时序处理单元可以执行上述S23的步骤,生成所述第二特征矩阵。

进一步的,将所述第一特征矩阵输入所述FM算法层和所述MLP算法层。将所述第二特征矩阵输入所述时序输出层。如下,具体阐述每一算法层的功能。

所述FM算法层用于对所述第一特征矩阵进行交叉组合特征扩展,包括:将任意两个所述特征的组合作为新的特征,并针对所述新的特征执行如下操作:将所述两个特征的对应的特征向量的点积作为所述新的特征的属性值;基于所述两个特征的对应的特征向量,以及所述属性值生成对应所述新的特征的特征向量;所述FM算法层输出的矩阵包括对应所述新的特征的特征向量。

具体的,FM算法层对所述feat_size*embed_size的第一特征矩阵做低矢分解。以任意两个稀疏/稠密特征向量Vi和Vj为例,这两个特征组合后得到的新的特征的属性值value为向量Vi和Vj的点积。

所述MLP算法层用于对所述第一特征矩阵进行矩阵变换处理。在一种可选的实施方式中,MLP算法层对所述feat_size*embed_size的第一特征矩阵向量摊平,变成一维向量。将得到的一维向量与预设的变换矩阵相乘,得到MLP算法层的输出向量。值得说明的是,上述矩阵变换可以对矩阵中的元素进行矩阵重排布,也可以调整每一元素的权重,以便后续的计算处理。

所述时序输出层用于对所述第二特征矩阵进行矩阵变换处理。在具体实施时,上述第二特征矩阵可以被LSTM Unit处理至一维向量的形式,并被表示为:[lstm_size]=[10分钟前骑手数,10分钟前单量,10分钟前负载,20分钟前骑手数,20分钟前单量,20分钟前负载,30分钟前骑手数,30分钟前单量,30分钟前负载]。上述LSTM Unit会以周期输出[lstm_size]向量,在计算时只需获取距离当前时刻最近的LSTM unit输出的[lstm_size]向量,也即,最后一个时间点timestep输出的[lstm_size]向量。

进一步的,将得到的[lstm_size]向量与预设的变换矩阵相乘,得到时序输出层输出的矩阵。乘以预设的变换矩阵主要是为了给矩阵中的元素予不同的权重,和/或进行矩阵元素重排布,进而便于后续特征融合。

所述特征融合层用于,将所述FM算法层输出的矩阵、所述MLP算法层输出的矩阵和所述时序输出层输出的矩阵中的元素进行融合,得到融合矩阵;所述预测结果是根据所述融合矩阵计算得到的。

比如说,FM算法层的输出矩阵为[0.1,0.5],MLP算法层的输出矩阵为[0.5,1.2,3.4],时序输出层的输出时序输出层[0.1,1.5]。若上述输出矩阵均为一维的向量,可以通过concat函数连接两个或多个向量,以进行矩阵融合。合成的融合矩阵(concat函数输出向量)为[0.1,0.5,0.5,1.2,3.4,0.1,1.5]。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

上述方案,至少能够达到以下技术效果:

通过对与订单配送相关的包括稀疏特征数据和稠密特征数据的特征数根据所述稀疏特征数据和所述稠密特征数据生成第一特征矩阵,根据历史的所述稠密特征数据生成第二特征矩阵,再将处理得到的特征矩阵带入配送时长预测模型,得到对目标订单的送达时间的预测结果。在本方案中,除了能够输入对包括ID类的稀疏特征,还能够输入具有时序性的历史稠密特征进行预测,提升了订单配送时长预测的准确度和全局性。

在具体实施时,还可以根据实际业务场景选择性的对上述一种或者多种信息处理单元或者算法层进行组合,得到最终的模型。比如说,若待处理的特征数据本身具有时序属性,则可以在模型构建上省略上述时序处理单元。再比如说,如果进行一次交叉组合特征扩展不能较好的满足业务场景需求,可以通过构建多个FM算法层来对提升特征扩展的多样性。上述实施例仅为本公开提出的一种优选的配送时长预测模型的架构示意,在本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图4是本公开一示例性实施例示出的另一种配送时长预测模型的架构示意图。在图3所示模型的基础上,如图4所示,所述配送时长预测模型还包括常规预测层以及补时层。特征融合层生成融合矩阵后,将融合矩阵输入所述常规预测层和所述补时层。所述常规预测层用于根据所述融合矩阵计算得到常规时长。所述补时层用于根据所述融合矩阵计算得到目标补时时长。

如图5所示,特征融合层生成融合矩阵之后,所述预测结果是基于如下步骤中的一个或多个计算得到的:

S51,根据所述融合矩阵与所述常规预测层的运算矩阵计算得到常规时长。

S52,根据对应所述目标订单的特征数据确定所述补时层的运算矩阵。

具体的,所述根据对应所述目标订单的特征数据确定的所述补时层的运算矩阵,包括:根据所述特征数据确定对应所述补时层的属性值;在多个预设的数据区间中确定所述属性值所处的数据区间;根据所述属性值与所处数据区间两个端值之间的差值,以及在补时嵌入向量库中查找到的分别对应所述两个端值的补时嵌入向量,计算所述补时层的运算矩阵,其中,所述补时嵌入向量库包括对应所述预设的数据区间端值的补时嵌入向量。

也就是说,补时层的运算矩阵是根据对应该补时层的属性值所处的预设数据区间,以及,该数据区间端值对应的补时嵌入向量,运算得到的。

其中,每一端值对应的补时嵌入向量可以是预先设置的,也可以根据反向传导法则在模型训练过程中进行调整。补时嵌入矩阵中每一元素表示融合矩阵(concat层输出向量)中每一元素的敏感度。

举例来说,假设对应补时层的属性值为订单价格,针对价格预设有多个价格分段点,例如10元、20元、30元、40元,两相邻价格分段点之间的数值属于一个数据区间,每一价格分段点对应一个补时嵌入向量。也就是说,30元这个价格对应一个补时嵌入向量,40元这个价格对应另一个补时嵌入向量。

进一步的,根据目标订单的订单价格,与其所处的数据区间两端值之间的差值(距离),确定两个端值对应的补时嵌入向量的计算权重。假如对应目标订单的订单价格为35元,处于[30,40]的数据区间。那么权重是0.5和0.5。最终得到的所述补时层的运算矩阵可以表示为:0.5*端值30对应的补时嵌入向量+0.5*端值40对应的补时嵌入向量。

S53,根据所述融合矩阵与所述补时层的运算矩阵计算得到目标补时时长。

具体的,可以将得到的融合矩阵与补时层的运算矩阵乘积结果作为目标补时时长。根据上文举例,融合矩阵(concat函数输出向量)为[0.1,0.5,0.5,1.2,3.4,0.1,1.5],这个矩阵为1*7的矩阵。获取的得到的补时层的运算矩阵为7*1的矩阵[0.1,0.1,0.2,0.4,0.5,0.6,0.7]。两个矩阵的乘积,可作为目标补时时长。

如图4所示,在一种可选的实施方式中,所述补时层包括以下一种或多种补时模块:负载补时模块、距离补时模块、价格补时模块、出餐难度补时模块;

所述根据对应所述目标订单的特征数据确定所述补时层的运算矩阵,根据所述融合矩阵与所述补时层的运算矩阵计算得到目标补时时长,包括:根据对应所述目标订单的特征数据确定每一补时模块的运算矩阵;根据所述融合矩阵与每一所述补时模块的运算矩阵,分别计算得到相应的模块补时时长;基于计算得到模块补时时长生成所述目标补时时长。

也就是说,可以通过多个补时层计算得到多个模块补时时长,再运算得到目标补时时长。这一运算规则可以是简单加和,也可以是加权加和。

S54,基于所述常规时长与所述目标补时时长生成所述预测结果。

如图4所示,常规时长为常规补时层的输出量,目标补时时长为补时层的输出量,二者之和,即为对所述目标订单的送达时间的预测结果。

在这一实施例中,补时时长的计算和常规预测的计算均依赖于前序的特征融合后得到的融合矩阵。这样,在针对模型训练的时候,可以针对补时层和常规预测层进行整体优化,模型的优化更加便捷。此外,由于融合矩阵是基于多元特征得到的,根据其对模型的优化更加全面。

本公开实施例还提供一种针对配送时长预测模型的训练方法,如下:

针对所述补时层设置第一损失函数,针对所述常规预测层设置第二损失函数,所述第一损失函数与所述第二损失函数的函数类型不同;

将与样本数据中与订单配送相关的特征数据输入待训练的配送时长预测模型,得到对送达时间的待检预测结果;

重复执行以下调整元素值的操作步骤:

根据样本数据中的实际送达时刻、所述待检预测结果,以及所述第一损失函数调整所述补时层运算矩阵中的元素值;

根据样本数据中的实际送达时刻、所述待检预测结果,以及所述第二损失函数调整所述常规预测层的运算矩阵中的元素值;

直至元素值调整操作前所述第一损失函数的输出量,与所述元素值调整操作后所述第一损失函数的输出量之间的差值小于第一预设阈值,且,所述元素值调整操作前所述第二损失函数的输出量与所述元素值调整操作后所述第二损失函数的输出量之间的差值小于第二预设阈值,确定所述配送时长预测模型训练完成。

也就是说,在训练过程中,针对补时层设置的损失函数(Loss Function)与针对常规预测层设置损失函数是不同的。具体的,可以将针对补时层的损失函数设置为绝对值(abs)函数,而将针对常规预测层的损失函数设置为方差(square)函数。

在对如图4所示的模型进行整体优化的时候,可轮流对补时层的4个补时模块中的运算矩阵,以及常规预测层中的运算矩阵进行调整。具体的,在针对补时层进行调整时,也可以是补时嵌入向量中的元素。

这样,可以根据业务需求设置不同的损失函数,根据业务进行针对性的改进和优化。

图6是本公开一示例性实施例示出的一种计算配送时间的装置框图。所述装置包括:

获取模块610,用于获取预指定的与订单配送相关的特征数据,所述特征数据包括稀疏特征数据和稠密特征数据,其中,所述稀疏特征数据是指与目标订单相关的不可量化信息,所述稠密特征数据包括配送环境指标和与所述目标订单相关的可量化信息;

第一数据处理模块620,用于根据所述稀疏特征数据和所述稠密特征数据生成第一特征矩阵;

第二数据处理模块630,用于根据历史的所述稠密特征数据生成第二特征矩阵;

第三数据处理模块640,用于将所述第一特征矩阵和所述第二特征矩阵输入配送时长预测模型,得到对所述目标订单的送达时间的预测结果。

上述方案,至少能够达到以下技术效果:

通过对与订单配送相关的包括稀疏特征数据和稠密特征数据的特征数根据所述稀疏特征数据和所述稠密特征数据生成第一特征矩阵,根据历史的所述稠密特征数据生成第二特征矩阵,再将处理得到的特征矩阵带入配送时长预测模型,得到对目标订单的送达时间的预测结果。在本方案中,除了能够输入对包括ID类的稀疏特征,还能够输入具有时序性的历史稠密特征进行预测,提升了订单配送时长预测的准确度和全局性。

第二方面,本公开提供一种计算配送时间的装置,所述装置包括:

获取模块,用于获取预指定的与订单配送相关的特征数据,所述特征数据包括稀疏特征数据和稠密特征数据,其中,所述稀疏特征数据是指与目标订单相关的不可量化信息,所述稠密特征数据包括配送环境指标和与所述目标订单相关的可量化信息;

第一数据处理模块,用于根据所述稀疏特征数据和所述稠密特征数据生成第一特征矩阵;

第二数据处理模块,用于根据历史的所述稠密特征数据生成第二特征矩阵;

第三数据处理模块,用于将所述第一特征矩阵和所述第二特征矩阵输入配送时长预测模型,得到对所述目标订单的送达时间的预测结果。

可选的,所述配送时长预测模型包括FM算法层,MLP算法层,时序输出层,特征融合层;

所述FM算法层用于对所述第一特征矩阵进行交叉组合特征扩展;

所述MLP算法层用于对所述第一特征矩阵进行矩阵变换处理;

所述时序输出层用于对所述第二特征矩阵进行矩阵变换处理;

所述特征融合层用于,将所述FM算法层输出的矩阵、所述MLP算法层输出的矩阵和所述时序输出层输出的矩阵中的元素进行融合,得到融合矩阵;所述预测结果是根据所述融合矩阵计算得到的。

可选的,所述配送时长预测模型还包括常规预测层以及补时层;

所述预测结果是基于如下步骤计算得到的:

根据所述融合矩阵与所述常规预测层的运算矩阵计算得到常规时长;

根据对应所述目标订单的特征数据确定所述补时层的运算矩阵;

根据所述融合矩阵与所述补时层的运算矩阵计算得到目标补时时长;

基于所述常规时长与所述目标补时时长生成所述预测结果。

可选的,所述根据对应所述目标订单的特征数据确定的所述补时层的运算矩阵,包括:

根据所述特征数据确定对应所述补时层的属性值;

在多个预设的数据区间中确定所述属性值所处的数据区间;

根据所述属性值与所处数据区间两个端值之间的差值,以及在补时嵌入向量库中查找到的分别对应所述两个端值的补时嵌入向量,计算所述补时层的运算矩阵,其中,所述补时嵌入向量库包括对应所述预设的数据区间端值的补时嵌入向量。

可选的,所述补时层包括以下一种或多种补时模块:

负载补时模块、距离补时模块、价格补时模块、出餐难度补时模块;

所述根据对应所述目标订单的特征数据确定所述补时层的运算矩阵,根据所述融合矩阵与所述补时层的运算矩阵计算得到目标补时时长,包括:

根据对应所述目标订单的特征数据确定每一补时模块的运算矩阵;

根据所述融合矩阵与每一所述补时模块的运算矩阵,分别计算得到相应的模块补时时长;

基于计算得到模块补时时长生成所述目标补时时长。

可选的,所述配送时长预测模型是通过以下方式训练得到的:

针对所述补时层设置第一损失函数,针对所述常规预测层设置第二损失函数,所述第一损失函数与所述第二损失函数的函数类型不同;

将与样本数据中与订单配送相关的特征数据输入待训练的配送时长预测模型,得到对送达时间的待检预测结果;

重复执行以下调整元素值的操作步骤:

根据样本数据中的实际送达时刻、所述待检预测结果,以及所述第一损失函数调整所述补时层的运算矩阵中的元素值;

根据样本数据中的实际送达时刻、所述待检预测结果,以及所述第二损失函数调整所述常规预测层的运算矩阵中的元素值;

直至元素值调整操作前所述第一损失函数的输出量,与所述元素值调整操作后所述第一损失函数的输出量之间的差值小于第一预设阈值,且,所述元素值调整操作前所述第二损失函数的输出量与所述元素值调整操作后所述第二损失函数的输出量之间的差值小于第二预设阈值,确定所述配送时长预测模型训练完成。

可选的,所述稀疏特征数据包括对应每一种稀疏特征的稀疏索引值和稀疏属性值,其中,所述稀疏属性值为对应所述稀疏特征的预设值;

所述稠密特征数据包括对应每一种稠密特征的稠密索引值和稠密属性值,其中,所述稠密属性值为对应所述稠密特征的量化数值;

第一数据处理模块,用于:

对每一种稀疏特征执行如下操作:根据对应所述稀疏特征的所述稀疏索引值在预设嵌入向量库中查询得到稀疏特征嵌入向量,并根据所述稀疏属性值以及所述稀疏特征嵌入向量,生成对应所述稀疏特征的稀疏特征向量;

对每一种稠密特征执行如下操作:根据对应所述稠密特征的所述稠密索引值在预设嵌入向量库中查询得到稠密特征嵌入向量,并根据所述稠密属性值以及所述稠密特征嵌入向量,生成对应所述稠密特征的稠密特征向量;

基于所述稀疏索引值和所述稠密索引值,以及生成的所述稀疏特征向量和所述稠密特征向量,生成所述第一特征矩阵。

可选的,所述FM算法层用于对所述第一特征矩阵进行交叉组合特征扩展,包括:

将任意两个所述特征的组合作为新的特征,并针对所述新的特征执行如下操作:

将所述两个特征的对应的特征向量的点积作为所述新的特征的属性值;

基于所述两个特征的对应的特征向量,以及所述属性值生成对应所述新的特征的特征向量;

所述FM算法层输出的矩阵包括对应所述新的特征的特征向量。

本领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能单元(模块)的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元(模块)完成,即将装置的内部结构划分成不同的功能单元(模块),以完成以上描述的全部或者部分功能。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

本公开提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现任一项所述计算配送时间的方法的步骤。

本公开提供一种电子设备,包括:

存储器,其上存储有计算机程序;

处理器,用于执行所述存储器中的所述计算机程序,以实现任一项所述计算配送时间的方法的步骤。

图7是根据一示例性实施例示出的一种电子设备的框图。如图7所示,该电子设备700可以包括:处理器701,存储器702。该电子设备700还可以包括多媒体组件703,输入/输出(I/O)接口704,以及通信组件705中的一者或多者。

其中,处理器701用于控制该电子设备700的整体操作,以完成上述的计算配送时间的方法中的全部或部分步骤。存储器702用于存储各种类型的数据以支持在该电子设备700的操作,这些数据例如可以包括用于在该电子设备700上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等,再比如,订单价格、订单发起时间、配送地址信息等等。该存储器702可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(StaticRandom AccessMemory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable ProgrammableRead-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable ProgrammableRead-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件703可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器702或通过通信组件705发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口704为处理器701和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件705用于该电子设备700与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(NearField Communication,简称NFC),2G、3G、4G、NB-IOT、eMTC、或其他5G等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该通信组件705可以包括:Wi-Fi模块,蓝牙模块,NFC模块等等。

在一示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的计算配送时间的方法。

在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的计算配送时间的方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器702,上述程序指令可由电子设备700的处理器701执行以完成上述的计算配送时间的方法。

图8是根据一示例性实施例示出的一种电子设备的框图。例如,电子设备800可以被提供为一服务器。参照图8,电子设备800包括处理器822,其数量可以为一个或多个,以及存储器832,用于存储可由处理器822执行的计算机程序。存储器832中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器822可以被配置为执行该计算机程序,以执行上述的计算配送时间的方法。

另外,电子设备800还可以包括电源组件826和通信组件850,该电源组件826可以被配置为执行电子设备800的电源管理,该通信组件850可以被配置为实现电子设备800的通信,例如,有线或无线通信。此外,该电子设备800还可以包括输入/输出(I/O)接口858。电子设备800可以操作基于存储在存储器832的操作系统,例如Windows ServerTM,Mac OSXTM,UnixTM,LinuxTM等等。

在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的计算配送时间的方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器832,上述程序指令可由电子设备800的处理器822执行以完成上述的计算配送时间的方法。

在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的计算配送时间的方法的代码部分。

以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。

此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

相关技术
  • 计算配送时间的方法和装置,电子设备和存储介质
  • 确定配送时间的方法和装置、存储介质和电子设备
技术分类

06120112286383