[推荐]推荐算法之wide&deep

167 阅读4分钟

在推荐系统领域,Wide&Deep模型是一种结合线性模型记忆能力与深度神经网络泛化能力的混合模型,由Google于2016年提出,并成功应用于Google Play的推荐场景。其核心思想是通过联合训练(Joint Training)将两种模型的优势互补,以解决推荐系统中准确性多样性的平衡问题。


一、模型结构与原理

1. Wide部分(记忆能力)

  • 功能:通过广义线性模型(如逻辑回归)捕捉特征间的显式交互关系,尤其是人工设计的交叉特征(如用户安装应用A与曝光应用B的组合),以记忆高频共现的规则。
  • 输入特征:原始特征与交叉特征(如外积变换),例如AND(user_installed_app=QQ, impression_app=WeChat)
  • 优化方法:采用带L1正则化的FTRL算法,使模型稀疏化,保留重要特征组合。

2. Deep部分(泛化能力)

  • 功能:通过**深度神经网络(DNN)**学习稀疏特征的低维嵌入(Embedding),捕捉高阶非线性特征交互,泛化至未出现过的特征组合。
  • 输入特征:数值特征直接输入,类别特征通过Embedding转为稠密向量,并经过多层非线性变换(如ReLU激活函数)。
  • 优化方法:使用AdaGrad算法,适应稀疏特征的动态调整。

3. 联合训练与输出整合

  • 联合训练:Wide和Deep部分的输出通过加权求和(如逻辑回归层)结合,共享同一损失函数(如交叉熵损失),参数同步更新,而非独立训练后集成。
  • 输出公式
    [ \hat{y} = \sigma(w_{\text{wide}} \cdot x_{\text{wide}} + w_{\text{deep}} \cdot \phi(x_{\text{deep}}) + b) ] 其中,(\sigma)为Sigmoid函数,(x_{\text{wide}})为宽特征,(\phi(x_{\text{deep}}))为深度网络输出。

二、作用与优势

1. 解决推荐系统的核心挑战

  • 记忆性(Memorization):通过Wide部分学习高频特征组合(如用户安装应用A后倾向安装应用B),提升推荐的准确性。
  • 泛化性(Generalization):通过Deep部分挖掘潜在特征关系(如用户年龄与设备类型的隐含关联),增强推荐多样性。

2. 弥补单一模型的缺陷

  • 传统线性模型(如LR):依赖人工特征工程,无法泛化至未见特征组合。
  • 纯深度模型(如DNN):在稀疏数据中易过度泛化,推荐不相关内容。

3. 实际应用效果

  • Google Play案例:Wide&Deep相比单独Wide或Deep模型,线上安装率提升3.9%。
  • 性能优化:支持分布式训练与在线学习,兼顾实时性与扩展性。

三、适用场景与局限性

1. 适用场景

  • 输入特征稀疏的大规模分类/回归问题:如推荐系统、搜索排序、广告点击率(CTR)预估。
  • 需兼顾规则化与个性化推荐:例如电商推荐中既需热门商品曝光(记忆),又需长尾商品挖掘(泛化)。

2. 局限性

  • 依赖人工特征工程:Wide部分的交叉特征需人工设计,增加开发成本。
  • 特征分离输入:Wide与Deep部分需独立处理特征,无法自动提取低阶与高阶组合。

四、改进与对比

1. 与DeepFM的区别

  • DeepFM:通过引入因子分解机(FM)替代Wide部分,自动学习二阶特征交互,减少人工干预,同时共享Embedding层提升效率。

2. 后续演进方向

  • 高阶特征自动交叉:如DCN(Deep & Cross Network)通过显式交叉层学习高阶特征组合。
  • 动态特征选择:结合强化学习或注意力机制优化特征权重。

总结

Wide&Deep模型通过联合训练线性与深度模型,平衡了记忆性与泛化性,成为推荐系统领域的经典框架。其核心价值在于解决了单一模型在稀疏数据中的局限性,并在实际业务中验证了有效性。尽管存在依赖特征工程的不足,但其设计思想为后续模型(如DeepFM、DCN)提供了重要基础。