本节书摘来自华章计算机《大数据架构和算法实现之路:电商系统的技术实战》一书中的第1章,第1.1节,作者 黄 申,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
第1章
方案设计和技术选型:分类
听完大宝关于第一点的描述,小明很肯定地说:“你们的商家应该是需要这样的一个功能:在他们发布商品的时候,系统会自动地为其推荐合适的商品分类,其界面示意图如图1-1所示。如果商家希望出售一台苹果的Mac Pro笔记本电脑,输入‘MacBook Pro’后,系统能够自动为其提示最为相关的三个分类‘笔记本电脑’、‘笔记本配件’和‘其他数码’。这是由后台的分类算法来实现的,如果该算法足够聪明,那么它推荐的第一个分类就应该是正确的,商家只需要点击选择即可。这样,既方便了商家的商品发布,又避免了粗心大意而导致的错误分类。而且,对于少数企图违规操作的商家,如果他们选择了和系统默认推荐相差甚远的分类选项,其行为也会被系统记录在案,然后定期生成报表,提交给运营部门进行核查。如此一来,人们就不用在纷繁复杂的类目中痛苦摸索,工作的效率也会大幅提升。”
“没错,这应该是商家愿意使用的工具,如果真能实现那就太棒了。不过,你刚刚提到的分类算法是什么?”
“分类,是一个典型的监督式机器学习方法”。
“哦,什么是机器学习?什么是监督式的学习?”
“现在,我们从头来讲,然后逐步定位这里的技术方案和选型。”
1.1 分类的基本概念
好莱坞著名的电影系列《终结者》想必大家都耳熟能详了,其中主角之一“天网”让人印象深刻。之所以难忘,是因为它并非人类,而是20世纪后期人们以计算机为基础创建的人工智能防御系统,最初是出于军事目的而研发的,后来自我意识觉醒,视全人类为威胁,发动了审判日。当然,这一切都是剧情里的虚构场景。那么现实生活中,机器真的可以自我学习、超越人类吗?最近大火的谷歌人工智能杰作Alpha Go,及其相关的机器深度学习,让人们再次开始审视这类问题。虽然目前尚无证据表明现实中的机器能像“天网”一样自我思考,但是机器确实能在某些课题上、按照人们设定的模式进行一定程度的“学习”,这正是机器学习(Machine Learning)所关注的。机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习在多个领域已经有了十分广泛的应用,例如,数据挖掘、计算机视觉、自然语言处理、生物特征识别、医学诊断等。
任何机器学习的任务大体上都可以分为数据的表示(或特征工程)、预处理、学习算法,以及评估等几个步骤。《大数据架构商业之路》一书的6.1节和6.2节,已经详细介绍了数据的表示和预处理。本篇将快速重温几种主流的机器学习方式和算法,然后重点阐述其实践过程。这里的算法包括监督式学习中的分类(classif?ication/categorization)和线性回归(linear regression),非监督式学习中的聚类(clustering)。对于刚刚讨论的第一个业务需求,我们将运用分类技术。而对于小丽提出的第2个和第3个需求,我们将利用这些机会分别学习聚类和线性回归,具体将在稍后的第2章和第3章分别探讨。
监督式学习(Supervised Learning),是指通过训练资料学习并建立一个模型,然后依此模型推测新的实例。训练资料是由输入数据对象和预期输出组成的。模型的输出可以是一个离散的标签,也可以是一个连续的值,分别称为分类问题和线性回归分析。分类技术旨在找出描述和区分数据类的模型,以便能够使用模型预测分类信息未知的数据对象,告诉人们它应该属于哪个分类。模型的生成是基于训练数据集的分析,一般分为启发式规则、决策树、数学公式和神经网络。举个例子,我们为计算机系统展示大量的水果,然后告诉它哪些是苹果,哪些是甜橙,通过这些样本和我们设定的建模方法,计算机学习并建立模型,最终拥有判断新数据的能力。
如果你觉得这样说还是过于抽象,那么让我们继续采用水果的案例,生动地描述一下“分类”问题。假想这样的场景:将1000颗水果放入一个黑箱中,并事先告诉一位果农,黑箱里只可能有苹果、甜橙和西瓜三种水果,没有其他种类。然后每次随机摸出一颗,让果农判断它是三类中的哪一类。这就是最基本的分类问题,只提供有限的选项,而减少了潜在的复杂性和可能性。不过问题在于,计算机作为机器是不能完成人类所有的思维和决策的。分类算法试图让计算机在特定的条件下,模仿人的决策,高效率地进行分类。研究人员发现,在有限的范围内做出单一选择时,这种基于机器的方法是可行的。如果输入的是一组特征值,那么,输出的就一定是确定的选项之一。
“大宝,计算机的自动分类有很多应用场景,远不止水果划分这么简单,比如你们目前的这个需求:将商品挂载到合适的产品类目。当然还有邮件归类、垃圾短信识别、将顾客按兴趣分组等,这些都可以应用分类技术。”