语义分析的一些方法(三)

2460阅读 0评论2015-02-12 jiangwen127
分类:大数据

语义分析的一些方法(三)

、、

3 图片语义分析

3.1 图片分类

图片分类是一个最基本的图片语义分析方法。

基于深度学习的图片分类

传统的图片分类如下图所示,首先需要先手工提取图片特征,譬如SIFT, GIST,再经由VQ coding和Spatial pooling,最后送入传统的分类模型(例如SVM等)。

tranditional-imageclassify

图23. 传统图片分类流程图

传统方法里,人工特征提取是一个巨大的消耗性工作。而随着深度学习的进展,不再需要人工特征,通过深度学习自动提取特征成为一种可能。接下来主要讲述卷积神经网络在图片分类上的使用。

下图是一个经典的卷积神经网络模型图,由Hinton和他的学生Alex Krizhevsky在ILSVRC(Imagenet Large Scale Visual Recognition Competition) 2012中提出。 整个网络结构包括五层卷积层和三层全连接层,网络的最前端是输入图片的原始像素点,最后端是图片的分类结果。一个完整的卷积层可能包括一层convolution,一层Rectified Linear Units,一层max-pooling,一层normalization。

convolution7

图24. 卷积神经网络结构图

对于每一层网络,具体的网络参数配置如下图所示。InputLayer就是输入图片层,每个输入图片都将被缩放成227*227大小,分rgb三个颜色维度输入。Layer1~ Layer5是卷积层,以Layer1为例,卷积滤波器的大小是11*11,卷积步幅为4,本层共有96个卷积滤波器,本层的输出则是96个55*55大小的图片。在Layer1,卷积滤波后,还接有ReLUs操作和max-pooling操作。Layer6~ Layer8是全连接层,相当于在五层卷积层的基础上再加上一个三层的全连接神经网络分类器。以Layer6为例,本层的神经元个数为4096个。Layer8的神经元个数为1000个,相当于训练目标的1000个图片类别。

convolution_config

图25. CNN网络参数配置图

基于Alex Krizhevsky提出的cnn模型,在13年末的时候,我们实现了用于广点通的图片分类和图片检索(可用于广告图片作弊判别),下面是一些示例图。

图片分类示例:

image_classify

图26. 图片分类示例图

图片检索示例:

image_search2image_search1

图27. 图片检索示例图

图片分类上的最新进展

在ILSVRC 2012中,Alex Krizhevsky基于GPU实现了上述介绍的,这个有60million参数的模型(简称为AlexNet),赢得了第一名。这个工作是开创性的,它引领了接下来ILSVRC的风潮。2013年,Clarifai通过cnn模型可视化技术调整网络架构,赢得了ILSVRC。2014年,google也加入进来,它通过增加模型的层数(总共22层),让深度更深[48],并且利用multi-scale data training,取得第一名。baidu最近通过更加“粗暴”的模型[44],在GooLeNet的基础上,又提升了10%,top–5错误率降低至6%以下。具体结果如下图所示。

imagenet_result

图28. ImageNet Classification Result

先简单分析一下“GoogLeNet”[48,51]所采用的方法:

再分析一下“Deep Image by baidu[44]”所采用的方法:

3.2 Image2text,Image2sentence

上面讲述的图片分类对图片语义的理解比较粗粒度,那么我们会想,是否可以将图片直接转化为一堆词语或者一段文本来描述。转化到文本后,我们积累相对深的文本处理技术就都可以被利用起来。

Image2text

首先介绍一种朴素的基于卷积神经网络的image to text方法。

其中种子图片,就是可以覆盖所有待研究图片的行业,但较容易分析语义的图片集。这种方法产生了更加丰富而细粒度的语义表征结果。虽说简单,但效果仍然不错,方法的关键在于种子图片。利用比较好的种子图片(例如paipai数据),简单的方法也可以work得不错。下图是该方法的效果图。

image_semantic2image_semantic

图29. 图片语义tag标注示例图

上面的baseline方法,在训练数据优质且充分的情况下,可以取得很不错的图片tag提取效果,而且应用也非常广泛。但上面的方法非常依赖于训练数据,且不善于发现训练数据之外的世界。

另一个直观的想法,是否可以通过word embedding建立image与text的联系[26]。例如,可以先利用CNN训练一个图片分类器。每个类目label可以通过word2vec映射到一个embedding表示。对于一个新图片,先进行分类,然后对top-n类目label所对应的embedding按照权重(这里指这个类目所属的概率)相加,得到这个图片的embedding描述,然后再在word embedding空间里寻找与图片embedding最相关的words。

Image detection

接下来再介绍下image detection。下图是一个image detection的示例,相比于图片分类,提取到信息将更加丰富。

image_detection

图30. 图片detection示例

目前最先进的detection方法应该是Region-based CNN(简称R-CNN)[75],是由Jeff Donahue和Ross Girshick提出的。R-CNN的具体想法是,将detection分为寻找object和识别object两个过程。在第一步寻找object,可以利用很多region detection算法,譬如selective search[76],CPMC,objectness等,利用很多底层特征,譬如图像中的色块,图像中的边界信息。第二步识别object,就可以利用“CNN+SVM”来做分类识别。

r-cnn

图31. Image detection系统框图

这里有R-CNN的实现,请点击

Image2sentence

那能否通过深度学习方法,直接根据image产生sentence呢?我们先看一组实际效果,如下图所示(copy from 文献[43])。

image2sentence_example

图32. image2sentence示例图

关于这个方向,最近一年取得了比较大的突破,工业界(Baidu[77],Google[43],Microsoft[80,81]等)和学术界(Stanford[35],Borkeley[79],UML[19],Toronto[78]等)都发表了一系列论文。

简单归纳一下,对这个问题,主要有两种解决思路:

3.3 训练深度神经网络的tricks

考虑到图片语义分析的方法大部分都是基于深度学习的,Hinton的学生Ilya Sutskever写了一篇深度学习的综述文章[47],其中提到了一些训练深度神经网络的tricks,整理如下:

4 总结

4.1 语义分析方法在实际业务中的使用

前面讲述了很多语义分析方法,接下来我们看看如何利用这些方法帮忙我们的实际业务,这里举一个例子,用户广告的语义匹配。

在广点通系统中,用户与广告的关联是通过定向条件来匹配的,譬如某些广告定向到“北京+男性”,那么当“北京+男性”的用户来到时,所有符合定向的广告就将被检索出,再按照“ecpm*quality”排序,将得分最高的展示给用户。但是凭借一些人口属性,用户与广告之间的匹配并不精确,做不到“广告就是想用户所想”,所以用户和广告的语义分析就将派上用场了,可以从这样两方面来说明:

4.2 Future

对于文本和图片的语义分析,可以看到:最近几年,在某些任务上,基于深度学习的方法逐渐超过了传统方法的效果。但目前为止,对于深度学习的发掘才刚刚开始,比较惊艳的神经网络方法,也只有有限几种,譬如CNN,RNN,RBM等。

上文只是介绍了我们在工作中实践过的几个小点,还有更多方法需要我们去挖掘:

4.3 总结

上文主要从文本、图片这两方面讲述了语义分析的一些方法,并结合个人经验做了一点总结。

原本想写得更全面一些,但写的时候才发现上面所述的只是沧海一粟,后面还有更多语义分析的内容之后再更新。另外为避免看到大篇理论就头痛,文中尽可能不出现复杂的公式和理论推导。如果有兴趣,可以进一步阅读参考文献,获得更深的理解。谢谢。

5 参考文献

  1. Recurrent neural network based language models
  2. Statistical Language Models based on Neural Networks,mikolov博士论文
  3. Deep Learning实战之word2vec
  4.  出处2
  5. Translating Videos to Natural Language Using Deep Recurrent Neural Networks
  6. Distributed Representations of Sentences and Documents
  7. Convolutional Neural Networks卷积神经网络
  8. Grammar as Foreign Language Oriol Vinyals, Lukasz Kaiser, Terry Koo, Slav Petrov, Ilya Sutskever, Geoffrey Hinton, arXiv 2014
  9. 张家俊. DNN Applications in NLP
  10. distributed_representation_nlp
  11. Deep Visual-Semantic Alignments for Generating Image Descriptions
  12. Krizhevsky A, Sutskever I, Hinton G E. ImageNet Classification with Deep Convolutional Neural Networks
  13. Gradient-Based Learning Applied to Document Recognition
  14. Effetive use of word order for text categorization with convolutional neural network,Rie Johnson
  15. Large-Scale High-Precision Topic Modeling on Twitter
  16. A. Krizhevsky. One weird trick for parallelizing convolutional neural networks. arXiv:1404.5997, 2014
  17. A Brief Overview of Deep Learning
  18. Going deeper with convolutions. Christian Szegedy. Google Inc. 
  19. Long Short-Term Memory Recurrent Neural Network Architectures for Large Scale Acoustic Modeling
  20. Bengio, Y., Simard, P., Frasconi, P., “Learning long-term dependencies with gradient descent is difficult” IEEE Transactions on Neural Networks 5 (1994), pp. 157–166
  21. Chinese Segmentation and New Word Detection using Conditional Random Fields
  22. L. Yao, D. Mimno, and A. McCallum. Efficient methods for topic model inference on streaming document collections. In KDD, 2009.
  23. Brian Lott. Survey of Keyword Extraction Techniques
  24. Yi Wang, Xuemin Zhao, Zhenlong Sun, Hao Yan, Lifeng Wang, Zhihui Jin, Liubin Wang, Yang Gao, Ching Law, and Jia Zeng. Peacock: Learning Long-Tail Topic Features for Industrial Applications. TIST’2015.
  25. The FLDA model for aspect-based opinion mining: addressing the cold start problem
  26. Ross Girshick et. Rich feature hierarchies for accurate object detection and semantic segmentation
  27. J. Uijlings, K. van de Sande, T. Gevers, and A. Smeulders. Selective search for object recognition. IJCV, 2013.
  28. Baidu/UCLA: Explain Images with Multimodal Recurrent Neural Networks
  29. Berkeley: Long-term Recurrent Convolutional Networks for Visual Recognition and Description
  30. Xinlei Chen et. Learning a Recurrent Visual Representation for Image Caption Generation
  31. Modeling Documents with a Deep Boltzmann Machine
  32. A Deep Dive into Recurrent Neural Nets

本文链接:
本站文章若无特别说明,皆为原创,转载请注明来源:,谢谢!^^


上一篇:语义分析的一些方法(二)
下一篇: Back Propagation算法推导过程