介绍

MLR算法是alibaba在2012年提出并使用的广告点击率预估模型,2017年发表出来。

如下图,LR不能拟合非线性数据,MLR可以拟合非线性数据,因为划分-训练模式。

讨论,非线性拟合能力:

数据划分规则如下公式,特征分片数m=1时,退化为LR;上图MLR中m=4。m越大,模型的拟合能力越强,一般m=12。

基础知识

优化方法:

1)剃度下降:

大小:一阶导数,方向:导数负方向。由目标函数的泰勒一阶展开式求得

2)牛顿法:

大小:一阶导数,方向:-海信矩阵的逆。由目标函数的泰勒二阶展开式求

3)拟牛顿法(LBFGS):牛顿方向通过约等替换,每个样本保存下面三个参数:delta x ,delta剃度 和p:

增量替换,计算牛顿方向D

LBFGS方法通过一阶导数中值定理,避免了计算海信矩阵(复杂度太大)。但是L1范数不能求导,所以需要OWLQN方法。

4)OWLQN:

(1)次梯度定义如下,

(2)不可导点取左or右次梯度,如下 

直观解释,当你打算用左偏导时,说明是在负象限,因此要加上一个负值,使得更新之后参数更往负象限前进,这样就避免了跨象限;当打算用右偏导数时,说明在正象限,一次要加上一个正值,使得更新之后参数更往正象限前进,从而避免跨象限;否则,只能直接设置subgradient为0。

(3)象限搜索line search:

x不在0点时,line search在x_i所在象限搜索;如果模型参数在0点,就要在(2)次梯度约束的象限内进行line search.

MLR算法

算法公式如下:

0计算边界下降方向d:

1计算梯度大小:theta在0处不可导,取sign符号函数dij。

2计算最终下降方向p:

3象限内梯度下降,同OWLQN,line search:

paper介绍,MLR与LBFGS有三点不同:

1)OWLQN需要计算次梯度,MLR需要计算方向导数;

2)计算最终下降方向p时,MLR也要进行象限约束;

3)象限搜索line search,与OWLQN相似。

分布式框架实现

分布式

User特征共享

个人理解是为了加快运算速度,具体特征划分如下所示。其中,c是用户特征,nc是非用户特征。

实验结果

    实验截图略,具体图表可以查看参考paper

纵坐标是内存使用率,特征共享技巧使速度提高了三倍。

参考paper:Learning Piece-wise Linear Models from Large Scale Data for Ad Click Prediction

最新文章

  1. IOS安全测试
  2. Javascript 面向对象
  3. SignalR-入门
  4. 高德地图API应用
  5. php中传值与传引用的区别。什么时候传值什么时候传引用?
  6. 自定义jdbc框架
  7. BZOJ 1015
  8. redis中的事务
  9. 使用VS Code开发调试.NET Core 2.0
  10. python pip升级失败
  11. fopen fclose feof fgets fetl
  12. 第59节:Java中的html和css语言
  13. 跨域 webpack + vue-cil 中 proxyTable 处理跨域
  14. RMQ问题 [luogu 3865]
  15. 2D过渡模块的其他属性
  16. WebService快速上手
  17. MySQL: ON DUPLICATE KEY UPDATE 用法
  18. TFS中设置任务中的“计划开始时间”为可编辑状态
  19. keepalived+nginx实现高可用+tomcat
  20. C#使用EF连接PGSql数据库

热门文章

  1. Java正则表达式详解+练习
  2. 一次从0到1的java项目实践清单
  3. JPA 映射单向多对一的关联关系
  4. 【推荐】地推统计结算工具SDK,手机开发首选
  5. [Scikit-learn] 1.2 Dimensionality reduction - Linear and Quadratic Discriminant Analysis
  6. nodejs运行前端项目
  7. BootStrap Table使用小结
  8. AngularJS学习篇(十七)
  9. js实现小球的弹性碰撞。
  10. css伪类的说明以及使用(css事件)