感想
这篇文章我看了一下作者是北航和微软亚洲研究院合起来做的一篇文章,我感觉最深的是它的那个image-text network embedding的思想,用采样的方法来降低训练的复杂度。这也是一个深度学习注意力模型,更开心的是,论文里面说代码是用keras来写的,论文接收之后会公开源码,还是蛮期待的。文章说的链接关系困扰了我好久,到结尾才说原来是tags之间的关联关系,前面吹得这么高大上,我还真以为他们用的是社交网络中的url之间的关系呢。不过总体上这篇文章还不错,亮点就在那个注意力机制和那个网络。
1 介绍
随着社交网络的曾展个,项包含有内容和链接信息的社交图片的数据在五花八门的社交媒体中变得非常流行,例如Facebook,Twitter,Flickr等,这些数据需要高效的方法来处理和分析。通过学习一个高效的表示来捕获链接信息和内容之间的联系是一个不错的解决方式,学习社交媒体数据表示在以内容和网络的应用中取得了巨大的成功,例如multilabel iamge classification,cross-modal image search和link prediction。因此,怎样把数据表示成一个向量空间收到了学术界和工业界的广泛关注,这种表示也叫作社交媒体数据嵌入(social media data embedding),这随后假定为社交图片嵌入的一个巨大的挑战:多模态的内容和链接可以结合用于嵌入学习吗?
把社交媒体数据用于embedding是一项巨大的挑战。首先,社交图片包含有不同形式的表示,例如图片和文本描述。这些数据形式在特征空间上是异构的;第二,这些数据中存在连接关系,这表明一个高效的embedding应该均衡非线性网络信息和数据内容,用来学习一个合一的表示;第三,社交网络的社交图片的数量已经是爆炸性的增长。因此,它需要一个高效的方法来从大量的数据中学习嵌入。图1给出了一个社交图片的样例。
大多数现有的社交媒体数据嵌入方法可以被分类为两类,例如基于网络和基于内容。基于网络嵌入方法学习几点的一个表示,用来捕获网络结构,这包含着基于浅层模型的方法,例如GraRep,Line和PPNE,以及基于深度模型的方法,例如SDNE。这些方法主要使用网络中近似的信息来学习嵌入,忽略了结点包含的内容。基于内容的方法主要使用一个监督方法或者半监督方法来学习图片和文本的联合表示,这忽略了数据之间的联系,以及不同数据形式之间的细粒度的关系。即使HNE结合了网络和内容用于embedding learning,它对不同数据形式的独立建模,学习过程很费时。
与此同时,社交媒体数据的多模态,异构和相互连接的特点可以为社交数据embedding提供线索。首先,社交图片没有孤立的存在,而是显式的或隐式的连接。即使相互连接违背了在大多数统计机器学习算法中的独立同分布的假设,内容和连接信息可以同时被利用来弥补彼此,一次得到更好的解决方案;第二,即使不同形式的内容是异构的,但是它们之间存在细粒度的联系。例如,如上面图1,一些单词,例如“dog”,”baby”,”flowers”和对应图片区域相联系。如果关系被精确的解析,这些单词和视觉区域可以以一种亲密的方式建模,根据需要,突出的特征是可以排在最前面。
为了解决上述的挑战,我们提出利用链接信息和社交图片的多模态的内容过来做embedding。特别地,(1)怎样在学习的表示中捕获不同数据形式的细粒度的关系;(2)怎样把链接关系融入到社交图片的embedding。我们对这些疑问的解决方案叫做用于社交图片embedding的Deep Multimodal Attention Networks。它旨在学习社交图片embedding,可以同时对基于多模态内容和网络结构进行编码为一个联合的深度模型。框架如图2所示。
视觉文本注意力模型利用不同数据形式的细粒度的关系,以此作为社交图片嵌入,文本区域和图片单词的对齐以此来阻止模型被单个模态占据主导。为了把链接信息结合用于embedding。建立在CNN基础上的Siamese-Triplet神经网络结构用于对网络结构进行建模。接着,用一个联合模型来集成这两个组件,把多模态内容和链接信息嵌入到一个合一的向量空间。为了改进模型推断的效率,我们在Triplet网络中应用了正负采样的方法,这大大减少了优化方法的时间复杂度。
2 贡献
这篇文章的主要贡献总结如下:
1. 和传统的数据embedding方法不一样,我们研究了学习linkage-embedded社交图片嵌入的问题,这种方法学习的嵌入可以很好的捕获多模态内容和网络结构。我们的方法是非监督且任务独立的,因此这种方法适合很多面向网络和基于多模态数据挖掘的应用。
2. 我们提出了一个联合深度模型(DMAN),解决了结合内容和链接用于embedding学习的挑战,这两个模型能分别捕获多模态内容和网络结构,然后用一个深度网络来把它们集成起来。
3. 我们在真实世界数据集上比较了一些最好的baseline算法,实验结果证明了我们提出模型的优越性。
3 学习社交图片嵌入
3.1 问题陈述
在问题定式化之前,我们定义这篇文章使用的一些符号。这篇文章中,社交图片的集合定义为一个多模态的网络,该网络的每个节点包含多模态内容和一个或者多个类型的链接。作为一个数学抽象,我们定义一个无向图
其中,V={V1,…,VN},V是一个节点的集合,ε是边的集合。一个边,属于集合ε,当且仅当Vi和Vj的无向连接存在。为了进一步简化的理解,我们假定在网络中有两种类型的对象:image(V)和text(T),每个结点包含一对两种类型的对象。然后
其中,一张图片表示为一个矩形张量形式,V_i∈R^L,L表示tag词汇量的大小。
图2阐明了我们方法的框架。详细地,为了对社交图片的联系进行编码,Siamese-Triplet神经网络是对图片的三元关系进行建模,例如,对于一个给定的图片,正图片是随机抽样的图片链接它的,负图片是随机图片没有链接它的。Siamese-Triplet神经网络有三个相同的基网络组成,它们共享相同的参数,有一个hinge rank损失来学习正负图片的排序。为了捕获图片区域和文本单词的细粒度的关系,我们提出了一个多模态注意力网络(multimodal attention networks)模型,为给定社交图片的输入单词和视觉区域给定一个合理的注意力权重(reasonable attention weights),随后我们用一个联合深度模型来融合这两个组件,挺且同时优化他们。网络中的链接数量随着结点的增加呈现爆炸性的增长,直接通过在每次迭代中更新整个网络来优化目标函数会导致复杂度爆炸。因此,我们提出一个正负图片采样的方法来减少训练的复杂度,在推导过过程中对每张照片随机采样一个正图片和K个负图片,这只有线性的复杂度。
3.2 Siamese-Triplet Neural Network Model
Siamese-Triplet结构对网络结构的建模是有效的,它包含三个相同的子网络,子网络共享相同的配置。因此,只需要少量的参数和少量的数据来训练它。为了捕获网络的非线性结构,我们提出了一个基于Siamese-Triplet神经网络的深度模型,用于社交图片embedding,如图3所示。
首先,我们建立了一个深度CNN,有额外的全连接(FC)层,以此作为我们的基网络来学习每张图片的特征。为了对网络信息编码,在基网络上,我们建立了一个有Siamese-Triplet结构的网络。通常,一个节点跟它的链接节点比一个随机的结点更相似,我们使用Siamese-Triplet结构来捕获三个结点的信息的排序。于是,对于一个给定的图片,我们采样一个正图片,正图片和这张图片有链接,我们采样一张负图片,负图片与这个图片没有链接。这三张图片组成了这个Triplet network的输入。
其中在Siamese-Triplet网络中共享的参数。我们可以采样一个负图片,其相似度计算方式如公式(1)。
我们使用f_t (.)表示特征的变换,对于网络中的每张图片V_i,我们采样一个正图片V_i^+来组成正对,并且我们从最后一层来获取它的特征,表示为f_t (V_i).两张图片 V_i^+和
V_i的相似度定义如下:
其中θ_t在Siamese-Triplet网络中共享的参数。我们可以采样一个负图片V_i^-,其相似度Sim(V_i,V_i^-;θ_t)计算方式如公式(1)。
为了把网络结构信息编码到特征表示f_t (.)中,给定图片和正图片的相似度是很大的,而给定图片和负图片的相似度很小,例如
排名的损失由hinge rang loss进行定义:
其中,M表示两个相似度的间隙参数(gap parameter),我们在实验中经验的设置M=0.3.因此我们用于训练的目标函数定义为:
其中,N表示结点的总数,L2规范化用dropout层来替代。
选择负样例来用语学习排序是比较重要的,我们使用mini-batch SGD的方法来训练模型,对于每对和,我们在相应的batch B上来随机采样K个负样例。对于样例的每个三元组之一,三个样例的梯度是分别计算的,参数通过反向传播方法更新。为了确保片段和每次查找不同的负匹配,所有的图片在训练的每次迭代中随机打乱。对于我们的实验,我们设置K为3.
3.3 视觉文本注意力模型
注意力是一种机制,它可以使得输入和输出序列进行对齐,这样显著的特征格局需要动态的来到了最前面。最近,它已经被证明对许多与视觉相关的任务有用,例如图片描述(image captioning)和图片问答(image question answering)。和这些工作不同,我们的注意力机制定义为Siamese- Triplet结构下的多模态数据。我们使用注意力模型来捕获不同数据形式的对齐,基于Siamese-Triplet网络的深度模型,这可以利用网络信息来学习单词和图片区域的映射。
给定一个image-text对,我们的目标是自动发现单词和文本区域的关系。令T_i={t_i^0,t_i^1,…,t_i^k,…,t_i^L },T_i∈R^L表示第i对的文本特征,它是一个one-hot单词向量,长度为L,其中k表示单词的索引。令V^i表示对应T_i的原图片。我们用CNN来获取图片区域映射Ri,对于Vi的R_i={r_(i,0),r_(i,1),…,r_(i,j),…r_(i,D)}∈R^(D×M)定义如下:
其中θ_c是CNN层的参数,j表示区域的索引,D表示图片区域的维度,M是map的维度。
在注意力模型中,根据每个图片区域r_(i,j)和单词t_i^k的相关程度指派一个0到1之间的值。正式地,我们旨在自动产生单词的图片注意力的值:
其中,Zi表示未规范化的单词注意力的值,第i对的区域映射(map)R_i.Zi是用softmax函数来空间归一化来获取最终的单词注意力映射(map)Ai,
其中,z_(i,j)^k代表在图片i中区域i对应单词k的未归范注意力的值,a_(i,j)^k代表图片i中区域j对应的单词k的规范化注意力的值。如果把单词k指派到输入图片,我们应该给予相关的图片区域一个更高的值。注意力估计值f_a (.)可以用很多方式来计算,例如CNN。在这篇文章中,它被定义为一个序列化分布的全连接层,用如下的方式计算:
其中w∈R^(L×M)和b∈R^L组成了注意力模型的参数集合θ_a.(公式5),在反向传播的时候来更新。Tanh激励用于使得模型变得非线性。
令r_(i,j)∈R^(L×M)表示Ri中区域j的视觉特征向量,规范化的注意力的值作为每个单词的代权特征和,来获取输出特征如下:
注意力模型的结构解释如图4,上面的公式有点像每个单词的代权均方池化层,和原来所有单词共享的独立视觉特征相比,带权视觉特征映射u_i^k在把图片区域映射到相关的的单词k上更有效。U_i的维度是R^(L×M),而T_i∈R^L。为了比较视觉输出特征和文本特征,我们堆叠了一些LFC(Locally Fully Connected)层来获取视觉特征的L维度输出,LFC层局部全连接每个单词,对应不同单词的参数集合是独立的。即u_i^k仅仅和对应每个单词k的ti有关。注意,最后的LFC层仅仅对词汇表中每个单词有1个神经元,LFC设置了最后的输出的维度是L,最后的LFC层的激励sigmoid,该激励用来规范化估计单词置信度的特征表示,这是通过比较ground truth text向量来估计的。令Y_i∈R^L为LFC层的最后输出:
我们对上述提到的三个方程做了一个做一个pipeline,从图片输入到Yi的整个过程为:
其中,f_w是f_c的pipeline,f_c,f_a和θ_w是θ_c, θ_a和θ_l的集合。
参数θ_w是学习到的,通过最小化Yi和Ti之间的带权二分交叉熵损失,
其中N是这些对的数量,λ是一个平衡参数。Ti中的零参数比非零参数多,很合理的惩罚更多的错误负样例。
3.4联合的嵌入模型
Siamese-Triplet神经网络通过利用网络结构信息来学习嵌入,视觉文本注意力模型利用数据模态之间的细粒度的关系来用于嵌入式学习。直觉上地,我们提出了一个联合的深度嵌入模型来结合两个组件,然后同时优化他们。特别地,我们在Siamese-Triplet模型的基网络中把FC层变为一个注意力层和若干LFC层。随后,我们把损失函数定义为hinge rank损失的和,带权二分交叉熵损失定义如下:
其中β是一个带权参数,Triplet网络在联合模型中加入了注意力,参数θ_t用θ_w代替,在整个模型中共享。
通过采用正采样和负采样方法,联合深度模型的计算复杂度极大地降低了。假设image-text对的数量为N,其它的犯法通过迭代整个网络来学习网络的表示,这导致了O(k(NxN))的复杂度,K是迭代的次数。我们的方法仅仅是从每个结点上采样一些结点来在每次迭代中做参数更新,因此,计算复杂度减少至O(k(N))。
4 实验
4.1 实验设置
实验在三个流行的数据集上进行的,数据集是从flickr上收集的,数据集由人工标注的ground truth标签。基于这些集合的研究,我们从原始的Flickr网站上爬取了原始的图片,这些图片集合的描述如下:
1) NUS Web Image Database(NUS-WIDE)数据集是一个web图片数据集,包含269 648张图片,其中226 912张可以在Flickr源中获得。
2) MIR Flickr Retrieval Evaluation(MIR)数据集包含一百万张图片,只有25000张图片被标注了,其中13 368张标注的图片可以在Flickr源中获得。
3) PASCAL Visual Object Classes Challenge(PASCAL)数据集包含9963张图片,其中9474张标注的图片可以在Flickr源中获得。
我们预处理了这些数据集。首先,这里面有很多噪声图片,这些图片不属于任何他们的ground truth标签,我们移除了这些样本。随后,我们使用了最频繁的1 000个标签作为文本词汇表,构造了一个1000-D 的0-1向量用于文本内容。我们进一步移除了不包含词汇表任何单词的image-text对。最后,我们随机的采样image-text对用作训练和测试,比率为4:1。我们构造了一个网络,把每个image-text对当做一个节点,如果他们有至少一个共同的标签,他们之间建立一条边。对于每个结点,最多采样50个链接来构造稀疏的邻接矩阵。我们用out-of-sample策略来评估我们的框架。数据集的最终统计在下表1,注意到NUS-WIDE的90000个结点是随机采样的,其中53844个结点用于训练,36352用于测试。
在实验中,图片的大小为224*224,RGB channel,作为视觉输入,CNN被用于视觉特征提取。特别地,我们的CNN层利用了在ImageNet 2012分类挑战数据集上预训练的vgg 16网络,用了Keras 深度学习框架,随后,我们使用了pool5的输出作为图片区域映射的视觉特征,大小为49*512。我们堆叠了LFC层来得到注意力层,维度分别为1000*128,1000*32,和1000*1。至于超参数λ和β,我们分别设置为10和1,这样就可以获得一个相对更好的性能。在训练过程中,我们设置的学习率为0.01,momentum为0.9,nesterov=True。所有的实现是在2*NVIDIA GTX 1080上训练的。我们模型的所有源代码将会在我们发表后发布。
4.2 Baselines
我们让DMAN和下面的一些方法进行了对比:
1) CCA: Canonical Correlation Analysis把两种类型的输入数据嵌入到一个共同的隐式空间,就他们的关系来优化一个目标函数。
2) DT:一个迁移学习的方法,它使用隐式的嵌入来建立图片和文本语义距离的桥梁。
3) LHNE:HNE(Heterogeneous Network Embedding)的线性版本。
4) KCCA: Canonical Correlation Analysis的核版本。
5) DCCA: 基于image-text匹配方法的深度canonical correlation analysis。
6) DMAN triplet:仅仅使用图片来构造triplet 神经网络,网络直接学习表示。它用于评估嵌入的triplet网络的有效性。
7) DMAN Triplet+text:文本内容通过DMAN triplet,其中文本内容通过使用一个全连接网络来结合,而不是一个注意力网络。
4.3 多标记分类
所有的数据集是多标记的,类别分布不均衡。我们利用macro/micro precision,macro/micro recall,macro/micro F1-measure,Mean Average Precision (mAP)来评估其性能。如果预测的任何标签置信度高于0.5,这个标签是正的。为了公平比较,我们使用有3FC层的神经网络来学习一个一般的分类器。完成训练过程后,我们使用训练的模型来获取测试集合的嵌入。随后,我们使用上述提到的FC分类器来训练和测试每个数据集。
3个数据集的实验结果如表2,DMAN超过了其他的方法。首先,从NUS-WIDE的结果来看,我们可以得出DMAN Triplwr的性能比CCA,DT和LHNE在mAP上更好,验证了使用triplet网络模型做嵌入的有效性。结合文本内容,DMAN Triplet+Text 几乎达到了HNE在mAP度量下的分数,并在所有的度量上超过了DMAN Triplet模型。这证明了结合多模态内容作嵌入学习的重要性,在使用注意力模型的情况下,DMAN的mAP从HNE的54.99%提升到了57.22%,和DMAN Triplet+Text相比,attention DMAN在所有的度量下都有提升,这是因为注意力模型使得多模态内容进行了对齐,这对学习多模态数据的高效表示非常有用。另一方面,HNE单独的学习图片和文本文档的特征,很难补货不同数据形式的相互关系。与此同时,其他基准线方法不能有效的利用连接信息和不同数据模态的细粒度关系。PASCAL中tags的数量比其他的数据集少,但是质量更好。因此,DMAN Triplet+Text和DMAN在PASCAL比在其他数据集上更好。
4.4 Cross-Modal Search
为了进一步证明DMAN的优越性,我们把它和baselines的方法在跨模态搜索的任务上进行了比较。在NUS-WIDE,MIR和PASCAL数据集中,有77/81,12/14,17/20的groundtruth label单词出现在了文本向量中。我们手工的构造了77,12和17个查询向量,维度为1000,分别作用于三个数据集,通过设置对应的label条目到一个,然后剩下的条目设置为0.使用学到的嵌入方程,我们把查询向量映射到潜在的空间来检索测试集上所有的训练样本,我们使用的是标准的Euclidean distance,多有查询的rank k的平均精度(p@k)报告如表3.
在NUS-WIDE数据集上,和HNE相比,DMAN取得了高于10%的AP,大大超过了CCA,DT和LHNE。在所有三个数据集上,DMAN超过了KCCA和DCCA。这证明我们模型对跨模态搜索的有效性。与此同时,连接信息对查找大多数相似图片是有帮助的,这影响到了那些忽略了链接信息的方法的性能,并为注意力模型在跨模态搜索上的有效性提供了证据。
图5给了MIR搜索结果的一些样例。对于每个查询,我们展示了top-5 排序的图片和他们通过注意力模型对应的区域。对于查询“Sea”,对其的图片已经错误的匹配到了蓝天和白云,这是因为“sea”,“cloud”,“sky”的标签在相同图片中频繁的共现。对于其他的查询,我们的模型得到了图片的正确的注意力,因此提高了性能。
参考文献
[1]. Feiran Huang, Xiaoming Zhang, Zhoujun Li, Tao Mei, Yueying He, Zhonghua Zhao:Learning Social Image Embedding with Deep Multimodal Attention Networks. ACM Multimedia (Thematic Workshops) 2017: 460-468