
3.4 实验结果与分析
3.4.1 数据集
本章选用MovieLens数据集对提出的算法在Matlab中进行评估测试,该数据集包含943个用户对1682部电影连续7个月左右的评分数据,评分范围是1~5,1表示“很差”,5表示“很好”。整个数据集的稀疏等级为1-100 000/(943×1682)=93.7%。
MovieLens数据集提供5组随机划分的训练集和测试集,实验在这5组数据上分别进行,最终实验结果为这5次结果的算术平均值。
3.4.2 评价标准
本章采用平均绝对误差(Mean Absolute Error, MAE)衡量推荐的精确率,能更好地反映预测值误差的实际情况。设在训练集上得到用户的预测评分集合为{pu,1,pu,2,pu,3,…,pu,n},用户实际评分集合为{ru,1,ru,2,ru,3,…,ru,n},则平均绝对误差MAE定义如式(3-6)所示。

式中:N——测试集中用户评分的个数;
pu,i——用户u对第i个项目在训练集上的预测评分;
ru,i——用户u对第i个项目的实际评分。
MAE通过计算用户的预测评分和实际评分之间的偏差来度量算法预测的准确性。MAE值越小,则推荐精确度越高。
3.4.3 结果分析
1. 相似度比较
为了验证本书提出的算法与传统相似度算法在不同相似度公式中的推荐效果,将式(3-2)中的用户兴趣度权重函数引入改进Pearson相似度、改进余弦相似度和改进调整余弦相似度计算公式中实现3种改进相似度与传统相似度的MAE比较,如图3-2所示为3种改进相似度与传统相似度的MAE比较。

图3-2 3种改进相似度与传统相似度的MAE比较
分别使用这3种计算方式进行MAE对比,从图3-2中可以看出,不论选用何种相似度计算方式,在任意邻居数neighbor_num值下,3种改进的相似度计算方法都比原始的计算方法取得更低的MAE值,尤其是采用Pearson相似度计算相似度时MAE值最小,从而也验证了本书选用Pearson相似度方法作为相似度计算的依据;另外,改进后算法的MAE明显小于传统协同过滤推荐系统,说明基于时间的用户兴趣度权重和项目属性对推荐系统的影响比较大。
2. 平衡因子γ对MAE的影响
实验中选择最近邻居数neighbor_num=25,针对式(3-7),在其他参数一样的情况下,观察不同平衡因子γ值对推荐准确度的影响。如图3-3所示为平衡因子γ对MAE的影响。通过实验得知当γ=0.15时MAE值最小,此时不但考虑了项目属性还考虑了时间对相似度计算的影响。

图3-3 平衡因子γ对MAE的影响
3. 不同算法之间对比
实验中最近邻居数neighbor_num分别取5、10、15、20、25和30,根据实验(2)中设定最优平衡因子γ=0.15,本书提出的基于用户兴趣和项目属性协同过滤推荐算法(UIIP-CF)分别与传统基于项目的协同过滤推荐算法(ICF)、文献[9]中提出的改进算法(TDGS-CF)、文献[10]中提出的改进算法(WUCF)进行的MAE对比。如图3-4所示为4种算法的MAE对比图。

图3-4 4种算法的MAE对比图
由图3-4可以看出,改进算法的MAE与传统的基于项目的协同过滤推荐算法相比,MAE降低了10%,比TDGS-CF算法MAE降低了6%,比WUCF算法MAE降低了3%。由于MAE值越小则推荐精度越高,UIIP-CF算法的精确性比上述推荐算法都高,这也正说明了基于时间的用户兴趣权重和项目属性在推荐算法中起着比较关键的作用。