传统机器学习时代的推荐模型强调“记忆”。推荐系统能记住的是那些“常见、高频”的模式。
例子:
- 到了春节,来了中国人,电商网站给他推饺子,大概率能够购买
- 因为
**<春节, 中国人, 饺子>**的模式在训练样本中出现的很多,因此推荐系统只需要记住,下次遇到同样的场景(春节、中国人)就可以推荐饺子
- 到了感恩节,来了美国人,电商网站给他推火鸡,大概率也能购买
- 同理,
<感恩节, 美国人, 火鸡>的模式在训练样本中出现的也很多,推荐系统就会记住
1. 逻辑回归“评分卡”模型
逻辑回归是一个非常擅于记忆的模型。说是模型,其实就是一个超大规模的“评分卡”。
- 一个特征(取值),或一个特征(取值)组合占据“推荐评分卡”中的一项/一个条目,对应一个分数。可想而知,一个工业级的推荐 LR 的评分卡里面,条目会有上亿项。eg.
- 特征
国家的两个取值中国、美国分别对应一个得分 - 特征 (取值) 组合
<春节, 中国人, 饺子>对应一个得分
- 特征
- 分数是 LR 学习出来的,有正有负,代表对最终目标(比如成交,即 label=1)的贡献。eg.
SCORE(<春节, 中国人, 饺子>) = 5,代表这种组合非常容易成交SCORE(<中国人, 鲱鱼罐头>) = -100,代表这个组合极不容易成交
- 简单理解,可以认为在正样本中出现越多的特征(组合)得分越高,反之在负样本中出现越多的特征(组合)得分越低
- 最终,我们是要在场景
context下,为用户user针对物品item打分,那么,**<user, context, item>**的打分是其命中的评分卡中所有条目的得分总和。- eg. 来了一个中国客户,预测他对“榴莲馅水饺”的购买欲望 =
SCORE(<春节, 中国人, 饺子>) + SCORE(<中国人, 榴莲>)= 5 - 3.5 = 1.5,即推荐系统猜他还是有可能会买,但是欲望并不那么强烈
- eg. 来了一个中国客户,预测他对“榴莲馅水饺”的购买欲望 =
LR (“评分卡”)模型的特点:
- LR 的特点就是强于记忆,只要评分卡足够大(比如几千亿项),它能够记住历史上的发生过的所有模式(i.e., 特征及其组合)。
- 所有的模式,都依赖人工输入。
- LR 本身并不能够发掘出新模式,它只负责评估各模式的重要性。(通过 Cross Entropy Loss + 随机梯度下降SGD 学习得到)
- LR 不发掘新模式,反之它能够通过 regularization,能够剔除一些罕见模式(比如
<中国人, 于谦在非洲吃的同款恩希玛>),即避免过拟合,又减少评分卡的规模
LR (“评分卡”)模型的缺点:
- LR 强于记忆,弱于扩展(泛化能力)。也就是说,LR 模型只适用于大众推荐,而不适用于个性化推荐。
- 记忆能力记住的是“常见的、高频的、大众的”模式(训练样本中频繁出现的特征 or 特征组合),或许能够 handle 住 80% 用户的 80% 的日常需求,但是对小众用户的小众需求却无能为力,因为缺乏历史样本的支持,换句话说,推荐的个性化太弱
- 个性化推荐要求模型能自动挖掘出“低频的、长尾的”模式(训练样本中罕见的甚至从未出现过的)。这是 LR 无法做到的,也是深度学习算法(核心套路是 Embedding)的优势
2. 逻辑回归 LR
LR 模型:,如果将所有实数特征都离散化,最终全部都是离散化的类别型特征,那么
的取值只能是 0 或 1,那么 LR 在线上预测时就简化为
,其中
,也就是将所有非零特征对应的权重相加,避免了乘法运算,速度更快
对于特征交叉:
- 普通 LR 只能拿
都不为 0 的样本才能训练
组合特征的权重系数
- 而 FM 借助矩阵分解的思想,使得
的样本以及
的样本也能参与训练
。因为 FM 为每个特征分配一个权重
,而不是为每个特征组合分配一个权重
,因此特征组合
的权重实际上等于
