1. 思考两个问题
目录:
- 分析sgd为什么没有提升
- 对照英豪的文档,推论细节
1. 分析sgd为什么没有提升
下面将从两个方面来探讨
- 首先传统模型是有解释性的,那么可以从这方面挖掘一下为什么没有提升吗?
- 那么是否数据集有影响呢?
先说结论:
- 矩阵分解解释性并不强,因此这条路不行
- 数据集可能有影响,但还未实验验证
-
首先传统模型是有解释性的,那么可以从这方面挖掘一下为什么没有提升吗?
参考文章,分别对应下面的 1 , 2 , 3 点:
- 那么是否数据集有影响呢?
-
可以尝试其他数据集,如
- 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. 对照英豪的文档,推论细节
看了之后,我在想我之前得出来的结果是否有细节含在其中呢,那么下面就是我的一些想法。
先说结论:
添加相似度后,模型的泛化能力进一步提高,不容易过拟合。就是说长期收益增加了。
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 的结果比未加的提升了。
我想的是,这结果表明添加相似度后,模型的泛化能力进一步提高,不容易过拟合。
网友评论