小叽导读:尽管业界对于图像处理和自然语言处理领域,在算法可解释性方向上已经取得了一些进展,但对于电商与广告领域,目前还是空白。另一方面,深度学习技术已经开始被大规模应用到广告业务中。广告是很多互联网现金流的重要来源,是核心业务。深度神经网络模型是核心业务中的核心模块,有效理解和评估这一“黑盒”算法变得非常重要。下面,我们针对可视化理解深度神经网络CTR预估模型进行探讨。
主要作者:郭霖、叶卉、苏文博、刘贺欢、孙凯、向杭、侯俊
▌背景
深度学习在研究和应用领域都已取得了重大的进展。但迄今为止,深度学习算法仍不够透明,多被做“黑盒”使用。近年来,人们开始致力于去更透彻地理解深度学习内部的复杂机理,从而确保算法安全可靠或达到进一步优化的目的。
由于人类对于世界的认知和感受主要来自于视觉,良好的可视化可以有效地帮助人们理解深度神经网络,并进行有效的评估、优化和调节。而可视化的前提是对模型进行相关数据透出,从而进行可视化分析评估,最终使得神经网络从“黑盒”向“白盒”过渡。针对这些挑战,我们搭建了一个面向工业级大规模深度学习应用的可视化分析平台—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模型的效果,可以帮助我们了解隐层结构对模型效果的作用。如下图,可以明显的看到,从第一到第三层,隐层输出信息对于点击行为的区分力逐层提升。第四层并没带来明显收益,与上节的结论一致。
▌小结
我们在电商广告场景下探索深度学习可视化与可解释性,通过分析深度神经网络模型内部数据,打开这个“黑盒”,以求深入理解模型的内部状态与机制。这些探索被成功地落地到平台服务,从而助力算法研发与业务应用。
参考文献:
[1] Guorui Zhou, Chengru Song, Xiaoqiang Zhu, Ying Fan,Han Zhu, Xiao Ma, Yanghui Yan, Junqi Jin, Han Li, Kun Gai. 2017. Deep InterestNetwork for Click-Through Rate Prediction. arXiv preprint arXiv:1706.06978(2017).
[2] Paulo Rauber, Samuel Fadel, Alexandre Falcao, andAlexandru Telea. 2017. Visualizing the hidden activity of artificial neuralnetworks. 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. arXivpreprint arXiv:1610.01644 (2016).