把握行业变革关键节点,12 月 19 日 - 20 日,AICon北京站即将重磅启幕! 了解详情
写点什么

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

评论

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

HarmonyOS(鸿蒙)——滑动事件之上下左右滑动

李子捌

28天写作 21天挑战 鸿蒙开发 12月日更

Go 语言快速入门指南:第七篇 方法

宇宙之一粟

12月日更

基于流程管理,提高工作质量和效率

流程管理

黑客是怎么盗取你的密码的?

喀拉峻

黑客 网络安全

Go+ 结构体方法定义教程

liuzhen007

28天写作 12月日更

绘制监控页面的一些最佳实践

耳东@Erdong

最佳实践 监控 28天写作 12月日更

为什么很难得出结论

将军-技术演讲力教练

低代码实现探索(十)流程执行器

零道云-混合式低代码平台

启梦行动再扬帆 | 2021启智社区优秀项目&优秀开发者评选结果重磅揭晓

OpenI启智社区

启智社区 优秀开发者 优秀开源项目

盘点2021(一)

圣迪

复盘 盘点 2021

过冬

搬砖的周狮傅

随笔杂谈

react源码解析18事件系统

buchila11

React

一文了解 Redis 内存监控和内存消耗

程序员历小冰

redis 28天写作 12月日更

慢跑的正确打开方式

wood

跑步 28天写作

记录与 Electron 的第一次亲密接触

何佩弦

跨平台 Electron

软件设计之非功能性

xcbeyond

软件设计 28天写作 12月日更 非功能性

Dubbo 框架学习笔记十五

风翱

dubbo 12月日更

绩效评估的why&how

mtfelix

28天写作

Dubbo 框架学习笔记十四

风翱

dubbo 12月日更

.NET中的Husky工具

喵叔

28天写作 12月日更

为什么?为什么要先问目的?(27/28)

赵新龙

28天写作

百度智能云 AI 公有云服务市场,连续五次第一!

百度大脑

人工智能

低代码实现探索(十一)流程中的动作执行器

零道云-混合式低代码平台

性能即天元:vivo S12的落子与棋局

脑极体

c语言学习笔记2021/12

姬翔

第一财经年终总结

石云升

读书笔记 28天写作 12月日更

从0到1带你深入理解log4j2漏洞

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 安全漏洞

2021年全国人工智能大赛正式启动,396万奖金等你报名!

OpenI启智社区

人工智能大赛

从AI前沿到科技自立:百度大脑的风向标意义

脑极体

26《重学JAVA》--网络编程之Socket类

杨鹏Geek

Java25周年 28天写作 12月日更

如何让TiDB在云上智能运维 (TiDB Hackathon 赛题)

如果迎着风就飞

云原生 operator TiDB Operator 存储上云

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