Addictive & Multiplicative in NN

特征交叉是特征工程中的重要环节,在以表格型(或结构化)数据为输入的建模中起到了很关键的作用。

特征交互的作用,一是尽可能挖掘对目标有效的模式、特征,二是具有较好的可解释性,三是能够将对数据的洞见引入建模中。搜广推算是一个典型的以表格型数据为输入的场景了,长久以来都对特征的构建很重视。学界和业界针对特征交叉也是做了很多工作,各种特征交叉方案层出不穷,如GBDT+LR、FM、Wide&Deep、DeepFM、DCN、xDeepFM等,可见特征交叉之重。当然,现在深度学习的推广,场景数据来源也更多样化和复杂化,特征工程的作用势微、成本增大。这里主要对AddictiveMultiplicative两种类型的交叉做一个回顾和介绍。当然,并不局限于推荐系统中。

对于两个特征x1,x2,它们的加性操作为:ax1+bx2+c,可以看出这很类似于逻辑回归中的操作,乘性操作为:ax1x2+c。从这两种操作的次数来看,加性操作是一阶的,乘性操作是二阶的。因此,FM在LR地基础上引入了不同特征相乘后的交叉特征,即包含了更高阶的特征。

更广泛地来看,脱离了推荐场景后,如果我们有两个输入x,z,输入可以是标量或者向量,两个输入的特征交叉(此时或许可以给一个更泛化的名字,融合?)可以描述为:

y=ϕ(x,z)

在论文On Multiplicative Integration with
Recurrent Neural Networks
中,加性操作为:y=Wx+Uz+b,乘性操作为:y=WxUz+b,其中为Hardmard product。在乘性操作中,WxUz可以互相约束(控制),这一操作在LSTM和GRU中都很常见。除了融合方式上的不同,加性和乘性还有什么不同呢?这篇文章还从梯度的角度进行了分析,简单来说就是在循环神经网络中乘性操作能缓解梯度消失和爆炸问题。

偶然发现一篇从统计视角介绍变量间交互作用的博文:交互作用: 相加交互,相乘交互。在这篇博文里,从统计的角度讨论了两个变量间的交互,即相互影响,讨论了相加交互和相乘交互。插一嘴,如果沿着这个讨论下去,或许和因果推断更接近了。

posted @ 2023-05-05 18:02  Milkha  阅读(24)  评论(0)    收藏  举报
编辑推荐:
· C#.Net 筑基-优雅 LINQ 的查询艺术
· 一个自认为理想主义者的程序员,写了5年公众号、博客的初衷
· 大数据高并发核心场景实战,数据持久化之冷热分离
· 运维排查 | SaltStack 远程命令执行中文乱码问题
· Java线程池详解:高效并发编程的核心利器
阅读排行:
· C#.Net筑基-优雅LINQ的查询艺术
· Cursor生成UI,加一步封神
· 一个基于 .NET 8 开源免费、高性能、低占用的博客系统
· 为什么说方法的参数最好不要超过4个?
· 接口设计的原则:构建优雅API的完整指南
点击右上角即可分享
微信分享提示