写点什么

阿里: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:24920

评论

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

从 o11y 2.0 说起,大数据 Pipeline 的「多快好省」之道

阿里巴巴云原生

阿里云 云原生 可观测

HarmonyOS NEXT「星辰启明时 代码绘鸿图」

Turing_010

ArkUI预览器使用说明书(Harmony OS Next)

Turing_010

业务监控—一站式搭建jmeter+telegraf+influxdb+Grafana看板

京东科技开发者

供应链计划性能优化解决方案-Clickhouse本地Join

京东科技开发者

华为仓颉语言初识:结构体struct和类class的异同

IT小码哥

HarmonyOS 鸿蒙 Ability harmony HarmonyOS NEXT

周边生态:Apache SeaTunnel 集成 Apache Cloudberry,构建大规模数据集成解决方案

酷克数据HashData

雅迪首款支付宝碰一下电动车量产,售价4699元

科技热闻

2025上海国际机器人产业展览会

AIOTE智博会

机器人展 智能机器人展 人形机器展

Flutter跨端开发新范式:小程序容器技术驱动App高效构建

xuyinyin

什么是无代码开发平台?一文讲清无代码平台的优势现状与前景!

积木链小链

数字化转型 无代码 智能制造

开源鸿蒙开发者大会2025交流区亮点纷呈,社区与生态伙伴共绘智能图景

极客天地

“深时数字地球”国际大科学计划系列工作坊持续开放!专业友好可复现,赋能科学智能生态合作(5)

ModelWhale

科学智能 AI4S DDE深时数字地球

🤖【HarmonyOS调试全攻略】设备连接+运行环境一站式指南💡

Turing_010

《独立开发工具 • 半月刊》 第 001 期

Immerse

HarmonyOS实战:高德地图定位功能完整流程详解

IT小码哥

鸿蒙 Ability an'droid harmony HarmonyOS NEXT

HarmonyOS实战:3秒实现一个自定义轮播图

IT小码哥

鸿蒙 Ability harmony HarmonyOS NEXT harmoyos

HarmonyOS NEXT ArkUI生命周期终极指南 | 组件与页面的关系

Turing_010

数字零售行业基于Sermant的应用实战之全链路灰度

华为云开源

开源社区 微服务治理 字节码增强 华为云开源

理解AI工作负载与SSD在性能中的关键作用

ScaleFlux

人工智能 大数据 cpu 存储 企业级NVMeSSD

HarmonyOS实战: 城市选择功能的快速实现

IT小码哥

HarmonyOS NEXT harmoyos Harmony5

2025 网易创新企业大会圆满收官,聚焦AI Agent 如何重塑企业未来

ToB行业头条

网易

架构提效的矛盾和矛盾的主要方面

京东科技开发者

数字标牌LED显示屏方案:点亮商业新未来

Dylan

商业 LED显示屏 全彩LED显示屏 led显示屏厂家 电商场景

如何通过ETL对WebService进行调用

谷云科技RestCloud

数据库 数据仓库 WebService ETL 数据集成

连接财务和营销计划的资源管理战略

智达方通

企业管理 营销管理 全面预算管理 经营管理

降维技术:带你走进数据的“瘦身”世界

电子尖叫食人鱼

数据库

华为仓颉语言初识:并发编程之线程的基本使用

IT小码哥

鸿蒙 Ability harmony harmoyos

如何在CST里仿真三端子的电容

思茂信息

PCB 电磁仿真 CST Studio Suite

HarmonyOS Next开发利器:DevEco Studio高效编码技巧 🚀

Turing_010

《独立开发工具 • 半月刊》 第 002 期

Immerse

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