思考SGD未提升的两个问题

1. 思考两个问题

目录:

  1. 分析sgd为什么没有提升
  2. 对照英豪的文档,推论细节

1. 分析sgd为什么没有提升

下面将从两个方面来探讨

  1. 首先传统模型是有解释性的,那么可以从这方面挖掘一下为什么没有提升吗?
  2. 那么是否数据集有影响呢?

先说结论

  1. 矩阵分解解释性并不强,因此这条路不行
  2. 数据集可能有影响,但还未实验验证
  • 首先传统模型是有解释性的,那么可以从这方面挖掘一下为什么没有提升吗?

    参考文章,分别对应下面的 1 , 2 , 3 点:

    1. 推荐系统(6)—SVD和SVD++

    2. 基于矩阵分解的推荐算法

    3. 融合社交信息的矩阵分解推荐方法研究综述

  • 那么是否数据集有影响呢?
  1. 可以尝试其他数据集,如

    • FilmTrust 是一个基于信任关系的电影推荐网站,用户能够依据自身偏好对电影做出评分,同时构建单向信任关系
    • Ciao 数据集(http://www.jiliang.xyz/trust.html)由 Tang 等人于物品评论网站 Ciao 收集所得
    • Epinions 数据集(http:// www.trustlet.org/downloaded epinions.html)
    • Douban 数据集(https://www.cse.cuhk.edu.hk/irwin.king.new/pub/data/douban)
  2. 数据集中,用户们不同社交关系强度,具体验证方式参考:融合社交信息的矩阵分解推荐方法研究综述

  3. 数据集中,不同的用户可以被用来进一步提高推荐质量吗?

    • 需要进一步论证

2. 对照英豪的文档,推论细节

看了之后,我在想我之前得出来的结果是否有细节含在其中呢,那么下面就是我的一些想法。

先说结论:

添加相似度后,模型的泛化能力进一步提高,不容易过拟合。就是说长期收益增加了。

2.1 SGD的对比结果及总结想法

下面表格是对比结果,模型共两个:baseline 和 添加相似度的 SGD

  • 名词解释:
    • Iteration:迭代次数
    • train_mse:训练集训练时的 MSE
    • test_mse:测试集测试时的 MSE
原SGD Iteration train_mse test_mse 加用户相似度SGD Iteration train_mse test_mse train_mse 对比提升 test_mse对比提升
1 1.141784386 1.188415965 1 13.67562 14.20713 -1097.74% -1095.47%
10 0.917914525 1.011238497 10 6.573647 9.61891 -616.15% -851.20%
25 0.866157052 0.963646883 25 1.179691 1.99135 -36.20% -106.65%
50 0.838677125 0.943052707 50 0.891645 1.107708 -6.32% -17.46%
100 0.754480384 0.924777349 100 0.76197 0.948601 -0.99% -2.58%
200 0.402944841 0.917382603 200 0.514333 0.898999 -27.64% 2.00%

从表格中可以得到的信息是,在随着训练迭代次数的增加,添加相似度的 SGD 算法与原本未加相似度的 SGD 算法的差距一直再减少,并最终在迭代次数为 200 时,test_mse 的结果比未加的提升了。

我想的是,这结果表明添加相似度后,模型的泛化能力进一步提高,不容易过拟合。

你可能感兴趣的:(思考SGD未提升的两个问题)