基于数据比较的信息推荐方法、装置及存储介质与流程

文档序号:19155913发布日期:2019-11-16 00:46阅读:175来源:国知局
基于数据比较的信息推荐方法、装置及存储介质与流程

本发明涉及计算机技术领域,尤其涉及一种基于数据比较的信息推荐方法、装置及计算机可读存储介质。



背景技术:

近年以来,随着朋友圈、微博等社交平台的出现,人们越来越喜欢通过这些社交平台进行信息分享,诸如晒工资、晒消费、晒体重、晒年龄等排名分享行为。这种排名分享行为将用户的个人数据与他人的数据进行比较,进而得到比较结果进行公布,容易造成用户个人隐私数据的泄露,为用户带来信息安全的问题。另一方面,当无法获取用户个人隐私数据时,也无法有效的针对对用户进行个性化的产品推荐。因此,如何能够既保护用户的个人信息安全且又能够准确地进行个性化推荐是一个亟待解决的问题。



技术实现要素:

本发明提供一种基于数据比较的信息推荐方法、装置及计算机可读存储介质,其主要目的在于不仅能够保护用户的隐私数据,而且能够准确地进行个性化推荐。

为实现上述目的,本发明还提供一种基于数据比较的信息推荐方法,该方法包括:

获取目标用户的第一数据和比较用户的第二数据,所述第一数据和所述第二数据是有关预设主题的数据,且所述第一数据和所述第二数据是经过同态加密的数据;

通过同态操作比较所述第一数据和所述第二数据的大小,得到排序结果;

从所述排序结果中获取所述目标用户的排序,以及将所述排序结果返回至所述目标用户;

若所述目标用户的排序为预设排序,获取与所述预设主题对应的推荐产品信息;

向所述目标用户发送与所述预设主题对应的推荐产品信息。

可选地,所述获取与所述预设主题对应的推荐产品信息包括:

获取所述预设主题的相关信息;

将所述预设主题的相关信息映射到预设bow模型的目标词典,得到目标直方图特征向量,所述目标词典为通过训练样本进行聚类处理得到的;

将所述目标直方图特征向量输入至用于构建所述预设bow模型的朴素贝叶斯分类器,通过所述朴素贝叶斯分类器对所述预设主题的相关信息进行分类,得到所述预设主题的相关信息的所属类别;

获取所述预设主题的相关信息的所属类别对应的待推荐产品信息;

确定与所述预设主题的相关信息的所属类别对应的待推荐产品信息为所述预设主题对应的推荐产品信息。

可选地,所述确定与所述预设主题的相关信息的所属类别对应的产品信息为所述预设主题对应的推荐产品信息包括:

对所述预设主题的相关信息进行词频特征向量提取,得到词频向量;

计算所述词频向量与所述待推荐产品信息的相似度;

确定所述待推荐产品信息之中与所述词频向量的相似度大于预设相似度的产品信息为与所述预设主题对应的推荐产品信息。

可选地,所述将所述预设主题的相关信息映射到预设bow模型的目标词典之前,所述方法还包括:

对所述预设主题的相关信息进行文本处理,所述文本处理包括对所述预设主题的相关信息通过隐性马尔科夫模型进行分词处理,以及通过预设关键词提取算法对分词处理后的信息进行文本改写。

可选地,所述通过同态操作比较所述第一数据和所述第二数据的大小,得到排序结果包括:

将所述第一数据与所述第二数据的负数相加,得到第一计算结果,若所述第一计算结果为正数,得到所述第一数据大于所述第二数据的排序结果,若所述第一计算结果为负数,得到所述第一数据小于所述第二数据的排序结果;或者

将所述第一数据的负数与所述第二数据相加,得到第二计算结果,所述第二计算结果为正数,得到所述第一数据小于所述第二数据的排序结果,若所述第二计算结果为负数,得到所述第一数据大于所述第二数据的排序结果。

可选地,所述将所述排序结果返回至所述目标用户包括:

利用接收到的所述目标用户发送的公钥对所述排序结果进行加密,得到加密排序结果;

将所述加密排序结果返回至所述目标用户。

此外,为实现上述目的,本发明还提供一种基于数据比较的信息推荐装置,该装置包括存储器和处理器,所述存储器中存储有可在所述处理器上运行的基于数据比较的信息推荐程序,所述基于数据比较的信息推荐程序被所述处理器执行时实现如下步骤:

获取目标用户的第一数据和比较用户的第二数据,所述第一数据和所述第二数据是有关预设主题的数据,且所述第一数据和所述第二数据是经过同态加密的数据;

通过同态操作比较所述第一数据和所述第二数据的大小,得到排序结果;

从所述排序结果中获取所述目标用户的排序,以及将所述排序结果返回至所述目标用户;

若所述目标用户的排序为预设排序,获取与所述预设主题对应的推荐产品信息;

向所述目标用户发送与所述预设主题对应的推荐产品信息。

可选地,所述获取与所述预设主题对应的推荐产品信息包括:

获取所述预设主题的相关信息;

将所述预设主题的相关信息映射到预设bow模型的目标词典,得到目标直方图特征向量,所述目标词典为通过训练样本进行聚类处理得到的;

将所述目标直方图特征向量输入至用于构建所述预设bow模型的朴素贝叶斯分类器,通过所述朴素贝叶斯分类器对所述预设主题的相关信息进行分类,得到所述预设主题的相关信息的所属类别;

获取所述预设主题的相关信息的所属类别对应的待推荐产品信息;

确定与所述预设主题的相关信息的所属类别对应的待推荐产品信息为所述预设主题对应的推荐产品信息。

可选地,所述通过同态操作比较所述第一数据和所述第二数据的大小,得到排序结果包括:

将所述第一数据与所述第二数据的负数相加,得到第一计算结果,若所述第一计算结果为正数,得到所述第一数据大于所述第二数据的排序结果,若所述第一计算结果为负数,得到所述第一数据小于所述第二数据的排序结果;或者

将所述第一数据的负数与所述第二数据相加,得到第二计算结果,所述第二计算结果为正数,得到所述第一数据小于所述第二数据的排序结果,若所述第二计算结果为负数,得到所述第一数据大于所述第二数据的排序结果。

可选地,所述确定与所述预设主题的相关信息的所属类别对应的产品信息为所述预设主题对应的推荐产品信息包括:

对所述预设主题的相关信息进行词频特征向量提取,得到词频向量;

计算所述词频向量与所述待推荐产品信息的相似度;

确定所述待推荐产品信息之中与所述词频向量的相似度大于预设相似度的产品信息为与所述预设主题对应的推荐产品信息。

可选地,所述程序被所述处理器执行,还实现如下步骤:

将所述预设主题的相关信息映射到预设bow模型的目标词典之前,对所述预设主题的相关信息进行文本处理,所述文本处理包括对所述预设主题的相关信息通过隐性马尔科夫模型进行分词处理,以及通过预设关键词提取算法对分词处理后的信息进行文本改写。

可选地,所述将所述排序结果返回至所述目标用户包括:

利用接收到的所述目标用户发送的公钥对所述排序结果进行加密,得到加密排序结果;

将所述加密排序结果返回至所述目标用户。

此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有基于数据比较的信息推荐程序,所述基于数据比较的信息推荐程序可被一个或者多个处理器执行,以实现如上所述的基于数据比较的信息推荐方法的步骤。

本发明提出的基于数据比较的信息推荐方法、装置及计算机可读存储介质,获取目标用户的第一数据和比较用户的第二数据,所述第一数据和所述第二数据是有关预设主题的数据,且所述第一数据和所述第二数据是经过同态加密的数据;通过同态操作比较所述第一数据和所述第二数据的大小,得到排序结果;从所述排序结果中获取所述目标用户的排序,以及将所述排序结果返回至所述目标用户;若所述目标用户的排序为预设排序,获取与所述预设主题对应的推荐产品信息;向所述目标用户发送与所述预设主题对应的推荐产品信息。由于目标用户的第一数据和其他用户的第二数据是经过加密的数据,且通过同态操作进行数据比较,因此,本发明在数据比较的同时保护数据的细节不被公开;同时,由于在未获取用户数的细节的情况下仍能准确的进行排序,进而根据用户的排序进行个性化推荐,因此本发明实现了不仅能够保护用户的隐私数据,而且能够准确地进行个性化推荐的目的。

附图说明

图1为本发明一实施例提供的基于数据比较的信息推荐方法的流程示意图;

图2为本发明一实施例提供的基于数据比较的信息推荐装置的内部结构示意图;

图3为本发明一实施例提供的基于数据比较的信息推荐装置中基于数据比较的信息推荐程序的模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明提供一种基于数据比较的信息推荐方法。参照图1所示,为本发明一实施例提供的基于数据比较的信息推荐方法的流程示意图。该方法可以由一个装置执行,该装置可以由软件和/或硬件实现。

可选的,该装置为数据比较中心,该数据比较中心主要以大数据技术hadoop、spark为核心。其中,hadoop由hdfs(负责集群的存储管理)和yarn(负责系统的资源调度)两部分组成,spark用于负责具体的计算逻辑。

优选的,数据比较中心基于云计算得到的大数据架构进行网络安全防护措施。

一种可选实施例中,所采用的网络安全防护措施可以包括:

(1)东西向流量监控。通过虚拟防火墙技术,所有流量都流经虚拟防火墙,通过虚拟防火墙将数据再转发至目标虚拟主机,从而实现同一物理主机的不同虚拟机之间、不同物理主机之间流量的隔离、管控以及安全检查。所有虚拟防护墙功能与物理防火墙一致,可以划分trust、untrust、local、dmz(不设防区域)等不同安全域,不同安全域可以预先灵活配置安全策略,用户管控数据包流向,实现安全防护功能。不同虚拟防火墙之间网络默认设置为不通,从而能够一定程度解决核心设备上横向流量的管控问题。

(2)部署ids/ips入侵检测与防御设备。在平台核心路由器与出口防火墙之间部署ips入侵防护设备,在核心交换机侧旁挂ids入侵检测设备,从而对应用层进行防御,例如阻止蠕虫、病毒、木马,拒绝服务攻击、间谍软件、voip攻击及点到点应用滥用,在发生损失之前阻断恶意流量,避免受外部应用层攻击。

在本实施例中,基于数据比较的信息推荐方法包括:

步骤s101,获取目标用户的第一数据和比较用户的第二数据,所述第一数据和所述第二数据是有关预设主题的数据,且所述第一数据和所述第二数据是经过同态加密的数据。

本实施例中,所述目标用户为要进行数据比较的用户。所述比较用户的数量可以为多个,则第二数据为各个比较用户的第二数据。

所述预设主题可为一段时间内的消费金额、身高、年龄等。

例如,目标用户为a用户,比较用户为b用户,目标用户的第一数据为a用户在过去半年内的第一累计消费金额,比较用户的第二数据为b用户在过去半年内的第二累计消费金额。

在本实施例中,第一数据和第二数据都是经过同态加密的数据。一种可选实施例中,第一数据是在目标用户的客户端经过同态加密之后传输至数据比较中心的,第二数据是在比较用户的客户端经过同态加密之后传输至数据比较中心的。

所述同态加密是指对给定的明文(x1,x2,…,xn),利用同态加密算法加密后得到密文c,全同态加密允许任何人对密文c进行任何操作f,操作后得到的密文f(c)解密后与f(x1,x2,…,xn)的结果是一样的。这个过程中(x1,x2,…,xn)、f(x1,x2,…,xn)以及任何中间明文都没有泄露;输入值、输出值、中间值一直是在加密状态中。对最后的密文形式的f(x1,x2,…,xn)有不同的要求,最低的要求就是它要能正确解密得出f(x1,x2,…,xn),而满足不同的密文计算特性就导致有不同形式的同态加密。

同态加密包括半同态加密和全同态加密,半同态加密是指数据加密满足加法同态或者乘法同态。rsa算法满足乘法同态,paillier算法满足加法同态。

例如,对于rsa算法,公钥是(e,n),对明文m加密表示为c=e(m)=memodn;

对任意m1和m2存在:

即对任意的明文m1,m2,…mn,都有:

e(m1)*e(m2)*…e(mn)=e(m1*m2*…mn),即rsa算法满足乘法同态运算。

在本发明一可选实施例中,第一数据和第二数据可以是使用非对称加密(rsa)算法进行加密得到的,具体的,第一数据和第二数据可以是通过数据比较中心提供的公钥进行加密得到的。

步骤s201,通过同态操作比较所述第一数据和所述第二数据的大小,得到排序结果。

在本实施例中,对第一数据和第二数据进行同态操作,例如,同态操作为将第一数据和第二数据分别与标准数相加或者相乘之后再大小。

本实施例中,排序结果即为第一数据和第二数据哪一个数据更大,哪一个数据更小。

当第二数据为多个比较用户的数据时,将第一数据与多个数据分别进行比较,得到排序结果。

可选的,在本发明另一实施例中,所述通过同态操作比较所述第一数据和所述第二数据的大小,得到排序结果包括:

将所述第一数据与所述第二数据的负数相加,得到第一计算结果,若所述第一计算结果为正数,得到所述第一数据大于所述第二数据的排序结果,若所述第一计算结果为负数,得到所述第一数据小于所述第二数据的排序结果;或者

将所述第一数据的负数与所述第二数据相加,得到第二计算结果,所述第二计算结果为正数,得到所述第一数据小于所述第二数据的排序结果,若所述第二计算结果为负数,得到所述第一数据大于所述第二数据的排序结果。

步骤s301,从所述排序结果中获取所述目标用户的排序,以及将所述排序结果返回至所述目标用户。

例如,从排序结果中获取到目标用户的排序为第一;或者从排序结果中获取到目标用户的排序为第二;从排序结果中获取到目标用户的排序为第三。

一种可选实施例中,将排序结果返回至目标用户包括将排序结果返回至目标用户的客户端,目标用户的客户端可以通过用户的分享操作将排序结果分享展示。

可选的,在本发明另一实施例中,所述将所述排序结果返回至所述目标用户包括:

利用接收到的所述目标用户发送的公钥对所述排序结果进行加密,得到加密排序结果;

将所述加密排序结果返回至所述目标用户。

在本实施例中,在向目标用户返回排序结果时,可以将排序结果通过目标用户的公钥进行加密,则目标用户的客户端在接收到加密排序结果之后,通过私钥进行解密,进而获取到具体的排序结果,提高了数据传输过程中的安全性。

步骤s401,若所述目标用户的排序为预设排序,获取与所述预设主题对应的推荐产品信息。

一种可选实施例中,目标用户的排序为预设排序包括:目标用户的排序为第一。

另一可选实施例中,目标用户的排序为预设排序包括:目标用户的排序为前三分之一。

又一可选实例中,目标用户的排序为预设排序包括:目标用户的排序为前后三分之一。

所述预设主题对应的推荐产品信息可以为预设的。例如,预设的与预设主题对应的推荐产品为低脂零食和低脂饮品,当用户的体脂率排名为最低时,向用户推荐低脂零食和低脂饮品。

在本发明其他实施例中,也可以根据预设主题和目标用户的不同排序来推荐不同的产品信息。

可选的,在本发明另一实施中,所述获取与所述预设主题对应的推荐产品信息包括:

获取所述预设主题的相关信息;

将所述预设主题的相关信息映射到预设bow模型的目标词典,得到目标直方图特征向量,所述目标词典为通过训练样本进行聚类处理得到的;

将所述目标直方图特征向量输入至用于构建所述预设bow模型的朴素贝叶斯分类器,通过所述朴素贝叶斯分类器对所述预设主题的相关信息进行分类,得到所述预设主题的相关信息的所属类别;

获取所述预设主题的相关信息的所属类别对应的待推荐产品信息;

确定与所述预设主题的相关信息的所属类别对应的待推荐产品信息为所述预设主题对应的推荐产品信息。

本实施例中,所述预设主题的相关信息为与预设主题有关的信息。

例如,预设主题为消费主题,预设主题的消费相关信息包括消费的历史记录(如在不同的消费时间和消费地点所购买的商品信息)。

在本实施例中,所述bow模型为预先建立的,具体的bow模型是通过聚类算法(如k-means算法和朴素贝叶斯分类器构建的)。

一种可选实施例中,所述预设bow可以通过以下方式构建:

(1)利用聚类算法(例如k-means算法)进行大数据聚类,找到聚类中心点(即vocabulary)。所谓聚类,即根据相似性原则,将具有较高相似度的数据对象划分至同一类簇,将具有较高相异度的数据对象划分至不同类簇。其中k-means算法中的k代表类簇个数,means代表类簇内数据对象的均值(这种均值是一种对类簇中心的描述),因此,k-means算法又称为k-均值算法。k-means算法是一种基于划分的聚类算法,以距离作为数据对象间相似性度量的标准,即数据对象间的距离越小,它们的相似性越高,即表示它们越有可能在同一个类簇。在本发明实施例中,利用欧式距离计算数据对象间的距离,假设xi,xj为数据,d表示数据对象的属性个数,其两者间的距离为:

其中,xi,d表示第i个点的第d维坐标,xj,d表示第j个点的d维坐标。

同时定义第k个类簇的类簇中心为centerk,其更新方式为:

其中ck表示第k个类簇中数据对象的个数,centerk表示一个含有d属性的向量。

最后,采用误差平方和准则函数得到最终聚类结果j:

训练数据像聚类中心映射,得到每一个训练数据在该聚类中心空间的一个低维表示。通过最终聚类结果j,将其作为直方图的基,用该基向量构造别的向量,并做映射,得到不同类别的一个类别的直方图的统计,这个过程也是对bow模型特征提取的过程。

得到每一个训练数据的低维表示后,选择基于多项式的朴素贝叶斯分类器训练。朴素贝叶斯分类是低方差高偏差的分类器,假设各个特征之间存在条件独立性假设:对于给定的类别,所有的特征相互独立。对于给定样本x=(x1,x2,…,xd)t,其属于类别wi的后验概率为:

其中d是特征维数,xk是样本在第k个特征上的取值。为避免数据稀疏的问题,可以先对数据使用平滑:

其中ck表示第k维特征可能取值的个数,α为系数。本发明通过使用mle极大似然估计方法,得到:其中,di表示wi类的训练样本构成的集合,分子表示wi类的训练样本构成的集合di中,第k个特征的取值为xk的样本数。

本实施例中,在构建预设bow模型,以及获取到预设主题的相关信息后,将预设主题的相关信息映射到预设bow模型的目标词典,其中,预设bow模型的目标词典是构建bow模型时通过聚类处理得到的聚类中心空间。

本实施例中,预设主题的相关信息的所属类别对应的待推荐产品信息可以为预设的,即预设设置不同类别所对应的待推荐产品信息的对应关系,则在获取到预设主题的相关信息的所属类别之后,根据该类别获取与该类别对应的待推荐产品信息。

可选的,在本发明另一实施例中,所述确定与所述预设主题的相关信息的所属类别对应的产品信息为所述预设主题对应的推荐产品信息包括:

对所述预设主题的相关信息进行词频特征向量提取,得到词频向量;

计算所述词频向量与所述待推荐产品信息的相似度;

确定所述待推荐产品信息之中与所述词频向量的相似度大于预设相似度的产品信息为与所述预设主题对应的推荐产品信息。

在实施例中,可以通过余弦相似度计算相似度。

所述余弦相似度是用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小的度量,余弦值越接近1,就表明夹角越接近0度,也就是两个向量越相似。对于所得到的客户所晒主题的相关信息和推荐产品信息,利用下列式子进行计算:

其中,x是所晒主题的相关信息的向量表示,y是推荐产品信息的向量表示,xi表示向量x的分量,yi表示向量y的分量。

通过以上式子得到的相似性范围从-1到1,其中-1表示两个向量指向的方向正好截然相反,1表示它们的指向是完全相同的,0通常表示它们之间是独立的。

本实施例中根据所计算出来的值来判断相似度,从而将相似度高的推荐产品信息推荐给目标用户,从而能够推荐更符合用户的产品。

可选的,在本发明另一实施例中,所述将所述预设主题的相关信息映射到预设bow模型的目标词典之前,所述方法还包括:

对所述预设主题的相关信息进行文本处理,所述文本处理包括对所述预设主题的相关信息通过隐性马尔科夫模型进行分词处理,以及通过预设关键词提取算法对分词处理后的信息进行文本改写。

本实施例中,先对预设主题的相关信息进行文本处理,再根据处理后得到的预设主题的相关信息进行映射到预设bow模型的目标词典的操作。

所述文本改写(rewrite)指对于一个文本,首先采用中文分词,然后进行清理、保留主干词,对主干词进行语义增强(同义词/关联词补充)。

首先,本发明对预设主题的相关信息通过构建隐性马尔可夫模型进行分词处理。由于文本满足马尔科夫性,即文本中第m个词出现的可能性只与其前面m-1个词语的出现有关,而与m个词语之前和第m个词语之后的所有词语无关,因此n元语法模型的目的是:在前m-1个词语出现的情况下,给出第m词语出现的概率,具体表示为:

p(wm|w1,…wm-1)=p(wm|w1,…wm-n+1,…wm-1)

其中,m表示文本中的第任意个词,n表示第m个词的前一个词。

若句子s由词序列{w1,w2…wm}组成,则句子按照该词序排列的概率为:

p(s)=p(w1w2…wm)=p(w1)p(w2|w1)…p(wm|wm-n+1,…wm-1)

其中,条件概率p(wm|wm-n+1,…wm-1)表示:在字符串wm-n+1,…wm-1出现的情况下wm出现的概率,在大规模语料库训练的基础上,使用二元语法模型,因此,句子的概率模型为:

对句子s使用全切分法进行切分,获得所有可能的中文分词方式,然后计算每一种分词方式的概率,选出其中概率最大的一种分词方式,作为最终文本分词结果。选择过程即求p(s)的极大值:

由于预设主题的相关信息之中存在与主题无关的叙述,因此,本发明在基于隐性马尔可夫模型进行分词的情况下,进行关键词抽取。

关键词提取算法是利用统计信息、词向量信息以及词语间的依存句法信息,通过构建依存关系图来计算词语之间的关联强度,利用textrank算法迭代算出词语的重要度得分,首先根据句子的依存句法分析结果对所有非停用词构造无向图,接着利用词语之间的引力值以及依存关联度计算求得边的权重。因此,任意两词wi和wj的依存关联度为:

其中,len(wi,wj)表示词语wi和wj之间的依存路径长度,b是超参数。

同时,引入了idf值,将词频替换为tf-idf值,从而考虑到更全局性的信息。于是得到了新的词引力值公式。文本词语wi和的wj的引力:

其中,tfidf(w)是词w的tf-idf值,d是词wi和wj的词向量之间的欧式距离。

因此,两个词语之间的关联度为:

weight(wi,wj)=dep(wi,wj)*fgrav(wi,wj)

最后,本发明利用textrank算法建立一个无向图g=(v,e),其中v是顶点的集合,e是边的集合,根据下列式子算出顶点wi的得分ws(wi),其中,是与顶点wi有关的集合(指向顶点的顶点集合),η为阻尼系数,wk表示无向图g中的顶点,ws(wj)为顶点wj的得分。本实施例中,可以选取得分最高的若干个词语作为主干词,并对主干词进行语义增强。

步骤s501,向所述目标用户发送与所述预设主题对应的推荐产品信息。

例如,与预设消费主题对应的推荐产品信息为m电子产品的信息和n电子产品的信息,则向用户发送m电子产品的信息以及n电子产品的信息。

在获取到与预设主题对应的推荐产品信息之后,向目标用户发送该推荐产品信息,从而能够准确的向目标用户进行信息推荐。

本实施例提出的基于数据比较的信息推荐方法,获取目标用户的第一数据和比较用户的第二数据,所述第一数据和所述第二数据是有关预设主题的数据,且所述第一数据和所述第二数据是经过同态加密的数据;通过同态操作比较所述第一数据和所述第二数据的大小,得到排序结果;从所述排序结果中获取所述目标用户的排序,以及将所述排序结果返回至所述目标用户;若所述目标用户的排序为预设排序,获取与所述预设主题对应的推荐产品信息;向所述目标用户发送与所述预设主题对应的推荐产品信息。由于目标用户的第一数据和其他用户的第二数据是经过加密的数据,且通过同态操作进行数据比较,因此,本发明在数据比较的同时保护数据的细节不被公开;同时,由于在未获取用户数的细节的情况下仍能准确的进行排序,进而根据用户的排序进行个性化推荐,因此本发明实现了不仅能够保护用户的隐私数据,而且能够准确地进行个性化推荐的目的。

本发明还提供一种基于数据比较的信息推荐装置。参照图2所示,为本发明一实施例提供的基于数据比较的信息推荐装置的内部结构示意图。

在本实施例中,基于数据比较的信息推荐装置1可以是pc(personalcomputer,个人电脑),也可以是智能手机、平板电脑、便携计算机等终端设备。该基于数据比较的信息推荐装置1至少包括存储器11、处理器12,通信总线13,以及网络接口14。

其中,存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是基于数据比较的信息推荐装置1的内部存储单元,例如该基于数据比较的信息推荐装置1的硬盘。存储器11在另一些实施例中也可以是基于数据比较的信息推荐装置1的外部存储设备,例如基于数据比较的信息推荐装置1上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,存储器11还可以既包括基于数据比较的信息推荐装置1的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于基于数据比较的信息推荐装置1的应用软件及各类数据,例如基于数据比较的信息推荐程序01的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。

处理器12在一些实施例中可以是一中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行基于数据比较的信息推荐程序01等。

通信总线13用于实现这些组件之间的连接通信。

网络接口14可选的可以包括标准的有线接口、无线接口(如wi-fi接口),通常用于在该装置1与其他电子设备之间建立通信连接。

可选地,该装置1还可以包括用户接口,用户接口可以包括显示器(display)、输入单元比如键盘(keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及有机发光二极管(organiclight-emittingdiode,oled)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在基于数据比较的信息推荐装置1中处理的信息以及用于显示可视化的用户界面。

图2仅示出了具有组件11-14以及基于数据比较的信息推荐程序01的基于数据比较的信息推荐装置1,本领域技术人员可以理解的是,图2示出的结构并不构成对基于数据比较的信息推荐装置1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。

在图2所示的装置1实施例中,存储器11中存储有基于数据比较的信息推荐程序01;处理器12执行存储器11中存储的基于数据比较的信息推荐程序01时实现如下步骤:

获取目标用户的第一数据和比较用户的第二数据,所述第一数据和所述第二数据是有关预设主题的数据,且所述第一数据和所述第二数据是经过同态加密的数据。

本实施例中,所述目标用户为要进行数据比较的用户。所述比较用户的数量可以为多个,则第二数据为各个比较用户的第二数据。

所述预设主题可为一段时间内的消费金额、身高、年龄等。

例如,目标用户为a用户,比较用户为b用户,目标用户的第一数据为a用户在过去半年内的第一累计消费金额,比较用户的第二数据为b用户在过去半年内的第二累计消费金额。

在本实施例中,第一数据和第二数据都是经过同态加密的数据。一种可选实施例中,第一数据是在目标用户的客户端经过同态加密之后传输至数据比较中心的,第二数据是在比较用户的客户端经过同态加密之后传输至数据比较中心的。

所述同态加密是指对给定的明文(x1,x2,…,xn),利用同态加密算法加密后得到密文c,全同态加密允许任何人对密文c进行任何操作f,操作后得到的密文f(c)解密后与f(x1,x2,…,xn)的结果是一样的。这个过程中(x1,x2,…,xn)、f(x1,x2,…,xn)以及任何中间明文都没有泄露;输入值、输出值、中间值一直是在加密状态中。对最后的密文形式的f(x1,x2,…,xn)有不同的要求,最低的要求就是它要能正确解密得出f(x1,x2,…,xn),而满足不同的密文计算特性就导致有不同形式的同态加密。

同态加密包括半同态加密和全同态加密,半同态加密是指数据加密满足加法同态或者乘法同态。rsa算法满足乘法同态,paillier算法满足加法同态。

例如,对于rsa算法,公钥是(e,n),对明文m加密表示为c=e(m)=memodn;

对任意m1和m2存在:

即对任意的明文m1,m2,…mn,都有:

e(m1)*e(m2)*…e(mn)=e(m1*m2*…mn),即rsa算法满足乘法同态运算。

在本发明一可选实施例中,第一数据和第二数据可以是使用非对称加密(rsa)算法进行加密得到的,具体的,第一数据和第二数据可以是通过数据比较中心提供的公钥进行加密得到的。

通过同态操作比较所述第一数据和所述第二数据的大小,得到排序结果。

在本实施例中,对第一数据和第二数据进行同态操作,例如,同态操作为将第一数据和第二数据分别与标准数相加或者相乘之后再大小。

本实施例中,排序结果即为第一数据和第二数据哪一个数据更大,哪一个数据更小。

当第二数据为多个比较用户的数据时,将第一数据与多个数据分别进行比较,得到排序结果。

可选的,在本发明另一实施例中,所述通过同态操作比较所述第一数据和所述第二数据的大小,得到排序结果包括:

将所述第一数据与所述第二数据的负数相加,得到第一计算结果,若所述第一计算结果为正数,得到所述第一数据大于所述第二数据的排序结果,若所述第一计算结果为负数,得到所述第一数据小于所述第二数据的排序结果;或者

将所述第一数据的负数与所述第二数据相加,得到第二计算结果,所述第二计算结果为正数,得到所述第一数据小于所述第二数据的排序结果,若所述第二计算结果为负数,得到所述第一数据大于所述第二数据的排序结果。

从所述排序结果中获取所述目标用户的排序,以及将所述排序结果返回至所述目标用户。

例如,从排序结果中获取到目标用户的排序为第一;或者从排序结果中获取到目标用户的排序为第二;从排序结果中获取到目标用户的排序为第三。

一种可选实施例中,将排序结果返回至目标用户包括将排序结果返回至目标用户的客户端,目标用户的客户端可以通过用户的分享操作将排序结果分享展示。

可选的,在本发明另一实施例中,所述将所述排序结果返回至所述目标用户包括:

利用接收到的所述目标用户发送的公钥对所述排序结果进行加密,得到加密排序结果;

将所述加密排序结果返回至所述目标用户。

在本实施例中,在向目标用户返回排序结果时,可以将排序结果通过目标用户的公钥进行加密,则目标用户的客户端在接收到加密排序结果之后,通过私钥进行解密,进而获取到具体的排序结果,提高了数据传输过程中的安全性。

若所述目标用户的排序为预设排序,获取与所述预设主题对应的推荐产品信息。

一种可选实施例中,目标用户的排序为预设排序包括:目标用户的排序为第一。

另一可选实施例中,目标用户的排序为预设排序包括:目标用户的排序为前三分之一。

又一可选实例中,目标用户的排序为预设排序包括:目标用户的排序为前后三分之一。

所述预设主题对应的推荐产品信息可以为预设的。例如,预设的与预设主题对应的推荐产品为低脂零食和低脂饮品,当用户的体脂率排名为最低时,向用户推荐低脂零食和低脂饮品。

在本发明其他实施例中,也可以根据预设主题和目标用户的不同排序来推荐不同的产品信息。

可选的,在本发明另一实施中,所述获取与所述预设主题对应的推荐产品信息包括:

获取所述预设主题的相关信息;

将所述预设主题的相关信息映射到预设bow模型的目标词典,得到目标直方图特征向量,所述目标词典为通过训练样本进行聚类处理得到的;

将所述目标直方图特征向量输入至用于构建所述预设bow模型的朴素贝叶斯分类器,通过所述朴素贝叶斯分类器对所述预设主题的相关信息进行分类,得到所述预设主题的相关信息的所属类别;

获取所述预设主题的相关信息的所属类别对应的待推荐产品信息;

确定与所述预设主题的相关信息的所属类别对应的待推荐产品信息为所述预设主题对应的推荐产品信息。

本实施例中,所述预设主题的相关信息为与预设主题有关的信息。

例如,预设主题为消费主题,预设主题的消费相关信息包括消费的历史记录(如在不同的消费时间和消费地点所购买的商品信息)。

在本实施例中,所述bow模型为预先建立的,具体的bow模型是通过聚类算法(如k-means算法和朴素贝叶斯分类器构建的)。

一种可选实施例中,所述预设bow可以通过以下方式构建:

(1)利用聚类算法(例如k-means算法)进行大数据聚类,找到聚类中心点(即vocabulary)。所谓聚类,即根据相似性原则,将具有较高相似度的数据对象划分至同一类簇,将具有较高相异度的数据对象划分至不同类簇。其中k-means算法中的k代表类簇个数,means代表类簇内数据对象的均值(这种均值是一种对类簇中心的描述),因此,k-means算法又称为k-均值算法。k-means算法是一种基于划分的聚类算法,以距离作为数据对象间相似性度量的标准,即数据对象间的距离越小,它们的相似性越高,即表示它们越有可能在同一个类簇。在本发明实施例中,利用欧式距离计算数据对象间的距离,假设xi,xj为数据,d表示数据对象的属性个数,其两者间的距离为:

其中,xi,d表示第i个点的第d维坐标,xj,d表示第j个点的d维坐标。

同时定义第k个类簇的类簇中心为centerk,其更新方式为:

其中ck表示第k个类簇中数据对象的个数,centerk表示一个含有d属性的向量。

最后,采用误差平方和准则函数得到最终聚类结果j:

训练数据像聚类中心映射,得到每一个训练数据在该聚类中心空间的一个低维表示。通过最终聚类结果j,将其作为直方图的基,用该基向量构造别的向量,并做映射,得到不同类别的一个类别的直方图的统计,这个过程也是对bow模型特征提取的过程。

得到每一个训练数据的低维表示后,选择基于多项式的朴素贝叶斯分类器训练。朴素贝叶斯分类是低方差高偏差的分类器,假设各个特征之间存在条件独立性假设:对于给定的类别,所有的特征相互独立。对于给定样本x=(x1,x2,…,xd)t,其属于类别wi的后验概率为:

其中d是特征维数,xk是样本在第k个特征上的取值。为避免数据稀疏的问题,可以先对数据使用平滑:

其中ck表示第k维特征可能取值的个数,α为系数。本发明通过使用mle极大似然估计方法,得到:其中,di表示wi类的训练样本构成的集合,分子表示wi类的训练样本构成的集合di中,第k个特征的取值为xk的样本数。

本实施例中,在构建预设bow模型,以及获取到预设主题的相关信息后,将预设主题的相关信息映射到预设bow模型的目标词典,其中,预设bow模型的目标词典是构建bow模型时通过聚类处理得到的聚类中心空间。

本实施例中,预设主题的相关信息的所属类别对应的待推荐产品信息可以为预设的,即预设设置不同类别所对应的待推荐产品信息的对应关系,则在获取到预设主题的相关信息的所属类别之后,根据该类别获取与该类别对应的待推荐产品信息。

可选的,在本发明另一实施例中,所述确定与所述预设主题的相关信息的所属类别对应的产品信息为所述预设主题对应的推荐产品信息包括:

对所述预设主题的相关信息进行词频特征向量提取,得到词频向量;

计算所述词频向量与所述待推荐产品信息的相似度;

确定所述待推荐产品信息之中与所述词频向量的相似度大于预设相似度的产品信息为与所述预设主题对应的推荐产品信息。

在实施例中,可以通过余弦相似度计算相似度。

所述余弦相似度是用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小的度量,余弦值越接近1,就表明夹角越接近0度,也就是两个向量越相似。对于所得到的客户所晒主题的相关信息x和推荐产品信息y,利用下列式子进行计算:

其中,x是所晒主题的相关信息的向量表示,y是推荐产品信息的向量表示,xi表示向量x的分量,yi表示向量y的分量。

通过以上式子得到的相似性范围从-1到1,其中-1表示两个向量指向的方向正好截然相反,1表示它们的指向是完全相同的,0通常表示它们之间是独立的。

本实施例中根据所计算出来的值来判断相似度,从而将相似度高的推荐产品信息推荐给目标用户,从而能够推荐更符合用户的产品。

可选的,在本发明另一实施例中,将所述预设主题的相关信息映射到预设bow模型的目标词典之前,对所述预设主题的相关信息进行文本处理,所述文本处理包括对所述预设主题的相关信息通过隐性马尔科夫模型进行分词处理,以及通过预设关键词提取算法对分词处理后的信息进行文本改写。

本实施例中,先对预设主题的相关信息进行文本处理,再根据处理后得到的预设主题的相关信息进行映射到预设bow模型的目标词典的操作。

所述文本改写(rewrite)指对于一个文本,首先采用中文分词,然后进行清理、保留主干词,对主干词进行语义增强(同义词/关联词补充)。

首先,本发明对预设主题的相关信息通过构建隐性马尔可夫模型进行分词处理。由于文本满足马尔科夫性,即文本中第m个词出现的可能性只与其前面m-1个词语的出现有关,而与m个词语之前和第m个词语之后的所有词语无关,因此n元语法模型的目的是:在前m-1个词语出现的情况下,给出第m词语出现的概率,具体表示为:

p(wm|w1,…wm-1)=p(wm|w1,…wm-n+1,…wm-1)

其中,m表示文本中的第任意个词,n表示第m个词的前一个词。

若句子s由词序列{w1,w2…wm}组成,则句子按照该词序排列的概率为:

p(s)=p(w1w2…wm)=p(w1)p(w2|w1)…p(wm|wm-n+1,…wm-1)

其中,条件概率p(wm|wm-n+1,…wm-1)表示:在字符串wm-n+1,…wm-1出现的情况下wm出现的概率,在大规模语料库训练的基础上,使用二元语法模型,因此,句子的概率模型为:

对句子s使用全切分法进行切分,获得所有可能的中文分词方式,然后计算每一种分词方式的概率,选出其中概率最大的一种分词方式,作为最终文本分词结果。选择过程即求p(s)的极大值:

由于预设主题的相关信息之中存在与主题无关的叙述,因此,本发明在基于隐性马尔可夫模型进行分词的情况下,进行关键词抽取。

关键词提取算法是利用统计信息、词向量信息以及词语间的依存句法信息,通过构建依存关系图来计算词语之间的关联强度,利用textrank算法迭代算出词语的重要度得分,首先根据句子的依存句法分析结果对所有非停用词构造无向图,接着利用词语之间的引力值以及依存关联度计算求得边的权重。因此,任意两词wi和wi的依存关联度为:

其中,len(wi,wj)表示词语wi和wj之间的依存路径长度,b是超参数。

同时,引入了idf值,将词频替换为tf-idf值,从而考虑到更全局性的信息。于是得到了新的词引力值公式。文本词语wj和的wj的引力:

其中,tfidf(w)是词w的tf-idf值,d是词wi和wj的词向量之间的欧式距离。

因此,两个词语之间的关联度为:

weight(wi,wj)=dep(wi,wj)*fgrav(wi,wj)

最后,本发明利用textrank算法建立一个无向图g=(v,e),其中v是顶点的集合,e是边的集合,根据下列式子算出顶点wi的得分ws(wi),其中,是与顶点wi有关的集合(指向顶点的顶点集合),η为阻尼系数,wk表示无向图g中的顶点,ws(wj)为顶点wj的得分。本实施例中,可以选取得分最高的若干个词语作为主干词,并对主干词进行语义增强。向所述目标用户发送与所述预设主题对应的推荐产品信息。

例如,与预设消费主题对应的推荐产品信息为m电子产品的信息和n电子产品的信息,则向用户发送m电子产品的信息以及n电子产品的信息。

在获取到与预设主题对应的推荐产品信息之后,向目标用户发送该推荐产品信息,从而能够准确的向目标用户进行信息推荐。

本实施例提出的基于数据比较的信息推荐装置,获取目标用户的第一数据和比较用户的第二数据,所述第一数据和所述第二数据是有关预设主题的数据,且所述第一数据和所述第二数据是经过同态加密的数据;通过同态操作比较所述第一数据和所述第二数据的大小,得到排序结果;从所述排序结果中获取所述目标用户的排序,以及将所述排序结果返回至所述目标用户;若所述目标用户的排序为预设排序,获取与所述预设主题对应的推荐产品信息;向所述目标用户发送与所述预设主题对应的推荐产品信息。由于目标用户的第一数据和其他用户的第二数据是经过加密的数据,且通过同态操作进行数据比较,因此,本发明在数据比较的同时保护数据的细节不被公开;同时,由于在未获取用户数的细节的情况下仍能准确的进行排序,进而根据用户的排序进行个性化推荐,因此本发明实现了不仅能够保护用户的隐私数据,而且能够准确地进行个性化推荐的目的。

可选地,在其他实施例中,基于数据比较的信息推荐程序还可以被分割为一个或者多个模块,一个或者多个模块被存储于存储器11中,并由一个或多个处理器(本实施例为处理器12)所执行以完成本发明,本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,用于描述基于数据比较的信息推荐程序在基于数据比较的信息推荐装置中的执行过程。

例如,参照图3所示,为本发明基于数据比较的信息推荐装置一实施例中的基于数据比较的信息推荐程序的程序模块示意图,该实施例中,基于数据比较的信息推荐程序可以被分割为第一获取模块10、比较模块20、第一传输模块30、第二获取模块40和第二传输模块50,示例性地:

第一获取模块10用于:获取目标用户的第一数据和比较用户的第二数据,所述第一数据和所述第二数据是有关预设主题的数据,且所述第一数据和所述第二数据是经过同态加密的数据;

比较模块20用于:通过同态操作比较所述第一数据和所述第二数据的大小,得到排序结果;

第一传输模块30用于:从所述排序结果中获取所述目标用户的排序,以及将所述排序结果返回至所述目标用户;

第二获取模块40用于:若所述目标用户的排序为预设排序,获取与所述预设主题对应的推荐产品信息;

第二传输模块50用于:向所述目标用户发送与所述预设主题对应的推荐产品信息。

上述第一获取模块10、比较模块20、第一传输模块30、第二获取模块40和第二传输模块50等程序模块被执行时所实现的功能或操作步骤与上述实施例大体相同,在此不再赘述。

此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有基于数据比较的信息推荐程序,所述基于数据比较的信息推荐程序可被一个或多个处理器执行,以实现如下操作:

获取目标用户的第一数据和比较用户的第二数据,所述第一数据和所述第二数据是有关预设主题的数据,且所述第一数据和所述第二数据是经过同态加密的数据;

通过同态操作比较所述第一数据和所述第二数据的大小,得到排序结果;

从所述排序结果中获取所述目标用户的排序,以及将所述排序结果返回至所述目标用户;

若所述目标用户的排序为预设排序,获取与所述预设主题对应的推荐产品信息;

向所述目标用户发送与所述预设主题对应的推荐产品信息。

本发明计算机可读存储介质具体实施方式与上述基于数据比较的信息推荐装置和方法各实施例基本相同,在此不作累述。

需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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