在介绍本篇论文前,我们首先介绍什么是矩阵分解,tucker张量分解,双线性模型??
矩阵分解大致三个作用: 降维处理,稀疏数据填充,隐形关系挖掘。下面以推荐系统中常用的矩阵分解为例。
推荐系统中,给定一个大小为 m ∗ n m*n m∗n的评分矩阵R,元素 r i j r_{ij} rij表示用户i对商品j的评分值。
当R的秩 k = r a n k ( R ) < < m i n ( m , n ) k = rank(R)<
R = U V T R=UV^T R=UVT其中,U是大小为mxk的用户因子矩阵,V是nxk项因子矩阵,这一过程就是矩阵分解
当 k < r a n k ( R ) k
R ≈ U V T R \approx UV^T R≈UVT,U和V与前面含义相同,显然,整体误差为残差方程 R − U V T R-UV^T R−UVT中所有元素的平方和,即 ∣ ∣ R − U V T ∣ ∣ 2 ||R-UV^T||^2 ∣∣R−UVT∣∣2
在实际应用中,这里的R往往是一个稀疏矩阵,因为如果有1000个用户,1000个商品,构造评分矩阵,不需要每个用户把每个商品都买一遍??
矩阵分解在推荐系统中被称为隐性因子模型,定义用户i在环境c下对项j进行评分为 r i j c r_{ijc} rijc ,一个特殊的张量分解结构,即大小mxnxd的评分张量R分解会得大小为用户因子矩阵U:mxk,项因子矩阵V:nxk,环境因子矩阵W:dxk,这就是隐形因子模型的一种高阶泛化。
所以第3阶张量R上任意位置(i,j,c)所对应的评分计算如下:
张量分解有很多方法,张量分解通常用来解决稀疏张量的填补问题。
以三阶张量为例:假设张量 T = n 1 ∗ n 2 ∗ n 3 T=n_1*n_2*n_3 T=n1∗n2∗n3,则进行Tucker分解后变为
T ≈ X ∗ U ∗ V ∗ W T \approx X* U * V * W T≈X∗U∗V∗W
t i j k ≈ ∑ m = 1 r 1 ∑ n = 1 r 2 ∑ l = 1 r 3 ( x m n l ∗ u i m ∗ v j n ∗ w k l ) t_{ijk} \approx \sum_{m=1}^{r_1}\sum_{n=1}^{r_2}\sum_{l=1}^{r_3}(x_{mnl}*u_{im}*v_{jn}*w_{kl}) tijk≈m=1∑r1n=1∑r2l=1∑r3(xmnl∗uim∗vjn∗wkl)
其中 X : r 1 ∗ r 2 ∗ r 3 X:r_1*r_2*r_3 X:r1∗r2∗r3也就是核心张量,
U : n 1 ∗ r 1 , V : n 2 ∗ r 2 , W : n 3 ∗ r 3 U:n_1*r_1,V:n_2*r_2,W:n_3*r_3 U:n1∗r1,V:n2∗r2,W:n3∗r3
Tucker张量分解唯一性不能保证,因为可以在Tucker分解的各个因子矩阵上加上一些约束,例如正交约束,稀疏约束,平滑约束,非负约束等
双线性模型也有称为双线性池化,主要用于特征融合。
如果特征x和特征y来自两个特征提取器(例如VQA任务中,问题特征和图像特征),则被称为多模双线性池化(MBP),
如果来自同一个则交同源双线性池化(HBP)或者二阶池化。
原始的Bilinear Pooling存在融合后的特征维数过高的问题融合后的特征维数=特征x与特征y的维数乘积,一些论文作者尝试用PCA(主成分分析)进行降维,有的采用Tucker分解等
基于Bilinear CNN Models for Fine-grained Visual Recognition
它的双线性模型B由四个部分组成 B = ( f A , f B , P , C ) B=(f_A,f_B,P,C) B=(fA,fB,P,C), f A 和 f B f_A和f_B fA和fB是特征函数,P是池化函数,C是分类函数,公式如下:
它的公式如下:
公式理解:就是将图像中的同一位置上的两个特征进行乘,然后得到矩阵B,再对矩阵B进行sum pooliing池化得到矩阵 ξ \xi ξ,再对 ξ \xi ξ向量化,得到双线性向量x,再对x进行归一化操作,得到融合后的特征z,再将z用于分类和预测。
双线性模型指形如如下公式的操作:
忽视归一化操作,HBP特征如下表示:
把提取的特征送入全连接层再送入softmax层,公式等价是:
W j W_j Wj是全连接层的参数矩阵需要学习的, W j R W^R_j WjR是与之对应的,所以直接对 W j R W^R_j WjR进行学习。就是双线性模型与双线性池化差不多的原因。
此概念出自《Hadamard product for low-rank bilinear pooling》,核心是Hadamard积(按元素乘)来实现bilinear model。把上面公式写成如下:
如果需要扩大矩阵 U i 和 V i U_i和V_i Ui和Vi,再采用了矩阵P,控制输出即可
这里 Ψ \Psi Ψ是一个sketch函数(一种降维方式),
MCB模块的工作:加了attention之后的框架如下:
这是一共用了两次的MCB模块,第一个融合了文本和图像的特征来提出图像的attention,第二个是将图像的attention特征与文本特征再一次融合,并将结构送入全连接网络,再送入softmax分类器得到答案。
本篇论文算是在双线性模型的融合上加了Tucker分解
虽然Bilinear models(双线性模型)在VQA中能够很好的融合信息,帮助学习问题意义和图像内容之间的高级关联,但是存在高维度问题,所以本文引入MUTAN概念——基于多模态张量Tucker分解,能够有效的在视觉和文本的双线性交互(Bilinear models)的模型中进行参数化,除Tucker分解之外,还设计了基于矩阵的低秩分解 来明确限制交互等级。
VQA:是一种多模式任务,旨在回答有关图像的问题,要解决此问题,需要精确的图像和文本模型,并且这两种模式之间的高级交互必须仔细地编码到模型中才能提供正确的答案,而且该模型,必须具有理解整个场景的能力,以便将注意力放在与问题有关的区域,丢弃与问题无关的区域。
双线性模型:是VQA融合问题的有效方法,因为它编码了完整的二阶交互。这些双线性模型的主要问题与参数的数量有关,而参数数量相对于输入输出的维度就变得棘手,因此必须通过降低模型的复杂性来简化或近似双线性;
因此,解决这个问题,我们引入MUTNAN的新体系结构(图1),该体系主要就是对图像模型和问题模型的交互进行建模,采用的方法是基于Tucker分解,其能表示完整的双线性交互作用。
我们的工作:我们引入MUTAN——一种基于模态之间的双线性相互作用的多模态融合方案,在控制参数的数量上,MUTAN采用减少单峰嵌入的大小,同时使用完整的双线性融合方法来尽可能精确模拟它们之间的相互作用。
我们的贡献:
图中描述:我们采用GRU递归网络对问题特征进行提取,采用全卷积神经网络Resnet来提取图像特征,再用T进行融合,产生向量y后再用softmax函数进行答案预测。我们MUTAN最终体系还嵌入了基于视觉注意力机制的方法。
3-way张量 T T T的塔克分解表示是因子矩阵 W v , W q , W o W_v,W_q,W_o Wv,Wq,Wo和核心张量 T c T_c Tc之间的张量积.
经过张量T的Tucker分解方程参数化张量T的权重时,y的输出可以这样表示:
这完全等同于将q和v的投影的完整双线性交互编码为一个潜在对表示z,并使用该潜在代码预测答案,如下:
将z再投影到预测空间,y就如下:
预测答案就是通过softmax后如下:
在本文实验中,我们的 q ~ , v ~ \tilde{q},\tilde{v} q~,v~如下计算:
符号注释:
为了进一步在交互模型的表达性和复杂性之间取得平衡,我们基于Tc切片矩阵的秩引入了结构性的稀疏约束。当执行 q ~ \tilde{q} q~和 v ~ \tilde{v} v~的双线性组合时,z可以写成如下:
q ~ \tilde{q} q~和 v ~ \tilde{v} v~的相关性有 T c [ : , : , k ] T_c[:,:,k] Tc[:,:,k]的参数加权,每个切片中引入的结构可以用Tc切片上的等级约束来表示,我们给每个切片等级强加为常数R,每个切片 T c [ : , : , k ] T_c[:,:,k] Tc[:,:,k]则表示为R等级为1矩阵的和。如下:
那么 z [ k ] z[k] z[k]则表示:
注释:
在 T c T_c Tc张量上加入秩的约束会导致将输出向量z表示为R个向量 z r z_r zr的总和。为了获得这些向量中的每一个,将 q ~ \tilde{q} q~和 v ~ \tilde{v} v~投影到一个公共空间,并将它们与元素乘积合并,因此可以将z解释为 q ~ \tilde{q} q~和 v ~ \tilde{v} v~的投影之间的多个and门,进行or交互建模, z [ k ] z[k] z[k]逻辑表达式则如下:
我们将讨论如何将MCB和MLB作为我们Multimodal Tucker Fusion的特例,具体的如下图,彩色代表学习到的参数,灰色代表固定的参数。
核心张量Tc是稀疏的,遵循以下原则:
MCB中所有学习到的参数都是在融合后定位的。q和v的组合应该相互作用,它们事先被随机采样(通过h)。它们必须设置一个非常高的维数(通常为16000)。将这组组合作为特征向量进行分类。
将Tucker简化为低秩分解时添加了两个约束:
MLB与张量稀疏Tensor Sparsity之间的差异主要在以下两种:
文献名 | 年份 | 论文 |
---|---|---|
[5]:Multimodal compact bilinear pooling for visual question answering and visual grounding(用于视觉问题回答和视觉基础的多模态紧凑双线性池) | 2016 | https://arxiv.org/pdf/1606.01847v3.pdf |
[6]:Deep residual learning for image recognition(图像识别的深度残差学习) | 2015 | https://arxiv.org/pdf/1512.03385v1.pdf |
[7]:Multimodal Residual Learning for Visual QA(用于视觉QA的多模态残差学习) | 2016 | https://arxiv.org/pdf/1606.01455v2.pdf |
[8]:Hadamard Product for Low-rank Bilinear Pooling(低秩双线性池的阿达玛积) | 2017 | https://arxiv.org/pdf/1610.04325v4.pdf |
[10]:Multimodal neural language models(多模态神经语言模型) | 2014 | |
[11]:Skip-thought vectors | 2015 | https://arxiv.org/pdf/1506.06726v1.pdf |
[12]: Tensor decompositions and applications(张量分解及其应用) | 2009 | |
[16]:Bilinear cnn models for fine-grained visual recognition (双线性cnn模型用于细粒度的视觉识别) | 2015 | |
[17]:Hierarchical question-image co-attention for visual question answering分层问题-图像共同注意视觉问题回答). | 2016 | https://arxiv.org/pdf/1606.00061v5.pdf |
[18]: Multimodal convolutional neural networks for matching image and sentence(用于图像和句子匹配的多模态卷积神经网络) | 2015 | https://arxiv.org/pdf/1504.06063v5.pdf |
[21]:Exploring models and data for image question answering(为图像问题的回答探索模型和数据) | 2015 | https://arxiv.org/pdf/1505.02074v4.pdf |
[27]: Ask, attend and answer: Exploring question-guided spatial attention for visual question answering(问、听、答:探索问题引导的空间注意,进行视觉的问题回答。) | 2016 | https://arxiv.org/pdf/1511.05234v2.pdf |
[28]:Show, attend and tell: Neural image caption generation with visual attention (显示、出席和讲述:神经图像标题的生成和视觉关注) | 2015 | https://arxiv.org/pdf/1502.03044v3.pdf |
[29]:Deep correlation for matching images and text(深度相关匹配图像和文本) | 2015 | |
[30]: Stacked attention networks for image question answering(为图像问题回答堆叠注意力网络) | 2016 | https://arxiv.org/pdf/1511.02274v2.pdf |
致谢:
双线性模型介绍
张量分解