11 月 19 - 20 日 Apache Pulsar 社区年度盛会来啦,立即报名! 了解详情
写点什么

阿里巴巴推出 DeepInsight 平台:可视化理解深度神经网络 CTR 预估模型

  • 2018-07-07
  • 本文字数:3282 字

    阅读完需:约 11 分钟

题目(中英文):

可视化理解深度神经网络 CTR 预估模型 / Visualizing and Understanding Deep Neural Networks in CTR Prediction

主要作者(中英文):

郭霖 叶卉 苏文博 刘贺欢 孙凯 向杭 侯俊 / Lin Guo, Hui Ye, Wenbo Su, Hehuan Liu, Kai Sun, Hang Xiang, Jun Hou

背景:

深度学习在研究和应用领域都已取得了重大的进展。但迄今为止,深度学习算法仍不够透明,多被做“黑盒”使用。近年来,人们开始致力于去更透彻地理解深度学习内部的复杂机理,从而确保算法安全可靠或达到进一步优化的目的。

尽管业界对于图像处理和自然语言处理领域,在算法可解释性方向上已经取得了一些进展,但对于电商与广告领域,目前还是空白。另一方面,深度学习技术已经开始被大规模应用到广告业务中。广告是很多互联网现金流的重要来源,是核心业务。深度神经网络模型是核心业务中的核心模块,有效理解和评估这一“黑盒”算法变得非常重要。

由于人类对于世界的认知和感受主要来自于视觉,良好的可视化可以有效的帮助人们理解深度神经网络,并进行有效的评估、优化和调节。而可视化的前提是对模型进行相关数据透出,从而进行可视化分析评估,最终使得神经网络从“黑盒”向“白盒”过渡。针对这些挑战,我们搭建了一个面向工业级大规模深度学习应用的可视化分析平台—DeepInsight。

我们将针对电商场景下的广告点击率(CTR)预估,以一个简单但具有代表性的深度神经网络模型为例,举例介绍在几个典型而重要的问题上模型可视化分析的应用:1. 泛化效果评估;2. 特征设计;3. 模型结构设计。

大多数图像或自然语言处理的研究着眼于从样本粒度出发去可视化理解模型。区别于这些研究场景,工业界的 CTR 预估面对的是海量规模的数据与特征、有偏的带标签数据、稀疏而复杂多样的信号模式,而最终效果评估首要关注的是宏观的商业指标。从业务特点出发,我们以统计信号入手,探索理解模型在整个目标数据集上的宏观表现。相关实验工作的细节请参阅我们的英文版论文(参见文末链接)。

平台介绍:

DeepInsight 平台面向工业级深度学习算法研发与应用,提供完善的模型训练任务生命周期管理,致力于提供高效全面的数据透出方式,并以深度学习数据的多维度可视化、大规模数据实时分析、数据再建模等方向作为核心功能。

平台基于分布式微服务集群化部署,由前端 WEB 平台 + 后端微服务 + 深度学习组件等三个子系统构成,各个微服务实例之间是隔离的,互不影响;目前已接入 Tensorflow 和 MXNet 两个大规模并行训练框架,支持多任务学习、迁移学习、强化学习、GAN、模型融合等复杂场景,旨在通过数据透出及可视化等手段,提高神经网络的可解释性,解决模型调试及问题定位分析等系列问题;以生命周期管理的方式执行训练任务,从而提供一站式的可视化评测服务。平台在赋能业务的同时,业务也会将后期处理过的数据反馈给平台,从而构建以 DeepInsight 为基础数据核心的 AI 可视化生态圈。

算法实验:

不失代表性,模型采用简单的GwEN 式结构[1]。对于每条输入样本,稀疏特征ID 被映射为低维稠密的Embedding 向量,然后以特征组为单位将每组的特征ID Embedding 进行sum pooling 操作,得到该特征组的Embedding 向量。各个特征组的Embedding 向量被连接在一起,作为输入传给后续的全连接层。模型总共有4 个全连接隐层并以Relu 为激活函数。输出层通过sigmoid 操作输出预估点击率(PCTR)。

对于训练至不同阶段的模型,我们通过动态透出的方式收集模型内部在不同数据集上的状态数据,以此为可视化分析的基础。

泛化效果与神经元状态波动:

众所周知,深度神经网络有强大的拟合能力。随着训练进行,模型会不断地去拟合训练数据,对输入信息中的微小差别越来越敏感。给定模型,每个神经元的状态由样本输入决定。数据集中不同样本输入的变化导致神经元状态的波动,这一波动的程度反应了模型对于输入信息的敏感程度。另一方面,模型对训练数据过于敏感会降低其泛化能力。我们的可视化清晰地展现了模型泛化效果与神经元状态波动程度之间的联系。

下图展示了模型第四隐层中每个神经元状态值的平均波动程度,对比了不同训练阶段的模型在训练与测试集上的统计表现。在过拟合之前,神经元的波动程度保持相对稳定,训练/ 测试集间较为一致。过拟合时,波动程度显著上升,并且训练集明显强于测试集。这正反映了过拟合状态下的模型对训练数据过度敏感。

我们聚合出整个隐层的所有神经元的平均波动程度,发现该指标可以与模型在不同数据集上的效果变化(AUC)相关联。神经元的波动程度为我们提供了一种理解与检测过拟合的手段。另外,这个指标计算不需要标签,因此可以帮助我们在一批拿不到点击反馈的数据集上的评估模型效果。

特征影响力:

比起传统的逻辑回归模型,深度神经网络的一个优点是具有从输入中自动挖掘非线性交叉特征的能力。但是实践发现,输入特征本身的质量好坏也极大地影响着模型的效果。

什么特征对模型比较重要?对于传统的逻辑回归模型,我们可以通过特征的权重来认识其重要性。但是,这对于深度神经网络是不适用的。

我们利用梯度信息来认识各个特征组对模型的影响。将全连接网络的输入针对模型输出(PCTR)求导。该梯度的强度表示了模型的输出预估对于该输入的微小变动的敏感度,从而可以反映出该输入对于模型的影响力。梯度越强,表明该输入的对模型的影响越大。以每个特征组聚合各自Embedding 所对应的梯度的平均强度,可以描述该特征组对模型的影响。

下图对比了两个不同状态的模型(未过拟合 Vs 过拟合)中的各个特征组的平均影响力。可以清晰地看到两个状态的区别:过拟合时模型对少量几组特征过度敏感,尤其是编号为1 和11 的特征组。事实上,这两个都是具有海量ID 取值的单个特征如user ID,所需参数空间极大,而本身携带的可泛化信息确实很少。

隐层的效用与其信息表征:

我们通过可视化隐层的输出向量,展示模型对输入信息的综合表征,以帮助我们了解模型的内在机制以及模型结构对于效果的影响。下图将不同隐层的输出向量经过tsne 投影到2 维平面。与[2] 针对图像分类的可视化结果不同,我们没有观察到点击与不点击两类样本点的分离。这是由我们场景下样本信息的高噪声所决定的。但是,可以看到点击样本点有空间聚集。第三层比第二层有更明显的聚集,表明第三层表征的信息更有区分能力。但是第四层却并没有显示出进一步提升。

反过来指导模型结构设计,我们的实验证明训练没有第四层的模型也可以达到与四隐层模型相近的效果。

隐层的效用与其表征再建模:

上节介绍了了解每个隐层对于模型分类效果带来的收益。我们的DeepInsight 平台可以让我们很方便地对透出数据进行再建模,来进一步深化对模型结构的认识。

我们使用Alain 和Bengio 提出的探测层方法[3],将隐层对于样本的表征向量作为输入特征,同样以样本的点击反馈为标签,训练逻辑回归probe 模型。对比不同隐层所训练出的probe 模型的效果,可以帮助我们了解隐层结构对模型效果的作用。如下图,可以明显的看到,从第一到第三层,隐层输出信息对于点击行为的区分力逐层提升。第四层并没带来明显收益,与上节的结论一致。

小结:

我们在电商广告场景下探索深度学习可视化与可解释性,通过分析深度神经网络模型内部数据,打开这个“黑盒”,以求深入理解模型的内部状态与机制。这些探索被成功地落地到平台服务,从而助力算法研发与业务应用。

论文下载地址 https://arxiv.org/abs/1806.08541

参考文献:

[1] Guorui Zhou, Chengru Song, Xiaoqiang Zhu, Ying Fan, Han Zhu, Xiao Ma, Yanghui Yan, Junqi Jin, Han Li, Kun Gai. 2017. Deep Interest Network for Click-Through Rate Prediction. arXiv preprint arXiv:1706.06978 (2017).
[2] Paulo Rauber, Samuel Fadel, Alexandre Falcao, and Alexandru Telea. 2017. Visualizing the hidden activity of artificial neural networks. IEEE transactions on visualization and computer graphics 23, 1 (2017), 101–110.
[3] Guillaume Alain and Yoshua Bengio. 2016. Understanding intermediate layers using linear classifier probes. arXiv preprint arXiv:1610.01644 (2016).

2018-07-07 18:577354

评论

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

自定义spring boot starter三部曲之一:准备工作

程序员欣宸

spring springboot 7月月更

到底应不应该使用 lombok

HoneyMoose

iOS 中的 Protocol

NewBoy

ios 前端 移动端 iOS 知识体系 7月月更

查找——顺序表的查找和有序表的查找

乔乔

7月月更

代码实现 加性注意力 | additive attention

infoQ-LolitaAnn

人工智能 深度学习 7月月更

重温算法之颜色分类

自由

算法刷题 7月月更

Ark UI 中的问题汇总【系列 2】

坚果

HarmonyOS OpenHarmony Open Harmony 7月月更

《高绩效教练》:如何用提问激发潜能?

郭明

读书笔记

shell脚本定时备份mysql数据库

乌龟哥哥

7月月更

zookeeper-认识zookeeper

zarmnosaj

7月月更

企业级容器安全风险与最佳实践

明亮安全观

网络安全 安全架构 容器安全

记一次uniapp的经历

是乃德也是Ned

uni-app 7月月更

OAI L3与L2接口分析

柒号华仔

5G 7月月更

飙车资深老教练-手撸一个EventBus

芝麻粒儿

android EventBus 7月月更

面试突击65:为什么要用HTTPS?它有什么优点?

王磊

Java 面试题

3000字11张图硬核科普:什么是边缘计算?与云计算有什么联系和区别?

wljslmz

云计算 边缘计算 7月月更

jQuery

Jason199

jquery js 7 月月更

【萌新解题】两数之和

面试官问

LeetCode 哈希表 两数之和

基于Qt设计的课堂考勤系统(采用RDS for MySQL云数据库 )

DS小龙哥

7月月更

密码密钥硬编码检查

Tom(⊙o⊙)

密码 软件安全 信息泄露 静态代码检查 密钥管理

Qt | 读取文件内容并删除文件 QFile

YOLO.

File 文件操作 qt 7月月更

微软 Edge 浏览器 Tracking Prevention 的强制措施的一个例子

Jerry Wang

JavaScript microsoft 浏览器 前端开发 7月月更

数据仓库分层——DWD DWS ADS傻傻分不清楚

怀瑾握瑜的嘉与嘉

数据仓库 7月月更

Qt中 connect的多种方式

小肉球

qt 7月月更

LeetCode第二题,裂开了..

为自己带盐

LeetCode 7月月更

语音直播app源码

开源直播系统源码

直播系统源码 开源源码 语音直播系统源码

读书笔记之数据密集型应用的可靠性

宇宙之一粟

读书笔记 7月月更

不习惯的 Vue3 起步五 のapiHooks封装

空城机

Vue3 7月月更

MySQL进阶(一)主外键讲解

No Silver Bullet

MySQL 数据库 7月月更 主外键

某易跟帖频道,接口溯源分析,反爬新技巧,必掌握一下

梦想橡皮擦

Python 爬虫 Python爬虫 7月月更

Ceph分布式存储初步认识(一)

Lansonli

私有云 Ceph 云存储 7月月更

阿里巴巴推出DeepInsight平台:可视化理解深度神经网络CTR预估模型_阿里巴巴_郭霖_InfoQ精选文章