梅涛:深度学习为视觉和语言之间搭建了一座桥梁
梅涛 微软亚洲研究院资深研究员
编者按:视觉和自然语言处理长期以来是两个独立的课题,而深度学习技术的出现建立了计算机视觉和自然语言处理之间的连接,为Image QA及Image Caption带来了突飞猛进的发展。在本文中,来自微软亚洲研究院的资深研究员梅涛将带领大家回顾视觉与语言领域的研究进展。文中所有引用文章的下载链接为: http://pan.baidu.com/s/1o8K5AMu(点击【阅读原文】即可下载),本文转载自“深度学习大讲堂”。
Image/Video Captioning
1. 起源
计算机视觉已经发展了五十多年。在此期间,视觉理解(visual understanding)这一领域取得了长足的进展。为了让机器像人类一样能够“看”懂周围的世界,计算机视觉研究人员设计了大量的人工特征去描述一件物体,并且提出了各种模型去识别这些人为设计的特征。几年前,当我们谈论图像或视频理解时,我们能做的只是给一幅图像或一段视频自动打上一些彼此相互独立的标签(tag)。而今天,我们已经可以借用深度学习的发展将视觉理解这一基础任务再往前推进一步,即将单个的标签变成一段和当前视觉内容相关并且通顺连贯的自然语言描述。
视觉和语言(Vision and Language)其实是一个交叉领域。想要建立视觉和自然语言的桥梁,不仅需要理解视觉,也要知道如何对自然语言进行建模。同时,这个桥梁也可以是双向的,既可以从视觉生成文字(如caption、sentiment、visual question answering等),也可以从文字到视觉(如generation、search)。
最早的一篇做图像语言描述的论文来自于ECCV 2010,此后随着深度学习在视觉任务中的普及,视觉和语言这一新兴领域越来越受到大家的关注,在 CVPR 2015和 CVPR 2016中分别收录了5篇和7篇相关论文。这个领域因为同时涉及了视觉和语言处理,所以CVPR/ICCV/ACL等视觉和语言处理会议中都收录了相关的高质量文章。
2. 思路
Image Captioning 的基本思路来源于语言翻译,其流程大体是先使用 CNN 对图片进行编码得到视觉特征表示,然后使用 RNN 对这个特征进行解码来生成图像描述。在提取视觉特征时,可以使用高级语义特征和注意力机制等计算机视觉领域常用的方法,也可以直接使用自动编码器进行处理。
Image Captioning with X
Image Captioning方面的工作可以总结为“Image Captioning with X”,其中的 X 可以是 Visual Attention, Visual Attributes, Entity Recognition, Dense Caption 和 Reinforcement Learning等模块。IBM 最近的一篇 CVPR 2017文章就在 Image Captioning 任务中使用了增强学习,通过在目标函数中加入 reward optimize function 来实现这一功能。
A-LSTM
在微软亚洲研究院最新的论文中,我们在现有的CNN-LSTM Translation Model(如图中黑色流程线所示)基础上使用 Multiple Instance Learning 学习图片中一些内在的概念,并将这个语义信息作为 LSTM 的输入对其进行约束以提升性能(如图中蓝色流程线所示)。
Video Captioning
VS Image CaptioningVideo Captioning 与 Image Captioning 有所不同,当我们要理解视频时,我们不仅要理解每一帧中的物体,也要理解物体在多帧之间的运动。所以,视频理解往往比图像理解更为复杂。主要表现为如下几点:
● 视频既可以被视为帧流,亦可以视为trimmed video clip:
○ 当被视为帧流的时候,首先将视频帧作为图片,最后对其进行池化操作;
○ 对于trimmed video clip的情况,可以使用时域频域模型来学习视频中的一些行为。
● 视频中还存在音频流和字符流,都可以作为 Video Captioning 的输入特征。例如我们组今年被ACM Multimedia大会接收为ORAL的一篇长文就是设计一个multi-stream LSTM网络对视频的多个模态综合处理产生caption。
● 在Video Captioning中可以使用不同的池化方式,如基于时间轴的均值池化和最大值池化,还可以使用注意力机制,比如Hard-Attention和Soft-Attention,或者使用编解码的方法对其进行处理。
Video Captioning with Attributes
在我们CVPR 2017的一个工作中,我们发现,图片数据集比视频数据集的数量多,内容和语意信息更加丰富。所以我们思考了两个问题:
● 其一是图像和视频的内容是否互补,我们能否以多任务的形式对 Image captioning 和 Video captioning 这两个任务同时进行处理;
● 另外一个问题是如何将 Image Captioning 迁移到 Video Captioning 中,在论文中我们使用两个MIL模型分别获取图像和视频的信息,并使用Transfer Unit 进行迁移学习。
微软研究院
“Video to Language” 挑战赛为了更好的促进视觉和语言这一领域的研究,我们在ACM Multimedia 2016和2017举行了微软研究院 ”Video to Language” 挑战赛(http://ms-multimedia-challenge.com/),并且在今年的CVPR大会上举办了Vision and Language Workshop。
在“Video to Language“挑战赛中,Sequence Learning 是竞赛中最主流的方法。
● 其中的一个思路是 CNN-LSTM 框架:先使用 CNN 学习图片特征并对其进行不同的处理,最后输入到 LSTM 中得到最终的结果。
● 另一个思路是编解码框架,其优点是LSTM 模块可以在视频标注上进行端到端的学习。
可以使用不同的方法来提取不同的特征:
● 如可以使用 VGG, GoogLeNet和 ResNet 等深度学习框架提取图片特征;
● 使用C3D、 IDT 和 Optical Flow来提取动态特征;
其他的还有 acoustic features, text features 和 video category 等特征都有助于 Video Captioning 这一任务。
Visual Question Answering
Vision and Language领域中有一个新的问题--Visual Question Answering:给定一张图片,并对图片中的内容进行提问,我们希望计算机能根据图片中的内容对问题给出合理的回答。虽然这个问题有很多人在研究,但是依然不够成熟,还不能应用到真实场景中。
VQA的范例与挑战
这个问题的处理方法与 Image Captioning相似,如ICCV2015中提出的 baseline 使用的就是LSTM + Image的框架:
先使用 CNN 学习图片蕴含的特征,同时使用 RNN 学习描述问题的句子中包含的特征,然后将这两个特征进行融合,并对使用 Softmax 等方法对其进行处理来得到最终结果。
VQA with X
与 Image Captioning 一样,VQA 中的方法也可以总结为 ”VQA with X”。
当 X 是 visual attention 模块时,这个 visual attention 可以从图像中学习,同时也可以从描述问题的句子中学习,这就是 visual-question co-attention。
我们今年被CVPR 2017接收的一篇论文中还提出了 multi-level attention:即先学习一个初始的 attention,然后通过image 中不同 region 之间的关系以及问题中不同词素之间的关系来学习 multi-level attention。
Stack Attention Network
该方法是先使用CNN学习图像的特征表示,然后以迭代的方式使用LSTM对问题进行学习,使得注意力逐步集中到问题关注的方面。他们在VQA 网络中加入Stack Attention这个模块之后,准确率可以从53.7%提升到58%。
Visual-Question Co-Attention
过程如下:
1. 首先将描述问题的句子分解为单词;
2. 然后将单词组合为短语;
3. 最后将短语重新组合为句子;
4. 并通过这三个不同尺度的元素来构建问题的特征表示。
结果:
这种通过三个不同尺度的Text Attention和Image Attention学习特征的方法,能逐步将问题的关注点聚集到图像相应区域,最终可以将准确率从58.7%提高到61.8%。
Multi-level Attention
Multi-level Attention是在传统的 Image Attention 框架上,使用 RNN 来学习图片中不同区域之间的关系,并将准确率提高到了65.4%,是所有公开方法中最好的结果。
写在最后:
对图像及视频的理解,从简单的独立标签到连贯的自然语言描述,深度学习只用了几年的时间。可以说,深度学习这项技术,赋予了计算机对单一维度图片数据、以及二维视频数据更强的识别理解能力,在某些方面已逼近人类、甚至超过人类的水平。
近年来,随着大量的视频数据库的开放,如"MSR Video Decription Corpus", "MSR Video to Language (MSR-VTT)", “ActivityNet”等,为这一领域的学术研究带来了长足的进步,同时也衍生出了一些新的研究方向,如VQA等。
然而,相较于学术界的进展,在真实的应用场景中,我们仍面临着技术不够成熟、鲁棒性不足等问题,离真正落地仍有很长的路要走。
今天,深度学习技术为视觉和语言之间搭建了一座桥梁,这将只是一个开始,随着更多维度信息的加入(如语音、文本等),计算机将能够更好地理解这个多维的世界,为人工智能全方位服务人类提供可能。
你也许还想看:
● 计算机视觉:就在你我身边
● 【计算机如何取代人眼】动静之间,从视频到语言
● 观点|Alberto Del Bimbo:为什么说研究员要有想象力?
感谢你关注“微软研究院AI头条”,我们期待你的留言和投稿,共建交流平台。来稿请寄:msraai@microsoft.com。