Meta关于深度学习推荐系统的Scaling Law的研究

5944086480399fdc8311ee258145396a.jpeg

作者 | 番茄爱鸡蛋 

整理 | NewBeeNLP 

https://zhuanlan.zhihu.com/p/688913185

大家好,这里是 NewBeeNLP。今天看看 Meta 关于深度学习推荐系统 Scaling Law 的研究。

零、论文信息

  • 论文题目:Wukong: Towards a Scaling Law for Large-Scale Recommendation

  • 论文链接:https://arxiv.org/abs/2403.02545

  • 作者信息:所有作者均来自Meta

一、整体总结

本篇剑指一个问题,随着推荐系统Dense层(即除了embedding table以外的计算层)的参数量不断增加,推荐的指标会不会逐步增大呢。

本文给出了肯定的答案,在 一个拥有1460亿条目、720个特征的内部数据集 上逐步扩大Dense层的参数, 本文提出的模型WuKong的训练计算量从 1GFLOP/example扩展到100 GFLOP/example(100 GFLOP/example相当于GPT3的计算规模),Dense层参数规模从0.74B到17B,对应的性能指标展现出了不断提升的趋势。

本文整体贡献:

  • 提出了一个新的特征交叉结构,名为Wukong,在离线数据集上取得了最好结果

  • 汇报了推荐系统中的Scale Law, 在计算复杂度上,Wokong模型维持了大约两个数量级的增长稳定性,训练计算量翻两番,对应的性能就有0.1%的提升。

指的指出的是,Meta最近有不同的组在一个生成式推荐模型上也汇报了Scale Law这个现象,具体参看如下提问:

  • 如何评价Meta最新的推荐算法论文:统一的生成式推荐第一次打败了分层架构的深度推荐系统?https://www.zhihu.com/question/646766849

二、Wukong和Scale策略

2.1 特征模块

特征采取了分块设计:每个特征的维度采用一个 更小的子维度作为基本单元 (例如一般采用32维度,可以分为4个8维度的基本单元),然后可以给重要的特征采用更多的基本单元,从而获得更长的特征维度。

变长特征是可以带来一些效果的,也可以训练的时候先分块全长训练,之后采用featuredropout删减对应的单元。

再特征交叉的时候,每一个单元会作为独立的特征做参与交叉(保持单元长度一致就是为了方便做特征交叉)。

2.2 Wukong

整体而言,Wukong是一个比较常见的CTR模型类别,采用了是先利用Wukong Layer进行特征交叉,之后再利用MLP生成预测结果的结构。

32a8ed88f23460f98fb07ebbc0b6d09d.jpeg

如上图,每一个 Wukong Layer包含一个分解机模块(Factorization Machine Block, 简称FMB)和一个线性压缩模块(Linear Compress Block,简称LCB),最后将两个模块的output拼接,添加残差链接和LayerNorm。

假设某一个样本的特征矩阵是 具体Wukong Layer计算公式如下

其中FMB如下:

FM是一个特征交叉模块,文中采用了类似DCNv2的构造 来捕获高阶交叉。其中 , 即先压缩特征个数到 ,再计算交叉结果。最后FMB输出一个 的特征矩阵。

LCB如下

其中 是一个权重矩阵, 是一个超参数来指定输出的压缩后的embedding个数, 是第i层的embedding个数。

2.3 Scale 对应的参数

Wukong主要调节以下参数进行Scale。

  • l : 交互堆栈中的层数。

  • n_F: FMB 生成的嵌入数量

  • n_L : LCB 生成的嵌入数量

  • k:优化 FM 中的压缩嵌入数量

  • MLP:FMB 的 MLP 中的层数和 FC 大小

论文中提及,他们首先放大 l ,接着才放大别的参数。

三、实验结果

3.1 公开数据集离线对比

这里直接简略看一下对比结果,详细的设定可以直接参看论文。

d29aa895ca2891d66f519d6dec1a03c7.jpeg

可以看到Wukong再这些数据集上效果也是不错的。

3.2 在Meta的内部数据集上的实验

这个就是这篇论文的核心内容了。我们详细关注下他的设置内容

3.2.1 数据集和实验设置

  • 数据集:该数据集总共包含 146B 个条目,有 720 个不同的特征。每个特征描述了项目或用户的属性。有两个与此数据集相关的任务:(Task1)预测用户是否对某个项目表现出兴趣(例如,单击)和(Task2)是否发生转换(例如,喜欢、关注)。

  • 训练设置: 所有embedding长度设置为160,不随着Dense层的Scale而增大维度 。训练dense层用Adam,训练embedding table用 Rowwise Adagrad。 Batch Size 设置为 262,144,每个训练实例都会利用128或者256个H100 GPU

  • 一些指标介绍

    • GFLOP/example:每个示例的千兆浮点运算(Giga Floating Point Operations per example)

    • PF-days:PF-days 训练计算总量相当于运行一台以 1 PetaFLOP/s 运行的机器 1 天。

    • #Params:模型大小通过模型中参数的数量来衡量。embedding table大小固定为 627B 参数。

    • Relative LogLoss:相对于固定基线的 LogLoss 改进。 在此数据集上0.02% 的相对 LogLoss 改进被认为是显著

3.2.2 实验结果

根据附录,每一个Wukong样本点的参数设置如下:

根据计算量绘制性能提升图如下

dd75f9429f98049663cb0a15fc7b3662.jpeg

可以看到,随着训练计算量的膨胀,logloss稳定下降。根据论文的结论, Wukong 在模型复杂性上保持了两个数量级的缩放法则——大约相当于复杂性每翻两番就提高 0.1%。

d23519d6f3078daf00eb0afea0615802.jpeg

作者也根据模型参数量绘制了类似的结果

70f680321bffac562630292b085e8e96.jpeg

那么究竟给哪些模块加参数加计算是比较有效果的呢,下图也给出了一定的解答

26a513f296e522c2b5ba17c48db4bbed.jpeg

可以观察到 n_F 和 l 这些与特征交叉相关的参数提升比较显著。k,n_F,n_L 的组合效果也不错,提升MLP的参数也有效果,但是单独提升 n_L 没什么效果。(感觉大部分与特征交叉还有最后MLP相关的都是比较有效果的)

附录:胡言乱语

Scale Law还是展示的比较清晰的,通过加大对特征交互的计算成本投入,可以获得性能提升也很符合直觉,有一点小遗憾是没有涉及序列建模的部分。当然推荐的计算时延要求也远超LLM,如何在单位时间内塞下更多的计算量也是技术活。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

更好的预测方法:使用前后控制图

我已经写了很多关于阶段控制图的文章,因为我认为它们是一个非常好的可视化工具。它们有许多用途而且很容易创建。除了有助于分析改进或变更前后的流程之外,它们还是更准确预测或预报的重要第一步。 不同的预测方式或用不同的方法预测 有很多不同的方法…

硅纪元视角 | Speak火了!3个月收入翻倍,OpenAI为何频频下注?

在数字化浪潮的推动下,人工智能(AI)正成为塑造未来的关键力量。硅纪元视角栏目紧跟AI科技的最新发展,捕捉行业动态;提供深入的新闻解读,助您洞悉技术背后的逻辑;汇聚行业专家的见解,…

信息技术课堂上如何有效防止学生玩游戏?

防止学生在信息技术课堂上玩游戏需要综合运用教育策略和技术手段。以下是一些有效的措施,可以用来阻止或减少学生在课堂上玩游戏的行为: 1. 明确课堂规则 在课程开始之初,向学生清楚地说明课堂纪律,强调不得在上课时间玩游戏。 制…

【十八】【QT开发应用】标签页QTabWidget的常见用法

#include "widget.h" // 包含自定义的widget头文件 #include <QHBoxLayout> // 包含QHBoxLayout头文件&#xff0c;用于水平布局 #include <QTabWidget> // 包含QTabWidget头文件&#xff0c;用于创建标签页控件 #include <QDebug> // 包含QDebug头…

医院人员管理项目01_下午,css

文章目录 层叠样式表在html文件中引入css样式表&#xff1a;2种方法如何设置样式&#xff1a;3种css选择器继承权重 层叠样式表 引入html网页中的方式&#xff0c;共3种。 行内样式&#xff08;内联样式&#xff09;&#xff1a;直接在html中设置 内部样式&#xff1a;css代…

学诚教育在线管理系统-计算机毕业设计源码98076

目 录 摘要 1 绪论 1.1 选题背景与意义 1.2开发现状 1.3论文结构与章节安排 2 开发环境及相关技术介绍 2.1 MySQL数据库 2.2 Tomcat服务器 2.3 Java语言 2.4 Spring Cloud框架介绍 3 教育在线管理系统系统分析 3.1 可行性分析 3.1.1 技术可行性分析 3.1.2 经济可…

【Proteus仿真】基于Stm32的八路抢答器~

【Proteus仿真】基于Stm32的八路抢答器~ 文档资料在购买后即可获得&#xff08;如有问题可通过微信公号或b站私信联系我&#xff09; 资料包括&#xff1a; 1. Proteus仿真源文件2. keil源代码功能描述: 1. 抢答时间设置显示2. 选手得分用时显示3. 选手数据查询/清楚4.抢答…

Java | Leetcode Java题解之第213题打家劫舍II

题目&#xff1a; 题解&#xff1a; class Solution {public int rob(int[] nums) {int length nums.length;if (length 1) {return nums[0];} else if (length 2) {return Math.max(nums[0], nums[1]);}return Math.max(robRange(nums, 0, length - 2), robRange(nums, 1,…

App UI性能测试 - PerfDog使用全教程

App 性能测试指标: 响应、内存、CPU、FPS、GPU渲染、耗电、耗流等。 PerfDog的性能数据更加全面,所以下面以PerfDog来介绍安装使用流程及测试数据的获取与分析。 官网: PerfDog | 全平台性能测试分析专家 第一步,先访问官网进行注册, 注册好账号后,点击下载PerfDog,下…

【算法笔记自学】第 7 章 提高篇(1)——数据结构专题(1)

7.1栈的应用 #include <iostream> #include <string> #include <stack> using namespace std;int main() {int n, x;string action;cin >> n;stack<int> s;for (int i 0; i < n; i) {cin >> action;if (action "push") {ci…

昇思25天学习打卡营第19天|Pix2Pix实现图像转换

1. 学习内容复盘 Pix2Pix概述 Pix2Pix是基于条件生成对抗网络&#xff08;cGAN, Condition Generative Adversarial Networks &#xff09;实现的一种深度学习图像转换模型&#xff0c;该模型是由Phillip Isola等作者在2017年CVPR上提出的&#xff0c;可以实现语义/标签到真实…

生活商城app微信小程序模板源码

红色的卷皮折扣电商app小程序&#xff0c;综合生活购物商城app小程序前端模板下载。包含&#xff1a;首页、分类、购物车、列表、商品详情、个人中心、优惠券、全部订单、生活超市专题等等。一套很全通用的商城app小程序模板。 生活商城app微信小程序模板源码

YOLOv8标签可视化

这一章主要是为了可视化YOLO标签设置的,为什么要进行可视化呢,因为很多时候我们标注好数据还需要进行转换成YOLO格式,这期间如果出现转换的错误,而我们没有去检查标签的话,有可能导致训练无法得到很好的一个结果,所以需要我们对YOLO标签进行可视化来检查标签的情况。 这部…

《梦醒蝶飞:释放Excel函数与公式的力量》9.5 IRR函数

9.5 IRR函数 IRR函数是Excel中用于计算内部收益率&#xff08;Internal Rate of Return, IRR&#xff09;的函数。内部收益率是评估投资项目盈利性的重要指标&#xff0c;它表示使投资项目的净现值&#xff08;NPV&#xff09;为零的折现率。 9.5.1 函数简介 IRR函数通过一系…

【免费数字孪生平台】零代码制作智慧农业蔬菜大棚可视化

一&#xff0e;智慧农业的价值 智慧农业&#xff0c;作为农业中的智慧经济形态&#xff0c;是现代科学技术与农业种植深度融合的产物。它通过将物联网、云计算、大数据、人工智能等现代信息技术集成应用于农业生产中&#xff0c;实现了农业生产的无人化、自动化和智能化管理。…

第十一节 动态面板加密解密显示

在原型中我们经常会遇到文件加密与解密显示问题&#xff0c;下面以一个简单案例来说明实现怎么切换明文与密文不同显示方式案例说明&#xff1b; 1、添加动态面板 2、设置加密与不加密 3、添加动作事项 注意为可见时要设置面板状态向前循环&#xff0c;上一项&#xff0c;否则…

“一稿多投”是学术不端,还是作者的合法权利?

【SciencePub学术】“一稿多投”一直被认为是不端的行为&#xff0c;但这个“规矩”是在纸质时代信息沟通不畅的情况下制定的&#xff0c;近年来有关取消这一观念的声音已振聋发聩&#xff01; 詹启智的《一稿多投是著作权人依法享有的合法权利一一兼论一稿多发后果的规制》一文…

3115.力扣每日一题7/2 Java

博客主页&#xff1a;音符犹如代码系列专栏&#xff1a;算法练习关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 目录 思路 解题方法 时间复杂度 空间复杂度 Code 总结 思路 这道题的…

PDM系统中物料分类与编码规则生成方案

在企业管理软件中&#xff0c;PDM系统是企业管理的前端软件&#xff0c;用于管理研发图纸、BOM等数据&#xff0c;然后生成相关物料表或BOM&#xff0c;递交给后端ERP系统进行生产管理。在PDM系统中&#xff0c;有两种方式可以生成物料编码。 1第一种是用户可以通过软件接口将…

浅谈MyBatis的工作原理以及核心流程

引言 在行内日常开发工作中&#xff0c;基于Java的研发项目会大量的与数据库做交互访问。传统方式是通过JDBC访问数据库&#xff0c;不仅需要繁琐的手工编写很多代码&#xff0c;增加了工程项目的复杂度&#xff0c;而且存在难以维护&#xff0c;配置不够灵活等特点。为解决传…