一种基于用户项目评分的矩阵分解方法和装置制造方法及图纸

技术编号:21184795 阅读:27 留言:0更新日期:2019-05-22 15:24
本发明专利技术实施例提供一种基于用户项目评分的矩阵分解方法和装置。所述方法包括:根据待分解的用户项目评分矩阵、用户因子矩阵与项目因子矩阵之间的分解关系,构建均方差损失函数;对均方差损失函数进行若干次迭代更新,直至迭代更新后的均方差损失函数满足预设迭代条件,其中,不同的迭代过程中每个变量元素所对应的迭代步长随着迭代次数的不同而动态变化;将最后一次迭代中更新后的各变量元素的取值确定为用户因子矩阵和项目因子矩阵中各变量元素的分解优化取值。所述装置用于执行上述方法。本发明专利技术实施例提供的方法和装置,提高分解速度的同时,提高分解后的用户因子矩阵、项目因子矩阵的准确度。

A Matrix Decomposition Method and Device Based on User Item Scoring

The embodiment of the present invention provides a matrix decomposition method and device based on user item score. The method includes: building the mean square deviation loss function according to the decomposition relationship between the user item score matrix, the user factor matrix and the item factor matrix to be decomposed; renewing the mean square deviation loss function several times until the updated mean square deviation loss function satisfies the preset iteration conditions, in which each variable element corresponds to the different iteration process. The iteration step size varies with the number of iterations. The updated values of the variables in the last iteration are determined as the decomposition optimization values of the variables in the user factor matrix and the item factor matrix. The device is used to perform the above method. The method and device provided by the embodiment of the present invention can improve the decomposition speed and the accuracy of the user factor matrix and the item factor matrix after decomposition.

【技术实现步骤摘要】
一种基于用户项目评分的矩阵分解方法和装置
本专利技术实施例涉及数据处理领域,尤其涉及一种基于用户项目评分的矩阵分解方法和装置。
技术介绍
隐因子矩阵分解算法为把一个用户项目矩阵(通常是高维稀疏矩阵,即矩阵中很多元素是缺失未知的)分解为两个矩阵,一个用户因子矩阵和一个项目因子矩阵,并且分解后的两个矩阵一开始是随机的进行赋值,然后根据用户项目矩阵的值(即实际值)与相应的分解后两个矩阵乘积的值(即预测值)构造损失函数。为了使预测值尽可能贴近实际值,需要使损失函数尽可能地小。目前,现有可以采用随机梯度下降法来求损失函数的极小值,并通过随机梯度下降法来优化更新用户因子矩阵和项目因子矩阵中的各元素的值。当满足一定条件使得迭代终止时,视为训练完毕,此时就可以用训练完成后的用户因子矩阵和项目因子矩阵做内积去预测相应的用户项目矩阵中空缺的值。然而,现有隐因子矩阵分解算法中由于让用户因子矩阵和项目因子矩阵中的变量元素沿着损失函数的负梯度的方向按照相同的学习速率(步长)移动,会导致迭代多次才能接近极小值,分解速度慢;或者导致错过极小值点,无法获得准确的分解结果。
技术实现思路
针对现有技术中的缺陷,本专利技术实施例提供一种基于用户项目评分的矩阵分解方法和装置,提高了分解准确度和分解速度。一方面,本专利技术实施例提供一种基于用户项目评分的矩阵分解方法,包括:根据待分解的用户项目评分矩阵、用户因子矩阵与项目因子矩阵之间的分解关系,构建均方差损失函数;通过如下方式对均方差损失函数进行若干次迭代更新,直至迭代更新后的均方差损失函数满足预设迭代条件:针对所述用户因子矩阵和所述项目因子矩阵中的每个变量元素,根据当前已迭代次数,计算本次迭代中该变量元素对应的迭代步长,其中,计算出的迭代步长小于前一次迭代中该变量元素对应的迭代步长;根据各变量元素各自对应的迭代步长,对前一次迭代更新后的均方差损失函数进行变量元素更新;判断本次迭代更新后的均方差损失函数是否满足预设迭代条件,若否,则进行下一次迭代;若是,则结束迭代;将最后一次迭代中更新后的各变量元素的取值确定为所述用户因子矩阵和所述项目因子矩阵中各变量元素的分解优化取值。另一方面,本专利技术实施例提供一种基于用户项目评分的矩阵分解装置,包括:构造模块,用于根据待分解的用户项目评分矩阵、用户因子矩阵与项目因子矩阵之间的分解关系,构建均方差损失函数;迭代模块,用于通过如下方式对均方差损失函数进行若干次迭代更新,直至迭代更新后的均方差损失函数满足预设迭代条件:针对所述用户因子矩阵和所述项目因子矩阵中的每个变量元素,根据当前已迭代次数,计算本次迭代中该变量元素对应的迭代步长,其中,计算出的迭代步长小于前一次迭代中该变量元素对应的迭代步长;根据各变量元素各自对应的迭代步长,对前一次迭代更新后的均方差损失函数进行变量元素更新;判断本次迭代更新后的均方差损失函数是否满足预设迭代条件,若否,则进行下一次迭代;若是,则结束迭代,并将本次迭代中更新后的各变量元素的取值输出;分解模块,用于将所述迭代模块输出的各变量元素的取值确定为所述用户因子矩阵和所述项目因子矩阵中各变量元素的分解优化取值。又一方面,本专利技术实施例提供一种电子设备,包括处理器、存储器和总线,其中:所述处理器,所述存储器通过总线完成相互间的通信;所述处理器可以调用存储器中的计算机程序,以执行上述方法的步骤。再一方面,本专利技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。本专利技术实施例提供的基于用户项目评分的矩阵分解方法和装置,通过根据待分解的用户项目评分矩阵、用户因子矩阵与项目因子矩阵之间的分解关系,构建均方差损失函数;对均方差损失函数进行若干次迭代更新,直至迭代更新后的均方差损失函数满足预设迭代条件,其中,不同的迭代过程中每个变量元素所对应的迭代步长随着已迭代次数的不同而动态变化;将最后一次迭代中更新后的各变量元素的取值确定为用户因子矩阵和项目因子矩阵中各变量元素的分解优化取值,提高分解速度的同时,提高分解后的用户因子矩阵、项目因子矩阵的准确度。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1示出了根据本专利技术一个实施例的基于用户项目评分的矩阵分解方法的示例性流程图;图2示出了根据本专利技术一个实施例的基于用户项目评分的矩阵分解装置的结构示意图;图3示出了根据本专利技术一个实施例的电子设备的实体结构示意图。具体实施方式以下将结合附图对本专利技术的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施例,都属于本专利技术所保护的范围。本申请使用的“模块”、“装置”等术语旨在包括与计算机相关的实体,例如但不限于硬件、固件、软硬件组合、软件或者执行中的软件。例如,模块可以是,但并不仅限于:处理器上运行的进程、处理器、对象、可执行程序、执行的线程、程序和/或计算机。举例来说,计算设备上运行的应用程序和此计算设备都可以是模块。一个或多个模块可以位于执行中的一个进程和/或线程内,一个模块也可以位于一台计算机上和/或分布于两台或更多台计算机之间。下面结合附图详细说明本专利技术的技术方案。参考图1,其示出了根据本专利技术一个实施例的基于用户项目评分的矩阵分解方法的示例性流程图。如图1所示,本专利技术实施例提供的基于用户项目评分的矩阵分解方法,可以包括如下步骤:S110:根据待分解的用户项目评分矩阵、用户因子矩阵与项目因子矩阵之间的分解关系,构建均方差损失函数。本专利技术实施例中,待分解的用户项目评分矩阵是基于若干个已知的用户项目评分所构造的;用户因子矩阵和项目因子矩阵中的各变量元素具有初始的赋值。其中,用户项目评分矩阵R、用户因子矩阵U与项目因子矩阵V之间的分解关系具体为:R≈UTV。本专利技术实施例中,用户项目评分指的是用户对项目的评分。项目可以具体为产品或服务,比如,音乐、视频、阅读、动漫、游戏等各类APP(应用)。实际应用中,对于若干个已知的用户项目评分,可以首先进行标准化处理,使得标准化处理后的用户项目评分处于0-1之间。接着,基于标准化处理后的用户项目评分,构造待分解的用户项目评分矩阵。考虑实际应用中无法获取用户对所有项目的实际评分,因此,构造的用户项目评分矩阵为稀疏矩阵,即用户项目评分矩阵中包括已知的用户项目评分和未知的用户项目评分。针对用户项目评分矩阵,构造对应的两个分解矩阵:用户因子矩阵、项目因子矩阵;并对用户因子矩阵和项目因子矩阵中各变量元素进行初始赋值。可选地,在用户因子矩阵和项目因子矩阵的构造过程中,对用户因子矩阵和项目因子矩阵中各变量元素进行初始赋值时采用随机赋值的方式。本专利技术实施例中,用户因子矩阵中的变量元素(本实施例中可称为用户因子变量)的数量为隐因子的数量与用户的数量的乘积;用户因子变量用以表示用户与隐因子之间的关联度。相应地,项目因子矩阵中的变量元素(本实施例中可称为项目因子变量)的数量本文档来自技高网...

【技术保护点】
1.一种基于用户项目评分的矩阵分解方法,其特征在于,包括:根据待分解的用户项目评分矩阵、用户因子矩阵与项目因子矩阵之间的分解关系,构建均方差损失函数;通过如下方式对均方差损失函数进行若干次迭代更新,直至迭代更新后的均方差损失函数满足预设迭代条件:针对所述用户因子矩阵和所述项目因子矩阵中的每个变量元素,根据当前已迭代次数,计算本次迭代中该变量元素对应的迭代步长,其中,计算出的迭代步长小于前一次迭代中该变量元素对应的迭代步长;根据各变量元素各自对应的迭代步长,对前一次迭代更新后的均方差损失函数进行变量元素更新;判断本次迭代更新后的均方差损失函数是否满足预设迭代条件,若否,则进行下一次迭代;若是,则结束迭代;将最后一次迭代中更新后的各变量元素的取值确定为所述用户因子矩阵和所述项目因子矩阵中各变量元素的分解优化取值。

【技术特征摘要】
1.一种基于用户项目评分的矩阵分解方法,其特征在于,包括:根据待分解的用户项目评分矩阵、用户因子矩阵与项目因子矩阵之间的分解关系,构建均方差损失函数;通过如下方式对均方差损失函数进行若干次迭代更新,直至迭代更新后的均方差损失函数满足预设迭代条件:针对所述用户因子矩阵和所述项目因子矩阵中的每个变量元素,根据当前已迭代次数,计算本次迭代中该变量元素对应的迭代步长,其中,计算出的迭代步长小于前一次迭代中该变量元素对应的迭代步长;根据各变量元素各自对应的迭代步长,对前一次迭代更新后的均方差损失函数进行变量元素更新;判断本次迭代更新后的均方差损失函数是否满足预设迭代条件,若否,则进行下一次迭代;若是,则结束迭代;将最后一次迭代中更新后的各变量元素的取值确定为所述用户因子矩阵和所述项目因子矩阵中各变量元素的分解优化取值。2.根据权利要求1所述的方法,其特征在于,所述预设迭代条件包括如下任一一项:所述均方差损失函数达到极小值、所述均方差损失函数达到预设函数阈值、所述均方差损失函数的迭代次数等于预设次数阈值;其中,所述预设函数阈值是根据所述极小值预先设定。3.根据权利要求1所述的方法,其特征在于,所述针对所述用户因子矩阵和所述项目因子矩阵中的每个变量元素,根据当前已迭代次数,计算本次迭代中该变量元素对应的迭代步长,包括:针对每个变量元素w,根据如下公式,计算第I+1次迭代中该变量元素w对应的迭代步长γw:其中,I表示当前已迭代次数,I取值为大于或等于0的整数;gwi表示第i次迭代更新后的均方差损失函数在变量元素w上的梯度值,i取值为[0,I]的整数;γ表示预设的初始迭代步长,gw0=1。4.根据权利要求1所述的方法,其特征在于,所述根据各变量元素各自对应的迭代步长,对前一次迭代更新后的均方差损失函数进行变量元素更新,包括:针对每个变量元素,从所述用户项目评分矩阵中已知的用户项目评分中随机选取一个或多个与该变量元素关联的评分作为该变量元素在本次迭代中对应的样本用户项目评分;针对每个变量元素,根据该变量元素在本次迭代中对应的样本用户项目评分、前一次迭代中更新后的各变量元素取值,计算前一次迭代后所对应的均方差损失函数在该变量元素上的负梯度值;根据各变量元素各自对应的迭代步长和所述前一次迭代更新后的均方差损失函数在各变量元素上的负梯度值,对前一次迭代更新后的均方差损失函数进行变量元素更新。5.根据权利要求4所述的方法,其特征在于,所述对前一次迭代更新后的均方差...

【专利技术属性】
技术研发人员:李俊杰何怡
申请(专利权)人:中国移动通信集团上海有限公司中国移动通信集团公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1