分层次隐私保护的推荐系统及基于该推荐系统的作业方法与流程

文档序号:11950588阅读:463来源:国知局
分层次隐私保护的推荐系统及基于该推荐系统的作业方法与流程

本发明属于数据挖掘领域,尤其涉及一种分层次隐私保护的推荐系统及基于该推荐系统的作业方法。



背景技术:

随着互联网的兴起和各种智能终端的普及,人们产生的各种信息都被大规模数字化,使数字化信息呈指数级爆炸式增长。面对海量数据中蕴藏的知识和规则,数据挖掘和推荐系统应运而生。一些线上的电子商务、音乐、电影、社交网络等网站中也大多开发应用了推荐系统或模块。在这些推荐系统或模块应用的同时,对推荐系统的隐私保护越来越引起人们的重视。

现有推荐系统的隐私保护主要涉及以下问题,一方面,推荐系统在产生推荐时存在单方面拥有的数据不足以获取最终结果的情况,因而不同的组织或个人之间的合作计算逐渐增加,即多方协同推荐。在推荐系统中,商家拥有的数据涉及到用户隐私,比如用户的通话记录,消费信息等,但为了获得推荐结果必须通过多个商家的合作计算得出,多方合作进行数据挖掘的同时必须保护各自的私有数据安全。出于商业机密或是用户隐私的考虑,合作计算通常会受到限制,甚至会为了数据安全放弃合作计算的进行,从而影响推荐结果的有效性。

另一方面,推荐系统在运行过程中需要收集很多的用户信息。既包括直接要求用户提供的静态信息,如系统注册时所输入的性别、年龄、职业、喜好等信息,又包括用户使用系统时产生的行为信息。比如点击、浏览、搜索关键词、收藏等。数据隐私可以是用户不愿意被披露的数据或者是这些数据所表现的特征。用户可能在不知情的情况下将涉及到个人隐私的信息泄露给了推荐系统。

目前的数据挖掘以及推荐系统领域的隐私保护技术,大多仅针对特定数据和特定环节进行处理。如用户评分数据,用户医疗数据等进行加扰、变换、匿名等操作,或是在推荐算法中引入聚类等机制来进行隐私保护。另外,现有推荐系统的隐私保护策略一般基于预设的模型对数据进行控制,用户的参与度低、可控性差,而随着用户的隐私保护的意识的提高,更多的用户希望根据其自身对隐私信息的敏感程度采取对应的保护措施。



技术实现要素:

本发明所要解决的技术问题之一是需要提供一种推荐系统以解决现有隐私保护技术中保护层次不完全,用户参与度低的问题。

为了解决上述技术问题,本申请的实施例提供了一种分层次隐私保护的推荐系统,包括:客户端/浏览器及数据库,提供与服务器交换数据的接口,接收用户输入的个人信息及服务请求,将所述个人信息存储至客户端/浏览器的数据库中,将所述服务请求发送至代理服务器,以及将推荐服务器返回的推荐结果显示给用户;代理服务器及数据库,接收用户的服务请求,并响应所述服务请求,接收推荐服务器的推荐结果,并根据所述推荐结果向用户进行推荐;多个推荐服务器及数据库,存储以及管理推荐系统中的项目资源,根据用户评分信息合作产生满足用户服务请求的推荐。

本申请的实施例还提供了一种基于如权利要求1所述的系统的推荐方法,包括以下作业步骤:客户端/浏览器接收目标用户输入的服务请求及个人信息;代理服务器广播目标用户的ID;各推荐服务器根据本地用户的项目评分矩阵计算目标用户与其他用户的相似度,并根据预设的协议在发起推荐的推荐服务器处得到相似度的明文并集;发起推荐的推荐服务器基于所述相似度的明文并集确定全局相似度阈值,并广播至其他推荐服务器;各推荐服务器根据所述全局相似度阈值、并基于协同过滤推荐算法合作产生满足用户服务请求的推荐。

优选地,所述根据预设的协议在发起推荐的推荐服务器处得到相似度的明文并集,包括以下作业步骤:各推荐服务器使用非对称加密算法生成公钥PKi和私钥SKi,并将公钥PKi进行广播,将私钥SKi存储于本地;各推荐服务器将本地的目标用户与其他用户的相似度集合Si(1≤i≤n且n≥3)打乱并根据推荐服务器的数目n对Si进行划分,每份的大小随机,使用第j+1 mod n个推荐服务器的公钥PKj+1 mod n加密Si的第j份数据Si,j(1≤j≤n),并将加密得到的EPKj+1 mod n(Si,j)发送至第j个推荐服务器;第j个推荐服务器将接收到的数据EPKj+1 mod n(Si,j)(1≤j≤n)发送至推荐服务器i+1 mod n;推荐服务器i+1 mod n使用私钥SKi+1 mod n对数据进行解密,求得并集∪j(Sj,i),并将所述并集发送至发起推荐的推荐服务器;发起推荐的推荐服务器将获得的数据取并集,得到∪i(∪j(Sj,i)=∪i(Si)(1≤i≤n),向各推荐服务器广播Si的并集。

优选地,所述各推荐服务器根据所述全局相似度阈值、并基于协同过滤推荐算法合作产生满足用户服务请求的推荐,包括以下作业步骤:各推荐服务器根据所述全局相似度阈值分别调整各自的最近邻,并采用协同过滤算法合作计算项目预测评分;发起推荐的推荐服务器将所述项目预测评分的结果由高到低排列并取设定数目的项目作为推荐结果。

优选地,各推荐服务器根据以下表达式合作计算项目预测评分:

<mrow> <mi>p</mi> <mrow> <mo>(</mo> <mi>u</mi> <mo>,</mo> <mi>i</mi> <mo>)</mo> </mrow> <mo>=</mo> <mover> <mrow> <mi>R</mi> <mi>u</mi> </mrow> <mo>&OverBar;</mo> </mover> <mo>+</mo> <mfrac> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>s</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <msub> <mi>&Sigma;</mi> <mrow> <msub> <mi>v</mi> <mi>s</mi> </msub> <mo>&Element;</mo> <msub> <mi>N</mi> <mi>s</mi> </msub> </mrow> </msub> <mi>s</mi> <mi>i</mi> <mi>m</mi> <mrow> <mo>(</mo> <mi>u</mi> <mo>,</mo> <msub> <mi>v</mi> <mi>s</mi> </msub> <mo>)</mo> </mrow> <mo>&times;</mo> <mrow> <mo>(</mo> <mi>R</mi> <mo>(</mo> <mrow> <msub> <mi>v</mi> <mi>s</mi> </msub> <mo>,</mo> <mi>i</mi> </mrow> <mo>)</mo> <mo>-</mo> <mover> <msub> <mi>R</mi> <msub> <mi>v</mi> <mi>s</mi> </msub> </msub> <mo>&OverBar;</mo> </mover> <mo>)</mo> </mrow> </mrow> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>s</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <msub> <mi>&Sigma;</mi> <mrow> <msub> <mi>v</mi> <mi>s</mi> </msub> <mo>&Element;</mo> <msub> <mi>N</mi> <mi>s</mi> </msub> </mrow> </msub> <mi>s</mi> <mi>i</mi> <mi>m</mi> <mrow> <mo>(</mo> <mi>u</mi> <mo>,</mo> <msub> <mi>v</mi> <mi>s</mi> </msub> <mo>)</mo> </mrow> </mrow> </mfrac> </mrow>

其中,p(u,i)为目标用户u对目标项目i的预测评分,vs为推荐服务器s上的最近邻居集Ns中的邻居用户,R(vs,i)为邻居用户vs对目标项目i的评分,为邻居用户vs对已打分项目的平均评分,为目标用户u对已打分项目的平均评分。

本申请的实施例还提供了一种基于如权利要求1所述的系统的查询方法,其特征在于,在所述代理服务器的数据库中还存储有与推荐服务器的数据库中的项目评分信息对应的项目ID和经过加密的项目名称,当用户利用所述客户端/浏览器发起查询时,包括以下作业步骤:客户端/浏览器对用户提供的查询的项目名称明文进行加密,并将加密后的数据作为查询参数发送至代理服务器;代理服务器查询数据库中的项目ID和经过加密的项目名称,如果查询到相应条目,将项目ID的值m和数据库的总项目数n返回给客户端/浏览器,如果没有对应条目,则返回无搜索结果;客户端/浏览器根据所述总项目数n随机在1~n的范围内随机产生k-1个整数值,并将m与所述k-1个整数值发送至推荐服务器;推荐服务器在其本地数据库中根据项目ID进行查询并返回k项项目数据;客户端/浏览器从所述k项项目数据中获取项目ID为m的项目信息显示给用户。

本申请的实施例还提供了一种基于如权利要求1所述的系统的冷启动方法,其特征在于,在客户端/浏览器的数据库中存储包含用户的浏览信息与详细的兴趣描述的用户本地偏好数据;在代理服务器的数据库中存储包含概括的兴趣描述的用户代理偏好数据;根据所述用户代理偏好数据获取对应于用户类别的推荐,根据所述用户本地偏好数据对所述对应于用户类别的推荐进行筛选。

优选地,当利用所述系统获取推荐结果的用户为小数据用户时,包括以下作业步骤:代理服务器根据用户代理偏好数据以及类别数据对该用户进行分类,并将用户类别发送至推荐服务器,其中,所述类别数据为推荐服务器使用已存在的用户离线进行推荐算法建模得到的数据;推荐服务器根据从代理服务器接收的用户类别获取相应的项目推荐列表和项目描述元数据并发送至代理服务器;代理服务器将所述项目推荐列表和项目描述元数据发送至客户端/浏览器,客户端/浏览器根据用户本地偏好数据与项目描述元数据的相似度,对推荐列表进行筛选,并将修正后的推荐结果推荐给用户。

优选地,所述推荐服务器根据从代理服务器接收的用户类别获取相应的项目推荐列表和项目描述元数据,包括以下作业步骤:推荐服务器离线对训练数据集中的用户信息进行聚类,并生成与每个类别对应的推荐列表;推荐服务器根据聚类结果及从代理服务器接收的用户类别获取相应的项目推荐列表和项目描述元数据。

优选地,所述用户本地偏好数据能够由用户根据其需要查看或修改,客户端/浏览器将修改后的用户本地偏好数据发送至代理服务器更新用户代理偏好数据;所述用户本地偏好数据能够由客户端/浏览器根据用户的操作行为进行更新,客户端/浏览器将更新后的用户本地偏好数据发送至代理服务器更新用户代理偏好数据。

与现有技术相比,上述方案中的一个或多个实施例可以具有如下优点或有益效果:

通过分层次界定推荐系统中的隐私信息,针对不同敏感程度的信息进行区别处理,解决了用户在使用推荐系统进行推荐、查询以及小数据冷启动等应用场景下的隐私保护问题,该系统架构对不同的推荐算法有着良好的宽容度,易于推广应用。

本发明的其他优点、目标,和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书,权利要求书,以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本申请的技术方案或现有技术的进一步理解,并且构成说明书的一部分。其中,表达本申请实施例的附图与本申请的实施例一起用于解释本申请的技术方案,但并不构成对本申请技术方案的限制。

图1为根据本发明实施例的分层次隐私保护的推荐系统的结构示意图;

图2为基于本发明实施例的分层次隐私保护的推荐系统获取相似度的明文并集的作业流程示意图;

图3为基于本发明实施例的分层次隐私保护的推荐系统进行推荐时的作业流程示意图;

图4为基于本发明实施例的分层次隐私保护的推荐系统的安全查询的原理示意图;

图5为基于本发明实施例的分层次隐私保护的推荐系统进行查询时的作业流程示意图;

图6为基于本发明实施例的分层次隐私保护的推荐系统的小数据冷启动的原理示意图;

图7为基于本发明实施例的分层次隐私保护的推荐系统的小数据冷启动的作业流程示意图。

具体实施方式

以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成相应技术效果的实现过程能充分理解并据以实施。本申请实施例以及实施例中的各个特征,在不相冲突前提下可以相互结合,所形成的技术方案均在本发明的保护范围之内。

针对现有技术中推荐系统隐私保护层次不完全的问题,本发明提出一种面向不同的数据采用不同的隐私保护的策略,完成分层次的全面的推荐系统隐私保护,下面结合实施例进行说明。

图1为根据本发明实施例的保护隐私的分层次推荐系统的结构示意图,如图所示,该系统包括客户端/浏览器及相应的本地数据库、代理服务器及相应的本地数据库以及多个推荐服务器及与各推荐服务器对应的本地数据库。

客户端/浏览器主要为用户提供与服务器交换数据的接口,整个系统的架构可以选择B/S结构模式或C/S结构模式,图1中为B/S结构模式。客户端/浏览器可以用于接收用户输入的个人信息及服务请求,将用户的注册信息、基本信息等个人信息及时地反馈给代理服务器,同时将用户的完整的偏好信息等个人信息存储至客户端/浏览器的数据库中,即索引数据库中,如图1所示。

客户端/浏览器还向用户提供显示信息的界面,完成信息的最终呈现。客户端/浏览器处理推荐服务器返回的推荐结果,将推荐结果按照设计要求组织,呈现给用户。

代理服务器是用于连接推荐服务器和用户的中间节点,其接收用户的服务请求,并响应该服务请求,接收推荐服务器的推荐结果,并根据推荐结果向用户进行推荐。

推荐服务器主要用于存储以及管理推荐系统中的项目资源,其能够根据用户评分信息按照设定的安全多方计算协议运行协同推荐算法为用户产生推荐。推荐服务器在用户已建立兴趣描述文件情况下,推荐服务器中数据库信息以相同的方式对项目数据进行描述。例如在电影推荐系统中,用户兴趣描述文件为包含喜好的电影类型、喜好的电影地区等信息时,推荐服务器的电影也需要包含电影类型、电影地区等标签,以便于后续的相似度比较和项目筛选。

另外,在本发明的实施例中,分层次的推荐系统中包含两种类型的数据库,客户端浏览器内的索引数据库IndexedDB和服务器端的数据库MySQL。索引数据库中存储的是用户完整的注册信息,包括用户名、性别、年龄、职业以及喜欢电影类型和地区等偏好信息。推荐服务器端数据库中存储的为项目资源数据和用户的项目评分矩阵等信息。代理服务器端数据库中存储的为用户概括性的基本信息以及加密后的项目资源信息以配合冷启动推荐和安全查询过程。

需要说明的是,在图1中示意性地给出了多个推荐服务器来表示参与推荐的多个合作方,本发明实施例的分层次的推荐系统能够使参与推荐的各方,除了自己的输入信息和最后获得的计算结果外,不能得到其它参与方的信息。下面结合具体的作业流程说明该分层次的推荐系统是如何实现隐私保护的。

对数据进行合理划分和存储,以实现处理能力的最大化,项目数据和较少访问的静态信息数据单独存储,采取读写分离。用户偏好数据存储在本机浏览器的索引数据库中。用户评分数据采取水平划分,每个站点存储部分用户的评分数据,便于计算目标用户在单个站点的最近邻,减少连接操作。使划分方式接近实际中多方数据联合挖掘的应用场景。

图2为基于本发明实施例的保护隐私的分层次推荐系统获取相似度的明文并集的作业流程示意图,如图2所示,首先,用户通过客户端/浏览器输入服务请求及相应的个人信息,客户端/浏览器接收目标用户输入的服务请求及个人信息后将上述信息发送至代理服务器,代理服务器随后向各推荐服务器广播该目标用户的ID。各推荐服务器根据该目标用户的ID,能够获取存储于推荐服务器的数据库中的用户评分数据,包含用户ID,项目ID,评分值等。通过向各推荐服务器广播目标用户ID,可以便于各推荐服务器明确目标用户并进行之后的计算。

然后,由上述推荐服务器中的一个发起推荐过程,各推荐服务器根据本地用户的项目评分矩阵计算目标用户与其他用户的相似度,并根据预设的协议在发起推荐的推荐服务器处得到相似度的明文并集。

接下来,发起推荐的推荐服务器基于相似度的明文并集确定全局相似度阈值,并广播至其他推荐服务器。各推荐服务器根据全局相似度阈值、并基于协同过滤推荐算法合作产生满足用户服务请求的推荐。

在本发明的一个实施例中,各推荐服务器根据预设的协议在发起推荐的推荐服务器处得到相似度的明文并集的作业过程如下:

1)各推荐服务器使用非对称加密算法生成公钥PKi和私钥SKi,并将公钥PKi进行广播,将私钥SKi存储于本地。

2)各推荐服务器将本地的目标用户与其他用户的相似度集合Si(1≤i≤n且n≥3)打乱并根据推荐服务器的数目n对Si进行划分,每份的大小随机,使用第j+1 mod n个推荐服务器的公钥PKj+1 mod n加密Si的第j份数据Si,j(1≤j≤n),并将加密得到的EPKj+1 mod n(Si,j)发送至第j个推荐服务器。

3)第j个推荐服务器将接收到的数据EPKj+1 mod n(Si,j)(1≤j≤n)发送至推荐服务器i+1 mod n。

4)推荐服务器i+1 mod n使用私钥SKi+1 mod n对数据进行解密,求得并集∪j(Sj,i),并将该并集发送至发起推荐的推荐服务器。

5)发起推荐的推荐服务器将获得的数据取并集,得到∪i(∪j(Sj,i)=∪i(Si)(1≤i≤n),向各推荐服务器广播Si的并集。

在上述作业过程中,采用RSA公钥加密体制,广播公钥使得除产生该密钥的其他推荐服务器可以使用公钥进行加密。打乱并随机划分本地的相似度集合,既分散了输入信息也隐藏了输入集合的长度。使用第j+1个推荐服务器的公钥进行加密发送给推荐服务器j后,推荐服务器j无法使用私钥SKj进行解密。在完成所有输入的扰乱传送后,将各推荐服务器接收到的数据发往拥有解密密钥的推荐服务器进行解密。虽然各推荐服务器能够看到在其本地解密后的明文数据,但是并集中元素来自所有推荐服务器,并不能判断出元素的准确来源。同样的,发起推荐的推荐服务器尽管能够获得全局并集,也不能获得元素的来源。可以看出,上述作业过程满足隐私保护的要求。

下面根据图2举例说明,假设推荐服务器1为发起推荐的服务器,推荐服务器1与推荐服务器2、3之间的数据交互情况如表1所示:

表1推荐服务器之间的数据交互

最终推荐服务器2和3将使用本地私钥解密后部分相似度数据合并到推荐服务器1,得到全局的相似度信息,并由推荐服务器1计算并广播全局相似度阈值。

在本发明的一个实施例中,各推荐服务器根据全局相似度阈值、并基于协同过滤推荐算法合作产生满足用户服务请求的推荐的作业过程如下:

1)各推荐服务器根据全局相似度阈值分别调整各自的最近邻,并采用协同过滤算法合作计算项目预测评分。

2)发起推荐的推荐服务器将项目预测评分的结果由高到低排列并取设定数目的项目作为推荐结果。

各推荐服务器根据表达式(1)合作计算项目预测评分:

<mrow> <mi>p</mi> <mrow> <mo>(</mo> <mi>u</mi> <mo>,</mo> <mi>i</mi> <mo>)</mo> </mrow> <mo>=</mo> <mover> <mrow> <mi>R</mi> <mi>u</mi> </mrow> <mo>&OverBar;</mo> </mover> <mo>+</mo> <mfrac> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>s</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <msub> <mi>&Sigma;</mi> <mrow> <msub> <mi>v</mi> <mi>s</mi> </msub> <mo>&Element;</mo> <msub> <mi>N</mi> <mi>s</mi> </msub> </mrow> </msub> <mi>s</mi> <mi>i</mi> <mi>m</mi> <mrow> <mo>(</mo> <mi>u</mi> <mo>,</mo> <msub> <mi>v</mi> <mi>s</mi> </msub> <mo>)</mo> </mrow> <mo>&times;</mo> <mrow> <mo>(</mo> <mi>R</mi> <mo>(</mo> <mrow> <msub> <mi>v</mi> <mi>s</mi> </msub> <mo>,</mo> <mi>i</mi> </mrow> <mo>)</mo> <mo>-</mo> <mover> <msub> <mi>R</mi> <msub> <mi>v</mi> <mi>s</mi> </msub> </msub> <mo>&OverBar;</mo> </mover> <mo>)</mo> </mrow> </mrow> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>s</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <msub> <mi>&Sigma;</mi> <mrow> <msub> <mi>v</mi> <mi>s</mi> </msub> <mo>&Element;</mo> <msub> <mi>N</mi> <mi>s</mi> </msub> </mrow> </msub> <mi>s</mi> <mi>i</mi> <mi>m</mi> <mrow> <mo>(</mo> <mi>u</mi> <mo>,</mo> <msub> <mi>v</mi> <mi>s</mi> </msub> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>

式中,p(u,i)为目标用户u对目标项目i的预测评分,vs为推荐服务器s上的最近邻居集Ns中的邻居用户,R(vs,i)为邻居用户vs对目标项目i的评分,为邻居用户vs对已打分项目的平均评分,为目标用户u对已打分项目的平均评分。

各推荐服务器分别计算表达式(1)分式中的分母值和分子值,最终合并到发起推荐的推荐服务器1后,由推荐服务器1计算目标用户对项目的最终预测评分,并将预测评分由高到低进行排列,取前N项组成多方推荐列表(即TOP N的ID列表)推荐给目标用户。

在本发明实施例中,通过随机划分可以减少单次公钥加密数据的长度,同时降低加密带来的时间消耗。虽然单个站点在解密后可以看到相似度明文,但是并不能判断相似度的来源站点和来源用户,满足隐私保护的要求。

如图3所示,在整个推荐系统架构中,采用基于用户的协同过滤算法。即各推荐服务器利用其拥有的用户项目评分数据计算出目标用户和其他用户间的相似度从而找出最近邻。各推荐服务器在保证隐私安全的情况下解密部分相似度数据,在发起推荐的服务器处得到全局相似度下限值从而广播至各推荐服务器更新全局相似度阈值,最终的推荐列表基于多站点中间数据计算预测评分取TOP N实现。

现有技术中,在多方协同推荐的应用场景下,通常以一系列实现基础运算的协议作为底层协议供高层协议调用来实现协同推荐。如果合并各方的用户项目评分矩阵后进行协同过滤推荐,将传输大量的数据产生通信开销。而且在实际应用中出于数据隐私的考虑,数据持有者也不会轻易地与其他参与方共享数据。

而在本发明的实施例中,通过各推荐服务器合作确定全局相似度阈值,基于安全的获取相似度的明文并集的方法,可以实现在用户评分数据分布在不同位置并不能进行共享时求解全局最近邻进而产生推荐结果。符合隐私保护的要求。

本发明实施例针对给定目标用户在各推荐服务器分别计算用户间相似度,推荐服务器之间无需共享评分数据,仅在加密的条件下合并相似度信息,得到全局相似度阈值后在各推荐服务器使用协同过滤推荐算法产生推荐。虽然最终发起推荐的推荐服务器能够获取目标用户和所有全局最近邻的相似度,但是除了其自己产生的最近邻居与目标用户的相似度外,无法判断其余相似度的产生站点和对应的最近邻。

同时,基于本发明实施例的推荐系统在一次协同推荐的过程中,各站点仅需对本站点子集进行一次加密,不仅减少了加密次数,还通过随机划分的方法减少了单次加密时的数据量且隐藏了输入集合的长度信息,进一步优化了推荐过程。

在实际使用推荐系统时,还经常需要使用搜索引擎来获取目标信息,搜索查询一方面使得用户能够主动获取自己感兴趣的内容,另一方面用户的搜索行为也为推荐系统提供进一步推荐的依据和参考。但是,当用户使用搜索引擎(例如大多数浏览器都搭配有搜索栏)进行搜索时,一般会在本机产生缓存历史记录的临时文件。一些组织会私自读取用户历史搜索信息进行相关推荐、广告甚至是售卖用户信息等其他非法行为,使得用户的隐私受到威胁。

本发明实施例的分层次隐私保护推荐系统支持安全查询过程,安全查询的基本原理如图4所示,数据持有者预先将数据表中的项目名称数据通过加密或是消息摘要的方式产生对应密文,并连同项目ID一起发送给代理。用户进行查询操作时首先向代理提交在客户端完成加密操作的项目名称密文。代理通过比较用户查询条件和项目名称完成查询并向用户进行反馈。用户根据代理的反馈,如果有符合查询条件的结果,则再次生成包含真实查询目标的多个查询条件提交给数据持有者,数据持有方完成查询后返回相应的项目数据。用户从中选取需要的项目数据。

具体的作业流程如下:

1)客户端/浏览器对用户提供的查询的项目名称明文进行加密,并将加密后的数据作为查询参数发送至代理服务器。

2)代理服务器查询数据库中的项目ID和经过加密的项目名称,如果查询到相应条目,将项目ID的值m和数据库的总项目数n返回给客户端/浏览器,如果没有对应条目,则返回无搜索结果。

3)客户端/浏览器根据总项目数n随机在1~n的范围内随机产生k-1个整数值,并将m与k-1个整数值发送至推荐服务器。

4)推荐服务器在其本地数据库中根据项目ID进行查询并返回k项项目数据。

5)客户端/浏览器从返回的k项项目数据中获取项目ID为m的项目信息显示给用户。

如图5所示,在推荐服务器的数据库中存储有完整的项目资源数据表,包括项目ID、项目名称、项目属性值等(例如电影ID、电影名称、上映时间、海报信息等)。推荐服务器预先将项目资源数据表中的项目名称数据(例如电影名称)进行SHA1加密,并连同项目ID(例如电影ID)一起发送至代理服务器,并存储在代理服务器的数据库中。

当客户端/浏览器的实现形式为B/S模式时,用户在浏览器的搜索页面中输入查询的项目名称明文,通过js代码对用户查询内容进行SHA1加密,例如对所查询电影名称进行加密,并将电影名称的哈希值发送给代理服务器。由于在代理服务器的数据库中已经存储有与推荐服务器的数据库中的项目评分信息对应的项目ID和经过加密的项目名称,因此代理服务器在本地数据表中进行查询,如果查询到相应条目,则返回项目ID值以及数据项总数N。浏览器通过js脚本将m与1~n范围内随机产生的k-1个整数值发送给推荐服务器。推荐服务器在数据库中根据ID进行查询并返回k项项目数据,用户通过ID进行筛选得到查询结果。

相比于现有技术中直接将加密后的关键词发送到推荐服务器进行查询或是由多个服务器协作完成查询的方式,本发明实施例的查询方法在不与推荐服务器进行共谋的情况下,以代理服务器作为第三方,代理服务器仅可以通过查询过程获取用户查询项目的ID,保证了查询条件的安全。用户随机产生包含目标项目ID在内的K项查询列表,以扰乱的方式混淆查询条件,使得推荐服务器以不大于1/K的概率推测用户查询条件,用户从查询结果中可以正确的获取目标项目信息,并且在一定程度上通过增加查询条目掩盖了目标项目。同时客户端/浏览器提供了明文模糊查询和安全查询功能,用户可以根据个人对隐私的敏感程度选择相应的搜索方式,既降低了计算复杂度和通信开销,又保护了查询隐私。

进一步地,本发明实施例的分层次推荐系统能够对小数据冷启动进行基于隐私保护的响应。

冷启动(cold strat)问题是采用协同过滤推荐算法的系统在出现新用户或新项目的情况下,由于缺少用户的行为数据或者项目的描述数据时,推荐系统将无法进行推荐。目前推荐系统冷启动新用户解决方案主要包括引导用户提供兴趣标签、从其他网络平台获取背景资料或是直接向用户推荐热点内容。无论是借助用户的背景资料、或者引导用户选择,让用户产生些行为并深入分析、识别分类,对用户的推荐进行预测,都涉及大量用户隐私信息。用户面临着个人信息和行为数据受到恶意的攻击和非法使用的风险。

本发明实施例主要涉及新用户的冷启动问题。推荐系统冷启动环节中的“小数据”,一方面是指能够系统此阶段能够采集到的新用户数据不多,另一方面用户处于隐私的考虑,可能不会透露过多的个人信息。

本发明实施例的小数据冷启动的基本原理如图6所示,用户详细的兴趣描述,浏览信息等均存储在本地客户端或浏览器的数据库中,即用户本地偏好数据,所有与用户私有信息相关的操作都在本地执行。代理服务器的数据库中存储的仅为概括性的用户描述,即用户代理偏好数据。用户根据用户代理偏好数据获取对应于用户类别的推荐,根据用户本地偏好数据对对应于用户类别的推荐进行筛选。由于能够在获取系统推荐后在本地基于偏好文件对推荐结果进行调整,既保护了用户的隐私,改善了用户的参与度,又在一定程度上提高了推荐的准确度。

具体的作业流程如下:

1)代理服务器根据用户代理偏好数据以及类别数据对该用户进行分类,并将用户类别发送至推荐服务器。

2)推荐服务器根据从代理服务器接收的用户类别获取相应的项目推荐列表和项目描述元数据并发送至代理服务器;

3)代理服务器将得到的项目推荐列表和项目描述元数据发送至客户端/浏览器,客户端/浏览器根据用户本地偏好数据与项目描述元数据的相似度,对推荐列表进行筛选,并将修正后的推荐结果推荐给用户。

如图7所示,基于本方案的推荐系统既可以采用C/S(客户端/服务器)方式,也可以采用B/S(浏览器/服务器)方式实现,可根据实际应用的需求进行具体技术的选择。

推荐系统通过客户端或浏览器采集个人标签信息和喜好信息,包括性别、年龄、职业,喜好项目的一些属性等,并建立该用户的本地偏好数据。根据用户的选择将简化的用户描述信息,如仅有用户的性别、年龄、职业发送到代理服务器。

将用户偏好文件存储在本地,以相同方式描述用户兴趣和项目信息形成推荐,可根据用户对隐私程度的接受差异,建立用户可控的兴趣描述模型。

上述所说类别数据为推荐服务器使用已存在的用户离线进行推荐算法建模得到的数据,代理服务器基于决策树算法根据用户基本信息以及类别数据对该用户进行分类,并将用户类别发送给推荐服务器。

推荐服务器离线对训练数据集中的用户信息进行聚类,并生成与每个类别对应的推荐列表,根据聚类结果及从代理服务器接收的用户类别获取相应的项目推荐列表和项目描述元数据。

代理服务器将项目推荐列表和项目描述元数据发送给客户端,客户端根据本地存储的描述用户兴趣的文件与项目描述元数据的相似度,例如通过浏览器端比较用户本地偏好数据和项目标签的匹配程度对推荐列表进行重新排序和筛选,将相似度高的TOP N作为给用户的修正后的个性化推荐。

在本实施例中,基于小数据的冷启动推荐使用用户代理兴趣文件和群体兴趣文件作为数据挖掘和推荐依据。推荐服务器产生的推荐列表在用户本地根据完整的用户兴趣描述文件进行调优,实现用户可控的隐私保护推荐。

进一步地,用户可以根据需要查看或修改用户本地偏好数据,客户端/浏览器将修改后的用户本地偏好数据发送至代理服务器更新用户代理偏好数据。另外,本地的客户端/浏览器还会根据用户的操作行为对用户本地偏好数据进行更新,并将更新后的用户本地偏好数据发送至代理服务器更新用户代理偏好数据。

本实施例的基于代理的冷启动推荐解决方案可以应用在视音频推荐系统、电商、也可以应用于基于文本的推荐,如广告精准投放等。在保护用户隐私的同时,可以为用户提供准确的推荐,并且可以根据用户的进一步的行为更新用户的喜好描述文件,从而提供动态的推荐内容,实现用户可控的个性化隐私保护推荐,提升了用户体验。

解决隐私保护策略用户参与度低可控性差的问题。本发明中的小数据冷启动模块和安全查询模块都提供给用户可调可控的功能,用户可以根据自身对隐私信息的敏感程度选择提交给推荐系统的数据。

现有的隐私保护方案通常仅针对特定的环节,比如在推荐算法模块加入隐私保护机制。由于隐私保护方法和具体算法耦合性较高,会存在如果后续更换推荐算法或是对原始算法进行优化后,隐私保护不再适用的问题。本发明实施例通过分层次界定推荐系统中的隐私信息,针对不同敏感程度的信息进行区别处理,用户的偏好信息和系统中大量的用户评分信息直观反映了用户对项目喜恶程度,涉及用户隐私以及商业数据隐私安全。所以重点考虑对用户的偏好信息和系统中存储的评分信息进行保护。

现有技术或系统大多仅针对数据发布或数据挖掘的单一过程进行处理,本发明实施例中将各模块的隐私保护策略相混合,基于推荐系统的组成模块研究相应的推荐系统隐私保护机制,平衡隐私保护强度和推荐效果。相较于匿名、加扰等隐私保护技术,本系统中采用的方法对于原始数据没有损伤,推荐准确度与未引入隐私保护机制时无异。

本发明实施例的系统设计均为处于算法和系统架构之间推荐系统隐私保护方案,对不同的推荐算法有着良好的宽容度。未来可根据推荐性能的具体要求对推荐算法做进一步优化,隐私保护机制仍然能够在系统发挥作用。

本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

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