推荐算法工程师,其实是个算命先生!

推荐算法工程师,其实是个算命先生!

推荐算法工程师的技能树

 

推荐算法工程师,其实是个算命先生!

 

常见的推荐算法通俗解释

推荐算法,其实离我们的生活非常近。

目前在电商和新闻类的领域应用得非常多。

比如,我最近今日头条上看了DG的新闻,满屏幕的DG的新闻都给我推送了。

 

1.CF(Collaborative Filtering 协同过滤)

1.1 基于用户的CF

  • 分析用户A/B/C对信息的评价
  • 根据A/B/C 评价得出相似度
  • 选出其他最相似的用户D
  • 将用户D未浏览的,但A/B/C评价最高的信息推荐给用户D

推荐算法工程师,其实是个算命先生!

 

1.2 基于内容的CF

  • 分析D对信息的浏览记录
  • 根据浏览记录分析信息的相似度
  • 找出评价最高的信息以及相似度最高的一些信息
  • 将这信息推送给D

推荐算法工程师,其实是个算命先生!

不论是基于用户还是基于内容的CF,都有以下优缺点。

优点:相对精准,结果可解释,也可以得出热门推荐等。

缺点:计算量比较庞大,若是用户没有其他喜欢或不喜欢的操作,就不利于推荐,且冷门信息推荐效果差。

2、LR、SVM解读

2者都是常见的分类算法。不论是前面的基于用户的协同过滤还是基于内容的协同过滤,都需要进行相关的分类,才可以进行。因此,这些往往是参杂在一起使用的。

2.1 LR (Logistic Regression)

需要先描述一下线性回归是怎么回事。

现在我们要对很多电影进行分类,判定是不是喜剧片,然后再使用协同过滤进行推荐。

x1表示,演员名字、x2表示,电影文本、x3表示,电影图像

y=f(w1*x1+w2*x2+w3*x3),y表示为是否为喜剧片,w1、w2、w3表示权重。这些,实际上被称之为模型。

推荐算法工程师,其实是个算命先生!

这个过程,大约就是线性回归进行分类的处理。因为实际的标签和权重可能会估得粒度更细。

线性回归大多是以现有的数据,人工干预调整的形式来产生一个固定的模型,通过不断的训练,进一步优化模型。

 

逻辑回归则是通过历史数据的表现对未来结果发生的概率进行预测。

常用的公式是这个:

推荐算法工程师,其实是个算命先生!

不论,它的公式怎样,我们知道这个y,是一个概率。

比如,我们常常根据历年招聘淡旺季调整招聘计划

比如,预测哪些用户比较喜欢购买淘宝上的东西(预测完,不就可以推荐了么)

 

比如:一门考试之前学生的复习时间与这个学生最后是否Pass这门考试的数据:

推荐算法工程师,其实是个算命先生!

这样,给出任何复习时间,就可以预测出是否通过的概率

推荐算法工程师,其实是个算命先生!

其实,算命也算是一种预测。只是根据你的生辰八字、姓名等相关信息,预测你未来某年会发生某事的概率。不过,这种概率比较玄,传说算得非常准,但没有很官方的验证和科学的解释,估计算法工程师是不敢用的。

因为你不敢对着老板说:我掐指一算,此卦大凶。我们下周会有一波用户逃离。

推荐算法工程师,其实是个算命先生!

2.2 SVM(Support vector Machine)的通俗解释

通过一个非线性化映射p,将样本空间映射到一个高维甚至是无穷维的特征空间中,使得非线性化问题,转化成线性化问题。

人话:将原来不能通过y=wx这样简单的函数进行分析的数据,变成可以用y=wx的函数进行分析。

下文来自网络,非常形象。

 

在很久以前的情人节,魔鬼抢走了刘强西的爱人,旅馆老板刘强西便发誓要救他的爱人。

来到魔鬼的城堡前,魔鬼和他玩了一个游戏,只要他通过了就放走他的爱人。

推荐算法工程师,其实是个算命先生!

魔鬼在桌子上似乎有规律放了两种颜色的球,说:“你用一根棍分开它们?要求:即便再放更多球之后,仍然能将它们分开。

推荐算法工程师,其实是个算命先生!

于是刘强西这样放,干的不错?!

推荐算法工程师,其实是个算命先生!

然后魔鬼想了想,又在桌上放了更多的球,故意搞怪,让一个球站错了阵营。

推荐算法工程师,其实是个算命先生!

刘强西没有乱了阵脚,只是稍微调整一下棍子。说道:即使你放了更多的球,我的棍仍然是一个好的分界线。

推荐算法工程师,其实是个算命先生!

(SVM就是试图把棍放在最佳位置,好让在棍的两边有尽可能大的间隙。)

推荐算法工程师,其实是个算命先生!

魔鬼看到刘强西这么厉害,准备给了强西一个新的挑战,这次的球更乱了。

推荐算法工程师,其实是个算命先生!

现在,刘强西没有合适的棍可以很好帮他分开两种球了,现在怎么办呢?

看着,魔鬼手中,心爱的人,强西焦急万分。

突然,刘强西灵光一闪

刘强西像所有武侠片中大侠一样,桌子一拍,球飞到空中。然后,凭借轻功,强西使用trick绝招(SVM工具箱)抓起一张纸,插到了两种球的中间。

推荐算法工程师,其实是个算命先生!

现在,从魔鬼的角度看这些球,这些球看起来像是被一条曲线分开了。

推荐算法工程师,其实是个算命先生!

而且,这个武功理论上几乎通用于所有分类。

魔鬼看到后,气绝

 

故事最后,刘强西救出了他心爱的人。。。一起开了一间旅馆,名叫:京西旅馆

再之后,无聊的人们,把这些球叫做 「data」(数据源),把棍子 叫做 「classifier」(分类器), 最大间隙trick 叫做「optimization」(最优化), 拍桌子叫做「kernelling」(建立核函数), 那张纸叫做「hyperplane」(超平面)。

推荐算法工程师,其实是个算命先生!

推荐算法工程师,其实是个算命先生!

再后来,刘强西的武功被世人所知,便有好事者,制作了以下视频,强西的武功被称为:Support Vector Machine,简称SVM

3.DT和RF的关系

3.1 DT(Decision Tree)

决策树,树形结构。通过树型结构对信息进行分割,形成各种组合。

比如希望根据一个人的性别、年龄、身高和收入来判断,是否要考虑跟他相亲。用决策树可以这样去设计算法:

推荐算法工程师,其实是个算命先生!

优点是逻辑清晰,可以迅速推断出公式,能够同时处理数据和分类。

缺点是若出现较多异常数据时,容易出现判断结果错误。

3.2 RF(Random Forest)

相当于多个决策树组合而成的森林。每棵决策树之间相互独立。在输入样本数据时,会让每棵决策树进行判断,以最终哪个选择最多作为最终的结果输出。

将刚才关于相亲的决策树做分解简化:

推荐算法工程师,其实是个算命先生!

决策树算法出来的结果就是考虑。

优点是可处理高维度数据,训练时树之间独立,可并行。

缺点是属性数据不同时,对取值划分较多的属性会有偏向,因此要做一些权重方面的优化。

 

2者其实是类似的使用方式,只是一种是串行,一种是并行。