2020-06-10-深度学习推荐系统 0-2章

序言

本书的目的是“从技术创造的视角,以具体的技术诞生场景为蓝图,试图引导读者学习和掌握工业界模型设计背后真正“银弹” - 目的是解决什么样的问题”

深度学习打破之前原有的学术界模型复杂条件苛刻的情况,它具有以下特点:

  1. 开源工具多
  2. 深度模型的模块标准化程度高
  3. 模型的设计和实现结构,大大提升了算法迭代效率
    工业界技术的正确视角是问题驱动而不是拿着锤子找钉子

问题驱动: 定义清楚问题,想清楚技术的需求,然后寻找或构思相应的技术工具

以阿里为例它通过电商场景的行为模式和用户兴趣的利用,进行了一系列的算法迭代,是问题驱动的典型例子.

现在,大部分公司的工业级深度学习处于1.0, 已经遇到了瓶颈,传统的:

  1. 搭积木
  2. 喂数据
  3. 算法改进需要工程大量的升级改造

这几种形式已经难以为继,需要进入2.0阶段,作者判断和呼吁

对于推荐\搜索和广告领域,业界需要重新定义和设计新的系统架构,以适应深度学习爆发式发展带来的领先算法那能力.

需要专项更为复杂和系统性的技术体系,进一步创造技术红利.

1. 互联网增长引擎-推荐系统

推荐系统的意义

用户角度:推荐系统解决在"信息过载"的情况下,用户如何高效获得感兴趣信息的问题. 即用户体验.
公司角度:推荐系统解决产品能够最大限度地吸引用户,留存用户,增加用户粘性,提高用户转化率的问题,从而达到公司商业目标连续增长的目的. 即商业利益.

这些目表可能是视频公司的观看时长\新闻公司的点击率\电商公司的转化率等

推荐系统的逻辑框架

推荐系统的问题定义: 通过用户U\场景C\物品I,预测用户对特定物品的喜好程度.


image.png

推荐系统的架构

如上图,推荐工程师需要解决的问题有两类:

  1. 数据问题:数据的存储,处理,实时数据处理
  2. 模型问题:模型的构建,迭代,上线,流式更新

2. 前深度学习时代-推荐系统的进化之路

传统的推荐算法那的演进如下图, 传统的推荐模型是很重要的基础:

  1. 目前cf\lr等传统的推荐模型具有可解释性强\硬件环境要求低\抑郁快速训练和部署的优势,有大量使用的场景;
  2. 传统的是深度学习推荐的基础.

例如,lr是是单层单神经元的神经网络;因子分解演化除了FM,deepFM等深度模型具有很好的效果.

上图,可分为4个部分:

  1. 协同过滤(蓝色)
  2. 逻辑回归: LR
  3. 因子分解机:FM,FFM
  4. 组合模型:GBDT+LR

CF

通过贡献矩阵和合适的相似性度量的方法,进行推荐的技术

userCF细节不赘述
缺点:

  1. 实际场景中user量大,开销大,计算量大

itemCF细节不赘述

CF的缺点

协同过滤虽然直观,可解释性强,但是不具有较强的泛化能力,无法将两个物品相似这一信息推广到其他物品的相似性计算上.导致里一个严重的问题:

热门物品具有很强的头哦不相应,容易跟大量物品产生相似性;而尾部物品由于特征向量稀疏,很少与其他物品产生相似性,导致很少被推荐.

矩阵分解

矩阵分解即将共现矩阵分解得到用户和物品的隐向量.


矩阵分解有几种方式:
1.特征值分解eigen decomposition
2.奇异值分解sigular value decomposition
- 要求共现矩阵是稠密的,复杂度高,不适合大数据场景
3.梯度下降

优缺点

  1. 泛化能力强
  2. 空间复杂度低
  3. 易于扩展和灵活:和embedding的思路类似

逻辑回归

理论知识略,网上很多了

优点

1.物理意义匹配:逻辑回归是广义线性模型的一种,它的假设是因变量服从伯努利分布.对于用户是否点击的场景也可以定义为这个分布.
2.可解释性强:根据权重解释特征的强弱.
3.工程化简单

缺点

无法进行交叉,特征筛选等,有信息损失.

FM/FFM

书中使用辛普森悖论解释了不同性别数据和总体数据得到不同物品点击率顺序的例子,说明单一特征信息的大量损失问题.

ploy2

二阶乘积是最直接的方法,但是数据非常稀疏,权重参数数量上升

FM模型-隐向量特征交叉

FM与PLOY相比,主要区别是用两个向量的内积取代了直接交叉.

参数量个

优点

  1. 参数从缩减到了;
  2. 稀疏性减少:不局限于单一的交叉存在时才能学习,只要有其中一个特征参数,就会被更新.

FFM模型-引入特征域的概念

引入了特征域的概念,每个特征对于另外的特征(域)都有一个单独的向量表达
参数量个

image.png

GBDT+LR-特征工程化的开端

之前提到了FFM模型,提升了特征的交叉English,但也只有二阶交叉的形式,如果再进行更高阶的交叉,会产生组合爆炸和计算复杂度过高的问题.

2014年FB提出了GBDT+LR的方式: 利用GBDT自动进行特征筛选和组合,进而生成新的离散特征向量,在吧该向量特征当做LR模型的输入.


image.png

GBDT的特征转换过程

我们首先需要训练一个GBDT,假设我们训练好的模型有三颗树组成,一个样本输入树中后,会知道它到底经过了这些树的那些叶子节点,我们把这些阶段标成1其他为0即可.

MLR

阿里提出的MLR模型是对lr模型的一个扩展,它假设样本可分为m类,每一类也会学习到参数,并与lr结合,使得模型有了更强的学习复杂分布数据的能力:


如果从深度学习的角度来理解这个模型,可看做是一个加入了(attention)机制的神经网络模型.

第二章模型总结

image.png

你可能感兴趣的:(2020-06-10-深度学习推荐系统 0-2章)