【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

阿里:Deep Image CTR Model

  • 2019-12-02
  • 本文字数:2225 字

    阅读完需:约 7 分钟

阿里:Deep Image CTR Model

随着深度学习的发展,深度学习模型已经广泛用于推荐、搜索、广告等领域的 CTR 预估,比如微软的 Deep Crossing,Google 的 Wide&Deep,以及 FNN,PNN,阿里的 DIN,DIEN。这边盗用一下王喆老师的一张图,我觉得总结的非常好。


但是这些模型都没有用上用户浏览和点击的图片特征,而用户点击的图片序列特征其实很能代表用户的行为喜好,因此如果在 CTR 模型中加入 image 的特征,将对提升 CTR 模型的指标很有帮助。


并且文中说道:之前这些深度 CTR 模型大都是直接将 item 的 ID 特征映射成固定维度的 embedding 向量,其实这些 ids 特征很难去表达语义上的信息,特别当一个 id 出现次数很少的时候,其参数的更新次数就会不够,并且没出现过的 id 其压根都不会对预测有所影响。而图像特征则不同,图像特征有更好的泛化性,我理解就是比如两个很同品类的商品,图片很相似,但是其中有一个商品从来没在训练数据中出现过,那也没关系,因为相似的图片经过图像模型总会提取出很接近的向量。



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


创新点:


1.第一次将图片用于用户侧建模,基于用户历史点击过的图片来建模用户的视觉偏好。而之前的工作一般都是将图片特征用于物料侧,用于丰富商品、文章的特征表示。


2.因为图片特征维度都比较高,增加了传输的数据量,在分布式训练时,ps 和 worker 之间的通信会成为瓶颈。因此该工作在传统 server 端也增加了“模型训练”功能,该结构称为 Advanced Model Server (AMS)。



  • 左边就是推荐/搜索中常见的 Embedding+MLP 结构。实际系统中可以替换成 Wide&Deep, DIN, DIEN 等较复杂的模型。

  • embedding model 已经训练好,即图中的 embmodel。经过 embmodel,得到商品的图片信息(图中的粉红色块)。

  • 右边部分,负责利用图片建模用户。将每个用户点击过的图片,经过 embmodel 进行压缩(图中的蓝色块)。它们与商品图片(ad image)的 embedding 结果(粉红色块)经过 attentive pooling 合并成一个向量(桔色块),来表示用户的视觉偏好。

  • 将用户点击过的多张图片的向量(蓝色)合并成一个向量(桔色),思路与 Deep Interest Network 基于 attention 的 pooling 机制大同小异,只不过要同时考虑“id 类特征”与“商品图片”对用户历史点击图片的 attention,称为 MultiQueryAttentivePooling。

  • 第 1 步得到基于 id 特征的 embedding 结果,与第 2 步得到的商品图片(ad image)的 embedding 结果(粉红色),与第 3 步得到的表示用户兴趣偏好的向量(桔红色),拼接起来,传入 MLP,最后输出 softmax。

ADVANCED MODEL SERVER 架构

如果用传统的 PS 做法:可将图片特征存入 PS 中的 server 端,key 是 image index,value 是经过预训练好的 CNN 模型提取出来的稠密向量。训练数据只需要存储图片的 index,训练时,每个 worker 根据本地的训练集所包含的 image index,向 server 请求各自所需的 image 的 embedding,然后通过前向传播和反向传播来更新自己的 embedding 向量。


但是有个问题容易被忽略,文中经过 vgg16 模型提取的向量有 4096 维。每次迭代中,worker 和 server 需要通信数据量是 batch size * 单用户历史点击图片数 (i.e., 通常是几十到上百) * 4096 个浮点数。大概能达到 5G 左右的通信量,而一个传统的 ID 特征一般才用 12 维的向量去表示,引入 image 后,通讯量增长了 4096/12=341 倍。文中也解释了为什么选用 4096 维度的特征,而不是 512 或者 128 这种维度较低的向量。这是因为 vgg16 是针对 ImageNet 训练好的,而 ImageNet 中的图片与淘宝的商品图片还是有不小的差距。因此提取的 image embedding 足够长,才能更好地保留一些原始特征信息。其实可以专门训练一个针对商品图片的分类模型(比如图片产品词的多分类模型),就可通过这样的预训练好的模型提取更小维度的 embedding 向量作为 ctr 模型中的图片特征输入。只要保证低维度图片的 embedding 能够很好的表示商品图片特征空间,就或许可以不使用 AMS 这样的框架,直接上 PS 了吧。


当然 AMS 也是一个很好的解决方案:


  • 为每个 server 增加一个可学习的“压缩”模型(文中的 sub-model,是一个 4096-256-64-12 的金字塔型的 MLP)

  • 当 worker 向 server 请求 image embedding 时,server 上的“压缩”模型先将原始的 4096 维的 image embedding 压缩成 12 维,再传递给 worker,从而将通讯量减少到原来的 1/340

  • 该“压缩”模型的参数,由每个 server 根据存在本地的图片数据学习得到,并且在一轮迭代结束时,各 server 上的“压缩”模型需要同步。


##总结


总结下 Deep Image CTR Model 的优点和创新点:



第一次将图片信息引入到用户侧建模,通过用户历史上点击过的图片建模用户的视觉偏好,而且将传统的 ID 类特征、物料的图像信息、用户的视觉偏好进行充分交互,能够发现更多的 pattern,也解决了只使用 ID 特征而带来的冷启动问题。


但是,引入 user behavior images 后,由于 image 原始 embedding 太大,给分布式训练时的通信造成了巨大压力。为此,阿里团队通过给每个 server 增加一个可学习的“压缩”模型,先压缩 image embedding 再传递给 worker,大大降低了 worker/server 之间的通信量,使模型的效率能够满足线上系统的要求。这种为 server 增加“模型训练”功能的 PS,被称为 AMS。


参考文献:


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


https://arxiv.org/abs/1711.06505


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


本文转载自 Alex-zhai 知乎账号。


原文链接:https://zhuanlan.zhihu.com/p/69141871。


2019-12-02 16:24657

评论

发布
暂无评论
发现更多内容

缺少比较器,运放来救场!(运放当做比较器电路记录)

矜辰所致

电路设计 8月月更 比较器 运放

等保2.0一个中心三重防护指的是什么?如何理解?

行云管家

等保 等级保护 等保2.0 安全等级保护

易观分析联合中小银行联盟发布海南数字经济指数,敬请期待!

易观分析

金融 海南数字经济 易观分析

社区动态——恭喜海豚调度中国区用户组新晋 9 枚“社群管理员”

Apache DolphinScheduler

头脑风暴:目标和

HelloWorld杰少

数据结构 算法 LeetCode 8月月更

mysql进阶(三十三)MySQL数据表添加字段

No Silver Bullet

MySQL 8月月更 添加字段

兆骑科创创业赛事活动发布平台,创业赛事,项目路演

兆骑科创凤阁

NFT数字藏品——数字藏品发行平台开发

开源直播系统源码

软件开发 数字藏品 数字藏品系统软件开发

网络安全——XSS之被我们忽视的Cookie

Jack20

网络安全

在本地利用虚拟机快速搭建一个小型Hadoop大数据平台

Jack20

云计算 大数据

2022年中国软饮料市场洞察

易观分析

软饮料 市场分析

用好 DIV 和 API,在前端系统中轻松嵌入数据分析模块

葡萄城技术团队

前端 嵌入式 BI 可视化数据

一文带你了解 HONOR Connect

荣耀开发者服务平台

开发者 教程 荣耀 honor

友邦人寿可观测体系设计与落地

阿里巴巴云原生

阿里云 云原生 可观测 合作案例 友邦人寿

1W字详解线程本地存储 ThreadLocal

了不起的程序猿

Java JAVA开发 java程序员 java编程

兆骑科创高层次人才创业大赛平台,投融资对接,双创服务

兆骑科创凤阁

智为链接,慧享生活,荣耀智慧服务,只为 “懂” 你

荣耀开发者服务平台

开发者 安卓 荣耀 honor

“低代码”编程或将是软件开发的未来

优秀

低代码

leetcode 739. Daily Temperatures 每日温度(中等)

okokabcd

LeetCode 数据结构与算法 栈和队列

万物互联,车联网数字化需要快速引入小程序生态

Speedoooo

小程序 车联网 IoT 小程序生态

海外邮件发送指南(二)

极光JIGUANG

消息推送 邮件

借数据智能,亚马逊云科技助力企业打造品牌内生增长力

Lily

避免 10 大 NGINX 配置错误(上)

NGINX开源社区

nginx 架构 配置 配置分析 故障排除

开源一夏 | POND:高效的 Python 通用对象池技术

Andy

Python 缓存 开源 算法 对象池

符合信创要求的堡垒机有哪些?支持哪些系统?

行云管家

信创 堡垒机 信创产业

fastposter v2.9.1 程序员必备海报生成器

物有本末

海报生成器 海报编辑器 图片生成 二维码生成

数据产品经理那点事儿 一

松子(李博源)

数据产品经理

MySQL 原理与优化:Update 优化

老崔说架构

易观千帆银行用户体验中心:聚焦银行APP用户体验

易观分析

金融 银行 用户体验

容器化 | 在 S3 实现定时备份

RadonDB

MySQL 数据库 Kubernetes

产品说明丨如何使用MobPush快速创建应用

MobTech袤博科技

ios android sdk mobpush 智能推送

阿里:Deep Image CTR Model_语言 & 开发_Alex-zhai_InfoQ精选文章