发明内容
本发明实施例提供了一种基于多模态特征的商品销量预测方法、装置及相关设备,旨在解决现有技术中对促销销量预测不准确的问题。
第一方面,本发明实施例提供了一种基于多模态特征的商品销量预测方法,其包括:
获取历史销售数据,并对所述历史销售数据中每一天的商品销量数据进行分解,得到所述历史销售数据中每一天的日常销量,所述历史销售数据包括商品属性数据、商品销量数据以及销售时序数据;
对所述日常销量进行时间序列分解得到分解结果,对分解结果进行特征提取,得到所述所述历史销售数据的历史特征向量;
通过预置的多头注意力层对所述历史销售数据进行特征提取,得到所述历史销售数据的时序特征向量、竞争特征向量以及属性嵌入向量;
基于所述历史特征向量、时序特征向量、属性嵌入向量以及竞争特征向量,构建训练销量特征;
基于所述训练销量特征,根据预置的LSTM模型进行销量预测,得到目标销量预测值。
第二方面,本发明实施例提供了一种基于多模态特征的商品销量预测装置,其包括:
获取模块,用于获取历史销售数据,并对所述历史销售数据中每一天的商品销量数据进行分解,得到所述历史销售数据中每一天的日常销量,所述历史销售数据包括商品属性数据、商品销量数据以及销售时序数据;
分解模块,用于对所述日常销量进行时间序列分解得到分解结果,对分解结果进行特征提取,得到所述所述历史销售数据的历史特征向量;
提取模块,用于通过预置的多头注意力层对所述历史销售数据进行特征提取,得到所述历史销售数据的时序特征向量、竞争特征向量以及属性嵌入向量;
构建模块,用于基于所述历史特征向量、时序特征向量、属性嵌入向量以及竞争特征向量,构建训练销量特征;
预测模块,用于基于所述训练销量特征,根据预置的LSTM模型进行销量预测,得到目标销量预测值。
第三方面,本发明实施例又提供了一种计算机设备,其包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的基于多模态特征的商品销量预测方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其中所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行上述第一方面所述的基于多模态特征的商品销量预测方法。
本发明实施例提供了一种基于多模态特征的商品销量预测方法、装置及相关设备。该方法包括获取历史销售数据,并对所述历史销售数据中每一天的商品销量数据进行分解,得到所述历史销售数据中每一天的日常销量;对所述日常销量进行时间序列分解得到分解结果,对分解结果进行特征提取,得到所述所述历史销售数据的历史特征向量;通过预置的多头注意力层对所述历史销售数据进行特征提取,得到所述历史销售数据的时序特征向量、竞争特征向量以及属性嵌入向量;基于所述历史特征向量、时序特征向量、属性嵌入向量以及竞争特征向量,构建训练销量特征;基于所述训练销量特征,根据预置的LSTM模型进行销量预测,得到目标销量预测值。该方法中通过从历史销售数据提取出多种模态的特征,通过长短期记忆网络LSTM模型预测商品销量,相比传统的预测手段,预测结果更准确。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1所示,图1为本发明实施例提供的基于多模态特征的商品销量预测方法的流程示意图,该方法包括步骤S110~S150。
步骤S110、获取历史销售数据,并对所述历史销售数据中每一天的商品销量数据进行分解,得到所述历史销售数据中每一天的日常销量,所述历史销售数据包括商品属性数据、商品销量数据以及销售时序数据;
本实施例中,获取历史销售数据,对历史销售数据中每一天的商品销量数据进行分解,得到历史销售数据中每一天的日常销量。其中,历史销售数据包括商品属性数据、商品销量数据以及销售时序数据。商品属性数据指的是商品的颜色、类别、材质、适用人群等属性信息。商品销量数据为一个时间段的销量数据,可以是一门店N日内的商品销量数据,也可以是N周的商品销量数据,还可以是N月的销量数据或N年的销量数据。销售时序数据指的是商品时的外部特征,如温度、气温、季节、淡旺季、节假日等时序信息。由于销量数据中存在日常销量(即排除促销或节假日时的销量)和促销销量(促销或节假日的销量),需要对历史销售数据中每一天的商品销量数据进行分解,从中提取出历史销售数据每一天的日常销量。
在一实施例中,如图2所示,步骤S110包括:
步骤S111、检测所述商品销量数据中每一天的所属类型,所述类型包括正常日和促销日;
步骤S1121、若所述商品销量数据中当天的所属类型属于正常日,则以当天的销量作为日常销量;
步骤S1122、若所述商品销量数据中当天的所属类型属于促销日,则根据预置函数计算所述促销日的理论日常销量和理论促销销量,以所述理论日常销量作为当天的日常销量。
本实施例中,为了分解出商品销量数据中的日常销量,需要检测历史销售数据中存在促销销量的日销量。具体的,检测商品销量数据的所属类型,若商品销量数据中当天的所属类型属于正常日,则以当天的销量作为日常销量;若商品销量数据中当天的所属类型属于促销日,则根据预置函数计算促销日的理论日常销量和理论促销销量,以理论日常销量作为当天的日常销量。其中,预置函数如下:
将商品p的历史销售数量s(t)分解成日常销量和促销销量:
其中,t表示第t天;rt表示促销日或节假日状态,rt=0表示第t天为促销日或节假日(特殊日);rt=1表示第t天未进行促销也不为节假日(正常日);Nt表示日常销量;WMAt表示rt=0时的销量;yt表示rt=1时的销量;at表示通过移动平均法预测销量的系数;n表示t前后的天数,用(t-n,t+n)表示第t天的正常日数量作为移动平均法的系数。
其中,对于促销日的销量WMAt,使用前后两天的日常销量的加权平均销量计算,则有Rt表示t日前后两天的日常销量之和:
其中,Φt表示归一化前的移动平均系数,由于促销期前后每日销量有较大的衰减,使用|n2|作为分母。an表示归一化后的移动平均系数。需要知道的是,促销期一般是在一周左右,法定节假日一般在8天以下,使用n=-5到5可以尽可能覆盖所有的促销日和节假日天数;
步骤S120、对所述日常销量进行时间序列分解得到分解结果,对分解结果进行特征提取,得到所述历史销售数据的历史特征向量;
本实施例中,由于历史销售数据中每天的日常销量为一种时间序列数据,对历史销售数据的日常销量进行时间序列分解得到分解结果,对分解结果进行特征提取,得到历史销售数据的历史特征向量。
在一实施例中,如图3所示,步骤S120包括:
步骤S121、通过STL分解算法对所述日常销量进行分解,得到所述历史销售数据的趋势分量、季节分量和残差分量;
步骤S122、从所述残差分量和趋势分量中提取历史信息特征,将所述历史信息特征与所述季节分量进行拼接,得到所述历史销售数据的历史特征向量。
本实施例中,如图8所示,为了获取历史销售数据的历史特征向量,采用STL分解算法对历史销售数据每一天的日常销量进行分解,得到历史销售数据的趋势分量、季节分量和残差分量;从残差分量和趋势分量中提取出历史信息特征,将历史信息特征与季节分量进行拼接,得到历史销售数据的历史特征向量。其中,趋势分量表示一段时期内持续发展变化的趋向或状态;季节分量表示由于季节的变化引起的现象发展水平的规则变动;残差分量表示时间序列数据未被趋势分量和季节分量捕捉的波动。
在一实施例中,如图4所示,步骤S122包括:
步骤S1221、通过预置的BiLSTM网络对所述残差分量进行历史信息特征提取,得到历史残差特征;
步骤S1222、通过预置的GRU网络对所述所述趋势分量进行历史信息特征提取,得到历史趋势特征;
步骤S1223、将所述历史残差特征和历史趋势特征进行相加,得到历史信息特征。
本实施例中,如图8所示,通过预置的BiLSTM网络对残差分量进行历史信息特征提取,得到历史残差特征;通过预置的GRU网络对趋势分量进行历史信息特征提取,得到历史趋势特征;将历史残差特征和历史趋势特征进行相加,得到历史信息特征。其中,LSTM的全称是Long Short-Term Memory,它是循环神经网络的一种。LSTM由于其设计的特点,适合用于对时序数据的建模,如文本数据。BiLSTM是Bi-directional Long Short-Term Memory的缩写,是由前向LSTM与后向LSTM组合而成。门控循环单元(GRU)是LSTM基于门控机制构建的循环神经网络。
步骤S130、通过预置的多头注意力层对所述历史销售数据进行特征提取,得到所述历史销售数据的时序特征向量、竞争特征向量以及属性嵌入向量;
本实施例中,采用多头注意力层从历史销售数据中提取多种模态的特征向量,通过预置的多头注意力层对历史销售数据进行特征提取,获取历史销售数据的时序特征向量、竞争特征向量和属性嵌入向量。
本实施例中,如图5所示,步骤S130包括:
步骤S131、基于所述历史销售数据的时序特征,构建时序特征集,通过多头注意力层对所述时序特征集进行注意力特征提取,得到时序特征向量;
步骤S132、根据所述历史销售数据对应的商品信息,确定每个商品的替代商品和互补商品,并统计所述替代商品和互补商品的历史价格,得到每个商品的竞争信息矩阵,通过多头注意力层对所述竞争信息矩阵进行注意力特征提取,得到竞争特征向量;
步骤S133、对所述历史销售数据对应的商品属性进行编码,得到属性矩阵,并计算所述属性矩阵与预置的权重矩阵的乘积,得到属性嵌入向量。
本实施例中,基于历史销售数据的时序特征集,时序特征集中包括历史销售数据的各种销售时序特征,如:温度、气温、季节、淡旺季、节假日。例如,春季为1,夏季为2,秋季为3,冬季为4。而淡旺季中如果当前所取的历史销售数据的某天销量属于旺季为1,淡季为0。节假日只考虑法定节假日,新年所在周为1,春节为2,清明节为3,劳动节为4,端午节为5,中秋节为6,国庆节为7。例如图9所示,通过多头注意力层对时序特征集进行注意力特征提取,得到时序特征向量。具体的,通过多头注意力层,充分提取时间特征集中不同时间步前后特征之间的关系,抓住核心特征,对重点信息进行提取。接着通过残差连接层,有利于解决多层网络梯度消散和提速爆炸的问题,让网络更关注当前差异的部分。再通过层归一化,加快网络训练速度,加快收敛;将归一化层提取到的信息通过前馈神经网络进一步加工从多头注意力层提取到的特征,再经过第二个层归一化得到时序特征向量。
本实施例中,不同商品之间存在替代品和互补品的关系。如果两种商品是互补品的关系,有种产品价格下降会引起另一种产品销量的上升。如果两种商品之间存在替代品的关系,一种商品因为促销活动价格下降,本来想购买另一种替代品的消费者将会转而去买这种商品,替代品的销量就会下降,由于不同种类的商品存在互补品和替代品的关系,一种商品进行促销可能会引起其他品牌商品的商品销量发生波动,挖掘相似商品历史的价格之间的关系,有利于更准确到预测促销的销售量。例如图10所示,将历史销售数据中各商品的历史价格拼接形成竞争信息矩阵;接着通过多头注意力层对竞争信息矩阵进行注意力特征提取,提取不同商品之间的竞争关系,得到竞争特征向量。
本实施例中,图11所示,对历史销售数据对应的商品属性进行编码,形成属性矩阵;接着计算属性矩阵与预置的权重矩阵的乘积,得到属性嵌入向量。其中,商品属性包括商品的颜色、类别、材质、适用人群等。
步骤S140、基于所述历史特征向量、时序特征向量、属性嵌入向量以及竞争特征向量,构建训练销量特征;
本实施例中,基于历史特征向量、时序特征向量、属性嵌入向量以及竞争特征向量,构建训练销量特征。
在一实施例中,如图6所示,步骤S140包括:
步骤S141、对所述历史特征向量、时序特征向量、属性嵌入向量以及竞争特征向量进行拼接,得到拼接特征向量;
步骤S142、将所述拼接特征向量输入全连接层进行连接,得到连接特征向量;
步骤S143、对所述拼接特征向量与连接特征向量进行相加,得到训练销量特征。
本实施例中,如图12所示,对历史特征向量、时序特征向量、属性嵌入向量以及竞争特征向量进行拼接,得到拼接特征向量;将拼接特征向量输入全连接层,并通过残差进行连接,得到连接特征向量;为了防止网络信息丢失,将拼接特征向量与连接特征向量进行相加,得到训练销量特征。
步骤S150、基于所述训练销量特征,根据预置的LSTM模型进行销量预测,得到目标销量预测值。
本实施例中,基于训练销量特征,根据预置的LSTM模型进行销量预测,得到目标销量预测值。同时,LSTM模型还会保留每次预测的特征,用于在下一次模型预测时提供更多特征信息,提升预测准确度。
在一实施例中,步骤S150之后,还包括:
根据预设的误差函数检验所述目标销量预测值与实际值的误差并优化网络参数,其中,所述误差函数如下:
其中,X为误差值,yi为真实值,yi′为目标销量预测值。
此外,整个网络的优化器选择Adam优化算法,加快收敛速度。
该方法中通过从历史销售数据提取出多种模态的特征,通过长短期记忆网络LSTM模型预测商品销量,相比传统的预测手段,预测结果更准确。
本发明实施例还提供一种基于多模态特征的商品销量预测装置,该基于多模态特征的商品销量预测装置用于执行前述基于多模态特征的商品销量预测方法的任一实施例。具体地,请参阅图7,图7是本发明实施例提供的基于多模态特征的商品销量预测装置的示意性框图。该基于多模态特征的商品销量预测装置100可以配置于服务器中。
如图7所示,基于多模态特征的商品销量预测装置100包括获取模块110、分解模块120、提取模块130、构建模块140、预测模块150。
获取模块110,用于获取历史销售数据,并对所述历史销售数据中每一天的销量数据进行分解,得到所述历史销售数据中每一天的日常销量;
分解模块120,用于对所述日常销量进行时间序列分解得到分解结果,对分解结果进行特征提取,得到所述所述历史销售数据的历史特征向量;
提取模块130,用于通过预置的多头注意力层对所述历史销售数据进行特征提取,得到所述历史销售数据的时序特征向量、竞争特征向量以及属性嵌入向量;
构建模块140,用于基于所述历史特征向量、时序特征向量、属性嵌入向量以及竞争特征向量,构建训练销量特征;
预测模块150,用于基于所述训练销量特征,根据预置的LSTM模型进行销量预测,得到目标销量预测值。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现如上所述的基于多模态特征的商品销量预测方法。
在本发明的另一实施例中提供计算机可读存储介质。该计算机可读存储介质可以为非易失性的计算机可读存储介质。该计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行如上所述的基于基于多模态特征的商品销量预测方法。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为逻辑功能划分,实际实现时可以有另外的划分方式,也可以将具有相同功能的单元集合成一个单元,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。