上一课时,我们介绍了 DIEN 模型添加了 RNN中 的 GRU,使模型获得了对序列数据的建模能力;而 DSIN 模型不仅使用了 RNN 中的 bi-LSTM,还使用了 Transformer 组件。
由此可见,在新的演化模型中,根据场景和数据的不同,替换和添加不同的范式组件已经成为一种趋势。
关于基础组件,“08|模型演化根本:深度学习推荐算法的五大范式组件”中我们提到了多层感知器(MLP)、自编码器(AE)、受限玻尔兹曼机(RBM)、卷积神经网络(CNN)、循环神经网络(RNN)等。
09 和 10 课时,我们总结了以 MLP 为基础组件的模型演化方法,其中 MLP 基础组件只是一种最常用的目标拟合范式。
因此这一讲,我们看一下其他基础组件在深度推荐算法中的组合方式。
基于自编码网络(AE)的方法
首先,我们看一下基于自编码网络(AE)的方法。在 08 讲中了解到,我们可以利用自编码器对已有的数据进行拟合,且具备良好的泛化能力,也就是说 AE 具备了预测数据的能力。
而 AutoRec 模型正是这种思想的延伸,接下来我们一起看一下。
1.基于自编码器的协同过滤(AutoRec)模型
基于自编码器的协同过滤(AutoRec)模型利用自编码器对协同过滤的共现矩阵进行重建,从而完成用户和物品的隐向量表征,然后再利用 AE 的结果对缺失评分进行预测。
关于 AutoRec 模型的框架图如下所示:
如图所示,这是基于物品的 AE 模型架构例子。对于每一个物品可以由每一位用户对该物品的评分组成,即为 r(i)。
同样,我们也可以构建基于用户的 AE 模型,即为 r(u)。
整个 AutoRec 模型通过利用两种 AE 将 r(i) 和 r(u) 映射到低维空间,并在输出中重新构建 r(i) 和 r(u),最后利用 AE 预测缺失的评分值。
与前述的 DMF 模型类比,可以看出二者的输入完全一样,用户向量通过用户对有过行为的物品评分进行表示,物品向量通过对其有过行为的用户的评分进行表示,二者均以输出用户和物品的隐向量表征为目标,二者均以进行表征向量“降维”为目标。
不同的是,DMF 模型采用的是 MLP 双塔结构,而 AutoRec 模型采用的是 AE 范式,MLP 双塔需要实现有监督学习,而 AE 需要实现无监督学习。
从以上可以看出,这里的 AE 范式相当于替代了 MLP 范式的作用,也就是说 AE 的本质与 MLP+MF 等同。
相较于前述 NCF 模型在用户和物品交互关系的基础上,再添加用户和物品画像特征等辅助信息从而提升模型效能的常规打法,这里我们同样可以“故技重施”,毕竟在机器学习领域利用更复杂的模型,参考更多维度的信息,加入更多的训练样本数据是提升模型准确率的不二法门。
另外在范式替换方式中,我们还有另外一条路可以走,那就是根据场景将简单范式替换为更加复杂更加强大的范式方法,通常情况下这就像战略导弹从普通弹头换上核弹头一样有效。
在 08 讲中我们介绍了自编码器(AE)有许多变体,如去噪自编码器(DAE)、边缘化去噪自编码器(mDAE)、稀疏自编码器(SAE)、收缩自编码器(CAE)和变分自编码器(VAE)等。
下面我们拿去噪自编码器(DAE)替换自编码器(AE)举例,能够集合这两种思想的模型就是 CDAE 模型。
2.协同去噪自编码器(CDAE)模型
协同去噪自编码器(Collaborative Denoising Auto-Encoders)模型针对 TopN 推荐问题,提出了一种新的 AE 模型来学习用户和物品的隐向量表征。
关于 CDAE 模型的框架图如下所示:
去噪自动编码器(DAE)是 AE 的变体,它通过让其部分损坏版本上重新构造每个数据点,强制使得其隐藏层变得更健壮,多数情况下采用添加高斯噪声等方式来完成。
如图所示,CDAE 采用用户对物品的评分作为输入,并加入了用户基本特征作为辅助信息。 比如 CDAE 在评分输入中加入了随机噪声以此提高模型的鲁棒性(健壮的意思)。
上面我们介绍了两者基于 AE 范式的深度方法——AutoRec 模型和 CDAE 模型,它们貌似凭借 AE 范式及其变体范式的一己之力,替代了原来基于 MLP 双塔结构的功能,难道基于 AE 范式的方法不再存在双塔结构了?这倒是不见得,这里就有一个基于 AE 范式的双塔模型,它就是 DCF 模型。
3.基于边缘化去噪自动编码器的深度协同过滤(DCF)模型
基于边缘化去噪自动编码器的深度协同过滤(Deep Collaborative Filtering,DCF)模型是一种将基于矩阵分解的协同过滤与边缘化去噪自动编码器(mDAE)紧密结合,以解决样本中评分甚至辅助信息过于稀疏而导致的隐向量表征学习不充分的问题的模型。
有关 DCF 模型的框架图如下所示:
如图所示,与前述 AutoRec 模型和 CDAE 模型不同的是,DCF 模型的用户特征和物品特征各自通过一个 AE 进行学习,同时加入了用户和物品的辅助信息,如用户的年龄、性别以及物品的类目、标题等,用户和物品的交互信息仍然做矩阵分解输出用户表征 U 和物品表征 V。
DCF 模型既需要保证 AE 对于用户和物品隐向量表征的提取准确,又需要保证矩阵分解结果 U 和 V 的有效性,故 DCF 可以看成是一个横过来的双塔结构。另外,DCF 模型选择 mDAE 作为特征提取器,主要是由于 mDAE 本身的高扩展性和低计算成本。
以上我们介绍了基于 AE 范式的方法,利用 AE 的强拟合能力可以对用户和物品进行表征。
一般来说,用户和物品要么由其本身的 ID 特征来表达,要么由其历史交互行为来表达,AutoRec 是相对简单的模型,CDAE 在 ID 特征基础上加入了用户历史行为作为表达。用历史交互过的行为来作为用户或者物品的表达,比用 ID 本身表达效果更好,但模型也变得更复杂。
DCF 模型在 AutoRec 和 CDAE 模型的基础上使用了辅助信息,如物品侧特征除了物品 ID 本身之外,还有文本特征、图文特征、视频帧特征等其他信息,从而提高了模型的拟合能力。
那么除了 AE 范式之外,还有哪些范式能够为我们所用?下面我们一起看看与 AE 类似的受限玻尔兹曼机(RBM)在推荐领域的作用及其推荐模型。
基于受限玻尔兹曼机(RBM)的方法
基于受限玻尔兹曼机的协同过滤(RBM-CF)模型
基于受限玻尔兹曼机的协同过滤(RBM-CF)模型在业内首次将深度学习应用于推荐领域,使用 RBM 进行类 CF 操作,关于 RBM-CF 模型的框架图如下所示:
如图所示,RBM-CF 模型对传统 RBM 进行了改进。在可见层,它将评分数据以固定长度 0-1 向量进行表示,考虑评分的稀疏性,缺失的评分使用 Missing 单元进行填充,并使用 0-1 向量 r 记录当前物品是否被评分的情况,再针对每一个不同的用户训练一个 RBM。模型的输出为用户的隐向量表征,后续我们可以依照 UserCF 的操作方式使用用户隐向量表征计算用户之间的相似度。
RBM 是在推荐领域中最早被应用的神经网络模型,它的作用与 AE 相同,都是利用用户与物品的交互评分数据重构用户和物品的隐向量表征,从而实现对缺失评分的预测。因 RBM-CF 算法年代过于久远,目前已经不具备实操性。
近年来,随着非结构化多媒体数据(比如图像、文本、音频、视频等)日益增多,在处理非结构化多媒体数据方面,CNN 范式的卷积和池化操作具备天生的优势。下面我们一起看一下 CNN 范式在非结构化编码中的作用。
基于卷积神经网络(CNN)的方法
推荐领域利用 CNN 范式的这一优势对非结构化信息进行特征提取,并学习非结构化信息的隐向量表征。
1.卷积矩阵分解(ConvMF)模型
卷积矩阵分解(Convolutional Matrix Factorization,ConvMF)模型采用 CNN 范式提取物品文本信息的隐向量表征,然后将其作为辅助信息融合到推荐算法模型中,用以解决交互数据稀疏和冷启动等问题,进而提高模型评分预测精度。
关于 ConvMF 模型的框架图如下所示:
如图所示,上图中的蓝色框内为概率矩阵分解(PMF)部分,红色框内为 CNN 部分;下图为上图红色框内 CNN 部分的详细架构,它由嵌入层、卷积层、池化层、输出层四部分组成。
-
嵌入层将文档单词隐向量表征连接起来作为文档的隐向量表征;
-
输入卷积层提取上下文特征;
-
池化层从卷积层提取具有代表性的特征,并固定隐向量表征长度;
-
输出层根据特定任务将隐向量表征进行降维输出。
最后,CNN 网络的输出结果与 PMF 模块进行桥接,并将文档的隐向量表征作为物品 V 的高斯分布的均值,以此提升 PMF 的整体效能。
这里,我们可以把 ConvMF 看成是 CNN+PMF 串联而成的模型,它能有效捕获文档的局部特征。另外,如果 CNN 嵌入层使用预训练好的词向量,可以进一步提高系统的推荐性能。
09 讲我们介绍过基于 MLP 的双塔结构,使用两个“塔”各自构建两种类型的隐向量表征,例如用户和物品的隐向量表征,那么是否存在基于 CNN 的双塔结构呢?答案是肯定的,这就跟有人使双枪、双刀、双棍等双器械一样,虽然器械不同,但是武术要义有相通之处。
在目前的深度推荐算法中,一类思路是把各类模型范式(如 CNN 等)作为特征提取器,再从文本、图像、视频、音频等辅助信息中提取特征向量,再融合到推荐模型中提升效能,比如上述的 ConvMF 模型就是其中一种实现,再比如前面的基于 MLP 范式算法中我们也介绍了多种实现。
另外一类思路就是前述的双塔结构,使用两个并行的模型范式分别针对用户和物品提取特征,然后在两个范式输出之上搭建一个共享层,用来建模用户特征与商品特征之间的关联关系,从而将用户隐向量表征和物品隐向量表征映射到相同的特征空间。
对于 CNN 范式来说,这就是 DeepCoNN 模型需要做的事情。
2.深度合作神经网络(DeepCoNN)模型
深度合作神经网络(Deep Cooperative Neural Networks,DeepCoNN)模型采用两个并行的 CNN 范式模块分别提取用户侧和物品侧的评论信息特征,然后在最后一层进行融合,使得用户和商品之间的潜在因素可以进行交互。
关于 DeepCoNN 模型的框架图如下:
如图可知,DeepCoNN 模型由两个并行 CNN 范式再串联一个共享层组成。关于 CNN 网络中的卷积层、池化层、全连接层与通常的 CNN 构造相同,这里我们不再赘述。而这里的 Look-up 层则使用经过预训练的 Word2Vec 词向量,并按照原本的词序合并成用户或物品分别的词向量矩阵。
由于用户和物品的 CNN 范式的隐向量表征来自两个不同的特征空间不可比较,后接共享层就是为了把它们映射到同一个特征空间,这里共享层使用了 FM 作为评分器,对用户和物品的交互关系建模。
事实上,在前述基于 MLP 范式的模型介绍中,我们提到过因为最后需要通过相对简单的计算方式衡量两个向量之间的距离,两个塔输出的向量维度需要相同,而且因为双塔结构讲究两个塔之间的平衡性,通常两个塔的参数配置也要相同,而事实上作为反例,DeepCoNN 模型采用了共享层的方式,将用户和物品隐向量表征映射到了同一个特征空间,使得二者能够进行匹配计算。
前述 CNN 范式对非结构化信息进行特征提取方面具备优势,但是这种提取形式使得各个对象相互独立,无法建模对象之间的连续变化信息。而 RNN 范式非常适合序列数据处理,所以成为捕获交互的时间动态、用户行为以及具有顺序信号(如文本,音频等)的辅助信息的合适选择。
下面我们一起看一下 RNN 范式在序列化编码中的作用。
基于递归神经网络(RNN)的方法
基于门控循环单元的推荐(GRU4Rec)模型
基于门控循环单元的推荐(Gated Recurrent Unit for Recommendations,GRU4Rec)模型是首例将 RNN 范式应用于会话推荐场景的神经网络模型。我们可以利用 RNN 范式中的门控循环单元(GRU)来捕获用户行为之间的长期依赖性,以预测会话中的下一个行为。
基于门控循环单元的推荐(GRU4Rec)模型整体较为简单,但已基本上体现了 RNN 范式在深度模型中的作用,有关 GRU4Rec 模型的框架图如下所示:
如图所示,模型输入层依次将同一会话的交互物品序列以 one-hot 形式输入到模型中,然后将物品高频稀疏特征转化为物品的降维隐向量表征。中间层为堆叠 GRU 单元,用于捕获和建模行为序列信息。最后为全连接层用于拟合目标函数,输出下一次物品被点击的概率。
基于门控循环单元的推荐(GRU4Rec)模型的优缺点呢?应用场景是什么?有什么注意事项?
在没有应用 RNN 范式之前,深度模型只能针对单个的用户或者物品进行建模,而 RNN 范式能够将交互序列数据整体进行建模,使得模型获得了对现实场景更全面的理解。
RNN 范式是近年来深度推荐模型演化中较为常用的方法,在前述阿里三部曲中我们也介绍过。
小结与预告
09、10、11 讲我们介绍了大部分基础范式在深度推荐模型演化当中所起的作用,以及模型结构演化过程。
最后结合本人目前的工作经验,关于深度推荐模型的演化我再分享两点。
-
没有银弹:没有一种深度范式能够适配所有的推荐场景。业务领域千差万别,也不会演化出一种深度推荐模型在所有数据集上都表现最优。
-
权衡利弊:既然没有银弹,那就意味着深度推荐模型的演化不会终止,也就是说我们需要永远在理想和现实当中做权衡。掌握所有模型演化规律之后,在工程领域的模型替换需要由简到繁,循序渐进。
道德经中“大道甚夷,而人好径”,说的就是大道平坦宽敞,人们往往都不愿意走,都喜好走捷径。这样做了之后往往不是“阴沟里翻船”,就是“欲速则不达”。所以 12 讲我们就将继续介绍深度推荐模型新的演化方向。
另外,如果你觉得本专栏有价值,欢迎分享给更多好友哦~