0%

《深度学习推荐系统》阅读笔记(一)

传统模型

协同过滤

1、User-CF的缺点

  • 一般用户数量远大于物品数,用户相似度矩阵较大,不便于存储。同时用户数增长会造成在线存储系统难以承载扩张速度
  • 用户历史数据向量往往比较稀疏,User-CF不适用于正反馈获取比较困难的场景,例如大件商品购买等低频应用

2、User-CF和Item-CF的使用场景

  • User-CF适用于新闻推荐场景,具有较强的社交性、更容易发现热点
  • Item-CF适用于兴趣变化比较稳定的应用,比如电商和视频推荐场景

协同过滤存在天然缺陷,头部效应明显,处理稀疏向量的能力较弱。并且协同过滤仅仅利用了用户年龄、性别、商品描述、商品分类等信息,会造成有效信息遗漏。

矩阵分解

矩阵分解,针对协同过滤算法头部效应明显,泛化能力弱,加入了隐向量。

矩阵分解的三种方法:

  • 奇异值分解SVD
  • 特征值分解
  • 梯度下降法

特征值分解只适合方阵,不适用于分解用户-物品矩阵。

奇异值分解要求共现矩阵稠密,且时间复杂度过高。所以一般采用梯度下降来进行矩阵分解。

矩阵分解优点:

  • 泛化能力强
  • 空间复杂度低,只需要存储用户和物品隐向量
  • 更好的扩张性和灵活性,可以和其他特征拼接

缺点:

和协同过滤一样,无法利用用户年龄性别等信息

逻辑回归

将推荐问题转换成CTR问题

优点:

  • 数学上的支撑
  • 可解释性强
  • 符合人类对预估过程的直觉认识

缺点:

  • 表达能力不强,无法进行特征交叉,导致信息丢失

FM与FFM

辛普森悖论:在分组中占优势的一方在总评中不占优势。

POLY2

暴力交叉特征,对所有特征进行两两组合,数学形式:

$x_i$和$x_j$表示特征$i,j$,$w_h(i,j)$表示特征的权重赋值,本质任是线性模型。

有点:

本质任然是线性模型,便于工程兼容

缺点:

  • 采用one-shot编码,处理类别特征是会导致特征极度稀疏,并且无法选择特征交叉,导致部分稀疏特征更加稀疏,无法收敛
  • 参数上升了,量级从$n$上升至$n^2$。

FM

数学形式:

$w$为$(1,k)$维向量。

优点:

  • 引入隐向量使FM有效解决数据稀疏性问题,将权重模型减少到了$n*k$
  • 可以使用梯度下降学习,不失灵活性和

FFM

相对于FM,引入了特征感知域的概念,使得模型的表达能力更强

FFM和FM的区别在于隐向量由原来的$w_{j_1}$变成了$w_{j_1,f_2}$,意味着每个特征对应着不是唯一的隐向量,而是一个隐向量组。吧

GBDT+LR

自动化特征的开端

1、GBDT进行特征转换

  • 将样本输入一个子树之后,回落到一个叶子结点中,将该节点置为1,其他结点置为0,然后将所有结点进行拼接,就得到一个特征向量
  • 决策树的深度决定交叉特征的的阶数,决策树深度为4,经过3次分裂,交叉特征为3阶

传统特征工程:

  • 进行人工或者半人工的特征组合和筛选
  • 改造目标函数,改进模型结构,提升特征交叉的方式增强特征组合

弊端:

  • 对算法工程师经验和经历投入要求太高了
  • 从根本上改变模型结构,对模型设计能力要求太高

GBDT+LR的优点:
特征工程由独立模型完成,实现端到端的训练。

深度学习模型

深度学习模型优点:

1、表达能力更强,能够挖掘出更多的数据中潜藏的模式。

2、模型结构灵活,能够根据业务场景和数据特点灵活调整模型结构。

深度学习模型的几个发展方向

  • 改变神经网络复杂度
  • 改变特征交叉的方式
  • 组合模型
  • FM模型的学习演化版本
  • 注意力机制和推荐模型的结合
  • 序列模型与推荐系统的结合
  • 强化模型与推荐系统的结合

AutoRec

浅层神经网络,对于协同过滤,存在$m\times n$的共现矩阵,相当于神经网络中的权重$w$,使用单层神经网络具有一定的泛化能力,但是结构较简单,泛化能力存在不足。

Deep Crossing

微软搜索引擎中的搜索广告推荐场景。

Deep Crossing需要解决的三个问题

1、离散类特征过于稀疏,不利于直接输入神经网络进行训练,如何解决稀疏特征稠密化?

引入embedding层,将稀疏特征稠密化

2、如何解决特征自动交叉问题?

引入残差网络结构,通过多层残差对各个维度进行交叉>。

3、如何在输出层达成问题设定的优化目标?

引入Scoring层,对于CTR二分类问题,采用逻辑回归模型,对于图像类多分类问题,采用softmax模型。

优点:

没有采用任何人工特征的参与。

NeuralCF

NeuralCF采用多元神经网络+输出层结构代替了矩阵分解模型中简单內积操作,目的是:

  • 让用户向量和物品向量充分交叉,得到价值更多的特征组合信息
  • 引入更多非线性特征,让模型表达能力更强

优势:

利用神经网络的优势,可灵活组合不同的特征,按需增加或减少模型复杂度

缺点:

由于基于协同过滤的思想,没有引入其他类别特征。

PNN

相对于Deep Cross,将stacking层换成了Product Layer,乘积层,里面既有内集,也有外集。

优点:

对于Embedding向量多样化交叉,定义了內积和外积操作

缺点:

特征进行了无差别交叉,一定程度的忽略了原始特征向量中包含的价值信息。

Wide&Deep

Wide&Deep设计的初衷和最大价值在于同时具有较强的记忆能力和泛化能力

记忆能力:模型直接学习并且利用历史数据中的物品和特征共现能力,例如协同过滤,可以通过历史数据计算物品和用户共现矩阵,进而通过历史数据进行推荐。

泛化能力:模型的传递特征的相关性,发觉稀疏甚至从未出现过的稀有特征和最终标签相关性能力。

Deep部分输入的是全量的特征,数值型和类别特征的embedding向量通过全连接层连接在一起。

Wide部分仅输入已安装应用和曝光应用两类特征,已安装应用表示用户历史行为,曝光应用代表当前待推荐的应用,选择这两类特征的原因是充分发挥wide的记忆能力强的有点。

Wide&Deep模型的优点:

(1)抓住业务本质特点,融合传统模型的记忆能力和深度模型的泛化能力

(2)模型结构不复杂,容易工程化实现

缺点:

Wide部分任需要人工筛选特征

Wide&Cross

使用Cross网络替代原来的wide部分。设计Cross网络的目的是为了增加特征之间的交互力度,使用多层交叉层对输入向量进行特征交叉。减少人工特征。

假设$l$层交叉层的输出向量为$x_l$,那么$l+1$层的向量输出为:

每层均保留了输入向量,因此在输入向量和输出向量之间的差别不是特别大。

优点:可以自动进行交叉特征,避免了很多基于业务理解的人工特征。

缺点:Cross部分网络复杂度较高。

FM系列

FNN

为了解决Embedding训练速度慢的问题,FNN采用的思路是用FM模型训练好的个特征隐向量初始化Embedding层参数,有点类似预训练。FM的计算公式:

优点:利用FM初始化Embedding层参数,加快训练

缺点:结构比较简单,没有针对性的特征交叉层

DeepFM

采用FM优化Wide&Deep模型中Wide模块,主要针对Wide部分不具备自动组合特征的能力的缺陷进行改善的。利用FM替换了原来的Wide部分,加强了浅层网络部分特征组合的能力。左边FM与右边神经网络共享相同的embedding层。FM对不同特征域两两交叉。也就是将embedding层当做原FM中隐向量。

NFM

NFM的思想,利用神经网络改进FM,主要思路是利用一个表达能力更强的函数替代原FM

主要有5各模块

  • 原始稀疏特征向量
  • Embedding层
  • 特征交叉池化层
  • 隐层
  • 预测层

其实就是在Embedding层和多层神经网络之间增加了特征交叉池化层,具体操作如下:

$\odot$表示两个向量的元素积操作

基于FM的深度学习模型的有点和局限性

优点:

  • 让模型具备非常强的非线性表达能力

局限:

  • 进行了大量基于不同特征交互操作思路的尝试,特征工程的思路已经穷尽了。

AFM

在NFM模型中,对于不同的特征一视同仁,但是实际上不同的特征对于业务的影响是不一致的,因此AFM通过在NFM的特征交叉层和最终输出层加上注意力机制实现,AFM的特征交叉过程同样采用元素积操作

AMF加入注意力得分之后的池化过程

为了防止交叉特征数据稀疏问题带来的权重难以收敛,AFM在交叉层和池化层之间的注意力网络来生成注意力得分

DIN

应用场景: 阿里巴巴电商广告推荐

DIN模型是在深度学习网络中加入了注意力机制,利用候选商品和历史行为相关性计算出一个权重,这个权重代表注意力的强弱。例如,广告中的商品是键盘,用户点击商品序列有几个不同的商品id,分别为鼠标、T恤和洗面奶。因此鼠标这个历史行为的商品id对于预测键盘广告的点击率重要程度大于后两者。

注意力形式化表达:

$V_u$是用户Embedding向量,$V_a$是候选广告商品Embedding向量,$V_i$是用户$u$第$i$次行为Embedding向量。用户行为指的是游览的商品和店铺。$w_i$由$V_i$和$V_a$的关系决定,即$w_i=g(V_i,V_a)$, g函数采用的是注意力激活单元。

优点:

  • 在传统深度学习推荐系统模型基础上,引入了注意力机制,并利用用户历史行为和目标广告商品的相关性计算注意力得分

缺点:

  • 没有充分利用历史行为以外的其他特征。

DIEN

相比DIN,考虑到了时序信息,用户的兴趣也是随着时间变化的,因此时序信息能够

1、加强最近行为对下一次购买的预测影响

2、序列模型能够学习到购买趋势

网络结构还是输入层+Embedding层+连接层+多层全连接层+输出层

DIEN的创新点在于构建了一个兴趣进化网络。

兴趣进化网络分三层:

1、行为序列层:将原始的ID行为序列转换成Embedding行为序列

2、兴趣抽取层:通过模拟用户兴趣迁移过程,抽取用户兴趣。采用GRU,相对于LSTM参数更少

3、兴趣进化层:通过在兴趣层基础上加上注意力机制,模拟兴趣的进化过程。结构为AUGRU,在院GRU的更新门的结构上加上了注意力得分。

优点:

  • 考虑到了时序信息

缺点:

  • 序列模型训练起来比较复杂
坚持原创技术分享,您的支持将鼓励我继续创作!