一文带你了解算法背后的基本原理 | 推荐收藏
众所周知,大数据平台只是提供了数据获取、存储、计算、应用的技术方案,真正挖掘这些数据之间的关系让数据发挥价值的是各种机器学习算法。
如今,算法已经成为许多数字平台的核心资产。许多数字平台会追踪用户的喜好和点击的内容,将这些用户偏好集中起来之后,向同样具有这类偏好特征的用户做出所谓的“个性化定制”推送。
例如,淘宝、头条、抖音背后其实都有智能推荐算法,这些算法不断分析计算我们的购物偏好、浏览习惯,然后为我们推荐可能喜欢的商品、文章、短视频等等。
今天小亿就来带着大家彻底的了解什么是算法?背后的基本原理是怎样的?除了应用在智能推荐当中,还可以应用在哪些其他领域?
一、什么是算法?
这里的算法指的是机器学习算法,即计算机模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的过程。当然,算法需要以数据结构为基础。
换句话说,机器学习算法在大数据的基础上确立算法,通过不断优化算法,提升处理数据的能力。而算法优化的过程,则是不断犯有益的错误的过程,即以明确、简单又有效的新算法淘汰和过滤旧算法。
与此同时,算法也可以理解为为了解决某个问题的固定化计算方法与步骤,具体拆解为以下几个方面:
(1)目的:为了解决某个/某类问题,需要在这之前了解到背后的业务背景、关联场景;
(2)方法:通过计算来实现,也就意味着需要具备具体的、可量化的信息输入,且可计算、而非不可执行的概念体;
(3)结论:是否能够解决这个问题,效果如何,最终必须得有一个产出物。在算法之外,还有几层扩展;
(4)决策:根据一个或者多个结论进行判断,这个过程是不是符合预期,如何调整优化,是否可直接应用于业务;
(5)应用拓展:除了解决最初的那个问题外,还有哪些同质类型的问题也可以得到解决,也就是场景的拓展。
二、机器学习的分类监督学习和无监督学习
前面我们提到了机器学习,机器学习主要分为:监督学习和无监督学习。而要掌握机器学习,主要就是学习解决这两类问题的基本思路,主要是以下三步:
①把现实场景中的问题抽象成相应的数学模型,并知道在这个抽象过程中,数据模型有怎样的假设;
②利用数据工具,对相应的数学模型参数进行求解;
③根据实际问题出评估方案,对应用的教学模型进行评估,看是否解决了实际问题。
这三步就是我们学习监督学习和无监督学习,乃至所有的机器学习算法核心思路。机器学习中不同模型、不同算法都是围绕这三步来展开的。
1.监督学习
监督学习是指通过外部的响应变量来指导模型学习我们关心的任务,并达到我们需要的目的。这也就是“监督学习”中“监督”两字的由来。也就是说,监督学习的最终目标,是使模型可以更准确地对我们所需要的响应变量建模。
比如,我们希望通过一系列特征来预测某个地区的房屋销售价格,希望预测电影的票房,或者希望预测用户可能购买的商品。这里的“销售价格”、“电影票房”以及“可能购买的商品”都是监督学习中的响应变量。
2.无监督学习
而通常情况下,无监督学习并没有明显的响应变量。无监督学习的核心,往往是希望发现数据内部的潜在结构和规律,为我们进行下一步决策提供参考。
典型的无监督学习就是希望能够利用数据特征来把数据分组,机器学习语境下叫做“聚类”。不同的应用场景,聚类又有很多变种,比如认为某个数据点属于一个类别,或者认为某个数据点同时属于好几个类型,只是属于每个类型的概率不同等等。
除此以外,无监督学习的另外一个作用是为监督学习提供更加有力的特征。通常情况下,无监督学习能够挖掘出数据内部的结构,而这些结构可能会比我们提供的数据特征更能抓住数据的本质联系,因为监督学习中往往也需要无监督学习来进行辅助,这时会有另外一个名字叫“半监督学习”
三、算法背后的基本原理是怎样的?
1.监督学习的基本原理
监督学习的基础是三类模型:线性模型、决策树模型、神经网络模型。掌握这三类模型就掌握了监督学习的主干,利用监督学习来解决的问题,占所有机器学习或者人工智能任务的绝大多数。这些监督学习模型又可以细分为主要处理两类问题:分类问题和回归问题。
分类问题的核心是如何利用模型来判别一个数据点的类别,这个类别一般是离散的,比如两类或者多类。回归问题的核心则是利用模型来输出一个预测的数值,这个数值一般是一个实数,是连续的。这里我们以线性回归模型为例来进行说明,线索回归模型是所有回归模型中最简单也是最核心的一个模型。
(1)第一步:把现实场景中的问题抽象成相应的数学模型
例如,线索回归认为现实场景中的响应变量(比如房价、票房等)和数据特征之间存在线性关系,而线性回归的数学假设有两个部分:
①响应变量的预测值是数据特征的线性变换。这里的参数是一组系数。而预测值是系数和数据特征的线性组合;
②响应变量的预测值和真实值之间有一个误差。这个误差服从一个正态(高斯)分布,分布的期望值是 0,方差是σ的平方。
(2)第二步:对相应的数学模型参数进行求解
对于同一个模型而言,可以用不同的算法来求解模型的参数,这是机器学习的一个核心特点。比如在教科书中一般会介绍线性回归的解析解。线性回归的解析解虽然简单优美,但是在现实计算中一般不直接采用,因为需要对矩阵进行逆运算,而矩阵求逆运算量很大。解析解主要用于各种理论分析中。
线性回归的参数还可以用数值计算的办法,比如梯度下降的方法求得近似结果。然而梯度下降需要对所有的数据点进行扫描。当数据量很多的时候,梯度下降会变得很慢。于是随机梯度下降算法就应运而生。随机梯度下降并不需要对所有的数据点扫描后才对参数进行更新,而可以对一部分数据,有时甚至是一个数据点进行更新。
(3)第三步:评估线性回归模型
由于线性回归是对问题的响应变量进行一个实数预测。那么,最简单的评估方式就是看这个预测值和真实值之间的绝对误差。如果对于每一个数据点我们都可以计算这么一个误差,那么对于所有的数据点而言,我们就可以计算一个平均误差。
2.无监督学习的基本原理
在前文中,我们提到无监督学习的主要目的是挖掘出数据内在的联系。但这里需要注意,不同的无监督学习方法对数据内部的结构有不同的假设,因此无监督学习不同模型之间常常有很大的差别。在众多无监督学习模型中,聚类模型无疑是重要的代表,而聚类模型中也有很多种类,这里我们以最常见的K均值算法(K-means)来进行说明:
(1)第一步:把现实场景中的问题抽象成相应的数学模型
K均值算法认为数据由K个类别组成。每个类别内部的数据相距比较近,而距离所有其他类别中的数据都比较遥远。因此在K均值算法中,数据到一个类别的距离被定义为到这个类别的平均点的距离。这也是K均值名字的由来。而距离函数则采用了欧几里得距离,来衡量两个数据点之间的远近。
(2)第二步:对相应的数学模型参数进行求解
直接求解K均值的目标函数是一个NP难的问题。于是大多数现有的方法都是用迭代的贪心算法来求解。
(3)第三步:评估线性回归模型
一直以来,对聚类问题、对无监督学习任务的评估都是机器学习的一个难点。无监督学习没有一个真正的目标,或者是我们之前提到的响应变量,因此无法真正客观地衡量模型或者算法的好坏。
对于K均值算法而言,比较简单的衡量指标就是,看所有类别内部的数据点的平均距离和类别两两之间的所有点的平均距离的大小。如果聚类成功,则类别内部的数据点会相距较近,而类别两两之间的所有点的平均距离则比较远。
四、哪些场景下需要用到机器学习算法?
1.供需匹配的问题
在过去的市场经济环境中,无论是B2C、B2B还是其他,我们去建立用户画像做精准营销、做好推荐系统实现千人千面、对用户进行分层分类打标签、给用户的评价信息分情绪好坏等等,都是为了更好的去做供需管理,例如网约车就是双边的供需管理。
供需管理,即谁可以找谁消费到一件相对比较合适的东西(内容、物品、信息、线索、商机),在这个过程中还可能需要通过哪几个谁才能打通彼此之间的联系。早期数据不大,通过人工的方式能解决,但如今数据量巨大的供需平台就需要利用算法来进行更高效的匹配。供需匹配过程中涉及的算法,基本都是有监督算法,不论是人群分类、商品召回、需求匹配,都可以通过过去的经验进行一个初步标签建立,然后逐步去对划分的准确性进行校验和优化。
与此同时,在供需的某些场景过程中会并存很多涉及物联网的知识,譬如物流调度、配送匹配、路线优化、仓库建设等等供应链优化方面的事情,这些场景下除了算法外,还需要去了解下运筹学的内容。
2.异常识别和诊断
异常检测在金融领域应用比较广泛,主要的场景就是风控。如图所示:
金融领域涉及的风控几乎都是GBDT / XGBT+LR,因为在金融行业有一个非常特别的属性:监管。对于算法结果必须有非常好的模型解释,对于LR逻辑回归模型来说,这是天然的优势,特征可解释,特征工程清晰,每个特征的贡献度、相关程度也可以被统计出来。换了其他深度学习的模型,从最终的模型效果上来看,roc/auc/ks的表现没差,但是解释性极差,也就造成了很多应用上的壁垒。
3.排序
排序之所以单拎出来,它的应用场景其实有一定的局限性,但是怎么做好排序,客观、合理,却是一个值得去考究的事情。常见的排序应用场景有热点榜单、搜索排序、推荐排序等。
知乎的问题回答排序是一个经典的排序应用场景,既要保证优质高赞内容可以排在前面被用户浏览,又要保证新增内容有一定曝光量,同时需要综合考虑话题热度及社区调性等多重因素。故需要将回答赞/踩数量、回答用户该领域权威性、赞/踩用户领域权威性、回答时间、回答争议性、回答用户的历史画像特征等综合权重进行算法排序。
4.预测
数值预测与分类预测都属于预测场景。销售预测、股票预测、流量预测,这些都是常见的预测场景。
5.知识图谱
2012年的时候Google推出了一个叫Knowledge Graph的产品,能够直观的看到词和其背后知识的关系。 很多大公司都已经在知识图谱的建设上进行布局了,知识图谱最早的应用是提升搜索引擎的能力,随后在辅助智能问答、自然语言理解、大数据分析、推荐计算、物联网设备互联、可解释性人工智能等多个方面展现出丰富的应用价值,如图所示,这几年推广比较成功的应该是AI辅助司法进行案件判决。
五、机器学习算法应用于业务的案例
我们最近常听到的一个词叫“大数据杀熟”,应该是算法在业务上非常常用的一种应用场景。通常来说,算法的产出物有两种,第一种是算法产出的结果(分群、分类、预测值),第二种是算法产出的规则。
1.产出结果(分群、分类、预测值)
比如亿信华辰为某监狱搭建的大数据监测服务平台,以服刑人员为研究对象,对服刑人员的相关主要属性信息进行归纳,识别并构建罪犯所关联的标签系统,对每个服刑人员个体行为、心理状态进行实时跟踪监测,并关联罪犯的心理评测信息、基本信息、成长经历信息、狱内表现信息、案情信息、触发诱因信息等,训练出识别罪犯异常的机器学习模型,自动甄别罪犯是否存在自杀、自伤、自残或脱逃风险,提前预警。
最终结合大数据技术对罪犯进行预警监控,降低警力成本,减轻监狱民警的工作强度,提高了技防的科学性、精准性,让整个安防系统更加完善。
2.产出规则
比如亿信华辰为某地级政府搭建的大数据政务服务平台,以其监管对象为核心辐射多业务系统进行跨系统跨部门数据融合,形成综合信息特征数据集,并基于该数据全集结合大数据机器学习算法,找到监管对象爆发问题和其他综合特征之间的相关性,形成多维度监督预测模型,为政务决策提供预测预警依据。
最终为各业务部门提供统一的数据共享交换服务的同时,通过机器学习算法,智能筛选可能有问题的监管对象,为各类监管工作提供预测预警数据依据,在有限的人力下覆盖更大的监管范围,深度挖掘数据特征,提高政府监管效率。
六、小结
如今,我们常常一打开淘宝就买个不停,一打开抖音就刷个不停。正如美国学者凯斯·桑斯坦所言,在传播过程中,公众会偏向于选择那些他们感兴趣的信息,但久而久之,便会将自身置于“茧房”之中。在这样的“信息茧房”中,全部都是感兴趣的内容,很容易致瘾,让人停不下来。
但正如前文所说,算法也不仅仅只应用在个性化推荐中,如今工业制造,农业生产,无人驾驶等领域也都在利用机器学习算法不断的提高生产效率。每件事情都有两面性,最重要的是怎么去对待。技术为人类服务,人类在使用这项服务时,也要要有独立思考的能力。