谷歌引入自动网络设计,高效解决大规模深度推荐模型的特征嵌入问题
来源 | 深度传送门(ID:gh_5faae7b50fc5)
导读:本文主要介绍Google在大规模深度推荐模型上关于特征嵌入的最新论文。
一、背景
大部分的深度学习模型主要包含如下的两大模块:输入模块以及表示学习模块。自从NAS[1]的出现以来,神经网络架构的设计上正在往数据驱动的自动机器学习方向演进。不过之前更多的研究都是聚焦在如何自动设计表示学习模块而不是输入模块,主要原因是在计算机视觉等成熟领域原始输入(图像像素)已经是浮点数了。
输入模块:负责将原始输入转换为浮点数;
表示学习模块:根据输入模块的浮点值,计算得到模型的最终输出;
而在推荐、搜索以及广告工业界的大规模深度模型上,情况却完全不同。因为包含大量高维稀疏的离散特征(譬如商品id,视频id或者文章id)需要将这些类别特征通过embedding嵌入技术将离散的id转换为连续的向量。而这些向量的维度大小往往被当做一个超参手动进行设定。
一个简单的数据分析就能告诉我们嵌入向量维度设定的合理与否非常影响模型的效果。以YoutubeDNN[2]为例,其中使用到的VideoId的特征词典大小是100万,每一个特征值嵌入向量大小是256。仅仅一个VideoId的特征就包含了2.56亿的超参,考虑到其他更多的离散类特征输入模块的需要学习的超参数量可想而知。相应地,表示学习模块主要包含三层全连接层。也就是说大部分的超参其实聚集在了输入模块,那自然就会对模型的效果有着举足轻重的影响。
二、主要工作
Google的研究者们在最新的一篇论文[3]中提出了NIS技术(Neural Input Search),可以自动学习大规模深度推荐模型中每个类别特征最优化的词典大小以及嵌入向量维度大小。目的就是为了在节省性能的同时尽可能地最大化深度模型的效果。
并且,他们发现传统的Single-size Embedding方式(所有特征值共享同样的嵌入向量维度)其实并不能够让模型充分学习训练数据。因此与之对应地,提出了Multi-size Embedding方式让不同的特征值可以拥有不同的嵌入向量维度。
在实际训练中,他们使用强化学习来寻找每个特征值最优化的词典大小和嵌入向量维度。通过在两大大规模推荐问题(检索、排序)上的实验验证,NIS技术能够自动学习到更优化的特征词典大小和嵌入维度并且带来在Recall@1以及AUC等指标上的显著提升。
三、Neural Input Search问题
NIS-SE问题:SE(Single-size Embedding)方式是目前常用的特征嵌入方式,所有特征值共享同样的特征嵌入维度。NIS-SE问题就是在给定资源条件下,对于每个离散特征找到最优化的词典大小v和嵌入向量维度d。
这里面其实包含了两部分的trade-off:一方面是各特征之间,更有用的特征应该给予更多的资源;另一方面是每个特征内部,词典大小和嵌入向量维度之间。对于一个特征来说,更大的词典可以有更大的覆盖度,包含更多长尾的item;更多的嵌入向量维度则可以提升head item的嵌入质量,因为head item拥有充分的训练数据。而SE在资源限制下无法同时做到高覆盖度和高质量的特征嵌入。所以需要引入ME(Multi-size Embedding)。
NIS-ME问题:ME允许每个特征词典内不同的特征值可以有不同的嵌入向量维度。其实就是为了实现越频繁的特征值拥有更大的嵌入特征维度,因为有更多的训练数据;而长尾的特征值则用更小的嵌入特征维度。引入ME为每一个类别离散特征找到最优化的词典大小和嵌入向量维度,就可以实现在长尾特征值上的高覆盖度以及在频繁特征值上的高质量嵌入向量。下图给出了embedding使用的场景例子中,SE和ME使用上的区别。
四、NIS解决方案
要想为每个类别离散特征手动找到最优化的词典大小和嵌入向量维度是很难的,因为推荐广告工业界的大规模深度模型的训练时很昂贵的。为了达到在一次训练中就能自动找到最优化的词典大小和嵌入向量维度,他们改造了经典的ENAS[4]:
首先针对深度模型的输入模块提出了一个新颖的搜索空间;
然后有一个单独的Controller针对每一个离散特征选择SE或者ME;
其次可以根据Controller决策后考虑模型准确度和资源消耗计算得到reward;
最后可以根据reward使用强化学习A3C[5]训练Controller进行迭代。
搜索空间
Embedding Block的概念实际上就是原始Embedding矩阵的分块。如下图所示,假设原始Embedding矩阵大小是(10M,256),图a将其分成了20个Embedding Block。Controller为每个特征有两种选择:图b所示的SE以及图c的所示的ME。
Reward函数
主模型是随着Controller的选择进行训练的,因此Controller的参数实际上是根据在验证集上前向计算的reward通过RL追求收益最大化而来。考虑到在限定资源下的深度模型训练,这里的reward函数设计为同时考虑业务目标与资源消耗。对于推荐领域的两大主要任务:信息检索和排序,信息检索的目标可以使用Sampled Recall@1;而排序的目标则可以使用AUC。
五、实验结果
他们在两大大规模推荐模型问题:检索和排序上进行了实验。在同等资源消耗的情况下,NIS可以获得显著提升,详细数据如下图所示。
参考文献
[1] Neural Architecture Search with Reinforcement Learning
[2] Deep Neural Networks for Youtube Recommendations
[3] Neural Input Search for Large Scale Recommendation Models
[4] Efficient Neural Architecture Search via Parameters Sharing
原文链接:https://mp.weixin.qq.com/s/991ARC2REjLxKBEK9OE5xg
(*本文为 AI科技大本营转载文章,转载请联系原作者)
◆
精彩推荐
◆
60+技术大咖与你相约 2019 AI ProCon!大会早鸟票已售罄,优惠票速抢进行中......2019 AI开发者大会将于9月6日-7日在北京举行,这一届AI开发者大会有哪些亮点?一线公司的大牛们都在关注什么?AI行业的风向是什么?2019 AI开发者大会,倾听大牛分享,聚焦技术实践,和万千开发者共成长。
推荐阅读
效果惊人!中科院、百度研究院等联合提出UGAN,生成图片难以溯源
认知智能的突围:NLP、知识图谱是AI下一个“掘金地”
你想见的大神都来AI ProCon 2019了,优惠票限时抢购开启
Python之父新发文,将替换现有解析器
华为否认鸿蒙为噱头;谷歌公布 6 大 iOS 漏洞;极客头条
三次创业,三次跨界,这次凭十万行核心C代码登上 GitHub Top 1!
64%的投资者对比特币不感兴趣,那是谁投资了比特币?
你点的每个“在看”,我都认真当成了喜欢
谷歌引入自动网络设计,高效解决大规模深度推荐模型的特征嵌入问题相关推荐
- Google最新论文:大规模深度推荐模型的特征嵌入问题有解了!
转载自深度传送门(ID: gh_5faae7b50fc5) 导读:本文主要介绍下Google在大规模深度推荐模型上关于特征嵌入的最新论文. 一.背景 大部分的深度学习模型主要包含如下的两大模块:输入模 ...
- 谷歌cloud_通过使用Google Cloud ML大规模提供机器学习模型,我们学到了什么
谷歌cloud by Daitan 通过大潭 通过使用Google Cloud ML大规模提供机器学习模型,我们学到了什么 (What we learned by serving machine le ...
- 【AI不惑境】网络的宽度如何影响深度学习模型的性能?
大家好,这是专栏<AI不惑境>的第三篇文章,讲述模型宽度与模型性能的关系. 进入到不惑境界,就是向高手迈进的开始了,在这个境界需要自己独立思考.如果说学习是一个从模仿,到追随,到创造的过程 ...
- 网络的宽度如何影响深度学习模型的性能?
大家好,这是专栏<AI不惑境>的第三篇文章,讲述模型宽度与模型性能的关系. 进入到不惑境界,就是向高手迈进的开始了,在这个境界需要自己独立思考.如果说学习是一个从模仿,到追随,到创造的过程 ...
- RS笔记:深度推荐模型之SIM长短期兴趣网络(基于搜索的超长行为序列上的用户长期兴趣建模)[CIKM 2020, 阿里妈妈广告团队]
文章目录 相关资料 问题1:DIN适合较短历史行为序列,能否包含更远的用户历史行为?(时间拉长到月.季度.年,反映用户周期性行为) 问题2:为什么我们持续投入探索用户的长期行为建模问题? 手写笔记
- 如何高效进行大规模分类?
大规模分类技术对人脸识别等任务的实际应用有着切实的价值.香港中文大学和商汤科技近日公布的一篇 AAAI 2018 论文介绍了一种旨在高效解决大规模分类问题的方法.机器之心对该研究成果进行了编译介绍. ...
- 【CV】RegNet:通用 CNN 网络设计空间(Design Spaces)设计范式
论文名称:Designing Network Design Spaces 论文下载:https://arxiv.org/abs/2003.13678 论文年份:2020 论文被引:446(2022/0 ...
- 【网络设计_RegNet】Designing Network Design Spaces_2020
文章目录 Abstract 1.introduction 2.Related work 3.Design Space Design 3.1 Tools for Design Space Design ...
- 深度学习的推荐模型(DLRMs):设计孪生掩码层高效学习维度自适应的Embedding...
猜你喜欢 0.2021年10月份热门报告免费下载1.如何搭建一套个性化推荐系统?2.从零开始搭建创业公司后台技术栈3.全民K歌推荐系统架构.算法及后台设计4.微博推荐算法实践与机器学习平台演进5.腾讯 ...
最新文章
- 30_栈的定义.swf
- log4j linux如果日志目录不存在,Java日志库学习笔记
- B表中的pid对应A表中id,查询A表中数据,根据b表中对应a表中该id的数据数目排序...
- 10-python-字典
- 4499元起!坚果R2正式开售:回归即推重磅旗舰
- golang基础-WaitGroup、kafka消费者
- Leetcode 687.最长同值路径
- Linux安装mysql-5.7.17
- 机器学习中梯度下降算法的实际应用和技巧/李文哲
- Windows8、Windows8.1使用便签工具
- dpp-enrollee配网
- 帝国CMS系统目录结构介绍
- FDD LTE B1是什么
- Android开发实用小工具二——长度转换工具
- OEL6.5+11GR2安装(超级详细版)
- [转载]三小时学会Kubernetes:容器编排详细指南
- 关于谷歌webrtc源码国内镜像的使用问题,以及Kurento媒体服务器
- 鼠标上下滚轮不灵敏的修复方法
- uniapp实现微信小程序支付功能
- 【图像去噪】基于小波阈值实现图像去噪matlab代码
热门文章
- TYVJ 矩阵取数 Label:高精度+dp
- Hadoop集群安全性:Hadoop中Namenode单点故障的解决方案及详介AvatarNode
- Android系统移植与调试之-------如何修改Android设备添加重启、飞行模式、静音模式等功能(一)...
- 天猫双十一神话恐终结
- js在页面滚动到一定位置时触发事件?
- 跨平台网络游戏趋势和优势
- MIDP2.0引入了Push注册机制
- Pycharm + Anaconda 安装遇到的问题以及自己的理解
- 从网站上扒网页,保存为file文件格式
- Spring+SpringMVC+MyBatis深入学习及搭建(十)——MyBatis逆向工程