Addictive Multiplicative in NN

news/2024/11/17 3:48:24/

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

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

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

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

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

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


http://www.ppmy.cn/news/59169.html

相关文章

基于max30102的物联网病房监测系统(中断处理和主题逻辑)

目录 五、中断处理 六、主体框架 对采集数据的初始化 核心功能的实现 烟雾 通信帧格式 wifi接收数据的处理 OLED显示 五、中断处理 void SysTick_Handler(void) {TimingDelay_Decrement(); }void ESP8266_USART_INT_FUN(void) {uint8_t ucCh;if ( USART_GetITStatus (…

CSS(二)-- 选择器的运用(针对基本选择器和复合选择器的详细解析)

目录 1. 选择器的作用 2. 选择器的分类 3. 基本选择器 3.1 标签选择器 3.2 类选择器

手写【深拷贝】

JS中深拷贝的实现 JSON.parse(JSON.stringify())递归实现深拷贝 使用JSON.parse(JSON.stringify()) 实现 无法拷贝 函数、正则、时间格式、原型上的属性和方法等 递归实现深拷贝 es5实现深拷贝 源对象 const obj {name: 张桑,age: 18,hobby: [{name: 篮球,year: 5,loveSta…

Pinia入门-实现简单的用户状态管理

目录 一:pinia 是什么 二:pinia与vuex的区别 三:pinia的基本使用 3.1.安装 3.2.创建一个 pinia 实例 四:Pinia中的Store 4.1.什么是store 4.2.什么时候使用store 4.3.store的基本使用 4.4.state 4.5.getters 4.6.acti…

现代CMake高级教程 - 第 5 章:链接第三方库

双笙子佯谬老师的【公开课】现代CMake高级教程课程笔记 第 5 章&#xff1a;链接第三方库 案例 使用 tbb 库 main.cpp #include <tbb/parallel_for.h> int main() {tbb::parallel_for(0, 4, [&] (int i){printf("hello, %d!\n", i);}) }直接链接 tbb …

【JS笔记】JS常见的事件、事件传播、事件解绑、事件委托、阻止事件冒泡、阻止默认行为、正则表达式

目录 一、JS事件 1.1、事件介绍 1.2、绑定和解绑事件 (1)绑定事件 (2)解绑事件

【Vue.js】1668- 初中级前端必须掌握的 10 个 Vue 优化技巧

优化 Vue.js 应用性能是每个前端开发人员都需要关注的问题。本文我将分享 10 个初中级前端必须掌握的 Vue.js 优化技巧&#xff0c;无论您是正在学习 Vue.js&#xff0c;还是已经在应用开发中使用它&#xff0c;希望这些技巧都会对你的工作有所帮助。 1. 优雅的设置 v-for 中的…

AIGC提示词(Prompt)网站

目录 Learning PromptSnack PromptFlow GPTPrompt HeroPublic Prompts 整理的 AI提示词&#xff08;Prompt&#xff09;网站&#xff0c;让AI工具效率翻倍&#xff01; 我的Blog https://xxlab.tech/archives/aigc-ti-shi-ci-prompt-wang-zhan Learning Prompt https://learn…