前言传统的开放数据共享方式往往直接以明文形式输出原始数据,在数据安全和隐私保护方面存在较大风险,不符合日益完善的法律法规要求,越来越无法满足当今日益庞大和复杂的应用程序对数据量和规模的要求。此外,还有一种方法是对标注数据进行处理然后输出,但通常会存在信息泄露,使用这类数据进行建模的效果会大打折扣。经过实践,TalkingData借助机器学习技术探索出了一套全新的解决方案。通过对原始数据进行分布式隐式表示抽取和计算(一种数据转换方法),然后使用转换后的数据进行开放共享,可以满足数据输出的安全性要求,提高大数据输出的处理速度。这种数据输出方式主要是基于机器学习的分布式嵌入算法(embeddingalgorithm)。嵌入算法是对原始数据进行变换,挖掘潜在关联的一系列算法的总称。Embedding算法处理后的数据相比带标签的数据信息泄露少,建模效果好,被广泛应用于推荐系统、自然语言处理等领域。TalkingData将此类算法应用到数据安全输出领域,使原始数据经过变换后以不可识别的方式输出,数据获取方无法从中提取与个人身份相关的敏感信息,也实现了对数据的匿名化保护私人数据。基于保护用户隐私、保证数据输出安全、提高大数据输出处理速度的考虑,构建了TalkingDataSystem平台(以下简称TDS)。TDS平台底层搭载了基于Spark和Hadoop生态的embedding算法,对原始数据进行计算和处理,然后通过前端平台页面将结果输出给企业用户。已应用于金融、零售、互联网、广告等行业。借助TDS平台,企业可以将内部的用户群体活跃度、消费、人口属性标签等垂直领域的第一方数据与TalkingData的第三方数据进行整合,丰富自身模型的特征维度.理论上,不需要业务解释或识别的预测模型可以使用这种方法输出的数据。详细算法解决方案该算法具有通用性,可以应用于任何可以转换为标准格式的原始数据输出。下面举例详细说明处理过程:1.TDS平台用户上传一批设备ID(设备标识),通过ID匹配得到对应的TDID(即TalkingData自身的加密标识)获得。2、以TDID为索引提取原始数据。假设有M个TDID,TDID可以看作是每个智能移动设备的虚拟唯一编号,那么提取的原始数据共有M行,每行对应一个设备的属性信息。假设属性个数为N,每个设备的每个属性值为1或0,表示一个设备有或没有某个属性。将这些原始数据转化为一个M*N的稀疏矩阵,每一行对应一个设备,每一列对应一个属性。例如第三行第五列为0,则表示第三个设备不具有第五列对应的属性。与普通矩阵相比,稀疏矩阵可以大大节省存储空间。构造稀疏矩阵的方法可以理解为以下几个步骤:(1)创建一个M*N的矩阵,将其中的所有值填充为零。(2)逐行扫描,如果设备有某个属性,将这里的值替换为1,直到扫描完成。(3)记录哪些行哪些列有1的数据,并存储这些信息。存储的信息实际上是一个系数矩阵。3.通过嵌入式模型对标准格式的原始数据进行表征学习。事实上,它分解了输入的原始矩阵。嵌入式模型中可以使用许多算法。这里我们以奇异值分解(SVD)算法为例。说到SVD,就不得不提到与之相关的概念——PCA(PrincipalComponentsAnalysis),即主成分分析,也称为特征值分解。关于PCA方法,大家的一般联想就是降维。简单来说,PCA所做的就是在原空间中依次找到一组相互正交的坐标轴,第一个轴是使方差最大化,第二个轴在与第一个轴正交的平面内,使得方差为最大,第三轴在与第一轴和第二轴正交的平面内方差最大。这样,假设在N维空间中,我们可以找到N个这样的坐标轴,我们取前r个来逼近这个空间,从而从一个N维空间压缩到一个r维空间,而第r个我们选择值到空间的压缩应该最大限度地减少数据丢失。PCA从原始数据中选择特征和更重要的信息来保留,那么问题就是如何使用比原始数据更少的维度来尽可能多地描述原始数据。同时,PCA也有很多局限性。例如,变换后的矩阵必须是方阵,而SVD算法可以避免这种限制。SVD算法可以将一个矩阵分解为三个子矩阵(三个子矩阵相乘可以还原出原来的矩阵)。我们称这三个矩阵为U、Sigma、V,其中Sigma矩阵是奇异值矩阵,只有对角线上有值,其余为0。案例详解|基于Embedding的Eigensecurity计算假设原矩阵为10000行1000列,那么分解后可以得到如下三个子矩阵:U矩阵为10000*10000Sigma矩阵为10000*1000(除对于对角线元素为0,对角线上的元素称为奇异值)V(^)T矩阵(V的转置)为1,000*1,000在实际应用过程中,我们只保留U矩阵的前512列,于是三个矩阵的维度就变成了:10000*512、512*512、512*1000。为什么要保留512列?原因是奇异值在矩阵Σ中是从大到小排列的,奇异值减少的非常快。很多时候,前10%甚至1%的奇异值之和占所有奇异值总和的10%。99%以上。根据我们的多次实验,512列已经能够很好的保留奇异值的信息。4.矩阵分解得到三个子矩阵后,将U和Sigma相乘得到输出矩阵。输出矩阵的维度是10000*512。可以看出,输出矩阵的行数与输入矩阵相同,每一行仍然代表一个设备。但是输出矩阵的列数变成了512,与原矩阵中的每一列作为一个属性不同。此时输出矩阵中的每一列对应一个特征。这种不可解释和不可识别的特性,保证了输出数据不会泄露个人隐私。5、直接输出输出矩阵,TDS平台用户可通过数据接口调用。由于平台用户无法获得V矩阵,无法还原原始矩阵,无法还原任何与个体相关的原始属性信息。输出时,需要将第2步中的所有数据整理成标准输入格式,然后拼接成一个输入矩阵。后续步骤与上述示例相同。效果关于Embedding算法在数据安全输出中的实际表现,TalkingData做了很多相关的实验,并在多个实际项目中进行了验证。下面用两个真实案例来说明:案例一:性别标签预测效果提升性别标签是基于设备信息,通过机器学习模型预测打分。在以往的建模过程中,算法人员往往会对原始信息进行一定程度的处理,比如将非结构化数据处理成结构化的统计值,或者将其他标签作为特征输入到模型中。然而,这些特征工程方法会产生一定的信息泄露或错误引入。与手动特征筛选相比,Embedding处理后的数据由于信息泄漏较少,理论上可以获得更好的建模结果。从下面两张图可以看出,基于相同的原始数据,Embedding模型的预测效果比原来的性别预测模型提高了(0.71-0.63)/0.63=13.7%。案例二:某金融公司风控模型预测效果提升。与多家公司合作,将TalkingData的人群属性标签和应用兴趣标签作为第三方数据引入。TalkingData与某金融公司合作,通过TDS将数据导出至公司,并应用在风控模型中。在相同的误报率(FalsePositiveRate)下,公司原算法的生产准确率为0.42,但加入Embedding算法输出的数据后,优化后的生产准确率达到0.52,提升了25%。在风控领域,25%的涨幅可以帮助企业避免较大的经济损失。对其他Embedding方法的思考Embedding方法广泛应用于自然语言处理领域,即用数学语言来表示一段文本。虽然上述SVD算法的有效性在实际模型计算中得到了验证,但在文本特征的表示上仍然存在缺陷。首先是词袋模型(BOW,bagofwords),不考虑词与词之间的先后顺序,而在实际文本中,词的顺序也很重要,句子中每个词的重要性不同的是不一样的;其次,它假定词是相互独立的,但在大多数情况下,词与词之间是相互影响的,这就是为什么我们在做“阅读理解”时,往往要联系上下文。如今,Embedding领域已经朝着深度学习的方向发展,大致可以分为以下四种常见的应用:不依赖于文本语法和词序的词袋模型:one-hot,tf-idf、textrank等;主题模型:LSA、pLSA、LDA;基于词向量的固定表示:word2vec、fastText、glove基于词向量的动态表示:elmo、GPT、bert其中,Word2vec是业界广泛使用的算法之一。说到Word2vec,就不得不引入“词向量”的概念。在NLP领域,词是最细粒度的。单词构成句子,句子构成段落、章节和文档。如何用数学语言表达每个词成为研究词与词之间关系的关键。Word2vec就是从这个思想衍生出来的。它可以看作是一个简化的神经网络模型,但它的最终目标不仅仅是用数值来表示文本符号,还有模型训练后的副产品——模型参数(这里特指权重神经网络)。模型参数将用作输入词的向量化表示,这个向量称为词向量。一个例子来说明如何通过Word2vec查找相似词:在使用EmbeddingwithTalkingData的实际场景中,与词向量最大的区别在于表示的特征之间没有上下文联系。TalkingData专注于分析移动设备行为数据。对于大多数设备属性,打乱顺序对实际含义没有影响,但不能打乱句子中的单词。句子结构对于词向量表示非常重要。基于实际业务场景的考虑,我们没有选择使用Word2vec或者更复杂的Embedding算法来转换原始数据。虽然我们保证了原始数据输出的安全性,但是伴随而来的是数据可解释性较弱的问题。由于Embedding算法将原始数据转化为另一个空间中的数值向量,因此无法理解或给出输出矩阵每一列的实际含义。假设建模者建立了一个“薪资预测回归模型”,采集到的样本特征包括“性别、年龄、学历、工作城市、工作年限……”,对应数据集中的每一列,那么他们就可以很容易地计算出每一个每个特征的权重,并可以比较哪个特征的权重高,即特征重要性的排序,得出“工作年限对工资的影响比性别更重要”等结论。但是,在使用TDS平台输出的数据构建模型时,我们没有办法像上面的模型一样分析比较各个列特征对模型的影响。关于加入Embedding特征是否会提升模型效果,我们只能得出一个粗粒度的结论。显然,如果建模者对模型的可解释性有特别严格的要求,TDS平台暂时没有办法提供解决方案。
