一文了解深度推荐算法的演进

近些年,随着深度学习理论,GPU 和 CPU 等计算机硬件,TensorFlow、Caffe、PyTorch 等算法平台的发展,深度学习算法在个性化推荐、计算机视觉、自然语言处理、语音识别等领域大放光彩 。本文从神经网络结构的角度梳理深度推荐算法的发展,把近几年业界主流的算法归纳为四个阶段的网络结构:Embedding+MLP 的网络结构,基于特征组合的网络结构,基于用户行为序列的网络结构和融入知识图谱的网络结构 。
1 基于 Embedding+MLP 的网络结构2016 年,谷歌发表的 Wide&Deep 模型[1]和 YouTube 深度学习推荐模型[2]在业界引起了广泛的关注 。在当时,推荐领域的深度学习算法落地还非常少,大多数公司还处在使用 CF(协同过滤)进行召回和 LR(逻辑回归)进行排序的阶段,工程师们把主要精力花在特征挖掘上来提升效果 。这两篇论文的发表给大家带来了新方向,深度学习推荐算法的相关论文也如雨后春笋般涌现 。
谷歌的这两个模型都是基于 Embedding + MLP 的网络结构 。Embedding 的应用使得深度学习算法有了强有力的离散特征处理能力,MLP(多层感知机)使得算法有了强大的非线性拟合能力 。两者的配合使用,模型的拟合能力大大超越了使用 0-1 离散特征的 LR 模型 。Embedding + MLP 的网络结构也成为了当前深度学习推荐算法的基础结构 。
1.1 YouTube Model谷歌在《Deep Neural Networks for YouTube Recommendations》[2]论文中提出的召回模型不仅算法具有创新性,而且在大规模召回的工业场景中非常实用 。通过抽取最后一层的用户向量和视频向量,配合高效的近邻搜索算法,可以实现工业级的在线大规模召回 。这篇论文有更多的技术细节值得深究,可参考知乎的一些解读,这里不在赘述 。e.g. https://zhuanlan.zhihu.com/p/52169807

一文了解深度推荐算法的演进

文章插图
 
1.2 Wide&Deep Model
一文了解深度推荐算法的演进

文章插图
 
在《Wide & Deep Learning for Recommender Systems》[1]中,Wide 侧使用的是线性结构 y= w*x +b,通过对 0-1 离散特征的交叉组合,模型可以非常有效地学到这部分可解释性非常强的信息 。Deep 侧则采用了 Embedding+MLP 的结构,通过 Embedding 把稀疏高维离散特征转化成了低维稠密的连续特征,并将该特征和连续类特征拼接在一起放入 MLP 层,通过 MLP 的非线性处理能力去发现线性模型无法捕捉的更深层次特征组合效应 。两部分模型的联合使用带来了超越传统模型的效果 。
2 基于特征组合的网络结构特征工程是整个推荐工作中的重要组成部分,特征工程能带来很好的效果提升,但同时也耗时耗力 。深度学习算法天然有着强大的拟合能力,随着神经网络结构的发展,特征工程的复杂度和必要性在不断的在降低,工程师们可以把更多的精力聚焦于算法的优化上 。
2.1 DeepFM
一文了解深度推荐算法的演进

文章插图
 
在 Wide&Deep 的模型中,Wide 侧 0-1 离散特征的交叉组合带来了很好的效果,但需要人工进行特征工程 。在 2017 年发表的《DeepFM:A Factorization-machine based Neural Network for CTR Prediction》[3]的模型中,离散特征经过 Embedding 层后获得的低维稠密向量,通过在 FM Layer 进行两两的 Inner product 操作实现了 Order-2 的特征组合 。DeepFM 的应用,使得这个模型基本不需要特征工程,而且性能在某些数据集上超过了 Wide&Deep 模型 。
仔细对比 Wide&Deep 和 DeepFM,会发现 DeepFM 只进行了 Order-2 和 Order-1 的特征组合,而 Wide&Deep 模型中的 Wide 侧实现了更高阶的特征组合 。DeepFM 是否可以做更高阶的特征组合呢?直观的推想,在 FM Layer 可以加入 Order-3、Order-4 的特征组合,但是参数会急剧上升 。在 FM Layer,假设有 m 个 field,每个 field 经 Embedding 层后形成了 k 维稠密向量,Order-2 的特征组合需要 O(k*m^2)的参数,Order-3 的特征组合则需要 O(k *m^3)的参数,参数量的快速增长导致 DeepFM 不适合进行更高阶的特征组合 。
2.2 Deep&Cross Net
一文了解深度推荐算法的演进

文章插图
 
在《Deep & Cross Network for Ad Click Predictions》[4]这篇论文里直接提到了 FM、FFM 类的算法由于参数爆炸无法生成并处理高阶特征组合的问题 。如图 5 所示采用了一种比较巧妙的方式进行特征组合,在 DCN 的每一层 cross net 中,参数 w 是一个 n *1 维的向量(n 为交叉特征的维数),随着层数 k 的增长,参数是以 O(k *n)的速度增长,通过这样的设计,Order-3、Order-4 甚至更高阶的特征组合并不会带来参数的爆炸 。当然这里还是会有一些信息损失,与 DeepFM 相比较,每个交叉特征的参数并非完全独立 。


推荐阅读