学习总结
- 本次task学习深度学习模型系统的整体脉络,改进网络模型的常用手段:改变神经网络的复杂程度、改变特征交叉方式、把多种模型组合应用、结合交叉领域(如NLP、强化学习等)。
- 整个深度学习推荐模型的演化过程,是从最经典的多层神经网络向不同方向开枝散叶,比如结合协同过滤发展出了 NerualCF,加入 Embedding 层发展出以 Deep Crossing 为代表的 Embedding+MLP 的结构,以及把深度神经网络和单层网络结合起来发展出 Wide&Deep 模型等等。
- 深度学习模型可以大大增加模型的“非线性”拟合能力,对复杂数据模型进行更准确的分类,避免“欠拟合”现象的发生,从而提升推荐效果。
文章目录
一、深度学习对推荐系统的影响
1.1 强拟合能力
矩阵分解。在矩阵分解模型的结构(图 1 左)中,用户 One-hot 向量和物品 One-hot 向量分居两侧,它们会先通过隐向量层转换成用户和物品隐向量,再通过点积的方式交叉生成最终的打分预测。
图1 矩阵分解模型示意图
点积这种特征向量交叉的方式毕竟过于简单,在数据模式比较复杂的情况下,往往存在欠拟合的情况。而深度学习就能大大加强模型的拟合能力,比如在 NeuralCF(神经网络协同过滤)模型中,点积层被替换为多层神经网络,理论上多层神经网络具备拟合任意函数的能力,所以我们通过增加神经网络层的方式就能解决模型欠拟合的问题了。
简单回顾,对比上图:
(1)欠拟合:模型复杂度低,无法很好拟合训练集数据(左图)。
(2)拟合:通过深度学习模型增加模型的“非线性”拟合能力,找到合适分类面(中图)
(3)过拟合:模型在训练集上误差很小,但在测试集误差较大,如模型曲线过分精确刻画分界线,忽略了对噪声的容忍能力。
1.2 模型的灵活性
典型的例子就是阿里巴巴的模型 DIN(深度兴趣网络)和 DIEN(深度兴趣进化网络)。它们通过在模型结构中引入注意力机制和模拟兴趣进化的序列模型,来更好地模拟用户的行为。
图 4 的 DIN 模型:它在神经网络中增加了一个叫做“激活单元“的结构,这个单元就是为了模拟人类的注意力机制。举个例子来说,我们在购买电子产品,比如说笔记本电脑的时候,更容易拿之前购买电脑的经验,或者其他电子产品的经验来指导当前的购买行为,很少会借鉴购买衣服和鞋子的经验。这就是一个典型的注意力机制,我们只会注意到相关度更高的历史购买行为,而 DIN 模型就是模拟了人类的注意力特点。
改进版 DIEN 模型就更厉害了,它不仅引入了注意力机制,还模拟了用户兴趣随时间的演化过程。我们来看那些彩色的层,这一层层的序列结构模拟的正是用户兴趣变迁的历史,通过模拟变迁的历史,DIEN 模型可以更好地预测下一步用户会喜欢什么。
深度学习推荐模型这么多,发展这么快,也没有一个统一的模板,我们该学哪个,怎么学呢?我想说的是,算法工程师的工作是一个持续优化和迭代的过程,如果想要追求更好的推荐效果,我们的思路不应该只局限于某一个被成功应用的模型,而是应该把眼光放得更高、更宽,去思考这些成功的推荐模型在业界下一步的发展方向是什么?有没有哪些其他的模型结构的思路可以借鉴。这些都是你在这个岗位上取得持续成功的关键。
二、模型的演化关系图
先看图片中上方的多层感知机MLP,MLP会对输入的特征进行深度地组合交叉,然后输出对兴趣值的预测。其他的深度推荐模型全都是在多层感知机的基础上,进行结构上的改进而生成的,所以“多层感知机”是整个演化图的核心。
MLP上方的Deep Crossing 实际上是一类经典深度学习模型的代表,相比于 MLP,Deep Crossing 在原始特征和 MLP 之间加入了 Embedding 层。这样一来,输入的稀疏特征先转换成稠密 Embedding 向量,再参与到 MLP 中进行训练,这就解决了 MLP 不善于处理稀疏特征的问题。可以说,Embedding+MLP 的结构是最经典,也是应用最广的深度学习推荐模型结构。
MLP下方的Google 提出的推荐模型 Wide&Deep。它把深层的 MLP 和单层的神经网络结合起来,希望同时让网络具备很好的“记忆性”和“泛化性”。它具有“易实现”、“易落地”、“易改造”的特点,获得了业界的广泛应用。
围绕着 Wide&Deep 还衍生出了诸多变种,比如,通过改造 Wide 部分提出的 Deep&Cross 和 DeepFM,通过改造 Deep 部分提出的 AFM、NFM 等等。总之,Wide&Deep 是业界又一得到广泛应用的深度推荐模型。
跟其他机器学习子领域的交叉。举 3 个比较著名的例子:
(1)深度学习和注意力机制的结合,诞生了阿里的深度兴趣网络 DIN,浙大和新加坡国立提出的 AFM 等等;
(2)把序列模型引入 MLP+Embedding 的经典结构,诞生了阿里的深度兴趣进化网络 DIEN;
(3)把深度学习和强化学习结合在一起,诞生了微软的深度强化学习网络 DRN,以及包括美团、阿里在内的非常有价值的业界应用。
2.1 改变神经网络的复杂程度
从最简单的单层神经网络模型 AutoRec,到经典的深度神经网络结构 Deep Crossing,它们主要的进化方式在于增加了深度神经网络的层数和结构复杂度。
2.2 改变特征交叉方式
大大提高了深度学习网络中特征交叉的能力。比如说,改变了用户向量和物品向量互操作方式的 NeuralCF,定义了多种特征向量交叉操作的 PNN 等等。
2.3 把多种模型组合应用
组合模型主要指的就是以 Wide&Deep 模型为代表的一系列把不同结构组合在一起的改进思路。它通过组合两种甚至多种不同特点、优势互补的深度学习网络,来提升模型的综合能力。
2.4 交叉领域
从 DIN、DIEN、DRN 等模型中可以看出,深度推荐模型无时无刻不在从其他研究领域汲取新的知识。从推荐系统顶会 Recsys2020 中可以看到,NLP 领域的著名模型 Bert 又与推荐模型结合起来,并且产生了非常好的效果。一般来说,自然语言处理、图像处理、强化学习这些领域都是推荐系统经常汲取新知识的地方。
三、作业
经典的深度模型结构实现好,肯定能提升我们公司推荐系统的效果,你觉得这种观点有问题吗?你觉得除了模型结构,还有哪些影响推荐效果的因素?为什么?
【答】适合算法(选型、调参)+数据结构(数据准备)+业务场景(流程变动)=推荐系统优化。
(1)首先从算法自身,在MLP层数是较多情况下,模型复杂度越高越精确,相对计算时间也越长久,但是实际的业务与数据,只需要2层的MLP,那么还不如Emmbedding+MLP简单层效果。
(2)其次业务场景出发,不是所有的算法都是公司的业务,现有公司的业务数据就是这样,DIEN模型是因为阿里具有强大的大数据采集处理能力平台架构,用户行为变化的能力可以完全捕捉,才能实现Attention机制深度推荐系统。
Reference
(1)https://github.com/wzhe06/Reco-papers
(2)《深度学习推荐系统实战》,王喆