本身是个项目申请建议书的一部分。与其丢进故纸堆,还不如公开。不过略官腔,不想专门改了。
和师弟@lmn15 共同撰写,版权所有。
深度学习是当前机器学习领域发展最为迅速的重要热点课题之一。深度学习具有分布式特征表达、自动特征提取、端到端机器学习和良好的泛化能力等优势,在语音识别、图像识别和自然语言处理等很多领域得到令人瞩目的成功应用。
在图像处理领域中,深度学习在图像分类、图像识别、目标检测、目标追踪、物体分割等诸多领域都得到了广泛的应用和实践,较传统方法而言,深度学习方法有着突飞猛进的效果,在手写文字识别、图像分类领域接近或已经超过人类能力水平。在自然语言处理领域中,从关键词提取、词性标注到句法分析、情感分析、机器翻译、图片文本描述、问答系统等各种应用领域都已经得到广泛应用到深度学习的方法,并且取得了很好的效果。
现代深度学习方法最引人注目的一个特点是其具有自动特征学习的能力,通过建立类似于人脑的分层模型结构,对输入数据逐级提取从底层到高层的特征,从而能很好地建立从底层信号到高层语义的映射,自动地学习特征的层次结构。在该层次结构中,高层特征通过底层特征构建,不同底层特征的不同方式的组合,可以构建不同的高层特征。
无论是图像处理还是自然语言处理,其方法都是首先将输入元素通过特征提取转换为特征空间向量,然后在特征空间向量之上进行分类、回归、检索等高层任务,进而完成整个处理过程。同时,神经网络的基础学习机制反向传播算法,也是基于特征空间向量与样本标签之间的映射关系完成的。因此,特征空间向量的本质代表了最能描述抽象问题的语义信息,例如在图像处理中,某一维或几维特征代表的可能是自然图像中的一个常见物体,例如人或者猫;而在自然语言处理中,某一维或几维特征代表的可能是一类语法关系或者一类名词/动词。
特征空间向量是一种理想的形式化表示方法,其将输入内容的处理简化为向量空间中的向量运算的算法模型,因此,空间上的相似度、关联度、距离、路径等信息即可以代表输入内容语义之间的相似度、关联度等等相关度量关系。因此在特征空间转换之后,便不再需要考虑图像、文本等数据的原始信息,可以有助于降低偶然出现的噪音。
早期的自然语言处理研究中,并没有引入很好的文本向量空间方法,而文本空间建模一直是自然语言处理、信息检索、文本分类、信息过滤、数据挖掘、信息推荐、知识处理、语音识别等领域研究的重点问题。例如,在信息检索 (Information Retrieval) 领域,可以通过将查询条件和文本映射到同一个向量空间进行相似性度量,得到在语义上更加符合查询条件的文本结果,这比传统的基于关键字的搜索引擎技术要更加贴近语义。
由于图像处理和自然语言处理有着类似的特征空间向量建模方法,因此,对图像特征空间和自然语言特征空间进行特征空间融合,即可实现基于深度学习语义信息的图文特征关联技术。图文特征关联可以将融合后的特征空间中的图或者文的特征向量进行关联、相似整合、计算距离等,因此可以应用在图片描述、图像文本检索(以图搜图、以文搜图、以图搜文等)、图片知识抽取等具体领域。例如在图片描述(Image Caption)中,可以借助向量空间建模对一幅图片进行文本的简略描述。该描述既可以描述图片中出现的物体属于什么分类,同时还可以描述物体和物体之间的位置和相互关系,例如,可以描述一幅图片中一只狗蹲/站在一个人的旁边;再例如下图,这可以被描述为“一个人在滑板上冲浪”。
图像和文本的特征空间建模当前还存在着以下难点和挑战:
第一、文本空间建模方法上不完全成熟。
文本空间是时序上的状态空间,也就是通常所指的文本上下文关联的问题,当前说的话表达的意思在很大程度依赖于前面所讲的意思。RNN通过不断地将输入词的信息添加到历史向量中,寄希望于保存足够长的历史状态信息。但是实践中并没有成功,Bengio等人对该问题进行了深入的研究,他们发现了使训练RNN 变得非常困难的根本原因(梯度消失/梯度爆炸)。后续又有人提出了RNN的各种改进,应用比较广泛的有LSTM和GRU等。
当前图片特征建模方法相对比较成熟,而文本建模方法,则存在源序列条目间区分度低、条目上下文相关性差、长序列语义丢失严重等主要问题。
- 源序列条目间区分度低表现在,当前基于深度学习的文本建模方法在通过源序列生成目标序列时,是通过将源序列通过深度网络(一般使用RNN)转换成中间语义编码,再通过RNN将语义编码依次解码成目标条目得到的。生成目标序列时,不同时刻使用的都是同一个原始序列的语义编码,也就是说不论是预测目标序列的哪个条目,原始序列中任意条目对生成某个目标条目来说影响力都相同。
- 条目上下文相关性差表现在,对于word2vec、SENNA模型的中间层来说,无论是采用将窗口内的条目直接相加还是首尾相连的方式,都没办法体现出当前预测条目及其上下文不同条目之间的相关性、以及上下文不同条目对当前预测条目影响力之间的差别。
- 长序列语义丢失严重表现在,根据RNN保存历史记忆的特性,原始序列中越是后输入的条目在编码时生成的语义编码中影响就越大。同时,随着原始序列长度的增加,所有语义完全通过一个中间语义编码向量来表示,每个条目自身的信息已经消失,会丢失越来越多的语义信息。
第二,针对深度学习的方法存在无法有效的在训练中将原始序列的语义准确对应到目标序列的问题,当前研究采用引入注意力机制的方法解决。
注意力模型在更好的利用原始序列语义信息上是一种较为可靠的解决方案,因为注意力模型具有能够捕捉原始序列中不同条目之间对于目标序列预测的相关性、重要性与差异性的特点,适合深度网络构建文本空间的场景下提高语义信息利用率的问题。
基于注意力机制的模型可以关注到每个输入条目(包括其上下文)的特征,提高模型从输入序列中抽取生成每个输出条目最相关的信息的能力,提高输出序列的质量和正确性。在构建文本空间常见的Seq2Seq模型中,原始序列每个条目对应的注意力分布概率代表了预测当前条目时,注意力分配模型分配给不同原始条目的注意力大小。模型在预测目标序列的每个条目时会学习其对应的原始序列中条目的注意力分配概率信息。这意味着在生成每个条目的时候,原先都是相同的原始序列语义编码会随着当前生成条目而不断变化。由于引入了新的信息,基于注意力的Seq2Seq模型可以提高预测目标条目的正确性。而对于word2vec模型,Wang等人使用注意力机制 (Attention model) 考虑到每个词与其他词之间的距离,将中间层的直接相加修改为带权相加,其中权重的计算与当前词的上下文、以及历史预测出的词汇都相关,得到了更好的效果。
第三、端到端的学习网络模型框架。
鉴于图、文两种不同领域特征建模方法的巨大差异,如何将两个领域的特征空间进行融合,如何建立机器学习学习训练模型,本身是一个很重要也非常具有挑战的问题。目前较为常见的网络模型主要有谷歌的Show and talk和斯坦福大学的neural talk。
斯坦福大学的Neural Talk模型选择了牛津大学的VGG作为图像端的CNN编码网络、早期的Vanilla RNN作为文本端的RNN解码网络。通过将图像输入VGG网络,得到网络高级隐含层向量作为文本端RNN初始状态的bias输入,再通过RNN解码得到图像描述。由于其开源时间早、直接使用python进行实现,没有依赖目前流行的各种深度网络训练框架,因此成为了研究者关注的热点。但随着领域竞争日趋激烈,Neural Talk模型由于其提出时间早、选用的CNN和RNN网络性能相对较弱,因此生成的图片描述在常见的BLEU指标上现在已经相对落后,但其端到端的思想仍然是当前各种模型发展的热点方向。
谷歌的Show and Tell模型与斯坦福的Neural Talk模型在思想上非常类似,其选择了自身开发的的Inception V3作为图像端的CNN编码网络、记忆能力更强的LSTM作为文本端的RNN解码网络。通过将图像输入Inception V3,得到网络高级隐含层向量作为文本端LSTM的初始隐状态,再通过LSTM解码得到图像描述。由于其在图像和文本端选用的深度网络模型都是当前性能最佳的模型之一,因此生成的图像描述在BLEU指标上也名列前矛。但其也存在很多问题,比如模型生成的句子存在重复程度高的问题。由于Show and Tell模型隐式地用隐含层保存之前生成的词语信息,没有显式的约束。举个例子,在单词层面,文本端的LSTM会认为输出一个物体A后很可能接着输出“and”,在下一个时刻遇到“and”的时候认为应该输出一个物体的词,此时输出的物体可能又是A,也就是Show and Tell的LSTM模型并不能区分“and”前后的两个物体其实是一样的。同时在句子层面,Show and Tell模型生成的图像描述重复程度也相当高。
以上问题都是当前图文关联技术的难点和研究热点。
但应该不是全部,欢迎补充。