zoukankan      html  css  js  c++  java
  • 机器学习简介,ALS、LR、GBDT【转载的哦】

    【转】https://blog.csdn.net/haozi_rou/article/details/104845317

    市面上的主流app,大多数情况下不同的用户看到的页面都是不同的,这里面就有一个推荐的因素了。

    那么我们如果想要做推荐,首先需要实现的当然是千人千面,也就是不同的人推荐展示的内容是不一样的,再有就是需要根据场景去推荐。

    推荐的方法
    基于规则的推荐:可以按照销量、品类等方式来推荐。

    基于传统机器学习的推荐:是根据海量的用户的历史行为或门店用户的特征等。当然,上面说的推荐都是基于机器学习的算法。

    基于深度学习的推荐:基于神经网络的算法,可以更深层次的发掘用户的诉求,通过不断地反推递归来计算。

    推荐模型
    规则模型:有明确的规则定义,有简单的算数公式。

    机器学习模型训练:数据训练后的算数公式。虽然也有调节的过程,但更多的会依赖历史行为上的数据,只要这些数据足够好,就可以推算出算数公式。

    机器学习模型预测:待预测数据经过训练模型算数公式后的结果。例如有用户的基本数据和历史行为,那么就可以拿这些数据跟我们门店的特征共同做训练。算出算数公式。

    模型评价指标
    离线指标:查全率、查准率、auc(是否预测对的比预测错的更靠前)等

    在线指标:点击率、交易转化率等

    A/B测试:A组和B组的公式同时测试,看哪个好。

    推荐系统架构

    先说一下召回排序和重排,召回相当于根据用户习惯,从一堆数据中心选取其中前100个,然后将前100个商品用另一种算法精排,然后进行第三次排序,这里的重排可以将例如做广告的上架的排序提前。一般三种排序的算法都是不一样的。

    再说下数据层,在线数据采集是指用户的行为,例如点击、交易等,离线数据采集是指业务数据库的数据等,这些数据都可以归到大数据平台,供机器学习来使用。离线召回模型是指从大数据平台抽取想要的数据训练的模型。协同过滤大概就是指:AB两个用户的行为都很类似,有一天B新添加了一个商品,那么就把这个商品推荐给A。然后通过模型计算后将数据存到存储设备中,这样,当用户访问的时候,粗排可以从中拿取数据。

    个性化召回算法ALS
    ALS是最小二乘法,他利用矩阵分解的结果无限逼近现有数据,得到隐含特征。再利用隐含的特征预测其余结果。

    先看下表格,4个用户,user2浏览过商品2和商品3,不管浏览了几次,都记做1分,user1购买过商品1,所以在1分的基础上再加2分,也就形成了我们这个矩阵表格。

    而推荐系统需要做的是挖掘用户的潜在需求,就是预测没有数值的矩阵。这就是ALS要做的事情。

    那ALS是怎么做的呢?

    有两个表:

    每个user和每个商品都会有五个特征,当然两个表中的特征可以不一样,但是数量必须一样,而且有相对应的打分。然后通过

    user矩阵和商品p转置矩阵相乘,user1的特征1乘商品1的特征1,最后相加,就会生成一个我们第一个的表格。那么ALS就是通过不断地递归拟合,去逼近现有表格中的分数,从而预测得到其他空格里面的数字。

    个性化排序算法LR
    LR,也叫逻辑回归。看一个公式:

    Y=ax1+bx2+cx3+dx4...

    排序的问题在某些意义上也可以看成是点击率预估,公式中x1x2x3这些可以看成是用户的特征,例如x1是年龄,x2是性别等等,在公式中,每个特征都有一个权重abcde等,结果会得到一个Y,越趋近1代表点击概率越大。这是个预测的过程。
     

    LR算法也就是要算出abcde,在大数据平台会采集Y的样本,可能是1也可能是0,上面途中,蓝色为正样本,紫色为负样本,也lr需要推算出红线,等学习出红线以后,就可以做预测了,新进来一个x点,可以根据红线来推算这个点是正样本的概率大还是负样本的概率大。这就是比较简单的逻辑回归的排序算法原理。

    决策树算法
    决策树算法,事实上是一个多重分类选择器组合承德结果,也就是输入一个参数,根据这个参数返回1/0,举个例子的话,可以想象成以前杂志上的那种心理测试题。通过多个选择,获得一个结果。

    那么如何定义决策树的每个节点的特征呢?原则上越能分出绝大部分特征的越往上。如何衡量?数学上有一个名词叫做信息熵,来衡量信息量的大小,也就是对随机变量不确定的一个衡量,熵越大,不确定性越大。

    举个例子,天气有晴天、多云、雨天,温度有冷、热、适中,湿度有高、中等,风有有风、无风,最后有个结果,是否出去玩。

    那么我们如何构建这个抉择树?我们选取熵大的节点放在上面,依次往下。离散特征直接按照分类选择器,连续特征可以用二分、三分等分类方式进,例如小20岁,20-40等等。

    对于决策树的缺点:样本特征过多时,树的高度太高。样本特征本身有问题时,如果过拟合,会对预测产生偏差。

    为了避免决策树的缺点,我们对决策树衍生出了两种算法:随机森林法和GBDT

    随机森林:通过随机的选择样本(放回抽样),也就是随机选择几个样本,几个特征,生成一个决策树,放回去再随机选择样本生成决策树,这样就可以生成随机森林。最后在测试阶段,把所有决策树的结果汇总到一起取平均数。

    当然,随机的缺点也就是不确定性,既是优势、又是劣势。基于这个,衍生出了另一种算法:GBDT

    关于GBDT,顺序为:

    从初始训练集中得到一个基准学习器。

    用基准学习器预测训练样本并调整做错样本属性的权重。

    反复迭代生成T个学习器

    T个学习期串行预测加权结合

    对于GBDT,它是以第一棵树作为基准,逐步调整,所以这样出来的树也就更准确了。
     

  • 相关阅读:
    UVA 1600
    P3366 【模板】最小生成树(堆优化prim)
    P2414 [NOI2011]阿狸的打字机
    P2322 [HNOI2006]最短母串问题
    P4052 [JSOI2007]文本生成器
    P4824 [USACO15FEB]Censoring (Silver) 审查(银)&&P3121 [USACO15FEB]审查(黄金)Censoring (Gold)
    P3966 [TJOI2013]单词
    P2444 [POI2000]病毒
    P3294 [SCOI2016]背单词
    P2922 [USACO08DEC]秘密消息Secret Message
  • 原文地址:https://www.cnblogs.com/linkmust/p/12708275.html
Copyright © 2011-2022 走看看