资讯 人工智能开发者
此为临时链接,仅用于文章预览,将在时失效

一图胜千言: 解读阿里的Deep Image CTR Model

作者:skura
2019/02/22 17:14

雷锋网 AI 科技评论按:本文作者石塔西,原载于知乎,雷锋网已获授权。

本文是对阿里的论文《Image Matters: Visually modeling user behaviors using Advanced Model Server》的解读。

初读此文的标题和摘要,又有 image,又有 CTR,我以为是一种新型的 CNN+MLP 的联合建模方法。读下来才知道,本文的重点绝不在什么图像建模上,压根就没 CNN 什么事。想像中的像素级别的建模根本没有出现,商品的图片利用网上可下载的预训练好的 VGG16 模型的某个中间层压缩成 4096 维向量,作为 CTR 模型的原始输入。

而将图片引入到推荐/搜索领域,也不是什么新鲜事。不说论文 Related Works 中提到的工作,我自己就做过基于图片的向量化召回,结构与论文图 4 中的 Pre-Rank DICM 结构很相似,只不过用户侧不包含他之前点击过的商品图片罢了,在此略下不表。

没有提出新的图像建模方法,也并非第一次在推荐算法中使用图片信息,那么此文的创新点到底在哪里?我觉得,本文的创新点有两个创新点:

  1. 之前的工作尽管也在推荐/搜索算法中引入了图片信息,可是那些图片只用于物料侧,用于丰富商品、文章的特征表示。而阿里的这篇论文,是第一次将图片用于用户侧建模,基于用户历史点击过的图片(user behavior images)来建模用户的视觉偏好

  2. 接下来会看到,将图片加入到用户侧建模,理论上并不复杂,理论上用传统 PS 也可以实现,起码跑个实验,发篇论文应该不成问题。但是,如果应用到实际系统,图片特征引入的大数据量成为技术瓶颈。为此,阿里团队为传统 PS 的 server 也增加了「模型训练」功能,并称新结构为 Advanced Model Server(AMS)

基于历史点击图片建模用户视觉偏好

先谈一下第一个「小创新」。之所以说其「小」,是因为通过预训练的 CNN 模型提取特征后,每张图片用一个高维(比如 4096)稠密向量来表示。这些图片向量,与常见的稀疏 ID 类特征经过 embedding 得到的稠密向量,没有质的区别(量的区别,下文会提到),完全可以复用以前处理 ID embedding 的方法(如 pooling, attention)来处理

Deep Image CTR Model(DICM)的具体结构如下所示:

一图胜千言: 解读阿里的Deep Image CTR Model

DICM 架构图

这个模型的优势在于:

综上可见,DICM 的思路、结构都很简单。但是,上面的描述埋了个大伏笔:那个图片嵌入模型 embmodel 如何设计?没有加入图片、只有稀疏的 ID 类特征时,Embedding+MLP 可以通过 Parameter Server 来分布式训练。现在这个 embmodel,是否还可以在 PS 上训练?在回答这个问题之前,让我们先看看稀疏 ID 特征 Embedding+MLP 在传统的 PS 上是如何训练的?

稀疏 ID 特征 Embedding+MLP 在传统的 PS 上是如何训练的?

介绍 PS 的论文、博客汗牛充栋,实在论不上我在这里炒冷饭,但是,我还是要将我实践过的「基于 PS 训练的 DNN 推荐算法」,在这里简单介绍一下,因为我觉得它与《Scaling Distributed Machine Learning with the Parameter Server》所介绍的「经典」PS 还是稍稍有所不同,与同行们探讨。

基于 PS 的分布式训练的思想还是很简单的:

1.一开始是 data parallelism。每台 worker 只利用本地的训练数据前代、回代,计算 gradient,并发往 server。Server 汇总(平均)各 worker 发来的 gradient,更新模型,并把更新过的模型同步给各 worker。这里有一个前提,就是数据量超大,但是模型足够小,单台 server 的内存足以容纳

2.但是,推荐/搜索系统使用超大规模的 LR 模型,模型参数之多,已经是单台 server 无法容纳的了。这时 Parameter Server 才应运而生,它同时结合了 data parallelism 与 model parallelism

所以按照我的理解,PS 最擅长的是训练稀疏数据集上的算法,比如超大规模 LR 的 CTR 预估。但是,基于 DNN 的推荐/搜索算法,常见模式是稀疏 ID 特征 Embedding+MLP,稍稍有所不同

1.稀疏 ID 特征 Embedding,是使用 PS 的理想对象:超大的 embedding 矩阵已经无法容纳于单台机器中,需要分布式的 key-value 数据库共同存储;数据稀疏,各 worker 上的训练数据只涵盖一部分 ID 特征,自然也只需要和 server 同步这一部分 ID 的 embedding 向量。

2.MLP 部分,稍稍不同

所以,在我的实践中

实际上,对 Embedding 和 MLP 不同特性的论述,在《Deep Interest Network for Click-Through Rate Prediction》中也有所论述。阿里的 X-DeepLearning 平台

加入图片特征后,能否继续在 PS 上训练?

按原论文的说法,自然是不能,所以才提出了 AMS。一开始,我以为」PS 不支持图片」是「质」的不同,即 PS 主要针对稀疏特征,而图片是稠密数据。但是,读完文章之后,发现之前的想法是错误的,稀疏 ID 特征与图片特征在稀疏性是统一的。

正因为稀疏 ID 特征与图片特征,本质上没有什么不同,因此 PS 无须修改,就可以用于训练包含图片特征的 CTR 模型(起码理论上行得通),就是文中所谓的 store-in-server 模式。

一切看上去很美好,直到我们审视 VGG16 提取出来的 image embedding 到底有多长

(或许有心的读者问,既然 4096 的 image embedding 会造成如此大的通讯压力,那为什么不选择 vgg16 中小一些层的输出呢?因为 vgg16 是针对 ImageNet 训练好的,而 ImageNet 中的图片与淘宝的商品图片还是有不小的差距(淘宝的商品图片应该很少会出现海象与鸭嘴兽吧),因此需要提取出来的 image embedding 足够长,以更好地保留一些原始信息。原论文中也尝试过提取 1000 维的向量,性能上有较大损失。)

正是因为原始图片 embedding 太大了,给通信造成巨大压力,才促使阿里团队在 server 上也增加了一个「压缩」模型,从而将 PS 升级为 AMS。

AMS 的技术细节,将在下一节详细说明。这里,我觉得需要强调一下,由于加入图片而需要在 AMS,而不是 PS 上训练,这个变化是「量」变引起的,而不是因为原来的 ID 特征与图片这样的多媒体特征在「质」上有什么不同。比如,在这个例子中,

所以,AMS 并不应该是接入多媒体特征后的唯一选择,而 AMS 也不仅仅是针对多媒体特征才有用。应该说,AMS 应该是针对「embedding 过大、占有过多带宽」的解决方案之一

Advanced Model Server(AMS)架构

上一节讲清楚了,AMS 是为了解决「image 的原始 embedding 过大,造成太大通信压力」的问题而提出的。在这一节里,我们来看看 AMS 是如何解决这一问题的。

AMS 的解决方案也很简单:

每个 server 上都有这样一个这个可学习的「压缩」模型,要能够利用存放在本地的数据(这里就是 4096 长的 image 原始 embedding)前代、回代、更新权重,并且各 server 的模型还需要同步,简直就是 worker 上模型的翻版。将 worker 的「训练模型」的功能复制到 server,这也就是 Advanced Model Server 相比于传统 Parameter Server 的改进之处。

AMS 是本文最大的创新点。本来还想再费些笔墨详细描述,最后发现不过是对原论文 4.2 节的翻译,白白浪费篇幅罢了,请读者移步原论文。其实,当你明白了 AMS 要解决什么样的问题,那么原论文中的解决方案,也就是一层窗户纸罢了,简单来说,就是将 worker 上的模型前代、回代、更新、同步代码移植到 server 端罢了。最后加上原论文中的图 2,以做备忘。

一图胜千言: 解读阿里的Deep Image CTR Model

AMS 交互流程

总结

以上就是我对 Deep Image CTR Model(DICM)两个创新点的理解。根据原论文,无论是离线实验还是线上 AB 测试,DICM 的表现都比不考虑用户视觉偏好的老模型要更加优异。DICM 开启了在推荐系统中引入多媒体特征的新篇章

小结一下 DICM 的成就与思路:

最后,还应该强调,引发 PS 升级到 AMS 的驱动力,是「量变」而不是「质变」。图片之类的多媒体特征,既不是 AMS 的唯一用武之地,也不应是 AMS 垄断的专利。选择哪种训练架构,需要我们根据业务、数据的特点做出判断,切忌迷信「银弹」。

长按图片保存图片,分享给好友或朋友圈

一图胜千言: 解读阿里的Deep Image CTR Model

扫码查看文章

正在生成分享图...

取消
相关文章