一种基于模型隐式多目标融合的消息推送方法及装置与流程

文档序号:33712868发布日期:2023-04-01 00:41阅读:31来源:国知局
一种基于模型隐式多目标融合的消息推送方法及装置与流程

1.本发明涉及智能消息推送技术领域,具体而言,涉及一种基于模型隐式多目标融合的消息推送方法、装置、电子设备及计算机可读介质。


背景技术:

2.目前,由于大数据驱动,使得效果指标的量化评估成为了可能。为了实现好的消息推送效果,消息推送中会融合各个目标子流程的信息来确定推送策略。比如:期望消息推送既有高点击也存在高转化,这就需要综合各个目标子流程的业务目标进行组合优化。
3.现有技术中,先对单个目标子流程的业务目标构建模型,再对多个业务目标的预测结果做线性组合,通过组合结果对推送策略进行优化;或者,基于各个目标子流程数据通过多目标训练方法和模型进行预测和优化。而这些方法并未考虑到:1、部分业务指标对应样本量可能比较稀疏,联合训练时会存在样本不均衡问题;2、无法直接端到端(end2end)建模融合多个业务目标的score;3、无法将后置业务目标作为先验在建模中体现。因此会导致消息推送效果差,并且推送系统复杂、计算量大的技术问题。


技术实现要素:

4.有鉴于此,本发明主要目的在于提出一种基于模型隐式多目标融合的消息推送方法、装置、电子设备及计算机可读介质,以期至少部分地解决上述技术问题中的至少之一。
5.为了解决上述技术问题,本发明第一方面提出一种基于模型隐式多目标融合的消息推送方法,所述方法包括:
6.获取消息推送各个目标子流程的样本数据;各个目标子流程按照时间顺序排列,每个目标子流程为前面目标子流程的后置流程和/或为后面目标子流程的前置流程;
7.根据后置流程的样本数据训练第一模型,根据前置流程的样本数据训练第二模型,将第一模型的样本信息隐式融入第二模型中;所述前置流程的样本数据中包括:硬标签和第一模型输出的软标签;
8.将前置流程的预测数据输入所述第二模型中得到预测结果;
9.根据所述预测结果进行消息推送。
10.根据本发明一种优选实施方式,获取单个目标子流程的样本数据包括:
11.获取滑动窗口内的样本数据;
12.在滑动窗口内检测触发目标子流程事件的触发时刻;
13.根据目标子流程所处的位置及所述触发时刻为样本数据标注标签;
14.更新滑动窗口。
15.根据本发明一种优选实施方式,若目标子流程处于后置流程,根据所述触发时刻为样本数据标注标签;
16.若目标子流程处于前置流程,根据所述触发时刻为样本数据标注硬标签和软标签。
17.根据本发明一种优选实施方式,触发时刻对应样本数据的硬标签标注为1,软标签softlabel为:
[0018][0019]
其中:t为模型参数,x为样本数据对应的预测硬标签;
[0020]
非触发时刻对应样本数据的硬标签标注为0,软标签为0。
[0021]
根据本发明一种优选实施方式,消息推送的时间序列为:{t0,t1,

,tn-k,

,tn};若终端在ti时刻触发前置流程事件并在tn时刻触发后置流程事件,且ti~tn时刻共推送消息m次,则模型参数t=m。
[0022]
根据本发明一种优选实施方式,所述根据前置流程的样本数据训练第二模型包括:
[0023]
配置第一模型和第二模型的模型参数相同;
[0024]
将前置流程的样本数据输入第二模型得到预测软标签;
[0025]
根据标注的软标签和预测软标签计算第一损失函数;
[0026]
配置第二模型的模型参数为1;
[0027]
将前置流程的样本数据输入第二模型得到预测硬标签;
[0028]
根据标注的硬标签和预测硬标签计算第二损失函数;
[0029]
基于所述第一损失函数和第二损失函数更新第二模型的参数。
[0030]
为了解决上述技术问题,本发明第二方面提供一种基于模型隐式多目标融合的消息推送装置,所述装置包括:
[0031]
获取模块,用于获取消息推送各个目标子流程的样本数据;各个目标子流程按照时间顺序排列,每个目标子流程为前面目标子流程的后置流程和/或为后面目标子流程的前置流程;
[0032]
训练模块,用于根据后置流程的样本数据训练第一模型,根据前置流程的样本数据训练第二模型,将第一模型的样本信息隐式融入第二模型中;所述前置流程的样本数据中包括:硬标签和所述第一模型输出的软标签;
[0033]
预测模块,用于将前置流程的预测数据输入所述第二模型中得到预测结果;
[0034]
推送模块,用于根据所述预测结果进行消息推送。
[0035]
根据本发明一种优选实施方式,所述获取模块包括:
[0036]
子获取模块,用于获取滑动窗口内的样本数据;
[0037]
检测模块,用于在滑动窗口内检测触发目标子流程事件的触发时刻;
[0038]
标注模块,用于根据目标子流程所处的位置及所述触发时刻为样本数据标注标签;
[0039]
更新模块,用于更新滑动窗口。
[0040]
根据本发明一种优选实施方式,若目标子流程处于后置流程,所述标注模块根据所述触发时刻为样本数据标注标签;
[0041]
若目标子流程处于前置流程,所述标注模块根据所述触发时刻为样本数据标注硬标签和软标签。
[0042]
根据本发明一种优选实施方式,若所述目标子流程处于前置流程,所述标注模块
将触发时刻对应样本数据的硬标签标注为1,软标签softlabel为:
[0043][0044]
其中:t为模型参数,x为样本数据对应的预测硬标签;
[0045]
将非触发时刻对应样本数据的硬标签标注为0,软标签为0。
[0046]
根据本发明一种优选实施方式,消息推送的时间序列为:{t0,t1,

,tn-k,

,tn};若终端在ti时刻触发前置流程事件并在tn时刻触发后置流程事件,且ti~tn时刻共推送消息m次,则模型参数t=m。
[0047]
根据本发明一种优选实施方式,所述训练模块包括:
[0048]
第一配置模块,用于配置第一模型和第二模型的模型参数相同;
[0049]
第一输入模块,用于将前置流程的样本数据输入第二模型得到预测软标签;
[0050]
第一计算模块,用于根据标注的软标签和预测软标签计算第一损失函数;
[0051]
第二配置模块,用于配置第二模型的模型参数为1;
[0052]
第二输入模块,用于将前置流程的样本数据输入第二模型得到预测硬标签;
[0053]
第二计算模块,用于根据标注的硬标签和预测硬标签计算第二损失函数;
[0054]
更新模块,用于基于所述第一损失函数和第二损失函数更新第二模型的参数。
[0055]
为解决上述技术问题,本发明第三方面提供一种电子设备,包括:
[0056]
处理器;以及
[0057]
存储计算机可执行指令的存储器,所述计算机可执行指令在被执行时使所述处理器执行上述任一项所述的方法。
[0058]
为解决上述技术问题,本发明第四方面提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,当所述一个或多个程序被处理器执行时,实现上述方法。
[0059]
本发明获取消息推送各个目标子流程的样本数据;其中:每个目标子流程为前面目标子流程的后置流程和/或为后面目标子流程的前置流程;根据后置流程的样本数据训练第一模型,根据前置流程的样本数据训练第二模型;其中:前置流程的样本数据中包括:硬标签和所述第一模型输出的软标签,从而将第二模型中隐式融入了第一模型的样本信息,通过这种训练方式可以在一定程度上规避多个业务目标间样本不均衡的问题,同时实现end2end预测,降低推送系统的复杂性;并且训练得到第二模型的预测值直接反馈了多个业务目标权衡后的综合值,可以从多个业务目标指导消息推送,从而提高消息推送效果。
附图说明
[0060]
为了使本发明所解决的技术问题、采用的技术手段及取得的技术效果更加清楚,下面将参照附图详细描述本发明的具体实施例。但需声明的是,下面描述的附图仅仅是本发明的示例性实施例的附图,对于本领域的技术人员来讲,在不付出创造性劳动的前提下,可以根据这些附图获得其他实施例的附图。
[0061]
图1是本发明实施例一种基于模型隐式多目标融合的消息推送方法的流程示意图;
[0062]
图2是本发明实施例获取样本数据的示意图;
[0063]
图3是本发明实施例训练第二模型的示意图;
[0064]
图4是本发明实施例一种基于模型隐式多目标融合的消息推送过程的示意图;
[0065]
图5是本发明实施例一种基于模型隐式多目标融合的消息推送装置的结构框架示意图;
[0066]
图6是根据本发明的电子设备的示例性实施例的结构框图;
[0067]
图7是本发明一种计算机可读介质实施例的示意图。
具体实施方式
[0068]
在符合本发明的技术构思的前提下,在某个特定的实施例中描述的结构、性能、效果或者其他特征可以以任何合适的方式结合到一个或更多其他的实施例中。
[0069]
在对于具体实施例的介绍过程中,对结构、性能、效果或者其他特征的细节描述是为了使本领域的技术人员对实施例能够充分理解。但是,并不排除本领域技术人员可以在特定情况下,以不含有上述结构、性能、效果或者其他特征的技术方案来实施本发明。附图中的流程图仅是一种示例性的流程演示,不代表本发明的方案中必须包括流程图中的所有的内容、操作和步骤,也不代表必须按照图中所显示的的顺序执行。
[0070]
请参阅图1,图1是本发明提供的一种基于模型隐式多目标融合的消息推送方法,如图1所示,所述方法包括:
[0071]
s1、获取消息推送各个目标子流程的样本数据;
[0072]
产品在进行目标消息推送时会经历多个目标子流程,比如:曝光、点击、收藏、付款等,且各个目标子流程之间存在时序关系,即点击目标子流程必然发生在曝光目标子流程后,以此类推。因此,本实施例中,各个目标子流程按照时间顺序排列,每个目标子流程为前面一个或多个目标子流程的后置流程,同时也是后面一个或多个目标子流程的前置流程;比如:曝光为点击、收藏等的前置流程,点击为曝光的后置流程,收藏为曝光、点击的后置流程,等等。
[0073]
本实施例中,每个目标子流程所在时间段内所采集的样本数据为该目标子流程的样本数据;示例性的,可以通过窗口滑动的方式获取各个目标子流程的样本数据。比如:可以预先设定滑动窗口[t1,t2],在滑动窗口内分别获取各个目标子流程的样本数据,然后再滑动所述滑动窗口至下一位置,如此循环,直至滑动窗口滑动到终止时间为止。其中:在每个滑动窗口内获取单个目标子流程的样本数据包括:
[0074]
s11、获取滑动窗口内的样本数据;
[0075]
其中:所述样本数据包括:滑动窗口内接收到推送消息的设备数据;比如:在某网站推送消息,则样本数据包括在滑动窗口内登陆该网站的设备数据。设备数据可以是使用该设备的用户在互联网服务平台公开的数据。该数据可以包括一项或多项:用户名称、用户年龄、用户职业、用户收入、用户籍贯、用户在互联网平台上的授权信息、用户申请产品行为信息、用户安全可信度等公开信息,但不限于此,还可以仅通过无法识别用户身份的用户信息进行本方案的数据处理,比如,年龄、学历、户籍等,以实现对于保护用户隐私;可以采用对用户信息中可以识别出用户身份的信息删除或者匿名化处理的方式来实现对于用户隐私的保护,匿名化处理可以是通过加密手段对数据进行处理。
[0076]
s12、在滑动窗口内检测触发目标子流程事件的触发时刻;
[0077]
本实施例中,每个目标子流程对应一个目标子流程事件,比如:曝光对应展示事件,点击对应点击事件;等等。设备若触发该目标子流程事件表明设备接收到消息在该目标子流程的推送,该目标子流程的推送目标已完成;反之,则表明设备未接收到消息在该目标子流程的推送,该目标子流程的推送目标未完成。示例性的,可以通过对消息推送日志的解析来检测触发目标子流程事件的触发时刻。
[0078]
s13、根据目标子流程所处的位置及所述触发时刻为样本数据标注标签;
[0079]
所述目标子流程所处的位置指在模型训练时目标子流程为前置流程还是后置流程。若目标子流程处于后置流程,后置流程的样本数据用于训练第一模型,可以直接根据所述触发时刻为样本数据标注标签;比如:将触发时刻对应样本数据的标签标注为1,作为正样本,将非触发时刻对应样本数据的标签标注为0,作为负样本。
[0080]
若所述目标子流程处于前置流程,前置流程的样本数据用于训练第二模型,因此,前置流程的样本数据既包含样本数据的真实标签(即:硬标签),也包含第一模型输出的概率分布(即软标签);可以根据所述触发时刻为样本数据标注硬标签和软标签。比如:触发时刻对应样本数据的硬标签标注为1,作为正样本;非触发时刻对应样本数据的硬标签标注为0,作为负样本;将样本数据输入训练好的第一模型后得到各个样本数据对应的软标签。或者:在一种简化方式中,根据业务特点确定软标签,比如:触发时刻对应样本数据的硬标签标注为1,软标签softlabel为:
[0081][0082]
其中:t为模型参数,具体t为模型蒸馏的参数,x为样本数据对应的预测硬标签;
[0083]
非触发时刻对应样本数据的硬标签标注为0,软标签为0。
[0084]
本实施例中,消息推送的时间序列为:{t0,t1,

,tn-k,

,tn};若终端在ti时刻触发前置流程事件并在tn时刻触发后置流程事件,且ti~tn时刻共推送消息m次,则模型蒸馏参数t=m。
[0085]
s14、更新滑动窗口。
[0086]
比如:滑动所述滑动窗口至下一位置。
[0087]
以点击作为前置流程为例,图2所示:若在滑动窗口若检测到设备i点击时刻为:ti+1,ti+k,ti+s,且在最后一次点击后推送2次消息(如图2中曝光两次),则m=2,三个点击时刻对应三条样本正样本,对应硬标签为1,软标签为:其他时刻对应负样本;再通过窗口滑动方式获取其他样本。
[0088]
s2、根据后置流程的样本数据训练第一模型,根据前置流程的样本数据训练第二模型,将第一模型的样本信息隐式融入第二模型中;
[0089]
本实施例中,前置流程和后置流程根据消息推送过程中的优化指标来确定,比如:优化点击时也希望同步优化付款,则点击为前置流程、付款为后置流程。当优化指标大于两个时,将消息推送时排在最后的目标子流程作为后置流程,其他流程作为前置流程。比如:优化点击时也希望同步优化收藏和付款,则点击和收藏为前置流程、付款为后置流程。
[0090]
示例性的,如图3,将后置流程的样本数据输入第一模型得到训练好的第一模型。
训练好第一模型后,再将前置流程的样本数据输入第二模型进行训练。由于前置流程的样本数据中包括了前置流程的样本数据对应的硬标签和第一模型预测前置流程的样本数据输出的软标签,从而将第一模型的样本信息隐式融入第二模型中。其中:所述根据前置流程的样本数据训练第二模型包括:
[0091]
s21、配置第一模型和第二模型的模型参数相同;
[0092]
本实施例中,第一模型和第二模型的模型参数t=m。第一模型可以采用k层神经网络模型,第二模型可以采用l层神经网络模型。
[0093]
s22、将前置流程的样本数据输入第二模型得到预测软标签;
[0094]
s23、根据标注的软标签和预测软标签计算第一损失函数f1;
[0095]
s24、配置第二模型的模型参数为1;
[0096]
s25、将前置流程的样本数据输入第二模型得到预测硬标签;
[0097]
s26、根据标注的硬标签和预测硬标签计算第二损失函数f2;
[0098]
s27、基于所述第一损失函数和第二损失函数更新第二模型的参数。
[0099]
以点击和付款为例,则本步骤通过付款的样本数据训练第一模型,通过点击的样本数据训练第二模型,通过这种训练方式使第二模型中隐式融入了第一模型的付款信息,可以一定程度上规避多个目标间样本不均衡的问题,同时实现end2end,同时训练后的第二模型的预测值直接反馈了多个业务目标权衡后的综合值,使消息推送效率更高。
[0100]
s3、将前置流程的预测数据输入所述第二模型中得到预测结果;
[0101]
其中:前置流程可能是一个,也可能是多个。示例性的,以rta(realtime api)广告推送模式为例,如图4,当接收到rta请求后,采集各个前置流程的历史样本数据作为预测数据输入所述第二模型中得到预测结果。
[0102]
s4、根据所述预测结果进行消息推送。
[0103]
比如:根据预测结果调整消息推送时间、推送方式、推送价格等等,生成新的消息策略,并基于新的消息策略推送消息。
[0104]
本公开实施例中首次提出在消息推送(可以以广告为例)中针对曝光次数融合模型蒸馏技术来解决端到端预测问题,将获客和投资回报率的的多目标预测建模转化为单模型的独立预测问题,即单模型预测结果兼顾此两类目标,极大地降低了模型的存储规模和复杂性。
[0105]
图5是本发明一种基于模型隐式多目标融合的消息推送装置,如图5所示,所述装置包括:
[0106]
获取模块51,用于获取消息推送各个目标子流程的样本数据;各个目标子流程按照时间顺序排列,每个目标子流程为前面目标子流程的后置流程和/或为后面目标子流程的前置流程;
[0107]
训练模块52,用于根据后置流程的样本数据训练第一模型,根据前置流程的样本数据训练第二模型,将第一模型的样本信息隐式融入第二模型中;所述前置流程的样本数据中包括:硬标签和所述第一模型输出的软标签;
[0108]
预测模块53,用于将前置流程的预测数据输入所述第二模型中得到预测结果;
[0109]
推送模块54,用于根据所述预测结果进行消息推送。
[0110]
在一种实施方式中,所述获取模块51包括:
[0111]
子获取模块,用于获取滑动窗口内的样本数据;
[0112]
检测模块,用于在滑动窗口内检测触发目标子流程事件的触发时刻;
[0113]
标注模块,用于根据目标子流程所处的位置及所述触发时刻为样本数据标注标签;
[0114]
更新模块,用于更新滑动窗口。
[0115]
可选的,若目标子流程处于后置流程,所述标注模块根据所述触发时刻为样本数据标注标签;
[0116]
若目标子流程处于前置流程,所述标注模块根据所述触发时刻为样本数据标注硬标签和软标签。具体的,所述标注模块将触发时刻对应样本数据的硬标签标注为1,软标签softlabel为:
[0117][0118]
其中:t为模型的参数,x为样本数据对应的预测硬标签;
[0119]
将非触发时刻对应样本数据的硬标签标注为0,软标签为0。
[0120]
根据权利要求10所述的装置,其特征在于,消息推送的时间序列为:{t0,t1,

,tn-k,

,tn};若终端在ti时刻触发前置流程事件并在tn时刻触发后置流程事件,且ti~tn时刻共推送消息m次,则模型参数t=m。
[0121]
所述训练模块52包括:
[0122]
第一配置模块,用于配置第一模型和第二模型的模型参数相同;
[0123]
第一输入模块,用于将前置流程的样本数据输入第二模型得到预测软标签;
[0124]
第一计算模块,用于根据标注的软标签和预测软标签计算第一损失函数;
[0125]
第二配置模块,用于配置第二模型的模型参数为1;
[0126]
第二输入模块,用于将前置流程的样本数据输入第二模型得到预测硬标签;
[0127]
第二计算模块,用于根据标注的硬标签和预测硬标签计算第二损失函数;
[0128]
更新模块,用于基于所述第一损失函数和第二损失函数更新第二模型的参数。
[0129]
本领域技术人员可以理解,上述装置实施例中的各模块可以按照描述分布于装置中,也可以进行相应变化,分布于不同于上述实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
[0130]
下面描述本发明的电子设备实施例,该电子设备可以视为对于上述本发明的方法和装置实施例的实体形式的实施方式。对于本发明电子设备实施例中描述的细节,应视为对于上述方法或装置实施例的补充;对于在本发明电子设备实施例中未披露的细节,可以参照上述方法或装置实施例来实现。
[0131]
图6是根据本发明的一种电子设备的示例性实施例的结构框图。图6显示的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0132]
如图6所示,该示例性实施例的电子设备600以通用数据处理设备的形式表现。电子设备600的组件可以包括但不限于:至少一个处理单元610、至少一个存储单元620、连接不同电子设备组件(包括存储单元620和处理单元610)的总线630、显示单元640等。
[0133]
其中,所述存储单元620存储有计算机可读程序,其可以是源程序或都只读程序的
代码。所述程序可以被处理单元610执行,使得所述处理单元610执行本发明各种实施方式的步骤。例如,所述处理单元610可以执行如图1所示的步骤。
[0134]
所述存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(rom)6203。所述存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作电子设备、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
[0135]
总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
[0136]
电子设备600也可以与一个或多个外部设备100(例如键盘、显示器、网络设备、蓝牙设备等)通信,使得用户能经由这些外部设备100与该电子设备600交互,和/或使得该电子设备600能与一个或多个其它数据处理设备(例如路由器、调制解调器等等)进行通信。这种通信可以通过输入/输出(i/o)接口650进行,还可以通过网络适配器660与一个或者多个进行。网络适配器660可以通过总线630与电子设备600的其它模块通信。应当明白,尽管图6中未示出,电子设备600中可使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid电子设备、磁带驱动器以及数据备份存储电子设备等。
[0137]
图7是本发明的一个计算机可读介质实施例的示意图。如图7所示,所述计算机程序可以存储于一个或多个计算机可读介质上。计算机可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的电子设备、装置或器件,或者任意以上的组合。当所述计算机程序被一个或多个数据处理设备执行时,使得该计算机可读介质能够实现如图1的方法。
[0138]
通过以上的实施方式的描述,本领域的技术人员易于理解,本发明描述的示例性实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个计算机可读的存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台数据处理设备(可以是个人计算机、服务器、或者网络设备等)执行根据本发明的上述方法。
[0139]
综上所述,本发明可以执行计算机程序的方法、装置、电子设备或计算机可读介质来实现。可以在实践中使用微处理器或者数字信号处理器(dsp)等通用数据处理设备来实现本发明的一些或者全部功能。
[0140]
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,本发明不与任何特定计算机、虚拟装置或者电子设备固有相关,各种通用装置也可以实现本发明。以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1