阿里妈妈ctr演讲

[TOC]

互联网数据和经典模型

文章地址: https://mp.weixin.qq.com/s/UzukJHlYvRKtYBeuLoApqg

CTR经典三种做法

  1. 简单线性模型LR
  2. 稀疏正则L1-Norm特征筛选
  3. 处理非线性:人工特征工程

经典方法1:ID特征

ID特征,这里指的是稀疏鉴别式特征。举个例子,假如有1亿个用户,可以把1亿个用户表示为1亿维的01向量,01向量的第一个用户就命中第一维,第二个用户就命中为第二维,所以一种特征可以用这种ID类表示展现成一个非常长的01稀疏向量。如果有很多组特征,就可以把这些向量拼起来,形成一个更长的向量。

就原始特征而言,一般用户量大的公司可能是上亿级,而大的互联网公司,是上亿、上十亿甚至上百亿级的。所以原始ID特征在表示上,可以轻松将其表示成十几亿或者几十亿级。此外,我们还可以做特征的交叉组合,只要工程能力够,可以轻松上千亿,这个特征维度很大。

逻辑回归

逻辑回归是线性模型加上非线性的变换,变成一个概率形式。逻辑回归在工业界使用的方式很不一样。第一,它能处理非常大规模的数据,所以其模型和数据都必须是并行处理的,这对工程和算法上的要求都特别高。第二,对于特别大的特征来讲,通常我们会用稀疏正则L1-Norm特征筛选的方法。

##经典方法三:人工特征工程

如果想用这个经典方法将更多有用的信息尤其是非线性的压榨出来,还需要用到人工特征工程的方法。比如刚才说的两个特征,如果两个特征的交互对目标影响很大,那么拼起来的线性模型可能不够,我们就要做交叉等很多特征。

问题

  1. 人工能力有限,很难对非线性模式完全挖掘充分
  2. 依赖人力和领域经验,方法推广到其他的问题代价太大

有多少人工就有多少智能

其他方法

kernel

不适合工业界

Tree based

在ID特征上表现不够好

Tree based方法在一些低维的强特征上效果特别好,但在ID特征上反而作用不太好。

这里举一个例子:在推荐场景中,需要预估一个用户和一个宝贝的点击率,先不取历史行为就用用户ID和宝贝ID两种特征。有这两个特征,对于协同过滤的方法就已经够了。但是,如果用Tree based方法,要建树就会带来很多麻烦,树根到树叶的路径等价于是否是某个用户和是否是某个宝贝的联合判断。在这种情况下,它已经变成了一个历史记忆。这就是为什么Tree based的方法在稀疏大规模ID数据上表现不行的原因。

Facebook也做了一个方法,就是在强特征上用Tree based方法做数据筛选,再用一些LR聚合类的方法利用弱特征。

( GBDT + LR)

矩阵分解和分解机器模型:无法处理高阶关系

矩阵分解和分解机器模型,这两类模型其实有点共通。以分解机器模型为例,它主要处理的是有限次关系,经典的方法是二次关系。对于一些高阶关系是没法处理的。

分片线性模型和学习算法MLR模型

分片线性模型MLR是2011年我在阿里提出的方法。该模型的优点在于,可将整个数据分成不同的区域,在每个不同区域都用一个简单的模型预测,再将全部信息聚合起来,得到可以比较复杂的分片线性模型。如此一来,就能平衡欠拟合和过拟合的问题,从而在大规模数据中挖掘出推广性好的非线性信息。而其一个基本原则,就在于要使每分片对应足够量的样本。

特点:

分而治之;

分片数足够多时,有非常强的非线性能力;

模型复杂度可控:有较好泛化能力;

具有自动特征选择作用;

可以适用于大规模高维度数据;

#大规模ID特征+MLR实践

#深层用户兴趣分布网络