推荐算法---矩阵分解

矩阵分解报告

1. 试验介绍

矩阵分解就是把原来的大矩阵,近似的分解成小矩阵的乘积,在实际推荐计算时不再使用大矩阵,而是使用分解得到的两个小矩阵。具体来说就是,假设用户物品的评分矩阵Rmn维,即一共有m个用户,n个物品。通过一套算法转化为两个矩阵PQ,矩阵P的维度是mk,矩阵Q的维度是nk。上述内容即: 

如下表所示,本试验采用5*4数据表格,每一行代表用户,每一列代表用户对该商品的评分(满分10分),其中“-”表示该用户没有对该商品进行评分。

Commodity-1

Commodity-2

Commodity-3

Commodity-4

User-1

-

10

5

7

User-2

6

2

6

4

User-3

-

7

9

10

User-4

4

5

-

8

User-5

9

-

5

4

再次使用大型电影评分矩阵数据集进行验证。

2. 算法介绍

2.1损失函数

损失函数使用原始评分矩阵R和重构评分矩阵R之间的误差的平方作为损失函数为了能够有较好的泛化能力,会在损失函数中加入正则项,以对参数进行约束,即:

eij2=Rij-Rij2+β2k=1K(P2+Q2)

最终,需要求解所有的非“-”项的损失之和的最小值:

minloss=Rij≠-eij2

对应关键代码:

推荐算法---矩阵分解_第1张图片

2.2使用梯度下降法获得修正的pq分量

求解损失函数的负梯度:

推荐算法---矩阵分解_第2张图片

 根据负梯度的方向更新变量:

推荐算法---矩阵分解_第3张图片

对应关键代码:

推荐算法---矩阵分解_第4张图片

3. 实验结果

如图1所示,经过5000步的训练loss呈现下降趋势,在500步左右已经开始收敛。如图2所示,R矩阵通过矩阵分解生成P矩阵和Q矩阵,根据生成的P矩阵和Q矩阵重新生成评价矩阵R_MF

推荐算法---矩阵分解_第5张图片

1 损失曲线

推荐算法---矩阵分解_第6张图片

2 运行结果

电影评分数据集:

推荐算法---矩阵分解_第7张图片

推荐算法---矩阵分解_第8张图片

具体资料请前往百度网盘自取:

链接:https://pan.baidu.com/s/1coFpKs_fJVUbrTQUQpq1cg 
提取码:bjx2 
--来自百度网盘超级会员V5的分享

你可能感兴趣的:(论文阅读,推荐算法,矩阵,算法,矩阵分解)