轻随机二值化的实证介绍
1 引言
在应用计算机科学中,我们常常需要从数据库中挑选出与已有“查询”对象最相似的对象。为了实现这一目标,数据库中的所有成员通常会被转换为数值的有序序列,也就是向量。这些向量可以被看作是高维度量空间中的点,这样就能计算它们与空间中其他点的距离。在这种情况下,“最相似”的实体就是其向量与“查询”实体向量距离比数据库中其他任何实体向量距离都小的实体,即查询的“最近邻”。
在自然语言处理(NLP)领域,最近邻搜索(NNS)是一种广泛应用的方法,用于解决各种问题。尽管看起来简单,但NNS在处理大数据场景时并非易事,因为数据库中可能包含大量的高维数据点。在实时场景中,用简单的线性方法将d维查询向量与数据库中所有N个向量进行比较是不可行的,因为其计算复杂度为O(Nd)。因此,我们几乎总是需要采用近似或基于启发式的解决方案。
降低NN搜索复杂度的常见方法之一是降低表示数据库的向量空间的维度。经典的降维方法是潜在语义分析(LSA)。另一种越来越常见的方法是利用二进制向量来表示实体。由于现代计算机本质上是基于二进制进行工作的,计算两个二进制向量之间的距离(即汉明距离,指将一个向量中的位翻转多少次才能得到另一个向量的形式)是非常快速的操作,尤其是当它作为处理器指令集的一部分在硬件层面实现时。
降维和二值化的结合是局部敏感哈希(LSH)方法的基础。虽然具体实现可能有所不同,但目标始终是将数据集中的每个对象哈希成一个简洁的二进制向量,使得相似的对象最终落在相同或相似的桶中,而不同的对象落在不同且距离较远的桶中。
许多哈希方法为了获得出色的结果,需要进行训练。例如,“语义哈希”(SH)方法就需要先学习不同受限玻尔兹曼机之间的权重,以获得能够执行哈希
超级会员免费看
订阅专栏 解锁全文
1008

被折叠的 条评论
为什么被折叠?



