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.一种基于用户项目评分的矩阵分解方法,其特征在于,包括:根据待分解的用户项目评分矩阵、用户因子矩阵与项目因子矩阵之间的分解关系,构建均方差损失函数;通过如下方式对均方差损失函数进行若干次迭代更新,直至迭代更新后的均方差损失函数满足预设迭代条件:针对所述用户因子矩阵和所述项目因子矩阵中的每个变量元素,根据当前已迭代次数,计算本次迭代中该变量元素对应的迭代步长,其中,计算出的迭代步长小于前一次迭代中该变量元素对应的迭代步长;根据各变量元素各自对应的迭代步长,对前一次迭代更新后的均方差损失函数进行变量元素更新;判断本次迭代更新后的均方差损失函数是否满足预设迭代条件,若否,则进行下一次迭代;若是,则结束迭代;将最后一次迭代中更新后的各变量元素的取值确定为所述用户因子矩阵和所述项目因子矩阵中各变量元素的分解优化取值。
【技术特征摘要】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。