什么是记忆能力与泛化能力

更多NLP文章在这里:

https://github.com/DA-southampton/NLP_ability

谈到WDL,一个经常看到的总结是:Wide and Deep 模型融合 wide 模型的记忆能力和 Deep 模型的泛化能力,进行两个模型的联合训练,从而兼顾推荐的准确性和多样性。

理解上面这句话,还是要先弄清楚:什么是记忆能力,什么是泛化能力?

1. 什么是记忆能力与泛化能力
1.1记忆能力

我们先说记忆能力,从中文的角度理解,记忆能力就是之前做过的事情,在后面做同样的事的时候会利用到之前的经验和教训。

进一步,记忆能力就是对之前学习到的经验或者说规律的遵守。

原论文是这么说的:

Memorization can be loosely defined as learning the frequent co-occurrence of items or features and exploiting the correlation available in the historical data.

从这段话可以看出来记忆能力分为两个部分:

  1. 从历史数据中学习共现的物体/特征组合—>这就对应到上面谈到的经验规律
  2. 在预测的时候利用到这种学习到的这种相关性—>这就对应到上面谈到的对经验的遵守。

在这里,我想提一下,在第一点中提到的 “学习共现的物体/特征组合” 的主体是谁?

最开始我认为是模型,后来认为不是。

因为LR模型属于广义线性模型,本身不具备对特征之间非线性关系进行建模。

所以需要我们从历史数据中找到有用的特征组合(当然我们也可以使用一些工具来找到哪些特征组合是有效的),人为的加入到模型中,给LR模型增添非线性建模能力。

简单来说,记忆能力是一种共现规律,表现方式为特征交叉,它需要人为或者通过工具从历史数据中找到,并放入到模型中作为新的特征,从而增加非线性建模能力。

记忆能力过强会出现一个问题,就是推荐物体的单一化。

原文是这么说的:

Recommendations based on memorization are usually more topical and directly relevant to the items on which users have already performed actions.

1.2泛化能力

对于泛化能力,原论文是这么说的:

Generalization, on the other hand, is based on transitivity of correlation and explores new feature combinations that have never or rarely occurred in the past.

关键词是:从未或者很少出现的特征组合

神经网络无需人为构建组合特征,有着自动做特征组合的方式。可以通过对类别特征做embedding,这样就是在测试集中出现在训练集中没有出现过的特征组合方式,也可以使用embedding进行计算得到对应的值。

综合来说,LR模型有着更强的记忆能力,Deep模型有着更强的泛化能力。

2.模型架构图

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

整个模型分为三个部分,左边的Wide模型,右边的Deep模型,最后输出的Softmax/sigmoid函数。

Wide使用的是LR模型,这里需要注意的点是LR的输入特征包含两部分:

  1. 原始特征
  2. 特征交叉之后的特征(特征交叉之前各自特征需要one-hot)

Deep模型使用的是前馈神经网络,会对类别特征做embedding,连续特征不动直接输入就好(需要提前做好特征工程)。

联合训练,Wide使用FTRL算法进行优化,Deep模型使用AdaGrad进行优化。

在实际中,Wide和Deep部分直接使用一个优化器就可以。

3.实践
3.1 实践架构

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这个是原论文中的架构图,我们自己在实践的时候不一定完全遵守。比如架构图中Wide部分只是使用了交叉特征,我们在使用的时候可以把原始的离散特征或者打散后的连续特征加过来。

3.2 多模态特征的加入

有些时候对于用户或者待推荐的物体会有Text和Image,为了增加效果,可能会使用到多模态特征。

(是否需要加入多模态特征需要大家亲自试,很有可能吭哧吭哧写了好久代码调试通了,最后发现效果提升不多甚至还会降低,哭了)

我这里给几个简单的思路。

  1. Text 和 Image 的 embedding 向量,采用 和Wide模型一样的方式加入到整体模型中就可以了。至于 两者的Embedding向量如何获取,就看你自己了。
  2. Text和Image之间使用attention之后再加入
  3. Text和Image 和Deep 模型的输出拼接之后再做一次处理
  4. 多看 Paper-给个关键词:Multimodal Fusion
3.3 特征工程小记录

在详细写一个特征工程的文章,写完之后会放出来。

后记

读完整个论文,让我去回顾整个模型,给我这样一个感觉:

对于隐藏在历史数据中的共现特征关系,Deep模型是可以学习到的。但是WDL模型做的是,把其中的一部分(容易观察出来或者通过其他工具找出来的特征组合)放到LR这边,从而显式的加入到模型中。

往极端的方面想一下,LR模型这边更像是一种规则,是对Deep模型输出的补充。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/131814.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

IPV6网络技术详细介绍

无状态和有状态并不是相互对立的,他们可以同时存在,也就是一张网卡上可以同时出现通过RA生成的IP以及通过DHCPv6获得的IP。 从图中可以看到,顺序为: 1、Stateless自动配置“链路本地地址”2、Stateless自动配置“全球地址”&…

解决Scrapy爬虫多线程导致抓取错乱的问题

目录 一、概述 二、问题分析 三、解决方案 四、案例分析 五、总结 一、概述 Scrapy是一个流行的Python爬虫框架,可以轻松地抓取网页数据并对其进行解析。然而,在抓取过程中,如果使用多线程进行并发处理,可能会遇到数据抓取错…

基于SSM的学生就业管理系统设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

【安卓13】谷歌原生桌面launcher3源码修改,修改桌面布局(首屏应用、小部件、导航栏、大屏设备任务栏)

前言 近期接到一个关于谷歌EDLA认证的需求,我负责的是谷歌原生桌面布局的修改,通过研究源码,将涉及到了一些修改思路发出来,大家可以参考一下有没有对你有用的信息。主要修改内容有: 1、搜索栏、底部导航栏未居中 2、…

RISC-V处理器设计(五)—— 在 RISC-V 处理器上运行 C 程序

目录 一、前言 二、从 C 程序到机器指令 三、实验 3.1 实验环境 3.11 Windows 平台下环境搭建 3.12 Ubuntu 平台下环境搭建 3.13 实验涉及到的代码或目录 3.2 各文件作用介绍 3.2.1 link.lds 3.2.2 start.S 3.2.3 lib 和 include 目录 3.2.4 common.mk 3.2.5 demo …

数据库安全:InfluxDB 未授权访问-Jwt验证不当 漏洞.

数据库安全:InfluxDB 未授权访问-Jwt验证不当 漏洞. InfluxDB 是一个开源分布式时序,时间和指标数据库。其数据库是使用 Jwt 作为鉴权方式,在用户开启认证时,如果在设置参数 shared-secret 的情况下,Jwt 认证密钥为空…

普华永道于进博会首发“企业数据资源会计处理一体化平台”

11月6日,在第六届中国国际进口博览会上,普华永道发布企业数据资源会计处理一体化平台(英文名为Data Accounting Platform,简称DAP)。该产品以普华永道“五步法”数据资源入表路径为理论依据,依托多年来普华…

QGIS导出Geoserver样式加载

1.在QGIS中加载并设计样式 加载数据之后按F7键即可打开样式编辑器 可以右键图层,点击属性中的符号化,有一个“基于规则”,可以设定规则或者比例尺范围。可以实现一定比例尺缩放可见或不可见的效果。 2.设计完样式之后右键图层导出 选择保…

【MATLAB源码-第75期】基于模拟退火算法(SA)的栅格路径规划,输出做短路径图和适应度曲线。

操作环境: MATLAB 2022a 1、算法描述 模拟退火算法是一种启发式优化算法,通常用于解决组合优化问题,例如旅行商问题和图着色问题。它模拟了固体材料在退火过程中逐渐冷却达到稳定状态的行为,以寻找问题的全局最优解。 以下是模…

幸运素数(找出给定区间的所有幸运素数)

从键盘输入一个区间,程序判定输出区间的所有幸运素数。 (笔记模板由python脚本于2023年11月11日 12:44:43创建,本篇笔记适合熟悉python整型数据类型和基本编程技巧的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.python.o…

面试题:说一下公司常用MySQL分库分表方案

文章目录 一、数据库瓶颈1、IO瓶颈2、CPU瓶颈 二、分库分表1、水平分库2、水平分表3、垂直分库4、垂直分表 三、分库分表工具四、分库分表步骤五、分库分表问题1、非partition key的查询问题2、非partition key跨库跨表分页查询问题3、扩容问题 六、分库分表总结 一、数据库瓶颈…

前端技术搭建飞机大战小游戏(内含源码)

The sand accumulates to form a pagoda ✨ 写在前面✨ 功能介绍✨ 页面搭建✨ 样式设置✨ 逻辑部分✨ 写在前面 上周我们实通过前端基础实现了弹珠游戏,当然很多伙伴再评论区提出了想法,后续我们会考虑实现的,今天还是继续按照我们原定的节奏来带领大家完成一个飞机大战游…

什么是特权会话管理

特权会话是由具有管理权限的用户在访问 IT 基础架构中的系统、设备或应用程序(本地或远程)时启动的 Internet 会话,包括在该会话期间执行的所有活动。 特权会话可以是数据库或安全管理员,通过 RDP 或 SSH 会话访问数据中心的机密…

欧拉角(横滚角、俯仰角、偏航角)、旋转矩阵、四元数的转换与解决万向节死锁

1、概述 物体的位姿(位置和方向)的描述方法一般使用两个坐标系来表示,一个是世界坐标系或地面坐标系,这里我都叫做地面坐标系吧,属于参考坐标系;另一个是自身的坐标系,以飞机为例来讲述一些常见…

刚学C语言太无趣 推荐一个好用易学的可视化框架:EasyX。VC6.0就能写

很多同学在大一刚学C语言时,是不是很好奇为什么别人编程都在做软件,而自己只能面对着黑窗口进行 printf ? EasyX,C语言可视化编程。 分享我大一时候做的一个项目,用 VC6.0 开发的一款画图软件: 这个软件源…

Windows ObjectType Hook 之 SecurityProcedure

1、背景 Object Type Hook 是基于 Object Type的一种深入的 Hook,比起常用的 SSDT Hook 更为深入。 有关 Object Type 的分析见文章 《Windows驱动开发学习记录-ObjectType Hook之ObjectType结构相关分析》。 这里进行的 Hook 为 其中之一的 SecurityProcedure。文章…

图神经网络 (GNN)

目录 一、GNN介绍1.1引入1.1.1图的介绍1.1.2怎样将内容表示成图1.1.4图神经网络是在做什么 1.2基本概念 二、GNN流程2.1聚合2.2更新2.2.1一次GNN操作 2.3循环2.3.1多层GNN操作2.3.2能做什么 三、GNN算法原理3.1数据3.2变量定义3.3GNN算法3.3.1Forward3.3.2Backward 四、GNN优势…

使用idea插件快速生成arthas命令

这里分享一个插件,叫做arthas idea。 这个插件我主要是用来在本地生成一些要使用的arthas命令,然后复制到线上使用,这样可以避免记忆大量的arthas命令,加速排查效率,不过哪种情况要用哪些arthas命令,还是需…

直播间自动评论神器的运行分享,与开发需要到的技术分析

先来看实操成果,↑↑需要的同学可看我名字↖↖↖↖↖,或评论888无偿分享 随着互联网的发展,直播带货越来越受欢迎。为了更好地服务观众,许多直播间开始使用自动回复机器人。本文将介绍直播间自动回复机器人需要用到的技术和流程。…

合成数据如何改变制造业

人工智能正在工厂车间使用,以识别生产线中的低效率。它可以有效地预测设备何时需要维护,以避免停机。人工智能被用于发现产品中的缺陷。 为了完成所有这些工作,使用从人工智能应该学习的过程中收集的数据来创建或训练模型。对于缺陷识别&…