推荐系统笔记8-在线学习

本文介绍在线学习的一些内容,并做一些总结,首先什么是在线学习,根据维基百科的定义,传送门,总结来说在线学习就是每来一个/批样本增量更新一次;
一、 提一个问题,为什么需要在线学习,从下面几个角度探讨:

  • 离线批量学习
    • 早先的搜索学习能力,是基于批处理的离线机器学习。在每次迭代计算过程中,需要把全部的训练数据加载到内存中计算。虽然有分布式大规模的机器学习平台,在某种程度上批处理方法对训练样本的数量还是有限制的。在线学习不需要缓存所有数据,以流式的处理方式可以处理任意数量的样本,做到数据的实时消费。
  • 特征实时
    • 2014年双11,实时技术在大促场景上,实现了商品和用户的特征实时,表现不俗。
  • 为什么需要模型在线学习呢?以及为什么实现秒级的模型更新?
    • 数据分布变化:在批量学习中,⼀般会假设样本独立服从⼀个未知的分布,但如果分布变化,模型效果会明显降低。而在实际业务中,很多情况下,⼀个模型生效后,样本的分布会发生大幅变化,因此学到的模型并不能很好地匹配线上数据。实时模型,能通过不断地拟合最近的线上数据,解决这⼀问题,因此效果会较离线模型有较⼤提升。那么为什么实现秒级分钟级的模型更新?在双11这种成交爆发力强、变化剧烈的场景,秒级实时模型相比小时级实时模型时效性的优势会更加明显。根据2015年双11实时成交额情况,前⾯1小时已经完成了大概总成交的1/3,小时模型就⽆法很好地捕获这段时间里面的变化。

二、 那么在线学习的方法种类呢?

  • 基于Bayes概率图模型
    • MatchBox
    • adPredictor
  • 基于SGD的方法(如SGD的变种,AdaGrad方法):
    • 加速SGD的收敛速度
    • 减少调参对收敛的影响
  • 非参数模型
    • KNN(但是需要加各种trick)
  • Explore & Exploit :
    • Bandit、MAB、UCB

具体细节可参考该乎回答;

三、 在线学习online learning和增量学习Incremental Learning区别?
对该回答做一个小结:1、在线学习与离线学习:离线学习是训练数据在模型训练的时候是全部可用的,而在线模型一开始是没有完整的数据集的,需要按顺序处理数据,随着数据的到来,持续更新模型;2、增量学习与减量学习:在线学习包括增量学习与减量学习;增量学习,是指一个学习系统能不断地从新样本中学习新的知识,并能保存大部分以前已经学习到的知识。一个增量学习算法应同时具有以下特点:
1)可以从新数据中学习新知识;
2)以前已经处理过的数据不需要重复处理;
3)每次只有一个训练观测样本被看到和学习;
4)学习新知识的同时能保存以前学习到的大部分知识;
5)—旦学习完成后训练观测样本被丢弃;
6)学习系统没有关于整个训练样本的先验知识;
增量式算法:就是每当新增数据时,并不需要重建所有的知识库,而是在原有知识库的基础上,仅做由于新增数据所引起的更新,这更加符合人的思维原理。减量学习,即抛弃“价值最低”的保留的训练样本;

最后给一个基于gradient descent的online算法中的其中一种,FTRL(Follow The Regularized Leader) 算法的一篇优秀博文,以及另外一篇博文;

你可能感兴趣的:(推荐系统,机器学习)