推荐系统深度学习读书笔记-3

第三章

浪潮之巅—深度学习在推荐系统中的应用

深度学习在推荐系统中的优势:

  • 表达能力更强,挖掘出数据中更多的潜藏的模式
  • 模型结构灵活,根据业务和数据特点,可以更灵活的调整模型结构,能与应用场景完美结合

按照其功能可以划分以下几个类型:

  • 改变神经网络的复杂程度

    简单的单层神经网络模型AutoRec(自编码推荐)-> 经典的深度神经网络模型DeepCrossing(深度特征交叉)

  • 改变特征交叉方式

    丰富神经网络中特征交叉的方式

    NeuralCF(神经网络协同过滤):改变了用户向量和物品向量互操作方式

    PNN(基于积操作的神经网络):定义了多种特征向量交叉操作

  • 组合模型

    组合两种不同的特点,优势互补的深度学习网络,提升模型的综合能力

    Wide&Deep -> Deep&Cross -> DeepFM

  • FM模型的深度学习演化版本

    NFM(Neural Factorization Machine 神经网络因子分解机):使用神经网络提升FM二阶部分的特征交叉能力

    FNN(Factorization-machine supported Neural Network 基于因子分解机支持的神经网络):利用FM的结果进行网络初始化

    AFM(Attention neural Factorization Machine 注意力因子分解机):引入了注意力机制的FM模型

  • 注意力机制和推荐模型的结合

    AFM

    DIN

  • 序列模型与推荐模型的结合

    使用序列模型模拟用户行为或用户兴趣的演化趋势,DIEN

  • 强化学习与推荐模型的结合

    DRN(Deep Reinforcement Learning Network 深度强化学习网络)

AutoRec—单隐层神经网络推荐模型

paper地址:http://users.cecs.anu.edu.au/~u5098633/papers/www15.pdf

AutoEncoder + 协同过滤 -> 一种单隐层神经网络推荐模型

基本原理是利用协同过滤中的共现矩阵,完成物品向量或用户向量的自编码,

再利用自编码结果得到用户对物品的预估评分,进而进行推荐排序。

自编码器的作用是将向量r作为输入,通过自编码后,得到的输出向量尽量接近其本身

自编码器相当于完成了数据压缩和降维的工作

输出向量由于经过自编码器的泛化过程,因此具备了一定的缺失维度的预测能力

输入物品的评分向量:基于物品的AutoRec(I-AutoRec)

输入用户的评分向量:基于用户的AutoRec(U-AutoRec)

劣势:

  • 结构简单导致表达能力不足

Deep Crossing—经典的深度学习架构

三类特征:

  • 可以处理成one-hot或者multi-hot向量的类别特征
  • 数值型特征:直接拼接进特征向量中
  • 进一步处理的特征(统计特征)

网络结构主要分为四层:

  • Embedding层(解决了类别特征编码后过于稀疏的问题,稀疏特征向量稠密化)

    将稀疏的类别特征转换成稠密的embedding向量

    embedding向量的维度远小于原始的稀疏特征向量

    数值型特征不需要经过embedding层

  • Stacking层

    特征拼接,concatenate层

  • Multiple Residual Unit层(解决特征自动交叉组合的问题)

    多层残差网络(Multi-Layer Residual Network)

    残差网络的诞生解决过拟合问题、relu作为激活函数,收敛更快

    通过MLRN对特征向量各个维度进行充分的交叉组合,使模型能够抓取到更多的非线性特征和组合特征的信息,进而使表达能力更强

  • Scoring层

    对于CTR预估这类二分类问题,使用LR模型

    对于图像分类这多分类问题,使用softmax模型

NeuralCF模型—CF与深度学习的结合

MF网络化表示可以看做是embedding(矩阵分解层)+scoring(内积)

MF模型容易欠拟合,模型结构简单

NeuralCF用【多层神经网络+输出层】替代了内积

用户向量和物品向量能做更充分的交叉,得到更多有价值的特征组合信息

引入更多的非线性特征,模型的表达能力更强

用户向量和物品向量的互操作层可以被任意的互操作形式所代替,广义矩阵分解模型(GMF)

softmax函数解决了从一个原始的n维向量,向一个n维的概率分布映射的问题

NCF的劣势就是没有引入其他类型的特征,仅仅类似ICF或者UCF只使用了物品和用户特征

深度学习构建推荐模型的优势:

利用神经网络理论上能够拟合任意函数的能力,灵活地组合不同的特征,按需增加或减少模型的复杂度

PNN模型—加强特征交叉能力

PNN用乘积层(Product Layer)代替了Deep Crossing模型中的stacking层

不同特征的Embedding向量不再是简单的拼接,而是用Product操作进行两两交互,更有针对性地获取特征之间的交叉信息。

乘积层= 内积+外积

PNN为了减少训练的复杂度,把外积互操作的结果叠加,类似于embedding中的平均池化层,average pooling。

平均池化的操作需要发生在同类embedding上

PNN的结构强调了特征embedding向量之间的交叉方式是多样化的

但是无差别交叉,在一定程度上忽略了原始特征向量中包含的有价值信息

Wide&Deep模型—记忆能力和泛化能力的结合

wide:memorization

模型直接学习并利用历史数据中物品或者特征的共现频率的能力

deep:generalization

理解为模型传递特征的相关性,以及挖掘稀疏甚至从未出现过的稀有特征与最终标签相关性的能力

wide部分善于处理大量稀疏的id特征

deep部分输入是全量的特征向量,wide部分输入仅仅是已安装应用和曝光应用两类特征

Wide&Deep模型的进化—-Deep&Cross模型

cross部分替代了wide部分

目的是为了增强特征之间的交互力度,使用多层交叉层对输入向量进行特征交叉

FNN—用FM的隐向量完成Embedding的初始化

Embedding收敛速度慢

Embedding层的参数数量巨大

输入向量稀疏,只有非零特征权重会更新

FNN用FM模型训练好的各特征隐向量初始化Embedding层的参数

相当于在初始化神经网络参数时,引入了有价值的先验信息

DeepFM—用FM代替Wide

针对Wide&Deep模型的Wide部分不具备自动的特征组合能力的缺陷改进的,与Deep&Cross一致

Deep&Cross是利用多层cross网络进行特征组合

DeepFM利用FM进行特征组合

NFM—FM的神经网络化尝试

受组合爆炸问题的困扰,FM几乎不可能拓展到三阶以上,不可避免的限制了FM模型的表达能力。

NFM模型用一个表达能力更强的函数替代原FM中二阶隐向量内积的部分。

在Embedding层和多层神经网络之间加入特征交叉池化层(Bi-Interaction Pooling Layer)

特征工程的思路

沿着特征工程自动化的思路,深度学习从PNN

经过了W&D,D&C,DeepFM,NFM等模型,进行了大量的、基于不同特征互操作思路的尝试

AFM—引入注意力机制的FM

NFM中在特征交叉池化层进行了sum操作,没考虑不同特征对结果的影响程度,事实上消解了大量有价值的信息。

用户对不同特征的关注度是不同的,因此有了AFM

DIN—引入注意力机制的深度学习网络

利用候选商品和历史行为商品之间的相关性计算出一个权重,这个权重代表了注意力的强弱

注意力机制在数学形式上只是将过去的平均操作或加和操作换成了加权和或者加权平均操作

DIEN—序列模型与推荐系统的结合

用序列模型模拟了用户兴趣的进化过程

序列信息的重要性在于:

加强了最近行为对于下次行为预测的影响

序列模型能够学习到购买趋势的信息

如果放弃序列信息,则模型学习时间和趋势这类信息的能力就不会那么强,

推荐模型仍然是基于用户所有购买历史的综合推荐,而不是针对下一次购买推荐

兴趣抽取层的结构:

GRU(Gated Recurrent Unit,门循环单元)

GRU解决了RNN的梯度消失问题,与LSTM相比,GRU的参数数量更少,收敛速度更快

兴趣进化层:

加入了注意力机制

得分生成的过程与DIN完全一致

AUGRU(GRU with Attentional Upgrade gate,基于注意力更新门的GRU)

在原GRU的更新门结构上加入了注意力得分

强化学习与推荐系统的结合

智能体(Agent):推荐系统

环境(Environment)

外部反馈(Reward)

自身状态(State)

行动(Action)

行动-反馈-状态更新

DRN

智能体:推荐系统本身,包括基于深度学习的推荐模型、探索策略、以及相关的数据存储

环境:由APP、用户组成的整个推荐系统外部环境,在环境中,用户接收推荐的结果并作出相应反馈

行动:推荐系统进行新闻排序后推送给用户的动作

反馈:用户收到推荐结果后,进行正向的或负向的反馈。

状态:对环境以及自身当前所处具体情况的刻画。可以看做已收到所有行动和反馈,以及用户和相关信息的特征向量表示。

迭代过程如下:

初始化推荐系统(智能体)

推荐系统基于当前已收集的数据(状态)进行新闻排序(行动),并推送到网站或APP中(环境)

用户收到推荐列表,点击或者忽略(反馈)

推荐系统收到反馈,更新当前状态或通过模型训练更新模型

重复第二步

DQN:

用户特征和上下文特征归为状态向量

用户-新闻交叉特征和新闻特征归为行动向量

在线训练方法:竞争梯度下降算法(Dueling Bandit Gradient Descent Algorithm)

各个模型paper地址

AutoRec:http://users.cecs.anu.edu.au/~u5098633/papers/www15.pdf

DeepCrossing:https://www.kdd.org/kdd2016/papers/files/adf0975-shanA.pdf

NeuralCF:http://papers.www2017.com.au.s3-website-ap-southeast-2.amazonaws.com/proceedings/p173.pdf

PNN:https://arxiv.org/pdf/1611.00144.pdf

Wide&Deep:https://arxiv.org/pdf/1606.07792.pdf

Deep&Cross:https://arxiv.org/pdf/1708.05123.pdf

FNN:https://arxiv.org/pdf/1601.02376.pdf

DeepFM:https://arxiv.org/pdf/1703.04247.pdf

NFM:https://arxiv.org/pdf/1708.05027.pdf

AFM:https://www.ijcai.org/Proceedings/2017/0435.pdf

DIN:https://arxiv.org/pdf/1706.06978.pdf

DIEN:https://arxiv.org/pdf/1809.03672.pdf

DRN:http://www.personal.psu.edu/~gjz5038/paper/www2018_reinforceRec/www2018_reinforceRec.pdf