机器学习算法实践:推荐系统的协同过滤理论及其应用
上QQ阅读APP看书,第一时间看更新

3.3 基于用户兴趣和项目属性的协同过滤推荐算法

3.3.1 基于时间的用户兴趣度权重

本章采用拟合的遗忘曲线对项目评分进行时间加权,离采样时间越近的评分赋予较大的权值,反之则赋予较小的权值,以此来模拟用户的兴趣爱好随着时间而不断变化。因此,可以根据遗忘曲线定义指数衰减函数表示用户兴趣的变化,基于时间的用户兴趣度权重函数如式(3-1)所示。

式中:tui——用户u对项目i的评分时间;

t0——目标用户的采样时间;

T——整个数据集的时间跨度(结束时间—开始时间)。

本章以Pearson相关相似度作为相似度计算公式,并将基于时间的用户兴趣度权重函数引入相似度计算公式中,基于用户兴趣度权重的Pearson相关相似度计算方法如式(3-2)所示。

式中:rc,i——用户c对项目i的评分;

rc,j——用户c对项目j的评分;

——项目i的平均评分;

——项目j的平均评分。

3.3.2 改进相似度计算

加入兴趣度权重能够有效地找出用户的喜好范围。为了更好地进行推荐服务,需要找出用户偏好的特征属性,避免把一个用户不喜欢的影片当成是用户喜好的影片进行推荐。在考虑时间效应的基础上计算出用户评分与项目属性之间的关系,发现用户对于项目中各个属性的喜好程度,结合基于时间的用户兴趣度权重和项目属性能够明确用户的兴趣偏好,准确有效地找出其邻居集合。

令项目属性的集合为l={l1l2,…,ld},其中d为类别属性个数。以Movielens数据集为例:数据集中的电影一共有18个类别属性,分别为{unknown, Action, Adventure,…, Western}。项目属性特征可以用一个n×d的项目属性矩阵Gn×d来计算,其中n为项目个数,gid为0时代表项目i不具有这个属性,gid为1时代表项目i具有该属性。项目的特征属性相似度计算方法如式(3-3)所示。

式中:il——项目i的属性集合;

jl——项目j的属性集合。

项目之间相似度不能单一通过用户对项目的评分来计算,还要考虑项目与项目之间的相关相似度,采用算术加权平均,综合考虑项目的特征属性相似度和评分相似度,获得更全面的相似度度量模型,融合的相似度计算方法如式(3-4)所示。

式中:γ——平衡因子用作协调两方面相似度度量的结果,0<γ<1。

γ在[0,1]中取一系列值,观察不同γ值对推荐准确度的影响,选择合适的γ值将两种相似度进行融合,提高推荐准确率。

3.3.3 加权预测评分

由相似度计算得到最近邻居集合后,考虑时间对预测值的影响,用户现在的行为应该和用户最近的行为关系更大。将基于时间的用户兴趣度权重wt加入到预测评分中,其计算方法如式(3-5)所示。

式中:sim(ij)——目标项目i与最近邻居项目j的相似度度量;

rc,j——用户c对项目j的评分;

——项目i的平均评分;

——项目j的平均评分。

为了有效计算出用户的当前兴趣,改进的预测评分用wt赋予评分矩阵中每个评分一个权重,即用户最近数据贡献度更大,占较大的权重,反之亦然。

3.3.4 算法步骤

在基于近邻协同过滤推荐算法的基础上,在计算相似度过程中加入基于时间的用户兴趣度权重函数,然后再与项目属性相似度进行融合,最后进行项目预测与推荐。基于用户兴趣和项目属性的协同过滤推荐算法流程如算法3-1所示。

算法3-1 基于用户兴趣和项目属性的协同过滤推荐算法