具体实施方式
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本说明书实施例的技术方案做详细的说明,应当理解本说明书实施例以及实施例中的具体特征是对本说明书实施例技术方案的详细的说明,而不是对本说明书技术方案的限定,在不冲突的情况下,本说明书实施例以及实施例中的技术特征可以相互组合。
第一方面,本说明书实施例提供一种交易特征预测方法,如图1所示,为本说明书实施例提供的交易特征预测方法的流程图,该方法包括以下步骤:
步骤S11:获取目标用户的历史交易数据;
步骤S12:对所述历史交易数据进行特征提取,获取N组深度特征信息,其中,每组深度特征信息对应一个交易时段,不同组的深度特征信息对应的交易时段不同,N为大于1的正整数;
步骤S13:根据所述历史交易数据以及所述目标用户的基础特征,确定M组广度特征信息,M为正整数;
步骤S14:将所述N组深度特征信息以及所述M组广度特征信息输入至预设的深度和广度联合模型中,获得所述预设的深度和广度联合模型的输出结果,作为所述目标用户在预测时间内的交易特征的预测结果。
应理解的是,本说明书实施例中的方法可以应用于服务器中,例如,应用于电商平台的服务器中、应用于提供支付服务的服务器中,还可以应用于终端设备中,例如应用于用户的手机、电脑等设备中,这里不做限定。
在本说明书实施例中,目标用户为待预测的任意用户,通过获取目标用户的历史交易数据,并对历史交易数据进行处理,得到N组深度特征信息,作为深度模型的输入数据,同时,对目标用户的基础特征以及历史交易数据进行处理,得到M组广度特征信息,作为广度模型的输入数据。进一步的,将上述得到的深度模型的输入数据和广度模型的输入数据输入至已训练好的预设的深度和广度联合模型中,模型的输出结果即为目标用户的交易特征预测结果。
本说明书实施例中的方案,通过预设的深度和广度联合模型,将在目标用户的历史数据中提取的深度模型的输入数据以及广度模型的输入数据有机的融合在一起,提高了预测的准确率。同时,考虑到用户的交易数据有一定的周期性和时间性,选择交易时段不同的N组深度特征信息来对交易特征进行预测,进一步的提高了交易特征的预测效率和准确率。
下面,对本说明实施例提供的交易特征预测方法进行详细说明,首先,执行步骤S11:获取目标用户的历史交易数据。
目标用户可以是待预测的任意用户,例如,当本说明书实施例中的方法应用于电商平台的服务器时,目标用户可以是使用该电商平台进行交易的任意用户。历史交易数据可以是目标用户一段时间内在电商平台进行购物的交易数据,如近一年内在电商平台购物的交易记录,近半年内在电商平台购物的交易记录等。历史交易数据可以包括交易时间、交易内容、交易金额、交易对象等数据。
应理解的是,历史交易数据对应的时间段需要根据深度模型的输入来确定,例如,深度模型的输入为6维,每一维输入数据对应一个月的深度特征信息,6维输入数据则分别对应六个月的深度特征信息。因此,至少需要获取目标用户半年的历史交易数据,如获取目标用户与当前时间距离半年的历史交易数据,或者获取目标用户与当前时间距离一年的历史交易数据等。
在获取到目标用户的历史交易数据后,通过步骤S12来确定深度模型的输入数据。
在步骤S12中,对历史交易数据的特征提取可以根据多种方式实现,例如,根据预设的关键字段在历史交易数据中提取出与关键字段对应的特征信息,或者根据预设的计算方式对历史交易数据进行处理,得到所需的特征信息。应理解的是,特征的选取可以根据实际需要进行设定,例如,需要根据历史交易数据获取交易总额、交易类目、交易总笔数等特征。
本说明书实施例中,一组深度特征信息对应于一个时段内的历史交易数据产生的特征,例如,一组深度特征信息为在一个月内的历史交易数据中提取的特征。深度特征信息的组数N根据深度模型的输入维度来确定,如,深度模型的输入维度为三个维度,则N为3。仍以一组深度特征信息对应一个月内的历史交易数据中提取的特征为例,那么需要获取目标用户三个月内的历史交易数据,分别提取这三个月交易数据的特征,作为三组深度特征信息,即每组深度特征信息对应的交易时段不同。需要说明的是,历史交易数据可以是连续的,如连续几个月的历史交易数据,也可以是间断的,如每间隔一个月获取的历史交易数据,这里不做限定。
进一步的,通过步骤S13来获取广度模型的输入数据:根据所述历史交易数据以及所述目标用户的基础特征,确定M组广度特征信息,作为广度模型的M组输入数据,M为正整数。
在步骤S13中,基础特征可以根据实际需要来进行选择,基础特征可以是在历史交易数据中获取的,也可以是独立于历史交易数据的。在一个实施例中,基础特征包括以下特征中的一者或多者:性别特征、年龄特征以及地域特征。基础特征的特征信息可以通过编码、查表等方式来实现,以性别特征为例,当性别特征为女时,对应的特征信息可以为1,当性别特征为男时,对应的特征信息为0。
广度特征可以是通过将基础特征和历史交易数据进行合成、组合等方式获取的,广度特征信息指的是广度特征所对应的具体特征值或特征序列。广度特征的选取可以根据实际需要进行设定,例如,广度特征可以包括性别特征、年龄特征、地域特征、性别与交易类目的组合特征、地域与交易类目的组合特征等。广度特征需要和广度模型的输入一致,即,根据广度模型的输入数据类型来确定广度特征具体是哪些,另外,广度特征信息的数量M也是根据广度模型的输入维度来确定的,例如,广度模型的输入为8维,那么M则为8。
在获取到深度模型的输入数据以及广度模型的输入数据后,执行步骤S14,将所述N组深度特征信息以及所述M组广度特征信息输入至预设的深度和广度联合模型中,获得所述预设的深度和广度联合模型的输出结果,作为所述目标用户在预测时间内的交易特征的预测结果。
应理解的是,预设的深度和广度联合模型是预先训练好的,在训练过程中,需要对模型的输入和输出进行设定。如果需要根据用户前12个月的历史交易数据来预测下一个月的消费额度,可以将预设的深度和广度联合模型中的深度模型的输入数据设定为12维的输入,每一维输入对应一个月的深度特征信息,深度和广度联合模型中的广度模型的输入可以根据需要设定,例如广度模型的输入包括16维的输入数据,分别对应基础特征、以及基础特征和历史交易数据的交叉特征。由于模型是对下一个月的消费额度进行预测,则模型输出的交易特征为下个月的消费额度。
当然,预测时间以及要预测的交易特征可以根据需要进行设定,例如,预测时间可以是未来的一个月,也可以是未来一年,还可是未来的某天,交易特征可以是消费额度、消费类别、交易笔数等。根据预测时间和交易特征的不同,可以根据相应的训练数据来对深度和广度联合模型进行训练。
在具体实施过程中,步骤S12可以采用以下方式来实现:将所述历史交易数据按照交易时间信息划分成N组交易子数据;针对所述N组交易子数据中的每组交易子数据,根据预设特征集合以及所述预设特征集合中每个特征的获取方式,对该组交易子数据进行特征提取,获得与所述预设特征集合中每个特征对应的特征信息,作为该组交易子数据对应的一组深度特征信息。
本说明书实施例中,深度模型是时间相关的模型,深度模型的输入为时间序列。为了获取深度特征信息,可以将目标用户的历史交易数据按照交易时间信息进行分类,在具体实施过程中,当深度模型的输入为连续12个月的深度特征信息,即N为12时。那么需要获取目标用户近一年的历史交易数据。比如,当前时间为2019年1月1日,则需要获取目标用户从2018年1月1日到2019年1月1日这段时间的历史交易数据。进一步的,按照交易时间信息将历史交易数据分成12组,即交易时间信息属于2018年1月的交易数据作为一组交易子数据,将交易时间信息属于2018年2月的交易数据作为一组交易子数据,以此类推,共获得12组交易子数据。
接下来,根据每组交易子数据中,确定深度特征信息。深度特征信息的确定可以采用多种方式。例如,可以设置一个预设特征集合,该预设特征集合中包含有用于预测交易特征的一个或多个特征,比如说,预设特征集合中包含有交易总额、交易最大值、交易最小值、交易平台、交易类别等。对于预设特征集合中的每个特征,都对应有各自的获取方式,以交易总额来举例,当计算2018年1月的交易子数据中的交易总额时,将该组交易子数据中的每条交易数据中的交易金额提取出来,然后进行求和计算,得到该组交易子数据的交易总额的值,作为交易总额对应的特征信息。
通过上述方式,将预设特征集合中的每个特征对应的特征信息提取出来,作为一组深度整信息。另外,可以将提取出来的特征信息按照预设顺序排列起来,预设顺序中各个特征信息的先后顺序可以根据实际需要进行设置,这里不做限定,将排列好的特征信息序列作为一组深度特征信息。
该实施例中,由于N组深度特征信息均对应从不同月份的历史交易数据中提取的特征,因此,N组深度特征信息存在时间上的顺序,可以将N组深度特征信息按照时间顺序输入到联合模型中的深度模型中。由于交易特征与时间顺序存在一定关联,因此,采用时间顺序上的N组深度特征信息来对交易特征进行预测更加有效,且准确率更高。
在获取广度模型的输入数据时,可以根据以下方式来获取:根据预设的统计特征获取方式,从所述历史交易数据中获取目标统计特征信息;将所述目标统计特征信息与所述基础特征对应的基础特征信息进行交叉组合处理,获得所述M组广度特征信息。
本说明书实施例中,广度模型可以是一个泛化的线性模型,广度模型的输入可以为多维度的离散特征。由于交易过程中,用户的基础特征信息与交易数据的统计特征信息是有关联的,例如,男性用户偏向于购买电子产品;女性用户偏向于购买衣服、化妆品;北方用户在冬天偏向于购买保暖产品;南方用户在梅雨季节偏向于购买雨具等。因此,在确定广度模型的输入数据时,可以将统计特征信息与基础特征信息进行交叉组合处理。
应理解的是,目标统计特征可以是根据实际需要进行设置的,例如,目标统计特征为交易类目、交易平台、交易最大值等。对于每种目标统计特征,可以有各自的获取方式,以交易类目来说,获取方式可以为在历史交易数据中根据交易类目字段提取每条历史交易数据的交易类目名称,然后将相同的交易类目名称统计在一起,并将数量大于一阈值的交易类目名称进行编码,得到最终的交易类目特征对应的特征信息。当然,还可以通过其他方式来获取目标统计特征信息,这里就不一一举例了。
目标用户的基础特征信息可以在目标用户的历史交易数据中获取,也可以根据目标用户的属性信息获取。例如,当目标用户使用电商平台进行交易时,通常需要在电商平台上进行注册,基础特征信息可以根据目标用户的注册时填写的属性信息来获取。
在进行基础特征信息和目标统计特征信息的交叉组合处理时,可以采用多种方式,例如,通过相乘、求笛卡尔积或者其他方式来计算交叉组合特征,共计获得M组广度特征信息。其中,M组广度特征信息可以都是交叉组合处理得到的交叉组合特征,也可以包含有单独的基础特征,这里不做限定。
在确定了深度模型和广度模型的输入数据之后,将输入数据输入到预设的深度和广度联合模型中,预设的深度和广度联合模型是由深度模型、广度模型、以及深度模型和广度模型的组合层构成的。预设的深度和广度联合模型可以是预先训练好的,在训练过程中,需要确定联合模型所使用的输入数据,以及联合模型所要预测的数据(即联合模型的输出结果)。
为了便于说明,本说明书实施例以预测消费额度为例,即联合模型的输出为消费来对联合模型的训练过程进行说明,训练过程包括以下步骤:
步骤一:构建初始的深度和广度联合模型,所述初始的深度和广度联合模型包括初始的深度模型、初始的广度模型、以及初始的深度模型和广度模型的组合层;
步骤二:根据采集到的多个用户的历史交易数据,确定训练数据集合,所述训练数据集合中的每组训练数据均由一组输入数据和一组目标输出数据构成;其中,针对所述每组训练数据,所述输入数据为第一时段对应的同一用户的N组深度特征信息和M组广度特征信息,所述目标输出数据为该用户在第二时段内进行交易所产生的消费额度;
步骤三:基于所述训练数据集合对所述初始的深度和广度联合模型进行训练,得到所述预设的深度和广度联合模型。
如图2所示,为深度和广度联合模型的示意图,该深度和广度联合模型由深度模型、广度模型、以及深度模型和广度模型的组合层构成。该深度和广度联合模型中的深度模型会基于深度模型的输入数据生成深度模型的中间数据,广度模型会基于广度模型的输入数据生成广度模型的中间数据,深度模型和广度模型的组合层会对深度模型的中间数据和广度模型的中间数据进行进一步的处理,并输出最终的结果。因此,在构建初始的深度和广度联合模型时,需要根据需要确定深度模型的输入维度、深度模型的层数、每层所包含的结点数、广度模型的输入维度、组合层的结点数等。
由于最初的深度和广度联合模型是初始化的,因此,上述各个模型的参数都是初始化的,通过对联合模型的训练,不断的对各个模型的参数进行调整,直到各个模型的参数达到最优,此时的联合模型就是最终的预设的深度和广度联合模型。
对联合模型进行训练,需要构建训练数据集合,训练数据集合中的每组训练数据均包含有一组输入数据和一组目标输出数据,这里的输入数据和目标输出数据都是真实获取的。例如,通过用户前6个月的交易数据预测下个月的消费额度,那么至少需要获取用户前6个月的交易数据以及第7个月的消费额度,即第一时段为前6个月对应的时段,第二时段为第7个月对应的时段。也就是说,对于一组训练数据,输入为根据该用户的前6个月的交易数据获取的深度模型的深度特征信息,以及广度模型的广度特征信息,目标输出为第7个月的消费额度。
具体来讲,对于每组训练数据中的输入数据来说,其中,需要根据深度模型的输入维度来确定深度模型的输入,以及根据广度模型的输入维度来确定广度模型的输入。仍以上面的通过用户前6个月的交易数据预测下个月的消费额度为例,若深度模型的输入维度为6维,每一维输入对应一个月的特征时间序列,那么对于每个用户来说,需要获取至少6个月的交易数据,然后将6个月的交易数据按照月份进行划分,每个月份的交易数据划分为一类,再对应提取每个月的特征,并将提取的特征作为一组深度特征信息,也就是说深度模型的第一组输入为第一个月的深度特征信息,第二组输入为第二个月的深度特征信息...,以此类推,共计得到六组深度特征信息,作为一组训练数据的输入数据。
当然,对于每个用户来说,还可以获取更多的历史交易数据,例如,可以获取一个用户的连续两年的历史交易数据,基于这两年的历史交易数据可以构造四组训练数据中的输入部分,即每半年的历史交易数据可以根据上述方式获得一组训练数据中的输入部分。
在构建广度模型的输入数据时,可以根据广度模型的输入维度,确定出与输入维度相同的输入数据,广度模型的输入数据可以根据实际需要来对基础特征信息和历史交易数据的统计特征进行交叉组合,具体实施过程可以参考之前的描述,这里就不再赘述了。
在构建训练数据中的输入数据时,同时需要获取下个月的消费额度,作为联合模型的预期输出结果。仍以上面的通过用户前6个月的交易数据预测下个月的消费额度为例,当获取一个用户6个月的历史交易数据时,同时需要获取该用户的第7个月的真实消费额度,作为该组训练数据中的目标输出数据。
在确定好训练数据集合之后,基于训练数据集合对初始的深度和广度模型进行训练,模型的训练采用联合训练方法。在具体实施过程中,将一组训练数据的输入数据输入到初始的深度和广度联合模型中,根据模型的输出结果与该组训练数据的目标输出数据进行比较,得到模型的训练误差,将该误差同时反馈到初始的深度模型和初始的广度模型中进行模型参数的更新。然后将下一组训练数据的输入数据输入到参数更新后的深度和广度联合模型中,根据该联合模型的输出和该组训练数据中的目标输出数据,得到模型的训练误差,再将误差反馈到已经更新后的深度模型以及更新后的广度模型中,再次对各自的模型参数进行调整。重复上述步骤直到迭代次数达到预设次数,或者调整后的深度和广度联合模型的准确率满足预设条件时,完成模型的训练过程,得到最终的预设的深度和广度联合模型。
应理解的是,在训练过程中,深度模型和广度模型的模型参数调整方式可以根据实际需要来选择。例如,广度模型可以采用具有L1正则化的跟随正则化前导(Follow TheRegularized Leader,FTRL)算法来进行训练,深度模型可以采用Adagrad算法来进行训练。
需要说明的是,由于交易数据和时间以及产品之间具有一定的联系,例如春天买春装,冬天买冬装,通过深度模型对时间顺序上的深度特征信息进行处理,可以对长时间的数据进行拟合,分析出用户在时间上的消费波动规律。本说明书实施例中,对于深度和广度联合模型中的深度模型,可以选择以下模型中的一种:循环神经网络模型、长短时记忆网络模型以及GRU神经网络模型,这里不做限定。
另外,由于本说明书实施例中的深度和广度联合模型是用来预测交易特征的,由于交易特征在某些情况下与最近的交易数据关联较为紧密,可以将与预测时间最近的深度特征信息单独提取出来进行模型内部的计算。举例来讲,使用前六个月的深度特征信息来预测下个月的消费额度时,如使用某用户1月份到6月份的深度特征信息,预测该用户7月份的消费额度。如图3所示,深度模型的输入数据为六组深度特征信息,分别对应X1~X6,6组输入数据输入到深度模型中,可以经过预设处理,如归一化处理,得到X1'~X6',同时将与7月份距离最近的6月份对应的深度特征信息X6单独提取出来,与X1'~X6'进行后续处理,然后将处理得到的中间结果与广度模型的中间结果一同输入到深度模型和广度模型的组合层中做进一步处理。这样在一定程度上可以提高对交易特征的预测准确率。当然,也可以不将与预测时间最近的深度特征信息单独提取出来,这里不做限定。
综上所述,上述方案中,能够通过预设的深度和广度联合模型最大限度的分析时间顺序上的深度特征信息,以及挖掘基础特征信息与统计特征信息之间的关系,使得交易特征的预测更加合理,且准确率更高。
第二方面,基于同一发明构思,本说明书实施例提供一种交易特征预测装置,请参考图4,包括:
获取模块41,用于获取目标用户的历史交易数据;
第一数据确定模块42,用于对所述历史交易数据进行特征提取,获取N组深度特征信息,其中,每组深度特征信息对应一个交易时段,不同组的深度特征信息对应的交易时段不同,N为大于1的正整数;
第二数据确定模块43,用于根据所述历史交易数据以及所述目标用户的基础特征,确定M组广度特征信息,M为正整数;
预测模块44,用于将所述N组深度特征信息以及所述M组广度特征信息输入至预设的深度和广度联合模型中,获得所述预设的深度和广度联合模型的输出结果,作为所述目标用户在预测时间内的交易特征的预测结果。
在一种可选实现方式中,第一数据确定模块42,用于:
将所述历史交易数据按照交易时间信息划分成N组交易子数据;
针对所述N组交易子数据中的每组交易子数据,根据预设特征集合以及所述预设特征集合中每个特征的获取方式,对该组交易子数据进行特征提取,获得与所述预设特征集合中每个特征对应的特征信息,作为该组交易子数据对应的一组深度特征信息。
在一种可选实现方式中,所述基础特征包括以下特征中的一者或多者:性别特征、年龄特征以及地域特征。
在一种可选实现方式中,第二数据确定模块43,用于:
根据预设的统计特征获取方式,从所述历史交易数据中获取对应的目标统计特征信息;
将所述目标统计特征信息与所述基础特征对应的基础特征信息进行交叉组合处理,获得所述M组广度特征信息。
在一种可选实现方式中,在所述交易特征为消费额度时,所述预设的深度和广度联合模型通过以下方式获得:
构建初始的深度和广度联合模型,所述初始的深度和广度联合模型包括初始的深度模型、初始的广度模型、以及初始的深度模型和广度模型的组合层;
根据采集到的多个用户的历史交易数据,确定训练数据集合,所述训练数据集合中的每组训练数据均由一组输入数据和一组目标输出数据构成;其中,针对所述每组训练数据,所述输入数据为第一时段对应的同一用户的N组深度特征信息和M组广度特征信息,所述目标输出数据为该用户在第二时段内进行交易所产生的消费额度;
基于所述训练数据集合对所述初始的深度和广度联合模型进行训练,得到所述预设的深度和广度联合模型。
在一种可选实现方式中,所述预设的深度和广度联合模型中包含的深度模型为以下模型中的一种:循环神经网络模型、长短时记忆网络模型以及GRU神经网络模型。
关于上述装置,其中各个模块的具体功能已经在本发明实施例提供的交易特征预测方法的实施例中进行了详细描述,此处将不做详细阐述说明。
第三方面,基于与前述实施例中交易特征预测方法同样的发明构思,本发明还提供一种交易特征预测装置,如图5所示,包括存储器404、处理器402及存储在存储器404上并可在处理器402上运行的计算机程序,所述处理器402执行所述程序时实现前文所述交易特征预测方法的任一方法的步骤。
其中,在图5中,总线架构(用总线400来代表),总线400可以包括任意数量的互联的总线和桥,总线400将包括由处理器402代表的一个或多个处理器和存储器404代表的存储器的各种电路链接在一起。总线400还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口406在总线400和接收器401和发送器403之间提供接口。接收器401和发送器403可以是同一个元件,即收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器402负责管理总线400和通常的处理,而存储器404可以被用于存储处理器402在执行操作时所使用的数据。
第四方面,基于与前述实施例中基于交易特征预测方法的发明构思,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前文所述基于交易特征预测方法的任一方法的步骤。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。