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

一种基于协同过滤算法的产品推荐方法、装置及电子设备

文献发布时间:2024-04-18 19:58:21


一种基于协同过滤算法的产品推荐方法、装置及电子设备

技术领域

本发明涉及金融科技技术领域,尤其涉及一种基于协同过滤算法的产品推荐方法、装置及电子设备。

背景技术

随着银行业快速发展,行业间竞争日趋白热化,为了抢占优质资源,避免客户流失。需要及时进行沉默客户进行促活操作。现有的促活操作一般是向用户推荐感兴趣的产品。

现有技术中的推荐算法研究中的问题也是多种多样的,关于识别同类型用户的算法,主要有以下几种:

一聚类算法:如K-Means聚类算法、层次聚类算法等,通过将用户按照相似性划分成不同的簇,然后识别出同类型的用户簇。该方法需要提前设置簇的个数,且结果会受到初始随机聚类中心的影响,且可能会存在属于多个簇的用户群体。

二关联规则算法:如Apriori算法,通过找出一些经常一起出现的商品,来识别同类型的客户。该方法缺点是需要先知道客户购买的商品清单,而且只能应用于商品型数据的识别,无法适用于其他类型数据。

三决策树算法:如C4.5算法、CART算法等,通过构建决策树,将顾客按照不同属性划分成不同的叶子节点,然后识别出同类型的顾客。该方法容易过拟合,需要对决策树的深度、剪枝等进行调整。

因此现有的推荐算法中需要较多的先验知识,算法较复杂,容易出现过拟合现象,向客户推荐效果较差,使得银行促活率较低。

因此,现有技术还有待于改进和发展。

发明内容

鉴于上述现有技术的不足,本发明提供了一种基于协同过滤算法的产品推荐方法、装置及电子设备,旨在解决现有技术中的推荐算法中需要较多的先验知识,算法较复杂,容易出现过拟合现象,向客户推荐效果较差,使得银行促活率较低的问题。

本发明的技术方案如下:

本发明第一实施例提供了一种基于协同过滤算法的产品推荐方法,所述方法包括:

获取在预定滚动时间内的持有产品信息,并获取满足预定条件的目标客户;

基于所述持有产品信息,对预定滚动时间内的所有持有产品间的相似度进行计算,得到目标相似度集合;

基于所述目标相似度集合,对所述目标客户未购买过的产品进行兴趣度计算,得到目标兴趣度集合;

获取目标兴趣度集合中满足预定条件的产品,生成对应的产品推荐信息,将所述产品推荐信息推送给目标客户。

进一步地,所述获取在预定滚动时间内的持有产品信息,并获取满足预定条件的目标客户,包括:

基于客户授权指令,获取银行所有客户在预定滚动时间内的持有产品信息;

获取满足预定条件的目标客户,并对所述目标客户进行标记。

进一步地,所述基于所述持有产品信息,对预定滚动时间内的所有持有产品间的相似度进行计算,得到目标相似度集合,包括:

基于所述持有产品信息,对预定滚动时间内的所有持有产品间的相似度分别进行计算,得到目标相似度矩阵。

进一步地,所述基于所述目标相似度集合,对所述目标客户未购买过的产品进行兴趣度计算,得到目标兴趣度集合,包括:

获取所有持有产品中所述目标客户未购买的产品,记为目标产品;

基于目标相似度矩阵对所述目标产品进行兴趣度计算,得到目标产品对应的目标兴趣度集合。

进一步地,获取目标兴趣度集合中满足预定条件的产品,生成对应的产品推荐信息,将所述产品推荐信息推送至目标客户,包括:

获取目标兴趣度集合中产品排序在前K名的产品,其中K为大于等于3的正整数;

基于产品排序在前K名的产品,生成对应的产品推荐信息;

将所述产品推荐信息推送至目标客户的用户界面。

进一步地,基于所述持有产品信息,对预定滚动时间内的所有持有产品间的相似度分别进行计算,得到目标相似度矩阵W

其中μ是指第一产品,v是指第二产品,|N(μ)|表示喜欢μ的客户数量,|N(v)|表示喜欢v的客户数量。

进一步地,兴趣度记为p(μ,j),则所述基于所述目标相似度集合,对所述目标客户未购买过的产品进行兴趣度计算,得到目标兴趣度集合,包括:

p(μ,j)=∑

其中N(μ)是客户喜欢的物品集合,S(j,K)是和物品j最相似的K个物品的集合,W

本发明的另一实施例提供了一种基于协同过滤算法的产品推荐装置,装置包括:

产品信息获取模块,用于获取在预定滚动时间内的持有产品信息,并获取满足预定条件的目标客户;

相似度计算模块,用于基于所述持有产品信息,对预定滚动时间内的所有持有产品间的相似度进行计算,得到目标相似度集合;

兴趣度计算模块,用于基于所述目标相似度集合,对所述目标客户未购买过的产品进行兴趣度计算,得到目标兴趣度集合;

推荐信息生成模块,用于获取目标兴趣度集合中满足预定条件的产品,生成对应的产品推荐信息,将所述产品推荐信息推送给目标客户。

本发明的另一实施例提供了一种电子设备,所述电子设备包括至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的基于协同过滤算法的产品推荐方法。

本发明的另一实施例还提供了一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行上述的基于协同过滤算法的产品推荐方法。

有益效果:本发明实施例的基于协同过滤算法的产品推荐方法,能够通过分析用户历史行为、兴趣等信息,找出具有相似行为模式的一组用户,并基于此预测用户可能感兴趣的商品或服务,实现基于用户行为进行产品推荐,学习能够更好地适应变化;不需要预先知道客户数据的类型和特性,适用面广;处理大规模、高维度数据上效果较好。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1为本发明一种基于协同过滤算法的产品推荐方法较佳实施例的流程图;

图2a为本发明一种基于协同过滤算法的产品推荐方法较佳实施例的基于用户的协同过滤模型示意图;

图2b为本发明一种基于协同过滤算法的产品推荐方法较佳实施例的基于物品的协同过滤模型示意图;

图3为本发明一种基于协同过滤算法的产品推荐装置的较佳实施例的功能模块示意图;

图4为本发明一种电子设备的较佳实施例的硬件结构示意图。

具体实施方式

为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

以下结合附图对本发明实施例进行介绍。

针对上述问题,本发明实施例提供了一种基于协同过滤算法的产品推荐方法,请参阅图1,图1为本发明一种基于协同过滤算法的产品推荐方法较佳实施例的流程图。如图1所示,其包括:

步骤S100、获取在预定滚动时间内的持有产品信息,并获取满足预定条件的目标客户;

步骤S200、基于所述持有产品信息,对预定滚动时间内的所有持有产品间的相似度进行计算,得到目标相似度集合;

步骤S300、基于所述目标相似度集合,对所述目标客户未购买过的产品进行兴趣度计算,得到目标兴趣度集合;

步骤S400、获取目标兴趣度集合中满足预定条件的产品,生成对应的产品推荐信息,将所述产品推荐信息推送给目标客户。

具体实施时,本发明实施例应用于银行沉默客户的促活场景中。本发明实施例的协同过滤算法包括协同和过滤两个操作。协同就是利用群体的行为来做决策(推荐),过滤就是从可行的推荐方案(标的物)中将用户喜欢的方案(标的物)过滤出来。简言之核心思想是:通过群体的行为来找到某种相似性(用户之间的相似性或者标的物之间的相似性),通过该相似性来为用户做决策和推荐。协同过滤算法主要分为两种:

如图2a所示,基于用户的协同过滤(UserCF):先找出与目标用户相似的其他用户,再从那些用户喜欢的项目中找出目标用户没有看过的项目进行推荐。

如图2b所示,基于物品的协同过滤(ItemCF):先找出目标用户历史观看列表里与之相似的其他项目,再对这些相似项目进行排序并生成最后的推荐列表。基于用户的协同过滤算法(UserCF)存在两个重大问题:数据稀疏性。不同用户之间买的物品重叠性较低,导致算法无法找到一个用户的邻居,即偏好相似的用户。算法扩展性。最近邻居算法的计算量随着用户和物品数量的增加而增加,不适合数据量大的情况使用。

基于物品的协同过滤(ItemCF)的是预先根据所有用户的历史偏好数据计算物品之间的相似性,然后把与用户喜欢的物品相类似的物品推荐给用户。物品直接的相似性相对比较固定,可以同时解决上面两个问题。本发明实施例主要使用ItemCF算法进行物品推荐。

本发明实施例先是进行数据集准备:获取全行所有客户,提取客户在预定滚动周期持有产品信息,并对纯沉默客户作为目标客户,例如沉默客户可定义这银行所有分行中为普通无贷的客户或是无账户变动的客户。预定滚动周期可设置为12个月或6个月等等。

物品相似度计算:计算银行客户在预定滚动周期持有产品相似度矩阵W

纯沉默客户对各物品的兴趣程度计算:计算用户对没有购买过的产品进行兴趣度计算,获取满足预定条件的产品,生成对应的产品推荐信息,将产品推荐信息推送给目标客户。

本发明实施例可以通过协同过滤算法对同类型的客户进行相似产品推荐,以实现沉默客户促活。

在一个实施例中,获取在预定滚动时间内的持有产品信息,并获取满足预定条件的目标客户,包括:

基于客户授权指令,获取银行所有客户在预定滚动时间内的持有产品信息;

获取满足预定条件的目标客户,并对所述目标客户进行标记。

具体实施时,预先获取客户的授权后,可获取银行所有客户在预定滚动时间如滚动12个月内的持有产品信息,持有产品信息包括但不限于持有产品名称、持有产品数量等信息。获取满足预设的沉默客户的条件的目标客户,并标记目标客户,方便进一步对目标客户的兴趣度进行计算。

在一个实施例中,基于所述持有产品信息,对预定滚动时间内的所有持有产品间的相似度进行计算,得到目标相似度集合,包括:

基于所述持有产品信息,对预定滚动时间内的所有持有产品间的相似度分别进行计算,得到目标相似度矩阵。

具体实施时,在获取了现有的客户持有的产品信息后,对预定滚动时间如12月内各个产品间的相似度进行云计算,基于各个相似度进行集合得到目标相似度矩阵。

在一个实施例中,基于所述目标相似度集合,对所述目标客户未购买过的产品进行兴趣度计算,得到目标兴趣度集合,包括:

获取所有持有产品中所述目标客户未购买的产品,记为目标产品;

基于目标相似度矩阵对所述目标产品进行兴趣度计算,得到目标产品对应的目标兴趣度集合。

具体实施时,本发明实施例主要用于沉默客户进行促活。因此获取沉默客户尚未持有的产品,即未购买的产品记为目标产品。通过目标相似度矩阵,对目标产品计算兴趣度,从而获取所有未购买产品组成的目标兴趣度集合。

在一个实施例中,获取目标兴趣度集合中满足预定条件的产品,生成对应的产品推荐信息,将所述产品推荐信息推送至目标客户,包括:

获取目标兴趣度集合中产品排序在前K名的产品,其中K为大于等于3的正整数;

基于产品排序在前K名的产品,生成对应的产品推荐信息;

将所述产品推荐信息推送至目标客户的用户界面。

具体实施时,对于用户喜欢的物品列表中的每一个物品i,都根据物品相似度矩阵找到与其最相似的K个物品,令为K

在一个实施例中,基于所述持有产品信息,对预定滚动时间内的所有持有产品间的相似度分别进行计算,得到目标相似度矩阵W

其中μ是指第一产品,v是指第二产品,|N(μ)|表示喜欢μ的客户数量,|N(v)|表示喜欢v的客户数量。

具体实施时,ItemCF算法并不是直接根据物品本身的属性来计算相似度,而是通过分析用户的行为来计算物品之间的相似度。

Item-based算法计算物品之间的相似度,公式如下:

分母|N(μ)|表示喜欢μ的用户数量,分子‖N(μ)∩N(v)‖是同时喜欢μ和v的用户数量。因此上式可以理解为,喜欢μ的用户有多少喜欢v,如果喜欢μ的用户都喜欢v,即W

但是如果物品v很热门,很多人都喜欢,那么上式中分子与分母就会很接近,此时W

增加热门物品的惩罚值,减轻热门物品会和很多其他物品相似的可能性。

以上公式,表示每个用户的兴趣列表对物品的相似度产生贡献相同,但实际活跃用户的兴趣列表会使物品相似度矩阵维度过大,其兴趣列表将不纳入到相似度计算,即活跃用户对物品相似度的贡献应该小于不活跃的用户,对物品相似度公式做以下修正:

相似度矩阵归一化:

在一些其他的实施例中,物品的相似度如下:

其中x

修正后的余弦相似度计算公式:

式中U是历史上对物品x

在一个实施例中,兴趣度记为p(μ,j),则所述基于所述目标相似度集合,对所述目标客户未购买过的产品进行兴趣度计算,得到目标兴趣度集合,包括:

p(μ,j)=∑

其中N(μ)是客户喜欢的物品集合,S(j,K)是和物品j最相似的K个物品的集合,W

具体实施时,公式8中建立了物品的相似矩阵后,根据相似度和用户的历史行为为用户生成推荐列表,计算用户μ对产品j的感兴趣程度。

公式8中N(μ)是用户喜欢的物品集合,S(j,K)是和物品j最相似的K个物品集合,W

对于用户喜欢的物品列表中的每一个物品i,都根据物品相似度矩阵找到与其最相似的K个物品,令为K

与现有技术相比,本发明实施例的基于协同过滤算法的产品推荐方法,通过分析用户历史行为、兴趣等信息,找出具有相似行为模式的一组用户,并基于此预测用户可能感兴趣的商品或服务。与以往算法不同的是,协同过滤算法是一种基于用户行为预测的算法。

如果大多数用户喜欢同一件商品时,那么这些用户就具有相似性,即喜欢类似物品的用户可能有相同或者相似的口味和偏好(基于用户的协同过滤);同一个用户喜欢不同的商品具有相似性(基于物品的协同过滤)。

基于用户行为,学习能够更好地适应变化。不需要预先知道客户数据的类型和特性,适用面广。基于一些经验数据进行学习;处理大规模、高维度数据上有良好的表现。

需要说明的是,上述各步骤之间并不必然存在一定的先后顺序,本领域普通技术人员,根据本发明实施例的描述可以理解,不同实施例中,上述各步骤可以有不同的执行顺序,亦即,可以并行执行,亦可以交换执行等等。

本发明另一实施例提供一种基于协同过滤算法的产品推荐装置,如图3所示,装置1包括:

产品信息获取模块11,用于获取在预定滚动时间内的持有产品信息,并获取满足预定条件的目标客户;

相似度计算模块12,用于基于所述持有产品信息,对预定滚动时间内的所有持有产品间的相似度进行计算,得到目标相似度集合;

兴趣度计算模块13,用于基于所述目标相似度集合,对所述目标客户未购买过的产品进行兴趣度计算,得到目标兴趣度集合;

推荐信息生成模块14,用于获取目标兴趣度集合中满足预定条件的产品,生成对应的产品推荐信息,将所述产品推荐信息推送给目标客户。

具体实施方式见方法实施例,此处不再赘述。

在一个实施例中,产品信息获取模块具体用于:

基于客户授权指令,获取银行所有客户在预定滚动时间内的持有产品信息;

获取满足预定条件的目标客户,并对所述目标客户进行标记。

具体实施方式见方法实施例,此处不再赘述。

在一个实施例中,相似度计算模块具体用于:

基于所述持有产品信息,对预定滚动时间内的所有持有产品间的相似度分别进行计算,得到目标相似度矩阵。

具体实施方式见方法实施例,此处不再赘述。

在一个实施例中,兴趣度计算模块具体用于:

获取所有持有产品中所述目标客户未购买的产品,记为目标产品;

基于目标相似度矩阵对所述目标产品进行兴趣度计算,得到目标产品对应的目标兴趣度集合。

具体实施方式见方法实施例,此处不再赘述。

在一个实施例中,推荐信息生成模块具体用于:

获取目标兴趣度集合中产品排序在前K名的产品,其中K为大于等于3的正整数;

基于产品排序在前K名的产品,生成对应的产品推荐信息;

将所述产品推荐信息推送至目标客户的用户界面。

具体实施方式见方法实施例,此处不再赘述。

在一个实施例中,相似度计算模块还用于:

基于所述持有产品信息,对预定滚动时间内的所有持有产品间的相似度分别进行计算,得到目标相似度矩阵W

其中μ是指第一产品,v是指第二产品,|N(μ)|表示喜欢μ的客户数量,|N(v)|表示喜欢v的客户数量。

具体实施方式见方法实施例,此处不再赘述。

在一个实施例中,兴趣度记为p(μ,j),兴趣度计算模块还用于:

对兴趣度p(μ,j)进行计算:

p(μ,j)=∑

其中N(μ)是客户喜欢的物品集合,S(j,K)是和物品j最相似的K个物品的集合,W

具体实施方式见方法实施例,此处不再赘述。

本发明另一实施例提供一种电子设备,如图4所示,电子设备10包括:

一个或多个处理器110以及存储器120,图4中以一个处理器110为例进行介绍,处理器110和存储器120可以通过总线或者其他方式连接,图4中以通过总线连接为例。

处理器110用于完成电子设备10的各种控件逻辑,其可以为通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、单片机、ARM(Acorn RISCMachine)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件控件或者这些部件的任何组合。还有,处理器110还可以是任何传统处理器、微处理器或状态机。处理器110也可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP核、或任何其它这种配置。

存储器120作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的基于协同过滤算法的产品推荐方法对应的程序指令。处理器110通过运行存储在存储器120中的非易失性软件程序、指令以及单元,从而执行设备10的各种功能应用以及数据处理,即实现上述方法实施例中的基于协同过滤算法的产品推荐方法。

存储器120可以包括存储程序区和存储数据区,其中,存储程序区可存储操作装置、至少一个功能所需要的应用程序;存储数据区可存储根据设备10使用所创建的数据等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器120可选包括相对于处理器110远程设置的存储器,这些远程存储器可以通过网络连接至设备10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

一个或者多个单元存储在存储器120中,当被一个或者多个处理器110执行时,执行上述任意方法实施例中的基于协同过滤算法的产品推荐方法,例如,执行以上描述的图1中的方法步骤S100至步骤S400。

本发明实施例提供了一种非易失性计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如,执行以上描述的图1中的方法步骤S100至步骤S400。

作为示例,非易失性存储介质能够包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦ROM(EEPROM)或闪速存储器。易失性存储器能够包括作为外部高速缓存存储器的随机存取存储器(RAM)。通过说明并非限制,RAM可以以诸如同步RAM(SRAM)、动态RAM、(DRAM)、同步DRAM(SDRAM)、双数据速率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、Synchl ink DRAM(SLDRAM)以及直接Rambus(兰巴斯)RAM(DRRAM)之类的许多形式得到。本文中所描述的操作环境的所公开的存储器控件或存储器旨在包括这些和/或任何其他适合类型的存储器中的一个或多个。

本发明的另一种实施例提供了一种计算机程序产品,计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被处理器执行时,使处理器执行上述方法实施例的基于协同过滤算法的产品推荐方法。例如,执行以上描述的图1中的方法步骤S100至步骤S400。

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

通过以上的实施例的描述,本领域的技术人员可以清楚地了解到各实施例可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件实现。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存在于计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)执行各个实施例或者实施例的某些部分的方法。

除了其他之外,诸如"能够′、"能"、"可能"或"可以"之类的条件语言除非另外具体地陈述或者在如所使用的上下文内以其他方式理解,否则一般地旨在传达特定实施方式能包括(然而其他实施方式不包括)特定特征、元件和/或操作。因此,这样的条件语言一般地还旨在暗示特征、元件和/或操作对于一个或多个实施方式无论如何都是需要的或者一个或多个实施方式必须包括用于在有或没有输入或提示的情况下判定这些特征、元件和/或操作是否被包括或者将在任何特定实施方式中被执行的逻辑。

已经在本文中在本说明书和附图中描述的内容包括能够提供基于协同过滤算法的产品推荐方法及装置的示例。当然,不能够出于描述本公开的各种特征的目的来描述元件和/或方法的每个可以想象的组合,但是可以认识到,所公开的特征的许多另外的组合和置换是可能的。因此,显而易见的是,在不脱离本公开的范围或精神的情况下能够对本公开做出各种修改。此外,或在替代方案中,本公开的其他实施例从对本说明书和附图的考虑以及如本文中所呈现的本公开的实践中可能是显而易见的。意图是,本说明书和附图中所提出的示例在所有方面被认为是说明性的而非限制性的。尽管在本文中采用了特定术语,但是它们在通用和描述性意义上被使用并且不用于限制的目的。

相关技术
  • 基于区块链的理财产品推荐方法、装置、介质及电子设备
  • 一种穿搭推荐方法、装置及电子设备
  • 一种Web API组合推荐方法、装置及电子设备
  • 一种房源推荐方法、装置、存储介质及电子设备
  • 一种基于协同过滤算法的金融产品推荐方法及装置
  • 一种基于信息协同过滤算法的集团产品推荐方法及装置
技术分类

06120116480064