本申请涉及互联网技术领域,尤其涉及一种信用分的获取、特征向量值的输出方法及其装置。
背景技术:
芝麻信用是独立的第三方信用评估以及信用管理机构,依据方方面面的信息,运用大数据以及云计算技术客观呈现个人的信用状况,通过连接各种服务,让每个人都能体验信用所带来的价值。具体的,芝麻信用通过分析大量的网络交易以及行为数据,对用户进行信用评估,这些信用评估可以帮助互联网金融企业对用户的还款意愿以及还款能力做出结论,继而为用户提供快速授信以及现金分期服务。例如,芝麻信用数据涵盖了信用卡还款、网购、转账、理财、水电煤缴费、租房信息、住址搬迁历史、社交关系等服务。
芝麻信用分是芝麻信用对海量信息数据的评估结果,可基于用户信用历史、行为偏好、履约能力、身份特质、人脉关系等五个维度确定芝麻信用分。
技术实现要素:
本申请提供一种信用分的获取、特征向量值的输出方法及其装置,以增强信用分的稳定性,避免信用分较大变化,提高使用体验。技术方案如下:
本申请提供一种信用分的获取方法,所述方法包括以下步骤:
获得用户的输入数据,并将所述输入数据提供给深度神经网络;
通过所述深度神经网络对所述输入数据进行处理,得到信用概率值;
利用所述深度神经网络输出的所述信用概率值获取所述用户的信用分;
其中,在所述深度神经网络内,选取缩放双曲正切函数作为激活函数,并使用所述缩放双曲正切函数对上一级别输出的第一特征向量值进行计算,得到第二特征向量值,并将所述第二特征向量值输出给下一级别。
所述选取缩放双曲正切函数作为激活函数的过程,具体包括:
确定双曲正切函数,并降低所述双曲正切函数的斜率,以得到缩放双曲正切函数,并选取所述缩放双曲正切函数作为所述深度神经网络的激活函数。
所述缩放双曲正切函数具体包括:scaledtanh(x)=β*tanh(α*x);
在使用所述缩放双曲正切函数对上一级别输出的第一特征向量值进行计算,得到第二特征向量值时,x为第一特征向量值,scaledtanh(x)为第二特征向量值,tanh(x)为双曲正切函数,β和α均为预设数值,且α小于1,大于0。
所述上一级别输出的第一特征向量值包括:
所述深度神经网络的隐藏层输出的一个数据维度的特征向量值;所述深度神经网络的模块层输出的多个数据维度的特征向量值。
本申请提供一种特征向量值的输出方法,应用在深度神经网络内,所述方法包括以下步骤:
选取缩放双曲正切函数作为所述深度神经网络的激活函数;
使用所述缩放双曲正切函数对所述深度神经网络的上一级别输出的第一特征向量值进行计算,得到第二特征向量值;
将所述第二特征向量值输出给所述深度神经网络的下一级别。
所述选取缩放双曲正切函数作为所述深度神经网络的激活函数,具体包括:确定双曲正切函数,并降低所述双曲正切函数的斜率,以得到缩放双曲正切函数,并选取所述缩放双曲正切函数作为所述深度神经网络的激活函数。
所述缩放双曲正切函数具体包括:scaledtanh(x)=β*tanh(α*x);
在使用所述缩放双曲正切函数对上一级别输出的第一特征向量值进行计 算,得到第二特征向量值时,x为第一特征向量值,scaledtanh(x)为第二特征向量值,tanh(x)为双曲正切函数,β和α均为预设数值,且α小于1,大于0。
本申请提供一种信用分的获取装置,所述装置具体包括:
获得模块,用于获得用户的输入数据;
提供模块,用于将所述输入数据提供给深度神经网络;
处理模块,用于通过所述深度神经网络对所述输入数据进行处理,得到信用概率值;其中,在所述深度神经网络内,选取缩放双曲正切函数作为激活函数,并使用所述缩放双曲正切函数对上一级别输出的第一特征向量值进行计算,得到第二特征向量值,并将所述第二特征向量值输出给下一级别;
获取模块,用于利用深度神经网络输出的信用概率值获取用户的信用分。
所述处理模块,具体用于在选取缩放双曲正切函数作为激活函数的过程中,确定双曲正切函数,并降低所述双曲正切函数的斜率,以得到缩放双曲正切函数,并选取所述缩放双曲正切函数作为所述深度神经网络的激活函数。
所述处理模块选取的所述缩放双曲正切函数具体包括:scaledtanh(x)=β*tanh(α*x);所述处理模块在使用所述缩放双曲正切函数对上一级别输出的第一特征向量值进行计算,得到第二特征向量值的过程中,x为第一特征向量值,scaledtanh(x)为第二特征向量值,tanh(x)为双曲正切函数,β和α均为预设数值,且α小于1,大于0。
所述上一级别输出的第一特征向量值包括:
所述深度神经网络的隐藏层输出的一个数据维度的特征向量值;所述深度神经网络的模块层输出的多个数据维度的特征向量值。
本申请提供一种特征向量值的输出装置,所述特征向量值的输出装置应用在深度神经网络内,所述特征向量值的输出装置具体包括:
选取模块,用于选取缩放双曲正切函数作为深度神经网络的激活函数;
获得模块,用于使用所述缩放双曲正切函数对所述深度神经网络的上一级别输出的第一特征向量值进行计算,得到第二特征向量值;
输出模块,用于将所述第二特征向量值输出给深度神经网络的下一级别。
所述选取模块,具体用于在选取缩放双曲正切函数作为所述深度神经网络的激活函数的过程中,确定双曲正切函数,并降低所述双曲正切函数的斜率,以得到缩放双曲正切函数,并选取所述缩放双曲正切函数作为所述深度神经网络的激活函数。
所述选取模块选取的所述缩放双曲正切函数具体包括:scaledtanh(x)=β*tanh(α*x);所述获得模块在使用所述缩放双曲正切函数对上一级别输出的第一特征向量值进行计算,得到第二特征向量值的过程中,x为第一特征向量值,scaledtanh(x)为第二特征向量值,tanh(x)为双曲正切函数,β和α均为预设数值,且α小于1,大于0。
基于上述技术方案,本申请实施例中,通过使用缩放双曲正切函数作为激活函数,以增强深度神经网络的稳定性。当深度神经网络应用在个人征信系统时,可以增强信用分的稳定性,避免信用分发生较大变化,提高使用体验。例如,随着时间的变化,当有用户的数据发生较大的变化时,如消费类的数据,在不同日期可能会有较大变化(如某天发生突变),可以保证用户的信用是比较稳定的状态,即信用分只有很小的变化,增强信用分的稳定性。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本申请一种实施方式中的深度神经网络的结构示意图;
图2是本申请一种实施方式中的激活函数的图形示意图;
图3是本申请一种实施方式中的特征向量值的输出方法的流程图;
图4是本申请一种实施方式中的缩放双曲正切函数的图形示意图;
图5是本申请一种实施方式中的信用分的获取方法的流程图;
图6是本申请一种实施方式中的信用分的获取装置所在设备的结构图;
图7是本申请一种实施方式中的信用分的获取装置的结构图;
图8是本申请一种实施方式中特征向量值的输出装置所在设备结构图;
图9是本申请一种实施方式中的特征向量值的输出装置的结构图。
具体实施方式
在本申请使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了基于用户信用历史、行为偏好、履约能力、身份特质、人脉关系等五个维度的数据确定出信用分(如芝麻信用分),在一个例子中,可以采用图1所示的dnn(deepneuralnetworks,深度神经网络)的结构来确定信用分,该深度神经网络的结构可以包括输入层(inputlayer)、隐藏层(networkinnetwork)、模块层(modulelayer)和输出层(outputlayer)等。
在深度神经网络的输入层,输入数据是用户信用历史、行为偏好、履约能力、身份特质、人脉关系等五个维度的数据,这些数据组成一个特征集合,该特征集合内包括大量数值,如特征集合(100,6,30000,-200,60,230,28)等。 针对该特征集合,需要对该特征集合进行特征工程(featureengineering)的处理,如对该特征集合进行归一化处理,得到一个特征向量值。例如,归一化处理得到一个特征向量值(0.2,0.3,0.4,0.8,0.9,-0.1,-0.5,0.9,0.8,0.96)。
其中,进行归一化处理的原因是:由于特征集合内的数据范围不同,有些数据的范围可能特别大,其导致的结果是收敛慢、训练时间长。而且数据范围大的数据在模式分类中的作用可能会偏大,而数据范围小的数据在模式分类中的作用可能会偏小,因此,可以通过对数据进行归一化处理,将数据映射到[0,1]区间、或[-1,1]区间、或更小的区间,以避免数据范围导致的问题。
在得到特征向量值(0.2,0.3,0.4,0.8,0.9,-0.1,-0.5,0.9,0.8,0.96)之后,假设该特征向量值包括用户信用历史对应的特征向量值(0.2,0.3),行为偏好对应的特征向量值(0.4,0.8),履约能力对应的特征向量值(0.9,-0.1),身份特质对应的特征向量值(-0.5,0.9),人脉关系对应的特征向量值(0.8,0.96),则将特征向量值(0.2,0.3,0.4,0.8,0.9,-0.1,-0.5,0.9,0.8,0.96)分解成上述五个维度的特征向量值,并将这五个维度的特征向量值送入隐藏层或者模块层。
根据实际需要,可以配置某维度的特征向量值进入隐藏层,配置某维度的特征向量值直接进入模块层,而不进入隐藏层。例如,配置用户信用历史、行为偏好、履约能力、身份特质等维度的特征向量值进入隐藏层,配置人脉关系维度的特征向量值进入模块层。基于此,将用户信用历史对应的特征向量值(0.2,0.3)、行为偏好对应的特征向量值(0.4,0.8)、履约能力对应的特征向量值(0.9,-0.1)、身份特质对应的特征向量值(-0.5,0.9)送入隐藏层进行处理,将人脉关系对应的特征向量值(0.8,0.96)送入模块层进行处理。
在深度神经网络的隐藏层,会为每个维度的特征向量值配置一个或者多个隐藏层,图1中以为每个维度的特征向量值配置两个隐藏层为例进行说明。由于各维度的隐藏层的处理相同,后续以一个维度的隐藏层的处理为例进行说明。针对第一个隐藏层,配置权值向量w1和偏置值b1,针对第二个隐藏层,配置权值向量w2和偏置值b2,权值向量和偏置值的配置过程不再赘述。
在获得输入层输出的特征向量值后,假设得到行为偏好对应的特征向量 值(0.4,0.8),则第一个隐藏层会对特征向量值(0.4,0.8)进行处理,在一个例子中,处理公式可以为特征向量值(0.4,0.8)*权值向量w1+偏置值b1。
之后,通常可以使用激活函数(如非线性函数)对隐藏层输出的特征向量值(即特征向量值(0.4,0.8)*权值向量w1+偏置值b1的结果)进行计算,得到一个新的特征向量值(假设为特征向量值1),并将该新的特征向量值输出给第二个隐藏层。其中,激活函数可以包括sigmoid(s型)函数、relu(rectifiedlinearunits,整流线性单元)函数、tanh(双曲正切)函数等。以relu函数为例进行说明,则该relu函数可以将隐藏层输出的特征向量值的所有特征值中,小于0的特征值置0,而大于0的特征值保持不变。
其中,激活函数的作用可以包括:加入非线性因素;减小实际数据的噪声,抑制边缘奇异性较大的数据;对前一层输出值进行约束等。
第二个隐藏层在获得特征向量值1后,会对特征向量值1进行处理,在一个例子中,处理公式可以为特征向量值1*权值向量w2+偏置值b2。之后,使用激活函数对第二个隐藏层输出的特征向量值进行计算,得到一个新的特征向量值(假设为特征向量值2),并将该新的特征向量值输出给模块层。
在深度神经网络的模块层,会将五个维度的特征向量值组合在一起,得到一个新的特征向量值,该特征向量值中会包含隐藏层输出给模块层的特征向量值,以及输入层直接输出给模块层的特征向量值。例如,该特征向量值中会包含用户信用历史对应的隐藏层输出给模块层的特征向量值、行为偏好对应的隐藏层输出给模块层的特征向量值、履约能力对应的隐藏层输出给模块层的特征向量值、身份特质对应的隐藏层输出给模块层的特征向量值、输入层直接输出给模块层的人脉关系对应的特征向量值。进一步的,使用激活函数对当前组合得到的特征向量值进行计算,得到一个新的特征向量值。
基于上述深度神经网络,为了确定出用户的信用分,可以包括两个阶段,第一阶段为训练阶段,第二阶段为预测阶段。在训练阶段中,通过使用大量的输入数据,对深度神经网络进行训练,从而得到一个能够确定出用户的信用分的模型。在预测阶段中,通过使用训练得到的深度神经网络,对当前用 户的输入数据进行预测,并利用预测结果得出当前用户的信用分。
针对训练阶段,在深度神经网络的输入层,针对用户信用历史、行为偏好、履约能力、身份特质、人脉关系等五个维度的输入数据,还可以为该输入数据设置一个信用标记,如设置信用标记0,以表示当前的输入数据是信用好的输入数据,或者,设置信用标记1,以表示当前的输入数据是信用不好的输入数据。这样,在经过上述输入层、隐藏层、模块层等流程的处理之后,在深度神经网络的模块层,在使用激活函数得到一个新的特征向量值之后,就可以得到该新的特征向量值对应信用标记0还是信用标记1。
当对大量输入数据设置信用标记,并执行上述输入层、隐藏层、模块层等流程的处理之后,就可以得到大量特征向量值对应信用标记0还是信用标记1,而大量的特征向量值中,一个特征向量值可能出现多次,且该特征向量值可能对应信用标记0,也可能对应信用标记1。这样,就可以得到每个特征向量值对应的信用好概率值(如信用是0的概率值)和信用不好概率值(如信用是1的概率值),并将信用好概率值和信用不好概率值输出给输出层。
其中,在得到大量特征向量值对应信用标记0还是信用标记1之后,可以使用分类器(如svm(supportvectormachine,支持向量机)分类器等)确定每个特征向量值对应的信用好概率值和信用不好概率值,在此不再赘述。
针对训练阶段,在深度神经网络的输出层,会记录每个特征向量值对应的信用好概率值和信用不好概率值,例如,针对某个特征向量值,记录的信用好概率值为90%,其表示当前特征向量值信用好的概率值是90%,记录的信用不好概率值为10%,其表示当前特征向量值信用不好的概率值是10%。
针对预测阶段,在深度神经网络的输入层,针对用户信用历史、行为偏好、履约能力、身份特质、人脉关系等五个维度的输入数据,由于最终需要确定的就是该输入数据是信用好的输入数据还是信用不好的输入数据,因此,当前不会为该输入数据设置信用标记。这样,在经过上述输入层、隐藏层、模块层等流程的处理之后,在深度神经网络的模块层,在使用激活函数得到一个新的特征向量值之后,可以将该新的特征向量值直接输出给输出层。
在深度神经网络的输出层,由于记录了大量的特征向量值与信用好概率值和信用不好概率值的对应关系,因此,在得到来自模块层的特征向量值之后,可以从本地记录的特征向量值中找到与当前得到的特征向量值所匹配的特征向量值,继而得到该特征向量值对应的信用好概率值和信用不好概率值。
基于当前得到的信用好概率值和信用不好概率值,可以对输入数据进行评分,以得到当前用户的信用分。例如,针对用户1的输入数据,经过深度神经网络后,得到信用好概率值为90%,信用不好概率值为10%,针对用户2的输入数据,经过深度神经网络后,得到信用好概率值为95%,信用不好概率值为5%,则可以为用户1打450的信用分,为用户2打600的信用分。
在上述过程中,无论是在隐藏层使用的激活函数,还是在模块层使用的激活函数,均可以使用sigmoid函数,relu函数,tanh函数。其中,sigmoid函数,relu函数,tanh函数的图形可以如图2所示。而且,sigmoid函数的计算公式可以为sigmoid(x)=1/(1+e^(-x)),relu函数的计算公式可以为relu(x)=max(0,x),tanh函数的计算公式可以为tanh(x)=(ex-e-x)/(ex+e-x)。
参考图2所示,在实现本申请的过程中,申请人注意到:对于sigmoid函数来说,当输入在-2.0-2.0之间变化时,输出在0.1-0.9之间变化,即输出始终大于0。对于relu函数来说,当输入在0-2.0之间变化时,输出在0-2.0之间变化,即输出始终大于等于0。对于tanh函数来说,当输入在-2.0-2.0之间变化时,输出在-1.0-1.0之间变化,即输出可能为正值,也可能未负值。
在普通的深度神经网络中,sigmoid函数、relu函数和tanh函数均可以使用,但是,在需要获得信用分的深度神经网络中,由于涉及五个维度的数据处理,而这五个维度的数据处理过程中,在实际应用中,有的维度的数据处理结果可能是负值,这样更能体现该维度的数据特性,这样,显然sigmoid函数和relu函数已经不再适用了,其无法使数据处理结果是负值。因此,针对获得信用分的深度神经网络来说,可以使用tanh函数作为激活函数。
进一步的,在使用tanh函数作为激活函数时,在经过归一化处理等过程后,输入范围一般在0-1之间。参考图2所示,对于tanh函数来说,在输入为0附近,输出是近似线性的,并且具有较大的斜率,这样,对于输入的变化来说,其对应的输出的变化也很大。例如,当输入由0变为0.1时,输出也由0变为0.1,当输入由0变为0.2时,输出也由0变为0.2。因此,在使用tanh函数作为激活函数时,当输入发生变化时,无法保证输出的稳定性。
在实际应用中,随着时间的变化,当有用户的数据发生较大的变化时,如消费类的数据,在不同日期可能会有较大变化(如某一天发生突变),但是用户的信用一般是比较稳定的状态,即信用分只有很小的变化。因此,在需要获得信用分的深度神经网络中,在使用tanh函数作为激活函数时,当数据发生较大变化时,无法保证信用分只有很小的变化,这样,显然tanh函数也不再适用了,需要重新设计一种新的激活函数,以在输入发生变化时,保证输出只有很小的变化,从而保证输出的稳定性。例如,当输入由0变为0.1时,输出由0变为0.01,当输入由0变为0.2时,输出由0变为0.018。
针对获得信用分的深度神经网络,在上述过程中,输入可以是指输入到激活函数的特征向量值,输出可以是指激活函数输出的特征向量值。
针对上述发现,本申请实施例中设计一种新的激活函数,并将该激活函数称为缩放双曲正切函数,在后续过程中详细说明该缩放双曲正切函数。当在深度神经网络内使用缩放双曲正切函数时,可以保证在输入发生变化时,输出只有很小的变化,从而保证输出的稳定性。基于该缩放双曲正切函数,本申请实施例提出一种特征向量值的输出方法,该方法可以应用在深度神经网络内,如图3所示,该特征向量值的输出方法具体可以包括以下步骤:
步骤301,选取缩放双曲正切函数作为深度神经网络的激活函数。
步骤302,使用缩放双曲正切函数对深度神经网络的上一级别输出的第一特征向量值进行计算,得到第二特征向量值。
步骤303,将第二特征向量值输出给深度神经网络的下一级别。
在深度神经网络内,为了加入非线性因素,减小实际数据的噪声,抑制 边缘奇异性较大的数据,对上一级别输出的特征向量值进行约束等考虑,通常会使用激活函数(如非线性函数)对深度神经网络的上一级别输出的第一特征向量值进行计算,得到一个新的第二特征向量值,并将该第二特征向量值输出给深度神经网络的下一级别。其中,深度神经网络的上一级别可以是指:将第一特征向量值输出给激活函数的隐藏层或者模块层等,隐藏层或者模块层在得到第一特征向量值后,会将第一特征向量值输出给激活函数,以使用激活函数对第一特征向量值进行计算,得到第二特征向量值。深度神经网络的下一级别可以是指:将激活函数处理后的第二特征向量值输出给的隐藏层或者模块层等,在使用激活函数对第一特征向量值进行计算,得到第二特征向量值之后,会将第二特征向量值输出给隐藏层或者模块层等。
在此基础上,本申请实施例中,可以选取缩放双曲正切函数(scaledtanh)作为深度神经网络的激活函数,而不是选取sigmoid函数、relu函数、tanh函数等作为深度神经网络的激活函数。进一步的,选取缩放双曲正切函数作为深度神经网络的激活函数的过程,具体可以包括但不限于如下方式:确定双曲正切函数,并降低该双曲正切函数的斜率,以得到一个缩放双曲正切函数,并选取该缩放双曲正切函数作为深度神经网络的激活函数。
其中,缩放双曲正切函数具体包括但不限于:scaledtanh(x)=β*tanh(α*x);基于此,在使用缩放双曲正切函数对上一级别输出的第一特征向量值进行计算,得到第二特征向量值时,x为第一特征向量值,scaledtanh(x)为第二特征向量值,tanh(x)为双曲正切函数,β和α均为预设数值,且α小于1,大于0。
双曲正切函数tanh(x)的计算公式可以为tanh(x)=(ex-e-x)/(ex+e-x),参考图2可以看出,tanh(x)的结果在(-1.0-1.0)之间,因此,tanh(α*x)的结果也在(-1.0-1.0)之间,这样,就可以通过预设数值β来控制输出值的范围,即输出值的范围是(-β,β)。在一种可行的实施方式中,可以选择β等于1,这样,输出值的范围就是(-1.0-1.0),即没有改变双曲正切函数的输出值范 围。
如图4所示,为缩放双曲正切函数的图形示意图,从图4可以看出,通过使用α控制了双曲正切函数的斜率,当选取α小于1时,则可以降低双曲正切函数的斜率。而且,随着α变小,双曲正切函数的斜率也在变小,因此缩放双曲正切函数对输入的敏感程度也在降低,达到增强输出稳定性的目的。
具体的,当α变小时,则(α*x)的结果也在变小,基于双曲正切函数的特性,tanh(α*x)的结果也在变小,因此,缩放双曲正切函数scaledtanh(x)的结果会变小。这样,当输入范围在0-1之间,且输入为0附近时,缩放双曲正切函数的输出不是近似线性的,且斜率较小,对于输入的变化来说,其对应的输出的变化较小。例如,当输入由0变为0.1时,输出可能只由0变为0.01,当输入由0变为0.2时,输出可能只由0变为0.018。因此,在使用缩放双曲正切函数作为激活函数时,当输入发生变化时,可以保证输出的稳定性。
在上述过程中,输入可以是指输入到缩放双曲正切函数的第一特征向量值,输出可以是指缩放双曲正切函数输出的第二特征向量值。
本申请实施例的上述过程中使用的缩放双曲正切函数,可以应用在深度神经网络的训练阶段,也可以应用在深度神经网络的预测阶段。
本申请实施例中设计的缩放双曲正切函数,可以应用在目前的任意深度神经网络中,即所有场景下的深度神经网络均可以使用缩放双曲正切函数作为激活函数。在一个可行的实施方式中,可以将缩放双曲正切函数应用在个人征信模型中,即在获得信用分的深度神经网络中使用缩放双曲正切函数作为激活函数。基于此,本申请实施例提出一种信用分的获取方法,该方法可以在深度神经网络内使用缩放双曲正切函数作为激活函数,从而保证在输入发生变化时,输出只有很小的变化,从而保证输出的稳定性。如图5所示,本申请实施例中提出的信用分的获取方法具体可以包括以下步骤:
步骤501,获得用户的输入数据,并将输入数据提供给深度神经网络。
步骤502,通过深度神经网络对输入数据进行处理,得到信用概率值;其中,在深度神经网络内,选取缩放双曲正切函数作为激活函数,并使用该缩放双曲正切函数对上一级别输出的第一特征向量值进行计算,得到第二特征向量值,并将该第二特征向量值输出给下一级别。
步骤503,利用深度神经网络输出的信用概率值获取用户的信用分。
本申请实施例中,输入数据可以是用户信用历史、行为偏好、履约能力、身份特质、人脉关系等五个维度的输入数据,此外,信用概率值可以是信用好概率值和/或信用不好概率值,基于当前得到的信用好概率值和/或信用不好概率值,可以对输入数据进行评分,以得到当前用户的信用分。针对信用分的获取的详细过程,可以参见上述流程,在此不再重复赘述。
在深度神经网络内,为了加入非线性因素,减小实际数据的噪声,抑制边缘奇异性较大的数据,对上一级别输出的特征向量值进行约束等考虑,通常会使用激活函数(如非线性函数)对深度神经网络的上一级别输出的第一特征向量值进行计算,得到一个新的第二特征向量值,并将该第二特征向量值输出给深度神经网络的下一级别。其中,深度神经网络的上一级别可以是指:将第一特征向量值输出给激活函数的隐藏层或者模块层等,隐藏层或者模块层在得到第一特征向量值后,会将第一特征向量值输出给激活函数,以使用激活函数对第一特征向量值进行计算,得到第二特征向量值。深度神经网络的下一级别可以是指:将激活函数处理后的第二特征向量值输出给的隐藏层或者模块层等,在使用激活函数对第一特征向量值进行计算,得到第二特征向量值之后,会将第二特征向量值输出给隐藏层或者模块层等。
其中,当在隐藏层使用激活函数时,则上一级别输出的第一特征向量值可以包括:深度神经网络的隐藏层输出的一个数据维度的特征向量值,例如,用户信用历史维度的特征向量值、或者身份特质维度的特征向量值。
当在模块层使用激活函数时,则上一级别输出的第一特征向量值可以包括:深度神经网络的模块层输出的多个数据维度的特征向量值。例如,用户信用历史维度的特征向量值、行为偏好维度的特征向量值、履约能力维度的 特征向量值、身份特质维度的特征向量值、人脉关系维度的特征向量值。
在此基础上,本申请实施例中,可以选取缩放双曲正切函数(scaledtanh)作为深度神经网络的激活函数,而不是选取sigmoid函数、relu函数、tanh函数等作为深度神经网络的激活函数。进一步的,选取缩放双曲正切函数作为深度神经网络的激活函数的过程,具体可以包括但不限于如下方式:确定双曲正切函数,并降低该双曲正切函数的斜率,以得到一个缩放双曲正切函数,并选取该缩放双曲正切函数作为深度神经网络的激活函数。
其中,缩放双曲正切函数具体包括但不限于:scaledtanh(x)=β*tanh(α*x);基于此,在使用缩放双曲正切函数对上一级别输出的第一特征向量值进行计算,得到第二特征向量值时,x为第一特征向量值,scaledtanh(x)为第二特征向量值,tanh(x)为双曲正切函数,β和α均为预设数值,且α小于1,大于0。
双曲正切函数tanh(x)的计算公式可以为tanh(x)=(ex-e-x)/(ex+e-x),参考图2可以看出,tanh(x)的结果在(-1.0-1.0)之间,因此,tanh(α*x)的结果也在(-1.0-1.0)之间,这样,就可以通过预设数值β来控制输出值的范围,即输出值的范围是(-β,β)。在一种可行的实施方式中,可以选择β等于1,这样,输出值的范围就是(-1.0-1.0),即没有改变双曲正切函数的输出值范围。
如图4所示,为缩放双曲正切函数的图形示意图,从图4可以看出,通过使用α控制了双曲正切函数的斜率,当选取α小于1时,则可以降低双曲正切函数的斜率。而且,随着α变小,双曲正切函数的斜率也在变小,因此缩放双曲正切函数对输入的敏感程度也在降低,达到增强输出稳定性的目的。
具体的,当α变小时,则(α*x)的结果也在变小,基于双曲正切函数的特性,tanh(α*x)的结果也在变小,因此,缩放双曲正切函数scaledtanh(x)的结果会变小。这样,当输入范围在0-1之间,且输入为0附近时,缩放双曲正 切函数的输出不是近似线性的,且斜率较小,对于输入的变化来说,其对应的输出的变化较小。例如,当输入由0变为0.1时,输出可能只由0变为0.01,当输入由0变为0.2时,输出可能只由0变为0.018。因此,在使用缩放双曲正切函数作为激活函数时,当输入发生变化时,可以保证输出的稳定性。
在上述过程中,输入可以是指输入到缩放双曲正切函数的第一特征向量值,输出可以是指缩放双曲正切函数输出的第二特征向量值。
本申请实施例的上述过程中使用的缩放双曲正切函数,可以应用在深度神经网络的训练阶段,也可以应用在深度神经网络的预测阶段。
基于上述技术方案,本申请实施例中,通过使用缩放双曲正切函数作为激活函数,以增强深度神经网络的稳定性。当深度神经网络应用在个人征信系统时,可以增强信用分的稳定性,避免信用分发生较大变化,提高使用体验。例如,随着时间的变化,当有用户的数据发生较大的变化时,如消费类的数据,在不同日期可能会有较大变化(如某天发生突变),可以保证用户的信用是比较稳定的状态,即信用分只有很小的变化,增强信用分的稳定性。
对于上述特征向量值的输出方法、信用分的获取方法,可以应用在目前的任意设备上,只要该设备能够使用深度神经网络做数据处理即可,如可以应用在odps(opendataprocessingservice,开放数据处理服务)平台上。
基于与上述方法同样的申请构思,本申请实施例还提供一种信用分的获取装置,应用在开放数据处理服务平台上。其中,该信用分的获取装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在的开放数据处理服务平台的处理器,读取非易失性存储器中对应的计算机程序指令形成的。从硬件层面而言,如图6所示,为本申请提出的信用分的获取装置所在的开放数据处理服务平台的一种硬件结构图,除了图6所示的处理器、非易失性存储器外,开放数据处理服务平台还可以包括其他硬件,如负责处理报文的转发芯片、 网络接口、内存等;从硬件结构上来讲,该开放数据处理服务平台还可能是分布式设备,可能包括多个接口卡,以便在硬件层面进行报文处理的扩展。
如图7所示,为本申请提出的信用分的获取装置的结构图,该装置包括:
获得模块11,用于获得用户的输入数据;
提供模块12,用于将所述输入数据提供给深度神经网络;
处理模块13,用于通过所述深度神经网络对所述输入数据进行处理,得到信用概率值;其中,在所述深度神经网络内,选取缩放双曲正切函数作为激活函数,并使用所述缩放双曲正切函数对上一级别输出的第一特征向量值进行计算,得到第二特征向量值,并将所述第二特征向量值输出给下一级别;
获取模块14,用于利用深度神经网络输出的信用概率值获取用户的信用分。
所述处理模块13,具体用于在选取缩放双曲正切函数作为激活函数的过程中,确定双曲正切函数,降低所述双曲正切函数的斜率,以得到缩放双曲正切函数,并选取所述缩放双曲正切函数作为所述深度神经网络的激活函数。
本申请实施例中,所述处理模块13选取的所述缩放双曲正切函数具体包括:scaledtanh(x)=β*tanh(α*x);所述处理模块13在使用所述缩放双曲正切函数对上一级别输出的第一特征向量值进行计算,得到第二特征向量值的过程中,x为第一特征向量值,scaledtanh(x)为第二特征向量值,tanh(x)为双曲正切函数,β和α均为预设数值,且α小于1,大于0。
本申请实施例中,所述上一级别输出的第一特征向量值包括:所述深度神经网络的隐藏层输出的一个数据维度的特征向量值;所述深度神经网络的模块层输出的多个数据维度的特征向量值。
其中,本申请装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
基于与上述方法同样的申请构思,本申请实施例还提供一种特征向量值的输出装置,应用在开放数据处理服务平台上。该特征向量值的输出装置可以通过软件实现,也可通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在的开放数据处理服务平台的处理器,读取非易失性存储器中对应的计算机程序指令形成的。从硬件层面而言,如图8所示,为本申请提出的特征向量值的输出装置所在的开放数据处理服务平台的一种硬件结构图,除了图8所示的处理器、非易失性存储器外,开放数据处理服务平台还可以包括其他硬件,如负责处理报文的转发芯片、网络接口、内存等;从硬件结构上来讲,开放数据处理服务平台还可能是分布式设备,可能包括多个接口卡,以便在硬件层面进行报文处理的扩展。
如图9所示,为本申请提出的特征向量值的输出装置的结构图,应用在深度神经网络内,所述特征向量值的输出装置具体包括:
选取模块21,用于选取缩放双曲正切函数作为深度神经网络的激活函数;
获得模块22,用于使用所述缩放双曲正切函数对所述深度神经网络的上一级别输出的第一特征向量值进行计算,得到第二特征向量值;
输出模块23,用于将第二特征向量值输出给深度神经网络的下一级别。
本申请实施例中,所述选取模块21,具体用于在选取缩放双曲正切函数作为所述深度神经网络的激活函数的过程中,确定双曲正切函数,并降低所述双曲正切函数的斜率,以得到缩放双曲正切函数,并选取所述缩放双曲正切函数作为所述深度神经网络的激活函数。
本申请实施例中,所述选取模块21选取的所述缩放双曲正切函数具体包括:scaledtanh(x)=β*tanh(α*x);所述获得模块22在使用所述缩放双曲正切函数对上一级别输出的第一特征向量值进行计算,得到第二特征向量值的过程中,x为第一特征向量值,scaledtanh(x)为第二特征向量值,tanh(x)为双曲正切函数,β和α均为预设数值,且α小于1,大于0。
其中,本申请装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本申请所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可进一步拆分成多个子模块。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本申请的几个具体实施例,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。