[0116] 如果附近点的数量≥minPts,则当前点与其附近点形成一个簇,并且出发点被标记为已访问(visited)。然后递归,以相同的方法处理该簇内所有未被标记为已访问(visited)的点,从而对簇进行扩展。如果附近点的数量
[0117] 补全值获取单元120,用于若所述初始用户-评分矩阵中包括空白值,根据所述空白值所对应商品名称及该商品名称对应的商品聚类簇,得到空白值对应的商品加权评分。
[0118] 在本实施例中,由于初始用户-评分矩阵中因部分用户没有对特定商品进行评分而保留空白值,因此这部分空白值将会基于商品内容进行预测用户评分以填补空白值。
[0119] 在一实施例中,如图8所示,补全值获取单元120包括:
[0120] 待预测向量获取单元121,用于根据所述空白值对应的商品名称,以获取与商品名称相应的统计向量;
[0121] 聚类簇归属判断单元122,用于获取与商品名称相应的统计向量所归属的商品聚类簇;
[0122] 相似商品结果获取单元123,用于根据与商品名称相应的统计向量所归属的商品聚类簇,获取与所述空白值对应的商品名称相应的相似商品名称,以作为相似商品结果;
[0123] 相似商品评分获取单元124,用于根据所述空白值对应的行向量,获取与所述相似商品结果中每一商品名称对应的评分;
[0124] 商品加权评分获取单元125,用于根据与所述相似商品结果中每一商品名称对应的评分进行加权平均,得到所述空白值对应的商品加权评分。
[0125] 在本实施例中,由于确定了所述空白值在初始用户-评分矩阵中所归属的行向量后,即可知道是哪一用户针对哪一商品的商品评分是空白值,此时先获取所述空白值对应的商品名称即可知道该商品名称所对应的统计向量。然后判断该统计向量所归属的商品聚类簇,即可获取该商品聚类簇中其他商品的相似商品名称,以作为所述空白值对应的商品名称的相似商品结果。由于所述空白值在初始用户-评分矩阵中所归属的行向量中,可获知该用户针对相似商品结果中各相似商品名称的评分。最后根据该用户针对各相似商品名称的评分进行加权平均,得到所述空白值对应的商品加权评分。
[0126] 在一实施例中,如图9所示,商品加权评分获取单元125包括:
[0127] 向量距离集合获取单元1251,用于将所述相似商品结果中每一商品名称对应的统计向量作为统计向量组,将所述空白值对应商品名称相应的统计向量作为待预测商品评分向量,获取所述统计向量组中每一统计向量与待预测商品评分向量之间的距离,以得到向量距离集合;
[0128] 商品加权总评分获取单元1252,用于将所述相似商品结果中每一商品名称对应评分乘以向量距离集合中对应的向量距离并求和,得到商品加权总评分;
[0129] 平均分获取单元1253,用于将商品加权总评分除以向量距离集合中各向量距离之和,得到所述空白值对应的商品加权评分。
[0130] 在本实施例中,若将所述统计向量组中每一统计向量与待预测商品评分向量之间的距离记为dck,将所述空白值所在行向量对应的用户对所述相似商品结果中每一商品名称对应评分记为Sic,通过如下公式计算得到所述空白值对应的商品加权评分:
[0131]
[0132] 其中,Scorek表示所述空白值对应商品k的商品加权评分,m为所述相似商品结果中相似商品c的总个数。
[0133] 例如,用户1针对商品2的评分为空白值,而得到商品2对应的相似商品结果为商品4和商品5,且用户1针对商品4和商品5的评分分别为3和4,商品4对应的统计向量与商品2对应的统计向量之间的距离为0.5,商品5对应的统计向量与商品2对应的统计向量之间的距离为1,则:
[0134] Score2=(0.5*3+1*4)/(0.5+1)=11/3;
[0135] 此时,将上述计算得到的Score2作为所述空白值对应的商品加权评分。
[0136] 通过对新用户所缺少的商品评分,通过基于内容的预测方法,能有效的补全用户-评分矩阵,避免了推荐过程中冷启动的问题。
[0137] 调整矩阵获取单元130,用于将所述空白值更新为对应的商品加权评分,得到调整后用户-评分矩阵。
[0138] 在本实施例中,若将所述空白值更新为对应的商品加权评分,所述初始用户-评分矩阵中的空白值即可被补充为无空白值的调整后用户-评分矩阵,这样有效的解决了新用户缺少的商品评分的问题。而且空白值处所更新填充的商品加权分是依据近似商品的评分而得到,并非随机获取分值填充,该商品加权评分更具参考性。
[0139] 相似用户聚类单元140,用于获取在所述调整后用户-评分矩阵选中的行向量对应的目标用户,根据目标用户对应的行向量与所述调整后用户-评分矩阵中其他行向量之间的皮尔逊相似度的排序结果,获取预设个数的行向量以作为相似用户聚类结果。
[0140] 在本实施例中,若得到了无空白值的调整后用户-评分矩阵,即可以该调整后用户-评分矩阵作为相似用户分类的参考矩阵。例如,可先在调整后用户-评分矩阵中选定一个行向量作为目标用户,为了获取该目标用户的相似用户,可计算调整后用户-评分矩阵中其他行向量与目标用户的行向量之间的皮尔逊相似度。将多个计算结果进行降序排序后,可以与目标用户的行向量之间的皮尔逊相似度的大小选择排名位于预设排名阈值(预设排名阈值=预设个数+1)之前的行向量所对应用户作为相似用户,并由相似用户对应的行向量的集合作为相似用户聚类结果。通过计算与目标用户对应行向量的皮尔逊相似度,能快速筛选出相似用户并将相似用户所感兴趣的商品推送至目标用户。
[0141] 计算任意两个行向量之间的皮尔逊相似度,可以通过以下公式进行计算:
[0142]
[0143] 其中,E表示数学期望;
[0144] ρX,Y的取值范围是(0,1),当ρX,Y越接近1表示两个行向量的相似程度越高,当ρX,Y越接近0表示两个行向量的相似程度越低。
[0145] 推荐列表获取单元150,用于根据相似用户聚类结果中每一行向量和与每一行向量与对应的皮尔逊相似度,得到商品推荐行向量,由商品推荐行向量得到商品推荐列表,将所述商品推荐列表推送至目标用户对应的接收端。
[0146] 在本实施例中,由于相似用户聚类结果中每一行向量对应的用户均对每一商品有对应的评分,从对各商品的评分高低可以看出对用户对各商品的推荐程度。相似用户聚类结果中若有行向量与目标用户的行向量的皮尔逊相似度越大,则表示该行向量对应的用户与目标用户对商品的喜好相同或近似,故该用户的对各商品的喜好程度更大程度上影响对目标用户的商品推荐结果。
[0147] 当根据相似用户聚类结果中每一行向量和与每一行向量与对应的皮尔逊相似度,得到商品推荐行向量,在商品推荐行向量中对各商品的评分排位靠前的商品即可作为商品推荐列表的组成元素之一,这样通过商品推荐行向量得到的推荐商品由于充分考虑了近似用户的喜好,故能准确的反映目标用户的喜好。
[0148] 在一实施例中,如图10所示,推荐列表获取单元150包括:
[0149] 皮尔逊相似度集合获取单元151,用于获取所述相似用户聚类结果中每一相似用户对应的行向量与目标用户的行向量之间皮尔逊相似度,以得到皮尔逊相似度集合;
[0150] 商品推荐行向量获取单元152,用于将皮尔逊相似度集合中每一皮尔逊相似乘以所述相似用户聚类结果中对应相似用户的行向量并求和,得到商品推荐行向量;
[0151] 列表排序获取153,用于获取商品推荐行向量中各评分降序排序后评分排名小于预设排名阈值的评分所对应的商品名称,以组成商品推荐列表。
[0152] 在本实施例中,当获取的所述相似用户聚类结果中包括N个行向量,分别记为User1~UserN,各行向量与目标用户之间的行向量之间的皮尔逊相似度分别记为Pearson1~PearsonN, 在计算所得到的商品推荐行向量中,即可获知所述相似用户聚类结果中用户对各商品的综合评分,以该综合评分中评分排名位于前M位(M等于预设排名阈值减一,如设置M=10)的评分所对应商品即可作为商品推荐列表的推荐项。通过上述基于皮尔逊相似度的计算,能将相似用户的商品喜好作为对目标用户推荐商品时所考虑的主要因素,能更合理的进行商品推荐。
[0153] 该装置避免了仅采用协同过滤的推荐算法对新用户进行商品推荐时,因新用户缺少历史评分数据而导致冷启动的问题,解决了难以对新用户进行商品推荐的问题。
[0154] 上述信息推送装置可以实现为计算机程序的形式,该计算机程序可以在如图11所示的计算机设备上运行。
[0155] 请参阅图11,图11是本发明实施例提供的计算机设备的示意性框图。
[0156] 参阅图11,该计算机设备500包括通过
系统总线501连接的处理器502、存储器和网络
接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。
[0157] 该非易失性存储介质503可存储
操作系统5031和计算机程序5032。该计算机程序5032被执行时,可使得处理器502执行信息推送方法。
[0158] 该处理器502用于提供计算和控制能
力,
支撑整个计算机设备500的运行。
[0159] 该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行信息推送方法。
[0160] 该网络接口505用于进行网络通信,如提供数据信息的传输等。本领域技术人员可以理解,图11中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0161] 其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现如下功能:获取初始用户-评分矩阵;若所述初始用户-评分矩阵中包括空白值,根据所述空白值所对应商品名称及该商品名称对应的商品聚类簇,得到空白值对应的商品加权评分;将所述空白值更新为对应的商品加权评分,得到调整后用户-评分矩阵;获取在所述调整后用户-评分矩阵选中的行向量对应的目标用户,根据目标用户对应的行向量与所述调整后用户-评分矩阵中其他行向量之间的皮尔逊相似度的排序结果,获取预设个数的行向量以作为相似用户聚类结果;以及根据相似用户聚类结果中每一行向量和与每一行向量与对应的皮尔逊相似度,得到商品推荐行向量,由商品推荐行向量得到商品推荐列表,将所述商品推荐列表推送至目标用户对应的接收端。
[0162] 在一实施例中,处理器502在执行所述获取初始用户-评分矩阵的步骤之前,还执行如下操作:获取历史商品信息集合,通过词频-逆文本频率指数模型对所述历史商品信息集合中每一历史商品信息均进行关键词信息抽取,得到与每一历史商品信息对应的商品关键词集合;通过Word2Vec模型获取每一商品关键词集合中各商品关键词对应的词向量;获取每一商品关键词集合中各商品关键词所对应词向量的平均值,以得到与每一商品关键词集合对应的统计向量;通过DBSCAN聚类模型对商品关键词集合对应的统计向量进行聚类,得到至少一个商品聚类簇。
[0163] 在一实施例中,处理器502在所述对根据所述空白值所对应商品名称及该商品名称对应的商品聚类簇,得到空白值对应的商品加权评分的步骤时,执行如下操作:根据所述空白值对应的商品名称,以获取与商品名称相应的统计向量;获取与商品名称相应的统计向量所归属的商品聚类簇;根据与商品名称相应的统计向量所归属的商品聚类簇,获取与所述空白值对应的商品名称相应的相似商品名称,以作为相似商品结果;根据所述空白值对应的行向量,获取与所述相似商品结果中每一商品名称对应的评分;根据与所述相似商品结果中每一商品名称对应的评分进行加权平均,得到所述空白值对应的商品加权评分。
[0164] 在一实施例中,处理器502在执行所述根据与所述相似商品结果中每一商品名称对应的评分进行加权平均,得到所述空白值对应的商品加权评分的步骤时,执行如下操作:将所述相似商品结果中每一商品名称对应的统计向量作为统计向量组,将所述空白值对应商品名称相应的统计向量作为待预测商品评分向量,获取所述统计向量组中每一统计向量与待预测商品评分向量之间的距离,以得到向量距离集合;将所述相似商品结果中每一商品名称对应评分乘以向量距离集合中对应的向量距离并求和,得到商品加权总评分;将商品加权总评分除以向量距离集合中各向量距离之和,得到所述空白值对应的商品加权评分。
[0165] 在一实施例中,处理器502在执行所述根据相似用户聚类结果中每一行向量和与每一行向量与对应的皮尔逊相似度,得到商品推荐行向量,由商品推荐行向量得到商品推荐列表的步骤时,执行如下操作:获取所述相似用户聚类结果中每一相似用户对应的行向量与目标用户的行向量之间皮尔逊相似度,以得到皮尔逊相似度集合;将皮尔逊相似度集合中每一皮尔逊相似乘以所述相似用户聚类结果中对应相似用户的行向量并求和,得到商品推荐行向量;获取商品推荐行向量中各评分降序排序后评分排名小于预设排名阈值的评分所对应的商品名称,以组成商品推荐列表。
[0166] 本领域技术人员可以理解,图11中示出的计算机设备的实施例并不构成对计算机设备具体构成的限定,在其他实施例中,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。例如,在一些实施例中,计算机设备可以仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图11所示实施例一致,在此不再赘述。
[0167] 应当理解,在本发明实施例中,处理器502可以是中央处理单元(Central Processing Unit,CPU),该处理器502还可以是其他通用处理器、数字
信号处理器(Digital Signal Processor,DSP)、专用集成
电路(Application Specific Integrated Circuit,ASIC)、现成可编程
门阵列(Field-Programmable Gate Array,FPGA)或者其他
可编程逻辑器件、分立门或者晶体管逻辑器件、分立
硬件组件等。其中,通用处理器可以是
微处理器或者该处理器也可以是任何常规的处理器等。
[0168] 在本发明的另一实施例中提供计算机可读存储介质。该计算机可读存储介质可以为非易失性的计算机可读存储介质。该计算机可读存储介质存储有计算机程序,其中计算机程序被处理器执行时实现以下步骤:获取初始用户-评分矩阵;若所述初始用户-评分矩阵中包括空白值,根据所述空白值所对应商品名称及该商品名称对应的商品聚类簇,得到空白值对应的商品加权评分;将所述空白值更新为对应的商品加权评分,得到调整后用户-评分矩阵;获取在所述调整后用户-评分矩阵选中的行向量对应的目标用户,根据目标用户对应的行向量与所述调整后用户-评分矩阵中其他行向量之间的皮尔逊相似度的排序结果,获取预设个数的行向量以作为相似用户聚类结果;以及根据相似用户聚类结果中每一行向量和与每一行向量与对应的皮尔逊相似度,得到商品推荐行向量,由商品推荐行向量得到商品推荐列表,将所述商品推荐列表推送至目标用户对应的接收端。
[0169] 在一实施例中,所述获取初始用户-评分矩阵之前,还包括:获取历史商品信息集合,通过词频-逆文本频率指数模型对所述历史商品信息集合中每一历史商品信息均进行关键词信息抽取,得到与每一历史商品信息对应的商品关键词集合;通过Word2Vec模型获取每一商品关键词集合中各商品关键词对应的词向量;获取每一商品关键词集合中各商品关键词所对应词向量的平均值,以得到与每一商品关键词集合对应的统计向量;通过DBSCAN聚类模型对商品关键词集合对应的统计向量进行聚类,得到至少一个商品聚类簇。
[0170] 在一实施例中,所述对根据所述空白值所对应商品名称及该商品名称对应的商品聚类簇,得到空白值对应的商品加权评分,包括:根据所述空白值对应的商品名称,以获取与商品名称相应的统计向量;获取与商品名称相应的统计向量所归属的商品聚类簇;根据与商品名称相应的统计向量所归属的商品聚类簇,获取与所述空白值对应的商品名称相应的相似商品名称,以作为相似商品结果;根据所述空白值对应的行向量,获取与所述相似商品结果中每一商品名称对应的评分;根据与所述相似商品结果中每一商品名称对应的评分进行加权平均,得到所述空白值对应的商品加权评分。
[0171] 在一实施例中,所述根据与所述相似商品结果中每一商品名称对应的评分进行加权平均,得到所述空白值对应的商品加权评分,包括:将所述相似商品结果中每一商品名称对应的统计向量作为统计向量组,将所述空白值对应商品名称相应的统计向量作为待预测商品评分向量,获取所述统计向量组中每一统计向量与待预测商品评分向量之间的距离,以得到向量距离集合;将所述相似商品结果中每一商品名称对应评分乘以向量距离集合中对应的向量距离并求和,得到商品加权总评分;将商品加权总评分除以向量距离集合中各向量距离之和,得到所述空白值对应的商品加权评分。
[0172] 在一实施例中,所述根据相似用户聚类结果中每一行向量和与每一行向量与对应的皮尔逊相似度,得到商品推荐行向量,由商品推荐行向量得到商品推荐列表,包括:获取所述相似用户聚类结果中每一相似用户对应的行向量与目标用户的行向量之间皮尔逊相似度,以得到皮尔逊相似度集合;将皮尔逊相似度集合中每一皮尔逊相似乘以所述相似用户聚类结果中对应相似用户的行向量并求和,得到商品推荐行向量;获取商品推荐行向量中各评分降序排序后评分排名小于预设排名阈值的评分所对应的商品名称,以组成商品推荐列表。
[0173] 所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以
电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0174] 在本发明所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为逻辑功能划分,实际实现时可以有另外的划分方式,也可以将具有相同功能的单元集合成一个单元,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
[0175] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
[0176] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0177] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动
硬盘、
只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0178] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉
本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的
修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。