具体实施方式
下面结合附图,对本申请的实施例进行描述。
本申请实施例提供的目标用户的识别方法及装置适用于对目标用户进行识别的场景。如,适用于对支付宝系统中的流失用户进行识别的场景。其中,流失用户包括即将流失的用户和已经流失的用户两种类型。
图1为本申请一种实施例提供的目标用户的识别方法流程图。所述方法的执行主体可以为具有处理能力的设备:服务器或者系统或者装置,如图1所示,所述方法具体包括:
步骤110,搜集样本数据集合。
该样本数据集合包括用户的行为数据。在一种实现方式中,可以是针对某一类业务,来搜集用户的行为数据。当针对某一类业务,来搜集用户的行为数据时,用户的行为数据通常为一类的行为数据。如,均为登录行为数据或者支付行为数据。
以用户的登录行为数据为例来说,可以从分布式的海量数据处理平台(Open DataProcessing Service,ODPS)中搜集用户的登录行为数据,且搜集的登录行为数据可以为:××用户于2017年1月20日登录××APP;××用户于2017年1月23日登录××APP等等。
在一种实现方式中,可以搜集预设天数内的用户的行为数据。如,可以搜集30天内用户的登录行为数据。此处的预设天数可以根据经验值设定,如,还可以为60天或者90天等。
步骤120,根据行为数据,确定用户的行为偏离度。
在一种实现方式中,可以根据如图2所示的各步骤,来确定用户的行为偏离度。图2中,包括如下步骤:
步骤210,将行为数据划分为近期行为数据和远期行为数据。
举例来说,假设样本数据集合如表1所示。即样本数据集合中包括了用户A30天内的登录行为数据,且该登录行为数据中包括了用户的登录行为的发生时间。
表1
用户A于2017年1月3日登录××APP |
用户A于2017年1月5日登录××APP |
用户A于2017年1月8日登录××APP |
用户A于2017年1月12日登录××APP |
用户A于2017年1月19日登录××APP |
用户A于2017年1月26日登录××APP |
在一种实现方式中,可以将用户最近两次的行为数据作为近期行为数据,而将其它的行为数据作为远期行为数据。以表1为例来说,可以将前四行用户的行为数据划分为远期行为数据,而将后两行的行为数据划分为近期行为数据。
步骤220,根据远期行为数据,确定用户的相邻两次远期行为的时间间隔。
可以理解的是,当远期行为数据为多个时,确定的用户的相邻两次远期行为的时间间隔也为多个。以表1为例来说,用户的远期行为数据包括了前四行的用户的行为数据,也即用户A执行了四次远期登录行为,该四次登录行为的发生时间分别为:2017年1月3日、2017年1月5日、2017年1月8日以及2017年1月12日。从而可以确定出三个相邻两次远期行为的时间间隔,分别为:“2天”、“3天”和“4天”。
步骤230,根据近期行为数据,确定用户的相邻两次近期行为的时间间隔。
可以理解的是,当将用户最近两次的行为数据作为近期行为数据时,确定的相邻两次近期行为的时间间隔通常为1个。以表1为例来说,用户A的近期行为数据包括了后两行的用户的行为数据,也即用户A最近两次登录行为的发生时间分别为:2017年1月19日和2017年1月26日。从而可以确定出两个相邻两次近期行为的时间间隔为:7天。
步骤240,根据相邻两次远期行为的时间间隔以及相邻两次近期行为的时间间隔,确定用户的行为偏离度。
用户的近期行为和远期行为均是既定表现,而用户近期表现出来的行为往往与客观描述的值存在误差,这个误差的定量描述就是用户的行为偏离度。由于用户使用习惯的改变属于小概率事件,可以假定用户的行为偏离度符合高斯分布。在假定用户的行为偏离度符合高斯分布时,可以在一维空间中确定用户的行为偏离度。当在一维空间中确定用户的行为偏离度时,步骤240具体可以为:根据相邻两次远期行为的时间间隔,在一维空间中确定质点。计算相邻两次近期行为的时间间隔与质点的欧几里德距离。将欧几里德距离作为用户的行为偏离度。具体可以参见公式1。
其中,H(x
i)为用户的行为偏离度,Diffx
j为相邻两次近期行为的时间间隔。以表1为例来说,其为“7天”。
为一维空间中确定的质点。Diffx
i为相邻两次远期行为的时间间隔,cntx
i为该时间间隔出现的次数。以表1为例来说,Diffx
i分别为“2天”、“3天”和“4天”,cntx
i均为1。也即“2天”、“3天”和“4天”出现的次数均为1。∑cntx
i为相邻两次远期行为的时间间隔的个数。以表1为例来说,其为3。即有3个相邻两次远期行为的时间间隔。
在一个例子中,用户的行为偏离度可以如图3所示。图3中,用户的行为偏离度比较大,通常理解为用户的近期行为出现了异常表现,给予高得分,预示着流失预期增强。
在确定用户的行为偏离度之后,可以回到图1中,图1中还包括:
步骤130,根据预设的业务活跃周期,将多个行为数据划分为多个行为数据分组。
可选地,预设的业务活跃周期可以通过如下各步骤来设定:
步骤a,根据行为数据,确定用户的相邻两次行为的时间间隔。
以样本集合如表1所示为例来说,可以确定出五个相邻两次行为的时间间隔,分别为:“2天”、“3天”、“4天”、“7天”以及“7天”。
步骤b,搜集其它用户的其它行为数据。
此处的其它行为数据与步骤110中的行为数据属于同类行为数据,如,均为登录行为数据或者支付行为数据。
步骤c,根据其它行为数据,确定其它用户的相邻两次行为的时间间隔。
举例来说,假设其它样本数据集合中包括了其它两个用户(用户B和用户C)在30天内的登录行为数据,且根据用户B的登录行为数据,可以确定出五个相邻两次行为的时间间隔,分别为:“3天”、“4天”、“7天”、“7天”以及“7天”。根据用户C的登录行为数据,可以确定出五个相邻两次行为的时间间隔,分别为:“3天”、“3天”、“3天”、“7天”以及“7天”。
步骤d,根据在预设时间段内,用户的相邻两次行为的时间间隔以及其它用户的相邻两次行为的时间间隔,确定预设的业务活跃周期。
在一种实现方式中,可以统计动态Y天内每一个时间间隔对应的累计值百分比(此处的累计值百分比是针对所有用户来统计的),并将接近90%分位数的累计值百分比对应的时间间隔作为预设的业务活跃周期。此处的Y天可以根据经验值设定,如,可以为15天或者30天。如前述例子,假设Y为30天,则可以得到如表2所示的内容。
表2
时间间隔 |
出现次数 |
累计次数 |
累计值百分比 |
2天 |
1次 |
1次 |
7% |
3天 |
5次 |
6次 |
40% |
4天 |
2次 |
8次 |
53% |
7天 |
7次 |
15次 |
100% |
表2中,出现次数是指当前时间间隔在用户A、用户B和用户C的相邻两次行为的时间间隔中出现的次数。以时间间隔“2天”为例来说,因为用户A的相邻两次行为的时间间隔为:“2天”、“3天”、“4天”、“7天”以及“7天”。用户B的相邻两次行为的时间间隔为:“3天”、“4天”、“7天”、“7天”以及“7天”。用户C的相邻两次行为的时间间隔为:“3天”、“3天”、“3天”、“7天”以及“7天”。所以,“2天”出现的次数为“1次”。同理,可以统计出其它时间间隔的出现次数。
此外,累计次数是第一个时间间隔至当前时间间隔对应的出现次数的累加和,如,“3天”对应的累计次数=“1次”+“5次”=“6次”。累计值百分比为当前时间间隔对应的累计次数与最后一个累计次数的百分比值。如,“2天”对应的累计值百分比=1/15=7%。
表2中,因为“7天”对应的“累计值百分比”与90%分为数接近,因此,将“7天”确定为预设的业务活跃周期。
当然,在实际应用中,也可以根据经验值来设定上述预设的业务活跃周期,本申请对此不作限定。
在确定预设的业务活跃周期之后,根据预设的业务活跃周期,将多个行为数据划分为多个行为数据分组的过程可以如下:
在一个例子中,行为数据分组的个数可以根据T/t确定,其中,T为步骤110中的预设天数,t为预设的业务活跃周期。以预设天数为30天,t为6天为例来说,可以将样本数据集合中的多个行为数据划分为30天/6天=5个行为数据分组。其中,第1个行为数据分组对应1-6天,第2个行为数据分组对应7-12天,以此类推,第5个行为数据分组对应25-30天。
以样本数据集合如表1所示为例来说,因为在1-6天内,用户A只在3日和5日登录××APP,因此,将前两个行为数据划分到第1个行为数据分组。同理,划分得到的5个行为数据分组可以如表3所示。表3中,每个行为数据分组中的行为数据可以根据登录行为的发生时间确定。
表3
表3中,第3个行为数据分组中没有包括任何的行为数据。
步骤140,对每个行为数据分组,统计用户在预设的业务活跃周期内的活跃天数,并根据活跃天数以及预设的业务活跃周期,获得用户的活跃频次。
以表3为例来说,对表3中的5个行为数据分组,用户在6天内的活跃天数分别为:2天、2天、0天、1天和1天。在统计到活跃天数之后,可以根据活跃天数以及预设的业务活跃周期,获得用户的活跃频次。在一个例子中,可以根据公式2获得活跃频次。
其中,x
i为第i个行为数据分组,A(x
i)为第i个行为数据分组对应的活跃频次,D(x
i)为第i个行为数据分组对应的活跃天数,t为预设的业务活跃周期。如前述例子,i=1,2,…,5。也即可以获得5个活跃频次:A(x
1),A(x
2),…,A(x
5),且
步骤150,根据获得的多个活跃频次,确定用户的行为衰减度以及长期活跃度。
在一种实现方式中,根据获得的多个活跃频次,确定用户的行为衰减度可以包括:根据多个活跃频次,获取表征用户的行为变化趋势的信息。根据表征用户的行为变化趋势的信息,确定用户的行为衰减度。其中,根据多个活跃频次,获取表征用户的行为变化趋势的信息的过程可以如图4所示,图4中,包括如下步骤:
步骤410,按照预设阈值,将多个活跃频次划分为多个活跃频次分组。
此处,可以将预设阈值表示为N。N可以根据经验值设定,如,可以为6天。在一种实现方式中,可以取长度为N的滑动窗口,来对多个活跃频次进行划分。举例来说,假设获得10个活跃频次:A(x1),A(x2),…,A(x10),则取长度为6天的滑动窗口时,可以确定5个滑动窗口。该5个滑动窗口分别为:1-6天,2-7天,3-8天,4-9天以及5-10天。根据上述确定的5个滑动窗口可以得到5个活跃频次分组。其中,第1个活跃频次分组为:A(x1),A(x2),…,A(x6)。第2个活跃频次分组为:A(x2),A(x3),…,A(x7)。第3个活跃频次分组为:A(x3),A(x4),…,A(x8)。第4个活跃频次分组为:A(x4),A(x5),…,A(x9)。第5个活跃频次分组为:A(x5),A(x6),…,A(x10)。可以理解的是,该5个活跃频次分组分别与上述5个滑动窗口相对应。此外,在取长度为6天的滑动窗口之后,可以将各个滑动窗口的末日期(如,6天,7天,8天,9天以及10天)作为各个活跃频次分组的日期。如,第1个活跃频次分组对应的日期为6天,第2个活跃频次分组对应的日期为7天;以此类推,第5个活跃频次分组对应的日期为10天。
步骤420,计算各个活跃频次分组的活跃频次平均值,得到多个活跃频次平均值。
以第1个活跃频次分组为例来说,其对应的活跃频次平均值=(A(x
1)+A(x
2)+,…,+A(x
6))/6。根据第1个活跃频次分组的活跃平均值的计算方法,可以计算得到其它4个活跃频次分组的活跃平均值。从而可以得到5个活跃频次平均值:
以及
需要说明的是,该5个活跃频次平均值可以作为用户的行为的趋势变化度量。
步骤430,从多个活跃频次平均值中选取最大平均值以及当前日期所对应的活跃频次分组的当前平均值。
上述最大平均值可以称为最高点。此处的当前日期可以是指最近一个滑动窗口的末日期,如前述例子中,最近一个滑动窗口为5-10天,因此当前日期为10天。此外,由于最近一个滑动窗口与第5个活跃频次分组相对应,所以当前日期所对应的活跃频次分组的当前平均值为
步骤440,根据最大平均值、最大平均值对应的日期、当前平均值以及当前日期,获取表征用户的行为变化趋势的信息。
此处,最大平均值对应的日期即为最大平均值所对应活跃频次分组对应的日期。
在一种实现方式中,可以根据公式3来获取表征用户的行为变化趋势的信息。
其中,Desc(x
i)为表征用户的行为变化趋势的信息,
为最大平均值,
为当前平均值,day
max为最大平均值对应的日期,day
now为当前日期。如前述例子,假设
为最大平均值,因为
为第3个活跃频次分组的活跃平均值,而第3个活跃频次分组对应的日期为8天,所以day
max为8天。
需要说明的是,在获取到表征用户的行为变化趋势的信息之后,可以直接将该表征用户的行为变化趋势的信息作为用户的行为衰减度。在确定用户的行为衰减度之后,以下将介绍如何根据获得的多个活跃频次,来确定长期活跃度。
在一种实现方式中,可以根据公式4来确定长期活跃度。
其中,Long(xi)为长期活跃度,T为步骤110中的预设天数,t为预设的业务活跃周期,A(xi)为第i个行为数据分组对应的活跃频次。可以理解的是,T/t即为上述行为数据分组的个数。也即用户的长期活跃度是根据各个行为数据分组对应的活跃频次以及行为数据分组的个数来确定的。
Long(xi)可以将不同活跃度的用户区分开来,一些用户天然是高活跃,一些用户天然是低活跃,而低活跃用户相对更容易流失。可以根据Long(xi)的大小来描述用户长期活跃度的高低。
在根据图4所示的各步骤确定用户的行为衰减度,并且在确定长期活跃度之后,可以再次回到图1中,图1还可以包括如下步骤:
步骤160,根据行为衰减度、长期活跃度、行为偏离度以及预设算法,获得用户的分数值。
此处的预设算法可以是指GBDT(Gradient Boosting Decision Tree)算法,该算法是一种迭代的决策树算法,该算法由多棵决策树组成,所有树的结论累加起来做最终结果。它在被提出之初就和支持向量机(Support Vector Machine,SVM)一起被认为是泛化能力(generalization)较强的算法。近些年更因为被用于搜索排序的机器学习模型而引起大家关注。GBDT是一个应用很广泛的算法,可以用来做分类、回归。在很多的数据上都有不错的效果。本申请可以采用GBDT作为最后的分数值的预测框架。
在一个例子中,将行为衰减度、长期活跃度、行为偏离度作为GBDT算法的输入参数,目标变量为动态30天内容是否登录。可以得到如表4和表5所示的结果:
表4
模型 |
正确数 |
错误数 |
总计 |
准确率 |
准确率 |
召回率 |
F1指标 |
0 |
20438703 |
7230842 |
27669545 |
76.864% |
73.867% |
79.828% |
76.732% |
1 |
20742740 |
5164761 |
25907501 |
76.864% |
80.065% |
74.151% |
76.995% |
表5
表5中,得分等级即为用户的分数值,从表5中可以看出,复登率与用户的分数值成正相关性。表示分数值越低,用户流失概率越大,再次登录概率越低。而本申请可以将这类用户识别为目标用户。
步骤170,当分数值满足预设条件时,将用户识别为目标用户。
根据实验结果可以得出的结论:分数值越低,用户流失概率越大,再次登录概率越低,本申请可以设定分数阈值。若用户的分数值低于该分数阈值,则可以将该用户识别为目标用户。
为了更清楚的说明本申请的技术方案,以下将通过图5来对本申请提供的用户的分数值的获取方法作进一步的说明。图5中,可以从ODPS中搜集业务X的T天的行为数据,该T天的行为数据可以为多个用户的行为数据。之后,可以根据用户的行为数据,来确定每个用户的相邻两次行为的时间间隔,并基于该时间间隔来确定业务X的活跃周期。在确定出业务X的活跃周期之后,可以根据该活跃周期分别确定用户的行为衰减度和长期活跃度,并根据用户的行为数据,确定用户的行为偏离度。最后,将用户的行为衰减度、长期活跃度以及行为偏离度作为输入参数输入到GBDT算法中,从而可以获得用户的分数值。
综上,本申请通过用户的行为衰减度、长期活跃度以及行为偏离度三大行为特征,来识别目标用户。由此,可以提高目标用户识别的及时性和准确性。
与上述目标用户的识别方法对应地,本申请实施例还提供的一种目标用户的识别装置,如图6所示,该装置包括:
搜集单元601,用于搜集样本数据集合,该样本数据集合包括用户的行为数据。
确定单元602,用于根据搜集单元601搜集的行为数据,确定用户的行为偏离度。
划分单元603,用于根据预设的业务活跃周期,将多个行为数据划分为多个行为数据分组。
统计单元604,用于对划分单元603划分的每个行为数据分组,统计用户在预设的业务活跃周期内的活跃天数,并根据活跃天数以及预设的业务活跃周期,获得用户的活跃频次。
确定单元602,还用于根据获得的多个活跃频次,确定用户的行为衰减度以及长期活跃度。
获取单元605,用于根据确定单元602确定的行为衰减度、长期活跃度、行为偏离度以及预设算法,获得用户的分数值。
识别单元606,用于当获取单元605获得的分数值满足预设条件时,将用户识别为目标用户。
可选地,确定单元602还可以用于:
根据行为数据,确定用户的相邻两次行为的时间间隔。
搜集其它用户的其它行为数据,其它行为数据与上述行为数据属于同类行为数据。
根据其它行为数据,确定其它用户的相邻两次行为的时间间隔。
根据在预设时间段内,用户的相邻两次行为的时间间隔以及其它用户的相邻两次行为的时间间隔,确定预设的业务活跃周期。
可选地,确定单元602具体可以用于:根据多个活跃频次,获取表征用户的行为变化趋势的信息。根据表征用户的行为变化趋势的信息,确定用户的行为衰减度。其中,根据多个活跃频次,获取表征用户的行为变化趋势的信息,可以包括如下步骤:
按照预设阈值,将多个活跃频次划分为多个活跃频次分组。
计算各个活跃频次分组的活跃频次平均值,得到多个活跃频次平均值。
从多个活跃频次平均值中选取最大平均值以及当前日期所对应的活跃频次分组的当前平均值。
根据最大平均值、最大平均值对应的日期、当前平均值以及当前日期,获取表征用户的行为变化趋势的信息。
可选地,确定单元602还具体可以用于:
将行为数据划分为近期行为数据和远期行为数据。
根据远期行为数据,确定用户的相邻两次远期行为的时间间隔。
根据近期行为数据,确定用户的相邻两次近期行为的时间间隔。
根据相邻两次远期行为的时间间隔以及相邻两次近期行为的时间间隔,确定用户的行为偏离度。
其中,根据相邻两次远期行为的时间间隔以及相邻两次近期行为的时间间隔,确定用户的行为偏离度可以包括:
根据相邻两次远期行为的时间间隔,在一维空间中确定质点。
计算相邻两次近期行为的时间间隔与质点的欧几里德距离。
将欧几里德距离作为用户的行为偏离度。
可选地,用户的行为数据为预设天数内的行为数据。
确定单元602还具体可以用于:
根据预设天数以及预设的业务活跃周期,确定行为数据分组的个数;
根据多个活跃频次以及行为数据分组的个数,确定用户的长期活跃度。
本申请实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本申请提供的装置的具体工作过程,在此不复赘述。
本申请提供的目标用户的识别装置,搜集单元601搜集样本数据集合。确定单元602根据行为数据,确定用户的行为偏离度。划分单元603根据预设的业务活跃周期,将多个行为数据划分为多个行为数据分组。统计单元604对每个行为数据分组,统计用户在预设的业务活跃周期内的活跃天数,并根据活跃天数以及预设的业务活跃周期,获得用户的活跃频次。确定单元602根据获得的多个活跃频次,确定用户的行为衰减度以及长期活跃度。获取单元605根据行为衰减度、长期活跃度、行为偏离度以及预设算法,获得用户的分数值。当分数值满足预设条件时,识别单元606将用户识别为目标用户。此处的目标用户可以是指流失用户。当目标用户为流失用户时。本申请的流失用户的识别装置可以提高流失用户识别的及时性和准确性。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。