本文的提出动机/现存的问题:
1)尽管监督方法取得了巨大的成功,但现有的无监督哈希方法仍然存在缺乏 可靠的学习指导(learning guidance) 和 跨模态异构(cross-modal discrepancy) 的问题。
2)单个相似性度量很难全面地表示数据关系。
本文提出:基于聚合的图卷积哈希(AGCH)
1)考虑到单个相似性度量很难全面地表示数据关系,开发了一种高效的聚合策略,利用多个度量来构建更精确的亲和矩阵(affinity matrix)用于学习。具体来说,采用各种相似性度量从不同角度挖掘多模态的结构信息,然后将获得的信息汇总生成联合相似矩阵。
2)此外,设计了一种新的深度模型来学习不同模态的统一二值码,其中的关键组件包括:
跨模态哈希CMH包括监督和非监督方法。
监督CMH方法直接利用 预先标注的标签 或 预先获得的相似关系 作为学习所需哈希码的统一指导。
然而在现实世界中,标记大规模数据集是一项艰巨的工作,这是非常耗时的,并且需要专业知识。
无监督CMH方法在没有语义标签的情况下,通过利用 训练数据的底层几何结构 生成二值码,因此获得的性能竞争力较差。
但是在实际应用中,它比监督方法更实用,因为不需要手工注释。
基于图的哈希(Graph-based hashing) 一直是一个长期的研究兴趣,传统上以 亲和图(affinity graphs)【邻接图】 作为学习的指导。
尽管有很多方法都有很好的效果,但是用于无监督搜索的深度哈希很少被考虑。
本文主要研究在无监督跨模态环境下的检索任务。为了追求高质量的哈希码和函数,需要考虑两个问题。
1)reliable supervisory guidance. 如何获得可靠的学习监督指导。
2)heterogeneity problem.由于不同媒体类型的数据通常位于不同的特征空间中,因此具有特定的特征,需要解决异构性问题。
为了解决上述问题,提出了新的深度CMH模型——基于聚合的图卷积哈希AGCH,用于大规模无监督异构数据检索。
一方面,为了全面获取语义,提出了一种新的基于聚合的相似矩阵构造方法。
具体来说,由于多模态数据从不同角度描述对象,并具有不同的统计特性,因此它们通常包含互补和多样的信息。为了充分利用这一点,本文自适应地将嵌入每个单独模态中的内在信息结合起来,以实现对数据项关系的全面理解。
此外,与以前仅从一个角度(即根据单个基于距离的度量)利用数据关系的方法不同,我们通过各种度量来监督它,以利用多模态数据中包含的丰富结构信息。鉴于此获得了一个可靠的监督信号,用于以较小的偏差进行学习。
另一方面,为了处理数据的异构性,建立了一个新的深度模型。
该模型由多个子网络组成,每个子网络用于一个模态来学习特定模态的哈希函数。
每个子网络都以深度网络作为数据编码器,并进一步采用 图卷积网络(GCN)来深入探索底层邻域结构,有利于判别二值码的学习。
提出了一个 融合模块fusion module 来连接每个模态,以学习统一的二值表示。
设计了一个 有效的目标函数 来保持模态内和模态间的一致性。
黑色大写字母( Q Q Q)用于表示矩阵
黑色小写字母( q q q)表示向量
Q i ∗ Q_{i*} Qi∗和 Q ∗ j Q_{*j} Q∗j分别表示 Q Q Q的第 i i i行和第 j j j列
Q i j Q_{ij} Qij是矩阵 Q Q Q的位置 ( i , j ) (i, j) (i,j)处的元素
Q Q Q的转置和逆分别表示为 Q T {Q^T} QT和 Q − 1 Q^{-1} Q−1
∥ ⋅ ∥ F {\parallel \cdot \parallel}_F ∥⋅∥F表示向量或矩阵的Frobenius范数
s i g n ( ⋅ ) sign(\cdot) sign(⋅)是一个元素级的符号函数,定义为
s i g n ( x ) = { 1 x > 0 − 1 x ≤ 0 sign(x)=\begin{cases} 1 & x>0 \\ -1 & x≤0 \end{cases} sign(x)={ 1−1x>0x≤0
两个向量 x i x_i xi和 x j x_j xj之间的Cosine距离为
c o s ( x i , x j ) = x i T x j ∥ x i ∥ 2 ∥ x j ∥ 2 cos(x_i, x_j) = \frac{x_i^T x_j}{ {\parallel x_i \parallel}_2 {\parallel x_j \parallel}_2} cos(xi,xj)=∥xi∥2∥xj∥2xiTxj
其中 ∥ ⋅ ∥ 2 {\parallel \cdot \parallel}_2 ∥⋅∥2代表 l 2 l_2 l2范数
符号 ⊙ \odot ⊙表示哈达玛矩阵乘积(即逐元素乘积),其定义如下:
假设 O = { o i } i = 1 n O=\{o_i\}_{i=1}^n O={ oi}i=1n是具有 n n n个成对实例的多模态数据集, o i = ( o i v , o i t ) o_i=(o_i^v, o_i^t) oi=(oiv,oit),其中 o i v ∈ R d 1 o_i^v∈\mathbb{R}^{d_1} oiv∈Rd1, o i t ∈ R d 2 o_i^t∈\mathbb{R}^{d_2} oit∈Rd2表示第 i i i个数据点对的 d 1 d_1 d1维图像特征向量和 d 2 d_2 d2维文本特征向量。
给定训练数据,我们方法的最终目的是学习图像和文本的特定模态投影函数 f ( o v ; θ v ) f(o^v; \theta_v) f(ov;θv)和 g ( o t ; θ t ) g(o^t; \theta_t) g(ot;θt),其中 θ v \theta_v θv和 θ t \theta_t θt是网络参数,并获得统一的二值表示 B = [ b 1 , b 2 , … , b n ] ∈ { − 1 , 1 } c × n B=[b_1,b_2,\dots,b_n]∈\{-1, 1\}^{c×n} B=[b1,b2,…,bn]∈{ −1,1}c×n,其中 b i b_i bi是第 i i i个实例的二值码, c c c是代码长度。
原则上,通过嵌入函数学习的 b i b_i bi和 b j b_j bj有望准确地保持原始多模态空间中的相似性。
如图1所示,我们的模型是一个端到端的学习框架,包含四个主要组件:
还有一个用于生成 模态不变二值嵌入(modal-invariant binary embeddings) 的融合模块。
在每个epoch中,沿着图像编码器的分层处理,来自训练集的图像 o v o^v ov首先被转换为非线性特征 f v ∈ R d e 1 × m f_v \in \mathbb{R}^{d_{e1}\times m} fv∈Rde1×m,这些非线性特征被进一步送到哈希层以生成特定模态的二值表示 B v ∈ { 1 , − 1 } c × m B^v \in \{1, -1\}^{c \times m} Bv∈{
1,−1}c×m,其中 c c c 和 m m m 分别代表 code length 和 batch size。
文本编码器的任务是提取高级特征 f t ∈ R d e 2 × m f_t \in \mathbb{R}^{d_{e2}\times m} ft∈Rde2×m并相应地生成输入文本 o t o^t ot的哈希码 B t ∈ { 1 , − 1 } c × m B^t \in \{1, -1\}^{c \times m} Bt∈{
1,−1}c×m。
二进制的生成过程表示如下:
其中 θ v \theta_v θv和 θ t \theta_t θt是它们相应网络的权重参数。这个过程也被用来为测试阶段的查询生成二值表示。
此外,在训练阶段, s i g n ( ⋅ ) sign(\cdot) sign(⋅)函数会导致棘手的反向传播梯度问题,为了避免这种情况,将其替换为 t a n h ( ⋅ ) tanh(\cdot) tanh(⋅)函数。
在下一阶段,来自两种模态的高级非线性特征 f v f^v fv和 f t f^t ft将被聚合,然后嵌入到融合分支中,以获得不同模态的统一二值码 B h ∈ { 1 , − 1 } c × m B^h \in \{1, -1\}^{c \times m} Bh∈{
1,−1}c×m:
其中 ⊗ \otimes ⊗是连接操作(concatenation operation), θ h \theta_h θh表示子网络的参数。
通过融合分支的非线性操作,自适应地选择来自多个来源的有意义的信息,忽略或抑制不相关的信息,该方法可以获得更有效和更具有代表性的二值表示。
同时 f v f^v fv和 f t f^t ft以及邻接矩阵 A ~ \tilde{A} A~被送到相应的GCN模块中以获得更多的结构语义。每一层的图卷积过程如下所示:
通过GCN模块,我们可以得到二值码:
其中 θ g v \theta_{gv} θgv和 θ g t \theta_{gt} θgt分别是图像GCN和文本GCN的权重参数。
通过公式(6)和(7),我们可以看出,对于一个节点,通过一个图卷积层,即通过加权求和将该节点的邻居连接起来,新的特征被分配给该节点,这意味着鼓励相邻节点的特征更接近。结果所获得的二值码反映了特征空间中固有的空间关系。
此外,还施加了一种有效的亲和矩阵构建策略和相应的相似性约束来优化学习过程,如下所述。
在无监督跨模态学习中,现有的方法通常利用预先训练的深度神经网络提取非线性特征来构建亲和矩阵,并通过逼近它来学习二值码,这已被证明是可行的。
受这些工作启发,我们提出了一种基于聚合的亲和矩阵构建方案。
一、获取原始高级非线性特征
将这些特征标准化并将它们集成在一起:
二、构建亲和矩阵
在获得原始的高级非线性特征后,我们利用这些特征构建亲和矩阵作为监督信号。
具体来说,我们首先计算这些样本的内积,以量化它们之间的相似性,其定义如下:
其等效于原始特征之间的余弦相似性的线性组合:
一般来说, C i j C_{ij} Cij越大, Z i ∗ Z_{i*} Zi∗和 Z j ∗ Z_{j*} Zj∗就越相似。
通过利用来自不同模态的融合信息来构建相似性矩阵,假设各种来源(即多模态)携带的补充或补充信息可以相互增强和弥补,我们可以获得更可靠的信息。
尽管如此,仍然有改进的余地。
问题一:单一的余弦测度不足以挖掘足够的结构语义。
这两个内积非常相似。在这种情况下,不能很好地区分实例之间的相似性。
问题二:只考虑非零值可能会忽略有用的信息。
此外,这种方法只考虑两个参与向量的公共非零维,这可能会忽略许多可能有用的信息。举个简单例子,如果一个向量在一个维度上有一个零值,那么无论另一个向量在此维度上有什么值,它们之间的乘积总是零。
为了解决这些问题,我们引入了一个基于数据项之间维度差异的辅助矩阵,以弥补余弦相似性度量的不足。
将辅助矩阵表示为 D D D,并将其与余弦相似性进行聚合,定义如下:
在实践中,可以 采用许多计算数据之间差异的距离度量来构造 D D D ,例如欧几里得距离、马氏距离等。
在这项工作中,我们使用了基于欧几里得距离的相似性,然后有:
其中 ρ \rho ρ是个缩放参数。
直观的说,通过从不同角度评估实体来组合相似性信息可以有利于捕获潜在的相似性关系。
此外,这种相似性构建方法有效地弥补了余弦相似性的不足,从而进一步区分了样本点之间的相似性,从而为学习任务提供了更强大的监督信号。例如,根据该方案,a和b的相似性为 0.95 × 0.92 = 0.874 0.95 \times 0.92 = 0.874 0.95×0.92=0.874( ρ \rho ρ=4),而a和c的值为1。这样,a和c被区分开来。
此外,这个矩阵还作为公式(6)中的邻接矩阵 A ~ \tilde A A~用作图卷积运算。
在下面的量化过程中,进一步调节 S = 2 S − 1 S = 2S - 1 S=2S−1,给出灵活的量化区域。
【一些现有工作指出,就测量文本数据的相似性而言,余弦相似性是最优的,而基于欧几里得距离的相似性度量对图像数据更好。】我们的方法与该方案不冲突,我们将两个度量都用于相似性度量以可靠的评估样本点之间的关系,加强了该方案。
为了确保待学习的二值码严格保持相似关系,定义了以下目标函数,通过重构相似度矩阵来保持模态内的亲和性:
GCN模块用于为图像和文本编码器的特征提供强大的结构关系,有利于精确的哈希码和嵌入函数的学习。目标函数更新如下:
在多模态设置中,数据实例来自不同特征空间中表示的不同模态。为了实现有效的跨模态检索,必须将有相同语义结构的异构数据关联起来。
模态间相似性被认为是不同模态的实例之间的相似性。为了保持模态间的一致性,推导出以下损失函数:
最终目标函数是前面提到的三个单独损失函数的集合,如下所示:
来自不同模态的特定模态表示 B v , B t B^v, B^t Bv,Bt 通过统一表示 b h b^h bh 进行对齐,并且GCN模块进一步赋予这些嵌入足够的邻域信息。此外,这些二值描述符以及相应嵌入函数的更新是以协作的方式进行的。换句话说,它们在学习过程中是相互作用的。鉴于此,可以有效地弥合模态差距,并可以很好地保持学习二值码和哈希函数的质量。
此外,二值表示 B k , k ∈ { v , t , h , g v , g t } B^k, k \in \{v, t, h, g_v, g_t\} Bk,k∈{ v,t,h,gv,gt} 都是归一化的。为了简单起见,在损失函数中省略了这个过程。
公式(15)通过交替更新网络参数 θ k , ( k ∈ { v , t , h , g v , g t } ) \theta_k, (k \in \{v, t, h, g_v, g_t\}) θk,(k∈{ v,t,h,gv,gt})。具体来说,在五个参数中的四个固定的情况下,通过反向传播算法更新另一个参数。
算法1总结了整体优化方案。
1)Out-of-Sample
一旦模型经过训练,我们就可以使用它轻松地为任何新的查询样本生成哈希码。具体地说,给定一个查询 o i k ∈ R d k × 1 , k ∈ { v , t } o_i^k \in \mathbb{R}^{d_k \times 1}, k \in \{v, t\} oik∈Rdk×1,k∈{
v,t},我们可以通过以下公式得到它的哈希码:
2)More Modalities
通过为每个新模态添加新的子网络并稍微修改目标函数方程(16),所提出的方法也可以很容易地扩展到具有更多模态的情况。
其中 p p p 表示第 p p p 个模态,高阶相似性矩阵 S S S 可以稍微通过调整我们在等式(12)中定义的高阶相似结构来获得。
文章浏览阅读122次。还是A+BTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 24568Accepted Submission(s): 11729Problem Description读入两个小于10000的正整数A和B,计算A+B。...
文章浏览阅读419次。HEADERS:在BASIC的基础上,额外记录了请求和响应的头信息。FULL:记录所有请求和响应的明细,包括头信息、请求体、元数据。BASIC:仅记录请求的方法,URL以及响应状态码和执行时间。NONE:不记录任何日志信息,这是默认值。配置Feign日志有两种方式;方式二:java代码实现。注解中声明则代表某服务。方式一:配置文件方式。_feign 日志设置
文章浏览阅读155次。将容器管理的持久性 Bean 用于面向服务的体系结构本文将介绍如何使用 IBM WebSphere Process Server 对容器管理的持久性 (CMP) Bean的连接和持久性逻辑加以控制,使其可以存储在非关系数据库..._javax.ejb.objectnotfoundexception: no such entity!
文章浏览阅读1.5k次。基础java练习题一、递归实现跳台阶从第一级跳到第n级,有多少种跳法一次可跳一级,也可跳两级。还能跳三级import java.math.BigDecimal;import java.util.Scanner;public class Main{ public static void main(String[]args){ Scanner reader=new Scanner(System.in); while(reader.hasNext()){ _java 递归例题
文章浏览阅读1.5k次,点赞6次,收藏6次。目录1.串应用- 计算一个串的最长的真前后缀题目描述输入输出样例输入样例输出题解2.字符串替换(string)题目描述输入输出样例输入样例输出题解3.可重叠子串 (Ver. I)题目描述输入输出样例输入样例输出题解4.字符串操作(string)题目描述输入输出样例输入样例输出题解1.串应用- 计算一个串的最长的真前后缀题目描述给定一个串,如ABCDAB,则ABCDAB的真前缀有:{ A, AB,ABC, ABCD, ABCDA }ABCDAB的真后缀有:{ B, AB,DAB, CDAB, BCDAB_对存储在string数组内的所有以字符‘a’开始并以字符‘e’结尾的单词做加密处理。
文章浏览阅读68次。西安交通大学/算法设计与问题求解/树与二叉树/MOOC_算法设计与问题求解西安交通大学
文章浏览阅读1.6k次。问题:在Vue项目中出现如下错误提示:[Vue warn]: Computed property "totalPrice" was assigned to but it has no setter. (found in <Anonymous>)代码:<input v-model="totalPrice"/>原因:v-model命令,因Vue 的双向数据绑定原理 , 会自动操作 totalPrice, 对其进行set 操作而 totalPrice 作为计..._computed property "totalprice" was assigned to but it has no setter.
文章浏览阅读60次。十分暴力而简洁的解决方式:读取P和T的位置并自动生成唯一正确答案,将题给测点与之对比,不一样就给我爬!_basic 1003 case 1
文章浏览阅读422次。原标题:详解将Web项目War包部署到Tomcat服务器基本步骤详解将Web项目War包部署到Tomcat服务器基本步骤1 War包War包一般是在进行Web开发时,通常是一个网站Project下的所有源码的集合,里面包含前台HTML/CSS/JS的代码,也包含Java的代码。当开发人员在自己的开发机器上调试所有代码并通过后,为了交给测试人员测试和未来进行产品发布,都需要将开发人员的源码打包成Wa..._/opt/bosssoft/war/medical-web.war/web-inf/web.xml of module medical-web.war.
文章浏览阅读3k次,点赞3次,收藏13次。# -*- coding: utf-8 -*-# 简述:这里有四个数字,分别是:1、2、3、4#提问:能组成多少个互不相同且无重复数字的三位数?各是多少?def f(n):list=[]count=0for i in range(1,n+1):for j in range(1, n+1):for k in range(1, n+1):if i!=j and j!=k and i!=k:list.a..._python求从0到9任意组合成三位数数字不能重复并输出
文章浏览阅读1k次,点赞3次,收藏2次。<el-table-column prop="studentSex" label="性别" :formatter="sex"></el-table-column>然后就在vue的methods中写方法就OK了methods: { sex(row,index){ if(row.studentSex == 1){ return '男'; }else{ return '女'; }..._elementui table 性别
文章浏览阅读1.1k次。java文件操作之移动文件到指定的目录_java中怎么将pro.txt移动到design_mode_code根目录下