一种密文数据上标签自动生成的用户行为分析系统及方法与流程

文档序号:20702605发布日期:2020-05-12 15:56阅读:409来源:国知局
一种密文数据上标签自动生成的用户行为分析系统及方法与流程

本发明涉及信息处理技术领域,尤其涉及一种密文数据上标签自动生成的用户行为分析系统及方法。



背景技术:

随着科学技术的高速发展,人们面临着的数据信息越来越大,为了从这些丰富的数据中分析并提取出有价值的信息,知识挖掘技术应用而生。数据挖掘能够通过分析数据来推测以后的发展趋势和行为。然而,在产生的数据中存在很多用户的敏感数据,而一般的数据挖掘在处理数据过程中一定程度上存在用户的私人信息泄漏的情况,给用户敏感数据带来了严重的威胁。如果这些数据被窃取者用于恶意攻击,用户或者企业将被迫承受巨大的损失。数据挖掘通过分析数据所带来的信息隐私保护往往被认为是相互矛盾的,实际上数据挖掘和隐私保护是可以共存的。隐私保护的数据挖掘的提出能够在保护用户数据隐私的同时进行挖掘,并提取出有价值的信息,从而有效解决数据泄漏与隐私保护之间的关系。在当今数据极速膨胀的情况下,保护数据的隐私不被泄漏显得越来越重要。

通过机器学习利用数据训练出模型,然后使用模型进行预测在数据分析领域中扮演重要角色。机器学习按照训练样本标签的有无可分为监督学习和无监督学习两种,聚类算法属于无监督学习,目的是找出每一个数据所归属的类别。目前大多数聚类算法仍存在簇类个数未知和聚类后的群标签未知两方面问题。传统的聚类算法假设群的数量是已知的,将数据输入算法的同时也需要给定群数才能进行分群,代表算法是k-means聚类。但在实际应用中,群数通常是未知的,甚至在增加新的数据时,群数有可能发生改变。针对该问题的研究中,有些聚类算法让数据选择适合的群,但没有合适的群时可以自己单独成为一个新群,使算法更具有弹性。另外由于聚类算法不需要标记数据,因此无法明确知道每一个群代表的类别。

目前,隐私保护的数据挖掘方法包括基于数据扰动的数据挖掘和基于密码学的数据挖掘。基于数据扰动的数据挖掘主要是利用差分隐私方法,但传统差分隐私保护算法对其初始中心点的选择较为敏感,降低了聚类结果的可用性和稳定性。基于密码学的数据挖掘研究则是利用由于直接在密文上支持算术运算,同态加密是目前最流行的加密技术,用于实现加密数据挖掘方案,它可以通过加密方式提供数据安全。通过利用同态加密,一些数据挖掘方法已经开发出相应的加密版本,如梯度下降、线性回归、支持向量机、朴素贝叶斯、决策树、k-nn等算法。这些技术专注于数据挖掘任务中的分类问题,属于监督学习范围。由于同态加密的高计算复杂性,这些方案不能有效地处理多维数据。

加密后的数据计算是一大难点,同态加密(homomorphicencryption,he)方案可支持应用于密码数据的一系列算术运算。2009年,graiggentry提出完全同态加密技术(fullyhomomorphicencryption,fhe),一种加密算法对加法和乘法都能找到其对应的同态操作。

安全多方计算(securemuti-partycomputation,mpc),是密码学的一个重要分支,旨在解决一组互不信任的参与方之间保护隐私的协同计算问题,为数据需求方提供不泄露原始数据前提下的多方协同计算能力。最近,研究人员使用安全的多方计算协议构建了几种保护隐私的k-means聚类方案。mpc仅适用于针对属于两个或更多数据所有者的数据进行所需群集的情况。基本思想是大多数处理是由数据所有者在内部进行的,只有质心在每个k-means迭代上共享。但随着k-means聚类的进行,数据所有者进行相似性计算,通常需要进行大量此类计算。

由于聚类算法属于无监督学习,因此聚类后无法确定簇标签。farajian等人于2010年提出k-means结合关联规则对银行的客户进行分群并加上标签。此方法仅针对银行的客户,由于分析的目标较为统一,作者可根据先验知识分析出银行客户大致分为三个类别,因为已知群数,所以使用较简单的无监督分群算法,每一个群以客户的活跃程度作为划分标准,例如一个月内的交易量,以及进出银行的频繁程度,之后对客户的个人资料以及选用的服务做关联规则,可以得到学历、年龄、性别以及交易类型等规则,以这些标签当做对群的描述或标签,通过分析数据,可有效地帮助市场策略的发展。

treeratpituk等人在2006年提出利用阶层式分群与卡方检验来对数据进行分群并给予标签。首先将数据利用阶层式聚合算法构造节点树,最底层的叶子节点为单一篇文章中的词语出现次数,由下而上将相似的文章聚集在一起,直到根节点处。然后,对每个结点统计在文章中词语出现的次数,并从根结点开始对每个节点中的每个词进行卡方检验。如果出现reject则表示该词出现的频率在这个节点中和孩子节点中不同,代表不适合作为此节点的标签。反之则表示此节点和孩子节点出现该词的概率相同,将该词作为节点的标签,同时在孩子节点中把该词删除。



技术实现要素:

本发明要解决的技术问题是针对上述现有技术的不足,提供一种密文数据上标签自动生成的用户行为分析系统及方法,实现对用户行为数据进行聚类分析。

为解决上述技术问题,本发明所采取的技术方案是:一方面,本发明提供一种密文数据上标签自动生成的用户行为分析系统,a端和b端;

所述a端,用于选择用户行为数据并通过密钥生成模块实现paillier同态加密同态对数据进行加密并生成公钥和私钥,并将公钥和加密后的数据传送到b端;所述b端根据接收的a发送的公钥和加密后的用户行为数据,通过密文运算模块在密文上进行补充缺失值、密文聚类以及簇类标签自动生成操作,最后将加密的聚类结果以及标签返回给a端;a端通过生成的私钥对加密的用户行为聚类结果以及标签进行解密;

所述b端在进行补充缺失值、密文聚类以及簇类标签自动生成计算时,调用密文运算模块内的安全通讯协议,将密文数据中的基本运算替换为对应的协议。

优选地,所述密文运算模块的安全通讯协议包括安全乘法协议、安全点积协议、安全距离计算协议以及安全比较协议;所述安全乘法协议用于计算两个加密数据的乘法操作;所述安全点积协议用于计算两个同态加密的密文数据的点积,其表示两个加密数据的欧氏距离的平方;所述安全距离计算协议用于计算两个加密数据之间的距离;所述安全比较协议用于实现加密数据的比较以及聚类算法中阈值的比较;服务器端在进行聚类算法时,调用该模块的安全通讯协议在密文下进行计算。

另一方面,本发明还提供一种密文数据上标签自动生成的用户行为分析方法,包括以下步骤:

步骤一、a端获取用户行为数据,并采用paillier同态加密算法对用户行为数据进行加密,生成密文、公钥和私钥;将公钥与加密后的用户行为数据一起发送到b端;

步骤二、b端接收a端发送的加密后的用户行为数据,并在密文上进行补充缺失值、密文聚类以及簇类标签自动生成操作,最后将加密的聚类结果以及标签返回给a端;a端通过生成的私钥对加密的用户行为聚类结果以及标签进行解密;所述b端在进行补充缺失值、密文聚类以及簇类标签自动生成计算时,调用预先设定的安全通讯协议,将密文数据中的基本运算替换为对应的协议。

进一步地,步骤一具体包括:a端基于用户行为数据构建用户行为矩阵d以及行为标签矩阵g,其中用户行为矩阵d的每一行表示用户,每一列表示用户的行为,行为标签矩阵g的每一行表示用户的行为,每一列表示用户的标签;

a端采用paillier算法对用户行为矩阵以及行为标签矩阵进行加密生成公钥和私钥,将公钥与加密后的用户行为矩阵d以及行为标签矩阵g一起发送到b端。

再进一步地,b端执行簇类标签自动生成操作具体包括:

b端将用户行为矩阵d分解为矩阵p和qt,其中,矩阵p表示为用户-潜在因子矩阵,矩阵qt表示为潜在因子-标签矩阵;基于安全点积协议将p,qt相乘得到补全缺失值的矩阵d';然后对补全缺失值后的矩阵d'进行分解,得到用户-潜在因子矩阵p'和潜在因子-标签矩阵q't,对分解得到用户-潜在因子矩阵p'进行聚类,计算聚类后的每个群的簇类中心ci,i=1,...,k,k为用户-潜在因子矩阵p'进行聚类后群的个数,得到聚类后的用户对潜在因子的关系矩阵c;

步骤3、b端在用户对潜在因子的关系矩阵c中找出所有数据对应的标签,将聚类后矩阵c、潜在因子-标签矩阵q't以及潜在因子-标签矩阵g相乘得到用户标签矩阵h,h的每一行表示一个群,每一列表示标签。

采用上述技术方案所产生的有益技术效果在于:本发明提供的一种密文数据上标签自动生成的用户行为分析系统及方法,分析用户的行为数据,将具有相似行为的用户聚类为同一簇,并对每个簇自动给予适合的标签,不需要再由用户检查簇内部才能得到标签。由于标签起着联系用户和行为信息的作用,在一定程度上能够直接反应出用户的喜好,为防止隐私泄露,对用户行为数据进行加密,整个用户行为分析过程在密文下进行,由两方参与,保证安全性。对于用户行为数据可能存在遗失值的问题,将没有做过的行为在原始数据中视为缺失值。通过矩阵分解算法建立潜在因子模型,处理遗失值问题。同时,将用户行为数据转化为矩阵形式,结合行为与标签数据,利用矩阵乘法的原理,得到每个用户簇及对应的标签,降低了聚类的难度。

附图说明

图1为本发明实施例提供的一种密文数据上标签自动生成的用户行为分析方法的流程图;

图2为本发明实施例提供的密文聚类标签自动生成过程示意图。

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。

本实施例中,一种密文数据上标签自动生成的用户行为分析系统,包括a端和b端;所述a端,用于选择用户行为数据并通过密钥生成模块实现paillier同态加密方法对数据进行加密并生成公钥和私钥,并将公钥和加密后的数据传送到b端;所述b端,用于根据接收的a发送的公钥和加密后的用户行为数据,通过密文运算模块在密文上进行补充缺失值、密文聚类以及簇类标签自动生成操作,最后将加密的聚类结果以及标签返回给a端;a端通过生成的私钥对加密的用户行为聚类结果以及标签进行解密;

所述b端在进行补充缺失值、密文聚类以及簇类标签自动生成计算时,调用密文运算模块内的安全通讯协议,将密文数据中的基本运算替换为对应的协议。

优选地,a端为客户端,b端为服务器端。所述服务器端在进行补充缺失值、密文聚类以及簇类标签自动生成计算时,调用密文运算模块内预设的安全通讯协议,将密文数据中的基本运算替换为对应的协议;由于客户端计算能力不足,所以将大部分运算交给服务器端。服务器端只拥有公钥,这样保证了在运算过程中的安全性。

所述客户端利用paillier同态加密方法对用户行为数据进行加密,生成paillier同态加密方法的公私钥对,为系统加解密提供公私密钥。

在加密算法中,被加密的信息为m,随机生成密钥k,k与n-1互质,n表示的是paillier加密的模量,计算a=gkmodn,b=yk·αmmodn,g,y为信息m中要加密的数据,(a,b)为密文,是明文的两倍长。解密算法为:αm=b/ax(modp),进而求对数得到:m=logaαm。虽然,求对数要付出很大的代价,需要在αm的空间里搜索结果,但是本发明中有的只需部分解密到αm即可,无需完全解密,减少了计算耗时。

所述密文运算模块的安全通讯协议包括安全乘法协议、安全点积协议、安全距离计算协议以及安全比较协议;所述安全乘法协议用于计算两个加密数据的乘法操作;所述安全点积协议用于计算两个同态加密的密文数据的点积,其表示两个加密数据的欧氏距离的平方;所述安全距离计算协议用于计算两个加密数据之间的距离;所述安全比较协议用于实现加密数据的比较以及聚类算法中阈值的比较;服务器端在进行聚类算法时,调用该模块的安全通讯协议在密文下进行计算。

本实施例分别通过伪代码的形式举例对四个安全通讯协议进行详细说明,具体为:

(1)安全点积协议

由于整个用户行为分析过程在密文下进行,采用安全点积协议来解决加密矩阵乘法,如表1的协议1所示。它由a和b两方参与,a表示客户端,输入测试样本,记作x;b表示服务器,输入训练样本,记作y;

表1安全点积协议

(2)安全乘法协议

安全乘法协议主要通过同态加密的加同态属性实现了全同态加密的乘法同态,从而可以从两个密文数据的得到他们的乘法结果,如表2的协议2所示。在加密状态下的乘法如公式(1)所示,其中rx与ry表示随机生成的噪声,为防止数据泄露。具体来说,a有两个密文(epk(x)和epk(y)),目标是在保证x和y隐私性的同时,再通过与b的交互得到epk(xy)。b有paillier加密的私钥sk,公钥pk是公开的。

x*y=(x+rx)*(y+ry)-x*rx-y*ry,rx,ry∈zn(1)

表2安全乘法协议

(3)安全距离计算协议

安全距离协议实现了两个密文向量之间的欧式距离计算,基本思想基于以下等式:

首先对于所有的1≤i≤l,a通过paillier同态加密的性质计算出epk(xi-yi)=epk(xi)epk(yi)n-1,然后通过安全乘法协议m和b一起计算出epk((xi-yi)2),最后a再利用同态加密的性质对epk((xi-yi)2)进行求和,得到最终的计算结果epk(|x-y|2),如公式(3)所示。具体的安全协议如表3所示的协议3所示。

表3安全距离计算协议

(4)安全比较协议

本发明的安全比较协议是两方协议,其中一方a拥有待比较数据,另一方拥有解密密钥。用于比较两个用paillier加密的密文数据,获取qr加密的比较结果。主要思想是:计算2l+b-a加密数据,然后看第l+1位,这一位正好对应2l,如果是1,则b≥a,否则b<a。本发明中假设加密方案是加法同态的,n表示的是paillier加密的模量,l表示数据的比特长度。

表4安全比较协议

一种密文数据上标签自动生成的用户行为分析方法,如图1和2所示,包括以下步骤:

步骤1、客户端利用paillier同态加密方法对拥有的用户行为数据进行加密,并将生成的公钥与加密数据一起发送到服务器端,具体方法为:

构建用户行为user-item矩阵d以及行为标签item-tag矩阵g,其中,矩阵d的每一行表示用户user,每一列表示用户的行为item,矩阵g的每一行表示用户的行为item,每一列表示用户的标签tag;

采用paillier算法对用户行为数据进行加密,生成公钥pkp和私钥skp;将公钥pkp与加密后的矩阵d、g一起发送到服务器端,同时私钥保存在客户端用于解密,防止数据泄露;

步骤2、服务器端利用矩阵分解技术建立潜在因子模型,将矩阵d分解为矩阵p和qt,其中,矩阵p表示为用户-潜在因子矩阵user-factor,矩阵qt表示为潜在因子-标签矩阵factor-tag;基于预先确定的安全点积协议将p,qt相乘得到补全缺失值的矩阵d′;但由于该矩阵的维度过高,此时聚类的效果不理想,因此然后对补全缺失值后的矩阵d'进行分解,得到用户-潜在因子矩阵p′和潜在因子-标签矩阵q't,对分解得到用户-潜在因子矩阵p′进行聚类,计算聚类后的每个群的簇类中心ci,i=1,...,k,k为用户-潜在因子矩阵p′进行聚类后群的个数,得到聚类后的用户对潜在因子的关系矩阵c;

步骤3、在矩阵p′聚类后得到的user-factor矩阵c中找出所有数据的对应的标签,由于c表示用户对潜在因子的关系,且矩阵q't×g表示潜在因子对标签的关系,将user-factor矩阵c、factor-item矩阵q't以及item-tag矩阵g相乘得到矩阵h,h的每一行表示一个群,每一列表示标签,因此矩阵h为用户对标签的关系,利用此矩阵可统计群内的标签数量,对h的每一列进行从大到小排序后取前n个值对应的标签,即得到加密状态下每个群的最具代表性的标签(标签自动生成流程图见图2);

步骤4、服务器端将加密的user-tag矩阵h发送给客户端,客户端使用与公钥对应的私钥skp进行解密得到明文下的簇类标签,并通过客户端的前端将用户行为的聚类结果以及标签直观的显示给用户。

本实施例中预设的安全通讯协议包括的安全乘法协议、安全点积协议、安全距离计算协议以及安全比较协议;所述安全乘法协议用于计算两个加密数据的乘法操作;所述安全点积协议用于计算两个同态加密的密文数据的点积,其表示两个加密数据的欧氏距离的平方;所述安全距离计算协议用于计算两个加密数据之间的距离;所述安全比较协议用于实现加密数据的比较以及聚类算法中阈值的比较。具体实现方法如上述实施例提供,这里不再赘述。

本发明的聚类过程由服务器端s与客户端c两方共同完成,其处理的数据是通过paillier加密的密文数据,实质是将聚类算法中针对明文数据的基本计算用对应的安全通信协议替换,使聚类在密文数据进行操作,最后得到聚类结果。防止计算样本点与中心点的距离时泄露隐私,通过隐藏类簇中心来防止攻击者推断出用户所属的类簇分组,保证数据在聚类过程中的安全性与同态性。本实施例中,密文数据上的用户行为聚类算法的描述表5中的算法1所示。

表5密文数据上的用户行为聚类算法

为考察本发明所提出的密文数据上标签自动生成的用户行为分析方案,实验使用用户行为数据集last.fm进行测试。last.fm数据集是用户与歌手以及歌手类型的资料,包含每个用户听每位歌手音乐的次数以及用户标记过的歌手类型,不同用户可能对同一位歌手标记不同的类型,其中用户有1892位,歌手有17632位,歌手类型共有11946种。last.fm数据集包含5个文件,具体内容如表6所示。

表6last.fm数据集

将被同一位歌手所标记过的类型加总起来,被标记次数较多的类型可视为该歌手偏向类型的标签。实验需要两种资料,即用户与歌手关系数据集以及歌手与类型数据集。将用户听过的次数通过数据标准化转化为1~5分的喜欢程度,没有听过的则不给评分,当成缺失值,采用用户与歌手关系的数据集user_artists.dat构建d矩阵。同时采用歌手与类型关系的数据集user_taggedartists.dat构建g矩阵。

实验将k-means、k-means++两种经典聚类算法集成到方案中,通过轮廓系数与标签系数两方面来验证方案的有效性与通用性。

(1)轮廓系数

衡量聚类算法性能的一个流行方法是计算轮廓系数。聚类算法的目标是使聚类结果的类间相似度小且类内相似度大,轮廓系数越大,则聚类性能越好。将对原始k-means算法、k-means++算法、具有隐私保护的k-means算法(hk-means)以及k-means++算法(hk-means++)这4种算法进行对比。通过实验来观察k值对聚类结果的影响。

实验结果显示,随着k值的增加,4种算法的平均轮廓系数总体上呈上升趋势,当k=5时,轮廓系数值较大,此时聚类效果较好。k-means++算法整体优于k-means算法效果,而在密文下的hk-means++算法聚类效果在总体上优于hk-means,并且hk-means++算法的聚类性能较接近非隐私保护的k-means++的性能。证明了该方案在密文下聚类的有效性,同时支持大多数的聚类算法具有通用性。

(2)标签系数

在本方案中每个簇都会生成多个标签,因此需要提出标签评价方法来评价标签与簇之间的适合度。

首先将矩阵p分为ptest和ptrain两部分。选取80%当作训练数据集来做聚类并给出标签,另外20%当作测试数据集。根据ptrain的聚类结果,将ptest利用相同的聚类算法分配到ptrain已有的簇内,同时从ptest×h得到测试集中的用户所代表的标签。将用户得到的标签与簇标签作比较,根据式(7-1)计算出f1score。

其中precision表示准确率,recall表示召回率,计算公式如式(7-2)和式(7-3)所示。

假设x属于ptest中的一个数据样本,且x分到簇c中。tp表示x及c共同拥有的标签数量,fp表示x没有而c拥有的标签数量,fn表示x拥有而c却没有的标签数量。

簇标签的评分过程如下:

变量s表示数据集ptest中的标签集,将s与ptrain得到的标签集相比较,计算出f1score。

标签分数由f1score计算,其值越接近1效果越好。将对原始k-means算法、k-means++算法、具有隐私保护的k-means算法(hk-means)以及k-means++算法(hk-means++)这4种算法进行对比以此验证本方案可实现对密文用户行为数据聚类且同时可以自动产生簇标签。

本发明设计了一种密文数据上标签自动生成的用户行为聚类方案。首先,从聚类过程中提取出加法、乘法、比较等基本操作;其次,采用同态加密方案对数据进行加密,基于此,设计了针对基本操作的安全协议;然后将基本操作的安全协议应用于方案中,解决了运算过程中密文乘除法问题、密文距离计算问题与密文比较问题,确保聚类得到正确结果的前提下,很好的保护数据的隐私性。同时针对非文件类型的资料分群后较不容易提取出有意义的特征,本发明引入了行为与标签的数据,且成功的与用户数据作结合,解决了原本分群后无法得知群标签的问题,同时也采用一种对标签准确度的评分方法。利用矩阵分解解决遗失值问题,并在具体实施例中采用k-means聚类与k-means++两种聚类算法,均达到不错的效果。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1