基于机器学习的推荐系统

2017-02-23 12:00周齐
电子技术与软件工程 2016年24期
关键词:推荐系统机器学习数据挖掘

在这个数据信息无处不在的时代,如何对这些数据进行获取并进行相应的分析成了众多人的研究的课题。本文针对这一现状,对机器学习相关的推荐系统做了一些简单的概述。通过对机器学习在推荐系统上用的一些技术和思想进行解析,让更多的人了解什么是大数据,什么是机器学习。最为重要的一点是让大家了解机器学习对我们的日常所产生的深远影响。

【关键词】机器学习 推荐系统 大数据 数据挖掘

1 引言

相比过去,数据存储不再是难题,但随着海量数据的产生,产生了大量数据的资源无法得到合理的利用。随着科技的发展,人们逐渐把目光转向了数据挖掘这个领域。各种数据挖掘技术被利用到现实生活中。机器学习技术在其中起了很大的作用,其中比较广为所知的就是AlphaGo与李世石的“世纪之战”,被誉为人机大战,最终以AlphaGo胜利告终,再一次向人们展示了机器学习的强大。在很多人眼里机器学习是个非常抽象的概念,本文将对其在推荐系统领域做一定的解析。

2 机器学习的过程

何为机器学习?通俗来说机器学习就是让机器跟人一样学习并总结“经验”。当然机器不能跟人一样去经历各种事情积累“经验”。而是通过已有的数据让机器去分析,总结其中的规律,并总结形成一套模型,应用到实际生活中去。

2.1 獲取数据

机器学习的第一步就是获取数据,没有数据的机器学习都是空谈。数据的获取相对于后面的步骤较为容易,因为数据无处不在。超市里有消费者的购买记录,行车记录仪上有车辆的行驶记录,电影院有影迷的观看记录等,这些数据信息是我们开始机器学习的前提。

2.2 清洗数据

我们获取的数据是无规则的,其中有很多对我们没有利用价值的冗余数据,还有可能会有影响到我们分析结果的错误信息。我们在进行具体的分析之前需要对这些信息进行预处理,以免会影响到分析结果的准确率。数据的预处理主要分为三个方面:距离度量、抽样、降维。

在协同过滤推荐系统中使用的KNN分类(k-NearestNeighbor)主要取决于距离度量方法。比较常用的距离度量方法有欧几里得距离、皮尔逊相关系数、Jaccard系数(针对二进制属性)等。抽样是数据挖掘从大数据集中选择相关数据子集的主要技术,其在最终的解释步骤也起了很重要的作用,最常采用的抽样方法是无取代抽样,当物品被选择时,物品被从整体中取走,但执行取代抽样也是允许的,也就是说物品即使被选择也无需从整体中去除。通常训练集和测试集比例为80/20。最后降维是为了去除一些非常稀疏且对结果集影响不大的点,降低维度,避免维度灾难,降低运算难度。

2.3 分析数据与建立模型

在整个机器学习的过程中,难度最大最为核心的就是分析数据。分析数据的方法有很多种,每一种在不同的实际应用有其不同的作用,要具体情况具体分析。这里将介绍几种在推荐系统中较为常用的数据分析方法:

最近邻算法(KNN):KNN通过存储训练记录并使用它们来预测未知样本的标签类别。这种分类器会存储所有的训练集,只有当新纪录与训练集完全匹配时才进行分类。相对于其它机器学习算法,KNN是最简单的,因为KNN无需建立一个显示的模型,被称为是一个懒学习者。尽管KNN方法简单直观,但它的结果准确,非常易于提升。

k-means算法:k-means算法是一个分块聚类算法,把获取的n个对象数据分割成k个不相关子集(k < n)。它与处理混合正态分布的最大期望算法很相似,因为它们都是试图找到数据中自然聚类的中心。它假设对象属性来自于空间向量,并且目标是使各个群组内部的均方误差总和最小。k-means算法一开始会随机选择k个中心点,所有物品都会被分配到它们最靠近的中心节点的类中。当物品新添加或者移除时,新聚类的中心节点需要更新,聚类的成员关系也需要更新,这样不断迭代,直到没有物品改变它们的聚类成员关系。最终的聚类对初始的中心点异常敏感,还可能存在空聚类。

人工神经网络(ANN):人工神经网络算法模拟生物网络,由一组内连接点和带权链组成,是一类模式匹配算法。通常用于解决分类和回归问题。ANN是机器学习的一个庞大的分支,有数百种不同的算法,深度学习就是其重要的组成部分之一。ANN最主要的优点就是能处理非线性的分类任务,通过并行处理,使得其能够在部分网络受损的情况下操作。但ANN很难对给定的问题提供理想的网络拓扑。当拓扑确定后,其表现水平就会位于分类错误率的下线。

贝叶斯分类器:贝叶斯分类器是基于概率定义和贝叶斯定理的一类算法,贝叶斯统计学派使用概率来代表从数据中学习到的关系的不确定性。其把每一个属性和类标签当作随机变量。给定一个带有N个属性的记录(A1,A2,A3,...,AN),目标是预测类Ck,方法是在给定数据P(Ck|A1,A2,...,AN)下,找到能够最大化该类后验概率的Ck的值。常见贝叶斯分类器算法有朴素贝叶斯算法、平均单依赖估计(AODE)以及贝叶斯网络(BBN)等。

2.4 测试模型

整个机器学习的最后一步就是测试模型,检测模型的准确率。这是衡量一个算法的优劣的重要步骤。测试的数据集可以从测试中随机选取或者从提前预留的测试集中获取。

3 机器学习在推荐系统领域存在的挑战

机器学习在推荐系统中同样有很广泛的应用,其中较为广泛的是采用三种方式:基于商品的推荐算法、基于用户的推荐算法以及混合推荐算法。在很多大型互联网网站比如Amazon、淘宝、京东等,都投入了很大的精力在推荐系统这一领域上,希望用户能够更加快速的找到自己想要的商品。

尽管机器学习在推荐系统领域的发展潜力很大,但也不得不面临一些问题。其中一个很棘手的问题就是随着时间的推移,用户的兴趣爱好也可能跟着变化,而我们获取的仅仅是用户过去的购买记录。当用户有了新的兴趣后,短时间很难去捕获到。这只是其中一个方面,对机器学习算法的研究还有很长的路要走,但我相信,随着科技的进步,这些都不是问题。

参考文献

[1]王志梅,杨帆.基于Hebbian一致性学习的P2P推荐算法[J].计算机研究与应用,2006,42(36):110-113.

[2]吴颜,沈洁,顾天竺等.协同过滤推荐系统中数据稀疏问题的解决[J].计算机应用研究,2007,24(06):94-97.

[3]Peter Harrington. Machine Learning in Action[M].北京:人民邮电出版社,2015.

[4]陈刚,刘发升.基于BP神经网络的数据挖掘方法[J].计算机与现代化,2006(10).

[5]王卫平,刘颖.基于客户行为序列的推荐算法[J].计算机系统应用,2007,17(05):35-38.

作者简介

周齐(1993-),男,安徽省安庆市人。研究生在读,软件工程专业。主要从事大数据挖掘领域的研究。

单位介绍

杭州师范大学 浙江省杭州市 311121

猜你喜欢
推荐系统机器学习数据挖掘
基于并行计算的大数据挖掘在电网中的应用
基于用户偏好的信任网络随机游走推荐模型
前缀字母为特征在维吾尔语文本情感分类中的研究
基于支持向量机的金融数据分析研究
一种基于Hadoop的大数据挖掘云服务及应用
基于GPGPU的离散数据挖掘研究