基于混合机器学习优化的协同过滤算法
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2 实验分析
2.1 数据集选择 本实验选择 MovieLens 数据集(ml-100k.zip)进行训练. MovieLens 是推荐系统领域常用的一个数据集,
在机器学习研究领域具有重要的地位. 数据集中, u.data 文件由 943 位用户对 1682 部电影的 10000 条评论组成, 每个用户至少评分 20 部电
由于实验的随机性, 我们分别对改进后的模型和传统使用余弦相似度、Jaccard 公式的模型, 使用同 样的参数进行 20 次训练再取平均值. 实验结果如图 2 所示. 在本实验中, 使用了混合机器学习分类的模型, 运行时间较传统计算分类更长, 各分类方法平均计算时间见表 1.
传统模型的时间复杂度为 O(n2m), 其中 n 表示用户人数, m 表示物品数量. 由于该集合数据量较小, 改进的模型在时间效率上略低于传统方法, 但是当用户数据越来越多时, 矩阵的稀疏性将会使得传统算 法的运行效率降低, 而改进模型则可以保持一个较为稳定的计算效率.
Abstract: Collaborative Filtering Algorithm is a heuristic recommendation algorithm widely used in various fields. However, the traditional collaborative filtering algorithm has the problems of cold start, data sparsity and low user classification accuracy. Taking the important classification model in the collaborative filtering algorithm as a penetration point, the collaborative filtering algorithm was improved. For classification algorithms, the support vector machine algorithm and the K nearest neighbor algorithm was used to take model fusion, a classification algorithm for collaborative filtering models was obtained, which substitutes for the classification algorithm in traditional collaborative filtering algorithm. The experimental results show that the proposed personalized recommendation algorithm model solves the problems of traditional collaborative filtering algorithm and plays an obvious optimization role in the recommendation accuracy of user preferences.
当用户信息加入系统时, 根据用户对物品的喜爱得到一个分类值 k, 然后加入用户类别 T 集合, 得到 一个用户对每一个类别的距离值 R | Ti k | , 阈值 D 由管理员设置, 并按照以下规则分类:
(1) 若存在 R 小于设定的阈值 D, 则选择 R 最小的分类作为该用户的类别. (2) 若所有 R 均大于阈值 D, 则在集合 T 中加入一个新的分类, 并将该用户插入. 阈值 D 越大, 分类精度越低, 效率越高; 阈值 D 越小, 分类精度越高, 效率越低. 综上所述, 改进的模 型使用 SVM 与 KNN 混合的分类模型代替用户相似度的计算, 使传统协同过滤算法的一些缺陷得到了局 部解决.
(湖南理工学院 信息科学与工程学院, 湖南 岳阳 414006)
摘 要: 协同过滤算法是一个在各领域广泛使用的启发式推荐算法, 但传统协同过滤算法存在冷启动、数据稀疏性、
用户分类精度低等问题. 以协同过滤算法中重要的分类模型为切入点, 对协同过滤算法进行改进. 在选取分类算法方面,
使用支持向量机算法与 K 最近邻算法进行模型融合, 得到一个适用于协同过滤模型的分类算法, 用其代替传统协同过滤算
Collaborative Filtering Algorithm Optimized Based on Hybrid Machine Learning
FAN Bo, LI Jintong, BAI Tian, XU Pengcheng
(School of Information Science and Engineering, Hunan Institute of Science and Technology, Yueyang 414006, China)
本实验在 Intel Core i7-8750H 2.20 GHz, GPU NVIDIA RTX2060 6G RAM, Linux-Centos8 上执行. 编程 语言及版本为 Python 3.8.1. 在 SVM 算法的选择上, 使用了 LIBSVM 算法[10] . 在数据验证上, 使用了五折 交叉验证法, 并设置了 KNN 算法和 SVM 算法的参数范围, 保证参数的有效性. 2.3 实验结果与分析
| S(a) | S(a)
S (b) | S(b) |
.
(2) 余弦相似度
ab
| S(a) S (b) | . | 可以得到用户之间的相似度. 但传统协同过滤算法存在一些缺陷, 如冷启动问题、数 据稀疏性问题等[6].
(1) 系统冷启动: 当用户量少、数据量少时, 信息不足, 推荐的精度较低. (2) 用户冷启动: 对于一个行为数据较少的新用户, 无法根据其有限的信息进行精准推荐. (3) 稀疏性: 随着数据的不断增多、系统规模的扩大, 系统的搜索空间将会线性扩充, 每一次搜索的 时间就会越来越长, 不得不通过降低精度的方法来减少搜索时间. 在对基于用户的协同过滤算法优化的探索中, 我们尝试使用机器学习中的分类算法作为用户分类的 方法, 以此提高协同过滤在复杂场景中的性能. 通过实验发现, 使用 K 最近邻算法(KNN)[7]和支持向量机 算法(SVM)[8,9]进行优化是有效的. KNN 是一种惰性的学习模型, 不需要进行训练, 每当有新样本加入的时候, 它将新样本与原样本集 进行比较, 并在其中寻找到最接近新样本的 k 个最近邻居. 该算法不需要训练, 准确性高, 很适合加入到 协同过滤算法中来. SVM 是一种经典的二分类模型, 本质是一种特征空间线性分类器, 通过使间隔最大化进行高效分类, 能够克服局部极小、过拟合等问题. SVM 算法特征空间的划分是最优的超平面, 它避免了从归纳到演绎的传 统过程, 简化了通常的分类和回归问题, 并具有良好的鲁棒性, 在各种分类问题中运用广泛. 同时, 因其超
10
湖南理工学院学报(自然科学版)
第 34 卷
传统的基于用户的协同过滤算法主要分为两个步骤: (1) 找到与目标用户兴趣相似的用户集合; (2) 找到该集合中用户喜欢的、同时并未了解过的物品推荐给目标用户. 在协同过滤算法中, 第一个步骤极为重要, 分类的效率将直接影响到模型对于用户喜好的推荐精度. 本文主要针对该步骤进行优化.
设推荐系统中有 n 个用户的集合U {U1 , U2 , U3 ,, Un } , m 个产品的集合 S {S1 , S2 , S3,, Sm }, 我 们使用基于 SVM 与 KNN 的多分类模型. 集合 S 由系统内已有的物品组成, 每个用户 Ui 对每一个物品 Sj 都存在一个喜好程度. 在本文中, 由于各用途中针对某物品的喜好程度计算方式不同, 我们采取随机打标 喜好度的方式进行实验测试.
法中的分类算法. 实验结果表明, 改进的个性化推荐算法模型能较好解决传统协同过滤算法存在的问题, 在对用户喜好的
推荐精度上有明显优化作用.
关键词: 机器学习; 协同过滤; 支持向量机; K 最近邻算法
中图分类号: TP311
文献标识码: A
文章编号: 1672-5298(2021)03-0009-04
第 34 卷 第 3 期 2021 年 9 月
湖南理工学院学报(自然科学版)
Journal of Hunan Institute of Science and Technology (Natural Sciences)
Vol.34 No.3 Sep. 2021
基于混合机器学习优化的协同过滤算法
范 波, 李金曈, 白 天, 许鹏程
图 1 协同过滤算法结构
传统的协同过滤算法对用户进行分类时, 通常使用 Jaccard 公式或余弦相似度计算两个用户之间的 相似度[5]. 设 ab 为用户 a 与 b 之间的相似度, S(a)、S(b)分别代表用户 a、b 喜欢的物品集合, 两个相似度 计算公式如下:
(1) Jaccard 公式
ab
1 混合机器学习的协同过滤算法模型
1.1 模型改进 基于用户的协同过滤算法主要基于“人以群分”的理念. 通过用户的各类行为信息, 来挖掘出用户的
喜好, 然后参照喜好相似的人的偏好来进行信息推荐[3], 其算法结构如图 1 所示.
收稿日期: 2021-04-12 基金项目: 湖南省大学生创新创业训练计划项目(湘教通[2020]191 号) 作者简介: 范 波, 男, 高级实验师. 主要研究方向: 工业物联网与智能化, 系统集成及优化技术 通信作者: 李金瞳, 男, 本科生. 主要研究方向: 推荐算法
影, 用户和电影均从序号 1 开始编号, 数据是随机排列的; er 文件由 u.data 中的用户的个人统计信息组 成, 信息已通过脱敏处理. 我们将 u.data 中的 rating(评分)当作用户对电影的喜好程度, 电影集合看作物品 集合, 根据 er 对用户分类并进行推荐. 2.2 实验环境和参数
Key words: machine learning; collaborative filtering; support vector machine; K nearest neighbor algorithm
机器学习的目的是从海量数据中找到一个规律, 并将模型得到的规律应用到同类数据中, 给出一个 目标结论. 这个思想与人们希望得到有价值信息的目的不谋而合, 于是大数据个性化推荐出现在大众视 野中. 大数据个性化推荐算法在 2012 年由数据科学家提出, 在 2016 年得到广泛应用, 成为数据科学工作 者的常用算法之一[1]. 大数据个性化推荐算法不仅使用户得到的信息质量明显提升, 同时也让商户的推荐 效率提高、成本降低. 协同过滤算法作为个性化推荐领域中的经典算法之一, 因其效率高、适用范围广、 易调整等特点, 长期位于主流算法之列[2]. 但传统的协同过滤算法存在冷启动、数据稀疏性等问题[3,4]. 为 了对传统协同过滤算法进行优化, 本文提出适用于协同过滤算法的混合机器学习分类模型, 并应用该模 型进行定性与定量分析, 得到一个优化模型.
第3期
范 波, 等: 基于混合机器学习优化的协同过滤算法
11
平面的特性, 可以组合多个二分类 SVM 来构造多分类模型, 从而实现对协同过滤算法中的用户进行多分类. 针对这些问题, 我们通过组合多个 SVM 二值分类器与 KNN 模型, 来替代相似度的计算, 将用户进行
多分类, 随后判断分类的结果误差是否在可接受范围内, 如不满足, 则将其单独定为一类进行划分. 这种 做法不再需要计算用户的相似度, 将用户的信息输入模型即可得到结果, 不需要进行多余的补全等操作, 仅需提供初期的数据集, 即可得到较为精确的推荐, 有效解决了传统方法存在的冷启动、稀疏性等问题. 同时, 由于使用了 KNN 算法, 在推荐的过程中, 模型也可以进行自我学习, 提升推荐的精度. 1.2 计算流程