基于深度随机游走的协同过滤推荐算法

2021-03-28 04:29刘靖凯
科学技术创新 2021年6期
关键词:余弦向量物品

刘靖凯

(广东工业大学,广东 广州510006)

推荐算法是一种根据用户兴趣,为用户推荐一系列其感兴趣的物品的算法。推荐算法分为召回和排序两个步骤,其中,召回步骤常用的算法有协同过滤算法、隐语义算法等。协同过滤算法利用所有用户的历史行为信息,特别是用户对物品的正反馈行为,计算出特定用户对物品的兴趣偏好,从而达到个性化推荐的目的。由于协同过滤算法具有鲁棒性强、计算复杂度低等特点,所以已经被广泛应用于各种实际的推荐场景之中。

常用的协同过滤算法有基于用户的协同过滤算法和基于物品的协同过滤算法,基于用户的协同过滤算法通过推荐与用户兴趣相近的其他用户感兴趣的物品,从而达到精确推荐的目的。最近的一些研究尝试将协同过滤算法和基于模型的推荐算法结合,来提高推荐算法的性能。为了保持模型的时效性,一些在线学习的模型通过学习新产生的用户行为数据来保持模型参数的质量。在线学习的推荐模型能够从持续更新的数据流中训练模型参数。常用的模型有增量式的协同过滤模型[1]和增量式的矩阵分解模型。

深度随机游走[2]是一种将图结构转化为向量表示的算法。算法采用无监督的深度学习方法[3],这一方法已广泛地运用于自然语言处理当中。深度随机游走算法可以学习到用户节点之间的社交关系,包括相邻用户节点的邻域信息和同一用户群体的成员关系。利用图结构来代替用户的历史行为信息矩阵,可以有效地表示不同用户群体的距离。利用向量来表示用户节点可以有效地解决图数据稀疏性的问题。

本文基于此背景提出了一种基于深度随机游走的协同过滤推荐算法(Collaborative Filtering Algorithm Based on Deepwalk,DW-CF),利用用户的历史行为,构建用户图结构,计算用户嵌入向量,计算各用户向量间的余弦相似度,从而计算用户的推荐列表,算法在实验中体现了其有效性。

1 基于深度随机游走的协同过滤推荐算法

1.1 问题定义

推荐算法利用用户的历史行为数据为用户推荐排序好的物品。在本文的实验中使用到公开数据集MovieLens-1M。其中包含用户(u1,u2,…,um)和物品(C1,C2,…,Cn)之间的交互信息。本文提出的推荐算法根据用户对物品的正反馈行为和用户之间的社交信息,预测每一个用户对物品的兴趣偏好得分ru,c,从而将预测得分最高的N 个物品推荐给该用户。传统的用户协同过滤算法通过计算任意两个用户的行为相似度来表示用户之间的兴趣相似度。而本文的深度随机游走算法是通过计算用户的表示向量,计算任意两个向量的余弦距离来表示用户之间的相似度,进而计算用户对物品的兴趣偏好。

1.2 深度随机游走算法

图1 深度随机游走算法流程

1.3 基于用户向量的协同过滤算法

基于用户向量的协同过滤算法是利用上文方法计算得到的用户向量,计算任意两个用户之间的余弦相似度,找到与该用户相似的用户,计算用户对各物品的兴趣得分,为用户推荐物品。与用户k 最相似的N 个用户L(uK)可以通过以下公式求得:

2 实验与结果分析

2.1 数据集

图2 基于用户向量的协同过滤算法流程

2.2 评价指标

本文采用召回率作为评价推荐算法质量的指标,其中Recall@N 表示给用户推荐的物品里,评分排名前N 的物品中,占测试集中所有中样本的比重,可以衡量推荐系统的查全率。

2.3 参数设置

在深度随机游走算法中,重复次数γ 为80,单次随机游走步长k 为40,SkipGram 模型中滑动窗口大小w 为10,重复训练次数为20,用户向量维度d 为128 维。

2.4 比较方法

为了验证本文提出算法的表现,我们将其与传统的用户协同过滤算法[5](User-CF)进行比较。用户协同过滤算法利用用户对物品的评分矩阵计算两个用户的余弦相似度,为用户推荐其未有过评分行为的物品。

2.5 比较结果

本文评估算法效果的指标为Recall@10,Recall@15 和Recall@20。实验结果如表1 所示。

表1 MovieLen 测试数据上的性能比较

从实验结果可以看出使用DW-CF 算法产生的用户向量可以有效度量任意两个用户的相似度,且度量的精度比传统的用户协同过滤算法更好。同时,随着召回列表规模的增加,DW-CF算法的优势越大,这说明兴趣相似的用户其在低维空间的余弦距离相近。

3 结论

DW-CF 算法可以有效地学习用户之间的隐向量表示。将用户图结构中产出的随机游走序列作为输入,我们的算法可以有效地学习出包含不同用户群体兴趣偏好的向量表示。将所得向量用于计算用户的推荐列表,可以有效地得到用户对各物品的兴趣偏好,这可以更好的提升推荐系统的准确性。然而,本文提出的算法只适用于静态的用户和物品的数据中,在实际的场景中,用户节点是处于不断变化当中的,如何归纳计算动态的用户向量,是此类推荐算法下一步研究的重点。

猜你喜欢
余弦向量物品
称物品
向量的分解
旋转变压器接线故障分析法的研究
聚焦“向量与三角”创新题
“双十一”,你抢到了想要的物品吗?
谁动了凡·高的物品
两个含余弦函数的三角母不等式及其推论
实施正、余弦函数代换破解一类代数问题
向量垂直在解析几何中的应用
分数阶余弦变换的卷积定理