数据处理方法、装置、设备及可读存储介质
技术领域
本说明书实施例涉及数据处理技术领域,尤其涉及一种数据处理方法、装置、设备及可读存储介质。
背景技术
随着互联网的普及,互联网公司一般有从海量的网络数据中挖掘潜在的目标人群的需求,以方便向潜在的目标人群推荐相关信息如投放广告、资讯、资源等,进行业务推广。为了具有更低的用户打扰度和更好的投入产出比,对于用户类型的评定尤为重要,因此,需要提供一种可靠的用户类型评定方案。
发明内容
本说明书实施例提供了一种数据处理方法、装置、设备及可读存储介质。
第一方面,本说明书实施例提供了一种数据处理方法,包括:获取训练样本,所述训练样本包括样本用户的特征数据,所述样本用户包括预先标记好的两种以上不同类型的用户;构建初始神经网络模型,所述初始神经网络模型的输出层为一个N维向量,所述N维向量对应两种以上用户类,每种所述用户类对应于一种类型的用户,每种用户类包括两个以上的用户簇,且所述N维向量中每个元素的值均表示用户属于相应用户簇的概率,其中,N为大于或等于4的整数;根据所述训练样本对所述初始神经网络模型进行训练,得到目标模型。
第二方面,本说明书实施例提供了一种数据处理装置,包括:第一获取模块、构建模块和训练模块。第一获取模块,用于获取训练样本,所述训练样本包括样本用户的特征数据,所述样本用户包括预先标记好的两种以上不同类型的用户。构建模块,用于构建初始神经网络模型,所述初始神经网络模型的输出层为一个N维向量。所述N维向量对应两种以上用户类,每种所述用户类对应于一种类型的用户,每种用户类包括两个以上的用户簇,且所述N维向量中每个元素的值均表示用户属于相应用户簇的概率,其中,N为大于或等于4的整数。训练模块,用于根据所述训练样本对所述初始神经网络模型进行训练,得到目标模型。
第三方面,本说明书实施例提供了一种计算机设备,包括:存储器、一个或多个处理器;及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述第一方面提供的数据处理方法的步骤。
第四方面,本说明书实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面提供的数据处理方法的步骤。
本说明书实施例有益效果如下:
本说明书实施例提供的数据处理方法,先将预先标记好的两种以上不同类型的用户作为样本用户,获取样本用户的特征数据作为训练样本,通过训练样本对所构建的初始神经网络模型进行训练,得到训练好的目标模型,其中,初始神经网络模型的输出层为一个对应两种以上用户类的N维向量,每种用户类对应于一种类型的用户,每种用户类包括两个以上的用户簇,且N维向量中每个元素的值均表示用户属于相应用户簇的概率,N为大于或等于4的整数。这样就可以通过目标模型同时评定用户所属的用户类以及所属的用户簇,提高了用户评定的准确率,有利于挖掘高精度的潜在目标人群。
附图说明
图1为本说明书实施例的一种应用场景示意图;
图2为本说明书实施例第一方面提供的数据处理方法的流程图;
图3为本说明书实施例第一方面提供的目标簇筛选步骤的流程图;
图4为本说明书实施例第一方面提供的目标人群确定步骤的流程图;
图5为本说明书实施例第二方面提供的数据处理装置的结构示意图;
图6为本说明书实施例第三方面提供的服务器的结构示意图。
具体实施方式
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本说明书实施例的技术方案做详细的说明,应当理解本说明书实施例以及实施例中的具体特征是对本说明书实施例技术方案的详细的说明,而不是对本说明书技术方案的限定,在不冲突的情况下,本说明书实施例以及实施例中的技术特征可以相互组合。需要说明的是,本说明书实施例中,术语“一种以上”包括一种或大于一种的情况,术语“两种以上”包括两种或大于两种的情况。
图1为适用于本说明书实施例提供的数据处理方法的一种运行环境示意图。如图1所示,一个或多个用户终端100(图1中仅示出一个)可通过网络200与一个或多个服务器300(图1中仅示出一个)相连,以进行数据通信或交互。其中,用户终端100可以是个人电脑(personal computer,PC)、笔记本电脑、平板电脑、智能手机、电子阅读器、车载设备、网络电视、可穿戴设备等具有网络功能的智能设备。
于本说明书实施例中,用户终端100中安装有客户端,与服务器(Server)端相对应,为用户提供服务。用户终端100上安装的客户端可以是基于互联网实现业务的APP或网站,为用户提供各种业务以及相关信息如业务推荐信息的操作界面,并将用户针对各种业务以及相关信息的行为数据提供给服务器进行处理。服务器用于对客户端上报的用户行为数据进行分析并为后续的业务推广挖掘潜在的目标人群。为了挖掘潜在的目标人群,需要先评定用户的类型。用户类型评定的准确率和全面性是影响潜在目标人群挖掘精度的重要因素。因此,需要一种可靠的用户类型评定方案。
第一方面,本说明书实施例提供了一种数据处理方法,请参考图2,该方法包括步骤S201至步骤S203。
步骤S201,获取训练样本,所述训练样本包括样本用户的特征数据,所述样本用户包括预先标记好的两种以上不同类型的用户。
样本用户的标记关系到后续用户类的划分,具体可以根据实际场景需要选取并标记不同类型的样本用户。
在一种具体的应用场景中,将本说明书实施例提供的数据处理方法应用于业务推荐的目标用户筛选时。此时,作为一种可选方式,样本用户可以包括预先标记好的目标用户和非目标用户两种类型,具体可以根据用户的行为数据将用户划分为目标用户和非目标用户。
例如,可以预先选定一批用户,对这些用户投放业务推荐信息,将其中接受业务推荐并基于该推荐开通该业务的用户标记为目标用户,将忽略业务推荐信息的用户标记为非目标用户。
又例如,可以针对已经开通某项业务的用户,根据用户对该业务的使用情况将用户划分为目标用户和非目标用户。其中,用户对该业务的使用情况可以包括用户对该业务的使用次数和/或累计消费金额等。例如,当用户对该业务的使用情况包括用户对该业务的使用次数和累计消费金额时,可以将对该业务使用次数相对较多且累计消费金额也相对较多的用户标记为非目标用户,可以将对该业务使用次数相对较少且累计消费金额也相对较少的用户标记为非目标用户。
作为另一种可选方式,在一些应用场景中,需要将用户划分为多种不同等级,根据用户所在的级别制定相应的业务推荐方案,以便于提高推荐的成功率。例如,在实际应用时,可以选定特定数量的未开通该业务的用户作为第一等级用户,在已开通该业务的用户中,根据用户对该业务的使用情况将用户划分为第二等级用户和第三等级用户,此时,样本用户就可以相应包括预先标记好的三种类型,具体可以将第一等级用户标记为第一类型用户、将第二等级用户标记为第二类型用户以及将第三等级的用户标记为第三类型用户。
同理,于本说明书的其他实施例中,样本用户也可以包括预先标记好的更多类型的用户,具体可以根据实际应用场景需要设置。
具体来讲,用户的特征信息可以包括能够反映用户属性的信息,例如,用户的年龄、性别、所在城市以及用户行为信息等,具体可以根据实际业务需要设置。例如,用户行为信息可以包括客户端打开次数、停留时长等信息。作为一种可选的实施方式,特征信息可以包括用户的画像特征和周围环境特征,用户的画像特征和环境特征具体可以根据需要设置。举例来讲,对于支付类客户端,用户的画像特征可以包括但不限于用户年龄、性别等基础信息以及客户端打开次数、消费次数等行为特征;周围环境特征可以包括但不限于用户的位置信息、用户所在位置的人流量、用户所在位置离商圈距离、用户所在位置附近完成的支付笔数等特征。
实际应用中,用户的位置可以通过基于位置的服务(Location Based Service,LBS)定位得到。相应地,人流量可以通过历史上在该位置有过LBS数据的用户统计的,离商圈距离可以根据该位置周围第一预设范围内预先标记的商圈位置得到,附近完成的支付笔数可以基于历史数据统计得到。当然,环境特征也可以是其他与LBS相关的特征。
步骤S202,构建初始神经网络模型,所述初始神经网络模型的输出层为一个N维向量,所述N维向量对应两种以上用户类,每种所述用户类对应于一种类型的用户,每种用户类包括两个以上的用户簇,且所述N维向量中每个元素的值均表示用户属于相应用户簇的概率,其中,N为大于或等于4的整数。
神经网络属于在机器学习和认知科学领域,是一种模仿生物神经网络的结构和功能的数学模型或计算模型,用于对函数进行估计或近似。本说明书实施例中,首先构建初始神经网络模型,并使得初始神经网络模型的输入层对应的特征向量对应于样本用户的特征信息,输出层设置为一个对应两种以上用户类的N维向量,每种用户类包括两个以上的用户簇,且N维向量中每个元素的值均表示用户属于相应用户簇的概率。其中,N的值为所有用户簇的总和。
例如,假设上述步骤S201中样本用户包括预先标记好的两种类型的用户,分别为目标用户和非目标用户,相应地,输出层输出的N维向量则对应有两个用户类,分别为目标用户类和非目标用户类,其中,非目标用户类包括n个用户簇,目标用户类包括p个用户簇,则N=n+p,且n和p均为大于1的整数。
本说明书实施例中,初始神经网络模型可以采用深度神经网络(Deep NeuralNetworks,DNN)模型。当然,在本说明书的其他实施例中,初始神经网络模型也可以采用卷积神经网络(Convolutional Neural Network,CNN)模型或循环神经网络(RecurrentNeural Network,RNN)模型。
步骤S203,根据所述训练样本对所述初始神经网络模型进行训练,得到目标模型。
需要说明的是,为了提高训练效率,作为一种可选的方式,可以采用mini-batch的方式输入训练样本。当然,在本说明的其他实施例中,也可以采用其他训练样本输入方式。
可以理解的是,根据所述训练样本对所述初始神经网络模型进行训练,得到目标模型的过程包括:基于预先定义的损失函数,将上述步骤S201得到的训练样本输入所构建的初始神经网络模型进行训练,得到目标模型。这样就可以根据训练好的目标模型中输入待选用户的特征信息,从而输出该待选用户属于每个用户类中的每个用户簇的概率,以便于同时对该用户的用户类以及相应类下的用户簇进行划分,有效地提高了用户类型评定的准确率和全面性。
具体来讲,损失函数是在机器学习模型训练中,用来估量模型的预测值与真实值的不一致程度的函数。本说明书实施例中,预先定义的损失函数包括第一类损失函数和第二类损失函数。此时,根据所述训练样本对所述初始神经网络模型进行训练,得到目标模型的过程包括:基于预先定义的第一类损失函数和第二类损失函数,将所述训练样本输入所述初始神经网络模型进行训练,得到目标模型。也就是说,当第一类损失函数和第二类损失函数均满足预设的训练条件如第一类损失函数和第二类损失函数均达到最小值即收敛时,完成训练,得到目标模型。
其中,第一类损失函数用于使所述训练样本中每种类型的样本用户的概率分布均集中在该类型对应的用户类中任意一个用户簇上。第二类损失函数用于使得所述训练样本中的样本用户在每个用户簇上的分散度满足指定条件,避免用户都集中某些用户簇上。
作为一种可选的实施方式,上述第一类损失函数是按照以下步骤计算的:针对所述训练样本中的每种类型的样本用户,执行距离计算步骤得到每种类型的样本用户对应的损失函数值,其中,所述距离计算步骤包括:针对属于同一类型的每个样本用户,计算在模型训练过程中,每次迭代输出的N维向量与预先配置的相应特征向量集合中每个特征向量的距离,将所计算的距离中的最小值作为该样本用户对应的最小距离值;其中,不同所述用户类对应于不同的所述特征向量集合,所述特征向量集合包括多个N维特征向量,每个N维特征向量对应于相应用户类中的一个用户簇,且每个N维特征向量在相应用户簇对应位置的元素值为1,其余元素值均为0;将属于同一类型的每个样本用户对应的最小距离值进行累加,得到该类型的样本用户对应的损失函数值;将每种类型的样本用户对应的损失函数值进行累加,得到模型训练过程中每次迭代对应的第一类损失函数值。
作为一种可选的实施方式,上述第二类损失函数是按照以下步骤计算的:计算模型训练过程中,所述训练样本中b个样本用户每次迭代输出的N维向量与预先配置的N个N维特征向量之间的距离,构成b行N列的距离矩阵,其中,b为正整数;获取所述距离矩阵的每列中最小的q个距离,将各列中最小的q个距离均相加得到每次迭代对应的第二类损失函数值,其中,q为大于或等于1且小于b的正整数。
需要说明的是,上述的第一类损失函数计算过程中,所有用户类对应的特征向量集合即为第二类损失函数计算过程中的N个N维特征向量。每个特征向量均为N维的onehot向量,即其中一个元素值为1,其余元素值均为0。
举例来讲,假设在业务推荐场景下,样本用户包括目标用户和非目标用户两种类型,相应地,所构建的初始神经网络模型的输出层的向量大小为(n+p)维,对应于两种用户类,前n维对应于非目标用户类,后p维对应于非目标用户类。也就是说,前n维的每个元素均表示一个非目标用户簇,后p维的每个元素均表示一个目标用户簇。当采用mini-batch的方式输入训练样本时,对于每个mini-batch,均计算两类损失函数,第一类损失函数使该mini-batch中被标记为目标用户的样本用户的概率分布集中在后p维的某一个输出位置上,使该mini-batch中被标记为非目标用户的概率分布集中在前n维的某一个输出位置上,并通过第二类损失函数为控制mini-batch中每个用户簇上用户的分散度。
在计算第一类损失函数和第二类损失函数之前,需要预先分别配置非目标用户类对应的特征向量集合以及目标用户类对应的特征向量集合。非目标用户类对应的特征向量集合包括n个n+p维的特征向量,目标用户类对应的特征向量集合包括p个n+p维的特征向量,且不同的用户簇对应于不同的特征向量,假设某用户簇对应于模型输出层向量中的第k个元素,k为1到n+p中的任意整数,则相应地,该用户簇对应的特征向量的第k个元素为1,其余元素均为0。
作为一种可选的实施方式,在计算第一类损失函数时,先分别计算当前mini-batch中被标记为目标用户的样本用户的损失函数值以及被标记为非目标用户的样本用户的损失函数值,然后将当前mini-batch中的两种样本用户的损失函数值进行累加,得到当前mini-batch的第一类损失函数值。
其中,对于被标记为目标用户的样本用户,计算输出的n+p维向量与相应的特征向量集合中每个特征向量之间的距离,即可以得到p个距离。其中,两个向量之间的距离的计算方式可以采用L1范数(L1-norm)、L2范数(L2-norm)或交叉熵等。将p个距离中的最值作为该样本用户对应的最小距离值,将当前mini-batch中所有被标记为目标用户的样本用户对应的最小距离值进行累加,得到当前mini-batch中目标用户对应的损失函数值。同理,可以得到当前mini-batch中非目标用户对应的损失函数值。
另外,在计算第二类损失函数时,可以计算mini-batch中,每个样本用户的输出向量与n+p个n+p维特征向量的距离,构成一个距离矩阵。本说明书实施例中,两个向量之间的距离的计算方式可以采用L1范数(L1-norm)、L2范数(L2-norm)或交叉熵等。假设mini-batch中用户数为b,则该mini-batch上对应生成一个b行n+p列的距离矩阵M。此后,获取距离矩阵M的每列中最小的q个距离。需要说明的是,每列中最小的q个距离即为将该列中的距离按照由小到大的顺序排列,排在前q个的距离则为该列中最小的q个距离,q可以根据实际需要设置,例如,可以设置为1、2或3等。进一步,将各列中最小的q个距离均相加即可以得到该mini-batch对应的第二类损失函数值。例如,q等于2,则需要将所得到的2*(n+p)个距离值相加得到该mini-batch对应的第二类损失函数值。
进一步地,完成目标模型的训练后,当将该目标模型应用于信息推荐场景中时,为了方便基于该目标模型更准确地筛选目标人群,本说明书实施例提供的数据处理方法还包括目标簇筛选步骤,以从众多用户簇中确定目标簇,即确定目标集群。需要说明的是,上述训练好的目标模型除了应用于信息推荐场景以外,也可以应用于其他需要评定用户类型的应用场景中。具体来讲,如图3所示,目标簇筛选步骤可以包括以下步骤S301至步骤S303。
步骤S301,获取每个所述样本用户基于所述目标模型得到的概率分布数据。
可以理解的是,基于上述步骤S203训练好的目标模型,可以得到训练样本中每个样本用户在每个用户簇中的概率,即每个样本用户的概率分布数据。
步骤S302,根据每个所述样本用户的概率分布数据,确定每个所述样本用户所属的用户簇。
具体来讲,可以比较样本用户在各用户簇中的概率,将概率最大的用户簇作为该样本用户所属的用户簇。这样就可以训练样本中的所有样本用户在各个用户簇中的分布情况。
步骤S303,从所述两种以上用户类中确定目标类,并从所述目标类对应的每个用户簇中,筛选出该目标类对应类型的用户比例满足预设条件的用户簇作为该目标类对应的目标簇。
本实施例中,将用户划分为了两种以上的用户类,根据具体的场景需要,当需要从其中一种以上类型的用户中进一步筛选目标人群时,则需要先将这些类型对应的用户类确定为目标类,进而从每个目标类中筛选相应的目标簇。例如,当将用户划分为两种用户类,且仅对其中一种用户类下的用户投放推荐信息时,可以将该用户类作为目标类,进而筛选该目标类下的目标簇,以便于更准确地投放。又例如,当将用户划分为三种用户类,且需要对其中两种用户类下的用户分别投放不同的推荐信息时,可以将这两种用户类均作为目标类,进而筛选每种目标类下的目标簇。
确定好目标类之后,可以进一步得到目标类中每个用户簇中包含的样本用户。可以理解的是,这些样本用户中既包含该目标类对应类型的用户,也包含其他类型的用户。由于样本用户的用户类型是经过预先标记的,因此,可以根据目标类对应的每个用户簇中的样本用户数量以及每个样本用户的标记,确定目标类对应的每个用户簇中,该目标类对应类型的用户比例。作为一种实施方式,可以将目标类对应的每个用户簇中,该目标类对应类型的用户比例最高的指定数量个用户簇作为该目标类对应的目标簇。其中,指定数量为大于或等于1且小于该目标类包括的用户簇数量的整数,例如,可以为1、2或3等,具体可以根据实际需要设置。作为另一种实施方式,可以将该目标类对应类型的用户比例超过特定阈值的用户簇作为该目标类下的目标簇。其中,该特定阈值可以根据实际需要设置。
例如,某目标类包括用户簇A、用户簇B和用户簇C,假设用户簇A中有100个样本用户,其中有80个被标记为该目标类对应的用户类型,用户簇B中有50个样本用户,其中有30个被标记为该目标类对应的用户类型,用户簇C中有200个样本用户,其中有150个被标记为该目标类对应的用户类型。此时,用户簇A对应的用户比例为80/100,用户簇B对应的用户比例为30/50,用户簇C对应的用户比例为150/200。若将用户比例最大的一个用户簇作为该目标类对应的目标簇,可以将用户簇A作为该目标类对应的目标簇,若将用户比例最大的两个用户簇作为该目标类对应的目标簇,可以将用户簇A和用户簇C均作为该目标类对应的目标簇。
实际应用时,对于待选用户,可以先根据目标模型待选用户在各个用户簇中的概率分布数据,从而确定该待选用户所属的用户簇,当待选用户属于目标簇时,则可以将该待选用户作为潜在的目标用户,根据相应的投放规则,向该待选用户投放推荐信息,这样有利于同时进行用户类型以及用户集群的筛选,高精度地挖掘潜在的目标人群。
进一步地,为了尽量降低用户打扰度并得到较好的投入产出比,本说明书实施例提供的数据处理方法还根据预设的评估指标确定了每个目标簇对应的投放阈值,以提高所筛选出的潜在目标人群的置信度。具体来讲,该方法还可以包括:对于每个所述目标簇,执行以下步骤:根据属于所述目标簇的每个样本用户在每个所述用户簇中的概率,计算该样本用户为所述目标簇对应的用户类型的分值;基于所述目标簇中每个样本用户的所述分值,得到所述目标簇对应的投放阈值。
其中,上述根据属于所述目标簇的每个样本用户在每个所述用户簇中的概率,计算该样本用户为所述目标簇对应的用户类型的分值的具体过程可以包括:针对属于所述目标簇的每个样本用户,执行以下步骤:获取样本用户在每个所述用户类对应的最大概率,每个所述用户类对应的最大概率为该样本用户在该用户类包括的每个用户簇中的概率的最大值;基于预设规则以及样本用户在每个所述用户类对应的最大概率,得到该样本用户为所述目标簇对应的用户类型的分值。
举例来讲,假设在某应用场景中,将用户划分为两种类型,分别为目标用户和非目标用户,相应地,模型的输出层对应两个用户类,分别为目标用户类和非目标用户类。当将目标用户类作为目标类,且筛选出该目标类下的目标簇后,进一步评估目标簇中的每个样本用户为目标用户的分值。假设目标用户类包括4个目标用户簇,非目标用户类包括4个非目标用户簇,针对目标簇中的每个样本用户,将该样本用户在4个目标用户簇中的概率分布的最大值,作为该样本用户在目标用户类对应的最大概率,将该样本用户在4个非目标用户簇中的概率分布的最大值,作为该样本用户在非目标用户类对应的最大概率,进而基于该样本用户在目标用户类对应的最大概率P1以及在非目标用户类对应的最大概率P2,评估该样本用户为目标用户的分值。此时,可以将最大概率P1减去最大概率P2,将所得到的差值作为该样本用户为目标用户的分值。或者是,将所得到的差值进行归一化后的值作为该样本用户为目标用户的分值。例如,归一化过程可以为:将所得到的差值除以2后,再加上0.5。
当将用户划分为三种以上的类型时,相应地,模型的输出层对应三种以上的用户类。此时,可以根据样本用户在该目标簇对应用户类对应的最大概率减去该样本用户在其他用户类对应的最大概率的差值,评估该样本用户为该目标簇对应用户类型的分值。同理,可以直接将该差值作为该样本用户为该目标簇对应用户类型的分值。或者是,将所得到的差值进行归一化后的值作为该样本用户为该目标簇对应用户类型的分值。例如,归一化过程可以为:将所得到的差值除以2后,再加上0.5。
例如,当将用户划分为三种类型,分别为第一类型用户、第二类型用户和第三类型用户,且分别对应第一用户类、第二用户类和第三用户类时,要评估样本用户为第一用户类型的分值时,可以先得到该样本用户在第一用户类对应的最大概率P1′、在第二用户类对应的最大概率P2′以及在第三用户类对应的最大概率P3′,进而根据最大概率P1′与最大概率P2′和最大概率P3′之间的差值,即通过P1′-P2′-P3′得到的差值,评估该样本用户为第一用户类型的分值。同理,可以评估该样本用户为第二用户类型或第三用户类型的分值。
本说明书实施例中,上述基于所述目标簇中每个样本用户的所述分值,得到所述目标簇对应的投放阈值的实施过程可以为:按照由小到大的顺序,从预先设置的多个待选阈值中依次获取一个待选阈值,并获取所述目标簇中所述分值超过该待选阈值的样本用户,直至所述分值超过该待选阈值的样本用户中,所述目标簇对应类型的用户比例超过预设阈值,则将该待选阈值作为所述目标类簇对应的投放阈值。其中,预设阈值可以根据实际需要设置,例如,可以设置为0.8或0.9等。
具体来讲,可以按照由小到大的顺序,从预先设置的多个待选阈值中选取第一个待选阈值作为当前待选阈值;获取目标簇中分值高于当前待选阈值的样本用户;判断分值超过当前待选阈值的样本用户中,目标簇对应类型的用户比例是否超过预设阈值,若是,则将当前待选阈值作为该目标簇对应的投放阈值,反之,则将下一个待选阈值作为当前待选阈值,并重复上述获取目标簇中分值高于当前待选阈值的样本用户;以及判断分值超过当前待选阈值的样本用户中,目标簇对应类型的用户比例是否超过预设阈值的步骤,直至分值超过当前待选阈值的样本用户中,目标簇对应类型的用户比例超过预设阈值。
例如,当目标簇中样本用户为该目标簇对应的用户类型的分值范围为(0,1)时,可以按照0.01的步长,从0.01分到0.99分划分为99个待选阈值,从0.01分开始依次统计该目标簇的分值高于待选阈值的样本用户中,该目标簇对应类型的用户比例,直至满足该比例大于预设阈值时,将此时的待选阈值作为该目标簇对应的投放阈值。需要说明的是,当所确定的目标簇有多个时,则需要针对每个目标簇,执行上述过程,得到每个目标簇对应的投放阈值。
另外,在训练好目标模型,并确定好目标簇以及每个目标簇对应的投放阈值后,就可以进一步基于目标模型、目标簇以及每个目标簇对应的投放阈值来从众多候选用户中筛选出潜在的目标人群,以便于对这些潜在的目标人群进行推荐信息投放。因此,于本说明书一实施例中,本数据处理方法还可以包括目标人群确定步骤。具体来讲,如图4所示,目标人群确定步骤可以包括以下步骤S401至步骤S403。
步骤S401,将候选用户的特征信息输入所述目标模型中,输出所述候选用户的概率分布数据。
通过上述步骤S203训练好的目标模型,可以直接输出候选用户在每个用户簇中的概率,即得到候选用户的概率分布数据。这些概率分布数据可以既反映候选用户的类型,同时也可以反映候选用户所在的集群。
步骤S402,基于所述候选用户的概率分布数据,判断所述候选用户是否属于所述目标簇。
通过比较候选用户在各个用户簇中的概率,可以确定候选用户所属的用户簇,即所属的集群。先通过预先确定的目标簇对候选用户所在的集群进行筛选,若候选用户所属的用户簇不属于目标簇,则说明该候选用户不在所要进行推荐信息投放的集群内,则不对该候选用户进行推荐信息投放。若候选用户所属的用户簇属于目标簇,则说明该候选用户在所要进行推荐信息投放的集群内,则通过以下步骤S403对该候选用户进行进一步筛选。
步骤S403,当所述候选用户属于所述目标簇时,判断所述候选用户属于该目标簇对应的用户类型的分值是否超过该目标簇对应的投放阈值,若是,则判定所述候选用户属于该目标簇对应的用户类型。
在确定候选用户属于目标簇时,获取该候选用户为所属目标簇对应的用户类型的分值。若分值超过该目标簇对应的投放阈值,则判定该候选用户为所属目标簇对应类型,从而确定该候选用户为该类型的潜在目标用户。若分值超过该目标簇对应的投放阈值,则判定该候选用户不是该类型的潜在目标用户。
本实施例中,通过设置目标簇以及相应的投放阈值对候选用户进行筛选,能够同时实现对候选用户所在集群以及候选用户所属的用户类型进行筛选,有利于提高筛选结果的可靠性,实现高精度地潜在目标人群挖掘。
于本说明书一实施例中,在判定所述候选用户属于该目标簇对应的用户类型之后,本数据处理方法还可以包括:向所述候选用户投放预设的相应目标类对应的推荐信息。可以理解的是,目标簇与目标类对应。也就是说,在筛选出潜在的目标人群后,即可以向目标人群投放预先设置的推荐信息。推荐信息可以根据实际需要预先配置,与目标类对应。例如,当目标类包括一个时,则只需要配置该目标类对应的推荐信息;当目标类包括多个时,则每个目标类均需要筛选相应的潜在目标人群,此时需要配置每个目标类对应的推荐信息,且不同目标类可以对应于不同的推荐信息。
进一步地,为了保证目标模型的可靠性,需要实时对上述目标模型进行更新和维护,即可以根据推荐结果,对候选用户的类型进行标记,并将标记后的候选用户作为样本用户,添加到训练样本中,继续根据新的训练样本对目标模型进行训练。此时,在向所述候选用户投放预设的相应目标类对应的推荐信息之后,本数据处理方法还可以包括:基于所述候选用户对所述推荐信息的反馈数据,将所述候选用户的类型进行标记,并将标记后的候选用户的特征信息添加到所述训练样本中。
本说明书实施例提供的数据处理方法,通过训练好的目标模型同时评定用户所属的用户类以及所属的用户簇,提高了用户评定的准确率和全面性。进一步,将该目标模型应用于信息推荐场景中时,通过确定目标簇以及相应的投放阈值,提高潜在目标人群筛选结果的置信度,有利于实现高精度的潜在目标人群挖掘,从而降低推荐信息投放导致的用户打扰度,并得到较好的投入产出比。
第二方面,基于同一发明构思,本说明书实施例还提供了一种数据处理装置50,请参考图5,包括:
第一获取模块51,用于获取训练样本,所述训练样本包括样本用户的特征数据,所述样本用户包括预先标记好的两种以上不同类型的用户;
构建模块52,用于构建初始神经网络模型,所述初始神经网络模型的输出层为一个N维向量,所述N维向量对应两种以上用户类,每种所述用户类对应于一种类型的用户,每种用户类包括两个以上的用户簇,且所述N维向量中每个元素的值均表示用户属于相应用户簇的概率,其中,N为大于或等于4的整数;
训练模块53,用于根据所述训练样本对所述初始神经网络模型进行训练,得到目标模型。
作为一种可选的实施例,本数据处理装置50还可以包括:
第二获取模块54,用于获取每个所述样本用户基于所述目标模型得到的概率分布数据;
确定模块55,用于根据每个所述样本用户的概率分布数据,确定每个所述样本用户所属的用户簇;
目标簇筛选模块56,用于从所述两种以上用户类中确定目标类,并从所述目标类对应的每个用户簇中,筛选出该目标类对应类型的用户比例满足预设条件的用户簇作为该目标类对应的目标簇。
作为一种可选的实施例,本数据处理装置50还可以包括:第三获取模块57,用于对于每个所述目标簇,执行以下步骤:根据属于所述目标簇的每个样本用户在每个所述用户簇中的概率,计算该样本用户为所述目标簇对应的用户类型的分值;基于所述目标簇中每个样本用户的所述分值,得到所述目标簇对应的投放阈值。
作为一种可选的实施例,所述第三获取模块57包括:第一确定子模块571,用于按照由小到大的顺序,从预先设置的多个待选阈值中依次获取一个待选阈值,并获取所述目标簇中所述分值超过该待选阈值的样本用户,直至所述分值超过该待选阈值的样本用户中,所述目标簇对应类型的用户比例超过预设阈值,则将该待选阈值作为所述目标类簇对应的投放阈值。
作为一种可选的实施例,所述第三获取模块57包括:第二确定子模块572,用于针对属于所述目标簇的每个样本用户,执行以下步骤:获取样本用户在每个所述用户类对应的最大概率,每个所述用户类对应的最大概率为该样本用户在该用户类包括的每个用户簇中的概率的最大值;基于预设规则以及样本用户在每个所述用户类对应的最大概率,得到该样本用户为所述目标簇对应的用户类型的分值。
作为一种可选的实施例,本数据处理装置50还可以包括:候选用户筛选模块,用于:将候选用户的特征信息输入所述目标模型中,输出所述候选用户的概率分布数据;基于所述候选用户的概率分布数据,判断所述候选用户是否属于所述目标簇;当所述候选用户属于所述目标簇时,判断所述候选用户属于该目标簇对应的用户类型的分值是否超过该目标簇对应的投放阈值,若是,则判定所述候选用户属于该目标簇对应的用户类型。
作为一种可选的实施例,本数据处理装置50还可以包括:
投放模块,用于向所述候选用户投放预设的相应目标类对应的推荐信息;
反馈模块,用于基于所述候选用户对所述推荐信息的反馈数据,将所述候选用户的类型进行标记,并将标记后的候选用户的特征信息添加到所述训练样本中。
作为一种可选的实施例,所述训练模块53具体用于:基于预先定义的第一类损失函数和第二类损失函数,将所述训练样本输入所述初始神经网络模型进行训练,得到目标模型;其中,所述第一类损失函数用于使所述训练样本中每种类型的样本用户的概率分布均集中在该类型对应的用户类中任意一个用户簇上;所述第二类损失函数用于使得所述训练样本中的样本用户在每个用户簇上的分散度满足指定条件。
作为一种可选的实施例,所述第一类损失函数是按照以下步骤计算的:
针对所述训练样本中的每种类型的样本用户,执行距离计算步骤得到每种类型的样本用户对应的损失函数值,其中,所述距离计算步骤包括:
针对属于同一类型的每个样本用户,计算在模型训练过程中,每次迭代输出的N维向量与预先配置的相应特征向量集合中每个特征向量的距离,将所计算的距离中的最小值作为该样本用户对应的最小距离值;其中,不同所述用户类对应于不同的所述特征向量集合,所述特征向量集合包括多个N维特征向量,每个N维特征向量对应于相应用户类中的一个用户簇,且每个N维特征向量在相应用户簇对应位置的元素值为1,其余元素值均为0;
将属于同一类型的每个样本用户对应的最小距离值进行累加,得到该类型的样本用户对应的损失函数值;
将每种类型的样本用户对应的损失函数值进行累加,得到模型训练过程中每次迭代对应的第一类损失函数值。
作为一种可选的实施例,所述第二类损失函数是按照以下步骤计算的:
计算模型训练过程中,所述训练样本中b个样本用户每次迭代输出的N维向量与预先配置的N个N维特征向量之间的距离,构成b行N列的距离矩阵,其中,b为正整数;
获取所述距离矩阵的每列中最小的q个距离,将各列中最小的q个距离均相加得到每次迭代对应的第二类损失函数值,其中,q为大于或等于1且小于b的正整数。
作为一种可选的实施例,所述特征信息包括用户的画像特征和环境特征。
作为一种可选的实施例,所述样本用户包括预先标记好的两种类型的用户,分别为目标用户和非目标用户,所述N维向量对应两种用户类,分别为目标用户类和非目标用户类。
需要说明的是,本说明书实施例所提供的数据处理装置50,其中各个单元执行操作的具体方式已经在上述方法实施例中进行了详细描述,此处将不做详细阐述说明。
第三方面,基于与前述实施例中数据处理方法同样的发明构思,本发明还提供一种计算机设备,如图6所示,包括存储器604、一个或多个处理器602及存储在存储器604上并可在处理器602上运行的计算机程序,所述处理器602执行所述程序时实现前文所述数据处理方法的步骤。
其中,在图6中,总线架构(用总线600来代表),总线600可以包括任意数量的互联的总线和桥,总线600将包括由处理器602代表的一个或多个处理器和存储器604代表的存储器的各种电路链接在一起。总线600还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口605在总线600和接收器601和发送器603之间提供接口。接收器601和发送器603可以是同一个元件,即收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器602负责管理总线600和通常的处理,而存储器604可以被用于存储处理器602在执行操作时所使用的数据。
可以理解的是,图6所示的结构仅为示意,上述计算机设备还可包括比图6中所示更多或者更少的组件,或者具有与图6所示不同的配置。图6中所示的各组件可以采用硬件、软件或其组合实现。
第四方面,基于与前述实施例中数据处理方法的发明构思,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前文所述数据处理方法的任一方法的步骤。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本说明书的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本说明书范围的所有变更和修改。
显然,本领域的技术人员可以对本说明书进行各种改动和变型而不脱离本说明书的精神和范围。这样,倘若本说明书的这些修改和变型属于本说明书权利要求及其等同技术的范围之内,则本说明书也意图包含这些改动和变型在内。