掌桥专利:专业的专利平台
掌桥专利
首页

产品推荐方法、装置、电子设备及计算机可读存储介质

文献发布时间:2023-06-19 10:06:57


产品推荐方法、装置、电子设备及计算机可读存储介质

技术领域

本发明涉及大数据技术领域,尤其涉及一种产品推荐方法、装置、电子设备及计算机可读存储介质。

背景技术

随着大数据和电子商务的迅猛发展,推荐系统成为企业提高市场竞争力的重要工具,然而当新产品加入时,该产品在系统中不存在用户对其的历史评分数据,因此不能根据传统算法计算用户间的相似度,也就无法为用户进行推荐。

目前可行的办法是利用另一方的数据进行产品协同推荐,例如:平台A中产品F新加入,但是平台B中产品F已经售卖一段时间了,可以利用平台B中的数据向平台A中的用户进行产品推荐,但是该方法会泄露数据隐私,只适用于共享数据的两个平台的产品协同推荐,应用范围较窄,不利于推广。

发明内容

本发明提供一种产品推荐方法、装置、电子设备及计算机可读存储介质,其主要目的在于提高产品推荐的灵活性及便利性。

为实现上述目的,本发明提供的一种产品推荐方法,所述方法应用于第一客户端,包括:

获取第一产品集,接收第二客户端发送的第二产品集,根据所述第一产品集及所述第二产品集进行筛选,得到目标产品序列,其中,所述第一产品集及所述第二产品集都包含待推荐产品;

获取第一用户集,根据所述目标产品序列构建所述第一用户集中每个用户的第一产品评分序列;

接收服务端发送的公钥,利用所述公钥对每个所述第一产品序列进行加密操作,得到对应的第一加密标准产品序列;

将所有所述第一加密产品序列发送至所述服务端;

接收所述第二客户端发送的初始用户推荐序列,对所述初始用户推荐序列进行还原操作,得到推荐用户序列;

将所述待推荐产品推送至所述推荐用户序列中每个用户的终端设备。

可选地,所述利用所述公钥对每个所述第一产品序列进行加密操作,得到对应的第一加密标准产品序列,包括:

利用预构建的第一用户名映射表对所述第一产品评分序列进行用户名替换操作,得到第一标准产品序列;

利用所述公钥对所述第一标准产品序列进行加密,得到对应的所述第一加密标准产品序列。

为实现上述目的,本发明还提供一种产品推荐方法,所述方法应用于第二客户端,包括:

获取所述第二产品集,将所述第二产品集发送至所述第一客户端;

接收所述第一客户端发送的所述目标产品序列;

获取第二用户集,根据所述目标产品序列构建所述第二用户集中每个用户的第二产品评分序列;

接收服务端发送的公钥,利用所述公钥对每个所述第二产品序列进行加密操作,得到对应的第二加密标准产品序列;

将所有所述第二加密产品序列发送至所述服务端,接收所述服务端发送的用户相似度集;

根据所述用户相似度集及所述第二用户集进行推荐优先值计算及筛选,得到初始推荐用户序列,将所述初始用户推荐序列发送至所述第一客户端。

可选地,所述根据所述用户相似度集及所述第二用户集进行推荐优先值计算及筛选,得到初始推荐用户序列,包括:

获取所述第二用户集中产品评分包含待推荐产品的用户,得到推荐用户集;

利用预设的第二用户名映射表对所述用户相似度集进行用户名还原操作,得到目标相似度集;

根据所述目标相似度集及所述推荐用户集进行推荐优先值计算及筛选,得到初始推荐用户序列。

为实现上述目的,本发明还提供一种产品推荐方法,所述方法应用于服务端,包括:

利用非对称加密算法构建密钥对,将所述密钥对中的公钥分发给所述第一客户端及所述第二客户端;

接收所述第一客户端发送的所有所述第一加密产品序列及

所述第二客户端发送的的所有所述第二加密产品序列;

利用所述密钥对中的私钥对所有所述第一加密产品序列进行解密操作,得到对应的所述第一解密产品序列及

对接收的所有所述第二加密产品序列进行解密操作,得到对应的第二解密产品序列;

根据所有的所述第一解密产品序列及所有的所述第二解密产品序列进行相似度计算,得到所述用户相似度集,将所述用户相似度集发送至所述第二客户端。

为了解决上述问题,本发明还提供一种产品推荐装置,所述装置运行于第一客户端,包括:

产品筛选模块,用于获取第一产品集,接收第二客户端发送的第二产品集,根据所述第一产品集及所述第二产品集进行筛选,得到目标产品序列,其中,所述第一产品集及所述第二产品集都包含待推荐产品;

加密还原模块,用于获取第一用户集,根据所述目标产品序列构建所述第一用户集中每个用户的第一产品评分序列;接收服务端发送的公钥,利用所述公钥对每个所述第一产品序列进行加密操作,得到对应的第一加密标准产品序列,将所有所述第一加密产品序列发送至所述服务端;接收所述第二客户端发送的初始用户推荐序列,对所述初始用户推荐序列进行还原操作,得到推荐用户序列;

产品推送模块,用于将所述待推荐产品推送至所述推荐用户序列中每个用户的终端设备。

为了解决上述问题,本发明还提供一种产品推荐装置,所述装置运行于第二客户端,包括:

评分计算模块,用于获取所述第二产品集,将所述第二产品集发送至所述第一客户端;接收所述第一客户端发送的所述目标产品序列;获取第二用户集,根据所述目标产品序列构建所述第二用户集中每个用户的第二产品评分序列;接收服务端发送的公钥,利用所述公钥对每个所述第二产品序列进行加密操作,得到对应的第二加密标准产品序列;将所有所述第二加密产品序列发送至所述服务端,接收所述服务端发送的用户相似度集;

优先值计算筛选模块,用于根据所述用户相似度集及所述第二用户集进行推荐优先值计算及筛选,得到初始推荐用户序列,将所述初始用户推荐序列发送至所述第一客户端。

为了解决上述问题,本发明还提供一种产品推荐装置,所述装置运行于服务端,包括:

密钥分发模块,用于利用非对称加密算法构建密钥对,将所述密钥对中的公钥分发给所述第一客户端及所述第二客户端;

相似度计算模块,用于接收所述第一客户端发送的所有所述第一加密产品序列及所述第二客户端发送的的所有所述第二加密产品序列;利用所述密钥对中的私钥对所有所述第一加密产品序列进行解密操作,得到对应的所述第一解密产品序列及对接收的所有所述第二加密产品序列进行解密操作,得到对应的第二解密产品序列;根据所有的所述第一解密产品序列及所有的所述第二解密产品序列进行相似度计算,得到所述用户相似度集,将所述用户相似度集发送至所述第二客户端。

为了解决上述问题,本发明还提供一种电子设备,所述电子设备包括:

存储器,存储至少一个计算机程序;及

处理器,执行所述存储器中存储的计算机程序以实现上述所述的产品推荐方法。

为了解决上述问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个计算机程序,所述至少一个计算机程序被电子设备中的处理器执行以实现上述所述的产品推荐方法。

本发明实施例根据所述第一产品集及所述第二产品集进行筛选,得到目标产品序列;根据所述目标产品序列构建所述第一用户集中每个用户的第一产品评分序列,及根据所述目标产品序列构建所述第二用户集中每个用户的第二产品评分序列;根据所述第一产品评分序列及所述第二产品评分序列加密计算所述第一用户集中的每个用户和所述第二用户集中的每个用户的相似度值,得到用户相似度集;根据所述用户相似度集及所述第二用户集进行推荐优先值计算及筛选,得到推荐用户序列;将所述待推荐产品推送至所述推荐用户序列中每个用户的终端设备,本发明实施例加密计算双方用户的相似度,在不泄露双方数据的情况下,实现对新产品的协同推荐,提升了产品推荐的的灵活性及便利性。

附图说明

图1为本发明一实施例提供的产品推荐的系统架构图;

图2为本发明一实施例提供的产品推荐方法应用于第一客户端的流程示意图;

图3为本发明一实施例提供的产品推荐方法应用于第二客户端的流程示意图;

图4为本发明一实施例提供的产品推荐方法应用于服务端的流程示意图;

图5为本发明一实施例提供的产品推荐装置应用于第一客户端的模块示意图;

图6为本发明一实施例提供的产品推荐装置应用于第二客户端的模块示意图;

图7为本发明一实施例提供的产品推荐装置应用于服务端的模块示意图;

图8为本发明一实施例提供的实现产品推荐方法的电子设备的内部结构示意图;

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

具体实施方式

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

本发明实施例提供一种产品推荐方法。所述产品推荐方法的执行主体包括但不限于服务端、终端等能够被配置为执行本申请实施例提供的该方法的电子设备中的至少一种。换言之,所述产品推荐方法可以由安装在终端设备或服务端设备的软件或硬件来执行,所述软件可以是区块链平台。所述服务端包括但不限于:单台服务器、服务器集群、云端服务器或云端服务器集群等。

本发明提供一种产品推荐方法。参见图1所示,本发明实施例中,所述产品推荐方法可以通过一种产品推荐系统实现,所述产品推荐系统包括第一客户端1、第二客户端2以及服务端3。其中,所述第一客户端1为第一购物平台的产品监控程序,所述第二客户端2为第二平台的产品监控程序,本发明实施例根据所述第二客户端2中已销售的某产品的用户购买信息对所述第一客户端1中新上架的该产品进行推荐,如:所述第一客户端1中得知用户对新上架的产品A的喜好无法对第一客户端1中的用户进行推荐,但是第二客户端2中产品A已经销售过,根据第二客户端2中产品A的用户购买信息对第一客户端1中的产品A进行用户推荐。

详细地,所述第一客户端1获取第一产品集及所述第二客户端2获取第二产品集,所述第一客户端1根据所述第一产品集及所述第二产品集进行筛选,得到目标产品序列,其中,所述第一产品集及所述第二产品集都包含待推荐产品;所述第一客户端1获取第一用户集及所述第二客户端2获取第二用户集,所述第一客户端1根据所述目标产品序列构建所述第一用户集中每个用户的第一产品评分序列,及所述第二客户端2根据所述目标产品序列构建所述第二用户集中每个用户的第二产品评分序列;所述服务端根据所述第一产品评分序列及所述第二产品评分序列加密计算所述第一用户集中的每个用户和所述第二用户集中的每个用户的相似度值,得到用户相似度集;所述第二客户端2根据所述用户相似度集及所述第二用户集进行推荐优先值计算及筛选,得到初始推荐用户序列;所述第一客户端1对所述初始用户推荐序列进行还原操作,得到推荐用户序列;所述第一客户端1将所述待推荐产品推送至所述推荐用户序列中每个用户的终端设备。

参照图2所示的本发明一实施例提供的应用于第一客户端的产品推荐方法的流程示意图,在本发明实施例中,所述产品推荐方法包括:

S11、获取第一产品集,接收第二客户端发送的第二产品集,根据所述第一产品集及所述第二产品集进行筛选,得到目标产品序列,其中,所述第一产品集及所述第二产品集都包含待推荐产品;

本发明实施例中所述第一产品集及所述第二产品集为不同公司在售的产品集合,其中,所述产品包括虚拟产品和实体产品,例如:第一产品集为A公司在售的产品的集合,第二产品集为B公司在售的产品的集合。

进一步地,本发明实施例中,剔除所述第一产品集中的所述待推荐产品,得到第三产品集,其中,所述待推荐产品为所述第一产品集中新上架未出售的产品,所述待推荐产品为所述第二产品集中已经出售过的产品;筛选出所述第二产品集及所述第三产品集中产品相同的产品并随机排序,得到目标产品序列,例如:第三产品集中包含产品B、C、D,第二产品集中包含产品C、D、F,相同的产品为C、D,将C、D随机排序,得到目标产品序列为1号产品C、2号产品D。

S12、获取第一用户集,根据所述目标产品序列构建所述第一用户集中每个用户的第一产品评分序列;

本发明实施例中,所述第一用户集为所述第一产品集对应的公司的用户信息的集合,其中,所述用户信息包含用户名及用户购买产品的产品评分。

进一步地,本发明实施例中所述根据所述目标产品序列构建所述第一用户集中每个用户的第一产品评分序列,包括:

步骤A、根据所述目标产品序列获取所述第一用户集中每个用户对应的产品评分,得到对应的初始第一产品评分序列;

例如:目标产品序列为1号产品C、2号产品D,第一用户集中包含用户甲,用户甲的产品评分为产品C 4.5分、产品F评分3分,得到用户甲的初始第一产品评分序列为1号产品C4.5分、2号产品D评分缺失。

步骤B、对所述初始第一产品评分序列进行缺失评分填充,得到所述第一产品评分序列。

较佳地,本发明实施例中利用中位数填充方法对所述初始第一产品评分序列进行缺失评分填充,得到所述第一产品评分序列。例如:用户甲的初始第一产品评分序列为1号产品C4.5分、2号产品D评分缺失,第一用户集中产品D的评分中位数为3分,那么对用户甲的初始第一产品评分序列进行缺失评分填充,得到用户甲的第一产品评分序列为1号产品C4.5分、2号产品D3分。

S13、接收服务端发送的公钥,利用所述公钥对每个所述第一产品序列进行加密操作,得到对应的第一加密标准产品序列,将所有所述第一加密产品序列发送至所述服务端;

本发明实施例中,为了保护在第一客户端用户信息的隐私不被泄露,接收服务端发送的公钥,利用所述公钥对每个所述第一产品序列进行加密操作,得到对应的第一加密标准产品序列。

详细地,本发明实施例中,所述利用所述公钥对每个所述第一产品序列进行加密操作,得到对应的第一加密标准产品序列,包括:利用预构建的第一用户名映射表对所述第一产品评分序列进行用户名替换操作,得到第一标准产品序列;其中,所述第一用户名映射表为包含所述第一用户集中每个用户名对应的虚拟用户名映射的表,例如:所述第一产品评分序列为A公司的数据,A公司利用所述第一用户名映射表将第一产品评分序列对应的用户名替换为预设的虚拟用户名,得到第一标准产品序列。进一步地,为了进一步保证数据的安全性,利用所述公钥对所述第一标准产品序列进行加密,得到对应的所述第一加密标准产品序列,进一步地,为了利用所述第一加密标准产品序列进行后续的产品推荐,本发明实施例将所有所述第一加密产品序列发送至所述服务端。

S14、接收所述第二客户端发送的初始用户推荐序列,对所述初始用户推荐序列进行还原操作,得到推荐用户序列;

详细地,本发明实施例中,所述初始推荐用户序列中的用户的用户名为所述第一用户名映射表中的虚拟用户名,还需要利用所述第一用户名映射表对所述初始推荐用户序列进行用户名还原操作,将虚拟用户名替换为真实用户名,得到推荐用户序列。

例如:所述初始推荐用户序列包含虚拟用户名张三,所述第一用户名映射表中的虚拟用户名张三对应的真实用户名为李四,那么利用所述第二用户名映射表将所述初始推荐用户序列中的用户名张三替换为用户名李四,得到所述推荐用户序列。

本发明的另一实施例中,为了保护数据的隐私性,所述推荐用户序列可以存储在区块链节点中。

S15、将所述待推荐产品推送至所述推荐用户序列中每个用户的终端设备。

本发明实施例中将所述待推荐产品推送至所述推荐用户序列中每个用户的终端设备,所述终端设备包括但并不限于:手机、电脑、平板。

参阅图3所示,为本发明一实施例提供的应用于第二客户端的产品推荐方法的流程示意图。在本实施例中,所述产品推荐方法包括:

S21、获取所述第二产品集,将所述第二产品集发送至所述第一客户端;

本发明实施例中,为了所述第一客户端进行待推荐产品推荐,将所述第二产品集发送至所述第一客户端。

S22、接收所述第一客户端发送的所述目标产品序列;

为了后续进行产品推荐计算,本发明实施例接收所述第一客户端发送的所述目标产品序列。

S23、获取第二用户集,根据所述目标产品序列构建所述第二用户集中每个用户的第二产品评分序列;

本发明实施例中所述第二用户集为所述第二产品集对应的公司的用户信息的集合,进一步地所述根据所述目标产品序列构建所述第二用户集中每个用户的第二产品评分序列的方法与S12所述方法相同,在此不再赘述。

S24、接收服务端发送的公钥,利用所述公钥对每个所述第二产品序列进行加密操作,得到对应的第二加密标准产品序列;

本发明实施例中,为了保护在第二客户端的用户信息的隐私不被泄露,接收服务端发送的公钥,利用所述公钥对每个所述第二产品序列进行加密操作,得到对应的第二加密标准产品序列,包括:利用预构建的第二用户名映射表对所述第二产品评分序列进行用户名替换操作,得到第二标准产品序列,其中,所述第二用户名映射表为包含所述第二用户集中每个用户名对应的虚拟用户名映射的表,利用所述公钥对所述第二标准产品序列进行加密,得到对应的第二加密标准产品序列。

S25、将所有所述第二加密产品序列发送至所述服务端,接收所述服务端发送的用户相似度集;

为了便于服务器计算所述用户相似度集,本发明实施例将所有所述第二加密产品序列发送至所述服务端,接收所述服务端发送的用户相似度集。

S26、根据所述用户相似度集及所述第二用户集进行推荐优先值计算及筛选,得到初始推荐用户序列,将所述初始用户推荐序列发送至所述第一客户端。

本发明实施例中,只有所述第二用户集中购买过待推荐产品的用户才能帮助所述第一客户端进行待推荐产品的推荐,因此,获取所述第二用户集中产品评分包含待推荐产品的用户,得到推荐用户集;进一步地,为了便于后续筛选所述用户相似度集中所述推荐用户集对应的相似度更好地对所述第一用户集中的用户进行推荐产品推荐,如:推荐用户集中的用户A购买过待推荐产品D,用户A和第一用户集中的用户B的相似度高,那么用户B购买待推荐产品D的可能性也高,因此,需要寻找推荐用户集中用户对应的相似度,所以利用所述第二用户名映射表对所述用户相似度集进行用户名还原操作,得到目标相似度集;进一步地,两个用户相似度越高,两个用户对相同产品的兴趣也越相似,进一步地,利用一个用户对一个产品的产品评分判断另一个用户对该产品的感兴趣程度从而进行产品推荐,为了计算所述第一用户集中可以推荐待推荐产品的用户,根据所述目标相似度集及所述推荐用户集进行推荐优先值计算及筛选,得到初始推荐用户序列。包括:根据所述目标相似度集及所述推荐用户集利用预设优先值算法进行推荐优先值计算,得到推荐优先值集;对所述推荐优先值集进行排序,得到标准推荐优先值集;从所述标准推荐优先值集预设排名范围的推荐优先值集对应的用户,得到初始推荐用户序列。如:第一用户集对应的公司为A,第二用户集对应的公司为B,证明B根据所述推荐用户集中的用户y在目标相似度集中的相似度值以及用户y的待推荐产品的产品评分计算对应的用户x的推荐优先值,汇总所有推荐优先值,得到推荐优先值集,对所述推荐优先值集进行从大到小的排序得到标准推荐优先值集,最终将标准推荐优先值集中推荐优先值最高的前N个推荐优先值对应的用户名进行汇总得到初始推荐用户序列,所述优先值算法如下:

其中,n为所述推荐用户集中用户的数量,y为所述推荐用户集中的用户,j为待推荐产品,x为所述第一用户名映射表中的虚拟用户名x对应的用户,sim

进一步地,所述初始推荐用户序列的用户名还是所述第一客户端虚拟的,为了对虚拟的用户名进行还原,将所述初始用户推荐序列发送至所述第一客户端。

参阅图4所示,为本发明一实施例提供的应用于服务端的产品推荐方法的流程示意图。在本实施例中,所述产品推荐方法包括:

S31、利用非对称加密算法构建密钥对,将所述密钥对中的公钥分发给所述第一客户端及所述第二客户端;

本发明实施例为了所述第一客户端及所述第二客户端与所述服务端数据交互的安全性,利用非对称加密算法构建密钥对,将所述密钥对中的公钥分发给所述第一客户端及所述第二客户端。

S32、接收所述第一客户端发送的所有所述第一加密产品序列及

所述第二客户端发送的的所有所述第二加密产品序列;

S33、利用所述密钥对中的私钥对所有所述第一加密产品序列进行解密操作,得到对应的所述第一解密产品序列及

对接收的所有所述第二加密产品序列进行解密操作,得到对应的第二解密产品序列;

S34、根据所有的所述第一解密产品序列及所有的所述第二解密产品序列进行相似度计算,得到所述用户相似度集,将所述用户相似度集发送至所述第二客户端。

例如:所述第一标准产品评分序列为A公司的数据,所述第二标准产品评分序列为B公司的数据,所述服务端为A、B公司都信任的第三方服务器,所述服务端构建密钥对,将密钥对中的公钥分发给A公司的第一客户端及B公司的第二客户端,保留密钥对中的私钥,A公司利用得到的公钥对所述第一标准产品序列进行加密,得到对应的第一加密标准产品序列,B公司利用得到的公钥对所述第二标准产品序列进行加密,得到对应的第二加密标准产品序列;利用私钥将服务端接收的A公司加密后的所有所述第一加密产品序列及B公司加密后的所有所述第二加密产品序列进行解密操作,得到对应的第一解密产品序列及对应的第二解密产品序列;所述服务端根据所有的所述第一解密产品序列及所有的所述第二解密产品序列进行相似度计算,得到所述用户相似度集。

详细地,本发明实施例中根据两个用户对同一产品的产品评分的相似程度从而计算两个用户的相似度,利用下述公式进行相似度计算:

其中,X

如图5所示,是本发明应用于第一客户端的产品推荐装置的功能模块图。

本发明所述产品推荐装置100可以安装于电子设备中。根据实现的功能,所述产品推荐装置可以包括产品筛选模块101、所述加密还原模块102、所述产品推送模块103,本发所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。

在本实施例中,关于各模块/单元的功能如下:

所述产品筛选模块101用于获取第一产品集,接收第二客户端发送的第二产品集,根据所述第一产品集及所述第二产品集进行筛选,得到目标产品序列,其中,所述第一产品集及所述第二产品集都包含待推荐产品。

本发明实施例中所述第一产品集及所述第二产品集为不同公司在售的产品集合,其中,所述产品包括虚拟产品和实体产品,例如:第一产品集为A公司在售的产品的集合,第二产品集为B公司在售的产品的集合。

进一步地,本发明实施例中,所述产品筛选模块101剔除所述第一产品集中的所述待推荐产品,得到第三产品集,其中,所述待推荐产品为所述第一产品集中新上架未出售的产品,所述待推荐产品为所述第二产品集中已经出售过的产品;所述产品筛选模块101筛选出所述第二产品集及所述第三产品集中产品相同的产品并随机排序,得到目标产品序列,例如:第三产品集中包含产品B、C、D,第二产品集中包含产品C、D、F,相同的产品为C、D,将C、D随机排序,得到目标产品序列为1号产品C、2号产品D。

所述加密还原模块102用于获取第一用户集,根据所述目标产品序列构建所述第一用户集中每个用户的第一产品评分序列;接收服务端发送的公钥,利用所述公钥对每个所述第一产品序列进行加密操作,得到对应的第一加密标准产品序列,将所有所述第一加密产品序列发送至所述服务端;接收所述第二客户端发送的初始用户推荐序列,对所述初始用户推荐序列进行还原操作,得到推荐用户序列。

本发明实施例中,所述第一用户集为所述第一产品集对应的公司的用户信息的集合,其中,所述用户信息包含用户名及用户购买产品的产品评分。

进一步地,本发明实施例中所述加密还原模块102利用下述手段构建所述第一用户集中每个用户的第一产品评分序列,包括:

根据所述目标产品序列获取所述第一用户集中每个用户对应的产品评分,得到对应的初始第一产品评分序列;

例如:目标产品序列为1号产品C、2号产品D,第一用户集中包含用户甲,用户甲的产品评分为产品C 4.5分、产品F评分3分,得到用户甲的初始第一产品评分序列为1号产品C4.5分、2号产品D评分缺失。

对所述初始第一产品评分序列进行缺失评分填充,得到所述第一产品评分序列。

较佳地,本发明实施例中利用中位数填充方法对所述初始第一产品评分序列进行缺失评分填充,得到所述第一产品评分序列。例如:用户甲的初始第一产品评分序列为1号产品C4.5分、2号产品D评分缺失,第一用户集中产品D的评分中位数为3分,那么对用户甲的初始第一产品评分序列进行缺失评分填充,得到用户甲的第一产品评分序列为1号产品C4.5分、2号产品D3分。

本发明实施例中,为了保护在第一客户端用户信息的隐私不被泄露,接收服务端发送的公钥,所述加密还原模块102利用所述公钥对每个所述第一产品序列进行加密操作,得到对应的第一加密标准产品序列。

详细地,本发明实施例中,所述加密还原模块102利用下述手段对每个所述第一产品序列进行加密操作,得到对应的第一加密标准产品序列,包括:利用预构建的第一用户名映射表对所述第一产品评分序列进行用户名替换操作,得到第一标准产品序列;其中,所述第一用户名映射表为包含所述第一用户集中每个用户名对应的虚拟用户名映射的表,例如:所述第一产品评分序列为A公司的数据,A公司利用所述第一用户名映射表将第一产品评分序列对应的用户名替换为预设的虚拟用户名,得到第一标准产品序列。进一步地,为了进一步保证数据的安全性,利用所述公钥对所述第一标准产品序列进行加密,得到对应的所述第一加密标准产品序列,进一步地,为了利用所述第一加密标准产品序列进行后续的产品推荐,本发明实施例将所有所述第一加密产品序列发送至所述服务端。

详细地,本发明实施例中,所述初始推荐用户序列中的用户的用户名为所述第一用户名映射表中的虚拟用户名,所述加密还原模块102还需要利用所述第一用户名映射表对所述初始推荐用户序列进行用户名还原操作,将虚拟用户名替换为真实用户名,得到推荐用户序列。

例如:所述初始推荐用户序列包含虚拟用户名张三,所述第一用户名映射表中的虚拟用户名张三对应的真实用户名为李四,那么利用所述第二用户名映射表将所述初始推荐用户序列中的用户名张三替换为用户名李四,得到所述推荐用户序列。

本发明的另一实施例中,为了保护数据的隐私性,所述推荐用户序列可以存储在区块链节点中。

所述产品推送模块103用于将所述待推荐产品推送至所述推荐用户序列中每个用户的终端设备。

本发明实施例中将所述待推荐产品推送至所述推荐用户序列中每个用户的终端设备,所述终端设备包括但并不限于:手机、电脑、平板。

如图6所示,是本发明应用于第二客户端的产品推荐装置的功能模块图。

本发明所述产品推荐装置200可以安装于电子设备中。根据实现的功能,所述产品推荐装置可以包括评分计算模块201、优先值计算筛选模块202,本发所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。

在本实施例中,关于各模块/单元的功能如下:

所述评分计算模块201用于获取所述第二产品集,将所述第二产品集发送至所述第一客户端;接收所述第一客户端发送的所述目标产品序列;获取第二用户集,根据所述目标产品序列构建所述第二用户集中每个用户的第二产品评分序列;接收服务端发送的公钥,利用所述公钥对每个所述第二产品序列进行加密操作,得到对应的第二加密标准产品序列;将所有所述第二加密产品序列发送至所述服务端,接收所述服务端发送的用户相似度集;

本发明实施例中,为了所述第一客户端进行待推荐产品推荐,所述评分计算模块201将所述第二产品集发送至所述第一客户端。

为了后续进行产品推荐计算,本发明实施例所述评分计算模块201接收所述第一客户端发送的所述目标产品序列。

本发明实施例中所述第二用户集为所述第二产品集对应的公司的用户信息的集合,进一步地所述评分计算模块201根据所述目标产品序列构建所述第二用户集中每个用户的第二产品评分序列。

本发明实施例中,为了保护在第二客户端的用户信息的隐私不被泄露,接收服务端发送的公钥,所述评分计算模块201利用下述手段对每个所述第二产品序列进行加密操作,得到对应的第二加密标准产品序列,包括:利用预构建的第二用户名映射表对所述第二产品评分序列进行用户名替换操作,得到第二标准产品序列,其中,所述第二用户名映射表为包含所述第二用户集中每个用户名对应的虚拟用户名映射的表,利用所述公钥对所述第二标准产品序列进行加密,得到对应的第二加密标准产品序列。

为了便于服务器计算所述用户相似度集,本发明实施例所述评分计算模块201将所有所述第二加密产品序列发送至所述服务端,接收所述服务端发送的用户相似度集。

所述优先值计算筛选模块202用于根据所述用户相似度集及所述第二用户集进行推荐优先值计算及筛选,得到初始推荐用户序列,将所述初始用户推荐序列发送至所述第一客户端。

本发明实施例中,只有所述第二用户集中购买过待推荐产品的用户才能帮助所述第一客户端进行待推荐产品的推荐,因此,所述优先值计算筛选模块202获取所述第二用户集中产品评分包含待推荐产品的用户,得到推荐用户集;进一步地,为了便于后续筛选所述用户相似度集中所述推荐用户集对应的相似度更好地对所述第一用户集中的用户进行推荐产品推荐,如:推荐用户集中的用户A购买过待推荐产品D,用户A和第一用户集中的用户B的相似度高,那么用户B购买待推荐产品D的可能性也高,因此,需要寻找推荐用户集中用户对应的相似度,所以所述优先值计算筛选模块202利用所述第二用户名映射表对所述用户相似度集进行用户名还原操作,得到目标相似度集;进一步地,两个用户相似度越高,两个用户对相同产品的兴趣也越相似,进一步地,利用一个用户对一个产品的产品评分判断另一个用户对该产品的感兴趣程度从而进行产品推荐,为了计算所述第一用户集中可以推荐待推荐产品的用户,所述优先值计算筛选模块202根据所述目标相似度集及所述推荐用户集进行推荐优先值计算及筛选,得到初始推荐用户序列,包括:根据所述目标相似度集及所述推荐用户集利用预设优先值算法进行推荐优先值计算,得到推荐优先值集;对所述推荐优先值集进行排序,得到标准推荐优先值集;从所述标准推荐优先值集预设排名范围的推荐优先值集对应的用户,得到初始推荐用户序列。如:第一用户集对应的公司为A,第二用户集对应的公司为B,证明B根据所述推荐用户集中的用户y在目标相似度集中的相似度值以及用户y的待推荐产品的产品评分计算对应的用户x的推荐优先值,汇总所有推荐优先值,得到推荐优先值集,对所述推荐优先值集进行从大到小的排序得到标准推荐优先值集,最终将标准推荐优先值集中推荐优先值最高的前N个推荐优先值对应的用户名进行汇总得到初始推荐用户序列,所述优先值算法如下:

其中,n为所述推荐用户集中用户的数量,y为所述推荐用户集中的用户,j为待推荐产品,x为所述第一用户名映射表中的虚拟用户名x对应的用户,sim

进一步地,所述初始推荐用户序列的用户名还是所述第一客户端虚拟的,为了对虚拟的用户名进行还原,所述优先值计算筛选模块202将所述初始用户推荐序列发送至所述第一客户端。

如图7所示,是本发明应用于服务端的产品推荐装置的功能模块图。

本发明所述产品推荐装置300可以安装于电子设备中。根据实现的功能,所述产品推荐装置可以包括密钥分发模块301、相似度计算模块302,本发所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。

在本实施例中,关于各模块/单元的功能如下:

所述密钥分发模块301用于利用非对称加密算法构建密钥对,将所述密钥对中的公钥分发给所述第一客户端及所述第二客户端;

本发明实施例为了所述第一客户端及所述第二客户端与所述服务端数据交互的安全性,所述密钥分发模块301利用非对称加密算法构建密钥对,将所述密钥对中的公钥分发给所述第一客户端及所述第二客户端。

所述相似度计算模块302用于接收所述第一客户端发送的所有所述第一加密产品序列及所述第二客户端发送的的所有所述第二加密产品序列;利用所述密钥对中的私钥对所有所述第一加密产品序列进行解密操作,得到对应的所述第一解密产品序列及对接收的所有所述第二加密产品序列进行解密操作,得到对应的第二解密产品序列;根据所有的所述第一解密产品序列及所有的所述第二解密产品序列进行相似度计算,得到所述用户相似度集,将所述用户相似度集发送至所述第二客户端。

例如:所述第一标准产品评分序列为A公司的数据,所述第二标准产品评分序列为B公司的数据,所述服务端为A、B公司都信任的第三方服务器,所述服务端构建密钥对,将密钥对中的公钥分发给A公司的第一客户端及B公司的第二客户端,保留密钥对中的私钥,A公司利用得到的公钥对所述第一标准产品序列进行加密,得到对应的第一加密标准产品序列,B公司利用得到的公钥对所述第二标准产品序列进行加密,得到对应的第二加密标准产品序列;利用私钥将服务端接收的A公司加密后的所有所述第一加密产品序列及B公司加密后的所有所述第二加密产品序列进行解密操作,得到对应的第一解密产品序列及对应的第二解密产品序列;所述服务端根据所有的所述第一解密产品序列及所有的所述第二解密产品序列进行相似度计算,得到所述用户相似度集。

详细地,本发明实施例中所述相似度计算模块302根据两个用户对同一产品的产品评分的相似程度从而计算两个用户的相似度,利用下述公式进行相似度计算:

其中,X

如图8所示,是本发明实现产品推荐方法的电子设备的结构示意图。

所述电子设备10可以包括处理器11、存储器12和总线,还可以包括存储在所述存储器12中并可在所述处理器11上运行的计算机程序,如产品推荐程序13。

其中,所述存储器12至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:SD或DX存储器等)、磁性存储器、磁盘、光盘等。所述存储器12在一些实施例中可以是电子设备10的内部存储单元,例如该电子设备10的移动硬盘。所述存储器12在另一些实施例中也可以是电子设备10的外部存储设备,例如电子设备10上配备的插接式移动硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(Secure Digital,SD)卡、闪存卡(Flash Card)等。进一步地,所述存储器12还可以既包括电子设备10的内部存储单元也包括外部存储设备。所述存储器12不仅可以用于存储安装于电子设备10的应用软件及各类数据,例如产品推荐程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。

所述处理器11在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器11是所述电子设备的控制核心(Control Unit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器12内的程序或者模块(例如产品推荐程序等),以及调用存储在所述存储器12内的数据,以执行电子设备10的各种功能和处理数据。

所述总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。所述总线被设置为实现所述存储器12以及至少一个处理器11等之间的连接通信。

图8仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图8示出的结构并不构成对所述电子设备10的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。

例如,尽管未示出,所述电子设备10还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器11逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备10还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。

进一步地,所述电子设备10还可以包括网络接口,可选地,所述网络接口可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该电子设备10与其他电子设备之间建立通信连接。

可选地,该电子设备10还可以包括用户接口,用户接口可以是显示器(Display)、输入单元(比如键盘(Keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备10中处理的信息以及用于显示可视化的用户界面。

应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。

所述电子设备10中的所述存储器12存储的产品推荐程序13是多个计算机程序的组合,在所述处理器11中运行时,可以实现一种产品推荐方法。

可选地,当所述电子设备10为第一客户端时,所述产品推荐方法包括:

获取第一产品集,接收第二客户端发送的第二产品集,根据所述第一产品集及所述第二产品集进行筛选,得到目标产品序列,其中,所述第一产品集及所述第二产品集都包含待推荐产品;

获取第一用户集,根据所述目标产品序列构建所述第一用户集中每个用户的第一产品评分序列;

接收服务端发送的公钥,利用所述公钥对每个所述第一产品序列进行加密操作,得到对应的第一加密标准产品序列,将所有所述第一加密产品序列发送至所述服务端;

接收所述第二客户端发送的初始用户推荐序列,对所述初始用户推荐序列进行还原操作,得到推荐用户序列;

将所述待推荐产品推送至所述推荐用户序列中每个用户的终端设备。

可选地,当所述电子设备10为第二客户端时,所述产品推荐方法包括:

获取所述第二产品集,将所述第二产品集发送至所述第一客户端;

接收所述第一客户端发送的所述目标产品序列;

获取第二用户集,根据所述目标产品序列构建所述第二用户集中每个用户的第二产品评分序列;

接收服务端发送的公钥,利用所述公钥对每个所述第二产品序列进行加密操作,得到对应的第二加密标准产品序列;

将所有所述第二加密产品序列发送至所述服务端,接收所述服务端发送的用户相似度集;

根据所述用户相似度集及所述第二用户集进行推荐优先值计算及筛选,得到初始推荐用户序列,将所述初始用户推荐序列发送至所述第一客户端。

可选地,当所述电子设备10为服务端时,所述产品推荐方法包括:

利用非对称加密算法构建密钥对,将所述密钥对中的公钥分发给所述第一客户端及所述第二客户端;

接收所述第一客户端发送的所有所述第一加密产品序列及

所述第二客户端发送的的所有所述第二加密产品序列;

利用所述密钥对中的私钥对所有所述第一加密产品序列进行解密操作,得到对应的所述第一解密产品序列及

对接收的所有所述第二加密产品序列进行解密操作,得到对应的第二解密产品序列;

根据所有的所述第一解密产品序列及所有的所述第二解密产品序列进行相似度计算,得到所述用户相似度集,将所述用户相似度集发送至所述第二客户端。

具体地,所述处理器11对上述计算机程序的具体实现方法可参考图5、图6及图7对应实施例中相关步骤的描述,在此不赘述。

进一步地,所述电子设备10集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。所述计算机可读介质可以是非易失性的,也可以是易失性的。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)。

进一步地,所述计算机可用存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。

在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。

因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。

本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。

此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。

最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

相关技术
  • 产品推荐方法、装置、电子设备及计算机可读存储介质
  • 产品推荐方法、装置和电子设备及计算机可读存储介质
技术分类

06120112421878