一种数据开放输出模型的生成方法、装置和计算设备
技术领域
本发明涉及互联网技术领域,尤其涉及一种数据开放输出模型的生成方法、装置和计算设备。
背景技术
随着互联网技术的快速发展和电子商务的日渐普及,网络信息资源的数量急剧增长,信息提供商总是希望能够获取更多的用户数据,以便根据用户偏好来推荐其可能感兴趣的商品资源。现有的数据提供方在对数据使用方(信息提供商)输出数据时,大部分都是将原始数据以明文的方式直接输出,这样会导致用户的隐私泄漏问题。而如果将原始数据加工为标签一类的数据进行输出,则会漏损很多用户信息,数据使用方根据这些数据来向客户对应推荐最合适的商品资源,推荐效果会大大折扣,影响产品的落地转化率。
因此,需要提供一种更好既能保护用户隐私,又能输出更多用户信息的数据输出方案。
发明内容
为此,本发明提供一种数据开放输出模型的生成方法、装置和计算设备,以力图解决或至少缓解上面存在的问题。
根据本发明的一个方面,提供一种数据开放输出模型的生成方法,适于在计算设备中执行,该数据开放输出模型适于将输入的稀疏矩阵分解为至少三个子矩阵,并将其中两个子矩阵重构为输出矩阵,该方法包括步骤:获取M个用户标识所对应的N个用户特征的原始数据,生成M×N的第一稀疏矩阵;根据第一稀疏矩阵对预训练的第一数据开放输出模型进行训练,得到第二数据开放输出模型;接收某数据使用方提交的L个用户标识,并获取各用户标识所对应的N个用户特征的原始数据,生成L×N的第二稀疏矩阵;将第二稀疏矩阵拼接到第一稀疏矩阵中,得到该数据使用方的模型训练矩阵;以及根据模型训练矩阵对第二数据开放输出模型进行训练,得到应用于该数据使用方的数据开放输出模型。
可选地,在根据本发明的方法中,还包括步骤:将各数据使用方的模型训练矩阵和数据开放输出模型与对应的数据使用方进行账号绑定。
可选地,在根据本发明的方法中,还包括步骤:接收该数据使用方提交的包含多个用户标识的数据输出请求;获取各用户标识所对应的N个用户特征的原始数据,生成该数据输出请求所对应的数据请求矩阵;将该数据请求矩阵输入到该数据使用方的数据开放输出模型中,得到对应的输出矩阵;以及将该输出矩阵进行开放输出,以便该数据使用方根据该输出矩阵进行用户行为预测。
可选地,在根据本发明的方法中,还包括步骤:响应于数据使用方提交的模型更新请求,将所有生成过的数据请求矩阵均拼接到该数据使用方的当前模型训练矩阵中,得到新模型训练矩阵;以及根据该新模型训练矩阵对该数据使用方的当前数据开放输出模型进行训练,得到新的数据开放输出模型。
可选地,在根据本发明的方法中,还包括步骤:接收该数据使用方所提交的包含多个用户标识的数据输出请求;获取各用户标识所对应的N个用户特征的原始数据,生成该数据输出请求所对应的数据请求矩阵;将该数据请求矩阵拼接到该数据使用方的当前模型训练矩阵中,得到新模型训练矩阵;根据新模型训练矩阵对该数据使用方的当前数据开放输出模型进行训练,得到新数据开放输出模型;以及将该数据请求矩阵输入到该数据使用方的新数据开放输出模型中,得到对应的输出矩阵后进行开放输出。
可选地,在根据本发明的方法中,数据使用方中训练有预测模型,该预测模型能够根据所述输出矩阵输出对应的用户行为预测结果。
可选地,在根据本发明的方法中,数据开放输出模型将两个子矩阵重构为输出矩阵的步骤为:分别从两个子矩阵中截取出一个截断矩阵,并将两个截断矩阵相乘得到该输出矩阵。
可选地,在根据本发明的方法中,数据开放输出模型为奇异值分解模型、词向量模型或变分自编码器模型。
可选地,在根据本发明的方法中,用户特征包括安装应用、地理位置、地理位置偏好、设备信息和设备联网信息中的至少一类。
可选地,在根据本发明的方法中,计算设备中还存储有各用户标识所对应的唯一企业标识,且用户特征的原始数据以唯一企业标识为索引进行存储。
根据本发明的另一个方面,提供了一种数据开放输出模型的生成装置,适于驻留在计算设备中,所述数据开放输出模型适于将输入的稀疏矩阵分解为至少三个子矩阵,并将其中两个子矩阵重构为输出矩阵,该装置包括:第一生成模块,适于获取M个用户标识所对应的N个用户特征的原始数据,生成M×N的第一稀疏矩阵;第一训练模块,适于根据第一稀疏矩阵对预训练的第一数据开放输出模型进行训练,得到第二数据开放输出模型;第二生成模块,适于接收某数据使用方提交的L个用户标识,并获取各用户标识所对应的N个用户特征的原始数据,生成L×N的第二稀疏矩阵;矩阵拼接模块,适于将第二稀疏矩阵拼接到第一稀疏矩阵中,得到该数据使用方的模型训练矩阵;以及第二训练模块,适于根据模型训练矩阵对第二数据开放输出模型进行训练,得到应用于该数据使用方的数据开放输出模型。
可选地,在根据本发明的装置中,还包括:账号绑定模块,适于将各数据使用方的模型训练矩阵和数据开放输出模型与对应的数据使用方进行账号绑定。
可选地,在根据本发明的装置中,还包括模型应用模块,适于:接收该数据使用方提交的包含多个用户标识的数据输出请求;获取各用户标识所对应的N个用户特征的原始数据,生成该数据输出请求所对应的数据请求矩阵;将该数据请求矩阵输入到该数据使用方的数据开放输出模型中,得到对应的输出矩阵;以及将该输出矩阵进行开放输出,以便该数据使用方根据该输出矩阵进行用户行为预测。
可选地,在根据本发明的装置中,还包括模型更新模块,适于:响应于数据使用方提交的模型更新请求,将所有生成过的数据请求矩阵均拼接到该数据使用方的当前模型训练矩阵中,得到新模型训练矩阵;以及根据该新模型训练矩阵对该数据使用方的当前数据开放输出模型进行训练,得到新的数据开放输出模型。
可选地,在根据本发明的装置中,模型应用模块还适于:接收该数据使用方所提交的包含多个用户标识的数据输出请求;获取各用户标识所对应的N个用户特征的原始数据,生成该数据输出请求所对应的数据请求矩阵;将该数据请求矩阵拼接到该数据使用方的当前模型训练矩阵中,得到新模型训练矩阵;根据新模型训练矩阵对该数据使用方的当前数据开放输出模型进行训练,得到新数据开放输出模型;以及将该数据请求矩阵输入到该数据使用方的新数据开放输出模型中,得到对应的输出矩阵后进行开放输出。
根据本发明的又一个方面,提供一种计算设备,包括至少一个处理器;以及包括计算机程序指令的至少一个存储器;所述至少一个存储器和所述计算机程序指令被配置为与所述至少一个处理器一起使得所述计算设备执行如上所述的数据开放输出方法。
根据本发明的又一个方面,提供一种存储一个或多个程序的可读存储介质,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行如上所述的数据开放输出方法。
根据本发明的技术方案,数据持有方为每个数据使用方都训练一个对应的数据开放输出模型,该模型可以向数据使用方提供数据开放输出服务,所输出的输出矩阵不包含用户的隐私信息,但又代表了用户的隐含表征,能够最大限度的为数据使用方提供用户行为信息。初始状态下,各数据使用方可共用一个M×N的第一稀疏矩阵对数据开放输出模型进行初次训练。对于任一数据使用者,数据持有方从该数据使用方中得到L个用户标识,提取这些用户标识所对应的N个用户特征的原始数据,生成L×N的第二稀疏矩阵。将第一和第二矩阵拼接得到(M+L)×N的该数据使用方的模型训练矩阵,并用该模型训练矩阵对初次训练过的模型进行再训练,从而得到该数据使用方的数据开放输出模型。
本发明以机器学习的方式对原始数据进行数据变换和隐含表征获取,将变换后的数据对外输出。这种输出数据无法被人类理解,但可以被数据使用方中的机器学习模型理解并加以使用。本发明既可提升数据使用方的建模效果,又解决了数据输出安全性的问题,保护了用户隐私信息。
进一步地,本发明还可以在提供数据开放输出的服务中,不断提高模型的精度,以为数据使用方提供更好的输出结果。具体地,其可以基于该再训练的数据开放输出模型进行数据开放输出,然后当数据使用方提出更新模型时,将历史处理过的输入矩阵都拼接到当前模型训练矩阵中,得到新模型训练矩阵,并根据该新训练矩阵对模型进行训练更新。或者,在每次接收数据输出请求而需要输出数据之前,都会将该请求对应的矩阵拼接到当前模型训练矩阵中,得到新模型训练矩阵,进而对模型进行训练更新。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的计算设备100的结构框图;
图2示出了根据本发明一个实施例的数据开放输出模型的生成方法200的流程图;
图3示出了根据本发明一个实施例的数据开放输出过程300的流程图;
图4示出了根据本发明另一个实施例的数据开放输出过程400的流程图;
图5示出了根据本发明一个实施例的数据开放输出模型的生成装置500的结构框图;以及
图6示出了根据本发明一个实施例的数据开放输出模型的生成装置600的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1是根据本发明一个实施例的计算设备100的框图。在基本的配置102中,计算设备100典型地包括系统存储器106和一个或者多个处理器104。存储器总线108可以用于在处理器104和系统存储器106之间的通信。
取决于期望的配置,处理器104可以是任何类型的处理,包括但不限于:微处理器(μP)、微控制器(μC)、数字信息处理器(DSP)或者它们的任何组合。处理器104可以包括诸如一级高速缓存110和二级高速缓存112之类的一个或者多个级别的高速缓存、处理器核心114和寄存器116。示例的处理器核心114可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器118可以与处理器104一起使用,或者在一些实现中,存储器控制器118可以是处理器104的一个内部部分。
取决于期望的配置,系统存储器106可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。系统存储器106可以包括操作系统120、一个或者多个应用122以及程序数据124。在一些实施方式中,应用122可以布置为在操作系统上利用程序数据124进行操作。程序数据124包括指令,在根据本发明的计算设备100中,程序数据124包含用于执行数据开放输出模型的生成方法200的指令。
计算设备100还可以包括有助于从各种接口设备(例如,输出设备142、外设接口144和通信设备146)到基本配置102经由总线/接口控制器130的通信的接口总线140。示例的输出设备142包括图形处理单元148和音频处理单元150。它们可以被配置为有助于经由一个或者多个A/V端口152与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口144可以包括串行接口控制器154和并行接口控制器156,它们可以被配置为有助于经由一个或者多个I/O端口158和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备146可以包括网络控制器160,其可以被布置为便于经由一个或者多个通信端口164与一个或者多个其他计算设备162通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
计算设备100可以实现为服务器,例如文件服务器、数据库服务器、应用程序服务器和WEB服务器等,也可以实现为小尺寸便携(或者移动)电子设备的一部分,这些电子设备可以是诸如蜂窝电话、个人数字助理(PDA)、个人媒体播放器设备、无线网络浏览设备、个人头戴设备、应用专用设备、或者可以包括上面任何功能的混合设备。计算设备100还可以实现为包括桌面计算机和笔记本计算机配置的个人计算机。在一些实施例中,计算设备100被配置为执行数据开放输出模型的生成方法200。
应当理解,数据开放输出也就是数据持有方(如第三方数据公司)对外界开放数据的使用权限,数据使用者可以从数据持有方获取合法合规的数据。而数据开放输出模型可以将输入的稀疏矩阵分解为至少三个子矩阵,并将其中两个子矩阵重构为输出矩阵。这种输出矩阵无法被人类理解,但可以被数据使用方中的预测模型等机器学习模型理解并加以使用。
图2示出了根据本发明一个实施例的数据开放输出模型的生成方法200的流程图,适于在计算设备100中执行。如图2所示,该方法始于步骤S210。
在步骤S210中,获取M个用户标识所对应的N个用户特征的原始数据,生成M×N的第一稀疏矩阵。
根据一个实施例,用户标识例如可以是用户名、设备标识、手机号、IMEI、MAC、AndroidID、IDFV、IDFV等。而且,计算设备中还可以存储有各类用户标识所对应的唯一企业标识(TDID),该唯一企业标识是数据持有方根据一定规则在采集端为每个用户生成的唯一标识,用户特征的原始数据也可以该唯一企业标识为索引进行存储。这样,获取各用户标识对应的原始数据时,就可检索各用户标识所对应的唯一企业标识,并以该唯一企业标识为索引来获取相对应的原始数据。
根据另一个实施例,N个用户特征例如可以是N个安装应用、N个应用偏好、N个地理位置、N个地理位置偏好、N个设备信息或N个设备联网信息等等。应用偏好比如学习类应用偏好、视频类应用偏好、交友聊天类偏好等。地理位置指用户是否在某地理位置出现过,地理位置偏好例如可以是商业聚集区偏好、白领聚集区偏好、住宅区偏好。对应的原始数据例如用户是否安装过各应用、是否在各商业聚集区或各白领聚集区中出现过。通常,用户的应用偏好、地理位置偏好等分别可对用户的安装应用和出现过的地理位置进行归属分析得到。
设备信息可以包括手机厂家、型号、版本、内存、操作系统、运行商、像素、内核等常用手机配置项,如是否为某厂家、是否为某型号等。设备联网信息即设备与互联网的通信及连接信息,其包括是否通过无线网络连接,是否通过蜂窝网络连接;对于无线网络,其还包括所连接的无线网络属性,所扫描到的无线源等。此外,N个用户特征还可以是非结构化数据,如某一张图片上每个位置的像素点等。
通常,可以将M个用户的所有同类型用户特征都提取出来,然后进行去重后得到用户特征N的具体数值。比如,获取每个用户安装的所有应用,然后对所有这些应用进行去重,如M个用户安装的应用总数去重后个数为N。将该原始数据变换为M×N的稀疏矩阵,M个用户标识对应生成的稀疏矩阵共有M行,每行代表一个用户安装的应用列表,每列对应一个应用。若第三行第五列为0,则表示第三个用户没有安装第五列对应的应用。
应当理解,原始数据可以从数据库等数据存储设备中获取,且获取到原始数据后,还可以对该数据进行萃取、转置和加载(Extraction-Transform-Load,ETL)处理,如根据用户标识进行去重和清洗的预处理操作。这是本领域比较成熟的技术,这里不再赘述。
稀疏矩阵相对普通矩阵来比,能够极大的节省存储空间。根据一个实施例,可以根据以下方法构造第一稀疏矩阵:创建一个M×N的矩阵,将其中的值全部填充为零;逐行扫描,如果用户在某位置处有对应行为(如安装有对应应用),则将该处的值替换为1,直到扫描完成;以及记录并存储数据为1的行和列。存储下来的这些信息实际上可认为是一个稀疏矩阵,通过这些信息,可以随时还原成原始矩阵。
随后,在步骤S220中,根据第一稀疏矩阵对预训练的第一数据开放输出模型进行训练,得到第二数据开放输出模型。
根据一个实施例,数据开放输出模型可以包括矩阵分解模块和矩阵重构模块,其中矩阵分解模型将输入的稀疏矩阵分解为至少三个子矩阵,矩阵重构模块将其中两个子矩阵重构为输出矩阵。其中,数据开放输出模型还可以对进行重构的两个子矩阵进行截断,即分别从该两个子矩阵中截取出一个截断矩阵,并将两个截断矩阵相乘得到该输出矩阵,以此降低矩阵维度,提高数据处理速度。该数据开放输出模型可以是为奇异值分解模型(SVD)、词向量模型Word2vec或变分自编码器模型(Variational Auto-Encoder),进一步地可以是截断奇异值分解模型(TSVD)。
以截断奇异值分解模型为例,其可以将输入的稀疏矩阵分解为第一酉矩阵U、奇异值矩阵S和第二酉矩阵V三个子矩阵,并截取子矩阵U的前K列得到U截断矩阵,截取子矩阵S的前K行和前K列得到S截断矩阵,并将两个截断矩阵相乘得到输出矩阵。假设原始矩阵是1,000行10,000列,那么分解后即可得到如下三个子矩阵:U矩阵1,000*1,000,Sigma矩阵1,000*1,000,V矩阵1,000*10,000。矩阵截断时可以只保留U矩阵的前512列,于是三个矩阵的维度就变成了:1,000*512、512*512、512*10,000。这样将两个截断矩阵相乘后输出矩阵的维度为1,000*512。可以看到,输出矩阵与输入矩阵有着相同的行数,每一行仍旧代表一个用户。但是输出矩阵的列数变为了512,与原始矩阵中每一列是一个应用不同,此时的输出矩阵中每一列对应一个特征,该特征不具备可解释性,就可保证输出数据不泄露用户隐私。
一般地,模型训练过程主要是为了将分解后的多个子矩阵还原后尽可能的接近原始矩阵,如利用梯度下降算法调整学习速率等参数,使每个位置处的真实矩阵值和还原矩阵值的误差平方和(目标函数)最小,以达到最优的矩阵分解算法。此外,还可以在目标函数中加入正则化参数(即过拟合的惩罚项)来防止过拟合。本领域技术人员可以根据现有技术对数据开放输出模型进行训练,包括矩阵截断维度、模型迭代次数、学习率等模型参数的选择和调整,这里不再赘述。
随后,在步骤S230中,接收某数据使用方提交的L个用户标识,并获取各用户标识所对应的N个用户特征的原始数据,生成L×N的第二稀疏矩阵。
随后,在步骤S240中,将第二稀疏矩阵拼接到第一稀疏矩阵中,得到该数据使用方的模型训练矩阵。也就是将L×N的第二稀疏矩阵拼接到作为初始训练集的M×N的第一稀疏矩阵下,得到该数据使用方的(M+L)×N的模型训练矩阵。
随后,在步骤S240中,根据模型训练矩阵对第二数据开放输出模型进行训练,得到应用于该数据使用方的数据开放输出模型。
这几步主要是在第一稀疏矩阵的基础上加上专属于各数据使用方的第二稀疏矩阵,以训练专属于各数据使用方的数据开放输出模型。其中,各数据使用方可共用一个第一稀疏矩阵和第二数据开放模型,但根据各数据使用方所发来的用于训练模型的多个用户标识可生成不同的第二稀疏矩阵。共有的第一稀疏矩阵加上各自的第二稀疏矩阵后,就可以训练出每个使用方所专属的模型。当然,第一稀疏矩阵也可以不共有,而直接从数据库存储中随机为每个数据使用方选取M个用户标识生成第一稀疏矩阵,这样也可实现初始数据的平等性。
此外,本发明还可以最终确定的将各数据使用方的模型训练矩阵和数据开放输出模型与对应的数据使用方进行账号绑定。根据各数据使用方所绑定的专属模型,计算设备100也就是数据持有方,就可以针对性地为各数据使用方提供数据开放输出服务。
根据本发明的一个实施例,方法200还可以包括计算设备100向数据使用方进行数据开放输出的过程,图3示出了根据本发明一个实施例的数据开放输出过程300的流程图,如图3所示,该过程始于步骤S310。
在步骤S310中,接收该数据使用方提交的包含多个用户标识的数据输出请求。该场景一般是数据使用方向想要从数据持有方中获取该多个用户标识所对应的输出矩阵,就会向数据持有方发送该数据输出请求。
随后,在步骤S320中,获取各用户标识所对应的N个用户特征的原始数据,生成该数据输出请求所对应的数据请求矩阵。若数据使用方发送了K个用户标识,则对应生成K×N的数据请求矩阵。
随后,在步骤S330中,将该数据请求矩阵输入到该数据使用方的数据开放输出模型中,得到对应的输出矩阵。也就是将数据使用方的数据请求矩阵输入到该数据使用方当前所绑定的数据开放输出模型中进行学习。
随后,在步骤S340中,将该输出矩阵进行开放输出,以便该数据使用方根据该输出矩阵进行用户行为预测。
在此基础上,方法200还可以定期对数据使用方所绑定的数据开放输出模型进行更新,其具体步骤可以包括:响应于数据使用方提交的模型更新请求,将所有生成过的数据请求矩阵均拼接到该数据使用方的当前模型训练矩阵中,得到新模型训练矩阵;以及根据该新模型训练矩阵对该数据使用方的当前数据开放输出模型进行训练,得到新的数据开放输出模型。
也就是,计算设备100采用当前所绑定的数据开放输出模型为数据使用方处理过多次数据输出请求,每次请求都生成了一个数据请求矩阵,当数据使用方提出需要更新模型时,计算设备100将所有生成过的数据请求矩阵都拼接到其当前绑定的模型训练矩阵中,得到新模型训练矩阵,以对当前模型进行更新训练后得到新模型。这样,新训练矩阵和新模型就代替了原有的训练矩阵和模型,与该数据使用方进行账号绑定,后续的数据输出请求也会基于该新模型进行处理。而当数据使用方提出再次更新模型时,就会继续生成新的训练矩阵和模型,依次类推。这种模型更新方法实际可认为是处理多次数据输出请求后统一进行一次训练矩阵和模型的更新,在保证模型精度的同时,又能降低数据运算和系统维护的工作量。
图4示出了根据本发明另一个实施例的数据开放输出过程400的流程图,其实际对应另一种模型更新方法,也就是每处理一次数据输出请求就进行一次模型更新。如图4所示,该过程始于步骤S410。
在步骤S410中,接收该数据使用方所提交的包含多个用户标识的数据输出请求。
随后,在步骤S420中,获取各用户标识所对应的N个用户特征的原始数据,生成该数据输出请求所对应的数据请求矩阵。这两步与步骤S310和S320相同,这里不再赘述。
随后,在步骤S430中,将该数据请求矩阵拼接到该数据使用方的当前模型训练矩阵中,得到新模型训练矩阵。假设数据请求矩阵为K×N,当前的模型训练矩阵为(M+L)×N,则拼接后的新模型训练矩阵为(M+L+K)×N。
随后,在步骤S440中,根据新模型训练矩阵对该数据使用方的当前数据开放输出模型进行训练,得到新数据开放输出模型。
随后,在步骤S450中,将该数据请求矩阵输入到该数据使用方的新数据开放输出模型中,得到对应的输出矩阵后进行开放输出。
也就是每次处理数据输出请求时,先拼接数据请求矩阵以对模型进行更新,再用更新后的模型处理该数据请求矩阵。这种服务方法每次都能保证单个的数据请求矩阵任务与拼接后的系统矩阵任务具有分解后的子矩阵一致性,不会出现过大偏差,提高矩阵分解的精度,进而模型的精度,从而为数据使用方提供最精准的数据。
如前文所述,数据开放输出模型的输出矩阵与输入矩阵行数相同,每一行仍旧代表一个用户,但输出矩阵的列数变少,与原始矩阵中每一列是一个用户特征(如对应一个应用)不同,此时的输出矩阵中每一列对应一个不具备可解释性的特征,这种输出数据无法被人类理解,但可以被机器学习模型理解并加以使用。将输出矩阵直接输出,数据使用方可以通过数据接口调用该输出矩阵,但其无法拿到第三个子矩阵(如V矩阵),故而无法还原得到原始矩阵,也就无法还原出任何与用户相关的信息。
根据一个实施例,数据使用方中训练有预测模型(例如风控模型、金融产品偏好模型等),该预测模型可以根据该输出矩阵输出对应的用户行为预测结果,如对某产品的喜好程度或使用倾向。此外,预测模型还可输出该用户的特征行为标签等,如偏好学习类应用、视频类应用等。其中,数据使用方可以预先从数据持有方中获取多个用户的输出矩阵和对应的用户行为特征信息来对该预测模型进行训练,其具体训练方法是本领域比较常见的技术,这里不再赘述。
通常,数据持有方可为每个数据使用方建立专门的账号,如邮箱账号,当在数据输出平台上接收到某数据使用方的账号发来的多个用户标识时,就进行相应数据获取和模型学习过程,生成对应的输出矩阵,供该数据使用方调用。这样对各数据使用方的模型进行针对性维护,能够保证各方数据不会交叉,提高数据服务的稳定性、安全性和贯序性。
图5示出了根据本发明一个实施例的数据开放输出模型的生成装置300的结构示意图,适于驻留在计算设备100中。如图5所示,该装置包括第一生成模块510、第一训练模块520、第二生成模块530、矩阵拼接模块540和第二训练模块550。
第一生成模块510可以获取M个用户标识所对应的N个用户特征的原始数据,生成M×N的第一稀疏矩阵。用户特征包括安装应用、地理位置、地理位置偏好、设备信息和设备联网信息中的至少一类。
第一训练模块520可以根据第一稀疏矩阵对预训练的第一数据开放输出模型进行训练,得到第二数据开放输出模型。其中,数据开放输出模型适于将输入的稀疏矩阵分解为至少三个子矩阵,并将其中两个子矩阵重构为输出矩阵。
第二生成模块530可以接收某数据使用方提交的L个用户标识,并获取各用户标识所对应的N个用户特征的原始数据,生成L×N的第二稀疏矩阵。
矩阵拼接模块540可以将第二稀疏矩阵拼接到第一稀疏矩阵中,得到该数据使用方的模型训练矩阵。
第二训练模块550可以根据模型训练矩阵对第二数据开放输出模型进行训练,得到应用于该数据使用方的数据开放输出模型。该模型训练矩阵和数据开放输出模型在后续模型应用中会不断进行更新,可以应用一段时间后更新矩阵和模型,或每次要应用前都更新一次模型和矩阵。
图6示出了根据本发明另一个实施例的数据开放输出模型的生成装置600,该装置600包括第一生成模块610、第一训练模块620、第二生成模块630、矩阵拼接模块640、第二训练模块650、账号绑定模块660、模型应用模块670和模型更新模块680。其中,前五个模块的结构和功能与装置500的五个模块相同,这里不再赘述。
账号绑定模块660可以将各数据使用方的模型训练矩阵和数据开放输出模型与对应的数据使用方进行账号绑定。
模型应用模块670可以根据数据使用方所绑定的模型积提供数据开放输出服务:接收该数据使用方提交的包含多个用户标识的数据输出请求;获取各用户标识所对应的N个用户特征的原始数据,生成该数据输出请求所对应的数据请求矩阵;将该数据请求矩阵输入到该数据使用方的数据开放输出模型中,得到对应的输出矩阵;以及将该输出矩阵进行开放输出,以便该数据使用方根据该输出矩阵进行用户行为预测。
模型更新模块680可以响应于数据使用方提交的模型更新请求,将所有生成过的数据请求矩阵均拼接到该数据使用方的当前模型训练矩阵中,得到新模型训练矩阵;以及根据该新模型训练矩阵对该数据使用方的当前数据开放输出模型进行训练,得到新的数据开放输出模型。
此外,该模型应用模块680还可以接收该数据使用方所提交的包含多个用户标识的数据输出请求;获取各用户标识所对应的N个用户特征的原始数据,生成该数据输出请求所对应的数据请求矩阵;将该数据请求矩阵拼接到该数据使用方的当前模型训练矩阵中,得到新模型训练矩阵;根据新模型训练矩阵对该数据使用方的当前数据开放输出模型进行训练,得到新数据开放输出模型;以及将该数据请求矩阵输入到该数据使用方的新数据开放输出模型中,得到对应的输出矩阵后进行开放输出。
根据本发明的数据开放输出模型的生成装置500和600,其具体细节已在基于图1-图4的描述中详细公开,在此不再进行赘述。
根据本发明的技术方案,使用的数据开放输出模型能够挖掘原始数据中的潜在关联,用该模型变换得到的输出数据,能够提升建模效果。输出数据无需再做特征工程,可以直接拼接其他数据(例如客户的一方数据)进行使用,且输出数据不具有个人信息,实现了安全的数据输出。对于不需要业务解释的预测模型均可以使用本发明所输出的数据,其在金融、零售、互联网、广告等诸多领域都有着广泛应用前景。
A8、如A1-A7中任一项所述的方法,其中,所述数据开放输出模型为奇异值分解模型、词向量模型或变分自编码器模型。A9、如A1-A7中任一项所述的方法,其中,所述用户特征包括安装应用、地理位置、地理位置偏好、设备信息和设备联网信息中的至少一类。A10、如A1-A7中任一项所述的方法,其中,所述计算设备中还存储有各用户标识所对应的唯一索引标识,且所述用户特征的原始数据以所述唯一索引标识为索引进行存储。
B12、如B11所述的装置,其中,还包括:账号绑定模块,适于将各数据使用方的模型训练矩阵和数据开放输出模型与对应的数据使用方进行账号绑定。B13、如B11所述的装置,其中,还包括模型应用模块,适于:接收该数据使用方提交的包含多个用户标识的数据输出请求;获取各用户标识所对应的N个用户特征的原始数据,生成该数据输出请求所对应的数据请求矩阵;将该数据请求矩阵输入到该数据使用方的数据开放输出模型中,得到对应的输出矩阵;以及将该输出矩阵进行开放输出,以便该数据使用方根据该输出矩阵进行用户行为预测。
B14、如B13所述的装置,其中,还包括模型更新模块,适于:响应于数据使用方提交的模型更新请求,将所有生成过的数据请求矩阵均拼接到该数据使用方的当前模型训练矩阵中,得到新模型训练矩阵;以及根据该新模型训练矩阵对该数据使用方的当前数据开放输出模型进行训练,得到新的数据开放输出模型。B15、如B11所述的装置,其中,所述模型应用模块还适于:接收该数据使用方所提交的包含多个用户标识的数据输出请求;获取各用户标识所对应的N个用户特征的原始数据,生成该数据输出请求所对应的数据请求矩阵;将该数据请求矩阵拼接到该数据使用方的当前模型训练矩阵中,得到新模型训练矩阵;根据所述新模型训练矩阵对该数据使用方的当前数据开放输出模型进行训练,得到新数据开放输出模型;以及将该数据请求矩阵输入到该数据使用方的新数据开放输出模型中,得到对应的输出矩阵后进行开放输出。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如软盘、CD-ROM、硬盘驱动器或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的数据开放输出模型的生成方法。
以示例而非限制的方式,计算机可读介质包括计算机存储介质和通信介质。计算机可读介质包括计算机存储介质和通信介质。计算机存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在计算机可读介质的范围之内。
在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的而非限制性的,本发明的范围由所附权利要求书限定。