深度图像特征在推荐和广告中的应用(二)

 

一直对图像很感兴趣,最近在关注一个问题:如何通过深度学习抽取图像特征,用于广告和推荐。

CNN 是一个简单的网络结构,初学者一般从MNIST入手,提及CNN第一印象可能只有经典的图像分类的那个model。深入了解才会发现,学术圈和工业界是如何通过稍稍改变 Feature Map 之后的结构和目标函数等实现各种复杂任务,这其中迸发的想象力让人激动。

 

Deep CTR Prediction in Display Advertising

这篇文章发表在 ACM MM16,是阿里当时的实习生做的,现在应该是正式员工了。与腾讯那篇“Image Feature Learning for Cold Start Problem in Display Advertising” 不同的是,这篇文章把特征提取与点击率预估整合在一起,做到了end to end的训练。

同样来看一个例子:

 

b 比 a 点击率低,是因为 b 的主体和背景的对比度太低;d 比 c 点击,是因为用户对多男模的图片不太喜欢,这种case 跟腾讯广告同学举得还不太一样 😆

整体的网络架构如下:

左侧的卷积网络用来提取图像特征,结构类似于 VGG16。因为上面网络结构较为复杂,可以先用图像分类任务来解决CNN的预训练问题。

右侧是全连接层,类似于embedding,区别在于全连接层有非线性变换。输入层是 one-hot-encode 形式,约 20w维,非常稀疏,在计算的时候,很多0输入节点的前向后向计算都可省略,特征存储也可以用下标的方式输入,减少计算和存储资源消耗。

广告的样本数量很大,但是CNN计算较为耗时,如果按照 PSLR 的方式去批次训练,训练过程过于漫长。作者把有相同图片的样本聚合在一起,相同图片只用计算一次CNN。举个例子,batchsize 为 5000,图片只有 10张,则CNN只用计算 10 次,右侧的全连接层非常稀疏,计算效率很高,5000个样本的计算时间可能比10张图片CNN计算时间还短。

实验对比

  • 5千万样本,10w张图片

  • 对比实验的结果:

特征区域的可视化

图片中的猫、纹理、文字对点击率有影响

 

附:公众号 

 

posted on 2017-12-16 11:41  daniel-D  阅读(1845)  评论(0编辑  收藏  举报

导航