Learning Hash Functions for Cross-View Similarity Search--文献翻译

IJCAI:2011

论文链接:Learning Hash Functions for Cross-View Similarity Search (ijcai.org)

摘要

        多语言和多模式信息访问中的许多应用程序涉及搜索具有多个(条件独立)视图的高维数据对象的大型数据库。在这项工作中,我们考虑学习哈希函数以在此类应用程序的视图中进行相似性搜索的问题。我们提出了一种原则方法,用于在给定一组多视图训练数据对象的情况下为每个视图学习哈希函数。散列函数将相似对象映射到跨视图的相似代码,从而实现跨视图相似性搜索。我们展示了对所提出方法的广泛实证研究的结果,证明了它在日语人物搜索和多语言人物搜索问题上的有效性。

一、介绍

        在多语言和多模式信息访问的许多应用程序中,数据库由具有多个(条件独立)视图的数据对象组成,并且需要跨视图进行相似性搜索。例如,考虑日语人物搜索问题,其中人物目录中的名称以一个或多个脚本1 表示,即汉字、片假名、平假名和罗马字。在这里,特定脚本中名称的表示可以被视为一个视图,因此人员目录中的每条记录都包含多个相同名称的视图以及其他信息。在日本,用户可以在四个脚本中的任何一个中查询人员目录,并期待所有这些脚本的结果。这是一个真实世界多语言信息访问问题的示例,涉及在多视图数据对象的大型数据库上进行跨视图相似性搜索2。

        更一般的人物搜索问题是多语言人物搜索问题,其中不仅涉及多个脚本,而且还涉及多种语言。在这个问题中,名称记录可以是一种或多种语言,查询可以是这些语言中的任何一种 [Udupa and Khapra, 2010]。可以将特定语言中的名称表示视为视图。多语言人物搜索应用程序的用户期望他们的个人资料中的任何语言的结果。

        作为交叉视图相似性搜索发挥重要作用的现实问题的第二个例子,考虑基于内容的多媒体检索问题,其中数据库由文本文档和图像组成,查询可以是其中之一 [Larsen et al. , 2003]。图像及其相关文本是同一语义对象的两个视图,用户期望相似的图像和文本作为他们查询的结果。

        在上面讨论的两个问题以及许多其他问题中,数据库由大量具有多个视图的高维数据对象组成。数据库中的单个数据对象以及查询可能具有一个或多个未指定的视图。此外,为了满足用户的信息需求,跨视图的相似性搜索是绝对必要的。

        跨视图相似性搜索的一个可能攻击路线是首先将多视图数据对象的每个视图“转换”为其中一个视图,然后采用单视图相似性搜索技术。例如,我们可以先将汉字中的名称翻译成平假名,然后在平假名相似度搜索中使用翻译后的名称。然而,这种方法至少存在两个主要缺陷,正如之前在 [Udupa and Khapra, 2010;普拉特等人,2010]。首先,将一个视图转换为另一个视图是特定于应用程序的、近似的和有损的。因此,跨视图相似性搜索的有效性会因为翻译而大幅下降 [Udupa and Khapra, 2010]。其次,翻译通常非常缓慢,使其在许多现实世界的应用中不切实际 [Platt et al., 2010]。

        在这项工作中,我们采用基于散列的方法来解决跨视图相似性搜索问题。我们将多视图数据对象的每个视图表示为紧凑的二进制码字。为了支持跨视图相似性搜索,我们需要数据对象的码字是相似的(如果不相同)。此外,相似数据对象的码字也应该相似。假设我们可以以某种方式映射数据对象对于二进制码字,跨视图相似性搜索可以简化为更简单的问题,即检索具有查询码字的小汉明距离内的码字的所有数据对象。后一个问题可以非常有效地解决,甚至可以在商品处理器上在几分之一秒内搜索具有数百万个数据对象的数据库 [Weiss et al., 2008]。

        基于散列的交叉视图相似性搜索方法的主要挑战是从由多视图数据对象组成的训练数据中为多视图数据对象的每个视图学习一个散列函数。哈希函数应具有以下属性

1、他们应该将多视图数据对象的不同视图映射到相似的代码字,并将相似的数据对象映射到相似的代码字,以便给定数据对象的任何视图的代码字作为查询,我们可以使用代码字检索相似的数据对象。
2、它们应该在任何地方定义,以便它们不仅可以应用于训练数据对象,还可以应用于训练集中不存在的对象。
3、他们应该为数据对象的每个视图生成紧凑的代码字,以便使用代码字的相似性搜索快速且可扩展。
4、它们应该具有计算效率和可并行性,以便它们可以用于具有严格延迟约束的现实世界跨视图相似性搜索应用程序

5、从训练数据中学习它们应该在计算上是有效的。

        我们为跨视图相似性搜索的哈希函数学习问题给出了一个原则性的解决方案。我们的方法生成具有前面讨论的所有属性的哈希函数。据我们所知,我们是朝着这个目标进行的第一次尝试。

        我们将学习哈希函数的问题表述为训练数据对象上的约束最小化问题。关键思想是找到哈希函数,以最小化所有视图上训练对象的码字的加权平均汉明距离(属性 1)。我们寻求显式形式的散列函数:每个视图的散列函数由一组 d > 0 1 位散列函数组成,形式为 sgn (?a, x?) 3. 由于散列函数是线性投影,然后是二值化, 它们在任何地方都有定义(属性 2)。评估哈希函数的计算复杂度在相应视图的维度上是线性的,因此在实践中非常有效(属性 4)。此外,线性投影可以很容易地并行化。由此产生的最小化问题是易于处理的,并且可以作为广义特征值问题(属性 5)来解决。

        我们展示了我们的方法在两个交叉视图相似性搜索问题上的有效性

1、日语人物搜索
2、多语言人员搜索

        本文的其余部分安排如下。在第 2 节中,我们将学习哈希函数的问题表述为优化问题。由于产生的问题是 NP 难的,我们在第 2.1 节提出了一种新的松弛方法,它将问题转化为一个易于处理的问题。我们将在 2.2 节讨论如何解决优化问题,并在 2.3 节讨论由此产生的哈希函数。在第 3 节中,我们讨论了一般跨视图相似性搜索问题的几个有趣的特殊情况以及与一些著名的降维技术的联系。在第 4 节中,我们展示了我们的实验结果。

二、学习哈希函数

三、有趣的特例

        我们现在看一下跨视图相似性搜索问题的两个有趣的特殊情况:K = 1 和 W = In×n。

       

四、实验研究

        我们现在描述我们的实验,以评估在第 2 节中开发的基于散列的跨视图相似性搜索技术的有效性。我们报告了两个问题的结果:日语人物搜索和多语言人物搜索。为了将我们的结果与已发表的结果进行比较,我们遵循 [Udupa and Khapra, 2010; 中描述的实验方案;乌杜帕和库马尔,2010]。

        4.1、实验装置

        日本人物搜索和多语言人物搜索都涉及两个阶段:离线索引阶段和在线查询阶段。在索引阶段,给定一个名称目录,我们将每个名称分解为其组成标记,并在目录中形成一组不同的名称标记。然后使用这些标记创建一个倒排索引,将标记映射到它们所属的名称。然后,我们通过应用 2.3 节的散列函数为每个标记生成代码字。

        第一阶段生成的索引用于查询阶段。给定一个查询名称,我们将其分解为组成标记,并通过应用适当的散列函数为每个标记生成代码字。使用每个标记的代码字,我们检索索引中位于该代码字的特定汉明半径内的所有标记。我们对检索到的标记进行评分,并根据它们的相似性分数仅保留前 250 个标记。使用低维嵌入中的欧几里得距离计算分数(等式 7)。剩下的标记是相应查询标记的近似匹配。使用倒排索引,我们然后检索具有这些标记中的任何一个的所有名称。最后,我们使用 [Udupa and Khapra, 2010] 的图匹配算法对名称进行评分。

        4.2 日语人物搜索

        在日语人物搜索问题中,数据库由日语文本中使用的三种文字以及拉丁文字中的任何一种的人名记录组成,用户查询数据库以查找与其信息需求相关的人。名称查询可以是四种文字中的任何一种(平假名、片假名、汉字或拉丁文)。拼写错误和汉字字符使问题变得非常具有挑战性,因为每个汉字字符都有多种发音。此外,在查询中也观察到语音变体,这些变体与拼写错误一起需要进行相似性搜索。

        由于片假名和平假名之间几乎是一对一的映射,我们将假名视为一种视图,而将汉字视为另一种视图。由于汉字字符的数量很多,我们使用简单的罗马化方案对汉字字符进行罗马化。因此,目录中的所有汉字名称在编入索引之前都进行了罗马化,汉字查询也在查询之前进行了罗马化。

        训练

        为了学习日语人物搜索问题的哈希函数,我们使用了 20, 000 个单令牌并行汉字和假名的日本名字。通过使用与 [Udupa and Khapra, 2010] 相同的特征提取方案,将标记转换为特征向量。字符二元组是特征,并且名称标记中字符二元组的存在会激活该标记的特征向量中的相应特征。由于罗马化步骤,汉字特征向量的维数为 563,与汉字二元组的数量(> 10, 000 × 10, 000)相比,这是可管理的小。 Kana 视图的维数为 3107。将名称标记转换为特征向量后,我们使用 2.2 节中描述的设备学习了两个视图的哈希函数。我们使用 MA TLAB 解决了广义特征值问题,并选择了前 32 个特征向量。这为每个视图提供了一个 32 位哈希函数

        测试建立

        为了测试我们的方法,我们需要一个名称目录和一个测试集。在我们的实验中,我们使用了一个名称目录,其中包含 56、300 个以假名和日本汉字书写的日文名称。我们选择了这些名称的一个随机子集,并要求以日语为母语的人生成该子集中名称的常见语音变体和拼写错误。结果测试集由 332 个汉字查询和 69 个假名查询组成。

        基准

        我们使用 Double Metaphone 实现了一个基线系统,这是一种著名的名称语音搜索算法 [Philips, 2000]。由于 Double Metaphone 只能处理拉丁字母中的字符串,我们首先将 Kana 和 Kanji 名称罗马化,然后生成 Double Metaphone 索引。基线系统类似于基于散列的系统,不同之处在于使用双元音素码字而不是散列码字检索候选标记,并使用编辑距离进行评分。

        结果

        对于测试集中的每个名称,我们检查了我们的系统和基线检索到正确结果的位置。一个完美的系统总是会在位置 1 为测试集中的每个查询检索正确的名称。因此,检索系统在位置 1 (P@1) 的精度是系统运行情况的指标。一个系统的P@1越接近1,越接近完美。因此,较高的 P@1 分数是可取的。通常,检索系统在位置 n > 1 (P@n) 的精度也是系统性能的一个很好的指标,因为在某些应用程序中可以向用户显示多个结果。因此,我们将 P@3 与 P@1 一起报告。

        表 1 将基于散列的系统的 P@1 与双 Metaphone 基线进行了比较。我们注意到基于散列的系统的 P@1 比基线系统的 P@1 高 87.50%。 P@1 的改进可归因于学习的哈希函数检索与给定查询令牌相似的所有候选令牌的能力。从表 1 中,我们观察到基于散列的系统的 P@3 比基线系统的 P@3 高 72.03%。此外,基线的 P@3 仍然大大小于基于散列的系统的 P@1。

        表 1:日语人物搜索中的比较表现

         4.3多语言人员搜索

        在多语言人物搜索问题中,数据库由一种或多种语言的人的姓名记录组成,用户使用这些语言中的任何一种查询数据库。与本质上是 2 视图问题的日语人物搜索不同,在多语言人物搜索中,视图数量可以大于 2。因此,我们考虑两种情况。在第一种情况下,K = 2,这使我们可以将我们的方法与 [Udupa and Khapra, 2010] 的方法进行比较。在第二种情况下,K > 3 并且涉及两种以上的语言。

      训练

        我们使用从 Wikipedia 中提取的并行名称来学习散列函数。在 K = 2 场景中,我们使用与 [Udupa and Khapra, 2010] 相同的训练数据,对我们的系统与他们的系统进行公平比较。在 K = 3 场景中,我们使用了 [Udupa and Khapra, 2010] 使用的训练数据的 3 路并行子集。该子集有 8、209 个 3 路并行单令牌名称。在 K = 4 场景中,我们使用了 7、908 个 4 路并行单令牌名称。

     测试建立

        我们使用了与 [Udupa and Khapra, 2010] 相同的测试集。名称目录是使用 Wikipedia 创建的,有大约 500、000 个名称。在所有实验中,英语是名称目录的语言,查询是希伯来语、卡纳达语、泰米尔语和印地语。表 2 给出了训练集和测试集的大小。

     基线

        我们比较系统的基准是 [Udupa and Khapra, 2010] 中描述的系统。他们使用典型相关分析为数据的两个视图找到共同的特征空间,并采用近似最近邻算法进行相似性搜索。我们使用 Tie-Aware Mean Reciprocal Ratio (MRR) 作为检索性能的衡量标准,因为这是 [Udupa and Khapra, 2010] 在他们的工作中报告的。

      结果

        表 2 总结了 K = 2 情景的结果。我们看到基于散列的系统比基于树的几何搜索提供了更好的结果,平均 MRR 提高了 9.1%。

        

         表 3 总结了 K > 2 情景的结果。系统的良好 MRR 表明我们的方法适用于 K > 2 场景。请注意,在 K = 4 实验中,不同搜索方向的结果具有可比性。

        在所有场景中,基于散列的系统平均需要大约 200 毫秒来检索查询结果。请注意,我们的系统在服务器上的单线程上运行,多线程可以显着提高速度。

        

 

五、实验

        在高维数据对象的大型数据库中进行相似性搜索是许多应用程序中的一项关键任务 [Gupta 和 Jain,1997;达塔等人,2008;曼宁等人,2008;克罗夫特等人,2009]。不幸的是,即使是用于索引多维数据的理论上最好的数据结构,平均而言,也与对数据库的高维数据对象(如文本和图像)进行强力穷举搜索一样糟糕 [Arya et al., 1998] .因此,需要在检索精度和搜索计算复杂度之间提供良好折衷的近似相似性搜索算法。

        计算几何和机器学习中一类非常重要的近似相似性搜索算法是散列,其中数据对象使用二进制码字表示 [Charikar, 2002;沙赫纳罗维奇等人,2008; Salakhutdinov 和 Hinton,2009 年]。给定一个查询数据对象,简单地通过检索所有具有与查询代码字的小汉明距离内的代码字的数据对象,从数据库中检索相似的数据对象。当码字紧凑时,使用散列的相似性搜索在计算上是有效的 [Weiss et al., 2008]。

        单视图数据对象的哈希函数学习问题已经得到了很好的研究。 Locality Sensitive Hashing (LSH) 是一种基于理论的数据忽略方法,用于使用随机投影来定义具有单一视图的数据对象的散列函数 [Charikar, 2002;安多尼和印地克,2006]。尽管 LSH 保证代码字之间的汉明距离渐近接近数据对象之间的欧几里德距离,但众所周知,它会产生长代码字,使其实际上效率低下。最近,已经提出了使用机器学习技术来学习哈希函数的数据感知方法,并且在合成数据和真实数据上都比 LSH 更有效。语义哈希使用受限玻尔兹曼机产生比 LSH 更紧凑的代码 [Salakhutdinov 和 Hinton,2009]。 Spectral Hashing 形式化了对良好代码的要求,并将它们与平衡图分区问题联系起来,该问题是已知的 NP hard [Weiss et al., 2008]。为了给出一个实用的散列算法,光谱散列假设数据是从多维均匀分布中采样的,并解决了一个宽松的分区问题。

        尽管对具有单一视图的数据对象的相似性搜索进行了很好的研究,但对多视图数据对象的跨视图相似性搜索主题的研究却很少。在某些应用程序中,如果存在将数据对象的一个​​视图转换为另一个视图的特定于应用程序的方法(例如通过机器将西班牙语文档翻译成俄语),则仍然可以使用其中一些技术。但是,非常需要一种不涉及特定应用中间阶段的用于学习散列多视图数据对象的原则方法。

        多语言名称搜索是 Web 搜索和企业搜索中应用程序的一个重要问题。 [Udupa and Khapra, 2010] 提出了针对两视图场景的问题的解决方案。他们试图为两种语言的名称找到一个共同的特征空间,并使用典型相关分析来学习一个这样的子空间。他们采用基于树的近似最近邻算法在公共特征空间中进行相似性搜索。

        [Udupa and Kumar, 2010] 研究了使用散列函数对名称进行拼写校正。他们提出了两种不同的方法来学习散列函数,这两种方法在学习散列函数时使用的数据不同——第一种方法使用给定语言/脚本中的一组名称,而第二种方法使用一组双语名称。

六、结论

        我们为多视图数据对象的哈希函数学习问题提供了一个原则性的解决方案。我们将学习问题表述为一个 NP 难最小化问题,并通过一种新颖的松弛方法将其转化为一个易于处理的特征值问题。我们展示了一般问题的一些特殊情况与降维技术有关,例如局部敏感索引和典型相关分析。最后,我们证明了在两个多语言信息访问问题中,与基线相比,所提出的哈希方法提供了非常好的检索性能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值