CN105653657A - 一种商品的推荐方法及装置 - Google Patents
一种商品的推荐方法及装置 Download PDFInfo
- Publication number
- CN105653657A CN105653657A CN201511005846.5A CN201511005846A CN105653657A CN 105653657 A CN105653657 A CN 105653657A CN 201511005846 A CN201511005846 A CN 201511005846A CN 105653657 A CN105653657 A CN 105653657A
- Authority
- CN
- China
- Prior art keywords
- user
- commodity
- scoring
- svd
- vector
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0623—Item investigation
- G06Q30/0625—Directed, with specific intent or strategy
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明适用于大数据处理技术领域,提供了一种商品的推荐方法及装置,所述推荐方法包括:获取评分矩阵,所述评分矩阵包括多个用户对多个商品的实际评分,并在所述评分矩阵的空缺位置上填补随机数;针对每一个用户,根据所述评分矩阵和所述用户对应的隐式反馈数据,通过SVD++算法进行多次迭代求解,得到所述用户对应的评分向量,所述评分向量中包括所述用户对每一个商品的预测评分;在向用户推荐商品时,根据所述用户对应的评分向量,选取预测评分最大的商品推荐给所述用户。本发明通过加入商品的隐式反馈数据,有效地提高了商品的推荐效果,并优化了推荐算法的迭代求解效率。
Description
技术领域
本发明属于大数据处理技术领域,尤其涉及一种商品的推荐方法及装置。
背景技术
SVD(SingularValueDecomposition,奇异值分解)算法,是一种常用的矩阵分解技术,能够进行有效的代数特征提取。SVD算法实际上将一个N行M列的评分矩阵R(其中的元素Rui表示第u个用户对第i个商品的评分),分解成一个N行F列的用户因子矩阵P(其中的元素Puk表示第u个用户对因子k的喜好程度)和一个M行F列的物品因子矩阵Q(其中的元素Qik表示第i个物品的因子k的程度),通过公式R=P·QT表示。SVD算法在协同过滤中的主要思路是根据已有的评分情况,分析出评分者对各个因子的喜好程度以及物品包含各个因子的程度,最后再反过来分析数据得出预测结果。相对于评分矩阵,用户因子矩阵和物品因子矩阵相应的存储量和计算量降低了多个数量级。然而,在实际应用时存在以下缺陷:
1.评分矩阵为稠密矩阵时,通过SVD算法得到的预测数据的准确性较高,而评分矩阵密集度较低,即为稀疏矩阵时,预测数据的准确性较低,SVD算法的性能非常差,推荐效果不理想;
2.基于SVD的推荐算法多使用梯度下降法进行求解,而求解过程中误差的下降速度会越来越慢,需要进行多次迭代,耗费时间长。
发明内容
鉴于此,本发明实施例提供一种商品的推荐方法及装置,以提高商品的推荐效果,并优化推荐算法的迭代求解效率。
第一方面,提供了一种商品的推荐方法,所述推荐方法包括:
获取评分矩阵,所述评分矩阵包括多个用户对多个商品的实际评分,并在所述评分矩阵的空缺位置上填补随机数;
针对每一个用户,根据所述评分矩阵和所述用户对应的隐式反馈数据,通过SVD++算法进行多次迭代求解,得到所述用户对应的评分向量,所述评分向量中包括所述用户对每一个商品的预测评分;
在向用户推荐商品时,根据所述用户对应的评分向量,选取预测评分最大的商品推荐给所述用户。
第二方面,提供了一种商品的推荐装置,所述推荐装置包括:
获取模块,用于获取评分矩阵,所述评分矩阵包括多个用户对多个商品的实际评分,并在所述评分矩阵的空缺位置上填补随机数;
求解模块,用于针对每一个用户,根据所述评分矩阵和所述用户对应的隐式反馈数据,通过SVD++算法进行多次迭代求解,得到所述用户对应的评分向量,所述评分向量中包括所述用户对每一个商品的预测评分;
推荐模块,用于在向用户推荐商品时,根据所述用户对应的评分向量,选取预测评分最大的商品推荐给所述用户。
与现有技术相比,本发明实施例通过获取评分矩阵,并在所述评分矩阵的空缺位置上填补随机数,将处理之后的评分矩阵作为SVD++算法的输入;针对每一个用户,根据所述评分矩阵和所述用户对应的隐式反馈数据,通过SVD++算法进行多次迭代求解,得到所述用户对应的评分向量,所述评分向量中包括用户对每一个商品的预测评分;在向用户推荐商品时,则根据所述用户对应的评分向量,选取预测评分最大的商品推荐给所述用户;从而通过结合用户对商品的隐式反馈数据和显示反馈数据,获得用户对没有评分的商品的预测评分,解决了评分矩阵密集度较低时推荐性能差的问题,有效地提高了商品的推荐效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1是本发明实施例提供的商品的推荐方法的实现流程图;
图2是本发明实施例提供的商品的推荐方法中步骤S102的具体实现流程图;
图3是本发明实施例提供的商品的推荐装置的组成结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例通过获取评分矩阵,并在所述评分矩阵的空缺位置上填补随机数,将处理之后的评分矩阵作为SVD++算法的输入;针对每一个用户,根据所述评分矩阵和所述用户对应的隐式反馈数据,通过SVD++算法进行多次迭代求解,得到所述用户对应的评分向量,所述评分向量中包括用户对每一个商品的预测评分;在向用户推荐商品时,则根据所述用户对应的评分向量,选取预测评分最大的商品推荐给所述用户;从而通过结合用户对商品的隐式反馈数据和显示反馈数据,获得用户对没有评分的商品的预测评分,解决了评分矩阵密集度较低时推荐性能差的问题,有效地提高了商品的推荐效果。本发明实施例还提供了相应的装置,以下分别进行详细的说明。
图1示出了本发明实施例提供的商品的推荐方法的实现流程。
参阅图1,所述商品的推荐方法包括:
在步骤S101中,获取评分矩阵,并在所述评分矩阵的空缺位置上填补随机数。
在本发明实施例中,所述评分矩阵包括多个用户对多个商品的实际评分。在这里,所述商品包括但不限于视频、食品、书籍、音乐等等。在实际中,用户可能未对所述多个商品中的某些商品进行评分,导致所述评分矩阵出现空缺值。在预处理过程中,本发明实施例预先在所述评分矩阵的空缺位置上填补随机数,然后将预处理之后的评分矩阵作为SVD++算法的输入,进行迭代求解。
在这里,预处理过程还包括:统计评分矩阵中的所有用户和所有商品,初始化每一个用户的评分偏置向量bu(表示用户u对所述多个商品做出的评分相对于平均评分的偏差),商品的评分偏置向量bi(表示商品i的评分相对于平均评分的偏差),用户的隐因子矩阵pu(表示用户u对因子k的喜好程度),商品的隐因子矩阵qi(表示商品i的因子k的程度),用户对商品的隐式评分的项目集合N(u),项目权重矩阵Y,所述项目权重矩阵Y中包括项目集合N(u)中每一个项目的权重yj。
在步骤S102中,针对每一个用户,根据所述评分矩阵和所述用户对应的隐式反馈数据,通过SVD++算法进行多次迭代求解,得到所述用户的评分向量,所述评分向量中包括所述用户对每一个商品的预测评分。
在本发明实施例中,定义用户做出的有明确意图的反馈信息为显示反馈数据;相对的,所述隐式反馈数据为用户对所述评分矩阵中的多个商品中的任意商品做出的没有明确意图的反馈信息,包括但不限于用户的商品购买历史、网页浏览历史、搜索模式等。隐式反馈数据通常表明某个事件是否发生过,并以稠密矩阵来表示。在计算每一个用户的预测评分时,首先针对每一个用户,获取所述用户的隐式反馈数据。将所述隐式反馈数据加入到传统SVD算法中,得到的SVD++算法,相对于传统SVD算法,代数特征提取性能有了较大的提升。
作为本发明的一个优选实例,图2示出了本发明实施例提供的步骤S102的具体实现流程。
为了便于说明,以下给出了计算一个用户的评分向量的具体实现流程。参阅图2,所述步骤S102包括:
在步骤S201中,在一次迭代求解过程中,针对每一个用户u,获取所述用户u对应的隐式反馈数据。
在步骤S202中,从所述评分矩阵中获取所述用户u对所述多个商品中任一商品i的实际评分,按照预设的SVD++公式计算所述用户u对所述商品i的预测评分。
在这里,所述SVD++公式为:
其中,所述表示用户u对商品i的预测评分,所述μ表示评分矩阵中所有商品的实际评分的平均分;所述bu表示用户u的评分偏置向量,所述bi表示商品i的评分偏置向量,所述pu表示用户u的隐因子矩阵,所述qi表示商品i的隐因子矩阵;所述表示隐式反馈数据,所述N(u)表示用户u对商品i的隐式评分的项目集合,所述yj表示项目集合N(u)中第j项目的权重,即隐式评分下的项目因子向量,j的范围与SVD++算法中的矩阵分解相关。
通过上述SVD++公式,得到用户u对第i个商品的预测评分。
在步骤S203中,计算所述商品i的实际评分和预测评分之间的差值。
在获取到用户u对第i个商品的预测评分后,从所述评分矩阵中获取所述用户u对第i个商品的实际评分rui,计算两者之间的差值eui。其中,
在步骤S204中,根据所述差值更新SVD++公式。
在这里,根据所述差值更新SVD++公式中的用户评分偏置向量bu、商品评分偏置向量bi、用户隐因子矩阵pu、商品隐因子矩阵qi以及项目集合N(u)中第j项目的权重yj。
其中,所述用户评分偏置向量bu更新为bu+γ·(eui-λ·bu);所述商品评分偏置想bi更新为bi+γ·(eui-λ·bi);所述用户隐因子矩阵pu更新为pu+γ·(eui·qi-λ·pu);所述商品隐因子矩阵qi更新为所述隐式评分下的项目集合N(u)中第j项目的权重yj更新为在这里,所述γ为学习率,所述λ为拉格朗日公式中的系数,均为随机数。以更新后的用户评分偏置向量bu、商品评分偏置向量bi、用户隐因子矩阵pu、商品隐因子矩阵qi以及项目集合N(u)中第j项目的权重yj组成新的SVD++公式。
在步骤S205中,以更新后的SVD++公式计算所述用户u对下一个商品的预测评分,直至得到所述用户对所有商品的预测评分,获得所述用户对应的评分向量。
在这里,在根据差值eui更新SVD++公式后,判断是否存在所述用户对下一个商品的评分。若是,则根据更新后的SVD++公式,重新执行步骤S202至S205,以计算所述用户u对下一个商品的预测评分,然后以下一个商品的预测评分与实际评分的差值,更新SVD++公式,以更新后的SVD++公式计算所述用户u对下下一个商品的预测评分。以此类推,直至得到所述用户对所有商品的预测评分,得到所述用户的评分向量。所述评分向量中包括所述用户对每一个商品的预测评分。
由于所述评分矩阵包括了多个用户对多个商品的评分,在计算完一个用户对所述多个商品的预测评分后,获取下一个用户的隐式反馈数据,并根据所述评分矩阵及所述用户对应的隐式反馈数据,重复执行上述步骤S201至S205,以计算下一个用户对所述多个商品的预测评分。直至遍历所有用户后,判断当前的迭代次数是否达到预设次数,若否,则进行下一次迭代求解,即再次针对每一个用户,根据所述评分矩阵和所述用户对应的隐式反馈数据,通过上一次迭代求解最后更新的SVD++公式进行下一次的求解运算。直至迭代次数达到预设次数,则存储每一个用户当前的评分向量。
在这里,为了提升迭代求解的效率,在每一次迭代求解过程中,通过spark处理引擎对多个用户进行分布式并行计算,以得到每一个用户的评分向量。从而通过并行计算所述多个用户中每一个用户对所有商品的预测评分,而无需按照常规的串行算法进行大规模的计算,有效地提高了迭代求解的效率。
在步骤S103中,在向用户推荐商品时,根据所述用户对应的评分向量,选取预测评分最大的商品推荐给所述用户。
通过上述步骤S101和S102得到的评分向量,包括了用户对所述多个商品的预测评分,以预测评分填补了评分矩阵中的缺失值,即模拟用户对商品的评分,完善了用户对每一个商品的评分。当向所述多个用户中的某个用户推荐商品时,则获取所述用户对应的评分向量,对所述评分向量中的预测评分进行排序,选取预测评分最大的商品推荐给所述用户,从而解决了评分矩阵密集度较低时推荐性能差的问题,有效地提高了商品推荐的准确性。
综上所述,本发明实施例通过获取评分矩阵,并在所述评分矩阵的空缺位置上填补随机数,将处理之后的评分矩阵作为SVD++算法的输入;针对每一个用户,根据所述评分矩阵和所述用户对应的隐式反馈数据,通过SVD++算法进行多次迭代求解,得到所述用户对应的评分向量,所述评分向量中包括用户对每一个商品的预测评分;在向用户推荐商品时,则根据所述用户对应的评分向量,选取预测评分最大的商品推荐给所述用户;从而通过结合用户对商品的隐式反馈数据和显示反馈数据,获得用户对没有评分的商品的预测评分,解决了评分矩阵密集度较低时推荐性能差的问题,有效地提高了商品的推荐效果。
图3示出了本发明实施例提供的商品的推荐装置的组成结构,为了便于说明,仅示出了与本发明实施例相关的部分。
在本发明实施例中,所述商品的推荐装置用于实现上述图1或图2实施例中所述的商品的推荐方法,可以是内置于终端设备的软件单元、硬件单元或者软硬件结合的单元。
参阅图3,所述推荐装置包括:
获取模块31,用于获取评分矩阵,所述评分矩阵包括多个用户对多个商品的实际评分,并在所述评分矩阵的空缺位置上填补随机数。
求解模块32,用于针对每一个用户,根据所述评分矩阵和所述用户对应的隐式反馈数据,通过SVD++算法进行多次迭代求解,得到所述用户的评分向量,所述评分向量中包括所述用户对每一个商品的预测评分。
推荐模块33,用于在向用户推荐商品时,根据所述用户对应的评分向量,选取预测评分最大的商品推荐给所述用户。
在本发明实施例中,所获取的评分矩阵包括了多个用户对多个商品的实际评分。在实际中,用户可能未对所述多个商品中的某些商品进行评分,导致所述评分矩阵出现空缺值。因此,在预处理过程中,本发明实施例预先在所述评分矩阵的空缺位置上填补随机数,然后将预处理之后的评分矩阵作为SVD++算法的输入,进行迭代求解。在这里,预处理过程还包括:统计评分矩阵中的所有用户和所有商品,初始化每一个用户的评分偏置向量bu,商品的评分偏置向量bi,用户的隐因子矩阵pu,商品的隐因子矩阵qi,用户对商品的隐式评分的项目集合N(u),项目权重矩阵Y,所述项目权重矩阵Y中包括项目集合N(u)中每一个项目的权重yj。
在本发明实施例中,定义用户做出的有明确意图的反馈信息为显示反馈数据;相对的,所述隐式反馈数据为用户对所述评分矩阵中的多个商品中的任意商品做出的没有明确意图的反馈信息,包括但不限于用户的商品购买历史、网页浏览历史、搜索模式等,对分析用户特征仍有帮助。其中,隐式反馈数据通常表明某个事件是否发生过,并以稠密矩阵来表示。在计算每一个用户的预测评分时,首先针对每一个用户,获取所述用户的隐式反馈数据。将所述隐式反馈数据加入到传统SVD算法中,得到的SVD++算法,相对于传统SVD算法,性能有了较大的提升。
进一步地,所述求解模块32具体包括:
获取单元321,用于在一次迭代求解过程中,针对每一个用户u,获取所述用户u对应的隐式反馈数据。
第一计算单元322,用于从所述评分矩阵中获取所述用户u对所述多个商品中任一商品i的实际评分,按照预设的SVD++公式计算所述用户u对所述商品i的预测评分。
第二计算单元323,用于计算所述商品i的实际评分和预测评分之间的差值。
更新单元324,用于根据所述差值更新SVD++公式,以更新后的SVD++公式计算所述用户u对下一个商品的预测评分,直至得到所述用户对所有商品的预测评分,获得所述用户对应的评分向量,遍历所有的用户,得到每一个用户对应的评分向量。
在这里,所述SVD++公式为:
其中,所述表示用户u对商品i的预测评分,所述μ表示评分矩阵中所有商品的实际评分的平均分;所述bu表示用户u的评分偏置向量,所述bi表示商品i的评分偏置向量,所述pu表示用户u的隐因子矩阵,所述qi表示商品i的隐因子矩阵;所述表示隐式反馈数据,所述N(u)表示用户u对商品i的隐式评分的项目集合,所述yj表示项目集合N(u)中第j项目的权重。
进一步地,所述更新单元324具体用于:
根据所述差值更新SVD++公式中的用户评分偏置向量bu、商品评分偏置向量bi、用户隐因子矩阵pu、商品隐因子矩阵qi以及项目集合N(u)中第j项目的权重yj;
其中,所述差值表示为eui,所述用户评分偏置向量bu更新为bu+γ·(eui-λ·bu);所述商品评分偏置想bi更新为bi+γ·(eui-λ·bi);所述用户隐因子矩阵pu更新为pu+γ·(eui·qi-λ·pu);所述商品隐因子矩阵qi更新为所述隐式评分下的项目集合N(u)中第j项目的权重yj更新为所述γ为学习率,所述λ为拉格朗日公式中的系数,均为随机数。
在这里,在根据差值eui更新SVD++公式后,判断是否存在所述用户对下一个商品的评分,若是,则根据更新后的SVD++公式,通过求解模块32中第一计算单元322计算所述用户u对下一个商品的预测评分,然后通过第二计算单元323计算下一个商品的预测评分与实际评分的差值,以及通过更新单元324更新SVD++公式,以更新后的SVD++公式计算所述用户u对下下一个商品的预测评分。以此类推,直至得到所述用户对所有商品的预测评分,获得所述用户对应的评分向量。所述评分向量中包括所述用户对每一个商品的预测评分。
由于所述评分矩阵包括了多个用户对多个商品的评分,在计算完一个用户对所述多个商品的预测评分后,由所述求解模块32继续获取下一个用户的隐式反馈数据,并根据所述评分矩阵及所述用户对应的隐式反馈数据,计算所述下一个用户对所述多个商品的预测评分。直至遍历所有用户后,判断当前的迭代次数是否达到预设次数,若否,则进行下一次迭代求解,即再次针对每一个用户,根据所述评分矩阵和所述用户对应的隐式反馈数据,通过上一次迭代求解最后更新的SVD++公式进行下一次的求解运算。直至迭代次数达到预设次数,则存储每一个用户当前的评分向量。
在这里,为了提升迭代求解的效率,在每一次迭代求解过程中,通过spark处理引擎对多个用户进行分布式并行计算,以得到每一个用户的评分向量。从而通过并行计算所述多个用户中每一个用户对所有商品的预测评分,而无需按照常规的串行算法进行大规模的计算,有效地提高了迭代求解的效率。
需要说明的是,本发明实施例中的装置可以用于实现上述方法实施例中的全部技术方案,其各个功能模块的功能可以根据上述方法实施例中的方法具体实现,其具体实现过程可参照上述实例中的相关描述,此处不再赘述。
本发明实施例通过获取评分矩阵,并在所述评分矩阵的空缺位置上填补随机数,将处理之后的评分矩阵作为SVD++算法的输入;针对每一个用户,根据所述评分矩阵和所述用户对应的隐式反馈数据,通过SVD++算法进行多次迭代求解,得到所述用户对应的评分向量,所述评分向量中包括用户对每一个商品的预测评分;在向用户推荐商品时,则根据所述用户对应的评分向量,选取预测评分最大的商品推荐给所述用户;从而通过结合用户对商品的隐式反馈数据和显示反馈数据,获得用户对没有评分的商品的预测评分,解决了评分矩阵密集度较低时推荐性能差的问题,有效地提高了商品的推荐效果。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的商品的推荐方法及装置,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块、单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元、模块单独物理存在,也可以两个或两个以上单元、模块集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种商品的推荐方法,其特征在于,所述推荐方法包括:
获取评分矩阵,所述评分矩阵包括多个用户对多个商品的实际评分,并在所述评分矩阵的空缺位置上填补随机数;
针对每一个用户,根据所述评分矩阵和所述用户对应的隐式反馈数据,通过SVD++算法进行多次迭代求解,得到所述用户对应的评分向量,所述评分向量中包括所述用户对每一个商品的预测评分;
在向用户推荐商品时,根据所述用户对应的评分向量,选取预测评分最大的商品推荐给所述用户。
2.如权利要求1所述的商品的推荐方法,其特征在于,所述隐式反馈数据为用户对所述评分矩阵中的多个商品中的任意商品进行的没有明确意图的反馈信息。
3.如权利要求2所述的商品的推荐方法,其特征在于,所述针对每一个用户,根据所述评分矩阵和所述用户对应的隐式反馈数据,通过SVD++算法进行多次迭代求解,得到所述用户的评分向量包括:
在一次迭代求解过程中,针对每一个用户u,获取所述用户u对应的隐式反馈数据;
从所述评分矩阵中获取所述用户u对所述多个商品中任一商品i的实际评分,按照预设的SVD++公式计算所述用户u对所述商品i的预测评分;
计算所述商品i的实际评分和预测评分之间的差值;
根据所述差值更新SVD++公式,以更新后的SVD++公式计算所述用户u对下一个商品的预测评分,直至得到所述用户对所有商品的预测评分,获得所述用户对应的评分向量;
遍历所有的用户,得到每一个用户对应的评分向量;
其中,所述SVD++公式为:
所述表示用户u对商品i的预测评分,所述μ表示评分矩阵中所有商品的实际评分的平均分;所述bu表示用户u的评分偏置向量,所述bi表示商品i的评分偏置向量,所述pu表示用户u的隐因子矩阵,所述qi表示商品i的隐因子矩阵;所述表示隐式反馈数据,所述N(u)表示用户u对商品i的隐式评分的项目集合,所述yj表示项目集合N(u)中第j项目的权重。
4.如权利要求3所述的商品的推荐方法,其特征在于,所述根据所述差值更新SVD++公式包括:
根据所述差值更新SVD++公式中的用户评分偏置向量bu、商品评分偏置向量bi、用户隐因子矩阵pu、商品隐因子矩阵qi以及项目集合N(u)中第j项目的权重yj;
其中,所述差值表示为eui,所述用户评分偏置向量bu更新为bu+γ·(eui-λ·bu);所述商品评分偏置向量bi更新为bi+γ·(eui-λ·bi);所述用户隐因子矩阵pu更新为pu+γ·(eui·qi-λ·pu);所述商品隐因子矩阵qi更新为所述隐式评分下的项目集合N(u)中第j项目的权重yj更新为所述γ为学习率,所述λ为拉格朗日公式中的系数。
5.如权利要求1至4任一项所述的商品的推荐方法,其特征在于,在每一次迭代求解过程中,通过spark处理引擎对多个用户进行分布式并行计算,得到每一个用户对应的评分向量。
6.一种商品的推荐装置,其特征在于,所述推荐装置包括:
获取模块,用于获取评分矩阵,所述评分矩阵包括多个用户对多个商品的实际评分,并在所述评分矩阵的空缺位置上填补随机数;
求解模块,用于针对每一个用户,根据所述评分矩阵和所述用户对应的隐式反馈数据,通过SVD++算法进行多次迭代求解,得到所述用户对应的评分向量,所述评分向量中包括所述用户对每一个商品的预测评分;
推荐模块,用于在向用户推荐商品时,根据所述用户对应的评分向量,选取预测评分最大的商品推荐给所述用户。
7.如权利要求6所述的商品的推荐装置,其特征在于,所述隐式反馈数据为用户对所述评分矩阵中的多个商品中的任意商品进行的没有明确意图的反馈信息。
8.如权利要求7所述的商品的推荐装置,其特征在于,所述求解模块包括:
获取单元,用于在一次迭代求解过程中,针对每一个用户u,获取所述用户u对应的隐式反馈数据;
第一计算单元,用于从所述评分矩阵中获取所述用户u对所述多个商品中任一商品i的实际评分,按照预设的SVD++公式计算所述用户u对所述商品i的预测评分;
第二计算单元,用于计算所述商品i的实际评分和预测评分之间的差值;
更新单元,用于根据所述差值更新SVD++公式,以更新后的SVD++公式计算所述用户u对下一个商品的预测评分,直至得到所述用户对所有商品的预测评分,获得所述用户对应的评分向量,遍历所有的用户,得到每一个用户对应的评分向量;
其中,所述SVD++公式为:
所述表示用户u对商品i的预测评分,所述μ表示评分矩阵中所有商品的实际评分的平均分;所述bu表示用户u的评分偏置向量,所述bi表示商品i的评分偏置向量,所述pu表示用户u的隐因子矩阵,所述qi表示商品i的隐因子矩阵;所述表示隐式反馈数据,所述N(u)表示用户u对商品i的隐式评分的项目集合,所述yj表示项目集合N(u)中第j项目的权重。
9.如权利要求8所述的商品的推荐装置,其特征在于,所述更新单元具体用于:
根据所述差值更新SVD++公式中的用户评分偏置向量bu、商品评分偏置向量bi、用户隐因子矩阵pu、商品隐因子矩阵qi以及项目集合N(u)中第j项目的权重yj;
其中,所述差值表示为eui,所述用户评分偏置向量bu更新为bu+γ·(eui-λ·bu);所述商品评分偏置向量bi更新为bi+γ·(eui-λ·bi);所述用户隐因子矩阵pu更新为pu+γ·(eui·qi-λ·pu);所述商品隐因子矩阵qi更新为所述隐式评分下的项目集合N(u)中第j项目的权重yj更新为所述γ为学习率,所述λ为拉格朗日公式中的系数。
10.如权利要求6至9任一项所述的商品的推荐装置,其特征在于,在每一次迭代求解过程中,通过spark处理引擎对多个用户进行分布式并行计算,得到每一个用户对应的评分向量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511005846.5A CN105653657A (zh) | 2015-12-25 | 2015-12-25 | 一种商品的推荐方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511005846.5A CN105653657A (zh) | 2015-12-25 | 2015-12-25 | 一种商品的推荐方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105653657A true CN105653657A (zh) | 2016-06-08 |
Family
ID=56478192
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511005846.5A Pending CN105653657A (zh) | 2015-12-25 | 2015-12-25 | 一种商品的推荐方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105653657A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106202377A (zh) * | 2016-07-08 | 2016-12-07 | 北京大学 | 一种基于随机梯度下降的在线协同排序方法 |
CN106897464A (zh) * | 2017-03-29 | 2017-06-27 | 广东工业大学 | 一种跨领域推荐方法及系统 |
CN106951528A (zh) * | 2017-03-21 | 2017-07-14 | 北京邮电大学 | 一种推荐信息确定方法及装置 |
CN107169830A (zh) * | 2017-05-15 | 2017-09-15 | 南京大学 | 一种基于聚类pu矩阵分解的个性化推荐方法 |
CN107967641A (zh) * | 2017-10-18 | 2018-04-27 | 美的智慧家居科技有限公司 | 商品推荐方法、装置及计算机可读存储介质 |
WO2018205853A1 (zh) * | 2017-05-10 | 2018-11-15 | 腾讯科技(深圳)有限公司 | 分布式计算系统、方法及存储介质 |
CN108876508A (zh) * | 2018-05-03 | 2018-11-23 | 上海海事大学 | 一种电商协同过滤推荐方法 |
CN108985899A (zh) * | 2018-07-13 | 2018-12-11 | 合肥工业大学 | 基于cnn-lfm模型的推荐方法、系统及存储介质 |
CN111028029A (zh) * | 2018-10-10 | 2020-04-17 | 深圳云天励飞技术有限公司 | 一种线下商品推荐方法、装置和电子设备 |
CN111402003A (zh) * | 2020-03-13 | 2020-07-10 | 第四范式(北京)技术有限公司 | 实现用户相关推荐的系统和方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103412948A (zh) * | 2013-08-27 | 2013-11-27 | 北京交通大学 | 基于聚类的协同过滤的商品推荐方法及系统 |
CN105095241A (zh) * | 2014-04-30 | 2015-11-25 | 华为技术有限公司 | 一种信息推荐方法、装置及系统 |
-
2015
- 2015-12-25 CN CN201511005846.5A patent/CN105653657A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103412948A (zh) * | 2013-08-27 | 2013-11-27 | 北京交通大学 | 基于聚类的协同过滤的商品推荐方法及系统 |
CN105095241A (zh) * | 2014-04-30 | 2015-11-25 | 华为技术有限公司 | 一种信息推荐方法、装置及系统 |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106202377A (zh) * | 2016-07-08 | 2016-12-07 | 北京大学 | 一种基于随机梯度下降的在线协同排序方法 |
CN106202377B (zh) * | 2016-07-08 | 2019-09-13 | 北京大学 | 一种基于随机梯度下降的在线协同排序方法 |
CN106951528A (zh) * | 2017-03-21 | 2017-07-14 | 北京邮电大学 | 一种推荐信息确定方法及装置 |
CN106951528B (zh) * | 2017-03-21 | 2019-11-08 | 北京邮电大学 | 一种推荐信息确定方法及装置 |
CN106897464A (zh) * | 2017-03-29 | 2017-06-27 | 广东工业大学 | 一种跨领域推荐方法及系统 |
WO2018205853A1 (zh) * | 2017-05-10 | 2018-11-15 | 腾讯科技(深圳)有限公司 | 分布式计算系统、方法及存储介质 |
CN108874529A (zh) * | 2017-05-10 | 2018-11-23 | 腾讯科技(深圳)有限公司 | 分布式计算系统、方法及存储介质 |
CN108874529B (zh) * | 2017-05-10 | 2022-05-13 | 腾讯科技(深圳)有限公司 | 分布式计算系统、方法及存储介质 |
CN107169830B (zh) * | 2017-05-15 | 2020-11-03 | 南京大学 | 一种基于聚类pu矩阵分解的个性化推荐方法 |
CN107169830A (zh) * | 2017-05-15 | 2017-09-15 | 南京大学 | 一种基于聚类pu矩阵分解的个性化推荐方法 |
CN107967641A (zh) * | 2017-10-18 | 2018-04-27 | 美的智慧家居科技有限公司 | 商品推荐方法、装置及计算机可读存储介质 |
CN108876508A (zh) * | 2018-05-03 | 2018-11-23 | 上海海事大学 | 一种电商协同过滤推荐方法 |
CN108985899A (zh) * | 2018-07-13 | 2018-12-11 | 合肥工业大学 | 基于cnn-lfm模型的推荐方法、系统及存储介质 |
CN108985899B (zh) * | 2018-07-13 | 2022-04-22 | 合肥工业大学 | 基于cnn-lfm模型的推荐方法、系统及存储介质 |
CN111028029A (zh) * | 2018-10-10 | 2020-04-17 | 深圳云天励飞技术有限公司 | 一种线下商品推荐方法、装置和电子设备 |
CN111028029B (zh) * | 2018-10-10 | 2023-09-01 | 深圳云天励飞技术有限公司 | 一种线下商品推荐方法、装置和电子设备 |
CN111402003A (zh) * | 2020-03-13 | 2020-07-10 | 第四范式(北京)技术有限公司 | 实现用户相关推荐的系统和方法 |
CN111402003B (zh) * | 2020-03-13 | 2023-06-13 | 第四范式(北京)技术有限公司 | 实现用户相关推荐的系统和方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105653657A (zh) | 一种商品的推荐方法及装置 | |
CN103164463B (zh) | 推荐标签的方法和装置 | |
Ciaurri et al. | Application of derivative-free methodologies to generally constrained oil production optimization problems | |
CN103902632B (zh) | 键值存储系统中构建文件系统的方法、装置及电子设备 | |
CN105095237B (zh) | 用于生成非关系数据库的模式的方法和设备 | |
CN104281664B (zh) | 分布式图计算系统数据切分方法和系统 | |
CN108090093A (zh) | 生成推荐结果的方法和装置 | |
CN106796578A (zh) | 知识自动化系统 | |
CN108388604A (zh) | 用户权限数据管理装置、方法及计算机可读存储介质 | |
CN109697641A (zh) | 计算商品相似度的方法和装置 | |
CN103810184A (zh) | 确定网站页面地址流转率的方法、优化方法及其装置 | |
EP4046087A1 (en) | Systems and methods for machine learning interpretability | |
Morales et al. | A modified genetic algorithm for horizontal well placement optimization in gas condensate reservoirs | |
CN104199836B (zh) | 一种基于子兴趣划分的标注用户模型建构方法 | |
Moreno et al. | EOR advisor system: a comprehensive approach to EOR selection | |
CN106682963A (zh) | 基于凸优化局部低秩矩阵近似的推荐系统数据补全方法 | |
CN104008204B (zh) | 一种动态的多维情境感知电影推荐系统及其实现方法 | |
CN103150667A (zh) | 一种基于本体结构的个性化推荐方法 | |
CN107797933A (zh) | 生成模拟报文的方法及装置 | |
Monyei et al. | Oil well characterization and artificial gas lift optimization using neural networks combined with genetic algorithm | |
CN102597988A (zh) | 基于状态方程的伪密度根的热力学过程控制 | |
CN106779240A (zh) | 民航市场宏观指数的预测方法及系统 | |
CN106407316A (zh) | 基于主题模型的软件问答推荐方法和装置 | |
US11403327B2 (en) | Mixed initiative feature engineering | |
CN105718535A (zh) | 一种在线评分方法及其系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination |