传统机器学习时代的推荐模型强调“记忆”。推荐系统能记住的是那些“常见、高频”的模式

例子:

  1. 到了春节,来了中国人,电商网站给他推饺子,大概率能够购买
  • 因为 **<春节, 中国人, 饺子>** 的模式在训练样本中出现的很多,因此推荐系统只需要记住,下次遇到同样的场景(春节中国人)就可以推荐饺子
  1. 到了感恩节,来了美国人,电商网站给他推火鸡,大概率也能购买
  • 同理,<感恩节, 美国人, 火鸡> 的模式在训练样本中出现的也很多,推荐系统就会记住

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,即推荐系统猜他还是有可能会买,但是欲望并不那么强烈

LR (“评分卡”)模型的特点

  1. LR 的特点就是强于记忆只要评分卡足够大(比如几千亿项),它能够记住历史上的发生过的所有模式(i.e., 特征及其组合)
  2. 所有的模式,都依赖人工输入。
  3. LR 本身并不能够发掘出新模式,它只负责评估各模式的重要性。(通过 Cross Entropy Loss + 随机梯度下降SGD 学习得到)
  4. LR 不发掘新模式,反之它能够通过 regularization,能够剔除一些罕见模式(比如 <中国人, 于谦在非洲吃的同款恩希玛>),即避免过拟合,又减少评分卡的规模

LR (“评分卡”)模型的缺点

  1. LR 强于记忆,弱于扩展(泛化能力)。也就是说,LR 模型只适用于大众推荐,而不适用于个性化推荐
    1. 记忆能力记住的是“常见的、高频的、大众的”模式(训练样本中频繁出现的特征 or 特征组合),或许能够 handle 住 80% 用户的 80% 的日常需求,但是对小众用户的小众需求却无能为力,因为缺乏历史样本的支持,换句话说,推荐的个性化太弱
    2. 个性化推荐要求模型能自动挖掘出“低频的、长尾的”模式(训练样本中罕见的甚至从未出现过的)。这是 LR 无法做到的,也是深度学习算法(核心套路是 Embedding)的优势

2. 逻辑回归 LR

第 2 章 前深度学习时代——推荐系统的进化之路

LR 模型LR(“评分卡”)模型 - 图1,如果将所有实数特征都离散化,最终全部都是离散化的类别型特征,那么 LR(“评分卡”)模型 - 图2的取值只能是 0 或 1,那么 LR 在线上预测时就简化为 LR(“评分卡”)模型 - 图3,其中LR(“评分卡”)模型 - 图4,也就是将所有非零特征对应的权重相加,避免了乘法运算,速度更快

对于特征交叉:

  • 普通 LR 只能拿 LR(“评分卡”)模型 - 图5都不为 0 的样本才能训练 LR(“评分卡”)模型 - 图6组合特征的权重系数LR(“评分卡”)模型 - 图7
  • 而 FM 借助矩阵分解的思想,使得LR(“评分卡”)模型 - 图8的样本以及LR(“评分卡”)模型 - 图9的样本也能参与训练LR(“评分卡”)模型 - 图10。因为 FM 为每个特征分配一个权重LR(“评分卡”)模型 - 图11,而不是为每个特征组合分配一个权重LR(“评分卡”)模型 - 图12,因此特征组合LR(“评分卡”)模型 - 图13的权重实际上等于LR(“评分卡”)模型 - 图14