发明内容
本发明的实施例提供一种业务模型的自动调整方法及装置,能够节省技术人员的时间和精力。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明的实施例提供的方法,包括:根据与业务系统中所设定的目标相关联的变量类型,建立业务模型,并记录各类型的变量的处理方式;
从与业务模型相关的数据源提取变量,根据所记录的各类型的变量的处理方式,将从所述数据源提取的变量导入所述业务模型运行,并获取所述业务模型运行的监控指标,所述监控指标至少包括:实际销售转化率、模型误差或模型稳定性指数(PSI);
当根据所述监控指标判定需要触发模型自动更新时,进行数据抽样并得到样本;
根据所得到的样本确定损失函数,并根据所确定的损失函数更新所述业务模型中所用的参数。
结合第一方面,在第一方面的第一种可能的实现方式中,所述进行数据抽样得到的样本,包括:
采用不放回抽取的方式,从所述业务模型的运行结果中随机抽取指定数量的样本。
结合第一方面,在第一方面的第二种可能的实现方式中,所述进行数据抽样得到的样本,包括:
将所述业务模型的运行结果等分成n个部分,并从每个部分中随机抽取一个样本;
将从各个部分中随机抽取得到的样本组成所述进行数据抽样得到的样本。
结合第一方面,在第一方面的第三种可能的实现方式中,所述进行数据抽样得到的样本,包括:
所述业务模型的运行结果划分为k个群组,其中,每个群组包含m个样本;
从k个群组中随机抽取n个群组,将被抽到的群组的全部样本组成所述进行数据抽样得到的样本。
结合第一方面,在第一方面的第四种可能的实现方式中,所述进行数据抽样得到的样本,包括:
从所设定的目标相关联的变量类型中,确定预设的变量类型;
依据所述预设的变量类型,将所述业务模型的运行结果划分成指定数量的层级,并从每一层内随机抽取样本,组成所述进行数据抽样得到的样本。
结合第一方面,在第一方面的第五种可能的实现方式中,所述根据所得到的样本确定损失函数,并根据所确定的损失函数更新所述业务模型中所用的参数,包括:
所述根据所得到的样本得到损失函数的参数梯度的负方向,所述损失函数为最小平方误差MSE损失函数;
根据所述损失函数的参数梯度的负方向,扫描全部样本并更新所述业务模型中所用的参数中所用的参数。
结合第一方面的第五种可能的实现方式,在第六种可能的实现方式中,包括:
根据所述损失函数的参数梯度的负方向,随机选取一批样本并更新所述业务模型中所用的参数中所用的参数。
结合第一方面的第五种可能的实现方式,在第七种可能的实现方式中,包括:
根据所述损失函数迭代指定次数,得到收敛后的参数值,作为更新后的所述业务模型中所用的参数中所用的参数。
第二方面,本发明的实施例提供的装置,包括:包括:
模型管理单元,用于根据与业务系统中所设定的目标相关联的变量类型,建立业务模型,并记录各类型的变量的处理方式;
提取单元,用于从与业务模型相关的数据源提取变量,根据所记录的各类型的变量的处理方式,将从所述数据源提取的变量导入所述业务模型运行,并获取所述业务模型运行的监控指标,所述监控指标至少包括:实际销售转化率、模型误差或模型稳定性指数(PSI);
取样单元,用于当根据所述监控指标判定需要触发模型自动更新时,进行数据抽样并得到样本;
更新单元,用于根据所得到的样本确定损失函数,并根据所确定的损失函数更新所述业务模型中所用的参数。
结合第二方面,在第二方面的第一种可能的实现方式中,所述取样单元,具体用于采用不放回抽取的方式,从所述业务模型的运行结果中随机抽取指定数量的样本;或者,将所述业务模型的运行结果等分成n个部分,并从每个部分中随机抽取一个样本;并将从各个部分中随机抽取得到的样本组成所述进行数据抽样得到的样本;
或者,将所述业务模型的运行结果划分为k个群组,其中,每个群组包含m个样本;并从k个群组中随机抽取n个群组,将被抽到的群组的全部样本组成所述进行数据抽样得到的样本;
或者,从所设定的目标相关联的变量类型中,确定预设的变量类型;并依据所述预设的变量类型,将所述业务模型的运行结果划分成指定数量的层级,并从每一层内随机抽取样本,组成所述进行数据抽样得到的样本。
本发明实施例提供的业务模型的自动调整方法及装置,通过对业务系统运行时的各个指标奖项监控,及时识别需要更新的业务模型,并自动进行新样本抽取,模型参数更新等过程。从而将业务系统运行中的最新的特性数据反馈给模型,并自动完成模型的自动调整,提高业务模型的维护效率。尤其是当模型较多,更新较频繁时,节省技术人员的时间和精力。
具体实施方式
为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。下文中将详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
本实施例所提及的方法流程,具体可以在一种如图1所示架构的系统中执行,其中包括:业务系统、分析服务器、数据库系统等。
业务系统具体可以是用于在线交易业务、金融业务或者物流业务等业务系统,比如:可以包括但不限于:在线购物平台、商品的价格管理系统、寻源系统、库存系统、促销系统、购物车管理系统、会员管理系统、自营店系统和订单系统等。
分析服务器具体可以是单独作成的服务器设备,比如:机架式、刀片、塔式或者机柜式的服务器设备,也可以采用工作站、大型计算机等具备较强计算能力硬件设备。分析服务器也可以是由多个服务器设备组成的服务器集群。分析服务器可以设置在室内空间中,比如:用于监控业务系统运行的监控中心,或者可以与业务系统集成在同一套硬件设备中,比如同一套服务器组网同时承担上述业务系统的功能和分析服务器的功能。分析服务器用于执行本实施例所提供的方法流程。
数据库系统具体可以是单独作成的,用于数据的管理、存储的服务器设备,也可以是由多个服务器设备组成的服务器集群。在数据库系统的硬件设备上运行数据库,用于管理并存储分析服务器获取并发送的视频数据、行为数据等数据。具体可以采用常用的网状数据库(Network Database)、关系数据库(Relational Database)、树状数据库(Hierarchical Database)、面向对象数据库(Object-oriented Database)等数据库架构。用于记录访问业务系统的用户的行为数据、用户的访问数据、历史数据等业务数据。
本发明实施例提供一种业务模型的自动调整方法,如图2所示,包括:
S1、根据与业务系统中所设定的目标相关联的变量类型,建立业务模型,并记录各类型的变量的处理方式。
其中,业务模型具体可以是用于精准营销的业务系统中所采用的营销模型。
数据源具体指的是用于存储各个业务系统的用户的行为数据、用户的访问数据、历史数据等业务数据的存储设备,比如如图1所示的数据库系统。也可以是集成在各个业务系统的硬件设备中的存储器,比如业务系统的服务器中的磁盘、磁盘阵列、闪存等。
可以根据由技术人员所设定的与业务系统中目标相关联的变量类型,从业务系统运行时记录的历史数据、用户的访问数据、行为数据等数据中符合这些变量类型的数据,作为与业务目标有关联的特征数据,并根据这些特征数据采用机器学习算法建立初步的业务模型。并记录:从业务系统中筛选得到数据时的筛选条件,对于筛选得到的各个特征数据的处理方式,和所建立的初步的业务模型的权值矩阵W等。
S2、从与业务模型相关的数据源提取变量,根据所记录的各类型的变量的处理方式,将从所述数据源提取的变量导入所述业务模型运行,并获取所述业务模型运行的监控指标。
其中,所述监控指标至少包括:实际销售转化率、模型误差或模型稳定性指数(PSI)。在本实施例中,监控指标可以根据具体的业务系统的类型设定,并不限定与上述一种或几种的组合。
具体的,在将所述业务模型部署至业务系统中或者对应于该业务系统的测试平台上后,可以通过Hive平台,关联与模型相关的数据源,采用建模时所记录的各类型的变量的处理方式对各个变量进行加工,所述进行加工包括:变量的异常值处理,缺失值处理等。并可以通过Python语言,定期将从所述数据源提取的变量导入所述业务模型,并运行部署至业务系统中或者对应于该业务系统的测试平台的业务模型(比如通过测试工具的模型程序运行业务模型),并对业务模型的运行结果进行监控得到监控指标。
S3、当根据所述监控指标判定需要触发模型自动更新时,进行数据抽样并得到样本。
其中,当所设定的对应一个业务系统的核心的监控指标出现预警时,分析服务器将会触发模型自动调整算法。并在进行模型自动调整之前进行数据抽样(所抽样的数据可以来源自各个业务系统在运行时直接记录下的业务数据,也可称为原始数据),以便于选取具有代表性的样本是后面进行模型调整优劣的关键。
在本实施例中,所述进行数据抽样得到的样本的具体方式,可以包括:采用不放回抽取的方式,从所述业务模型的运行结果中随机抽取指定数量的样本。例如:根据研究目的选定总体,通过随机原则采用不放回抽取方法,从总体中随机抽取一定数量的样本。由于对于抽取误差的计算也比较方便,对于中小型促销活动或者定时优惠券发放等规模较小但是刷新频率较高的业务系统,可以采用该抽样方式,以便于快速计算样本的抽取误差。
或者,所述进行数据抽样得到的样本,包括:将所述业务模型的运行结果等分成n个部分,并从每个部分中随机抽取一个样本。并将从各个部分中随机抽取得到的样本组成所述进行数据抽样得到的样本。例如:先将总体(所述业务模型的运行结果的总和)等分成n个部分,然后再从每个部分随机抽取一个样本,将抽取的结果组成最后的抽取样本。这种方法简单,可以得到一个按比例分配的样本,抽取误差较小,适用于数据分布有周期趋势或者单调趋势以外的业务系统。
或者,所述进行数据抽样得到的样本,包括:所述业务模型的运行结果划分为k个群组,其中,每个群组包含m个样本。并从k个群组中随机抽取n个群组,将被抽到的群组的全部样本组成所述进行数据抽样得到的样本。例如:先将总体划分为k个群组,每个群组包含m个样本,再随机抽取n个群,被抽到的群的全部样本组成最后的抽取样本。适用于存在较大规模的现场调查的业务系统中。
或者,所述进行数据抽样得到的样本,包括:从所设定的目标相关联的变量类型中,确定预设的变量类型。并依据所述预设的变量类型,将所述业务模型的运行结果划分成指定数量的层级,并从每一层内随机抽取样本,组成所述进行数据抽样得到的样本。例如:先将总体按某种特征分成若干层,再从每一层内随机抽取一定数量的样本。从而控制了抽取误差,在抽取时应尽量使层内差别小而层间差别大。可以应用于存在权限划分规则或者层级划分规则的业务系统,比如:存在等级划分的会员系统。
S4、根据所得到的样本确定损失函数,并根据所确定的损失函数更新所述业务模型中所用的参数。
其中,若构建模型的损失函数采用如平方误差等最小平方误差MSE损失函数,则分析服务器可以在进行模型的调整过程中,模型参数可以通过其损失函数关于参数梯度的负方向进行更新。在模型经过上述过程的调整后,分析服务器再次计算各项核心监控指标,并检测本次更新是否满足实际需求。如果已经达到要求,分析服务器将会将本次更新的过程记录到日志中,并依此更新业务系统中所运行的业务模型的各个参数的权值矩阵。如果仍未达到要求,系统将重复上一步骤,直到满足需求或者达到一定次数为止。
由于在实际工作当中,模型的精度往往与业务定义紧密相关,由于各业务线的目标不同,客户群不同,具体的业务模式也不同。因此,往往会针对各业务线建立有针对性的模型。随着业务线的增多,模型的数量也在增长。而针对目前大量精准营销活动需要模型的支持,且模型的调整将会成为常态的情况下,尤其是当模型的数量越来越多,模型更新的频率越来越高时,为了保证模型的精度,需要频繁地对各类精准营销活动的模型进行重新训练,就算是在模型特征没有发生较大调整的情况下,海量的模型维护工作也会耗费技术人员大量的时间和精力。
而在本实施例中,通过对业务系统运行时的各个指标奖项监控,及时识别需要更新的业务模型,并自动进行新样本抽取,模型参数更新等过程。从而将业务系统运行中的最新的特性数据反馈给模型,并自动完成模型的自动调整,提高业务模型的维护效率,例如:如图3所示的,当初始的业务模型上线后,通过定期对模型进行评价,当发现模型性能不满足要求时,将会自动进行模型的更新。模型的更新依赖自身机制,无需人工介入。从而实现模型更新机制的快速化,流程化,自动化,能够实时对线上模型进行自动调整,以便模型能快速适应新客户群的特征,尤其是当模型较多,更新较频繁时,节省技术人员的时间和精力,从而降低人力成本,同时也将提高模型精度及营销活动的效果。
在本实施例中,所述根据所得到的样本确定损失函数,并根据所确定的损失函数更新所述业务模型中所用的参数,包括:
所述根据所得到的样本得到损失函数的参数梯度的负方向,所述损失函数为最小平方误差MSE损失函数。
本实施例中采用的梯度下降法可以有两种方式:随机梯度下降法和批量梯度下降法,批量梯度下降法是扫描全部样本后再进行参数更新,而随机梯度下降法则随机选取一批样本进行参数的更新,两种梯度下降法的下降路径可以如图4所示。具体包括:根据所述损失函数的参数梯度的负方向,扫描全部样本并更新所述业务模型中所用的参数中所用的参数。或者,根据所述损失函数的参数梯度的负方向,随机选取一批样本并更新所述业务模型中所用的参数中所用的参数。
可选的,在本实施例中,对于采用小批量样进行模型更新的场景中,也可以采用mini-batch的方式,包括:
具体的,本实施例了中所采用的损失函数可以表示为
其中,θ表示特征,x表示特征矩阵,y表示标签,h
θ表示激活函数,θ
j表示第j个特征参数,α表示梯度步长,m表示样本数量,j表示需要更新的第j个特征参数,通过对该公式进行一定次数的迭代,参数将逐渐收敛。并根据所述损失函数迭代指定次数,得到收敛后的参数值,作为更新后的所述业务模型中所用的参数中所用的参数。其中,梯度步长的大小决定了梯度下降的速度,越大的步长则学习速度也越快,但同时振荡往返也会加剧,有时反而使得速度变慢,同时若梯度步长太小,也会使得速度变慢,而容易陷入局部极小。举例来说,在本实施例中,参数更新公式可以表示为:
其中,θ
i表示第i个特征参数,J(θ)表示求偏导数,
表示求导数。
在本实施例中,通过对业务系统运行时的各个指标奖项监控,及时识别需要更新的业务模型,并自动进行新样本抽取,模型参数更新等过程。从而将业务系统运行中的最新的特性数据反馈给模型,并自动完成模型的自动调整,提高业务模型的维护效率。从而实现模型更新机制的快速化,流程化,自动化,能够实时对线上模型进行自动调整,以便模型能快速适应新客户群的特征,尤其是当模型较多,更新较频繁时,节省技术人员的时间和精力,从而降低人力成本,同时也将提高模型精度及营销活动的效果。
本发明实施例还提供一种业务模型的自动调整装置,可以运行在如图1所示的分析服务器上,该自动调整装置如图5所示,包括:
模型管理单元,用于根据与业务系统中所设定的目标相关联的变量类型,建立业务模型,并记录各类型的变量的处理方式。
提取单元,用于从与业务模型相关的数据源提取变量,根据所记录的各类型的变量的处理方式,将从所述数据源提取的变量导入所述业务模型运行,并获取所述业务模型运行的监控指标,所述监控指标至少包括:实际销售转化率、模型误差或模型稳定性指数(PSI)。
取样单元,用于当根据所述监控指标判定需要触发模型自动更新时,进行数据抽样并得到样本。
更新单元,用于根据所得到的样本确定损失函数,并根据所确定的损失函数更新所述业务模型中所用的参数。
其中,所述取样单元,具体用于采用不放回抽取的方式,从所述业务模型的运行结果中随机抽取指定数量的样本。或者,将所述业务模型的运行结果等分成n个部分,并从每个部分中随机抽取一个样本。并将从各个部分中随机抽取得到的样本组成所述进行数据抽样得到的样本。
或者,将所述业务模型的运行结果划分为k个群组,其中,每个群组包含m个样本。并从k个群组中随机抽取n个群组,将被抽到的群组的全部样本组成所述进行数据抽样得到的样本。
或者,从所设定的目标相关联的变量类型中,确定预设的变量类型。并依据所述预设的变量类型,将所述业务模型的运行结果划分成指定数量的层级,并从每一层内随机抽取样本,组成所述进行数据抽样得到的样本。
在本实施例中,通过对业务系统运行时的各个指标奖项监控,及时识别需要更新的业务模型,并自动进行新样本抽取,模型参数更新等过程。从而将业务系统运行中的最新的特性数据反馈给模型,并自动完成模型的自动调整,提高业务模型的维护效率。从而实现模型更新机制的快速化,流程化,自动化,能够实时对线上模型进行自动调整,以便模型能快速适应新客户群的特征,尤其是当模型较多,更新较频繁时,节省技术人员的时间和精力,从而降低人力成本,同时也将提高模型精度及营销活动的效果。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。