发明内容
鉴于此,本申请提供一种消息渠道归因方法、装置及系统,可以准确对消息渠道进行准确归因。
为了实现上述目的,本发明提供了下述技术特征:
一种消息渠道归因方法,包括:
基于多个消息渠道的触达数据集及转化数据集,构建多个用户端一一对应的多个归因数据集合;其中,一个用户端的归因数据集合包括所述多个消息渠道中该用户端的多个触达数据及多个转化数据;
基于所述多个归因数据集合,构建所述多个用户端一一对应的多个全生命周期数据;其中,一个用户端的全生命周期数据包括按时间顺序排列的多个状态及多个动作,所述多个状态包括初始的未转化状态、与所述多个触达数据一一对应的多个渠道状态,与所述多个转化数据一一对应的多个转化状态,所述多个动作包括与所述多个触达数据一一对应的多个渠道动作;
基于所述多个全生命周期数据构建奖励矩阵;其中,所述奖励矩阵包括任一状态下执行任一动作带来的当前转化率;
重复执行基于所述奖励矩阵构建转化率矩阵,直到满足结束条件;其中,所述转化率矩阵包括任一状态下执行任一动作所带来的综合转化率,所述综合转化概率为当前转化率与延迟转化率的和值,所述延迟转化率为任一状态下执行任一动作对未来转化的贡献率;
针对一用户端对应的一个全生命周期数据:从所述转化率矩阵中查询所述全生命周期数据中多次渠道状态一一对应的多个综合转化率,按照渠道状态对所述多个综合转化率执行分类统计,将统计转化率最大的渠道状态确定该用户端的归因渠道。
可选的,所述基于多个消息渠道的触达数据集及转化数据集,构建多个用户端一一对应的多个归因数据集合包括:
获取相同时间段内多个消息渠道的触达数据集和转化数据集;其中,所述触达数据集中每个触达数据包括用户端标识、触达时间及消息渠道标识,所述转化数据集中每个转化数据包括用户端标识、转化时间及消息渠道标识;
对所述多个消息渠道的触达数据集和转化数据集执行合并操作,获得所述多个消息渠道的数据并集;
按用户端标识对所述数据并集执行分组操作,获得多个用户端一一对应的多个归因数据集合。
可选的,所述基于所述多个归因数据集合,构建所述多个用户端一一对应的多个全生命周期数据包括:
设置初始的未转化状态、最终的转化状态、与所述多个消息渠道一一对应的多个渠道状态以及与所述多个消息渠道一一对应的多个动作;
针对每个归因数据集合执行下述步骤:
构建时间轴并在时间轴初始位置添加未转化状态;
针对归因数据集合中各个触达数据:在所述时间轴上、所述触达数据中触达时间位置处,添加消息渠道标识对应的渠道状态以及渠道动作;
针对归因数据集合中各个转化数据:在所述时间轴上、所述转化数据中转化时间位置处添加转化状态。
可选的,还包括:
判断所述时间轴上相邻两个状态之间的时间间隔是否大于预设时间间隔;
若所述时间轴上相邻两个状态之间的时间间隔大于预设时间间隔,则在所述相邻两个状态之间添加自然转化状态及自然转化动作。
可选的,所述基于所述多个全生命周期数据构建奖励矩阵,包括:
构建包含初始值奖励矩阵;其中,所述奖励矩阵的一行代表一个状态,一列代表一个动作;
针对所述奖励矩阵中的一个状态和一个动作:
从所述多个全生命周期数据中确定包含该状态和该动作的触达用户总数量,以及,在该状态和该动作之后转化用户总数量;将转化用户总数量与所述触达用户总数量的比值确定为该状态和该动作下的当前转化率,利用所述当前转化率替换所述奖励矩阵中的初始值。
可选的,重复执行基于所述奖励矩阵构建转化率矩阵,直到满足结束条件,包括:
构建包含初始值且与所述奖励矩阵相同大小的转化率矩阵;其中,所述转化率矩阵的一行代表一个状态,一列代表一个动作;
基于所述奖励矩阵构建转化率矩阵;其中所述基于所述奖励矩阵构建转化率矩阵包括:针对所述转化率矩阵中的一个状态s和一个动作a,利用公式Q(s,a)=R(s,a)+γmaxa′Q′(a,a′)计算本次迭代的综合转化率,利用本次迭代的综合转化率替换上次迭代的综合转化率;
判断是否达到迭代结束条件;
若否则进入所述基于所述奖励矩阵构建转化率矩阵的步骤;
若是则获得最终的转化率矩阵;
其中,Q(s,a)为本次迭代计算得到的综合转化率,R(s,a)从所述励矩阵中确定的当前转化率,γmaxa′Q′(a,a′)表示延迟转化率。
可选的,还包括:
对各个用户端的归因渠道执行分类汇总,确定最优消息渠道。
可选的,还包括:
利用最优消息渠道向用户端推送消息。
可选的,还包括:
利用各个用户端的归因渠道向用户端推送消息。
一种消息渠道归因装置,包括:
第一构建单元,用于基于多个消息渠道的触达数据集及转化数据集,构建多个用户端一一对应的多个归因数据集合;其中,一个用户端的归因数据集合包括所述多个消息渠道中该用户端的多个触达数据及多个转化数据;
第二构建单元,用于基于所述多个归因数据集合,构建所述多个用户端一一对应的多个全生命周期数据;其中,一个用户端的全生命周期数据包括按时间顺序排列的多个状态及多个动作,所述多个状态包括初始的未转化状态、与所述多个触达数据一一对应的多个渠道状态,与所述多个转化数据一一对应的多个转化状态,所述多个动作包括与所述多个触达数据一一对应的多个渠道动作;
第三构建单元,用于基于所述多个全生命周期数据构建奖励矩阵;其中,所述奖励矩阵包括任一状态下执行任一动作带来的当前转化率;
第四构建单元,用于重复执行基于所述奖励矩阵构建转化率矩阵,直到满足结束条件;其中,所述转化率矩阵包括任一状态下执行任一动作所带来的综合转化率,所述综合转化概率为当前转化率与延迟转化率的和值,所述延迟转化率为任一状态下执行任一动作对未来转化的贡献率;
统计单元,用于针对一用户端对应的一个全生命周期数据:从所述转化率矩阵中查询所述全生命周期数据中多次渠道状态一一对应的多个综合转化率,按照渠道状态对所述多个综合转化率执行分类统计,将统计转化率最大的渠道状态确定该用户端的归因渠道。
一种消息渠道归因系统,包括:
多个消息渠道服务器,用于确定多个消息渠道的触达数据集及转化数据集;
分析服务器,用于从所述消息渠道服务器获取多个消息渠道的触达数据集及转化数据集,并执行消息渠道归因方法。
通过以上技术手段,可以实现以下有益效果:
本申请在构建转化率矩阵时一个状态下执行一个动作对应综合转化率,不仅考虑了一个状态下执行一个动作对应当前转化率,也考虑一个状态下执行一个动作对应对未来转化的延迟转化率,这样在两个及以上消息渠道均触达用户端的情况下,可以合适的确定不同渠道状态对应的综合转化率,从而方便后续进行准确归因。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图1,本发明提供了一种消息渠道归因系统包括:多个消息渠道服务器100,以及,分析服务器200。
每个消息渠道服务器用于推送消息至多个接收端并记录转化情况,从而形成触达数据集和转化数据集。消息渠道可以包括广告渠道(百度、搜狐、头条等客户端)、短信渠道、电话渠道、应用推送等多种消息渠道。
分析服务器200可以从多个消息渠道服务器100中获取多个消息渠道的触达数据集及转化数据集,并执行图2所示的消息渠道归因方法。
参见图2,本发明提供了一种消息渠道归因方法,包括以下步骤:
步骤S201:基于多个消息渠道的触达数据集及转化数据集,构建多个用户端一一对应的多个归因数据集合;其中,一个用户端的归因数据集合包括所述多个消息渠道中该用户端的多个触达数据及多个转化数据。
本步骤可以采用S11-S13实现:
S11:获取相同时间段内多个消息渠道的触达数据集和转化数据集。
从各个消息渠道服务器中获取相同时间段的触达数据集和转化数据集,相同时间段的触达数据集和转化数据集具有可比性。例如,均获取一个季度内各个消息渠道的触达数据集和转化数据集。
为了便于区分不同消息渠道的触达数据和转化数据,为不同消息渠道的各个触达数据和转化数据添加消息渠道标识,则触达数据集中每个触达数据包括用户端标识、触达时间及消息渠道标识,转化数据集中每个转化数据包括用户端标识、转化时间及消息渠道标识。
S12:对所述多个消息渠道的触达数据集和转化数据集执行合并操作,获得所述多个消息渠道的数据并集;
为了统一分析多个消息渠道的触达数据集合转化数据集,对多个消息渠道的触达数据集和转化数据集执行合并操作,获得多个消息渠道的数据并集。
S13:按用户端标识对所述数据并集执行分组操作,获得多个用户端一一对应的多个归因数据集合。
每个触达数据均具有用户端标识,每个转化数据也均具有用户端标识,为了统一分析不同消息渠道对同一用户端的影响情况,按用户端标识对数据并集执行分组操作,从而确定多个用户端一一对应的多个归因数据集合。
一个用户端的归因数据集合包括多个消息渠道中该用户端的多个触达数据及多个转化数据,这样可以统一分析不同消息渠道对该用户端的影响情况。
步骤S202:基于所述多个归因数据集合,构建所述多个用户端一一对应的多个全生命周期数据;其中,一个用户端的全生命周期数据包括按时间顺序排列的多个状态及多个动作,所述多个状态包括初始的未转化状态、与所述多个触达数据一一对应的多个渠道状态,与所述多个转化数据一一对应的多个转化状态,所述多个动作包括与所述多个触达数据一一对应的多个渠道动作。
本步骤可以采用S21-S26实现:
S21:设置初始的未转化状态、最终的转化状态、与所述多个消息渠道一一对应的多个渠道状态以及与所述多个消息渠道一一对应的多个动作。
设置所有状态state,初始的未转化状态S,最终的转化状态E,多个消息渠道对应的多个渠道状态,可以采用A、B、C……表示。构建所有动作action,每个消息渠道为一个动作action,可以采用a、b、c……表示。消息渠道既作为一种状态也作为一种动作。
针对每个归因数据集合执行下述步骤:
S22:构建时间轴并在时间轴初始位置添加未转化状态。
首先构建时间轴,并在时间轴上设置初始位置处,添加初始的未转化状态S。
S23:针对归因数据集合中各个触达数据:在所述时间轴上、所述触达数据中触达时间位置处,添加消息渠道标识对应的渠道状态以及渠道动作。
一个触达数据既表示当前所处的状态为渠道状态,也表示当前执行动作为渠道动作,所以对每个触达数据而言,在时间轴上触达时间位置处添加渠道标识对应的渠道状态,以及,渠道动作。
S24:针对归因数据集合中各个转化数据:在所述时间轴上、所述转化数据中转化时间位置处添加转化状态。
针对每个转化数据,在时间轴上与转化数据中转化时间对应位置处添加转化状态,不同的转化数据的转化状态是相同的。
可选的,S25:判断所述时间轴上相邻两个状态之间的时间间隔是否大于预设时间间隔;
S26:若所述时间轴上相邻两个状态之间的时间间隔大于预设时间间隔,则在所述相邻两个状态之间添加自然转化状态及自然转化动作。
可以理解的是,一些用户端是因为消息渠道推送消息转化的,一些用户端是自然转化的,也即不受消息渠道的影响自然转化的。为了体现出自然转化的情况,本实施例中还可以在每个用户端的全生命周期数据中添加自然转化渠道及自然转化动作。
具体而言,可以判断时间轴上相邻两个状态之间的时间间隔是否大于预设时间间隔,预设时间间隔为预先设定的一个时间间隔。由于用户端对推送消息具有一定时间的记忆期,超过该记忆期之后可能遗忘,所以将该记忆期作为预设时间间隔。例如一个月。
若所述时间轴上相邻两个状态之间的时间间隔大于预设时间间隔,则表示后续转化情况与前面消息渠道的推送消息无关,为此在相邻两个状态之间添加自然转化状态(可采用符号N表示)、触达时间及自然转化动作。
增加自然转化数据后可以使得整个全生命周期数据更加符合真实情况。
参见图3,为一个用户端的全生命周期数据的示意图。
步骤S203:基于所述多个全生命周期数据构建奖励矩阵;其中,所述奖励矩阵包括任一状态下执行任一动作带来的当前转化率。
构建奖励矩阵R-table,R-table包括多个状态行以及多个动作列,一行代表一个状态,一列代表一个动作,R-table用于表示任意状态下任意动作带来的当前转化率。
其中一个状态下一个动作带来的当前转化率可以表示为R(s,a),R(s,a)表示s状态下执行a动作后、下一个状态之前的转化概率,表达的含义是在s状态下执行a动作能带来的即时转化收益。
针对所述奖励矩阵中的一个状态和一个动作,R(s,a)的计算方式如下:
从所述多个全生命周期数据中确定包含该状态和该动作的触达用户总数量,以及,在该状态和该动作之后转化用户总数量;将转化用户总数量与所述触达用户总数量的比值确定为该状态和该动作下的当前转化率,利用所述当前转化率替换所述奖励矩阵中的初始值。
重复执行上段操作,直到奖励矩阵R-table中各个R(s,a)均计算完毕。
步骤S204:重复执行基于所述奖励矩阵构建转化率矩阵,直到满足结束条件;其中,所述转化率矩阵包括任一状态下执行任一动作所带来的综合转化率,所述综合转化概率为当前转化率与延迟转化率的和值,所述延迟转化率为任一状态下执行任一动作对未来转化的贡献率。
本步骤可以采用S31-S33实现:
S31:构建包含初始值且与所述奖励矩阵相同大小的转化率矩阵;其中,所述转化率矩阵的一行代表一个状态,一列代表一个动作。
首先,构建转化率矩阵Q-table矩阵,,Q-table矩阵包括多个状态行以及多个动作列,一行代表一个状态,一列代表一个动作。Q-table矩阵中每个数据Q(s,a)表示在s状态执行a动作的综合转化概率。
Q(s,a)为在s状态执行a动作即时转化收益R(s,a)加上未来收益,也即对未来转化的贡献率。
S32:基于所述奖励矩阵构建转化率矩阵;
利用奖励矩阵执行迭代操作,每次迭代均会全部更新每个Q(s,a),下面介绍一次迭代操作的过程。针对所述转化率矩阵中的一个状态s和一个动作a:
利用公式Q(s,a)=R(s,a)+γmaxa′Q(a,a′)计算本次迭代的综合转化率,并利用本次迭代计算得到的综合转化率替换上次迭代的综合转化率。其中,Q(s,a)为本次迭代计算得到的综合转化率,R(s,a)从所述励矩阵中确定的当前转化率,γmaxa′Q′(a,a′)表示延迟转化率。
针对Q-table中每个Q(s,a)均利用公式Q(s,a)=R(s,a)+γmaxa′Q(a,a′)计算本次迭代的综合转化率,并利用本次迭代计算得到的综合转化率替换上次迭代的综合转化率,从而完成本次迭代过程。
下面介绍上述公式的来源:
针对马尔可夫决策过程,通常Q-table中每个Q(s,a)的计算公式如下:
Q(s,a)=R(s,a)+γ∑s′p(s′|s,a)*maxa′Q(s′,a′)。
其中,对当前状态s,如果采取动作a,可能达到多个状态,由该动作a到不同的状态有一个转移概率P(s′|s,a),s′表示所有可能的下一个状态。
在s′状态下,还可以采取不同的下一动作,a′表示在下一个状态下进行的动作。不同动作a′具有不同的转化概率,所以可以从不同动作中选择一个最大转化概率maxa′Q(s′,a′)。
因此,γ∑s′p(s′|s,a)*maxa′Q(s′,a′):表示s状态下执行动作a,对未来延迟转化提供的贡献。即当前动作a可能不会直接转化,但当前动作a为后续可能转化产生一定的贡献。
由于本问题是一个确定性转移问题,即p(s′=a|s,a)=1,所以公式可以简化为:Q(s,a)=R(s,a)+γmaxa′Q(a,a′)。
其中R(s,a)表示即时转化收益,γmaxa′Q(a,a′)表示未来延迟转化带来的最优收益。
S33:判断是否达到迭代结束条件。
结束迭代条件包括:一次迭代结束后Q-table中各个Q(s,a)与上次迭代结束后对应的Q(s,a)之间的差值均小于阈值,则表示各个Q(s,a)都收敛,达到迭代结束条件,进入步骤S34,否则进入S32继续执行基于所述奖励矩阵构建转化率矩阵的步骤;
S34:若是则获得最终的转化率矩阵。
最终获得的转化率矩阵包括任一状态下执行任一动作后的综合转化率。
步骤S205:针对一用户端对应的一个全生命周期数据:从所述转化率矩阵中查询所述全生命周期数据中多次渠道状态一一对应的多个综合转化率,按照渠道状态对所述多个综合转化率执行分类统计,将统计转化率最大的渠道状态确定该用户端的归因渠道。
针对步骤S202中获得的多个全生命周期数据,分别准确确定归因渠道。由于每个执行过程均是一致的,所以以一用户端对应的一个全生命周期数据为例进行解释说明。
全生命周期数据中包括多个状态和多个动作,确定全生命周期数据中多状态及动作组合,针对每个状态及动作组合从转化率矩阵中查询到对应的综合转化率。
一个状态及动作组合对应一个渠道状态也即一个消息渠道,全生命周期数据会出现多次相同渠道状态,所以按照渠道状态对多个综合转化率进行分类统计,可以获得各个渠道状态的综合转化率的统计转化率,也即综合转化率的总和。
将统计转化率最大的渠道状态确定为该用户端的归因渠道。
本实施例还可以包括以下步骤:
步骤S206:对各个用户端的归因渠道执行分类汇总,确定最优消息渠道。
由于单独一个用户端的归因渠道不具有代表性,所以可以对各个用户端的归因渠道进行分类汇总,从而可以确定数量最大的归因渠道,将该归因渠道确定为最优消息渠道。
步骤S207:利用最优消息渠道向用户端推送消息。
后续可以利用最优消息渠道向用户端推送消息。
可选的,由于不同用户端的归因渠道不同,为了尽可能转化更多用户端,对于未转化用户端,可以利用各个用户端的归因渠道向用户端推送消息,以便可以最大程度的提升转化率。
通过上述技术特征,可知本实施例具有以下有益效果:
第一,采用时间轴方式构建每个用户端的全生命周期数据,且,全生命周期数据融合不同消息渠道的触达数据和转化数据,从而可以统一分析不同消息渠道对同一用户端的转化情况。
第二,在构建全生命周期数据中,考虑自然转化,加入自然转化数据(自然转化状态、触达时间和自然转化动作),可以尽量还原真实应用场景,提高后续归因操作的准确性。
第三,在构建转化率矩阵时每个Q(s,a),不仅考虑当前转化率,也考虑对未来转化的延迟转化率,这样在两个及以上消息渠道均触达用户端的情况下,可以合适的确定每个Q(s,a)的综合转化率,从而方便后续进行准确归因。
第四,本实施例中针对同一用户端,分别计算各个消息渠道的综合转化率,将最大的综合转化率确定为用户端的归因渠道,由于各个消息渠道的综合转化率是既包含当前转化率又包含延迟转化率的,所以可以准确的对用户端确定归因渠道。
第四,对各个用户端的归因渠道进行分类汇总,从而可以确定大范围内的最优消息渠道。
第五,对于未转化用户端,可以直接通过用户端的归因渠道来推送消息,从而可以最大概率的对未转化用户端进行推动,提升转化率。
参见图4,本发明提供一种消息渠道归因装置,包括:
第一构建单元41,用于基于多个消息渠道的触达数据集及转化数据集,构建多个用户端一一对应的多个归因数据集合;其中,一个用户端的归因数据集合包括所述多个消息渠道中该用户端的多个触达数据及多个转化数据;
第二构建单元42,用于基于所述多个归因数据集合,构建所述多个用户端一一对应的多个全生命周期数据;其中,一个用户端的全生命周期数据包括按时间顺序排列的多个状态及多个动作,所述多个状态包括初始的未转化状态、与所述多个触达数据一一对应的多个渠道状态,与所述多个转化数据一一对应的多个转化状态,所述多个动作包括与所述多个触达数据一一对应的多个渠道动作;
第三构建单元43,用于基于所述多个全生命周期数据构建奖励矩阵;其中,所述奖励矩阵包括任一状态下执行任一动作带来的当前转化率;
第四构建单元44,用于重复执行基于所述奖励矩阵构建转化率矩阵,直到满足结束条件;其中,所述转化率矩阵包括任一状态下执行任一动作所带来的综合转化率,所述综合转化概率为当前转化率与延迟转化率的和值,所述延迟转化率为任一状态下执行任一动作对未来转化的贡献率;
统计单元45,用于针对一用户端对应的一个全生命周期数据:从所述转化率矩阵中查询所述全生命周期数据中多次渠道状态一一对应的多个综合转化率,按照渠道状态对所述多个综合转化率执行分类统计,将统计转化率最大的渠道状态确定该用户端的归因渠道。
消息渠道归因装置的具体实现可以参见图2所示的实施例,在此不再赘述。
通过上述技术特征,可知本实施例具有以下有益效果:
第一,采用时间轴方式构建每个用户端的全生命周期数据,且,全生命周期数据融合不同消息渠道的触达数据和转化数据,从而可以统一分析不同消息渠道对同一用户端的转化情况。
第二,在构建全生命周期数据中,考虑自然转化,加入自然转化数据(自然转化状态、触达时间和自然转化动作),可以尽量还原真实应用场景,提高后续归因操作的准确性。
第三,在构建转化率矩阵时每个Q(s,a),不仅考虑当前转化率,也考虑对未来转化的延迟转化率,这样在两个及以上消息渠道均触达用户端的情况下,可以合适的确定每个Q(s,a)的综合转化率,从而方便后续进行准确归因。
第四,本实施例中针对同一用户端,分别计算各个消息渠道的综合转化率,将最大的综合转化率确定为用户端的归因渠道,由于各个消息渠道的综合转化率是既包含当前转化率又包含延迟转化率的,所以可以准确的对用户端确定归因渠道。
第四,对各个用户端的归因渠道进行分类汇总,从而可以确定大范围内的最优消息渠道。
第五,对于未转化用户端,可以直接通过用户端的归因渠道来推送消息,从而可以最大概率的对未转化用户端进行推动,提升转化率。
本实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本申请实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。