推荐算法之Wide&Deep模型

前言

推荐系统进入深度学习领域以来,一共讲解了四个使用深度学习的模型了,今天来讲一下Wide&Deep模型,也是具有着里程碑意义的,前面讲解的AutoRec和Deep Crossing模型是在神经网络的复杂度和层数方面进行的进化,而这两个模型也是使用深度学习从用户和物品相似度的角度来进行系统推荐的。其中对AutoRec和DeepCrossing这两个模型有些遗忘的小伙伴可以看看我这篇文章,推荐算法之AutoRec与Deep Crossing模型,但是这两个模型在特征交叉这个方面并没有进行很合理的设计,更多的是使用了全连接层来增加了模型的复杂度和使得所有特征进行了一个统一的交叉。这样存在着很大的问题,即两个毫不相关的特征也较交叉在了一起,这就使得对模型权重有所影响。所以为了更好地使两两特征更好的交叉,于是新加披国立大学在2017年提出了基于深度学习的协同过滤模型NeuralCF。我在前面也进行了讲解,文章推荐系统之NerualCF。但是NeuralCF也存在这很多问题,比如这个模型是基于协同过滤的思想来构造的,所以在这个模型中并没有引入更多的其它类型的特征,这在实际应用中也是浪费了很多的有用信息。而PNN模型是在加入多组特征的基础上研究的特征交叉, 这个模型和Deep Crossing模型的架构类似, 只不过把Deep Crossing的stacking层换成了Product层, 也就是不同特征的embedding向量不再是简单的堆叠, 而是两两交互, 更有针对性的获取特征之间的交叉信息。同样的PNN模型也存在一些局限性,比如在我们进行复现的时候就明显感觉到这些特征虽然进行了很好的交叉,但是也同样是无差别交叉,这样会使得在一定程度上忽略了原始特征向量中包含的有价值信息。它们的演化关系依然拿书上的一张图片, 便于梳理关系脉络, 对知识有个宏观的把握:

从上面图里面也会看到Wide&Deep的重要性, 是处于一个核心的地位, 后面的很多深度学习模型都是基于此模型的架构进行的改进。 所以该模型的提出在业界是有非常大的影响力的。 在这个模型中小伙伴们主要还是学习这个模型的思想。

一、模型的记忆能力和泛化能力

在CTR预估任务中,线性模型仍然很重要,主要是因为利用手工构造的交叉组合特征来使线性模型具有“记忆性”,模型记住共现频率较高的特征组合,往往也能达到一个不错的baseline,且可解释性强。但这种方式有着较为明显的缺点:首先,特征工程需要耗费太多精力。其次,因为模型是强行记住这些组合特征的,所以对于未曾出现过的特征组合,权重系数为0,无法进行泛化。为了加强模型的泛化能力,研究者引入了DNN结构,将高维稀疏特征编码为低维稠密的Embedding vector,这种基于Embedding的方式能够有效提高模型的泛化能力。但是,现实世界是没有银弹的。基于Embedding的方式可能因为数据长尾分布,导致长尾的一些特征值无法被充分学习,其对应的Embedding vector是不准确的,这便会造成模型泛化过度。

简单解释一下就是embedding的这种思路, 如果碰到了共现矩阵高度稀疏且高秩(比如user有特殊的爱好, 或者item比较小众) ,很难非常效率的学习出低维度的表示。这种情况下,大部分的query-item都没有什么关系。但是dense embedding会导致几乎所有的query-item预测值都是非0的,这就导致了推荐过度泛化,会推荐一些不那么相关的物品。相反,简单的linear model却可以通过cross-product transformation来记住这些excption rules。所以根据上面的分析, 我们发现简单的模型, 比如协同过滤, 逻辑回归等,能够从历史数据中学习到高频共现的特征组合能力,

  • 8
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值